我正在尝试将使用 Teachable Machine 创建的自定义 TensorFlow Lite (TFLite) 模型集成到 Flutter 应用程序中。最初,我遵循 tflite_flutter 插件存储库中提供的活动对象检测示例,特别是 live_object_detection_ssd_mobilenet 示例。
我成功使用提供的模型 (ssd_mobilenet.tflite) 运行了示例,但是当我用自定义 TFLite 模型替换它时,应用程序停止正常运行。具体来说,它不再显示检测到的对象的边界框和统计信息。
以下是我采取的步骤:
class _DetectorServer {
/// Input size of image (height = width = 300)
static const int mlModelInputSize = 300;
/// Result confidence threshold
static const double confidence = 0.5;
Interpreter? _interpreter;
List<String>? _labels;
_DetectorServer(this._sendPort);
final SendPort _sendPort;
...
}
补充:
我是 tflite 的新手。我需要一个明确的指导来在我提供的示例中使用我自己的模型上面。如果您有与此问题相关的其他建议或知识,请告诉我。谢谢。
首先,您的模型是分类模型,而不是对象检测模型。因此,不存在边界框。在 Netron 中,您可以看到输出形状为 [1,29],这意味着有 29 个类。如果在推断模型后立即打印输出,您将获得每个类的概率,例如 [[0.002,0.004,0.5,....]]。
如果您需要训练用于对象检测的自定义模型,则需要使用带有边界框的带注释数据集来训练它。您可以搜索 Google Colab 笔记本,使用 SSD 移动网络或 yolo 之类的工具来训练带注释的数据。可教学机器仅用于分类模型。