Оглавление:

Распознавание лиц OpenCV: 4 шага
Распознавание лиц OpenCV: 4 шага

Видео: Распознавание лиц OpenCV: 4 шага

Видео: Распознавание лиц OpenCV: 4 шага
Видео: Java: OpenCV [Детекция объектов " YOLOv4 "] #4 2024, Июнь
Anonim
Распознавание лиц OpenCV
Распознавание лиц OpenCV

Распознавание лиц в наши дни является довольно распространенным явлением во многих приложениях, таких как смартфоны, многие электронные гаджеты. Этот вид технологии включает в себя множество алгоритмов и инструментов и т. Д., Которые используют некоторые встроенные встроенные платформы SOC, такие как Raspberry Pi и компьютерное зрение с открытым исходным кодом. библиотеки, такие как OpenCV, теперь вы можете добавить распознавание лиц в свои собственные приложения, такие как системы безопасности.

В этом проекте я расскажу вам, как создать распознавание лиц с помощью Raspberry Pi, и мы использовали arduino + Lcd для отображения имени человека.

Шаг 1. Вещи, которые вам нужны

Вещи, которые нужно
Вещи, которые нужно

1. малиновый PI

2. ARDUINO UNO / NANO

ЖК-ДИСПЛЕЙ 3,16x2

4. РАСПИ-КАМЕРА / ВЕБ-КАМЕРА (для лучших результатов я предпочитаю веб-камеру)

Шаг 2: Opencv-Intro и установка

Opencv-Intro и установка
Opencv-Intro и установка

OpenCV (библиотека компьютерного зрения с открытым исходным кодом) - очень полезная библиотека - она предоставляет множество полезных функций, таких как распознавание текста, распознавание лиц, обнаружение объектов, создание карт глубины и машинное обучение.

Эта статья покажет вам, как установить Opencv и другие библиотеки на Raspberry Pi, которые пригодятся при обнаружении объектов и других проектах. Оттуда мы узнаем, как выполнять операции с изображениями и видео, выполняя проект распознавания объектов и машинного обучения. В частности, мы напишем простой код для обнаружения лиц на изображении.

Что такое OpenCV?

OpenCV - это библиотека программного обеспечения для компьютерного зрения и машинного обучения с открытым исходным кодом. OpenCV выпущен под лицензией BSD, что делает его бесплатным как для академического, так и для коммерческого использования. Он имеет интерфейсы C ++, Python и Java и поддерживает Windows, Linux, Mac OS, iOS и Android. OpenCV был разработан для обеспечения вычислительной эффективности и сосредоточения внимания на приложениях реального времени.

Как установить OpenCV на Raspberry Pi?

Чтобы установить OpenCV, нам нужно установить Python. Поскольку Raspberry Pis предварительно загружен с Python, мы можем установить OpenCV напрямую.

Введите приведенные ниже команды, чтобы убедиться, что ваш Raspberry Pi актуален, и обновить установленные пакеты на вашем Raspberry Pi до последних версий.

sudo apt-get updatesudo apt-get upgrade

Введите следующие команды в терминал, чтобы установить необходимые пакеты для OpenCV на Raspberry Pi.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

Введите следующую команду, чтобы установить OpenCV 3 для Python 3 на Raspberry Pi, pip3 сообщает нам, что OpenCV будет установлен для Python 3.

sudo pip3 установить opencv-contrib-python libwebp6

Теперь OpenCV должен быть установлен.

(если возникли какие-либо ошибки: все же вы можете сделать это, перейдя по ссылке ниже

https://www.instructables.com/id/Raspberry-Pi-Hand…)

Теперь не торопитесь, нужно проверить, правильно ли он установлен.

Проверьте свой opencv:

1. зайдите в свой терминал и введите "python"

2. затем введите «import cv2».

3. затем введите "cv2._ version_".

затем установите эти библиотеки

pip3 установить python-numpy

pip3 установить python-matplotlib

Тестовый код для обнаружения лиц на изображении:

импорт cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");

image = cv2.imread ('ваше имя файла') #example cv2.imread ('home / pi / Desktop / filename.jpg')

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

Шаг 3. Обнаружение и распознавание лица в видео в реальном времени

импорт cv2

импортировать numpy как np

импорт ОС

импортный серийный номер

ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) # / dev / ttyACM0 может измениться в вашем случае, зависит от Arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

распознаватель = cv2.face.createLBPHFaceRecognizer ()

images =

label =

для имени файла в os.listdir ('Dataset'):

im = cv2.imread ('Набор данных /' + имя файла, 0)

images.append (im)

label.append (int (filename.split ('.') [0] [0]))

#print filename

names_file = open ('labels.txt')

имена = файл_именов.read (). split ('\ n')

распознаватель.train (изображения, np.array (метки))

печать 'Обучение завершено… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # ваше видеоустройство

lastRes = '' count = 0

в то время как (1):

_, frame = cap.read ()

серый = cv2.cvtColor (рамка, cv2. COLOR_BGR2GRAY)

Faces = faceCascade.detectMultiScale (серый, 1,3, 5)

count + = 1

для (x, y, w, h) в гранях:

cv2.rectangle (рамка, (x, y), (x + w, y + h), (255, 0, 0), 2)

если count> 20: res = names [распознаватель.predict (серый [y: y + h, x: x + w]) - 1]

если res! = lastRes:

lastRes = res

печать lastRes

ser.write (lastRes)

count = 0

перерыв

cv2.imshow ('рамка', рамка)

k = 0xFF & cv2.waitKey (10)

если k == 27:

перерыв

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Шаг 4: запуск кода

Запуск кода
Запуск кода

1. Загрузите файлы, прикрепленные на предыдущем шаге.

2. скопируйте серые фотографии (6 изображений / образцов…..) в папку набора данных

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (номер изображения набора данных для более открытой папки набора данных)

2. Брэд Питт-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Лев-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6

как указано выше, вы можете добавить ярлыки для соответствующих лиц,

поэтому, если пи обнаруживает какое-либо лицо среди 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, то оно было обозначено как Том Круз, поэтому будьте осторожны при загрузке фотографий ………………

а затем подключите ваш arduino к вашему raspberry Pi и внесите изменения в main.py codeser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. поместите все загруженные файлы (main.py, папка набора данных, haarcascade_frontalface_default.xml в одной папке.)

3. Теперь откройте Raspi-terminal, запустите свой код с помощью "sudo python main.py"

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