Opencv Русское Описание

 
Opencv Русское Описание Rating: 5,9/10 3934 votes

Русский той порода милых декоративных собак, родина которой Россия. В статье фото русского.

Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями. Приводимые фрагменты исходного кода старайтесь выделять тегами code./code 4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет 5.

Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии 'срочно надо', заданный в 2003 году) 6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке.

Bmp 1 0 0 590 182 «Good 0.bmp» — адрес объекта относительно файла описания. «1» — количество положительных объектов на изображении. «0 0 414 148» — координаты прямоугольника на изображении в котором находится объект. Если объектов несколько, то запись приобретает вид: «Good 0.bmp 2 100 200 50 50 300 300 25 25». Удобнее всего, когда каждый объект представляет собой отдельный кадр, при этом координаты объекта равны размеру кадра.

Пример создания Good.dat и Bad.dat на примере работы с Picture Cropper. Создаём папку, к примеру «Learn».

Создаём под папки: Good, Bad. Распаковываем Picture Cropper. Перекидываем в папку Good, изображения с объектом. (Цельные, не обрезанные) В итоге у нас должна получиться следующая структура.

Описание

Dat Кладём в папку Good и Bad необходимые файлы. Запускаем PictureCropper.exe. Выбираем нужную папку и обрабатываем изображения. Работа с программой: мышкой выделяется область которая должна быть сохранена.

По «s» происходит сохранение. По «r» – сохранение и переход к следующему изображению. По пробелу — просто переход к следующему изображению.

После завершения работы у нас должен появиться Good.dat. И в папке Good папка Cropper, в которой хранятся обрезанные изображения. Проделываем тоже самое с папкой Bad.

Opencv

После процедуры обработки фотографий в папке Bad, приведём его файл описания Bad.dat к «правильному виду». Сейчас файл Bad.dat выглядит следующим образом. Exe -info Good. Dat -vec samples. Vec -w 20 -h 30 Good.dat – файл описания положительных изображений.

Указывается либо полный адрес, либо относительно программы opencvcreatesamples.exe.vec samples.vec – файл, в который будет сохранена приведённая к общему формату база положительных изображений. Адрес должен быть указан относительно программы opencvcreatesamples.exe (допустим полный путь в системе).w 20 -h 30 — размер шаблона. Должен приблизительно отражать пропорции искомого объекта. Например, для лиц или для символа автомобильного номера наиболее подходящая пропорция высоты к ширине 1.3.

Для номеров это 3.1. А для поиска карандаша логично поставить что-то вроде 8.1. Размер шаблона должен быть достаточно маленьким. Идеально ставить его таким, чтобы человек сам мог отличить изображённый объект, но не больше того.

Opencv Русское Описание

Чем больше шаблон, тем дольше обучение. Результатом работы программы является файл samples.vec, в котором будут лежать все ваши положительные изображения в формате, близком к bmp и с размером w.h. Если всё прошло успешно должен появиться файл samples.vec. Созданием основного каскада: Для подсчёта итогового каскада используется программа «opencvtraincascade.exe», лежащая в той же папке, что и opencvcreatesamples.exe. Работает долго. Даже очень долго.

Обучение каскада на 500-1000 объектов займёт почти целый день. Пример обучался часа 24. Exe -data haarcascade -vec samples. Dat -numStages 16 -minhitrate 0.990 -maxFalseAlarmRate 0.5 -numPos 400 -numNeg 500 -w 20 -h 30 -mode ALL -precalcValBufSize 256 -precalcIdxBufSize 256 -data haarcascade — адрес папки, куда класть полученные результаты. Отсчитывается от корневой папки программы.

Нужно создать заранее, а то всё вылетит.vec samples.vec — адрес посчитанного в прошлом пункте файла с положительными примерами -bg Bad.dat — адрес файла-описания отрицательных примеров -numStages 16 — количество уровней каскада, которые программа будет обучать. Чем больше уровней, тем точнее, но тем дольше. Нормальное их количество от 16 до 25.minhitrate 0.999 — коэффициент, определяющий качество обучения.

По сути, это процент “правильных” обнаружений. Если установлено.999, то есть по исходной выборке будет не более, чем 1- 0.999 =0.1% пропусков целей. Чем выше коэффициент, тем выше уровень ложных тревог. В принципе, если выборка хорошая, можно ставить 0.99-0.999. Если плохая ( объектов мало, они смешиваются с фоном) — то следует опускать.maxFalseAlarmRate 0.4 — уровень ложной тревоги.

AdaBoost — такой алгоритм, который может любой уровень ложной тревоги по выборке натянуть. Но лучше что-то разумное сделать. По умолчанию все ставят 0.5. Но, возможно, будет иметь смысл поиграться. В случае, если выборка очень хорошая, то уровень требуемой тревоги будет быстро достигнут, и обучение будет остановлено.numPos 400 — количество позитивных примеров. Казалось бы, тут должно стоять число файлов, которые у вас были. Но это не так (в большинстве руководств это не отмечено).

Чем ниже коэффициент « minhitrate», тем больше ваших файлов будет считаться непригодными. В большинстве случаев достаточно поставить numPos 80% от имеющихся у вас положительных файлов. Лучше перестраховаться, чтобы через день работы программа не вылетела с ошибкой:) -numNeg 500 — количество имеющихся у вас негативных примеров.

Что есть — то и пишем.w 20 -h 30 — размер примитива из прошлого пункта.mode ALL — использовать или нет полный комплект Хаар-признаков. От этого зависит скорость работы и точность алгоритма. Но есть ситуации, когда полного комплекта признаков не нужно (например, если ваш объект не меняет ориентацию).precalcValBufSize 256 -precalcIdxBufSize 256 — выделяемая под процесс память. Вроде, в последней версии OpenCV, сколько я заявил, примерно столько программа и съела, но чуть более ранние версии ели где-то в 2 раза больше. Если во время обучения вы планируете пользоваться компьютером, то ставьте столько памяти, чтобы вам хватило на дальнейшую работу. После того, как алгоритм закончит работу, у вас появится папка haarcascade и файл cascade.xml в этой папке, это и будет созданный каскад. Пример выполнения: Напишем простую программу на OpenCV для демонстрации работы алгоритма.