python - 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 文件的良好参考?
解决方案
由于手部可能的不同姿势,使用 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
推荐阅读
- ionic-framework - 我如何解决离子给我的错误
- java - 批量加载数据流中非常大的数据插入到 Big Query 步骤
- python - 无法让 <= 在 Python 上正常运行
- sql-server - SQL Server 代理作业未按计划执行 SSIS 包
- python - 如何在 Django 中测试查询集
- excel - 从范围中排除多个单元格
- c# - vscode 调试 c# 应用程序
- javascript - 使用AJAX请求json类型的列表数据从chart.js动态输出到气泡图中
- mysql - 我有两个表,它们有一对多的关系,我正在尝试通过 id 从两个表中检索数据
- c++ - 当用户键入分隔符时停止 getline() 输入