OpenCV Haar Cascade Training Метод на Виола-Джоунс

Намирането на обект в цифрово изображение е една от приоритетните задачи в областта на разпознаването на изображения с помощта на библиотеката OpenCV.

Тази статия разглежда математическите основи на метода на Виола-Джоунс и процеса на намиране и разпознаване на буквите на регистрационните табели с помощта на OpenCV и детектора на Хаар.

Относно детектора на Haar и библиотеката OpenCV

Принцип на действие

Класификаторът се формира върху примитиви на Haar чрез изчисляване на стойностите на характеристиките. За обучение, набор от „правилни“ изображения с предварително избрана област върху изображението първо се подава към входа на класификатора, след това примитивите се сортират и се изчислява стойността на атрибута. Изчислените стойности се записват във файл в xml формат.

Малко математика

Принципи на метода на Виола-Джоунс

В момента методът на Виола-Джоунс е популярен метод за намиране на обект в изображение поради високата си скорост и ефективност. Методът на Виола-Джоунс се основава на: интегралното представяне на изображението чрез характеристиките на Хаар, изграждането на класификатор, базиран на алгоритъма за адаптивно усилване, и метод за комбиниране на класификатори в каскадна структура. Тези идеи позволяват търсене на обекти в реално време. Нека ги разгледаме по-подробно.

Интегралното представяне на изображението е матрица, която е със същия размер като оригиналното изображение. Всеки елемент от матрицата съхранява сумата от интензитети на всички пиксели, разположени вляво и над този елемент - долния десен ъгъл на правоъгълната област (0,0) до (x, y). Елементите на матрицата L могат да бъдат изчислени по формулата:

Изчисляването на стойностите на елементите на матрицата отнема време, пропорционално на броя на пикселите в оригиналното изображение, така че интегралното изображение се изчислява за един проход.

Матричните елементи се изчисляват по формулата:

L (x, y) = I (x, y) + L (x-1, y-1) + L (x, y-1) + L (x-1, y)

Използвайки интегралното представяне на изображението, можете бързо да изчислите общата яркост на произволна правоъгълна област в изображението. Пример за изчисление е даден в допълнение 1.

На етапа на откриване на обект в метода на Виола-Джоунс се използва прозорец с определен размер, който се движи върху изображението. За всяка област от изображението, през която преминава прозорецът, се изчислява характеристиката Haar, с помощта на която се извършва търсенето на желания обект.

Картографиране на характеристиките, където Df е набор от допустими стойности на характеристиката. Ако са дадени характеристики f1,…, fn, тогава векторът на характеристиките x = (f1 (x),…, fn (x)) се нарича описание на обекта x. Описанията на характеристиките могат да бъдат съпоставени със самите обекти. Множеството X = Df1 * ... * Dfn се нарича пространство на атрибутите [1].

Функциите са разделени на следните типове в зависимост от зададената Df:

  • двоична характеристика, Df =;
  • номинална характеристика: Df - краен набор;
  • редови атрибут: Df - краен подреден набор;
  • количествена характеристика: Df - набор от реални числа.

Haar се изчислява върху съседни правоъгълни области. Стандартният метод на Виола-Джоунс използва правоъгълни примитиви, показани на фигура 1.

Фигура 1 - Примитиви на Хаар

haar
Снимка 1

Изчислената стойност F на характеристиката на Haar ще бъде

където X е сумата от стойностите на яркостта на точките, обхванати от светлата част на примитива, Y е сумата от стойностите на яркостта на точките, обхванати от тъмната част. За изчислението се използва обсъдената по-горе концепция за интегрално изображение и характеристиките на Haar могат да бъдат изчислени бързо, в постоянно време. Използването на характеристиките на Haar дава точкова стойност на разликата в яркостта, съответно по осите X и Y.

Тъй като характеристиките на Haar не са много подходящи за обучение или класификация, се изискват повече характеристики, за да се опише обект с достатъчна точност. Следователно характеристиките на Haar влизат в каскадния класификатор, който служи за бързо изхвърляне на прозорци, където не е намерен необходимият обект, и връща резултата „true“ или „false“ относно местоположението на обекта.

Класификаторът е изграден въз основа на алгоритъма за усилване (от англ.тласък- подобрение, подобрение), за да изберете най-подходящите функции за желания обект в тази част на изображението. В общия случай усилването е набор от методи, които подобряват точността на аналитичните модели. Ефективен модел, който допуска няколко грешки в класификацията, се нарича „силен“. „Слаб“, от друга страна, не ви позволява надеждно да разделяте класове или да правите точни прогнози и прави голям брой грешки. Следователно, усилването означава „укрепване“ на „слаби“ модели и е процедура за последователно конструиране на композиция от алгоритми за машинно обучение, когато всеки следващ алгоритъм се стреми да компенсира недостатъците в състава на всички предишни алгоритми.

В резултат на ускоряващия алгоритъм при всяка итерация се формира прост класификатор на формата:

p_j е посоката на знака за неравенство, θ_j е праговата стойност, f_j (z) е изчислената стойност на характеристиката, z е прозорецът на изображението от 24 × 24 пиксела.

Полученият класификатор има минимална грешка по отношение на текущите стойности на тежестите, използвани в тренировъчната процедура за определяне на грешката.