#python #tensorflow #object-detection-api #faster-rcnn
Вопрос:
Я обучил более быструю модель rcnn с помощью моего собственного набора данных. эти изображения я отправил с помощью следующих этапов предварительной обработки:
imagem = cv2.bitwise_not(img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sharp = cv2.GaussianBlur(gray, (0,0), 7)
weighted = cv2.addWeighted(gray, 1.5, sharp, -1, 0)
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV)
rect_kern = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
dilation = cv2.dilate(thresh, rect_kern, iterations = 1)
erosion = cv2.erode(dilation, rect_kern, iterations=1)
Поэтому я обучил более быстрому-rcnn с erosion
изображениями. После обучения модели я собираюсь использовать ее для обнаружения следующим образом.
rec_fn = tf.saved_model.load(PATH_TO_NO_REC)
end_time2 = time.time()
elapsed_time2 = end_time2 - start_time2
print('Done! Took {} seconds'.format(elapsed_time))
category_index2 = label_map_util.create_category_index_from_labelmap(PATH_TO_CHAR_LABELS,
use_display_name=True)
input_tensor = tf.convert_to_tensor(erosion)
input_tensor = input_tensor[tf.newaxis, ...]
input_tensor = np.expand_dims(erosion, 0)
detections = rec_fn(input_tensor)
num_detections = int(detections.pop('num_detections'))
Но я получаю следующую ошибку в строке detections = rec_fn(input_tensor)
Ошибка
/usr/локальный/lib/python3.7/dist-пакеты/tensorflow/python/нетерпеливая/функция.py в _convert_inputs_to_signature(входы, входная сигнатура, плоская входная сигнатура) 2876 flatten_inputs)): 2877
ошибка повышения значения(«Входы Python несовместимы с входной сигнатурой:n%s» % -> 2878 формат_error_message(входы, входная сигнатура)) 2879 2880 при необходимости упаковки:Ошибка значения: Входные данные Python, несовместимые с сигнализацией ввода: входные данные: ( [[[0 0 0 … 0 0 0] [0 0 0 … 0 0 0] [0 0 0 … 0 0 0] … [0 0 0 … 0 0 0] [0 0 0 … 0 0 0] [0 0 0 … 0 0 0]]])
входная сигнатура: ( TensorSpec(форма = (1, Нет, нет, 3), dtype=tf.uint8, имя=’input_tensor’))
Не могли бы вы, пожалуйста, объяснить мне причину этого? Можем ли мы передать морфологически обработанное изображение в более быстрый rcnn?