Yolo v8可以帮助检测关键点,但是如何统计穿过指定线的关键点数量

问题描述 投票:0回答:1
def extract_and_process_tracks(self, tracks):
    boxes = tracks[0].boxes.xyxy.cpu()
    clss = tracks[0].boxes.cls.cpu().tolist()
    track_ids = tracks[0].boxes.id.int().cpu().tolist()

    self.annotator = Annotator(self.im0, self.tf, self.names)
    self.annotator.draw_region(reg_pts=self.reg_pts, color=(0, 255, 0))

    for box, track_id, cls in zip(boxes, track_ids, clss):
        self.annotator.box_label(box, label=self.names[cls], color=colors(int(cls), True))  

        # Draw Tracks
        track_line = self.track_history[track_id]
        track_line.append((float((box[0] + box[2]) / 2), float((box[0] + box[2]) / 2))
        track_line.pop(0) if len(track_line) > 30 else None

        if self.draw_tracks:
            self.annotator.draw_centroid_and_tracks(track_line,
                                                    color=(0, 255, 0),
                                                    track_thickness=self.track_thickness)

object_counter.py
提供的
ultralytics
可以实现计数工作,track_line.append存储

的中心

box(float((box[0] + box[2]) / 2), float((box[0] + box[2]) / 2)
,

但是如何将中心更改为

keypoints
坐标,例如我想数出穿过指定线的动物的头
keypoints

如何获取

keypoints
中的
yolo_pose
坐标?

python computer-vision yolov8
1个回答
0
投票

如何获取yolo_pose中的关键点坐标?

使用

yolov8*-pose.pt
模型进行对象跟踪任务,我们可以像这样获取关键点坐标:

results = model.track(frame)
keypoints_in_pixel = results[0].keypoints.xy
keypoints_normalized = results[0].keypoints.xyn

extract_and_process_tracks()
方法中,它看起来是一样的:

def extract_and_process_tracks(self, tracks):
    boxes = tracks[0].boxes.xyxy.cpu()
    clss = tracks[0].boxes.cls.cpu().tolist()
    track_ids = tracks[0].boxes.id.int().cpu().tolist()
    keypoints_in_pixel = results[0].keypoints.xy.cpu()
    
    # the rest of method logic

有关如何在 YOLOv8 中使用姿势估计关键点结果对象跟踪任务的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.