Satura rādītājs:

Opencv sejas atpazīšana: 4 soļi
Opencv sejas atpazīšana: 4 soļi

Video: Opencv sejas atpazīšana: 4 soļi

Video: Opencv sejas atpazīšana: 4 soļi
Video: Detección de rostros en video con OpenCV 4 y Python 3 2024, Jūnijs
Anonim
Opencv sejas atpazīšana
Opencv sejas atpazīšana

Sejas atpazīšana mūsdienās ir diezgan izplatīta lieta daudzās lietojumprogrammās, piemēram, viedtālruņos, daudzos elektroniskos sīkrīkos. Šāda veida tehnoloģija ietver daudzus algoritmus un rīkus utt., Kurā tiek izmantotas dažas iegultās iegultās SOC platformas, piemēram, Raspberry Pi un atvērtā pirmkoda datora redze bibliotēkās, piemēram, OpenCV, tagad varat pievienot sejas atpazīšanu savām lietojumprogrammām, piemēram, drošības sistēmām.

Šajā projektā es jums pastāstīšu, kā izveidot sejas atpazīšanu, izmantojot Raspberry Pi, un mēs esam izmantojuši arduino+Lcd, lai parādītu personas vārdu.

1. darbība. Nepieciešamās lietas

Nepieciešamās lietas
Nepieciešamās lietas

1. AUGĻU PI

2. ARDUINO UNO / NANO

3,16x2 LCD displejs

4. RASPI-CAMERA / WEBcam (labākiem rezultātiem es dodu priekšroku tīmekļa kamerai)

2. darbība: Opencv ievads un instalēšana

Opencv-Intro un instalēšana
Opencv-Intro un instalēšana

OpenCV (atvērtā pirmkoda datora redzes bibliotēka) ir ļoti noderīga bibliotēka - tā nodrošina daudzas noderīgas funkcijas, piemēram, teksta atpazīšanu, sejas atpazīšanu, objektu noteikšanu, dziļuma karšu izveidi un mašīnmācīšanos.

Šis raksts parādīs, kā Raspberry Pi instalēt Opencv un citas bibliotēkas, kas noderēs, veicot objektu noteikšanu un citus projektus. No turienes mēs uzzināsim, kā veikt attēlu un video darbības, izpildot objektu atpazīšanas un mašīnmācīšanās projektu. Konkrēti, mēs uzrakstīsim vienkāršu kodu, lai attēlā noteiktu sejas.

Kas ir OpenCV?

OpenCV ir atvērtā pirmkoda datora redzes un mašīnmācīšanās programmatūras bibliotēka. OpenCV tiek izlaists saskaņā ar BSD licenci, padarot to bezmaksas gan akadēmiskai, gan komerciālai lietošanai. Tam ir C ++, Python un Java saskarnes, un tas atbalsta Windows, Linux, Mac OS, iOS un Android. OpenCV tika izstrādāta, lai nodrošinātu skaitļošanas efektivitāti un koncentrētos uz reāllaika lietojumprogrammām.

Kā instalēt OpenCV Raspberry Pi?

Lai instalētu OpenCV, mums ir jāinstalē Python. Tā kā Raspberry Pis ir iepriekš ielādēts ar Python, mēs varam tieši instalēt OpenCV.

Ievadiet tālāk norādītās komandas, lai pārliecinātos, ka jūsu Raspberry Pi ir atjaunināts, un atjauninātu Raspberry Pi instalētās paketes uz jaunākajām versijām.

sudo apt-get atjauninājumi sud apt-get jauninājums

Terminālī ierakstiet šādas komandas, lai Raspberry Pi instalētu nepieciešamās paketes OpenCV.

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

Ievadiet šādu komandu, lai Raspberry Pi instalētu OpenCV 3 Python 3, pip3 norāda, ka OpenCV tiks instalēts Python 3.

sudo pip3 instalējiet opencv-contrib-python libwebp6

Tagad vajadzētu instalēt OpenCV.

(ja ir radušās kļūdas: joprojām varat to izdarīt, sekojot zemāk esošajai saitei

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

Tagad nesteidzieties, mums ir jāpārbauda, vai tas ir pareizi instalēts

Pārbaudiet savu opencv:

1. dodieties uz savu termināli un ierakstiet "python"

2. pēc tam ierakstiet "importēt cv2".

3. pēc tam ierakstiet "cv2._ version_".

pēc tam instalējiet šīs bibliotēkas

pip3 instalēt python-numpy

pip3 instalējiet python-matplotlib

Pārbaudiet kodu, lai attēlā noteiktu sejas:

importēt cv2

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

image = cv2.imread ('jūsu faila nosaukums') #example cv2.imread ('home/pi/Desktop/filename.jpg')

jūs iegūsit rezultātu, piemēram, kvadrātveida kastes tika veidotas uz attēlā redzamo cilvēku sejām.

3. darbība: sejas noteikšana un atpazīšana reāllaika video

importēt cv2

importēt numpy kā np

importēt OS

importēt sēriju

ser = seriāls. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 jūsu gadījumā var mainīties, ir atkarīgs no arduino

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

atpazīšanas ierīce = cv2.face.createLBPHFaceRecognizer ()

attēli =

iezīmes =

faila nosaukumam os.listdir ('Datu kopa'):

im = cv2.imread ('Datu kopa/'+faila nosaukums, 0)

images.append (im)

labels.append (int (faila nosaukums.split ('.') [0] [0]))

#print faila nosaukums

names_file = open ('labels.txt')

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

atpazīšanas trauks (attēli, np.masīvs (etiķetes))

drukāt 'Apmācība pabeigta… '

fonts = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # jūsu video ierīce

lastRes = "skaits" = 0

kamēr (1):

_, frame = cap.read ()

pelēks = cv2.cvtColor (rāmis, cv2. COLOR_BGR2GRAY)

sejas = faceCascade.detectMultiScale (pelēka, 1.3, 5)

skaits+= 1

(x, y, w, h) sejās:

cv2. taisnstūris (rāmis, (x, y), (x+w, y+h), (255, 0, 0), 2)

ja skaits> 20: res = vārdi [atpazīstamības prognoze (pelēks [y: y+h, x: x+w])-1]

ja res! = lastRes:

lastRes = res

drukāt lastRes

ser.write (lastRes)

skaits = 0

pārtraukums

cv2.imshow ('rāmis', kadrs)

k = 0xFF & cv2.waitKey (10)

ja k == 27:

pārtraukums

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

4. darbība: koda palaišana

Koda izpildīšana
Koda izpildīšana

1. Lejupielādējiet iepriekšējā solī pievienotos failus

2. nokopējiet pelēkos fotoattēlus (6 attēli/ paraugi …..) savā datu kopas mapē

1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (datu kopas attēla numurs atvērtākai datu kopas mapei)

2. Breds Pits-2_1, 2_2, 2_3, 2_4, 2_5, 2_6

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

4. Dzelzsvīrs4_1, 4_2, 4_3, 4_4, 4_5, 4_6

tāpat kā iepriekš, jūs varat pievienot etiķetes attiecīgajām personām,

Tātad, ja pi atklāj kādu seju starp 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, tad tā tika nosaukta kā Toms Krūzs, tāpēc, lūdzu, esiet piesardzīgs, augšupielādējot fotoattēlus ………………

un pēc tam savienojiet savu arduino ar savu aveņu Pi un veiciet izmaiņas main.py koduser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. ievadiet visus lejupielādētos failus (main.py, datu kopas mape, haarcascade_frontalface_default.xml vienā mapē.)

3. Tagad atveriet Raspi termināli, palaidiet savu kodu, izmantojot "sudo python main.py"

Ieteicams: