人体骨骼点检测cv2
时间: 2023-10-18 20:06:26 浏览: 47
人体骨骼点检测是一种计算机视觉技术,可以通过图像或视频中的人体轮廓,自动识别出人体的关键点,如头部、肩膀、手肘、手腕、膝盖等。在Python中,可以使用OpenCV库中的DNN模块和预训练的Caffe模型来实现人体骨骼点检测。
以下是一个简单的示例代码:
```python
import cv2
# 加载模型
net = cv2.dnn.readNetFromCaffe("pose_deploy.prototxt", "pose_iter_102000.caffemodel")
# 读取图像
image = cv2.imread("test.jpg")
# 获取图像尺寸
(h, w) = image.shape[:2]
# 构建输入blob
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0 / 255, (300, 300), (0, 0, 0), swapRB=False, crop=False)
# 设置输入blob
net.setInput(blob)
# 前向传播
output = net.forward()
# 遍历输出
for i in range(0, output.shape[1]):
# 提取置信度
confidence = output[0, i, 2]
# 过滤掉低置信度的关键点
if confidence > 0.5:
# 计算关键点坐标
x = int(output[0, i, 3] * w)
y = int(output[0, i, 4] * h)
# 绘制关键点
cv2.circle(image, (x, y), 5, (0, 255, 255), -1)
# 显示结果
cv2.imshow("Output", image)
cv2.waitKey(0)
```