Использование YOLO в OpenCV показывает неправильные определения в верхнем крае изображения - PullRequest
0 голосов
/ 02 июня 2019

Я обучил крошечную модель на своем собственном наборе данных. Модель отлично работает в Python с OpenCV. Но когда я хочу запустить ту же модель в OpenCV (3.4.3) на смартфоне Android, я получаю ложные определения на верхнем краю кадра. Я использую dnn tutorial от OpenCV.

Сеть создается как:

// 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

Я получаю обнаружения, хотя рамка черная. Есть ли известные проблемы в этой версии?

1 Ответ

0 голосов
/ 02 июня 2019

Извините, предоставленной вами информации недостаточно для того, чтобы мы могли найти ошибку.

Если вы введете черный экран на noraml ubuntu PC с вашей моделью передачи, она также возвращает false? Если да, то проблема с моделью. Если нет, переходите к следующей строке

Если ваша обученная модель переноса работает как на opencv, так и на python, то проблем с запуском в Android не должно быть. Кажется, у вас есть ошибка или что-то еще. Опубликуйте все или ключевую часть, где, по вашему мнению, вы можете ошибиться

Если вы хотите срочно запустить его на Android, чтобы завершить школьный проект, вы можете выполнить этот пост, выполнив его. Просто переключите модель на свою.

https://github.com/ishay2b/android-yolo

...