Antes de empezar… ¿cómo funciona el reconocimiento facial de OpenCV?
Para legos: OpenCV utiliza un conjunto de “bloques” para reconocer formas llamados Haar-like features (“características de tipo Haar”. Sí, es una traducción pésima). Por ejemplo, algunas de estas formas pueden ser:
Este sistema tiene un porcentaje de aciertos bastante alto, aunque su éxito también dependerá del tipo de cámara utilizada, la iluminación de la sala, etc.
Código para Python
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 | #Ejemplo de deteccion facial con OpenCV y Python#Por Glare#www.robologs.netimportnumpy as npimportcv2#cargamos la plantilla e inicializamos la webcam:face_cascade =cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')cap =cv2.VideoCapture(0)while(True):    #leemos un frame y lo guardamos    ret, img =cap.read()    #convertimos la imagen a blanco y negro    gray =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    #buscamos las coordenadas de los rostros (si los hay) y    #guardamos su posicion    faces =face_cascade.detectMultiScale(gray, 1.3, 5)    #Dibujamos un rectangulo en las coordenadas de cada rostro    for(x,y,w,h) infaces:        cv2.rectangle(img,(x,y),(x+w,y+h),(125,255,0),2)    #Mostramos la imagen    cv2.imshow('img',img)        #con la tecla 'q' salimos del programa    ifcv2.waitKey(1) & 0xFF==ord('q'):        breakcap.release()cv2-destroyAllWindows() | 
Y ejecutamos nuestro código. Si todo ha funcionado bien, deberíamos ver nuestro careto dentro de un recuadro de color verde. Si no, intenta moverte o cambiar la iluminación de la habitación.
Si te surgió algún problema al seguir al tutorial no dudes en comentar y te responderé lo más rápido posible.
