Пишем систему распознавания ладони на Python OpenCV
Покажу как написать систему распознавания ладони на Python + OpenCV (26 строчек кода). Этот урок требует минимальных знаний OpenCV.
20К открытий21К показов
Всем привет, сегодня я покажу как написать систему распознавания ладони на Python + OpenCV (26 строчек кода). Этот урок требует минимальных знаний OpenCV.
Что мы получим на выходе
Примерно это:
Полезные ссылки
Сайт OpenCV
Документация mediapipe
Код на GitHub (Без комментариев)
Перед работой
Вам потребуется:
- Python 3;
- OpenCV;
- mediapipe.
Установка происходит через пакетный менеджер:
Кодим
Я решил использовать mediapipe, потому что в нём есть уже обученная ИИ для распознания ладони.
Для начало вам нужно понять, что ладонь состоит из суставов, которые можно выразить точками:
Далее пишем сам код:
Решение ошибки: ImportError: DLL load failed можно найти здесь.
В коде есть комментарии, но предлагаю разобрать подробно:
Импорты OpenCV и mediapipe.
Необходимые объекты: камера (cap), нейронка для определения ладоней (hands) с аргументов max_num_hands — максимальное количество ладоней, — и наша «рисовалка» (draw).
Бесконечный цикл.
Выходим из цикла если нажата клавиша с номером 27 (Esc).
Считываем изображение с камеры, отражаем изображение по вертикали и горизонтали, конвертируем в RGB. И, самое интересное, отдаём нашу картинку на определение ладоней.
Первый if-блок проверяет были ли вообще найдены ладони (любой не пустой объект является истинным). Далее циклом for мы «перебираем» объект с набором этих точек. Второй for — перебираем сами точки из набора
draw.draw_landmarks — удобная утилита, которая рисует ладонь на изображении, в аргументах: изображение, набор точек, и что рисуем (в нашем случае руку).
Отображаем картинку.
Итог
Мы написали распознавание ладони на Python в 26 строк кода, круто, не так ли? Оцените этот пост ведь это важно для меня.
20К открытий21К показов