Obsah:
- Krok 1: Detekce tváře ve videu v reálném čase
- Krok 2: Trénujte své ukázkové obrázky
- Krok 3: Rozpoznávání tváří
Video: Opencv Detekce obličeje, školení a rozpoznávání: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
OpenCV je knihovna počítačového vidění s otevřeným zdrojovým kódem, která je velmi oblíbená pro provádění základních úloh zpracování obrazu, jako je rozmazání, míchání obrázků, vylepšování kvality obrazu a videa, prahování atd. Kromě zpracování obrazu poskytuje různé předem vyškolené hloubkové učení modely, které lze přímo použít k řešení jednoduchých úkolů po ruce.
pro instalaci opencv použijte tento odkaz
www.instructables.com/id/Opencv-and-Python…
Krok 1: Detekce tváře ve videu v reálném čase
na Googlu můžete vyhledat mnoho programů pro detekci tváří a detekované tváře by měly být uloženy ve složce pro další zpracování obrazu, jako je školení a označování. shromáždíme 30 vzorků
importovat cv2
import numpy jako np
import os import sys
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #přidejte cestu k harcascade souboru
name = raw_input („Jaké je jeho jméno?“)
#všechny soubory budou uloženy ve složce Users/prasad/Documents/images
dirName = "/Users/prasad/Documents/images/" + jméno
print (dirName) if not os.path.exists (dirName): os.makedirs (dirName) print ("Directory Created") else: print ("Name already exists") sys.exit ()
počet = 1
#Sbíráme 30 vzorků
zatímco počet 30: break # frame = frame.array grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) tváře = faceCascade.detectMultiScale (šedá, 1,5, 5) pro (x, y, w, h) v plochách: roiGray = šedá [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2.rectangle (frame, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
pokud klíč == 27:
přestávka
#camera.release ()
cv2.destroyAllWindows ()
Krok 2: Trénujte své ukázkové obrázky
Poté, co byla detekce obličeje dokončena, můžeme začít trénovat snímky
import osimport numpy as np from PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
rozpoznávač = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#trénujte obrázky ve složce obrázků
imageDir = os.path.join (baseDir, "obrázky")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write ("Training …..". encode ())
pro root, dirs, soubory v os.walk (imageDir):
print (root, dirs, files) pro soubor v souborech: print (file) if file.endswith ("png") or file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) tisk (štítek)
pokud není uvedeno v labelIds:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [label]
pilImage = Image.open (cesta).convert ("L") imageArray = np.array (pilImage, "uint8") Faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1,1, minNeighbors = 5)
pro (x, y, w, h) v plochách:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
s otevřeným („štítky“, „wb“) jako f:
pickle.dump (labelIds, f) f.close ()
rozpoznávač.train (xTrain, np.array (yLabels))
recognitionnizer.save ("trainer.yml") tisk (labelIds)
Krok 3: Rozpoznávání tváří
po skončení tréninku nyní můžete spustit níže uvedený kód, aby začal rozpoznávat vaše vyškolené tváře
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
s otevřeným ('štítky', 'rb') jako f:
dicti = nakládačka.load (f) f.close ()
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
Reconier = cv2.face. LBPHFaceRecognizer_create ()
font = cv2. FONT_HERSHEY_SIMPLEX
last = ''
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
while True: ret, frame = camera.read () grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (grey, scaleFactor = 1,5, minNeighbors = 5) for (x, y, w, h) v obličejích: roiGray = šedá [y: y+h, x: x+w]
id_, conf = recognitionnizer.predict (roiGray)
pro jméno, hodnota v 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 = name if conf <= 70: cv2.rectangle (frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('rámeček', rámeček)
klíč = cv2.waitKey (1)
pokud klíč == 27:
break cv2.destroyAllWindows ()
Doporučuje:
Zrcadlo pro rozpoznávání obličeje s tajným prostorem: 15 kroků (s obrázky)
Zrcadlo pro rozpoznávání obličeje s tajným prostorem: Vždy mě fascinovaly stále kreativní tajné oddíly používané v příbězích, filmech a podobně. Když jsem tedy viděl soutěž Secret Compartment Contest, rozhodl jsem se s touto myšlenkou sám experimentovat a vytvořit obyčejně vypadající zrcadlo, které otevírá
Uzamčení dveří rozpoznávání obličeje: 8 kroků
Zámek dveří rozpoznávání obličeje: Asi měsíc na výrobu představuji zámek dveří rozpoznávání obličeje! Snažil jsem se, aby to vypadalo tak úhledně, jak to jen jde, ale dokázal jsem to jen jako 13letý. Tento dveřní zámek pro rozpoznávání obličeje provozuje Raspberry Pi 4 se speciální přenosnou batt
Rozpoznávání a identifikace obličeje - Arduino Face ID pomocí OpenCV Python a Arduino .: 6 kroků
Rozpoznávání a identifikace obličeje | Arduino Face ID pomocí OpenCV Python a Arduino .: Rozpoznání obličeje AKA face ID je v dnešní době jednou z nejdůležitějších funkcí mobilních telefonů. Měl jsem tedy otázku " mohu mít ID tváře pro svůj projekt Arduino " a odpověď zní ano … Moje cesta začala takto: Krok 1: Přístup k
Rozpoznávání obličeje v praxi: 21 kroků
Rozpoznávání obličeje v praxi: Toto je téma, které mě tak fascinuje, že mi nedává spát: Počítačové vidění, detekce předmětů a lidí pomocí předem vycvičeného modelu
Detekce obličeje a očí s Raspberry Pi Zero a Opencv: 3 kroky
Detekce obličeje a očí s Raspberry Pi Zero a Opencv: V tomto návodu ukážu, jak můžete detekovat obličej a oko pomocí maliny pi a opencv. Toto je můj první instruktáž na opencv. Sledoval jsem mnoho návodů, jak nastavit otevřené CV v malině, ale pokaždé narazil na nějaké chyby. Každopádně jsem