Tensorflow Lite-对象检测API YOLOV3



我想基于yolov3的Android实现TFLITE分类器。我有点菜鸟,带有TensorFlow Lite对象检测代码...

我想从对象检测Tflite的实现开始。我试图将此代码与YOLO分类器合并,但是在适应Lite版本的非lite代码方面我遇到了很多问题。

我的问题是:我可以从tflite示例开始基于yolov3的分类器吗?我认为tfliteObjectDetectionApimodel是我必须修改的类。这是正确的吗?还是可以使用此API来调用我自己编写的Yoloclalifier实现?

我想详细了解如何使用API基于Yolo生成和应用自己的分类器。我必须实现一个新的yoloclalsifier.java,该类别与api.java文件接口,否则我只能在API上工作以适应新的分类器?

感谢所有人,我希望我很清楚:(

不幸的是,您目前无法将完整的 yolov3模型转换为tensorflow Lite模型。这是因为Yolov3通过引入一些额外的层(也称为Yolov3 Head Poertion(来扩展在Yolo和Yolov2使用的原始DarkNet后端,似乎在准备Tflite的模型时似乎无法正确处理(至少在Keras中(转换。

您可以在没有模型的"头"部分的情况下将yolov3转换为.tflite(请参见:https://github.com/benjamintanweao/yolov3(,但是随后您必须在Java代码中实现丢失的零件(如在此处建议:https://github.com/wics1224/yolov3-android-tflite(。如果这样做,请确保您的锚箱大小正确。第二个链接希望回答您问题的第二部分。

如果您打算将事情简单化,您的其他选择将使用SSD-Mobilenet或Yolov2微型用于您的应用程序。他们将为您提供更多的实时体验。

我目前正在研究一个类似的项目,该项目涉及Flutter/tflite中的对象检测,因此,如果我发现任何新事物,我会及时更新。

编辑:

在https://github.com/benjamintanweao/yolov3中,您需要更改导入库的方式,因为 lite 库库从 contry 从tensorflow移出1.14开始。

尝试https://github.com/zldrobit/onnx_tflite_yolov3,但NMS不在Tensorflow Compute Graph中。您必须在Java代码中实现自己的NMS。此存储库的另一个问题是它需要ONNX和Pytorch。如果您不熟悉它们,可能会花一些时间。

最新更新