Оглавление:

Распознавание и идентификация лиц - Идентификатор лица Arduino с использованием OpenCV Python и Arduino: 6 шагов
Распознавание и идентификация лиц - Идентификатор лица Arduino с использованием OpenCV Python и Arduino: 6 шагов

Видео: Распознавание и идентификация лиц - Идентификатор лица Arduino с использованием OpenCV Python и Arduino: 6 шагов

Видео: Распознавание и идентификация лиц - Идентификатор лица Arduino с использованием OpenCV Python и Arduino: 6 шагов
Видео: HLK-TX510 - платформа для распознавания лиц 2024, Ноябрь
Anonim
Image
Image

Распознавание лиц AKA Face ID - одна из важнейших функций мобильных телефонов в наши дни.

Итак, у меня возник вопрос «Могу ли я иметь идентификатор лица для моего проекта Arduino», и ответ - да …

Мое путешествие началось следующим образом:

Шаг 1. Доступ к веб-камере

Шаг 2: Идентификация лица.

Шаг 3: Сбор данных

Шаг 4: Обучение

Шаг 5: Распознавание лиц

Шаг 6: Программирование Arduino

Я объясню все шаги ниже. Я надеюсь, что это вам поможет.

Шаг 1. Доступ к веб-камере

Доступ к веб-камере
Доступ к веб-камере

Первым шагом к распознаванию лиц было получение доступа к камере или компьютерному зрению. Поскольку Индия находится под изоляцией, самым дешевым решением, которое я нашел, было использование веб-камеры моего компьютера, к которой у меня был доступ с помощью программы Python, использующей модуль openCV.

Вы могли подумать, что такое OpenCV, не так ли?

OpenCV (Open Source Computer Vision Library) - это библиотека программного обеспечения для компьютерного зрения и машинного обучения с открытым исходным кодом. OpenCV был создан для обеспечения общей инфраструктуры для приложений компьютерного зрения и для ускорения использования машинного восприятия в коммерческих продуктах.

Если на вашем компьютере установлен Opencv, то все в порядке. В противном случае выполните этот шаг.

откройте командную строку и введите «pip install opencv».

Предупреждение: вы можете получить сообщение об ошибке, поскольку «pip не распознается как внутренняя или внешняя команда». для которого вам нужно добавить путь к вашей установке pip в системную переменную PATH. Прочтите этот пост, он может вам помочь.

stackoverflow.com/questions/23708898/pip-i…

Как только OpenCV будет установлен, все готово … Чтобы проверить, правильно ли он установлен, откройте ваш интерпретатор Python и импортируйте библиотеку. См. Изображение выше, которое должно быть вашим результатом.

Загрузите файл Python «AccessTo_webcam.py» и запустите его. Я сделал там все необходимые комментарии.

Итак, теперь у вас есть доступ к веб-камере. Отличная работа. перейдем к шагу 2.

Шаг 2: Идентификация лица

Идентификация лица
Идентификация лица

с помощью того же модуля OpenCV мы должны определить, есть ли в видеопотоке лицо или нет.

OpenCV предоставляет метод обучения или предварительно обученные модели, называемые каскадным классификатором. Предварительно обученные модели находятся в папке данных в установке OpenCV. Я предоставляю этот файл, просто скачайте его и поместите в папку вашего проекта. Папка, в которой хранится файл «AccessTo_webcam.py». Если вы еще не создали его, сделайте это.

Загрузите «haarcascade_frontalface_default» и поместите его в основную папку проекта.

Скачайте «Face_identification.py» и поместите его в основную папку проекта. В нем даются все объяснения.

Теперь вы можете идентифицировать лица в видеопотоке. Итак, приступим к шагу 3.

Шаг 3: Сбор данных

Сбор данных
Сбор данных

Чтобы распознавать лица, нам нужно обучить нашу программу на Python. Для чего нам нужны некоторые данные.

Сбор данных - это, пожалуй, самый простой шаг в этом проекте. создайте папку с именем «image_data» в основной папке проекта. Внутри папки image_data создайте дополнительные папки с именем человека, в которых мы будем хранить данные. Например:

В папке «image_data» я создал еще две папки с именами «HRK» и «Yahiya». как показано на изображении выше.

Теперь создайте свои собственные папки и назовите их.

Как только папки будут созданы, начните собирать изображения этого конкретного человека. Я рекомендую собирать около 20 изображений на человека. Вы также можете добавить больше изображений, но следите за тем, чтобы данные, собранные для всех людей, содержали одинаковое количество изображений. Это помогает обеспечить точность.

вот и все, теперь перейдем к шагу 4.

Шаг 4: Обучение

Вкратце, мы пройдемся по всем папкам и изображениям, которые присутствуют в папке «image_data», и создадим словарь, который будет содержать идентификатор метки и соответствующее имя. Одновременно мы загрузим изображение для обнаружения лица на каждом изображении, которое мы называем «Область интереса», и создадим файл «.yml», содержащий эту информацию.

Предполагая, что у вас есть данные, собранные для лиц X и Y.

мы пометим человека X как 1, который будет его идентификатором ярлыка, а имя будет само X. Мы загружаем изображение, чтобы найти его лицо, то есть интересующую область, и добавляем данные в список.

аналогичные шаги будут выполнены для человека Y. И, наконец, мы создадим файл «.yml».

Загрузите файл «face_trainer.py» и поместите его в основную папку проекта. Все необходимые объяснения содержатся в самом файле.

Когда вы запустите эту программу, она просмотрит все изображения и создаст два файла с именами «labels.pickle» и «trainner.yml». Теперь вы обучили свою собственную модель. Итак, приступим к шагу 5.

Шаг 5: Распознавание лиц

Распознавание лица
Распознавание лица

Если вы выполнили все шаги правильно, возможно, вы создали свои собственные обученные данные. Теперь мы будем использовать эти данные для распознавания лиц.

В основном мы загружаем наши обученные модели в файл python, получаем доступ к нашей веб-камере, определяем лица в видеопотоке и выполняем сравнение или прогнозирование между текущим лицом, которое идентифицировано в видеопотоке, и моделью, которая была обучена. если данные совпадают, то мы говорим, что человек признан, это так просто …

Скачайте "face_recognise.py" и запустите. В нем представлена вся необходимая информация. Теперь ваше лицо, возможно, узнали. если точность невысока, попробуйте обновить данные. Если у вас все в порядке, то давайте перейдем к шагу 6 /

Шаг 6: Программирование Arduino

Последний и последний шаг - это программирование Arduino и обеспечение режима связи между python и Arduino. Для связи я использовал «Последовательное соединение». Просмотрите видео, на которое я ссылаюсь выше, чтобы узнать, как работает последовательная связь, и установить ее. Вы найдете все необходимые файлы в описании видео.

Если вы просмотрели видео, позвольте мне объяснить вам, что я сделал. Когда мое лицо распознается, предоставляется идентификатор метки 2. Как только идентификатор метки равен 2, я отправлю «1» в качестве последовательных данных на свой Arduino. Что включит мою схему светодиодного чейзера. Если идентификатор метки отличается от 2, я отправлю «0» в качестве последовательных данных, что отключит мою схему светодиодного чейзера.

Загрузите файл "ard_chaser.ino". Это простая программа поиска светодиодов, использующая последовательную связь.

Просто загрузите "face_recogniser1.py", который установит последовательную связь между Arduino и программой python.

Вот и все. Я надеюсь, что вы узнали что-то новое. Подпишитесь на мой канал на YouTube, чтобы узнать больше о Python и Arduino. Поделитесь этим, если вам это понравилось. Продолжайте поддерживать.

Спасибо.

Рекомендуемые: