получение «[-251] Ошибка подтверждения! dsize.empty ()» при изменении формы и изменении размера изображения в соответствии с вводом модели - PullRequest
0 голосов
/ 10 мая 2019

Отправка видео в реальном времени с 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))
...