Обнаружение объектов TensorFlow Lite iOS не работает с специально обученной моделью - PullRequest
0 голосов
/ 30 сентября 2019

Я обучил мою ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 модель обнаружения объекта. Все прошло хорошо. Я также преобразовал его в файл .tflite и назвал его detectx.tflite .

Я скачал официальное приложение Пример ObjectDetection , и оно гладко работает с встроенной моделью .tflite.

Я изменил код в ModelDataHandler.swift на следующее:

enum MobileNetSSD {
  static let modelInfo: FileInfo = (name: "detectx", extension: "tflite")
  static let labelsInfo: FileInfo = (name: "labelmap", extension: "txt")
}

И, конечно, переместил мой detex.tflite в папку Model, чтобы его можно было найти.

Однако, когда я попытался запустить приложение, оно вылетело и выдало следующую ошибку:

Failed to load the model file with name: detectx (lldb)

Вот так я экспортирую свою обученную модель в tflite_graph.pb :

python export_tflite_ssd_graph.py \
    --pipeline_config_path training/ssd_mobilenet_v2_quantized_300x300_coco.config \
    --trained_checkpoint_prefix training/model.ckpt-145 \
    --output_directory inference_graph_TFLITE_COBA

ивот как я конвертирую его в .tflite:

tflite_convert --graph_def_file=inference_graph_TFLITE_COBA/tflite_graph.pb --output_file=detectx.tflite 
--input_shapes=1,300,300,3 --input_arrays=normalized_input_image_tensor 
--output_arrays=TFLite_Detection_PostProcess,TFLite_Detection_PostProcess:1,TFLite_Detection_Post
Process:2,TFLite_Detection_PostProcess:3 --allow_custom_ops

Это успешно выдает detex.tflite , как я там написал.

Я не понимаю, почемуэто не будет работать. Я пробовал много разных моделей мобильных сетей ssd, а также выдал ту же ошибку. Может ли кто-нибудь помочь мне в этом? Я супер сбит с толку.

Большое спасибо. Я действительно ценю любую помощь.

...