Spaces:
Runtime error
Runtime error
| Hugging Face's logo | |
| Hugging Face | |
| Models | |
| Datasets | |
| Spaces | |
| Community | |
| Docs | |
| Pricing | |
| Log In | |
| Sign Up | |
| Spaces: | |
| johko | |
| / | |
| haar-cascade-frontal-face-detection | |
| like | |
| 0 | |
| App | |
| Files | |
| Community | |
| haar-cascade-frontal-face-detection | |
| / | |
| app.py | |
| sagemaker | |
| remove exmples | |
| e427213 | |
| over 3 years ago | |
| raw | |
| Copy download link | |
| history | |
| blame | |
| contribute | |
| delete | |
| 2.1 kB | |
| import cv2 | |
| import imutils | |
| import gradio as gr | |
| import numpy as np | |
| face_detector = cv2.CascadeClassifier("haar_cascades/haarcascade_frontalface_default.xml") | |
| def detect_faces(img, size, neighbours, scale): | |
| frame = np.array(img) | |
| frame = frame[:, :, ::-1].copy() | |
| frame = imutils.resize(frame, width=500) | |
| gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
| faceRects = face_detector.detectMultiScale( | |
| gray, scaleFactor=scale, minNeighbors=neighbours, minSize=(size, size), | |
| flags=cv2.CASCADE_SCALE_IMAGE) | |
| box_data = [] | |
| class_labels = { | |
| 0: "face" | |
| } | |
| for (x,y,w,h) in faceRects: | |
| frame = cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2) | |
| midX = int(x+w/2) | |
| midY = int(y+h/2) | |
| box = { | |
| "position": { | |
| "middle": [midX, midY], | |
| "width": float(w), | |
| "height": float(h) | |
| }, | |
| "domain" : "pixel", | |
| "class_id" : 0 | |
| } | |
| box_data.append(box) | |
| predictions = {"predictions": { | |
| "box_data": box_data, | |
| "class_labels": class_labels | |
| } | |
| } | |
| re_im =cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) | |
| return re_im | |
| image = gr.components.Image() | |
| out_im = gr.components.Image() | |
| size_slider = gr.components.Slider(minimum=5, maximum=50, value=30, step=5, label="MinSize in Pixel") | |
| neighbour_slider = gr.components.Slider(minimum=1, maximum=20, value=5, step=1, label="Min Number of Neighbours") | |
| scale_slider = gr.components.Slider(minimum=1.1, maximum=2.0, value=1.3, step=0.1, label="Scale Factor") | |
| description = """Face Detection with Haar Cascades using OpenCV""" | |
| Iface = gr.Interface( | |
| fn=detect_faces, | |
| inputs=[image, size_slider, neighbour_slider, scale_slider], | |
| outputs=out_im, | |
| #examples=[["data/9_Press_Conference_Press_Conference_9_86.jpg"], ["data/12_Group_Group_12_Group_Group_12_39.jpg"], ["data/31_Waiter_Waitress_Waiter_Waitress_31_55.jpg"]], | |
| title="Haar Cascade Object Detection", | |
| ).launch() | |