кочан Как работи класификацията на изображения? - Обединете.AI
Свържете се с нас
AI майсторски клас:

AI 101 г

Как работи класификацията на изображения?

mm
Обновено on

Как телефонът ви може да определи какъв е даден обект само като го снима? Как уебсайтовете на социалните медии автоматично маркират хора на снимки? Това се постига чрез задвижвано от AI разпознаване и класификация на изображения.

Разпознаването и класифицирането на изображения е това, което позволява много от най-впечатляващите постижения на изкуствения интелект. Но как компютрите се научават да откриват и класифицират изображения? В тази статия ще разгледаме общите методи, които компютрите използват за интерпретиране и откриване на изображения и след това ще разгледаме някои от най-популярните методи за класифициране на тези изображения.

Класификация на ниво пиксел срещу обектно базирана класификация

Техниките за класифициране на изображения могат да бъдат разделени главно в две различни категории: пикселно базирана класификация и обектно базирана класификация.

Пикселите са основните единици на изображението и анализът на пикселите е основният начин, по който се извършва класификацията на изображението. Алгоритмите за класификация обаче могат или да използват само спектралната информация в отделните пиксели, за да класифицират изображение, или да изследват пространствена информация (близки пиксели) заедно със спектралната информация. Методите за класификация, базирани на пиксели, използват само спектрална информация (интензитета на пиксел), докато методите за класификация, базирана на обекти, вземат предвид както спектралната информация на пикселите, така и пространствената информация.

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

Базираните на пикселите методи за класификация са ограничени от факта, че не могат да използват информация от други близки пиксели. Обратно, методите за класификация, базирани на обекти, могат да включват други пиксели и следователно те също използват пространствена информация за класифициране на елементи. Обърнете внимание, че „обект“ се отнася само за съседни региони от пиксели, а не дали има или не целеви обект в този регион от пиксели.

Предварителна обработка на данни за изображение за откриване на обект

Най-новите и надеждни системи за класификация на изображения използват предимно схеми за класификация на ниво обект и за тези подходи данните за изображения трябва да бъдат подготвени по специфични начини. Обектите/регионите трябва да бъдат избрани и предварително обработени.

Преди едно изображение и обектите/регионите в това изображение да могат да бъдат класифицирани, данните, които съдържат това изображение, трябва да бъдат интерпретирани от компютъра. Изображенията трябва да бъдат предварително обработени и подготвени за въвеждане в алгоритъма за класификация и това се прави чрез откриване на обекти. Това е критична част от подготовката на данните и подготовката на изображенията за обучение на класификатора за машинно обучение.

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

Снимка: Adrian Rosebrock чрез Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

Друг метод за предварителна обработка е сегментирането на изображението. Сегментирането на изображението функционира чрез разделяне на цялото изображение на сегменти въз основа на подобни характеристики. Различните региони на изображението ще имат сходни стойности на пикселите в сравнение с други региони на изображението, така че тези пиксели са групирани заедно в маски на изображението, които съответстват на формата и границите на съответните обекти в изображението. Сегментирането на изображението помага на компютъра да изолира характеристиките на изображението, които ще му помогнат да класифицира обект, подобно на ограничаващите полета, но те предоставят много по-точни етикети на ниво пиксел.

След приключване на откриването на обекта или сегментирането на изображението към въпросните региони се прилагат етикети. Тези етикети се подават, заедно със стойностите на пикселите, съставляващи обекта, в алгоритмите за машинно обучение, които ще научат модели, свързани с различните етикети.

Алгоритми за машинно обучение

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

K-най-близки съседи

K-Nearest Neighbors е класификационен алгоритъм, който изследва най-близките примери за обучение и преглежда техните етикети, за да установи най-вероятния етикет за даден тестов пример. Когато става въпрос за класифициране на изображения с помощта на KNN, векторите на характеристиките и етикетите на образите за обучение се съхраняват и само векторът на характеристиките се предава в алгоритъма по време на тестване. След това векторите на характеристиките за обучение и тестване се сравняват един срещу друг за сходство.

Алгоритмите за класификация, базирани на KNN, са изключително прости и се справят с множество класове доста лесно. KNN обаче изчислява сходството въз основа на всички характеристики еднакво. Това означава, че може да бъде предразположен към погрешна класификация, когато се предоставя с изображения, където само подгрупа от характеристиките е важна за класификацията на изображението.

Поддръжка на векторни машини

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

Многослойни перцептрони (невронни мрежи)

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

Алгоритми за дълбоко обучение (CNN)

Снимка: APhex34 чрез Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Най-често използваният алгоритъм за класификация на изображения в последно време е конволюционната невронна мрежа (CNN). CNN са персонализирани версии на невронни мрежи, които комбинират многослойните невронни мрежи със специализирани слоеве, които са способни да извличат характеристиките, които са най-важни и подходящи за класификацията на даден обект. CNN могат автоматично да откриват, генерират и научават характеристиките на изображенията. Това значително намалява необходимостта от ръчно етикетиране и сегментиране на изображения, за да бъдат подготвени за алгоритми за машинно обучение. Те също имат предимство пред MLP мрежите, защото могат да се справят с неизпъкнали функции на загуба.

Конволюционните невронни мрежи получават името си от факта, че създават „навивки“. CNN работят, като вземат филтър и го плъзгат върху изображение. Можете да мислите за това като за гледане на части от пейзаж през подвижен прозорец, като се концентрирате само върху характеристиките, които могат да се видят през прозореца във всеки един момент. Филтърът съдържа числени стойности, които се умножават със стойностите на самите пиксели. Резултатът е нова рамка или матрица, пълна с числа, които представляват оригиналното изображение. Този процес се повтаря за избран брой филтри и след това кадрите се обединяват в ново изображение, което е малко по-малко и по-малко сложно от оригиналното изображение. Използва се техника, наречена обединяване, за да се изберат само най-важните стойности в изображението и целта е конволюционните слоеве в крайна сметка да извлекат само най-забележимите части от изображението, което ще помогне на невронната мрежа да разпознае обектите в изображението.

Конволюционни невронни мрежи се състоят от две различни части. Конволюционните слоеве са това, което извлича характеристиките на изображението и ги преобразува във формат, който слоевете на невронната мрежа могат да интерпретират и да се учат от него. Ранните конволюционни слоеве са отговорни за извличането на най-основните елементи на изображението, като прости линии и граници. Средните конволюционни слоеве започват да улавят по-сложни форми, като прости криви и ъгли. По-късните, по-дълбоки конволюционни слоеве извличат характеристиките на високо ниво на изображението, които са това, което се предава в частта на невронната мрежа на CNN, и са това, което класификаторът научава.

Блогър и програмист със специалности в Machine Learning намлява Дълбоко обучение теми. Даниел се надява да помогне на другите да използват силата на ИИ за социално благо.