Բովանդակություն:
- Քայլ 1: Ձեզ անհրաժեշտ բաներ
- Քայլ 2: Opencv-Intro և տեղադրում
- Քայլ 3. Իրական ժամանակի տեսանյութում դեմքի հայտնաբերում և ճանաչում
- Քայլ 4: Գործարկեք ծածկագիրը
Video: Opencv դեմքի ճանաչում. 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Դեմքի ճանաչումը բավականին տարածված բան է այսօր, շատ ծրագրերում, ինչպիսիք են սմարթ հեռախոսները, բազմաթիվ էլեկտրոնային գործիքները: Այս տեսակի տեխնոլոգիան ներառում է բազմաթիվ ալգորիթմներ և գործիքներ և այլն: որն օգտագործում է որոշ ներկառուցված ներկառուցված SOC պլատֆորմներ, ինչպիսիք են Raspberry Pi- ն և բաց կոդով համակարգչային տեսլականը: գրադարաններ, ինչպիսիք են OpenCV- ն, այժմ կարող եք դեմքի ճանաչում ավելացնել ձեր իսկ կիրառական ծրագրերին, ինչպիսիք են ՝ անվտանգության համակարգերը:
Այս նախագծում ես ձեզ կասեմ, թե ինչպես կարելի է կառուցել դեմքի ճանաչում ՝ օգտագործելով Raspberry Pi- ն, և մենք օգտագործել ենք arduino+Lcd ՝ անձի անունը ցուցադրելու համար:
Քայլ 1: Ձեզ անհրաժեշտ բաներ
1. ASԵASՈՐԻ ՊԻ
2. ԱՐԴՈINԻՆՈ ՅՈOՆՈ / ՆԱՆՈ
3.16x2 lCD ISՈISՅ
4. RASPI-CAMERA / WEBcam (ավելի լավ արդյունքների համար նախընտրում եմ վեբ-տեսախցիկը)
Քայլ 2: 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 updatesudo apt-get upgrade
Տերմինալում մուտքագրեք հետևյալ հրամանները ՝ ձեր Raspberry Pi- ի վրա OpenCV- ի համար անհրաժեշտ փաթեթները տեղադրելու համար:
sudo apt տեղադրել libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
Մուտքագրեք հետևյալ հրամանը ՝ ձեր Raspberry Pi- ի վրա OpenCV 3 Python 3 -ի համար տեղադրելու համար, pip3- ը մեզ ասում է, որ OpenCV- ն կտեղադրվի Python 3 -ի համար:
sudo pip3 տեղադրեք opencv-contrib-python libwebp6
Այժմ, OpenCV- ն պետք է տեղադրվի:
(եթե որևէ սխալ է տեղի ունեցել. դեռ կարող եք դա անել ՝ հետևելով ստորև բերված հղմանը
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Հիմա մի շտապեք, մենք պետք է ստուգենք ՝ այն ճիշտ տեղադրված է, թե ոչ
Փորձարկեք ձեր opencv- ն ՝
1. Գնացեք ձեր տերմինալ և typr "python"
2. ապա մուտքագրել «ներմուծել cv2»:
3. ապա մուտքագրեք «cv2._ տարբերակ_»:
ապա տեղադրել այս գրադարանները
pip3 տեղադրել python-numpy
pip3 տեղադրել python-matplotlib
Պատկերի դեմքերը հայտնաբերելու համար փորձարկման կոդ
ներմուծել cv2
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");
image = cv2.imread («ձեր ֆայլի անունը») #օրինակ cv2.imread («home/pi/Desktop/filename.jpg»)
արդյունքը կստանաք այնպես, ինչպես քառակուսի տուփեր են ձևավորվել նկարում պատկերված մարդկանց դեմքերին:
Քայլ 3. Իրական ժամանակի տեսանյութում դեմքի հայտնաբերում և ճանաչում
ներմուծել cv2
ներմուծել numpy որպես np
ներմուծել os
ներմուծման սերիա
ser = serial. Սերիալ ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0- ը կարող է փոխվել ձեր դեպքում, կախված է arduino- ից
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)
ճանաչող = cv2.face.createLBPHFaceRecognizer ()
պատկերներ =
պիտակներ =
os.listdir ('Տվյալների հավաքածու') ֆայլի անվան համար
im = cv2.imread ('Տվյալների հավաքածու/'+ֆայլի անուն, 0)
images.append (im)
labels.append (int (filename.split ('.') [0] [0]))
#տպել ֆայլի անունը
names_file = բաց ('labels.txt')
անուններ = names_file.read (). պառակտում ('\ n')
ճանաչող. գնացք (պատկերներ, np.array (պիտակներ))
տպել 'Ուսուցումն ավարտված է:.. '
տառատեսակ = cv2. FONT_
HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # ձեր տեսասարքը
lastRes = "" հաշվարկ = 0
մինչդեռ (1):
_, շրջանակ = cap.read ()
մոխրագույն = cv2.cvtColor (շրջանակ, cv2. COLOR_BGR2GRAY)
դեմքեր = faceCascade.detectMultiScale (մոխրագույն, 1.3, 5)
հաշվել+= 1
(x, y, w, h) դեմքերի համար
cv2. ուղղանկյուն (շրջանակ, (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.wait բանալին (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
ինչպես վերը նշվածը, կարող եք ավելացնել պիտակներ համապատասխան անձանց համար,
Այսպիսով, եթե pi- ն հայտնաբերում է որևէ դեմք 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»-ի միջոցով
Խորհուրդ ենք տալիս:
Opencv դեմքի հայտնաբերում, ուսուցում և ճանաչում. 3 քայլ
Opencv դեմքի հայտնաբերում, ուսուցում և ճանաչում. OpenCV- ը բաց կոդով համակարգչային տեսադարան է, որը շատ տարածված է պատկերի մշակման հիմնական առաջադրանքների կատարման համար, ինչպիսիք են ՝ պղտորումը, պատկերի միաձուլումը, պատկերի, ինչպես նաև տեսանյութի որակի բարձրացումը, շեմը և այլն: Բացի պատկերի մշակումից, դա ապացուցում է
Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ
Դեմքի ճանաչում և նույնականացում | Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. Դեմքի ճանաչում AKA face ID- ն մեր օրերում բջջային հեռախոսների ամենակարևոր հատկություններից է: Այսպիսով, ես ունեի մի հարց " կարո՞ղ եմ ունենալ դեմքի ID իմ Arduino նախագծի համար " և պատասխանը այո է … Իմ ճանապարհորդությունը սկսվեց հետևյալ կերպ. Քայլ 1. Մուտք դեպի մեզ
Դեմքի ճանաչում պրակտիկայում. 21 քայլ
Դեմքի ճանաչում պրակտիկայում. Սա այն առարկան է, որով ես այնքան հրապուրված եմ, որ ստիպում է ինձ քնել: Համակարգչային տեսլականը, օբյեկտների և մարդկանց հայտնաբերումը նախապես պատրաստված մոդելի միջոցով
ESP32 CAM դեմքի ճանաչում MQTT աջակցությամբ - AI-Thinker: 4 քայլ
ESP32 CAM դեմքի ճանաչում MQTT աջակցությամբ | AI-Thinker. Բարև, ես ուզում էի կիսել ծրագրի իմ ծածկագիրը, եթե ինձ պետք էր ունենալ ESP CAM ՝ դեմքի ճանաչմամբ, որը կարող էր տվյալներ ուղարկել MQTT- ին: Շատ լավ: Միգուցե 7 ժամ փնտրելով բազմաթիվ կոդերի օրինակներ և փնտրելով այն, ինչ ինչ է, ես ավարտեցի
Իրական ժամանակի Դեմքի ճանաչում. Անընդհատ նախագիծ ՝ 8 քայլ (նկարներով)
Իրական ժամանակի դեմքի ճանաչում. Անընդհատ ծրագիր. OpenCV- ն ուսումնասիրող իմ վերջին ձեռնարկում մենք սովորեցինք ԱՎՏՈՄԱՏԱԿԱՆ ՎԻISԻԱՆԻ ՕԲՅԵԿՏԻ ԳՆԱՀԱՏՈՄ: Այժմ մենք կօգտագործենք մեր PiCam- ը `իրական ժամանակում դեմքերը ճանաչելու համար, ինչպես տեսնում եք ստորև