Skip to content

Commit 6d3a2cc

Browse files
committed
Modify working of Image Data Generator to save 50 images for training
1 parent 8e36763 commit 6d3a2cc

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

Image_Dataset_Generator.py

+21-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
import cv2
22
import numpy as np
33
import os
4-
import time
4+
import dlib
5+
from imutils import face_utils
6+
from imutils.face_utils import FaceAligner
57

6-
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
8+
detector = dlib.get_frontal_face_detector()
9+
shape_predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
10+
face_aligner = FaceAligner(shape_predictor, desiredFaceWidth=200)
11+
12+
#face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
713

814
video_capture = cv2.VideoCapture(0)
915

@@ -17,20 +23,26 @@
1723
os.makedirs(directory, exist_ok = 'True')
1824

1925
number_of_images = 0
20-
MAX_NUMBER_OF_IMAGES = 10
26+
MAX_NUMBER_OF_IMAGES = 50
2127
count = 0
2228

2329
while number_of_images < MAX_NUMBER_OF_IMAGES:
2430
ret, frame = video_capture.read()
2531

2632
frame = cv2.flip(frame, 1)
2733

28-
faces = face_cascade.detectMultiScale(frame, 1.3, 5)
29-
for(x,y,w,h) in faces:
30-
cv2.rectangle(frame, (x,y),(x+w,y+h),(0,255,0),2)
31-
roi = frame[y:y+h, x:x+w]
32-
if count == 10:
33-
cv2.imwrite(os.path.join(directory, str(name+str(number_of_images)+'.jpg')), roi)
34+
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
35+
36+
#faces = face_cascade.detectMultiScale(frame, 1.3, 5)
37+
faces = detector(frame_gray)
38+
if len(faces) == 1:
39+
face = faces[0]
40+
(x, y, w, h) = face_utils.rect_to_bb(face)
41+
face_img = frame_gray[y-50:y + h+100, x-50:x + w+100]
42+
face_aligned = face_aligner.align(frame, frame_gray, face)
43+
44+
if count == 5:
45+
cv2.imwrite(os.path.join(directory, str(name+str(number_of_images)+'.jpg')), face_aligned)
3446
number_of_images += 1
3547
count = 0
3648
print(count)

0 commit comments

Comments
 (0)