- Какой каталог верхнего уровня используемой вами модели : / home / USER / PROJECT / tf-models
- Написал ли я собственный код (в отличие от использования стандартного сценария, предоставленного в TensorFlow) : Нет
- Платформа и распространение ОС (например, Linux Ubuntu 16.04) : Ubuntu 18.04
- TensorFlow установлен из (источника или двоичного файла) : двоичный файл с использованием conda
- TensorFlow версия (используйте команду ниже) : 1.15
- Базельская версия (при компиляции из источника) : 1.2.1 используется для запуска разговора
- CUDA / cuDNN версия : выпуск 9.1, V9.1.85
- * Модель и память 1030 * GPU : gtx 1050Ti 4 ГБ
- Точная команда для воспроизведения :
bazel run -c opt tensorflow/lite/toco:toco -- \
--input_file=$INPUT_PATH/tflite_graph.pb \
--output_file=$OUTPUT_PATH/detect.tflite \
--input_shapes=1,300,300,3 \
--input_arrays=normalized_input_image_tensor \
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' \
--inference_type=FLOAT \
--allow_custom_ops
Опишите проблему
Я переобучил модель с плавающей точкой ssd_mobilenet_v2_coco в своем собственном наборе данных, чтобы обнаружить один объект, после замораживания графика и выполнения логического вывода с использованием этого ноутбук , модель выполнена хорошо и как положено. После этого я экспортировал файл tflite_graph.pb с помощью этой команды:
python3 object_detection/export_tflite_ssd_graph.py \
--pipeline_config_path=/PATH/pipeline.config \
--trained_checkpoint_prefix=/PATH/model.ckpt-50000 \
--output_directory=/PATH/tflite \
--add_postprocessing_op=True
Затем преобразовал файл tflite_graph.pb в detect.tflite, используя эту команду:
bazel run -c opt tensorflow/lite/toco:toco -- \
--input_file=/PATH/tflite_graph.pb \
--output_file=/PATH/detect.tflite \
--input_shapes=1,300,300,3 \
--input_arrays=normalized_input_image_tensor \
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' \
--inference_type=FLOAT \
--allow_custom_ops
Содержимое labelmap.txt
следующая метка, использующая стиль метоккарты набора данных Coco:
???
Object_1
Я выполняю логический вывод, используя этот скрипт , который является пользовательской версией этого скрипта
Вывод довольно странный, поскольку у нас есть отрицательные значения и неточные, и поэтому мы не можем визуализировать какое-либо обнаружение:
image: /PATH/Inference_Notebooks/test_images/image15.jpg
boxes:
[[ 3.1171997 4.9266524 -15.893956 7.4959326 ]
[ -1.904324 1.0337602 -7.818109 -7.9575577 ]
[ 1.4761205 2.4604938 -14.553953 8.159015 ]
[ 3.4024968 2.7483184 -9.744125 6.332321 ]
[ -4.447262 -2.6578145 -1.9118335 -12.579478 ]
[ 1.5781038 -2.980986 -15.902752 5.9894757 ]
[ -0.4003443 -12.641836 -5.6216025 -0.9522631 ]
[ -1.3472033 -5.514964 -4.7609305 -11.9099045 ]
[ 2.6661258 -4.2592344 -13.687805 -4.15193 ]
[ -0.49181542 9.271766 -3.5316777 -3.233222 ]]
classes: [ 2 0 -10 9 -4 3 -6 -7 0 2]
scores: [ -5.54325 1.9508497 -6.1604195 -4.2281013 -0.02703065 0.707987 -11.534006 7.781439 -2.5938861 -2.5299745 ]
number of detections: 0.0
Я тестировал файлы вывода на моделях SSD mobil enet по умолчанию, используя их значения по умолчанию весы тренировались на наборе данных COCO, и я смог визуализировать коробки, поскольку модель обнаруживала автомобили, людей и т. д. c .. Я преобразовал QUANTIZED tflite_graph.pb моделей по умолчанию, таких как квантованный SSD mobil enet v1, в обнаружил .tflite, и он был в состоянии вывести коробки и метки набора данных кокосовых орехов.
Я не понимаю, откуда эти значения и почему Модель tflite не обнаруживает, в то время как делает тензорный поток.
Также квантованная модель SSD mobilenetv2, которую я обучил и преобразовал, выполнив те же шаги, но с помощью этой команды:
bazel run -c opt tensorflow/lite/toco:toco -- \
--input_file=/PATH/tflite_graph.pb \
--output_file=/PATH/detect.tflite \
--input_shapes=1,300,300,3 \
--input_arrays=normalized_input_image_tensor \
--output_arrays='TFLite_Detection_PostProcess','TFLite_Detection_PostProcess:1','TFLite_Detection_PostProcess:2','TFLite_Detection_PostProcess:3' \
--inference_type=QUANTIZED_UINT8 \
--mean_values=128 \
--std_values=128 \
--change_concat_input_ranges=false \
--allow_custom_ops
выводит эти значения:
image: /home/neox/HistorIAR_Detection/Inference_Notebooks/test_images/image15.jpg
boxes:
[[1.0170084e+32 1.6485735e+30 2.5740889e+31 2.6057175e+31]
[2.4791379e+31 6.3874716e+33 1.0232719e+32 1.0043315e+32]
[6.4686013e+33 4.0425799e+32 1.0107439e+32 2.5712148e+34]
[1.6069700e+33 4.0430743e+32 2.5712782e+34 1.0106698e+32]
[2.5426435e+31 1.0233461e+32 1.0232968e+32 1.0170082e+32]
[1.6272522e+33 4.0426789e+32 1.0234205e+32 1.6272126e+33]
[2.5266129e+31 6.5147562e+30 2.5740879e+31 2.5742122e+31]
[1.0423612e+32 1.0296598e+32 6.5144491e+30 6.3561451e+30]
[1.0170081e+32 1.6372740e+33 6.1586925e+30 1.6170719e+33]
[4.0172261e+32 1.0170823e+32 6.5090083e+33 1.0106451e+32]]
classes: [-2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648
-2147483648 -2147483648 -2147483648 -2147483648]
scores: [6.3787720e+33 1.0090909e+35 6.3066602e+33 1.6144633e+36 1.6146259e+36 1.6042820e+36 1.6145852e+36 6.4585042e+36 1.6042415e+36 4.0624248e+35]
num: 0.0