opencv_createsamples "Ошибка подтверждения"

Я пытаюсь создать файл vec из моих положительных образцов изображений. Я использую последнюю версию OpenCV. Команда, которую я использую, это:

opencv_createsamples -info Positive.info -num 3750 -w 24 -h 24 -vec Positive.vec

Все мои изображения больше, чем 24x24, поэтому я не верю, что это проблема. Я попытался выполнить поиск в Интернете, но я не нашел никого с этой ошибкой при выполнении команды createamples. Вывод, который я получаю при запуске:

Info file name: Positive.info
Img file name: (NULL)
Vec file name: Positive.vec
BG  file name: (NULL)
Num: 3750
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 24
Height: 24
Max Scale: -1
RNG Seed: 12345
Create training samples from images collection...
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.0.0-alpha) Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat, file c:\build\master_winpack-build-win64-vc15\opencv\modules\core\src\matrix.cpp, line 465

Это мой первый раз, когда я использую opencv, поэтому мне очень неясно, что это за ошибка. Кто-нибудь имеет какой-либо опыт с этим или может указать мне правильное направление для исправления ошибки?

4 ответа

Это Приянка. Я также получал ту же ошибку, и я пытался как-то разрешить ее. Но я не смог ничего найти в интернете.

Но я могу решить проблему успешно. 2-3 вещи, которые отсутствовали, как показано ниже:

  1. Я использовал opencv_annotation.exe для генерации -info (текстовый файл). Эта утилита встраивает полный путь к изображению в файл, где, поскольку opencv_createsamples.exe ожидает, что изображения присутствуют в той же папке, что и файл -info. Так что раньше случалось, что путь к изображению сцеплялся с путем к файлу -info. т.е. предположим, что файл -info доступен по адресу D:\MyPath\DataSet\annotations.txt и изображения в D:\MyPath\DataSet\Vehicles\*.png, В этом случае при выполнении opencv_createsamples.exe полный путь к изображению становится D:\MyPath\DataSet\D:\MyPath\DataSet\Vehicles\image000.png, который утилита не может найти.

  2. Так что угождайте правильному пути любезно позаботьтесь о вещах ниже

    • поместите файл -info по тому же пути, что и изображения.
    • убедитесь, что в файле -info нет пути к какому-либо изображению. Он должен содержать только

    <image name without complete path> <object instances> <x y, width height>

С этим изменением путь к изображению был выбран правильно, и моя проблема была решена.

Попробуйте сделать это. Это может помочь вам.

Это Tushar Pathade, эта ошибка возникает, когда ваш файл info.txt(файл, содержащий информацию об обнаруживаемых объектах) содержит некоторую неправильную информацию, например image_name 1 0 0 0 0 или image_name 2 10 20 30 40. В первых примерах координаты (0,0,0,0), что невозможно, пока во втором примере нет. объектов 2, но указаны координаты только одного объекта.

Итак, эти строки вызвали эту ошибку. Так что сначала удалите его, а затем бегите. Тогда вы не получите никаких ошибок.

Как упоминалось выше, об этом также нужно позаботиться в первую очередь, но это приведет к другой ошибке. Это не что иное, как ошибка "изображение не найдено". Чтобы избежать этого, поместите файл info.txt в папку с негативными изображениями. В основном вы увидите ошибочный путь, поэтому обработайте его соответственно. Спасибо.

У меня такая же ошибка.

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

Решение:

Для этого решения я использовал технологию "разделяй и властвуй". Что я сделал, так это то, что я создал новый текстовый файл, и в этот текстовый файл я вставил несколько файлов из исходной информации или текстового файла. Я запустил код, если он создает образцы, тогда хорошо, если нет, то удалите любое изображение из этого текстового файла. снова *(снова запустите create_samples)*. делайте это, пока не получите чистый файл. Я знаю, что это слишком утомительное занятие, но это работает.

благодаря

Теперь я сталкиваюсь с той же проблемой, если аргумент num меньше 950, он работает для меня.

Другие вопросы по тегам