我正在使用Flask制作小型脸部检测应用。我希望在检测到面部时实现它们,它们将在HTML页面中更新。
在javascript部分,我使用getUserMedia将摄像头图像从客户端流式传输到服务器。
在Flask部分,我收到图像并使用此功能处理它们:
@app.route('/image.jpeg', methods=['POST'])
def on_image_captured():
data = request.data
image_file = request.files['image']
image = Image.open(image_file)
image = np.array(image)
image = image[..., :3]
# faces is a list of detected faces (a list of numpy array)
faces = system.detect_faces(image)
return ''
我的HTML有两件事要呈现:第一个是流式视频,另一个是检测到的面部。我的问题是,如何将检测到的面(faces
变量)发送到HTML,以便它动态地在页面上呈现可变数量的面?
答案 0 :(得分:0)
您可以通过多种方式执行此操作。 可能最简单的方法(但滞后时间最多)是将图像以脸部周围的正方形发送回去。您可以使用opencv绘图功能在python中轻松做到这一点。
或者,您可以发送回json对象,然后在客户端使用元数据。看看烧瓶jsonify。您将需要在js端带有一些间隔的函数来获取json。这可能很难同步。
您也可以使用tensorflow.js在客户端执行人脸检测以避免同步。