Перейти к содержимому
Compvision.ru
Smorodov

Находим в кадре лица, человеческие фигуры, и т.д. и т.п

Recommended Posts

Smorodov    523

FaceDetect.jpg

проект здесь: FaceDetect.rar

дополнительные классификаторы (нос, глаза, рот, тело):HaarClassifiers.rar

здесь еще куча каскадов: Каскады хаара

  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте! У меня следующий вопрос:

Как обучить каскад Хаара находить сложные предметы (например, автомат, вертолет и т.п.)?

Пробовал, как написано в мануале - не получается.

Кто-нибудь пробовал сам обучать каскады?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cfr    1
Здравствуйте! У меня следующий вопрос:

Как обучить каскад Хаара находить сложные предметы (например, автомат, вертолет и т.п.)?

Пробовал, как написано в мануале - не получается.

Кто-нибудь пробовал сам обучать каскады?

Я не пробовал, но встречал информацию по этому поводу в отдельной PDF (что-то вроде ObjectDetectionHowTo) и в O'Reilly Learning OpenCV

Если нужно детектировать достаточно особенные объекты, можно попробовать SURF

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хочется классифицировать объекты, находящиеся на неподвижной картинке - человек, автомобиль, автомат, человек рядом с автомобилем, человек с автоматом. человек на автомобиле с автоматом и т.д. Т.е. получить текстовый дескриптор для изображения. Думал, что построив необходимые каскады, смогу (время обработки в данном случае не учитываем) получить такой дескриптор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вышеуказаные документы читал (насколько позволяет знание языка) - на практике реализовать проблемно. Думал, может кто пробовал под свои задачи обучать, какие тонкости при этом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cfr    1

Ага, похоже вы занимаетесь Automatic Image Annotation :(

Есть, как минимум, один проект подобного рода на OpenCV Annotator, к сожалению без исходников.

А почему вы используете Виола-Джонс? Этот алгоритм, похоже не самый популярный в данной задаче...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov    523
Ага, похоже вы занимаетесь Automatic Image Annotation :(

Есть, как минимум, один проект подобного рода на OpenCV Annotator, к сожалению без исходников.

А почему вы используете Виола-Джонс? Этот алгоритм, похоже не самый популярный в данной задаче...

Может отсюда что нибудь сгодится?

Distinctive Image Features from Scale-Invariant Keypoints

Вроде у них по образцу на примерах очень неплохо работает.

ijcv04.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cfr    1
Может отсюда что нибудь сгодится?

Distinctive Image Features from Scale-Invariant Keypoints

Вроде у них по образцу на примерах очень неплохо работает.

Дык, SURF -- штука аналогичная SIFT, но не запатентованная. И работает быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Начинать нужно было с простейшей задачи - выявить на изображениии лицо.

Насколько я понимаю, SURF (SIFT) позволяет найти эталон на изображении. А если все объекты относятся к одному классу (например, самолет) и имеют сходные внешние контуры (хвост, фюзеляж, крылья), но ключевые точки для каждого будут разными (или я не прав), то эти методы не сработают (не делать же для каждой модели самолета свой эталон). А алгоритм Виола-Джонса, если я правильно понимаю, позволяет получить именно некий нечеткий эталон для определенного класса объектов. Поэтому продолжил копать в этом направлении. Или я не прав? Тема для меня новая абсолютно

Вот что у меня примерно получается (пока еще не конечный результат):

post-80-1243800968_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cfr    1
Начинать нужно было с простейшей задачи - выявить на изображениии лицо.

Насколько я понимаю, SURF (SIFT) позволяет найти эталон на изображении. А если все объекты относятся к одному классу (например, самолет) и имеют сходные внешние контуры (хвост, фюзеляж, крылья), но ключевые точки для каждого будут разными (или я не прав), то эти методы не сработают (не делать же для каждой модели самолета свой эталон). А алгоритм Виола-Джонса, если я правильно понимаю, позволяет получить именно некий нечеткий эталон для определенного класса объектов. Поэтому продолжил копать в этом направлении. Или я не прав? Тема для меня новая абсолютно

Да, с SIFT/SURF всё правильно, он точно поможет найти уже существующие в базе объекты, с классификацией это, на самом деле, не особо связано.

Гугл подсказывает, часто используют SVM и HMM (не знаю, с какими фичами), в OpenCV они есть.

Получается вроде здорово ^_^b

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Да, с SIFT/SURF всё правильно, он точно поможет найти уже существующие в базе объекты, с классификацией это, на самом деле, не особо связано.

Гугл подсказывает, часто используют SVM и HMM (не знаю, с какими фичами), в OpenCV они есть.

Получается вроде здорово ^_^b

Это я самые сливки показал! Проблема в том, чтобы уменьшить вероятности ошибок первого и второго рода при классификации, что достигается хорошим обучением каскада. Вот над алгоритмом получения "хорошого" каскада и бъюсь. И не совсем понятно, как быть с инвариантностью вейвлета к вращению (в мануале написано, что такой механизм есть). Может, кто знает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Это я самые сливки показал! Проблема в том, чтобы уменьшить вероятности ошибок первого и второго рода при классификации, что достигается хорошим обучением каскада. Вот над алгоритмом получения "хорошого" каскада и бъюсь. И не совсем понятно, как быть с инвариантностью вейвлета к вращению (в мануале написано, что такой механизм есть). Может, кто знает?

Кстати, можно поподробнее про SVM (и скрытые марковские модели) в opencv? Что-то в хелпе их вроде не видел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Cfr    1
Кстати, можно поподробнее про SVM (и скрытые марковские модели) в opencv? Что-то в хелпе их вроде не видел...

По SVM/HMM смотрите /usr/include/opencv/ml.h (или где у вас заголовочные файлы opencv). Внятных примеров по этому поводу не встречал >_>

В хелпе есть -- в разделе MachineLearning.

С вейвлетами инвариантность к вращению обычно достигается (по крайней мере, так с вейвлетами Габора) за счет применения повернутого ядра :(

Мало игрался с Виола-Джонс, не знаю как там это делается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
jek    0

здесь кто-нибудь работал с кодом Фримана??? у меня задача определение контура человека, вот решил попробовать через код Фримана

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov    523
здесь кто-нибудь работал с кодом Фримана??? у меня задача определение контура человека, вот решил попробовать через код Фримана

OpenCV, по моему, и представляет контуры кодом Фримана. Для того чтобы определить похожесть контуров, можно воспользоваться моментами Ху, или использовать функцию cvMatchShapes см. пример в аттаче.

ContourMatching.png

Пример: ContourMatching.rar

ЗЫ: Людей лучше искать Хааром (см. выше).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
jek    0

а можете дать ссылки где поподробней можно почитать про алгоритм Хаара?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov    523
а можете дать ссылки где поподробней можно почитать про алгоритм Хаара?

Тут материальчик от Intel: OpenCV Object Detection: Theory and Practice

И это посмотрите:

Виола-Джонс

Faces Presentation

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Тут материальчик от Intel: OpenCV Object Detection: Theory and Practice

И это посмотрите:

Виола-Джонс

Faces Presentation

Доброго времени суток, господа.

Все-таки скачал AnnotattorAnnotator (на тот момент он не был доступен для скачивания). Использует он Виола-Джонса. Значит, надежда на этот подход все-таки есть!

З.Ы.: Хедеры OpenCV в процессе - сейчас в отпуске, надеюсь доделать.

post-80-1245262455_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
jek    0

А как создаются классификаторы? и для рук и ног существуют класификаторы?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov    523
А как создаются классификаторы? и для рук и ног существуют класификаторы?)

Для OpenCV я сделал перевод их руководства, он лежит здесь: Обучение классификаторов Хаара

Насчет рук и ног, в примере FaceDetect, в директории с классификаторами лежат каскады для нижней части тела haarcascade_lowerbody и для верхней части тела haarcascade_upperbody, а также для человека в полный рост haarcascade_fullbody.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov    523

Результат моих экспериментов по определению координат глаз (эксперименты продолжаются)

EyeSearch.jpg

Архив с проектом: FaceDetect2.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Frimen    0

Подскажите пожалуйста где скачать утилиты для тренировки классификаторов Хаара

createsamples и haartraining

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
jek    0

в библиотеке OpenCV должны быть, в той папке куда саму библиотеку ставил

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Frimen    0

В библиотеки OpenCV есть стандартный классификаторы для поиска палец и ладоней человека ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×