Прийшов час осідлати справжнього Буцефала🏇🏻Приборкай норовливого коня разом з Newxel🏇🏻Умови на сайті
×Закрыть

Weakly Supervised Semantic Segmentation: вчимо AI розпізнавати об’єкти на картинках

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

Наразі розмітку картинок для тренування здійснюють переважно вручну, що є досить затратним процесом і вимагає довшого часу, особливо коли необхідна експертні знання домену. А для того, щоб навчити AI розпізнавати об’єкти на картинках, потрібно використати як мінімум кількасот тисяч фото і усі вони мають пройти процес розмітки — попіксельного маркування об’єктів.

Команада SoftServe Data Science у співпраці з Лабораторією Машинного Навчання Факультету прикладних наук УКУ посіла 3 місце у міжнародному LID Challenge — CVPR Workshop, 2020, задачею якого було розробити новий підхід до попіксельної сегментації об’єктів на зображенні не використовуючи попіксельну розмітку, а лише анотації на рівні всього зображення (звична класифікаційна розмітка). Команді учасників вдалося досягти вдалося досягти точності результатів — 83%, що є високим показником. Їх статтю також прийняли на AIME — міжнародну конференцію про машинне навчання в медицині, де автори будуть презентувати своє рішення цього серпня. Серед потенційних сфер застосування цього напрацювання — обробка знімків легень людей, хворих на пневмонію, що може значно пришвидшити процес діагностики ускладнень у людей із захворюванням Covid-19.

Deep Convolutional Neural Networks довели свою ефективність у вирішенні завдань семантичної сегментації. Однак їх дієвість значною мірою залежить від анотацій на рівні пікселів, дістати які є досить дорогим і тривалим процесом. Час та гроші є критичними показниками, особливо у медичній сфері, де, до того ж, з’являється додатковий фактор — потреба у знаннях домену.

Слабо контрольована семантична обробка зображень (Weakly Supervised Semantic Segmentation) — це техніка побудови моделей, яка базується на щойно згенерованих даних.

Це підхід, який допомагає створити псевдо-анотації для зображень. Ми зосередилися на self supervised типі слабо контрольованої семантичної обробки зображень. Першим кроком цього підходу є створення простих псевдо лейблів з картинок, для яких відома лише інформація про їх клас.

З класифікаційної нейронної мережі ми витягуємо активаційні мапи для класів. Кожен наступний крок підходу полягає у покращенні цих мап різними методами. На них ми тренуємо популярну класичну сегментаційну модель.

Обрану нами методику можна поділити на три кроки:

  • створення активаційних мап для класів
  • вдосконалення мап з міжпіксельною релятивною мережею
  • сегментація

Після кожного кроку ми також додали одну або більше пост-процесингових технік такі, як: Постійне значення оцінки (CRF), Порогування (обробка зображень), Зниження шуму. Далі детальніше по кожному кроку.

Створення активаційних мап для класифікації

Одним з найпростіших способів, щоб отримати активаційну мапу бажаної деталізації, нам потрібно додати до нейронної мережі ще Average pooling (середнє значення для кожного виправлення карти функцій) та ще один шар — лінійний шар і, зрештою, ми можемо побудувати теплокарти.

З часом спосіб покращили завдяки застосуванню GRADCAM та GRADCAM++ методів, в яких вже не потрібно додавати Average pooling і які можна використовувати для будь-якої архітектури.

Нижче представлені спостереження із застосування GRADCAM та GRADCAM++


  • Якщо архітектура проекту (CNN) закінчується на Average pooling, то метод GRADCAM та звичайний CAM стають еквівалентними.
  • 3 конвеляційні екстра-шари також можуть покращувати результати для витягнення активаційних мап для класифікації
  • ResNet з наших спостережень не є найкращою мережею для виконання поставленої задачі, бо вона створює багато артефактів, схожих на шахову дошку і це заважає побудувати послідовне середовище для об’єкту на активаційний мапі
  • Ефективність GRADCAM++ над GRADCAM дуже залежить від даних. В одному з використаних нами датасетів цей метод не дав приросту

Покращення класифікації активаційних мап

В даному завданні ми розглянули способи регуляризації через DropBlock та функціональне доповнення (augmentation) — GridMask та Cutout.

DropBlock

Звичайний dropout не пропускає пропагування інформації через нейромережу у рандомних нейронах, коли ми зацікавлені у зборі окремих регіонів, які несуть семантичну інформацію. До прикладу, нас цікавлять саме ті регіони, які відповідають за «голову» чи «хвіст» на зображенні і в цьому нам допомагає DropBlock. В DropBlock нам потрібно задати лише розмір блоків, які ми хочемо обрізати.

Cutout та GridMask

Основним мінусом Cutout є те, що він може закрити повністю весь об’єкт, адже його розміщення є рандомним, а розмір — сталий. GridMask дозволяє нам поділити регіони, які забивати (зробити GRID) і таким чином є менша ймовірність, що ми покриємо весь об’єкт, який нас цікавить.

Наш експеримент показав, що GridMask працює майже так само як Cutout та приростів від нього на наших даних не було.

Пост-процесинг та псевдо-лейбли

Застосування Multiscale CAM допомагає витягувати активаційні мапи в різних масштабах. Multiscale ми використовуємо спільно з Test Time Augmentation (TTA), як horizontal flip для генералізації отриманих передбачень. Dense CRF використовується для покращення меж переходів між класами і його не потрібно додатково тренувати.

Нейронні мережі

Найкращими нейронними мережами для цієї задачі є FickleNet і IRNet. Їх результати є дуже близькими, FickleNet покращує класифікацію витягнених мап, а IRNet є складнішим, містить більше кроків пост-процесінгу.

IRN Inter-Pixel Relations

Це крок для покращення активаційних мап, який ми використали в нашій розробці. Ми переробили його на придатний до семантичної сегментації, не використовуючи інформацію про окремі інстанси.

  1. Тренування моделі

Для моделі потрібно згенерувати тренувальні дані з класифікаційних активаційних мап, які ми отримали на попередніх кроках. Для кожного пікселя ми обираємо регіон навколо нього (від 5-10 пікселів).

Передбачення поля переміщення

Поле переміщення (Displacement Field) застосовується, щоб передбачити, де знаходиться центр об’єкту, до якого належить окремий піксель. Вивчення Displacement Field відбувається у одній з двох гілок архітектури IRNet, проте ця операція необхідна лише у випадку задачі інстанс сегментації. Для семантичної сегментації, що є нашою задачею, ми не використовуємо цю гілку IRNet.

IRNet Class Boundary Detection

Друге відгалуження нейронної мережі намагається розділити різні класи. За допомогою Prediction — B(xk) ми хочемо вирахувати схожість класу.

Ми беремо 2 пікселі, беремо сет Pfg (знизу під макс В) — це пікселі, які лежать на прямій між «і» та «j» пікселем. Якщо на прямій між цими двома пікселями є сильний кордон, то схожість між ними буде мала, отже скоріш за все вони будуть належати до різних класів.

Якщо розглянути зображення, ми вибираємо таргет — піксель, позначений +. Найбільшу схожість з ним мають близькі пікселі, які належать до голови вівці.

Об’єднання активаційних мап для класів

Для кожного об’єкту ми визначаємо, який клас має на ньому найбільшу активаційну мапу. Потім намагаємося цю активаційну мапу розтягнути на весь контур об’єкту, який ми отримали раніше. Власне, на цьому кроці буде використовуватись метод — подібностей, який вкаже, куди саме розмножувати активації класу.

Такий алгоритм досить складний, але суть в тому, що він додає нам мапи до різних об’єктів: отримуємо semantic segmentation.

Тренування сегментаційної моделі

В цьому кроці ми пробували U-net та DeepLab. Для немедичних даних найкраще працював DeepLab з його різними версіями, адже він пристосований працювати на різних масштабах. У випадку з рентген знімками, у даних не присутня така характеристика як різне масштабування об’єктів одного класу, тому основна перевага DeepLab не грає сильної ролі. У наших експериментах на медичних даних краще спрацювала архітектура U-Net.

Підсумок

Щоб зменшити ресурси, які витрачаються на маркування, зберігаючи його якість, команда запропонувала новий підхід у сфері слабо контрольованої сегментації зображень, який використовує розмітку лише на рівні зображення. Метод не залежить від природи домену; його було протестовано на кількох різних наборах даних.

Нова розробка команди значно здешевлює та пришвидшує роботу над зображеннями. Якщо на попіксельне маркування однієї картинки буденної сцени необхідно витратити у середньому 3,5 $, то рішення SoftServe зменшує цю суму до 0,03 $.

У таких сферах як медицина пришвидшення розмітки є особливо важливим, щоб зберегти дорогоцінний час лікаря і дозволити використати його на діагностику замість лейбування даних.

Команда висловлює подяку Ростиславу Гриніву, керівнику лабораторії машинного навчання УКУ, за його допомогу під час проекту.

LinkedIn

Похожие статьи

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
A team of researchers from Northeastern University, IBM, and MIT developed a T-shirt design that hides the wearer from image recognition systems by confusing the algorithms trying to spot people into thinking they’re invisible.

www.vice.com/...​makes-you-invisible-to-ai

Подписаться на комментарии