使用命令行在 tflite 模型中插入 normalizeOption

Insert normalizeOption in tflite model with command line

我正在尝试将自定义模型插入 android tensorflow lite object detection。我使用 tflite_convert 创建了一个 MobileNetv2 模型并将其插入到 Android 演示项目中,但出现了要求我指定 NormalizationOptions 元数据的错误。

    Process: org.tensorflow.lite.examples.detection, PID: 6420
    java.lang.AssertionError: Error occurred when initializing ObjectDetector: Input tensor has type kTfLiteFloat32: it requires specifying NormalizationOptions metadata to preprocess input images.

即使指定mean_value和std_dev_values也会出现上述现象,如下代码所示。有没有办法在命令行输入NormalizationOption?

!tflite_convert \
  --input_shape=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 \
  --allow_custom_ops \
  --graph_def_file=/content/models/research/fine_tuned_model/tflite/tflite_graph.pb \
  --output_file="/content/models/research/fine_tuned_model/final_model.tflite" \
  --inference_type=FLOAT \
  --mean_values=128 \
  --std_dev_values=128 \

official object detection example two variants: 1) using task library, 2) using interpreter API directly. The default build variant uses the task library, and it expects the object detection model to have metadata added.

看起来 NormalizationOption 来自元数据部分,因此请尝试按照上面链接的指南添加元数据,或者使用示例应用程序的不同构建变体以不使用任务库。