将 tflite 模型与 tensorflow 对象检测示例代码集成
Integrate tflite model with tensorflow object-detection example code
我有一个 tflite 模型,它是通过转换我的 TF 模型获得的(MobileNet Single Shot Detector (v2))。
我已经使用下面的代码成功地将我的模型转换为 tflite 格式。
!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"
并尝试将其集成到 tensorflow 提供的对象检测代码中 team.But 输出不可见。
我的集成步骤如下:
1.Commenting 来自 build.gradle(app)
的下一行
apply from:'download_model.gradle'
- 我在资产文件夹中添加了我的 tflite 模型,并用我自己的标签修改了 label.txt。
- 在检测器中 Activity,
private static final boolean TF_OD_API_IS_QUANTIZED = true;
我已将上面的布尔值设置为 false
并将概率降低到 0.2
private static final float MINIMUM_CONFIDENCE_TF_OD_API = 0.5f;
但是没有用。
github link 对象检测代码:-
https://github.com/tensorflow/examples/blob/master/lite/examples/object_detection/android
此外,请告知如何使用测试图像测试 tflite 模型的工作。
这些是调试模型后的值
[[[ 0.15021165 0.45557776 0.99523586 1.009417 ]
[ 0.4825344 0.18693507 0.9941584 0.83610606]
[ 0.36018616 0.612343 1.0781565 1.1020089 ]
[ 0.47380492 0.03632754 0.99250865 0.5964786 ]
[ 0.15898478 0.12117874 0.94728076 0.8854655 ]
[ 0.44774154 0.41910237 0.9966481 0.9704595 ]
[ 0.06241751 -0.02005028 0.93670964 0.3915068 ]
[ 0.1917564 0.00806974 1.0165613 0.5287838 ]
[ 0.20279509 0.738887 0.95690674 1.0022873 ]
[ 0.7434618 0.07342905 0.9969055 0.6412263 ]]]
首先训练您的模型。最好使用经过训练的模型。训练模型后获取 tflite 图并使用 Bazel 将它们转换为 tflite 模型(最好使用 Ubuntu)。然后获取 Tensorflow/examples 并打开 Android Studio 上的对象检测 android 文件夹。
从 tflite 解释器 class 中删除元数据代码,因为它需要它,而且官方没有宣布正式的方式来实现它。然后你就可以让它工作了。
我有一个 tflite 模型,它是通过转换我的 TF 模型获得的(MobileNet Single Shot Detector (v2))。
我已经使用下面的代码成功地将我的模型转换为 tflite 格式。
!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"
并尝试将其集成到 tensorflow 提供的对象检测代码中 team.But 输出不可见。
我的集成步骤如下: 1.Commenting 来自 build.gradle(app)
的下一行apply from:'download_model.gradle'
- 我在资产文件夹中添加了我的 tflite 模型,并用我自己的标签修改了 label.txt。
- 在检测器中 Activity,
private static final boolean TF_OD_API_IS_QUANTIZED = true;
我已将上面的布尔值设置为 false
并将概率降低到 0.2
private static final float MINIMUM_CONFIDENCE_TF_OD_API = 0.5f;
但是没有用。
github link 对象检测代码:- https://github.com/tensorflow/examples/blob/master/lite/examples/object_detection/android
此外,请告知如何使用测试图像测试 tflite 模型的工作。
这些是调试模型后的值
[[[ 0.15021165 0.45557776 0.99523586 1.009417 ]
[ 0.4825344 0.18693507 0.9941584 0.83610606]
[ 0.36018616 0.612343 1.0781565 1.1020089 ]
[ 0.47380492 0.03632754 0.99250865 0.5964786 ]
[ 0.15898478 0.12117874 0.94728076 0.8854655 ]
[ 0.44774154 0.41910237 0.9966481 0.9704595 ]
[ 0.06241751 -0.02005028 0.93670964 0.3915068 ]
[ 0.1917564 0.00806974 1.0165613 0.5287838 ]
[ 0.20279509 0.738887 0.95690674 1.0022873 ]
[ 0.7434618 0.07342905 0.9969055 0.6412263 ]]]
首先训练您的模型。最好使用经过训练的模型。训练模型后获取 tflite 图并使用 Bazel 将它们转换为 tflite 模型(最好使用 Ubuntu)。然后获取 Tensorflow/examples 并打开 Android Studio 上的对象检测 android 文件夹。 从 tflite 解释器 class 中删除元数据代码,因为它需要它,而且官方没有宣布正式的方式来实现它。然后你就可以让它工作了。