【问题标题】:Tensorflow Lite Object Detection with Custom AutoML Model使用自定义 AutoML 模型进行 TensorFlow Lite 对象检测
【发布时间】:2020-01-22 05:16:24
【问题描述】:

我喜欢测试 TFLite 的对象检测示例。

https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/android

使用默认模型的示例效果很好。但我想测试从 AutoML 生成的自定义模型。当我替换“\src\main\assets”目录中的“detect.tflite”和“labelmap fille”并构建时,应用程序在启动后崩溃。

我的模型非常简单……只能检测 2 个物体(老虎和狮子)。我的 labelmap 文件包含以下内容:

??? 老虎 狮子

我还注释了“build.gradle”中的“//apply from:'download_model.gradle'”行,以停止默认模型的下载并使用资产中的自定义模型。

我是 Android 和这个机器学习领域的新手。如果有人可以在使用自定义 AutoML 模型启动后就 App 崩溃提出建议,我会很高兴。

提前致谢。

问候。

【问题讨论】:

  • 您应该提供更多关于 AutoML 模型文件生成位置/内容的详细信息(可能是指向源的链接)。意识到 Tensorflow Lite 只知道 .tflite 文件。
  • 您好,当然。在谷歌 AutoML 平台中......它提供了 GUI 来生成零编码的模型。在我上传所有图像的地方,制作边界框并开始训练(通过选择边缘)。几个小时的培训结束后,我可以下载 .tflite 格式的模型文件 这个 .tflite 文件我在 Android Studio 对象检测示例中使用,但应用程序在启动后崩溃。
  • 我会仔细检查您的输入和输出向量是否与您要替换默认模型的任何 Android 应用相匹配。否则您应该显示崩溃的内容、logcat 等。

标签: android tensorflow machine-learning tensorflow-lite automl


【解决方案1】:

日志中可能有两个错误:

Cannot convert between a TensorFlowLite buffer with 1080000 bytes and a ByteBuffer with 270000 bytes.相应修改TF_OD_API_INPUT_SIZE。

tflite ml google [1, 20, 4] and a Java object with shape [1, 10, 4].根据自定义模型修改NUM_DETECTIONS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2021-09-20
    相关资源
    最近更新 更多