Face Detection and Extraction using CNN

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:

  1. Box around faces: Show red boxes around all the faces recognised in the image. The Python file is faceDetectionCNN.py

  2. 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.

License

MIT

View on GitHub

原文链接:Face Detection and Extraction using CNN

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
Don’t hurry say have no choice, perhaps, next intersection will meet hope.
不要急着说别无选择,也许、下个路口就会遇见希望
评论 抢沙发

请登录后发表评论

    暂无评论内容