Python OpenCV - обнаружение рук - PullRequest
0 голосов
/ 05 декабря 2018

Мы все любим каскады Хаара.

Более того, в 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 голосов
/ 06 декабря 2018

Использование 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

0 голосов
/ 05 декабря 2018

Используйте соответствующий файл haarcascades.В наборе нет ни одного , но кто-то сделал пользовательский набор на https://github.com/Balaje/OpenCV/tree/master/haarcascades.(Отказ от ответственности: я не проверял это.)

...