Съдържание:

Opencv разпознаване на лица: 4 стъпки
Opencv разпознаване на лица: 4 стъпки

Видео: Opencv разпознаване на лица: 4 стъпки

Видео: Opencv разпознаване на лица: 4 стъпки
Видео: Golang OpenCV Realtime Face Detection + Screen Capturing [gocv] 2024, Юли
Anonim
Opencv разпознаване на лица
Opencv разпознаване на лица

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

В този проект ще ви кажа как да изградите разпознаване на лица с помощта на Raspberry Pi и ние използвахме arduino+Lcd, за да покажем името на човека.

Стъпка 1: Неща, от които се нуждаете

Нещата, от които се нуждаете
Нещата, от които се нуждаете

1. МАЛИНА PI

2. ARDUINO UNO / NANO

3,16 x 2 lcd Дисплей

4. RASPI-CAMERA / WEBcam (предпочитам уеб камера за по-добри резултати)

Стъпка 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 updates sudo apt-get надстройка

Въведете следните команди в терминала, за да инсталирате необходимите пакети за OpenCV на вашия Raspberry Pi.

sudo apt инсталирате libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore

Въведете следната команда, за да инсталирате 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

внос os

внос сериен

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

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

разпознавач = cv2.face.createLBPHFaceRecognizer ()

изображения =

етикети =

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

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

images.append (im)

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

#print име на файл

names_file = open ('labels.txt')

имена = имена_файл.read (). разделен ('\ n')

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

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

font = cv2. FONT_

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

lastRes = '' count = 0

докато (1):

_, frame = cap.read ()

сиво = cv2.cvtColor (рамка, cv2. COLOR_BGR2GREY)

фасони = faceCascade.detectMultiScale (сиво, 1.3, 5)

брой+= 1

за (x, y, w, h) в лица:

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

ако брой> 20: res = имена [разпознаващ.предсказване (сив [y: y+h, x: x+w])-1]

ако res! = lastRes:

lastRes = res

отпечатайте lastRes

ser.write (lastRes)

брой = 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 към вашия малинов Pi и направете промени в main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. въведете всички изтеглени файлове (main.py, папка с данни, haarcascade_frontalface_default.xml в една папка.)

3. Сега отворете Raspi-терминала, стартирайте кода си чрез "sudo python main.py"

Препоръчано: