Тренировка OpenCV haar для статического изображения - PullRequest
8 голосов
/ 07 ноября 2010

Я пытаюсь обучить каскадный классификатор Хаара для определения набора карт (который не вращается и не искажает изображение)

Например, у меня есть файл Clubs.png, который содержит изображение клубов на белом фоне 20x20 пикселей

Этот урок запутался http://note.sonots.com/SciSoftware/haartraining.html

Мое изображение меняется только по размерам, без искажений и наклонов.

Какие команды я должен ввести, чтобы получить файл Clubs.xml?

Ответы [ 4 ]

6 голосов
/ 19 ноября 2010

Как уже упоминалось @ Neon22, отличный учебник.По моему опыту, это довольно длительный процесс (сбор положительных и отрицательных образцов, обучение, генерация каскада Хаара), но, опять же, возможно, я делал это неправильно.

Для обнаружения карточек может быть полезно иметьпосмотрите также OpenCV SURF .

OpenCV SURF

Проверьте toxi ' видео .

Забавно, что вы упоминаете карты, Евгений Затепякин сделал порт ActionScript под названием ASSURF :

ASSURF cards

4 голосов
/ 07 апреля 2012

Если вы заинтересованы в создании своего xml-файла, это может помочь http://nayakamitarup.blogspot.in/2011/07/how-to-make-your-own-haar-trained-xml.html

Но если вы заинтересованы в том, чтобы сделать его инвариантным по отношению к ротации, тогда серфинг кажется лучшим вариантом.http://nayakamitarup.blogspot.in/2011/06/2d-ar-using-surf-based-application-of.html

1 голос
/ 19 ноября 2010

Попробуйте этот урок вместо.http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide

но учебник, который вы определили, довольно хорош.Я использовал его, чтобы разобраться со своим классификатором.Пример кода facedetect, включенный в дистрибутив opencv 2.1, является хорошим примером для проверки полученного XML-файла.(Я использую python)

Я обнаружил несколько проблем с поставляемыми справочными приложениями.1. createamples не будет читать файл описания с более чем 8 образцами из одного изображения - вручную разбейте файл отношений на несколько строк, содержащих не более 8 прямоугольников на изображение.

Обучение haar не будет продолжено, еслиМой файл .vec был создан с изображениями ширины и высоты> 24 пикселя

Основная проблема с haar, по-видимому, заключается в том, что он не является инвариантом для масштабирования, и вам нужны тысячи тестовых изображений - это то, что программа createamplesпомочь вам сделать с отдельными изображениями, но не поможет, если у вас есть файл описания отдельных образцов изображений.Следовательно, в учебниках содержится дополнительный код, позволяющий многократно вызывать createamples и объединять полученные файлы vec в один файл super vec.

0 голосов
/ 20 апреля 2016

Вы можете сослаться:
http://opencv -hub.blogspot.in / 2016/03 / как к поезду-своему собственному OpenCV-Хаар-классификатор-Хаар-тренинг-поезд-cascade.html
для создания собственного xar-файла haar-cascade.
Это Учебное пособие по OpenCV написано на C ++, где подробно описаны методы обучения Haar. Также обратите внимание, что Haar не является инвариантом вращения.
Таким образом, как только вы поворачиваете изображение, оно не будет обнаружено.
Вы должны использовать SURF для этой цели.
Но обнаружение объектов с помощью Haar происходит намного быстрее, чем SURF. Если вы хотите узнать, как использовать обученный файл каскада Хаара, вы можете обратиться:
http://opencv -hub.blogspot.in / 2016/03 / как-To-Do-режиме реального времени обнаружения лица, используя Хаара-cascade.html
Код обнаружения лица в реальном времени будет аналогичен коду обнаружения объекта в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...