Satura rādītājs:
- 1. darbība. Nepieciešamās lietas
- 2. darbība: Opencv ievads un instalēšana
- 3. darbība: sejas noteikšana un atpazīšana reāllaika video
- 4. darbība: koda palaišana
Video: Opencv sejas atpazīšana: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
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
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 (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
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:
Opencv sejas noteikšana, apmācība un atpazīšana: 3 soļi
Opencv sejas noteikšana, apmācība un atpazīšana: OpenCV ir atvērtā pirmkoda datora redzes bibliotēka, kas ir ļoti populāra, lai veiktu tādus pamata attēlu apstrādes uzdevumus kā aizmiglošana, attēlu sajaukšana, attēla uzlabošana, kā arī video kvalitāte, sliekšņa noteikšana utt. tas pierāda
Sejas atpazīšana un identifikācija - Arduino sejas ID, izmantojot OpenCV Python un Arduino .: 6 soļi
Sejas atpazīšana un identifikācija | Arduino sejas ID, izmantojot OpenCV Python un Arduino .: Sejas atpazīšana AKA sejas ID ir viena no svarīgākajām mūsdienu mobilo tālruņu funkcijām. Tātad, man radās jautājums " vai man var būt sejas ID savam Arduino projektam " un atbilde ir jā … Mans ceļojums sākās šādi: 1. solis: piekļuve mums
ESP32 CAM sejas atpazīšana ar MQTT atbalstu - AI domātājs: 4 soļi
ESP32 CAM sejas atpazīšana ar MQTT atbalstu | AI domātājs: Sveiki! Es gribēju dalīties ar sava projekta kodu, ja man būtu nepieciešama ESP CAM ar sejas atpazīšanu, kas varētu nosūtīt datus MQTT. Tik labi .. pēc varbūt 7 stundu ilgas skatīšanās, izmantojot vairākus koda piemērus, un meklējot, kas ir kas, man ir finišs
Sejas atpazīšana reāllaikā: pilns projekts: 8 soļi (ar attēliem)
Reāllaika sejas atpazīšana: visaptverošs projekts: Pēdējā apmācībā, kurā pētīju OpenCV, mēs uzzinājām AUTOMĀTISKĀS VISIJAS OBJEKTA IZSEKOŠANU. Tagad mēs izmantosim savu PiCam, lai atpazītu sejas reāllaikā, kā redzams zemāk: Šis projekts tika veikts ar šo fantastisko " Atvērtā pirmkoda datora redzes bibliotēku & qu
Sejas noteikšana+atpazīšana: 8 soļi (ar attēliem)
Sejas noteikšana+atpazīšana: Šis ir vienkāršs sejas noteikšanas un atpazīšanas piemērs ar OpenCV no kameras. PIEZĪME: Es šo projektu izstrādāju sensoru konkursam, un es izmantoju kameru kā sensoru, lai izsekotu un atpazītu sejas. Tātad, mūsu mērķis šajā sesijā: 1. Instalējiet Anaconda