Kazalo:

Prepoznavanje obrazov Opencv: 4 koraki
Prepoznavanje obrazov Opencv: 4 koraki

Video: Prepoznavanje obrazov Opencv: 4 koraki

Video: Prepoznavanje obrazov Opencv: 4 koraki
Video: Face recognition with python and opencv2 #python #opencv #opencv2 #opencvpython #doctorwho 2024, Julij
Anonim
Opencv prepoznavanje obrazov
Opencv prepoznavanje obrazov

Prepoznavanje obrazov je danes precej pogosta stvar, v številnih aplikacijah, kot so pametni telefoni, številni elektronski pripomočki. Ta vrsta tehnologije vključuje veliko algoritmov in orodij itd., Ki uporablja nekatere vgrajene vgrajene platforme SOC, kot sta Raspberry Pi in odprtokodni računalniški vid. knjižnice, kot je OpenCV, lahko zdaj dodate prepoznavanje obrazov v svoje aplikacije, kot so varnostni sistemi.

V tem projektu vam bom povedal, kako z uporabo Raspberry Pi ustvariti prepoznavanje obrazov in za prikaz imena osebe smo uporabili arduino+Lcd.

Korak: Stvari, ki jih potrebujete

Stvari, ki jih potrebujete
Stvari, ki jih potrebujete

1. MALINA PI

2. ARDUINO UNO / NANO

3,16 x 2 lcd Zaslon

4. RASPI-KAMERA / Spletna kamera (za boljše rezultate imam raje spletno kamero)

2. korak: Opencv-Intro in namestitev

Opencv-Intro in namestitev
Opencv-Intro in namestitev

OpenCV (odprtokodna knjižnica računalniškega vida) je zelo uporabna knjižnica - ponuja številne uporabne funkcije, kot so prepoznavanje besedila, prepoznavanje obrazov, zaznavanje predmetov, ustvarjanje zemljevidov globine in strojno učenje.

Ta članek vam bo pokazal, kako na Raspberry Pi namestite Opencv in druge knjižnice, ki vam bodo prišle prav pri odkrivanju objektov in drugih projektih. Od tam se bomo naučili izvajati slikovne in video operacije z izvajanjem projekta prepoznavanja objektov in strojnega učenja. Natančneje, napisali bomo preprosto kodo za zaznavanje obrazov na sliki.

Kaj je OpenCV?

OpenCV je odprtokodna knjižnica programske opreme za računalniški vid in strojno učenje. OpenCV je izdan pod licenco BSD, zato je brezplačen za akademsko in komercialno uporabo. Ima vmesnike C ++, Python in Java ter podpira Windows, Linux, Mac OS, iOS in Android. OpenCV je bil zasnovan za računalniško učinkovitost in velik poudarek na aplikacijah v realnem času.

Kako namestiti OpenCV na Raspberry Pi?

Če želimo namestiti OpenCV, moramo imeti nameščen Python. Ker je Raspberry Pis vnaprej naložen s Pythonom, lahko namestimo OpenCV neposredno.

Vnesite spodnje ukaze, da se prepričate, ali je vaš Raspberry Pi posodobljen in posodobite nameščene pakete na vašem Raspberry Pi na najnovejše različice.

sudo apt-get updatesudo apt-get upgrade

V terminal vnesite naslednje ukaze, da namestite potrebne pakete za OpenCV na vaš Raspberry Pi.

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

Vnesite naslednji ukaz za namestitev OpenCV 3 za Python 3 na vaš Raspberry Pi, pip3 nam pove, da bo OpenCV nameščen za Python 3.

sudo pip3 namestite opencv-contrib-python libwebp6

Zdaj bi morali namestiti OpenCV.

(če je prišlo do napak: še vedno lahko to storite s spodnjo povezavo

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

Ne hitite, preveriti moramo, ali je pravilno nameščen ali ne

Preizkusite svoj opencv tako:

1. pojdite na svoj terminal in vnesite "python"

2. nato vnesite "import cv2".

3. nato vnesite "cv2._ version_".

nato namestite te knjižnice

pip3 namestite python-numpy

pip3 namestite python-matplotlib

Preskusna koda za zaznavanje obrazov na sliki:

uvoz cv2

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

image = cv2.imread ('ime vaše datoteke') #example cv2.imread ('home/pi/Namizje/ime datoteke.jpg')

dobili boste rezultat, kot da so na obrazih ljudi, ki so na sliki, nastale kvadratne škatle.

3. korak: Zaznavanje in prepoznavanje obraza v videoposnetku v realnem času

uvoz cv2

uvoz numpy kot np

uvoz os

uvozi serijsko

ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 se lahko v vašem primeru spremeni, odvisno od arduina

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

prepoznavalnik = cv2.face.createLBPHFaceRecognizer ()

slike =

oznake =

za ime datoteke v os.listdir ('Dataset'):

im = cv2.imread ('Nabor podatkov/'+ime datoteke, 0)

images.append (im)

labels.append (int (ime datoteke.split ('.') [0] [0]))

#print ime datoteke

names_file = open ('labels.txt')

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

prepoznaval.train (slike, np.array (oznake))

natisni 'Usposabljanje končano… '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # vaša video naprava

lastRes = '' count = 0

medtem ko (1):

_, okvir = cap.read ()

siva = cv2.cvtColor (okvir, cv2. COLOR_BGR2GRAY)

obrazov = faceCascade.detectMultiScale (siva, 1.3, 5)

štetje+= 1

za (x, y, w, h) v obrazih:

cv2.rectangle (okvir, (x, y), (x+w, y+h), (255, 0, 0), 2)

če šteje> 20: res = imena [prepoznavalnik.predvidi (sivo [y: y+h, x: x+w])-1]

če res! = lastRes:

lastRes = res

natisni lastRes

ser.write (lastRes)

štetje = 0

prekiniti

cv2.imshow ('okvir', okvir)

k = 0xFF & cv2.waitKey (10)

če je k == 27:

prekiniti

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

4. korak: Zaženite kodo

Izvajanje kode
Izvajanje kode

1. Prenesite datoteke, priložene v prejšnjem koraku

2. kopirajte svoje sive fotografije (6 slik/ vzorcev…..) v mapo nabora podatkov

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (številka slike nabora podatkov za bolj odprto mapo nabora podatkov)

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

3. Lev-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

tako kot zgoraj lahko dodate oznake za ustrezne osebe,

Torej, če pi zazna kateri koli obraz med 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, je bil označen kot Tom Cruise, zato bodite previdni pri nalaganju fotografij ……………….

in nato povežite svoj arduino z malinovim Pi in naredite spremembe v main.py codeser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. vnesite vse prenesene datoteke (main.py, mapa nabora podatkov, haarcascade_frontalface_default.xml v eni mapi.)

3. Zdaj odprite terminal Raspi in zaženite kodo z "sudo python main.py"

Priporočena: