【问题标题】:Streaming Face Recognition Video and Meta-data in Flask在 Flask 中流式传输人脸识别视频和元数据
【发布时间】:2018-12-10 18:12:52
【问题描述】:

任务是识别视频流中的人脸并在视频帧上绘制边界框并显示人名。需要从 API 流式传输视频帧和元数据(名称)。 API 调用 GPU 密集型机器学习子例程,该子例程可以返回 Python 元组中的帧和名称对。为了减少计算,我们尝试在处理的每帧中进行一次函数调用。元组包含一个字节类型帧和一个字符串类型名称。

如何通过 API 显示流视频帧和元数据(名称)?

 def get_frame():
   recog = VideoFaceRecog(target="/video/m.mp4")
while True:
   (ret, frame) = recog.cap.read()

  if not ret:
    print('end of the video file...')
    break

  cv2.resize(frame, (640, 480))
  frame, names, bounding_boxes = recog.frame_recog(frame)

  camera_frame = cv2.imencode('.jpg', frame)[1].tobytes()

  yield (b'--frame\r\n'
       b'Content-Type: image/jpeg\r\n\r\n' + camera_frame + b'\r\n')
@app.route('/camera_feed', methods=['GET'])
def video_feed():
   return Response(stream_with_context((get_frame())), 
                        mimetype='multipart/x-mixed-replace; boundary=frame')

【问题讨论】:

    标签: python flask video-streaming


    【解决方案1】:

    recog = VideoFaceRecog()

    def get_frame(recog):
        cap = cv2.VideoCapture(0)
        while True:
            (ret, frame) = cap.read()
    
            if not ret:
                print('end of the video file...')
                break
            frame, names, bounding_boxes = recog.frame_recog(frame)
            recog.add_name(names) 
            camera_frame = cv2.imencode('.jpg', frame)[1].tobytes()
            yield ((b'--frame\r\n'
                b'Content-Type: image/jpeg\r\n\r\n' + camera_frame + b'\r\n'))
    

    在不同的端点调用元数据。

    【讨论】:

      猜你喜欢
      • 2016-08-09
      • 1970-01-01
      • 2014-11-15
      • 2018-11-26
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      相关资源
      最近更新 更多