XEduHub项目案例集
https://xedu.readthedocs.io/zh/master/xedu_hub/projects.html#id2
2024-05-01T02:17:52.png
我们首先将实时视频中每一帧的图像进行人体目标检测,拿到所有的检测框bbox及其坐标信息,绘制检测框。随后对每个检测框中的人体进行关键点提取。

from XEdu.hub import Workflow as wf
import cv2

cap = cv2.VideoCapture(0)
body = wf(task='body17')  # 实例化pose模型
det = wf(task='bodydetect')  # 实例化detect模型

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    bboxs = det.inference(data=frame, thr=0.3)
    img = frame

    for i, bbox in enumerate(bboxs):
        keypoints, img = body.inference(data=img, img_type='cv2', bbox=bbox)
        for idx, (x, y) in enumerate(keypoints):  # 修改此行
            #cv2.circle(img, (int(x), int(y)), 5, (0, 0, 255), -1)  # 画关键点
            cv2.putText(img, str(idx), (int(x), int(y)), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)  # 添加数字标识

    for [x1, y1, x2, y2] in bboxs:  # 画检测框
        cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)

    cv2.imshow('video', img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

发表评论