gpt4 book ai didi

python - 使用 flask 和 python 的网页中的网络摄像头

转载 作者:行者123 更新时间:2023-12-05 08:31:53 27 4
gpt4 key购买 nike

我已经使用 kerastensorflow 创建了人脸识别模型,现在我正尝试使用 flask 和 python 将其转换为 Web 应用程序。我的要求是,我需要在网页上显示一个实时网络摄像头,通过单击一个按钮,它应该拍摄图片并将其保存到指定目录,并且应用程序应该使用该图片识别人。如果在数据集中找不到该人,则应在网页上显示一条消息,表明已找到未知身份。为了完成这项工作,我开始学习 Flask,之后当涉及到要求时,这对我来说非常困难。有人帮我解决这个问题。

最佳答案

您想要做的是使用网络摄像头 Stream 使用 Flask 进行流式传输,并使用机器学习对其进行处理。 Flask 中 Web 服务器的主脚本将允许您加载 index.html 文件,然后通过/video_feed 路径流式传输每一帧:

from flask import Flask, render_template, Response, jsonify
from camera import VideoCamera
import cv2

app = Flask(__name__)

video_stream = VideoCamera()

@app.route('/')
def index():
return render_template('index.html')

def gen(camera):
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')

@app.route('/video_feed')
def video_feed():
return Response(gen(video_stream),
mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
app.run(host='127.0.0.1', debug=True,port="5000")

然后您需要 VideoCamera 类,您将在其中处理每一帧,并且您可以在其中对帧进行任何预测或处理。 camera.py 文件:

class VideoCamera(object):
def __init__(self):
self.video = cv2.VideoCapture(0)

def __del__(self):
self.video.release()

def get_frame(self):
ret, frame = self.video.read()

# DO WHAT YOU WANT WITH TENSORFLOW / KERAS AND OPENCV

ret, jpeg = cv2.imencode('.jpg', frame)

return jpeg.tobytes()

最后在 html 文件 index.html 中显示视频流的页面(在 templates/ 文件夹中,如果不存在则生成它):

<!DOCTYPE html>
<html lang="en">
<head>
<title>Video Stream</title>
</head>
<body>
<img src="{{ url_for('video_feed') }}" />
</body>
</html>

关于python - 使用 flask 和 python 的网页中的网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54786145/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com