Sisukord:

Opencv näotuvastus: 4 sammu
Opencv näotuvastus: 4 sammu

Video: Opencv näotuvastus: 4 sammu

Video: Opencv näotuvastus: 4 sammu
Video: Face Detection with OpenCV in Python using a Raspberry Pi 4 8Gb RAM 2024, November
Anonim
Opencv näotuvastus
Opencv näotuvastus

Näotuvastus on tänapäeval üsna tavaline asi paljudes rakendustes, näiteks nutitelefonides, paljudes elektroonilistes vidinates. Selline tehnoloogia hõlmab palju algoritme ja tööriistu jne., Mis kasutab mõnda sisseehitatud sisseehitatud SOC -platvormi, näiteks Raspberry Pi ja avatud lähtekoodiga arvutinägemust raamatukogud nagu OpenCV, saate nüüd lisada näotuvastuse oma rakendustele, näiteks turvasüsteemidele.

Selles projektis räägin teile, kuidas Raspberry Pi abil näotuvastust luua ja oleme kasutanud inimese nime kuvamiseks arduino+Lcd.

Samm: asjad, mida vajate

Asjad, mida vajate
Asjad, mida vajate

1. VAARIKAS PI

2. ARDUINO UNO / NANO

3,16x2 lCD -Ekraan

4. RASPI-CAMERA / WEBcam (paremate tulemuste jaoks eelistan veebikaamerat)

2. samm: Opencv-sissejuhatus ja installimine

Opencv-sissejuhatus ja installimine
Opencv-sissejuhatus ja installimine

OpenCV (avatud lähtekoodiga arvutinägemisteek) on väga kasulik raamatukogu - see pakub palju kasulikke funktsioone, nagu teksti tuvastamine, näotuvastus, objektide tuvastamine, sügavuskaartide loomine ja masinõpe.

See artikkel näitab teile, kuidas installida Opencv ja muud teegid Raspberry Pi -le, mis on abiks objektide tuvastamise ja muude projektide tegemisel. Sealt õpime, kuidas teha pildi- ja videotoiminguid, täites objektide tuvastamise ja masinõppe projekti. Täpsemalt kirjutame pildil nägude tuvastamiseks lihtsa koodi.

Mis on OpenCV?

OpenCV on avatud lähtekoodiga arvutite nägemise ja masinõppe tarkvara kogu. OpenCV on välja antud BSD litsentsi alusel, muutes selle tasuta nii akadeemiliseks kui ka äriliseks kasutamiseks. Sellel on C ++, Python ja Java liidesed ning see toetab Windowsi, Linuxi, Mac OS -i, iOS -i ja Androidi. OpenCV on loodud arvutusliku efektiivsuse tagamiseks ja keskendub tugevalt reaalajas rakendustele.

Kuidas installida OpenCV Raspberry Pi -le?

OpenCV installimiseks peab meil olema Python installitud. Kuna Raspberry Pis on Pythoniga eellaaditud, saame OpenCV otse installida.

Sisestage allolevad käsud, et veenduda, kas teie Raspberry Pi on ajakohane, ja värskendada Raspberry Pi installitud pakette uusimatele versioonidele.

sudo apt-get updates sud apt-get upgrade

Sisestage terminalis järgmised käsud, et installida oma Raspberry Pi jaoks OpenCV jaoks vajalikud paketid.

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

Sisestage järgmine käsk, et installida oma Raspberry Pi jaoks OpenCV 3 Python 3 jaoks, pip3 ütleb meile, et OpenCV installitakse Python 3 jaoks.

sudo pip3 installige opencv-contrib-python libwebp6

Nüüd tuleks OpenCV installida.

(kui ilmnesid vead: saate seda siiski teha, järgides allolevat linki

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

Ärge kiirustage, peame kontrollima, kas see oli õigesti paigaldatud või mitte

Testige oma opencv -d järgmiselt:

1. minge oma terminali ja tippige "python"

2. seejärel tippige "import cv2".

3. seejärel tippige "cv2._ version_".

seejärel installige need teegid

pip3 install python-numpy

pip3 installige python-matplotlib

Testkood pildi nägude tuvastamiseks:

import cv2

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

image = cv2.imread ('teie faili nimi') #example cv2.imread ('home/pi/Desktop/filename.jpg')

saate väljundi nagu ruudukujulised kastid, mis on moodustatud pildil olevate inimeste nägudele.

3. samm: näo tuvastamine ja äratundmine reaalajas videos

import cv2

import numpy np -na

import os

impordi seeria

ser = jada. Seriaal ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 võib teie puhul muutuda, sõltub arduino'st

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

äratundja = cv2.face.createLBPHFaceRecognizer ()

pildid =

sildid =

failinime jaoks os.listdir ('andmekogum'):

im = cv2.imread ('Andmekogum/'+failinimi, 0)

images.append (im)

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

#print failinimi

names_file = avatud ('labels.txt')

names = names_file.read (). split ('\ n')

tunnistaja.treen (pildid, np.massiiv (sildid))

print 'Koolitus tehtud… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # teie videoseade

lastRes = "count = 0

samas (1):

_, frame = cap.read ()

hall = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY)

näod = faceCascade.detectMultiScale (hall, 1,3, 5)

loe+= 1

(x, y, w, h) nägude puhul:

cv2. ristkülik (raam, (x, y), (x+w, y+h), (255, 0, 0), 2)

kui arv> 20: res = nimed [äratundja.prognoos (hall [y: y+h, x: x+w])-1]

kui res! = lastRes:

lastRes = res

print lastRes

ser.write (lastRes)

loend = 0

murda

cv2.imshow ('raam', kaader)

k = 0xFF & cv2.waitKey (10)

kui k == 27:

murda

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

Samm: koodi käivitamine

Koodi käitamine
Koodi käitamine

1. Laadige alla eelmises etapis manustatud failid

2. kopeerige oma hallid fotod (6 pilti/ näidist …..) oma andmekogumi kausta

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (andmekogumi pildi number avatud andmekogumi kausta jaoks)

2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6

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

sarnaselt ülaltoodule saate lisada vastavate isikute sildid,

nii et kui pi tuvastab näo 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 hulgast, nägi see nime Tom Cruise, seega olge fotode üleslaadimisel ettevaatlik ………………

ja seejärel ühendage oma arduino oma vaarika Pi -ga ja tehke muudatused main.pyodeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. sisestage kõik allalaaditud failid (main.py, andmestiku kaust, haarcascade_frontalface_default.xml ühes kaustas.)

3. Nüüd avage Raspi terminal, käivitage oma kood "sudo python main.py" abil

Soovitan: