Python OpenCV-检测手

时间:2018-12-05 10:23:55

标签: python opencv object-detection

我们都喜欢haar级联。

此外,在Python OpenCV中,检测输入图像中的人脸非常简单:

import cv2 
img = cv2.imread("picture.jpg", 0)
haar_face = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(haar_face)
faces = faceCascade.detectMultiScale(img, 1.3, 5)

enter image description here

但是我该如何使用完全相同的方法检测手

我已经从互联网上搜索,下载并使用了很多xml文件,但是它们的性能都非常差。

有人能指出xml haarcascade文件用于手检测的很好参考吗?

2 个答案:

答案 0 :(得分:0)

使用相应的haarcascades文件。 stock set中没有一个,但是有人在https://github.com/Balaje/OpenCV/tree/master/haarcascades上进行了自定义设置。 (免责声明:我没有对其进行测试。)

答案 1 :(得分:0)

由于手可能有不同的姿势,因此使用级联进行手检测将不会提供非常可靠的检测结果。因此,张开手或拳头将需要单独的ha级联。尽管级联不能很好地处理旋转。

如果硬件允许,则可以使用深度神经网络来检测手。 一种非常可靠的方法是检测身体姿势并从那里提取手关键点:

功能非常强大,但资源却非常匮乏/缓慢(必须使用GPU):
https://github.com/CMU-Perceptual-Computing-Lab/openpose

精度较低,但速度更快:
https://github.com/ildoonet/tf-pose-estimation

只是新颖而有希望的,但未经我检验:
https://github.com/tensorlayer/openpose-plus