Виклик маскування зображень Carvana - Інтерв’ю переможця 1-го місця від Kaggle Team Kaggle Blog Medium
Опубліковано спочатку: 22.12.2017

Цього року Carvana, успішний стартап вживаних автомобілів в Інтернеті, закликав спільноту Kaggle розробити алгоритм, який автоматично видаляє фон фотостудії. Це дозволило б Carvana накладати машини на різні фони. В інтерв’ю цього переможця команда перших за рейтингом команд з обробки зображень, названа Team Best [over] fitting, детально ділиться своїм підходом до перемоги.
Як це часто трапляється на змаганнях, ми ніколи не зустрічались особисто, але ми досить добре знали одне одного з плідних бесід про глибоке навчання, проведених у російськомовній спільноті Open Data Science, ods.ai.
Хоча ми брали участь у команді, ми працювали над 3 незалежними рішеннями до злиття за 7 днів до кінця змагань. Кожне з цих рішень потрапило в 10 найкращих - Артьом та Олександр опинились на 2-му місці, а Володимир - на 5-му. Нашим остаточним рішенням було просте середнє з трьох прогнозів. Ви також можете побачити це в коді, який ми підготували для організаторів і випустили на GitHub - є 3 окремі папки:
Кожен з нас витратив на цю проблему близько двох тижнів, хоча для повного відтворення нашого рішення на одному Titan X Pascal потрібно було б близько 90 днів тренуватися і 13 днів робити прогнози. На щастя, у нас було близько 20 графічних процесорів. З точки зору програмного забезпечення, ми використовували PyTorch як Deep Learning Framework, OpenCV для обробки зображень та imgaug для збільшення даних.
Мене звати Володимир Ігловіков. Я отримав ступінь магістра теоретичної фізики високих енергій у Санкт-Петербурзькому державному університеті та доктор філософії. з теоретичної фізики конденсованої речовини з університету Девіс. Після закінчення навчання я спочатку працював у кількох стартапах, де моя повсякденна робота була важкою в традиційному домені машинного навчання. Кілька місяців тому я приєднався до Lyft як науковий співробітник з фокусом на комп'ютерному зорі.
Я вже брав участь у кількох змаганнях з сегментації зображень, і накопичений досвід був справді корисним для вирішення цієї проблеми. Ось мої минулі досягнення:
Цей виклик був схожий на вищезазначені проблеми, і спочатку я не планував брати участь. Але лише для перевірки стану розумності я вирішив зробити кілька подань із скопійованим конвеєром з попередніх проблем. Дивно, але після кількох спроб я потрапив у топ-10, і хлопці запропонували команді об’єднатися. Крім того, Олександр спокусив мене, пообіцявши поділитися своїм підходом, не пов'язаним з ООН, який споживає менше пам'яті, швидше зближується і, мабуть, є більш точним.
Що стосується апаратних засобів, у мене вдома було 2 машини, одна для створення прототипів з 2 х Titan X Pascal і одна для важкого підйому з 4 x GTX 1080 Ti.
Мене звати Олександр Буслаєв. Я закінчив університет ІТМО, Санкт-Петербург, Росія. Я маю 5-річний досвід класичного комп'ютерного зору і працював у ряді компаній у цій галузі, особливо в БПЛА. Близько року тому я почав використовувати глибоке навчання для різних завдань в обробці зображень - виявлення, сегментація, маркування, регресія.
Мені подобаються змагання з комп’ютерного зору, тому я також брав участь у:
Мене звуть Артьом Санакоєв. Я отримав ступінь магістра з прикладної математики та інформатики в Білоруському державному університеті, Мінськ, Білорусь. Після закінчення університету я розпочав ступінь доктора філософії. в галузі комп'ютерного бачення в Гейдельберзькому університеті, Німеччина.
Мої основні наукові інтереси лежать на стику комп’ютерного бачення та глибокого навчання, зокрема, безконтрольного навчання та метричного навчання. У мене є публікації на конференціях Computer Vision/Deep Learning, таких як NIPS та CVPR.
Для мене Kaggle - це місце, де можна вдосконалити свої прикладні навички та трохи розважитись. Поза Carvana я брав участь у кількох інших змаганнях з комп’ютерного зору:
Метою цього конкурсу було створення моделі двійкової сегментації зображень автомобілів з високою роздільною здатністю.
- Кожне зображення має роздільну здатність 1918x1280.
- Кожен автомобіль представлений у 16 різних фіксованих орієнтаціях:
- Комплект поїздів: 5088 зображень.
- Тестовий набір: 1200 для загального користування, 3664 для приватного, 95200 були додані для запобігання ручному маркуванню.
Загалом, якість даних про змагання була дуже високою, і ми вважаємо, що цей набір даних може потенційно використовуватись як чудовий орієнтир у спільноті комп'ютерного зору.
Різниця в балах між нашим результатом (0,997332) та результатом другого місця (0,997331) становила лише 0,00001, що можна інтерпретувати як середнє покращення на 2,5 пікселя на 2 500 000 пікселів зображення. Чесно кажучи, нам тут просто пощастило. Коли ми готували рішення для організаторів, ми інвестували додатковий час і вдосконалили наше рішення до 0.997343 на приватному LB.
Щоб зрозуміти обмеження наших моделей, ми провели візуальний огляд прогнозів. Щодо набору поїздів ми розглянули випадки з найнижчими оцінками.
Більшість виявлених помилок були пов’язані з непослідовним маркуванням, де найпоширенішою проблемою були отвори в колесах. У деяких автомобілях вони були в масках, а в деяких - ні.
У нас немає оцінки перевірки для набору тестів, але ми виявили проблемні зображення, підрахувавши кількість пікселів, де надійність прогнозування мережі була низькою. Щоб врахувати різний розмір автомобілів на зображеннях, ми розділили це число на площу фону. Наша метрика "ненадійності" була розрахована як кількість пікселів з оцінками в інтервалі [0,3, 0,8], поділена на кількість пікселів з оцінками в інтервалі [0, 0,3) + (0,8, 0,9). Звичайно, інші підходи на основі теорії інформації може бути більш надійною, але ця евристика працювала досить добре.
Потім ми ранжирували зображення за оцінкою "невпевненість" і візуально перевіряли найкращі прогнози. Ми з’ясували, що більшість помилок були пов’язані з неправильним маркуванням людей категорією “білий фургон”. Мережі послідовно давали низькі прогнози щодо таких зображень. Ми вважаємо, що це було пов’язано з низькою присутністю білих фургонів у навчальному наборі та низьким контрастом між фургоном та білим тлом. На зображенні нижче показано сірі області в масці, де достовірність прогнозування була низькою.
Ми не єдині, хто стикався з цією проблемою. Це було обговорено на форумі, а інші учасники застосували евристику після обробки для вирішення цього та подібних випадків.
Було також кілька навчальних масок з великими помилками, як показано нижче. Heng CherKeng розмістив виправлені версії масок на форумі, але їх кількість була відносно невеликою, і ми не використовували їх під час навчання.
Моєю першою спробою було використовувати UNet з тією ж архітектурою, що і Сергій Мушинський. Я використовував це раніше для виявлення функцій супутникових зображень DSTL минулої весни, але мені не вдалося досягти рівня 0,997 (