文章目录
写在前面
本篇是 详解 TensorFlow TFLite 移动端(安卓)部署物体检测 demo(2)——量化模型 的辅助篇,主要记录如何向 tflite 模型中写入 metadata 的相关信息以适应 tflite 更新后的 lib_task_api
和 lib_interpreter
两种方式。由于 tensorflow 相关文档更新得不及时,所以有些引导和线索获取得磕磕绊绊,本篇主要是我自己查找资料的过程。
2021.07 更新
最近在细看 models 项目的文档,发现 tensorflow 把移动端部署 tflite 模型更新需要添加 metadata 这个介绍放在 models 下面了……但是并没有从 examples 项目中的 object detection demo 引导 models 项目去……so,放上来,在 /models/research/object_detection/g3doc/running_on_mobile_tf2.md
中,介绍了三步,freeze、convert 和 metadata……哎脑瓜子嗡嗡地,能不能不要藏着掖着鸭,难道先接触 examples 再接触 models 项目就不配做人了嘛/(ㄒoㄒ)/~~ 而且起名叫 running on mobile tf2,你给的 object detection demo 明明只能在 tf1 下运行啊……
第一步
/examples/lite/examples/object_detection/android/README.md
中的 Switch between inference solutions (Task library vs TFLite Interpreter)
部分,此部分给了关于 lib_task_api 和 lib_interpreter 两种方式的资料链接,以及在 Android Studio 中如何切换两种方式。
其中,lib_interpreter
的资料链接里面,目前没有更新(没有提及 metadata 的信息,但是实际上使用 interpreter 的方式也需要向 tflite 写入 metadata……),对本篇主题没有贡献,pass。所以下一步的信息是从 lib_task_api
的资料链接中获取的。
第二步
根据 lib_task_api
的资料链接,查看到其对 metadata 的兼容性要求(强制性 ):
下一步就点击上图中的链接,其内容主要围绕如何向 tflite 模型中添加 metadata。
第三步
这个链接中有关 metadata 的资料很多,整体方便对 metadata 格式的了解。但也可以跳着看,其中关键部分在于 建立 metadata 工具
以及 后面 Examples
下给的 Image Classification
的例子。
metadata 简介
TensorFlow Lite metadata 为模型描述提供了标准,是了解模型的功能及其输入/输出信息的重要来源,由两部分组成(1)人类可读部分和 (