Face Detection is a easy task for computer now a days.In fact some ML model achieved state of art in computer vision.
We are using pretrained CNN model for face detection and extraction.
The project has two essential elements:
-
Box around faces: Show red boxes around all the faces recognised in the image. The Python file is faceDetectionCNN.py
-
Extracted faces: Extract faces from all images in a folder and save each face into a destination folder to create a handy dataset. The Python file is faceExtraction.py
<span>def</span> <span>highlight_faces</span><span>(</span><span>image_path</span><span>,</span> <span>faces</span><span>):</span><span># display image </span> <span>image</span> <span>=</span> <span>plt</span><span>.</span><span>imread</span><span>(</span><span>image_path</span><span>)</span><span>plt</span><span>.</span><span>imshow</span><span>(</span><span>image</span><span>)</span><span>ax</span> <span>=</span> <span>plt</span><span>.</span><span>gca</span><span>()</span><span># for each face, draw a rectangle based on coordinates </span> <span>for</span> <span>face</span> <span>in</span> <span>faces</span><span>:</span><span>x</span><span>,</span> <span>y</span><span>,</span> <span>width</span><span>,</span> <span>height</span> <span>=</span> <span>face</span><span>[</span><span>'box'</span><span>]</span><span>face_border</span> <span>=</span> <span>Rectangle</span><span>((</span><span>x</span><span>,</span> <span>y</span><span>),</span> <span>width</span><span>,</span> <span>height</span><span>,</span><span>fill</span><span>=</span><span>False</span><span>,</span> <span>color</span><span>=</span><span>'red'</span><span>)</span><span>ax</span><span>.</span><span>add_patch</span><span>(</span><span>face_border</span><span>)</span><span>plt</span><span>.</span><span>savefig</span><span>(</span><span>'./media/face_detected.jpg'</span><span>)</span><span>plt</span><span>.</span><span>show</span><span>()</span><span>def</span> <span>highlight_faces</span><span>(</span><span>image_path</span><span>,</span> <span>faces</span><span>):</span> <span># display image </span> <span>image</span> <span>=</span> <span>plt</span><span>.</span><span>imread</span><span>(</span><span>image_path</span><span>)</span> <span>plt</span><span>.</span><span>imshow</span><span>(</span><span>image</span><span>)</span> <span>ax</span> <span>=</span> <span>plt</span><span>.</span><span>gca</span><span>()</span> <span># for each face, draw a rectangle based on coordinates </span> <span>for</span> <span>face</span> <span>in</span> <span>faces</span><span>:</span> <span>x</span><span>,</span> <span>y</span><span>,</span> <span>width</span><span>,</span> <span>height</span> <span>=</span> <span>face</span><span>[</span><span>'box'</span><span>]</span> <span>face_border</span> <span>=</span> <span>Rectangle</span><span>((</span><span>x</span><span>,</span> <span>y</span><span>),</span> <span>width</span><span>,</span> <span>height</span><span>,</span> <span>fill</span><span>=</span><span>False</span><span>,</span> <span>color</span><span>=</span><span>'red'</span><span>)</span> <span>ax</span><span>.</span><span>add_patch</span><span>(</span><span>face_border</span><span>)</span> <span>plt</span><span>.</span><span>savefig</span><span>(</span><span>'./media/face_detected.jpg'</span><span>)</span> <span>plt</span><span>.</span><span>show</span><span>()</span>def highlight_faces(image_path, faces): # display image image = plt.imread(image_path) plt.imshow(image) ax = plt.gca() # for each face, draw a rectangle based on coordinates for face in faces: x, y, width, height = face['box'] face_border = Rectangle((x, y), width, height, fill=False, color='red') ax.add_patch(face_border) plt.savefig('./media/face_detected.jpg') plt.show()
aayushi-droid / faceDetectionCNN
Face detection in Python using pretrained CNN model
Face Detection and Face Extraction
Face Detection and Extraction using pretrained CNN
model.
Face Detection
Extracted Face
Installation
Download Anaconda
pip install keras pip install mtcnn pip install keras_vggface
Usage
def highlight_faces(image_path, faces): # display image image = plt.imread(image_path) plt.imshow(image) ax = plt.gca() # for each face, draw a rectangle based on coordinates for face in faces: x, y, width, height = face['box'] face_border = Rectangle((x, y), width, height, fill=False, color='red') ax.add_patch(face_border) plt.show()
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
暂无评论内容