Satura rādītājs:
- 1. darbība: sejas noteikšana reāllaika video
- 2. darbība. Paraugu attēlu apmācība
- 3. darbība. Seju atpazīšana
Video: Opencv sejas noteikšana, apmācība un atpazīšana: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
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. Papildus attēlu apstrādei tā nodrošina dažādas iepriekš apmācītas dziļas mācīšanās modeļus, kurus var tieši izmantot vienkāršu uzdevumu risināšanai.
opencv instalēšanai izmantojiet šo saiti
www.instructables.com/id/Opencv-and-Python…
1. darbība: sejas noteikšana reāllaika video
jūs varat meklēt google daudzas sejas noteikšanas programmas, un atklātās sejas ir jāsaglabā mapē turpmākai attēlu apstrādei, piemēram, apmācībai un marķēšanai. mēs savāksim 30 paraugus
importēt cv2
importēt numpy kā np
importēt os importa sistēmu
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #pievienojiet harcascade faila ceļu
name = raw_input ("Kāds ir viņa vārds?")
#visi faili tiks saglabāti mapē Lietotāji/prasad/Dokumenti/attēli
dirName = "/Users/prasad/Documents/images/" + nosaukums
drukāt (dirName), ja nav os.path.exists (dirName): os.makedirs (dirName) print ("Direktorijs izveidots") cits: print ("Vārds jau pastāv") sys.exit ()
skaits = 1
#mēs savāksim 30 paraugus
kamēr skaits 30: break # frame = frame.array pelēks = cv2.cvtColor (kadrs, cv2. COLOR_BGR2GRAY) sejas = faceCascade.detectMultiScale (pelēks, 1,5, 5) (x, y, w, h) sejās: roiGray = pelēks [y: y + h, x: x + w] fileName = dirName + "/" + nosaukums + str (skaits) + ".jpg" cv2.imwrite (faila nosaukums, roiGray) cv2.imshow ("seja", roiGray) cv2. taisnstūris (rāmis, (x, y), (x+w, y+h), (0, 255, 0), 2) skaits+= 1 cv2.imshow ('rāmis', rāmis) taustiņš = cv2.gaidīšanas atslēga (1)
ja atslēga == 27:
pārtraukums
#camera.release ()
cv2.destroyAllWindows ()
2. darbība. Paraugu attēlu apmācība
Kad sejas noteikšana ir pabeigta, mēs varam doties apmācīt attēlus
importēt osimport numpy kā np no PIL importēšanas Attēls importēt cv2 importēt marinējumu #import sērijas
#ser = serial. Serial ('/dev/ttyACM0', 9600, taimauts = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
atpazīšanas ierīce = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ fails_))
#apmāciet attēlus zem attēlu mapes
imageDir = os.path.join (baseDir, "attēli")
strāvas ID = 1
labelIds = {} yLabels = xTrain = #ser.write ("Apmācība…..". kodēt ())
saknei, dirs, failiem os.walk (imageDir):
drukāt (root, dirs, faili) failā esošajam failam: drukāt (fails), ja file.endswith ("png") vai file.endswith ("jpg"): ceļš = os.path.join (sakne, fails) label = os.path.basename (root) print (etiķete)
ja nav etiķetes etiķetēIds:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [iezīme]
pilImage = Image.open (ceļš).convert ("L") imageArray = np.array (pilImage, "uint8") sejas = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbours = 5)
(x, y, w, h) sejās:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
ar atvērtu ("etiķetes", "wb") kā f:
pickle.dump (labelIds, f) f.close ()
atpazinējs.train (xTrain, np.array (yLabels))
atpazinējs.save ("trainer.yml") drukāt (labelIds)
3. darbība. Seju atpazīšana
pēc apmācības beigām varat palaist zemāk redzamo kodu, lai tas sāktu atpazīt jūsu apmācītās sejas
importēt osos.environ ['PYTHONINSPECT'] = 'importēt cv2 importēt numpy kā np importēt marinējumu #import RPi. GPIO kā GPIO no laika importēšanas miega
ar atvērtu ("etiķetes", "rb") kā f:
dicti = marinēts gurķis. ielādēt (f) f. aizvērt ()
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
atpazītājs = cv2.face. LBPHFaceRecognizer_create () atpazīšanas līdzeklis.lasījums ("trainer.yml")
fonts = cv2. FONT_HERSHEY_SIMPLEX
pēdējais ="
#kadram kamerā.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
kamēr True: ret, frame = camera.read () pelēks = cv2.cvtColor (kadrs, cv2. COLOR_BGR2GRAY) sejas = faceCascade.detectMultiScale (pelēks, scaleFactor = 1,5, minNeighbours = 5) (x, y, w, h) sejās: roiGray = pelēks [y: y+h, x: x+w]
id_, conf = atpazinējs.predict (roiGray)
vārdam, vērtībai dicti.items ():
if value == id_: print (name) cv2.putText (kadrs, nosaukums, (x, y), fonts, 2, (0, 0, 255), 2, cv2. LINE_AA) ja nosaukums! = last: last = nosaukums, ja conf <= 70: cv2. taisnstūris (rāmis, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('rāmis', kadrs)
atslēga = cv2.waitKey (1)
ja atslēga == 27:
break cv2.destroyAllWindows ()
Ieteicams:
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
Opencv sejas atpazīšana: 4 soļi
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
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
Sejas un acu noteikšana ar Raspberry Pi Zero un Opencv: 3 soļi
Sejas un acu noteikšana ar Raspberry Pi Zero un Opencv: Šajā pamācībā es parādīšu, kā jūs varat noteikt seju un acis, izmantojot aveņu pi un opencv. Šī ir mana pirmā pamācība opencv. Es sekoju daudzām apmācībām, lai izveidotu aveņu atvērto cv, bet katru reizi pārsteidza ar dažām kļūdām. Jebkurā gadījumā es