Spaces:
Runtime error
Runtime error
| # from flask import Flask, render_template, Response | |
| # import cv2 | |
| # from mtcnn import MTCNN | |
| # import base64 | |
| # import numpy as np | |
| # import concurrent.futures | |
| # app = Flask(__name__) | |
| # class FaceDetector: | |
| # def __init__(self): | |
| # self.detector = MTCNN() | |
| # self.face_count = 0 | |
| # def detect_faces(self, frame): | |
| # faces = self.detector.detect_faces(frame) | |
| # self.face_count = len(faces) | |
| # return faces | |
| # face_detector = FaceDetector() | |
| # def generate_frames(): | |
| # camera = cv2.VideoCapture(0) # 0 indicates the default camera (you can change it to the camera index you want to use) | |
| # while True: | |
| # success, frame = camera.read() | |
| # if not success: | |
| # break | |
| # gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
| # # Perform face detection | |
| # faces = face_detector.detect_faces(frame) | |
| # for face in faces: | |
| # x, y, w, h = face['box'] | |
| # cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3) | |
| # # Display face count on each frame | |
| # font = cv2.FONT_HERSHEY_SIMPLEX | |
| # cv2.putText(frame, f'Faces: {face_detector.face_count}', (10, 30), font, 1, (255, 255, 255), 2, cv2.LINE_AA) | |
| # _, buffer = cv2.imencode(".jpg", cv2.resize(frame, (0, 0), fx=0.5, fy=0.5)) | |
| # img_data = buffer.tobytes() | |
| # yield (b'--frame\r\n' | |
| # b'Content-Type: image/jpeg\r\n\r\n' + img_data + b'\r\n\r\n') | |
| # camera.release() | |
| # @app.route('/') | |
| # def index(): | |
| # return render_template('index.html') | |
| # @app.route('/detect_faces') | |
| # def detect_faces(): | |
| # return Response(generate_frames(), mimetype='multipart/x-mixed-replace; boundary=frame') | |
| # if __name__ == '__main__': | |
| # app.run(debug=True) | |
| from flask import Flask, render_template, Response, request | |
| import cv2 | |
| from mtcnn import MTCNN | |
| import numpy as np | |
| import concurrent.futures | |
| app = Flask(__name__) | |
| class FaceDetector: | |
| def __init__(self): | |
| self.detector = MTCNN() | |
| self.face_count = 0 | |
| def detect_faces(self, frame): | |
| faces = self.detector.detect_faces(frame) | |
| self.face_count = len(faces) | |
| return faces | |
| face_detector = FaceDetector() | |
| def generate_frames(camera_index): | |
| camera = cv2.VideoCapture(camera_index) | |
| while True: | |
| success, frame = camera.read() | |
| if not success: | |
| break | |
| # Perform face detection | |
| faces = face_detector.detect_faces(frame) | |
| for face in faces: | |
| x, y, w, h = face['box'] | |
| cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 3) | |
| # Display face count on each frame | |
| font = cv2.FONT_HERSHEY_SIMPLEX | |
| cv2.putText(frame, f'Faces: {face_detector.face_count}', (10, 30), font, 1, (255, 255, 255), 2, cv2.LINE_AA) | |
| _, buffer = cv2.imencode(".jpg", cv2.resize(frame, (0, 0), fx=0.5, fy=0.5)) | |
| img_data = buffer.tobytes() | |
| yield (b'--frame\r\n' | |
| b'Content-Type: image/jpeg\r\n\r\n' + img_data + b'\r\n\r\n') | |
| camera.release() | |
| def index(): | |
| return render_template('pg2.html') | |
| def detect_faces(): | |
| camera_index = int(request.args.get('camera_index', 1)) | |
| return Response(generate_frames(camera_index), mimetype='multipart/x-mixed-replace; boundary=frame') | |
| if __name__ == '__main__': | |
| app.run(debug=True) | |