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

2024-01-13

我开发了 flutter 应用程序并yolov3自定义对象检测器。两个模块都是独立的。现在我想将这些模块合并到一个项目中,但无法弄清楚如何在我的 flutter 应用程序中使用自定义对象检测器的训练权重。有人可以帮我完成这个集成吗?


不知道是否使用Flutter你正在建造android app or iOS.

无论如何能够使用定制训练Yolov3模型在你的Flutter应用程序,请按照以下两个步骤操作。

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

您可以使用this https://github.com/hunglc007/tensorflow-yolov4-tflite为此目的回购。

保存自定义训练的 Yolov3darknet权重为tfmodel这是需要的tflite转换:

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

Convert Yolov3模型到tflite版本:

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

2.然后你使用Flutter用于访问的插件TensorFlow-LiteAPI,两者都适用android and iOS - https://github.com/shaqian/flutter_tflite https://github.com/shaqian/flutter_tflite

a) 创建一个assets文件夹并将标签文件和模型文件放入 它。在pubspec.yaml add:

  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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 flutter 应用程序中集成 yolo-v3 自定义对象检测器? 的相关文章

随机推荐