Opencv Python-program til ansigtsgenkendelse
Formålet med det givne program er at opdage objekt af interesse (ansigt) i realtid og holde sporing af det samme objekt. Dette er et simpelt eksempel på, hvordan man opdager ansigt i Python. Du kan prøve at bruge træningsprøver af et hvilket som helst andet objekt efter eget valg til at blive opdaget ved at træne klassificereren på nødvendige objekter. Her er trinene til at downloade kravene nedenfor.
Trin:
- Download Python 2.7.x version numpy og Opencv 2.7.x version.Tjek om din Windows enten 32 bit eller 64 bit er kompatibel og installer i overensstemmelse hermed.
- Sørg for, at numpy kører i din python, og prøv derefter at installere opencv.
- Læg filerne haarcascade_eye.xml & haarcascade_frontalface_default.xml i den samme mappe (links givet i koden nedenfor).
Implementering
Python
# OpenCV program to detect face in real time # import libraries of python OpenCV # where its functionality resides import cv2 # load the required trained XML classifiers # https://github.com/opencv/opencv/tree/master # data/haarcascades/haarcascade_frontalface_default.xml # Trained XML classifiers describes some features of some # object we want to detect a cascade function is trained # from a lot of positive(faces) and negative(non-faces) # images. face_cascade = cv2 . CascadeClassifier ( 'haarcascade_frontalface_default.xml' ) # https://github.com/opencv/opencv/tree/master # /data/haarcascades/haarcascade_eye.xml # Trained XML file for detecting eyes eye_cascade = cv2 . CascadeClassifier ( 'haarcascade_eye.xml' ) # capture frames from a camera cap = cv2 . VideoCapture ( 0 ) # loop runs if capturing has been initialized. while 1 : # reads frames from a camera ret img = cap . read () # convert to gray scale of each frames gray = cv2 . cvtColor ( img cv2 . COLOR_BGR2GRAY ) # Detects faces of different sizes in the input image faces = face_cascade . detectMultiScale ( gray 1.3 5 ) for ( x y w h ) in faces : # To draw a rectangle in a face cv2 . rectangle ( img ( x y )( x + w y + h )( 255 255 0 ) 2 ) roi_gray = gray [ y : y + h x : x + w ] roi_color = img [ y : y + h x : x + w ] # Detects eyes of different sizes in the input image eyes = eye_cascade . detectMultiScale ( roi_gray ) #To draw a rectangle in eyes for ( ex ey ew eh ) in eyes : cv2 . rectangle ( roi_color ( ex ey )( ex + ew ey + eh )( 0 127 255 ) 2 ) # Display an image in a window cv2 . imshow ( 'img' img ) # Wait for Esc key to stop k = cv2 . waitKey ( 30 ) & 0xff if k == 27 : break # Close the window cap . release () # De-allocate any associated memory usage cv2 . destroyAllWindows ()
Produktion:
Næste artikel:
Opencv C++ Program til ansigtsgenkendelse Opret quiz