我在自己的数据集上训练了一个 yolo-tiny 模型。该模型在带有OpenCV的Python中效果很好。但是,当我想在Android智能手机上的OpenCV(3.4.3(中运行相同的模型时,我在框架的顶部边缘得到了错误的检测。我正在使用OpenCV的dnn教程。
网络的创建方式如下:
// Net net = Dnn.readNet(getPath("my_yolov3-tiny.weights", this), getPath("my_yolov3-tiny.cfg", this));
Net net = Dnn.readNetFromDarknet(getPath("my_yolov3-tiny.cfg", this), getPath("my_yolov3-tiny.weights", this));
两种方法的结果是相同的。
我使用以下代码将检测记录到 Logcat:
Log.e(TAG, "detection 0th object: classID=" + classId + " - label: " + label + " - xleft: " + xLeftBottom + " - yLeft: " + yLeftBottom + " - xright: " + xRightTop + " - yright: " + yRightTop);
并获取以下输出:
classID=0 - label: [my_object_name]: 0.24151088297367096 - xleft: 43 - yLeft: 0 - xright: 0 - yright: 0
我得到检测,即使框架是黑色的。此版本中是否存在任何已知问题?
抱歉,您提供的信息不足以让我们帮助查找错误。
如果你在noraml ubuntu PC上输入一个黑屏,你的转移学习模型,它是否也返回false?如果是,则模型问题。如果没有,请转到下一行
如果你的迁移学习模型同时适用于opencv和python,那么在Android中运行应该没有问题。看来你有一个错误或sth。发布您认为可能犯错误的全部或关键部分。
如果您想在 android 中紧急运行它以完成学校项目,您可以按照这篇文章完成它。只需将模型切换到您的模型即可。
https://github.com/ishay2b/android-yolo