Отправка видео в реальном времени с Raspberry Pi на компьютер для прогнозирования, где я получаю следующую ошибку:
Трассировка (последний последний вызов):
Файл "C: /workspace / self_driving_car / server / server.py ", строка 41, в image = cv2.resize (image, (320, 240)) / 255. cv2.error: OpenCV (3.4.2) D: \ Build \ OpenCV \ opencv-3.4.2 \ modules \ imgproc \ src \ resize.cpp: 3687: ошибка: (-215: утверждение не выполнено)! Dsize.empty () в функции 'cv :: hal :: resize'
Я пытаюсь преобразовать изображение в соответствии с требованиями модели.
Ниже была проведена предварительная обработка во время обучения:
img = cv2.resize(cv2.imread('../recvd_data/final_data/'+'image1'+'.jpg'), (320, 240))
img = img / 255.
Следовательно, при прогнозировании мне нужно выполнитьповторная предварительная обработка, и вот где я сталкиваюсь с этой ошибкой:
Трассировка (последний последний вызов):
Файл "C: /workspace/self_driving_car/server/server.py", строка 41, в image = cv2.resize (image, (320, 240)) / 255. cv2.error: OpenCV (3.4.2) D: \ Build \ OpenCV \ opencv-3.4.2 \ modules \ imgproc \ src\ resize.cpp: 3687: ошибка: (-215: утверждение не выполнено)! Dsize.empty () в функции 'cv :: hal :: resize'
Мой код (ошибка возникает в блоке try при изменении размера):
from __future__ import division
import io
import socket, struct, collections, cv2, time, os
import tensorflow as tf
import numpy as np
from PIL import Image
import cnn_model as model
MODEL = 'model/model-2-270.ckpt'
sess = tf.InteractiveSession()
saver = tf.train.Saver()
saver.restore(sess, MODEL)
server_socket = socket.socket()
server_socket.bind(('192.168.0.12', 8000))
server_socket.listen(0)
connection = server_socket.accept()[0].makefile('rb')
time.sleep(2)
client_socket = socket.socket()
client_socket.connect(('192.168.0.5', 8001))
print('client connected with server')
send_connection = client_socket.makefile('wb')
try:
while True:
prev_time = time.time()
image_len = struct.unpack('<L', connection.read(struct.calcsize('<L')))[0]
image_stream = io.BytesIO()
image_stream.write(connection.read(image_len))
image_stream.seek(0)
image = np.asarray(Image.open(image_stream).convert('L')).reshape(1, 240, 320, 1)
"""error occurs here while resizing"""
image = cv2.resize(image, (320, 240)) / 255.
print('resized')
pred = model.y.eval(feed_dict={model.x: [image], model.keep_prob:
1.0})[0][0]
client_socket.send('{0: 2f}'.format(pred).encode())
print('sent pred--->>>' + str(pred))
print('prediction took: ' + str(time.time()-prev_time))