Потоковое обнаружение объектов с использованием колбы в HTML - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь запустить алгоритм обнаружения объектов на веб-сайте.На самом деле я не знаю, как я могу загрузить его в HTML с помощью колбы

На самом деле я попробовал то же самое с кнопкой, и это работает, но для видео моя камера выключается и программа закрывается

class Detection():
    def __init__(self,colors=np.random.uniform(0,255,size= 
    (len(values.objects),3)),          
    net=cv2.dnn.readNetFromCaffe("model.prototxt.txt","deploy.caffemodel")):
    self.colors=colors
    self.net=net
    print("Init...")
    f = open("model.prototxt.txt")
    print(f)

def main(self):
    video=VideoStream(src=0).start()
    fps=FPS().start()
    while True:
        frame=video.read()
        frame=imutils.resize(frame,width=400)
        print(frame)
        (h,w)=frame.shape[:2]
        blob = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)),
                    0.007843, (300, 300), 127.5)
        self.net.setInput(blob)
        detections = self.net.forward()

        for i in np.arange(0, detections.shape[2]):
            confidence = detections[0, 0, i, 2]
            if confidence > 0.2:
                idx = int(detections[0, 0, i, 1])
                box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
                (startX, startY, endX, endY) = box.astype("int")
                label = "{}: {:.2f}%".format(values.objects[idx],confidence * 100)
                cv2.rectangle(frame, (startX, startY), (endX, endY),
                                    self.colors[idx], 4)
                y = startY - 15 if startY - 15 > 15 else startY + 15
                cv2.putText(frame, label, (startX, y),
                cv2.FONT_ITALIC, 2, self.colors[idx], 2)
        cv2.imshow("Object detection", frame)
        key = cv2.waitKey(1) & 0xFF
        fps.update()
    fps.stop()
    cv2.destroyAllWindows()
    self.video.stop()
    return

И часть колбы

app = Flask(__name__)
vc = cv2.VideoCapture(0)
@app.route('/')
def index():
    return render_template('index.html')

@app.route('/video_feed')
def video_feed():
return Response(dnn.Detection(),
                mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
    app.run(host='192.168.0.122', debug=True, threaded=True)

Когда я пытаюсь запустить этот скрипт, он показывает: не удается подключиться к X-серверу

...