我的要求是扫描一个固定的物体。认识到这一点后,我想突出显示对象并相应地显示相应的预馈送参数,如高度、宽度、周长等。
这一切,我想做,没有互联网,只使用相机。
请让我知道是否有任何解决方案/建议。
我看过CraftAR SDK。它似乎按照我的要求工作,以便识别对象,但它使用其服务器来存储我不想要的图像。正如我希望静态图像存储在应用程序本身中一样。
尝试使用 TensorFlow Object Detection API。链接:TensorFlow Object Detection API
然后,您可以相应地自定义您的整体应用程序行为,管理您的所有要求(例如,在成功检测到对象后使用 Tensoflow 对象检测 API 时收到某种回调后,显示一个弹出窗口,其中包含正在检测到的对象的所有详细信息)以及我相信您可以根据需要自定义 TensorFlow 对象检测场景部分(在这里, 我说的是与 UI 相关的部分,特别是如果您希望您的应用程序如何以图形方式检测对象)。
要回答有关离线工作方式以及由此产生的整体APK大小等详细信息,可以从下面给出的链接中更好地理解:
1] 分步 TensorFlow 对象检测 API 教程 — 第 1 部分:选择模型
2] 如何使用 TensorFlow 的对象检测器 API 训练自己的对象检测器
作为概述,要离线检测对象,您必须使用自己的一组数据/对象来限制(只是为了减小您的APK大小)(正如您提到的,您有一个固定的检测对象,这很好),然后您必须使用SSD-Mobilenet模型训练(可以在本地和云上训练)这组对象。然后,您将拥有自己训练的模型(更简单的话)这些对象集,这将为您提供一个 retrained_graph.pb 文件(该文件进入您的 android 项目的 assets 文件夹),这是最终结果,其中包括实时检测和分类相机帧的技巧(更简单的话),从而根据提供的信息(或数据/对象集)显示结果(或对象详细信息);无需任何类型的互联网连接。例如,TF Detect可以实时跟踪相机预览中的对象(来自80个类别)。
如需进一步参考,请点击以下链接:
1] 谷歌盗梦空间模型
2] 张量流对象检测 API 模型
3] 现代卷积目标检测器的速度/精度权衡
您也可以优化(或压缩)retrained_graph.pb 到 optimized_graph.pb,因为这是唯一会增加 APK 文件大小的主要内容。很久以前,当我尝试检测 5 个不同的对象(使用 TF Classify)时,每个对象的文件夹都有大约 650 张照片,所有 5 个文件夹(加在一起)的整体大小约为 230 mb,我的 retrained_graph.pb 大小仅为 5.5 mb(可以进一步优化为 optimized_graph.pb 进一步减小其大小)。
为了从初学者的水平开始学习它,我建议您浏览这些Codelab链接并了解这两个项目的工作原理,因为我也是这样做的。
1] 诗人的张量流
2] TensorFlow for Poets 2:针对移动设备进行优化
祝你好运。
以下指向TensorFlow GitHub(Master)的链接几乎包含了所有内容:
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android