首页 > 解决方案 > Python OpenCV - 检测手

问题描述

我们都喜欢haar cascades。

此外,在 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)

在此处输入图像描述

但是我如何按照完全相同的方法检测手呢?

我从互联网上搜索、下载和使用了很多 xml 文件,但它们的性能都很差。

谁能指出用于手部检测的 xml haarcascade 文件的良好参考

标签: pythonopencvobject-detection

解决方案


由于手部可能的不同姿势,使用 haarcascades 进行手部检测不会给出非常稳健的检测结果。因此,张开的手或拳头将需要单独的 haarcascades。尽管 haarcascades 不能很好地处理旋转。

如果您的硬件允许,您可以使用深度神经网络来检测手部。非常稳健的方法是检测身体姿势并从中提取手部关键点:

非常健壮但也非常耗资源/慢(GPU 是必须的):
https ://github.com/CMU-Perceptual-Computing-Lab/openpose

不太准确但速度更快:
https ://github.com/ildoonet/tf-pose-estimation

只是新的和有前途的,但对我来说未经测试:
https ://github.com/tensorlayer/openpose-plus


推荐阅读