Основи ШІ
Як працює класифікація зображень?
Як ваш телефон може визначити, який об’єкт на фотографії? Як сайти соціальних мереж автоматично позначають людей на фотографіях? Це досягається завдяки системам розпізнавання та класифікації зображень, що працюють на основі штучного інтелекту.
Розпізнавання та класифікація зображень дозволяють досягти багатьох найвидатніших результатів у сфері штучного інтелекту. Але як комп’ютери вчаться розпізнавати та класифікувати зображення? У цій статті ми розглянемо загальні методи, які комп’ютери використовують для інтерпретації та розпізнавання зображень, а потім розглянемо деякі з найпопулярніших методів класифікації цих зображень.
Піксельна класифікація проти об’єктної класифікації
Техніки класифікації зображень можна розділити на дві основні категорії: піксельна класифікація та об’єктна класифікація.
Пікселі є основними одиницями зображення, і аналіз пікселів є основним способом класифікації зображень. Однак алгоритми класифікації можуть використовувати лише спектральну інформацію в окремих пікселях для класифікації зображення або розглядати просторову інформацію (сусідні пікселі) разом зі спектральною інформацією. Піксельні методи класифікації використовують лише спектральну інформацію (інтенсивність пікселя), тоді як об’єктні методи класифікації враховують як спектральну інформацію пікселів, так і просторову інформацію.
Існують різні методи класифікації, що використовуються для піксельної класифікації. До них належать мінімальна відстань до середнього значення, максимальна ймовірність та мінімальна відстань Махаланобіса. Ці методи вимагають знання середніх значень та дисперсій класів, і вони всі працюють шляхом розгляду “відстані” між середніми значеннями класів та цільовими пікселями.
Піксельні методи класифікації обмежені тим, що вони не можуть використовувати інформацію з інших сусідніх пікселів. Навпаки, об’єктні методи класифікації можуть включати інші пікселі та використовувати просторову інформацію для класифікації об’єктів. Зверніть увагу, що “об’єкт” просто позначає суцільні області пікселів, а не те, чи є цільовий об’єкт у цій області пікселів.
Попередня обробка даних зображень для виявлення об’єктів
Найновіші та найнадійніші системи класифікації зображень в основному використовують схеми класифікації на рівні об’єктів, і для цих підходів дані зображень повинні бути підготовлені певним чином. Об’єкти/регіони потрібно вибрати та попередньо обробити.
Перед тим, як зображення та об’єкти/регіони всередині нього можна буде класифікувати, дані, які складають це зображення, повинні бути інтерпретовані комп’ютером. Зображення потрібно попередньо обробити та підготувати до введення в алгоритм класифікації, і це робиться за допомогою виявлення об’єктів. Це критичний етап підготовки даних та підготовки зображень для навчання класифікатора машинного навчання.
Виявлення об’єктів здійснюється за допомогою різних методів та технік. Спочатку потрібно визначити, чи є в зображенні один об’єкт інтересу або кілька об’єктів інтересу, що впливає на обробку зображення. Якщо є тільки один об’єкт інтересу, зображення піддається локалізації. Пікселі, які складають зображення, мають числові значення, які інтерпретуються комп’ютером та використовуються для відображення відповідних кольорів та відтінків. Об’єкт, відомий як обмежувальний кадр, малюється навколо об’єкта інтересу, що допомагає комп’ютеру зрозуміти, яка частина зображення важлива, а які піксельні значення визначають об’єкт. Якщо в зображенні кілька об’єктів інтересу, техніка, відома як виявлення об’єктів, використовується для застосування цих обмежувальних кадрів до всіх об’єктів у зображенні.

Фото: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
Інший метод попередньої обробки – сегментація зображення. Сегментація зображення працює шляхом розділення всього зображення на сегменти на основі схожих ознак. Різні регіони зображення матимуть схожі значення пікселів у порівнянні з іншими регіонами зображення, тому ці пікселі групуються разом у маски зображення, які відповідають формі та межам відповідних об’єктів у зображенні. Сегментація зображення допомагає комп’ютеру виділити ознаки зображення, які допоможуть йому класифікувати об’єкт, подібно до обмежувальних кадрів, але вони забезпечують набагато точніші піксельні мітки.
Після завершення виявлення об’єктів або сегментації зображення мітки застосовуються до регіону питання. Ці мітки подаються разом з значеннями пікселів, які складають об’єкт, в алгоритми машинного навчання, які навчаться розпізнавати закономірності, пов’язані з різними мітками.
Алгоритми машинного навчання
Після підготовки даних їх вводять в алгоритм машинного навчання, який навчається на даних. Ми розглянемо деякі з найпоширеніших видів алгоритмів машинного навчання для класифікації зображень нижче.
K-Nearest Neighbors
K-Nearest Neighbors – це алгоритм класифікації, який розглядає найближчі навчальні приклади та їхні мітки, щоб визначити найімовірнішу мітку для даного тестового прикладу. Коли мова йде про класифікацію зображень за допомогою KNN, векторні характеристики та мітки навчальних зображень зберігаються, а під час тестування подається лише векторна характеристика. Векторні характеристики навчальних та тестових зображень порівнюються одна з одною на схожість.
Алгоритми класифікації на основі KNN дуже прості та легко працюють з多 класами. Однак KNN розраховує схожість на основі всіх ознак рівномірно. Це означає, що вони можуть бути схильні до неправильної класифікації, коли їм надаються зображення, де лише підмножина ознак важлива для класифікації зображення.
Машини опорних векторів
Машини опорних векторів – це метод класифікації, який розміщує точки в просторі та малює роздільні лінії між цими точками, розміщуючи об’єкти в різних класах залежно від того, на якій стороні роздільної площини знаходяться точки. Машини опорних векторів можуть здійснювати нелінійну класифікацію за допомогою техніки, відомої як трюк ядра. Хоча класифікатори SVM часто дуже точні, суттєвим недоліком класифікаторів SVM є те, що вони обмежені розміром та швидкістю, а швидкість знижується з збільшенням розміру.
Багатошарові персептрони (нейронні мережі)
Багатошарові персептрони, також відомі як моделі нейронних мереж, – це алгоритми машинного навчання, які беруть свій початок у людському мозкові. Багатошарові персептрони складаються з різних шарів, які з’єднані один з одним, подібно до того, як нейрони в людському мозкові з’єднані один з одним. Нейронні мережі роблять припущення про те, як входові ознаки пов’язані з класами даних, і ці припущення корегуються протягом навчання. Прості моделі нейронних мереж, такі як багатошаровий персептрон, здатні вивчати нелінійні взаємозв’язки, і тому можуть бути набагато точнішими, ніж інші моделі. Однак моделі MLP мають деякі суттєві проблеми, такі як присутність нелінійних функцій втрат.
Глибokie навчальні алгоритми (CNN)

Фото: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
Найчастіше використовуваний алгоритм класифікації зображень останнім часом – це卷ячна нейронна мережа (CNN). CNN – це спеціалізовані версії нейронних мереж, які поєднують багаторівневі нейронні мережі з спеціалізованими шарами, які здатні виділити найбільш важливі та актуальні ознаки для класифікації об’єкта. CNN можуть автоматично відкривати, генерувати та вивчати ознаки зображень. Це значно знижує потребу в ручному маркуванні та сегментації зображень для підготовки їх до алгоритмів машинного навчання. Вони також мають перевагу над мережами MLP, оскільки можуть працювати з нелінійними функціями втрат.
Конволюційні нейронні мережі отримали свою назву через те, що вони створюють “згортки”. CNN працюють шляхом застосування фільтра до зображення та переміщення його по ньому. Ви можете уявити це як перегляд частин пейзажу через рухому рамку, зосереджуючись лише на тих ознаках, які видимі через цю рамку в будь-який момент часу. Фільтр містить числові значення, які множаться на значення пікселів самих по собі. Результатом є новий кадр або матриця, наповнена числами, які представляють оригінальне зображення. Цей процес повторюється для певної кількості фільтрів, а потім кадри об’єднуються в нове зображення, яке трохи менше та простіше оригінального зображення. Техніка, відома як пулінг, використовується для вибору лише найбільш важливих значень у зображенні, а мета полягає в тому, щоб конволюційні шари в кінцевому підсумку виділили лише найбільш важливі частини зображення, які допоможуть нейронній мережі розпізнати об’єкти в зображенні.
Конволюційні нейронні мережі складаються з двох різних частин. Конволюційні шари – це ті, які виділяють ознаки зображення та перетворюють їх у формат, який шари нейронної мережі можуть інтерпретувати та вивчати. Ранні конволюційні шари відповідають за виділення найбільш базових елементів зображення, таких як прості лінії та межі. Середні конволюційні шари починають захоплювати більш складні форми, такі як прості криві та кути. Пізніші, глибші конволюційні шари виділяють високорівневі ознаки зображення, які подаються в частину нейронної мережі CNN, і саме ці ознаки вивчає класифікатор.












