Paso 4: Obtener y procesamiento previo de las imágenes
En este paso, vamos a recopilar imágenes de algunos amigos y salvarlos es un formato específico por lo código puede llegar a ellos a aprender a reconocer las caras. Puede ver capturas de pantalla anotado, cómo organizar cuadros recogidos en carpetas:
1. input_images-una carpeta llamada "input_images" y todas imágenes tus amigos almacenan en esa carpeta. No hay que hacer cualquier procesamiento previo aquí. Sólo recoger fotos de tus amigos y guardar todas las imágenes aquí.
2. output_images-una carpeta llamada "output_images" y dejarlo vacío. Después de ejecutar el código de preprocesamiento, se recortar caras de las imágenes en la carpeta "input_images" y guarda automáticamente aquí. Se puede ver la imagen comentada: 'output_images' con guarda imágenes después de ejecutar el código proporcionado en este paso.
3. sorted_images - ahora, tenemos que escoger manualmente fotos de tus amigos y guardar en carpetas distintas con mismo nombres como tus amigos. Usted puede ver, he recogido fotografías de 6 de mis amigos y almacenados en carpetas distintas.
¿Por qué necesitamos manualmente y organizar imágenes de amigos? Contestaré a esta pregunta en el paso siguiente.
Después de ejecutar este código, la carpeta "output_images" debe ser llena de imágenes recortadas. Así, ahora pasemos al paso 3 mencionado arriba donde tenemos todas las imágenes de amigos de poner manualmente en carpetas distintas.
Con este subpaso, hemos completado con éxito pre-procesamiento y organizar nuestros datos (imágenes).
Código
Guarde esto como .py y ejecutarlo desde línea de comandos. Supongo que tienes conocimientos de codificación en python, así que no estoy explicando cómo ejecutar aquí.
Nota: usted necesita tener imágenes guardadas en la carpeta 'input_images' antes de ejecutar este código y el archivo xml previamente capacitado a este paso guardado con el nombre " haarcascade_frontalface_default.XML "en la misma carpeta que este código es
Brevemente he comentado lo que está haciendo el código en cada parte.
Usted puede ver el mismo código aquí .
También puede descargar el mismo código a continuación como he adjuntado a este paso.
'''<br>Surya Teja Cheedella shine123surya[at]gmail[dot]com BITS Pilani, Hyderabad Campus Takes all the images in "input_path" and analyses them for any faces. If face(s) is(are) found, it crops and saves them at "output_path". ''' import cv2 import cv2.cv as cv from os import listdir import time def cropImage(img, box): [p, q, r, s]= box # crop and save the image provided with the co-ordinates of bounding box write_img_color= img[q:q+ s, p:p+ r] saveCropped(write_img_color, name) # save the cropped image at specified location def saveCropped(img, name): cv2.imwrite(output_path+ name+ ".jpg", img) if __name__== "__main__": # paths to input and output images input_path= "input_images/" output_path= "output_images/" # load pre-trained frontalface cascade classifier frontal_face= cv2.CascadeClassifier("haarcascade_frontalface_default.xml") input_names= listdir("/home/suryateja/Documents/GitHub/FaceRecognizer/"+ input_path) print("Starting to detect faces in images and save the cropped images to output file...") sttime= time.clock() i= 1 for name in input_names: print(input_path+name) color_img= cv2.imread(input_path+ name) # converting color image to grayscale image gray_img= cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY) # find the bounding boxes around detected faces in images bBoxes= frontal_face.detectMultiScale(gray_img, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE) #print(bBoxes) for box in bBoxes: #print(box) # crop and save the image at specified location cropImage(color_img, box) i+= 1 print("Successfully completed the task in %.2f Secs." % (time.clock()- sttime))