如何在flutter应用程序中集成yolo-v3自定义对象检测器



我开发了flutter应用程序和yolov3自定义对象检测器。两个模块都是独立的。现在我想把这些模块组合成一个单独的项目,但我不知道如何在我的flutter应用程序中使用自定义对象检测器的训练权重。有人能帮我整合一下吗?

我不知道使用Flutter构建的是android应用程序还是iOS

无论如何,为了能够在Flutter应用程序上使用经过自定义训练的Yolov3模型,请执行以下两个步骤。

1.首先,您需要将经过训练的yolov3模型转换为tflite版本:

您可以将此回购用于此目的。

将自定义训练的Yolov3darknet权重保存到tflite转换所需的tfmodel

python save_model.py --weights yolov3.weights --output ./checkpoints/yolov3-416 --input_size 416 --model yolov3 --framework tflite

Yolov3型号转换为tflite版本:

python convert_tflite.py --weights ./checkpoints/yolov3-416 --output ./checkpoints/yolov3-416.tflite

2.然后使用Flutter插件访问TensorFlow-LiteAPI,该插件可与androidiOS一起使用-https://github.com/shaqian/flutter_tflite

a( 创建资源文件夹并将标签文件和模型文件放置在在pubspec.yaml中添加:

assets:
assets/labels.txt
assets/yolov3-416.tflite

b( 导入库:

import 'package:tflite/tflite.dart';

c( 加载模型和标签:

String res = await Tflite.loadModel(
model: "assets/yolov3-416.tflite",
labels: "assets/labels.txt",
numThreads: 1, // defaults to 1
isAsset: true, // defaults to true, set to false to load resources outside assets
useGpuDelegate: false // defaults to false, set to true to use GPU delegate
);

d( 在图像上运行:

var recognitions = await Tflite.detectObjectOnImage(
path: filepath,       // required
model: "YOLOv3",      
imageMean: 0.0,       
imageStd: 255.0,      
threshold: 0.3,       // defaults to 0.1
numResultsPerClass: 2,// defaults to 5
anchors: anchors,     // defaults to [0.57273,0.677385,1.87446,2.06253,3.33843,5.47434,7.88282,3.52778,9.77052,9.16828]
blockSize: 32,        // defaults to 32
numBoxesPerBlock: 5,  // defaults to 5
asynch: true          // defaults to true
);

e( 发布资源:

await Tflite.close();

相关内容

  • 没有找到相关文章

最新更新