带有来自 tflite Model-maker 的模型的错误 Android 对象检测应用程序

Posted

技术标签:

【中文标题】带有来自 tflite Model-maker 的模型的错误 Android 对象检测应用程序【英文标题】:Error Android Object Detection App with model from tflite Model-maker 【发布时间】:2021-10-28 05:52:31 【问题描述】:

我正在创建一个用于对象检测的自定义 android 应用程序。因此,我从这里使用 Tensorflow 对象检测 Android 应用程序:examples/lite/examples/object_detection/android at master · tensorflow/examples · GitHub 我正在使用以下代码使用 TFlite 模型制造商训练我的模型:

!pip install -q tflite-model-maker
!pip install -q pycocotools

#----------------Python code--------------------------
import numpy as np
import os

from tflite_model_maker.config import ExportFormat
from tflite_model_maker import model_spec
from tflite_model_maker import object_detector

import tensorflow as tf
assert tf.version.startswith(‘2’)

tf.get_logger().setLevel(‘ERROR’)
from absl import logging
logging.set_verbosity(logging.ERROR)

spec = model_spec.get(‘efficientdet_lite0’)

test_data = object_detector.DataLoader.from_pascal_voc(’./test’, ‘./test’, label_map=1: “Ball”, 2: “Spieler Rot”, 3: “Spieler Gelb”)
train_data = object_detector.DataLoader.from_pascal_voc(’./train’, ‘./train’, label_map=1: “Ball”, 2: “Spieler Rot”, 3: “Spieler Gelb”)
validation_data = object_detector.DataLoader.from_pascal_voc(’./valid’, ‘./valid’, label_map=1: “Ball”, 2: “Spieler Rot”, 3: “Spieler Gelb”)
model = object_detector.create(train_data, model_spec=spec, batch_size=16, train_whole_model=True, validation_data=validation_data, epochs=1)
model.evaluate(test_data)
model.export(export_dir=’.’)

这工作了好几个星期,没有任何错误。现在我在 Android Studio 中收到以下错误:

Output tensor at index 0 is expected to have 3 dimensions, found 2.

我的数据集完全相同,我在 Google Colab 上进行训练。我确定我没有对 Android 应用进行任何更改。

【问题讨论】:

【参考方案1】:

上述对象检测任务的模型制造商目前暂时存在 TensorFlow 2.6 版本的问题。请考虑使用 TensorFlow 2.5 版本为对象检测任务创建模型。

【讨论】:

非常感谢。我们在 tensorflow 论坛上得到了帮助:我们发现在新版本 2.6 中输出神经元位于不同的行中。 嗨 @danih1207 你能告诉我你是怎么解决的吗? 嗨 :-) 我刚刚降级了 Tensorflow 版本。 pip install PyYaml==5.1 pip install tensorflow==2.5.0 我在 tensorflow 论坛上得到了很好的帮助。见:discuss.tensorflow.org/t/…

以上是关于带有来自 tflite Model-maker 的模型的错误 Android 对象检测应用程序的主要内容,如果未能解决你的问题,请参考以下文章

来自自定义 keras 层的 tflite 转换器

Flutter tflite图像分类如何不显示错误结果

将 .tflite 转换为 .pb

如何在 tflite 模型中组合数据预处理代码(在 tflite 中集成数据预处理代码)

如何在图像分类上快速运行 tflite 模型

GpuDelegateV2 Tflite 不接受任何参数