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

Recommended Posts

Какие требования предъявляются к тренировочным данным для каскадных классификаторов?

Кол-во позитивных примеров?

Как могут варьироваться данные: поворот, смещение от центра окна, скейл?(Или же всё наоборот должно быть унифицировано и позволяется делать только отражение по горизонтали?)

 

тут пишут 

cascade object detector can detect object categories whose aspect ratio does not vary significantly. Objects whose aspect ratio remains approximately fixed include faces, stop signs, and cars viewed from one side.

 

The detector is very sensitive to out-of-plane rotation, because the aspect ratio changes for most 3-D objects. Thus, you need to train a detector for each orientation of the object. Training a single detector to handle all orientations will not work.

 

Training a good detector requires thousands of training samples. Large amounts of training data can take hours or even days to process. Using Haar features takes much longer than using LBP or HOG features.

 

The number of available positive samples used to train each stage depends on the true positive rate. The rate specifies what percentage of positive samples the function can classify as negative. If a sample is classified as a negative by any stage, it never reaches subsequent stages. For example, suppose you set the TruePositiveRate to 0.9, and all of the available samples are used to train the first stage. In this case, 10% of the positive samples are rejected as negatives, and only 90% of the total positive samples are available for training the second stage. If training continues, then each stage is trained with fewer and fewer samples. Each subsequent stage must solve an increasingly more difficult classification problem with fewer positive samples. With each stage getting fewer samples, the later stages are likely to overfit the data.

 

http://www.mathworks.com/help/vision/ug/train-a-cascade-object-detector.html

 

По каскадам:

 

AdaBoost + Haar features

Rapid object detection using a boosted cascade of simple features, Paul Viola, Michael Jones,CVPR 2001

SURFCascade

http://face.cs.kit.edu/befit/workshop2011/pdf/slides/jianguo_li-slides.pdf

https://github.com/xieguotian/SurfFaceDetection

Soft Cascade

http://www.slideshare.net/ktoshik/soft-cascade

 

обсуждение state-of-art

https://groups.google.com/forum/#!topic/opencv-gsoc-2014/zqkuJQr9hpQ

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


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

Ты немножко смешаваешь понятия.

 

Число позитивных и негативных примеров зависит от сложности того, что распознаётся. Лица по своей структуре достаточно сложны и разнообразны, для нормального обучения требуется тысячи позитивных сэмплов. Пешеходы аналогично. Если требуется искать исключительно самосвалы вид сзади, то хватит десятков или сотен сэплов. Чёткой градации я не знаю, в конкретном случае определяется на практике.

 

Далее положение объекта. Устойчивость в общем виде не зависит от каскада, а определяется исключительно используемым вектором признаков.

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

Если же признаки будут инвариантны к вращению (например, SIFT дескрипторы в качестве вектора признаков), то и итоговый классификатор будет инвариантен, его можно обучать только лишь на одном положении объекта.

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

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


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

Я говорил именно о обучающей выборке, а не о инвариантности фич к трансформам.

Имелось ввиду что если обучающая выборка несколько кривая - размер окна везде одинаковый, но объект внутри имеет немного разный скейл, немного по разному повернут, немного сдвинут от центра.

Что будет если например у нас в обучающей выборке одновременно будут квадраты и круги?

 

Хотя каскадный детектор вроде нормально работает на автомобильных номерах (буквенная начинка разная, небольшой поворот)

 

 

В этом случае надо либо обучать каскад в том числе на повёрнутых данных

 

в матлабе говорят что так работать не будет

The detector is very sensitive to out-of-plane rotation, because the aspect ratio changes for most 3-D objects. Thus, you need to train a detector for each orientation of the object. Training a single detector to handle all orientations will not work.

И тут еще 

http://note.sonots.com/SciSoftware/haartraining.html

Training illumination varying faces in one detector resulted in pretty poor. The generated detector became sensitive to illumination rather than robust to illumination. This detector does not detect non-illuminated normal frontal faces. This makes sense because normal frontal faces did not exist in training sets so many. Training multi-view faces in one time resulted in the same thing

 

 

 

 

Если используются каскады на базе фич Хаара, то можно точно сказать, что классификатор будет инвариантен к скейлу (т.к. характеристики интегральные)

 

не понял, там же несколько скейлов для фич используется

The feature used in a particular classifier is specified by its shape, position within the region of interest and the scale (this scale is not the same as the scale used at the detection stage)

 

 

 

 

 

кстати тут говорят о нескольких сотнях положительных

http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

и похоже там не совсем классический подход

Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost are supported. The basic classifiers are decision-tree classifiers with at least 2 leaves

 

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


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

Я говорил именно о обучающей выборке, а не о инвариантности фич к трансформам.

Имелось ввиду что если обучающая выборка несколько кривая - размер окна везде одинаковый, но объект внутри имеет немного разный скейл, немного по разному повернут, немного сдвинут от центра.

Что будет если например у нас в обучающей выборке одновременно будут квадраты и круги?

 

Хотя каскадный детектор вроде нормально работает на автомобильных номерах (буквенная начинка разная, небольшой поворот)

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

 

кстати тут говорят о нескольких сотнях положительных

http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

и похоже там не совсем классический подход

Не нашёл там упоминание о сотнях. В разных источниках видел рекомендации по тысячам, а то и десяткам тысяч позитивных примеров. Переобучения, вроде, не бывает.

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


Ссылка на сообщение
Поделиться на других сайтах
First, a classifier (namely a cascade of boosted classifiers working with haar-like features) is trained with a few hundred sample views of a particular object (i.e., a face or a car), called positive examples, that are scaled to the same size (say, 20x20), and negative examples - arbitrary images of the same size.

 

>few hundred sample views of a particular object

 

ну да наверно тут про вьювы, а не про кол-во объектов в выборке.

 

 

 

Еще вопрос какое должно быть отношение объекта к бэкграунду на тренировочном образце?

Или просто берется баунд рект?

По идее беря больший рект мы добавляем больше контекста в обучающий сэмпл.

 

Пример:

mosaic_pedestrian.jpg

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


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

Еще вопрос какое должно быть отношение объекта к бэкграунду на тренировочном образце?

Или просто берется баунд рект?

По идее беря больший рект мы добавляем больше контекста в обучающий сэмпл.

Могу точно сказать для HOG и пешеходов: объект должен полностью попадать в прямоугольник (очевидно) и обязательно должно присутствовать фон на ширину одного блока, чтобы сформировалась корректная гистограмма градиентов.

Для фич Хаара в применении к лицам это не должно быть так важно (ИМХО). Вроде как в этом случае учитывается больше внутренняя структура лица: симметрия, более тёмная область глаз и т.п.

 

Продолжая рассуждать чисто умозрительно, могу предположить, что наличие фона важно там, где признаки больше описывают форму, внешний контур. Если же признаки больше характеризуют внутреннюю структуру объекта: CPM (Color probability maps), PoP (pairs of pixels), то фона должно быть по минимуму.

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


Ссылка на сообщение
Поделиться на других сайтах
CPM (Color probability maps), PoP (pairs of pixels)

 

это какие то фичи?  что то не гуглиться.

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


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

POP часто встречаются ещё как CircularCenter Symmetric-Pairs of Pixels (CCS-POP). Грубо говоря, определитель симметрии.

С CPM я немного ошибся в расшифровке, M - это model. Часто используется, например, для детекции дорожных знаков.

 

Тройка HOG + CPM + PoP встречается при поиске автомобилей на спутниковых снимках.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×