Привет, ребята. Я работаю над проектом, в котором я создаю два потока. !. один для захвата изображений с 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
Код не систематически предназначен.