Проблема с рабочим графом TensorFlow и моделью Keras в многопоточной среде - PullRequest
0 голосов
/ 30 апреля 2020

Привет, ребята. Я работаю над проектом, в котором я создаю два потока. !. один для захвата изображений с ipcam с помощью cv2 и добавления этих изображений в deque с maxlen 10 2. здесь я конвертирую deque в список и прогнозирую, используя модель на нем. в основном я использую две модели, одну для извлечения признаков, и пыльник будет предсказывать эти особенности. Вот пример кода

 def window(deque):
    cap = cv2.VideoCapture('http://192.168.42.129:8080/video')      

    frame_seq = 10
        # model = load_model('models/model_seq_' + str(frame_seq) + '.h5')
        while(True):
            ret, frame = cap.read()
            if ret:
                cv2.imshow('frame',frame)
                print(" orking or not")
                # print( " frame type --", frame.shape)
                frame_que.append(frame)
            else:
                cap.release()
                cv2.destroyAllWindows()
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

def predictor(deque, model):

while True:
    frames = list(deque)
    outputs = []
    with tf.Session() as Sess:
        tf_model = object.load_model('101', Sess)
        for frame in frames:
        outputs.append(tf_model.decode(frame))
   pred = model.predict(outputs)

if __name__ == "__main__":
    model = load_model(path)
    deque = collections.deque()
    window = threading.Thread(target=window, args=(frame_que,))
    predictor = threading.Thread(target=predictor, args=(frame_que , model))
    window.start()
    predictor.start()

проблема в том, что после первой итерации внутреннего для l oop предиктора окно потока останавливается и не захватывает новые кадры из ipcam

Код не систематически предназначен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...