Բովանդակություն:
- Քայլ 1. Դեմքի հայտնաբերում իրական ժամանակի տեսանյութում
- Քայլ 2. Վերապատրաստեք ձեր օրինակելի պատկերները
- Քայլ 3. Դեմքերի ճանաչում
Video: Opencv դեմքի հայտնաբերում, ուսուցում և ճանաչում. 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
OpenCV- ը բաց կոդով համակարգչային տեսադարան է, որը շատ տարածված է պատկերի մշակման հիմնական առաջադրանքների կատարման համար, ինչպիսիք են ՝ պղտորումը, պատկերի միաձուլումը, պատկերի բարձրացումը, ինչպես նաև տեսանյութի որակը, շեմը և այլն: մոդելներ, որոնք կարող են ուղղակիորեն օգտագործվել ձեռքի տակ եղած պարզ խնդիրների լուծման համար:
opencv տեղադրման համար օգտագործեք այս հղումը
www.instructables.com/id/Opencv-and-Python…
Քայլ 1. Դեմքի հայտնաբերում իրական ժամանակի տեսանյութում
կարող եք Google- ում որոնել դեմքի հայտնաբերման բազմաթիվ ծրագրեր, և հայտնաբերված դեմքերը պետք է պահվեն թղթապանակում ՝ պատկերի հետագա մշակման համար, օրինակ ՝ ուսուցում և պիտակավորում: մենք պատրաստվում ենք հավաքել 30 նմուշ
ներմուծել cv2
ներմուծել numpy որպես np
ներմուծում os ներմուծում sys
տեսախցիկ = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #ավելացնել ձեր harcascade ֆայլի ուղին
name = raw_input («Ի՞նչ է նրա անունը»)
#բոլոր ֆայլերը կպահվեն Users/prasad/Documents/images պանակում
dirName = "/Users/prasad/Documents/images/" + անուն
տպել (dirName), եթե ոչ os.path.exists (dirName): os.makedirs (dirName) print ("Directory Created") else: print ("Name უკვე կա") sys.exit ()
հաշվել = 1
#պատրաստվում ենք հավաքել 30 նմուշ
մինչ հաշվել 30 -ը `ընդմիջում # շրջանակ = շրջանակ: շարք մոխրագույն = cv2.cvtColor (շրջանակ, cv2. COLOR_BGR2GRAY) դեմքեր = faceCascade.detectMultiScale (մոխրագույն, 1.5, 5) դեմքի համար (x, y, w, h): roiGray = մոխրագույն [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2. ուղղանկյուն (շրջանակ, (x, y), (x+w, y+h), (0, 255, 0), 2) հաշվիչ. սպասել բանալին (1)
եթե բանալին == 27:
ընդմիջում
#camera.release ()
cv2.destroyAllWindows ()
Քայլ 2. Վերապատրաստեք ձեր օրինակելի պատկերները
Դեմքի հայտնաբերման ավարտից հետո մենք կարող ենք գնալ պատկերների ուսուցման
ներմուծել osimport numpy as np PIL import- ից Image ներմուծել cv2 ներմուծել թթու #ներմուծել սերիալ
#ser = սերիա. Սերիալ ('/dev/ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
ճանաչող = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ ֆայլ_))
#վարժեցրեք պատկերները պատկերների պանակի տակ
imageDir = os.path.join (baseDir, «պատկերներ»)
ընթացիկ ID = 1
labelIds = {} yLabels = xTrain = #ser.write ("Ուսուցում…..". ծածկագրել ())
root.rs- ի, os.walk- ի ֆայլերի համար (imageDir):
տպել (արմատ, dirs, ֆայլեր) ֆայլերի համար. տպել (ֆայլ), եթե file.endswith ("png") կամ file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (արմատ) տպել (պիտակ)
եթե պիտակ չկա labelIds- ում ՝
labelIds [label] = currentId տպագիր (labelIds) currentId += 1
id_ = labelIds [պիտակ]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") face = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, min Հարևաններ = 5)
(x, y, w, h) դեմքերի համար.
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
բաց («պիտակներ», «wb») ինչպես f:
pickle.dump (labelIds, f) f.close ()
ճանաչիչ. գնացք (xTrain, np.array (yLabels))
ճանաչիչ. պահպանել ("trainer.yml") տպել (labelIds)
Քայլ 3. Դեմքերի ճանաչում
վերապատրաստման ավարտից հետո այժմ կարող եք գործարկել ստորև նշված կոդը, որպեսզի այն սկսի ճանաչել ձեր վարժեցված դեմքերը
ներմուծել osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import թթու #ներմուծել RPi. GPIO as GPIO from time import import sleep
բաց («պիտակներ», «rb») ինչպես f:
dicti = pickle.load (f) f.close ()
տեսախցիկ = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
ճանաչող = cv2.face. LBPHFaceRecognizer_create () ճանաչիչ. ընթերցում ("trainer.yml")
տառ = cv2. FONT_HERSHEY_SIMPLEX
վերջին ="
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
իսկ True: ret, frame = camera.read () gray = cv2.cvtColor (շրջանակ, cv2. COLOR_BGR2GRAY) դեմքեր = faceCascade.detectMultiScale (մոխրագույն, scaleFactor = 1.5, minNeighbors = 5) (x, y, w, h) դեմքերում ՝ roiGray = մոխրագույն [y: y+h, x: x+w]
id_, conf = ճանաչող. կանխատեսել (roiGray)
անվան համար, արժեքը dicti.items- ում ():
if value == id_: print (name) cv2.putText (frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name! = last: last = անունը, եթե conf <= 70: cv2. ուղղանկյուն (շրջանակ, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow («շրջանակ», շրջանակ)
բանալին = cv2.waitKey (1)
եթե բանալին == 27:
ընդմիջում cv2.destroyAllWindows ()
Խորհուրդ ենք տալիս:
Դեմքի ճանաչում և նույնականացում - 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 ժամ փնտրելով բազմաթիվ կոդերի օրինակներ և փնտրելով այն, ինչ ինչ է, ես ավարտեցի
Opencv դեմքի ճանաչում. 4 քայլ
Դեմքի ճանաչում. Օրերս բավականին տարածված բան է, սմարթ հեռախոսների, բազմաթիվ էլեկտրոնային գործիքների նման ծրագրերում: Այս տեսակի տեխնոլոգիան ներառում է բազմաթիվ ալգորիթմներ և գործիքներ և այլն:
Դեմքի հայտնաբերում+ճանաչում. 8 քայլ (նկարներով)
Դեմքի հայտնաբերում+ճանաչում. Սա պարզ օրինակ է ՝ տեսախցիկից OpenCV- ով դեմքի հայտնաբերման և ճանաչման գործարկման: ՈEՇԱԴՐՈԹՅՈՆ. ԱՅՍ JՐԱԳԻՐԸ ԿԱՏԱՐԵԼ ԵՄ ՍԵՆՍՈՐ ՄՐTՈՅԹԻ ՀԱՄԱՐ և ՕԳՏԱԳՈՐՈՄ ԵՄ ԿԱՄԵՐԱՅԻՆ ՝ որպես սենսոր ՝ հետևելու և ճանաչելու դեմքերին: Այսպիսով, մեր նպատակը Այս նստաշրջանում 1. Տեղադրեք Anaconda