XEduHub项目案例集
https://xedu.readthedocs.io/zh/master/xedu_hub/projects.html#id2
我们首先将实时视频中每一帧的图像进行人体目标检测,拿到所有的检测框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()