#numpy #machine-learning #keras #object-detection
#numpy #машинное обучение #keras #обнаружение объекта
Вопрос:
Я использую detecto model для визуализации изображения. Итак, по сути, я передаю изображение этой модели, и оно проведет граничную линию по объекту и отключит визуализированное изображение.
from keras.preprocessing.image import load_img
from keras.preprocessing.image import save_img
from keras.preprocessing.image import img_to_array
from detecto import core, utils, visualize
image = utils.read_image('retina_model/4.jpg')
model = core.Model()
labels, boxes, scores = model.predict_top(image)
img=visualize.show_labeled_image(image, boxes,)
Теперь я пытаюсь преобразовать это визуализированное изображение в массив Numpy. Я использую приведенную ниже строку для преобразования изображения в массив numpy :
img_array = img_to_array(img)
Это выдает ошибку :
Unsupported Image Shape
Все, что я хочу, это отобразить визуализированное изображение, которое является результатом этой модели, на моем веб-сайте. План состоит в том, чтобы преобразовать изображение в массив numpy, а затем сохранить изображение с помощью кода, используя строку ниже :
save_img('image1.jpg', img_array)
Итак, я планировал загрузить это визуализированное изображение (выходные данные этой модели), чтобы я мог отобразить загруженное изображение на своем веб-сайте. Если есть какой-то другой способ добиться этого, пожалуйста, дайте мне знать.
Ответ №1:
В документации Detecto говорится, что функция utils.read_image() уже возвращает массив NumPy.
Но вы передаете возврат visualize.show_labeled_image() в Keras img_to_array(img)
Глядя на исходный код visualize.show_labeled_image() в Detecto, у него нет возвращаемого типа, поэтому по умолчанию он возвращает None . Итак, я думаю, ваша проблема в том, что вы не передаете допустимое изображение в img_to_array (img), но нет.
Я не думаю, что вызов img_to_array(img) необходим, потому что у вас уже есть изображение в виде массива NumPy. Но обратите внимание, что, согласно документации Detecto, utils.read_image() «Эквивалентно использованию функции cv2.imread OpenCV и преобразованию из формата BGR в формат RGB». Убедитесь, что это то, что вы хотите.