Я работаю над собственным детектором объектов, использующим HaarCascade.Кстати, я застрял в какой-то момент, который я объясню ниже.
Ситуация такова: - Я собрал 100 изображений моего объекта (скажем, яблоки) - Я собрал около 1500 негативов - я создал негатив.txt , файл, который содержит пути к изображениям негативов - я создал positives.txt , файл, который содержит пути,количество объектов, координаты и размеры моих положительных изображений
Теперь это проблема.
Используя opencv_createsamples.exe
для увеличения моих данных / изображений, я увидел, что, если я выполню его (с теми же параметрами) для каждого изображения объекта, на выходе будет более или менее 1000 положительных изображений (фон негативов + объект) вместе с .lst file
, содержащим пути и координаты объекта внутри негативного изображения.Эти координаты не изменятся (потому что я установил их, когда выполнил opencv_createsamples.exe
).
Вопрос: это хорошая идея, изменить параметры, требуемые createsamples
, для каждого изображения моего объекта, а затем объединить ихвсе?
Пример того, что я делаю сейчас:
- opencv_createsample.exe -p1 0,5 -p2 0,6 -p3 0,7
- дляодин из моих объектов изображения для каждого из моих негативов
- .lst файл с информацией (то же самое, если выполнить для каждого положительного изображения объекта)
Пример того, что я готовсделать:
- для каждого моего изображения объекта для каждого из моих негативов
- opencv_createsample.exe -p1 0,5 -p2 0,6 -p3 0,7 - opencv_createsample.exe -p10,6 -p2 0,7 -p3 0,8 и т. Д. (Со случайными значениями параметров)
- несколько файлов .lst с различной информацией для каждого изображения объекта
- объединение всех .lst
Я действительно надеюсь, что объяснил все.
Я сомневаюсь, что эффективность заключается в следующем: у меня будет лучшая точность, если я буду использовать разные объекты (одного и того же класса) в разных позициях или это будет одинаково, если использовать только один объект?
Глоссарий:
- объект = то, что я хочу обнаружить (яблоко)
- негативное изображение = фоновое изображение, не содержащее объект
- положительное изображение = обработанное изображение (создает образцы) с отрицательным + объектом
Спасибо всем
ОБНОВЛЕНИЕ
Здесь, после просмотра видео Sentdex на HaarCascade: Обучение обнаружению каскадных объектов Хаара - OpenCV с Python для анализа изображений и видео 20