Потоковое видео распознавания лиц и метаданные во Flask - PullRequest
0 голосов
/ 10 декабря 2018

Задача - распознать лица в видеопотоке, нарисовать ограничительные рамки на видеокадрах и показать имя человека.Необходимо для потоковой передачи видеокадров и метаданных (имен) из API.API обращается к подпрограмме машинного обучения с интенсивным использованием графических процессоров, которая может быть использована для возврата пары фреймов и имен в кортеже 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')

1 Ответ

0 голосов
/ 24 января 2019

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'))

Вызов метаданных в другой конечной точке.

...