Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Веб-сервіси Amazon

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Веб-сервіси Amazon

Оперативна інженерія стала важливою навичкою для тих, хто працює з великими мовними моделями (LLM) для створення високоякісних і релевантних текстів. Хоча розробка текстових підказок широко обговорюється, розробка візуальних підказок є новою сферою, яка потребує уваги. Візуальні підказки можуть включати обмежувальні прямокутники або маски, які спрямовують моделі бачення на створення відповідних і точних результатів. У цій публікації ми досліджуємо основи розробки візуальних підказок, її переваги та те, як її можна використовувати для вирішення конкретного випадку використання: сегментація зображення для автономного водіння.

В останні роки в галузі комп’ютерного зору відбувся значний прогрес у сфері сегментації зображення. Одним із таких проривів є Сегмент будь-якої моделі (SAM) від Meta AI, який має потенціал революціонізувати сегментацію на рівні об’єкта за допомогою навчання з нуля або кількох кадрів. У цій публікації ми використовуємо модель SAM як приклад базової моделі бачення та досліджуємо її застосування до Набір даних BDD100K, різноманітний набір даних автономного водіння для гетерогенного багатозадачного навчання. Поєднуючи сильні сторони SAM із багатими даними, які надає BDD100K, ми демонструємо потенціал візуальної оперативної розробки з різними версіями SAM. Натхненний LangChain рамки для мовних моделей, ми пропонуємо візуальний ланцюжок для виконання візуальних підказок шляхом поєднання моделей виявлення об’єктів із SAM.

Незважаючи на те, що ця публікація зосереджена на автономному водінні, обговорювані концепції широко застосовуються до областей, які мають багаті додатки на основі бачення, таких як охорона здоров’я та науки про життя, а також медіа та розваги. Давайте почнемо з того, що дізнаємось трохи більше про те, що знаходиться під капотом такої базової моделі бачення, як SAM. Ми використовували Студія Amazon SageMaker на мл.g5.16xlarge для цієї публікації.

Сегмент будь-якої моделі (SAM)

Основні моделі — це великі моделі машинного навчання (ML), які навчаються на величезній кількості даних і можуть бути підказані або налаштовані для конкретних випадків використання. Тут ми досліджуємо модель Segment Anything (SAM), яка є основоположною моделлю для бачення, зокрема сегментації зображення. Він попередньо навчений на величезному наборі даних із 11 мільйонів зображень і 1.1 мільярда масок, що робить його найбільшим набором даних сегментації на момент написання. Цей обширний набір даних охоплює широкий спектр об’єктів і категорій, надаючи SAM різноманітне та масштабне джерело навчальних даних.

Модель SAM навчена розуміти об’єкти та може виводити маски сегментації для будь-якого об’єкта в зображеннях або відеокадрах. Модель дозволяє візуально швидко розробляти, дозволяючи надавати такі вхідні дані, як текст, точки, обмежувальні прямокутники або маски, щоб генерувати мітки, не змінюючи вихідне зображення. SAM доступний у трьох розмірах: базовий (ViT-B, 91 мільйон параметрів), великий (ViT-L, 308 мільйонів параметрів) і величезний (ViT-H, 636 мільйонів параметрів), які задовольняють різні обчислювальні вимоги та випадки використання.

Основною мотивацією SAM є покращення сегментації на рівні об’єктів за допомогою мінімальних навчальних вибірок і епох для будь-яких об’єктів, що цікавлять. Потужність SAM полягає в його здатності адаптуватися до нових розподілів зображень і завдань без попереднього знання, функція, відома як нульовий перехід. Ця адаптивність досягається завдяки його навчанню на великому наборі даних SA-1B, який продемонстрував вражаючу продуктивність з нульового удару, перевершуючи багато попередніх повністю контрольованих результатів.

Як показано в наступній архітектурі для SAM, процес створення масок сегментації включає три етапи:

  1. Кодер зображень створює одноразове вбудовування зображення.
  2. Кодер підказки перетворює будь-яку підказку у вектор вбудовування для підказки.
  3. Полегшений декодер поєднує інформацію з кодера зображення та кодера підказок для прогнозування масок сегментації.

Як приклад, ми можемо надати вхідні дані із зображенням і обмежуючою рамкою навколо цікавого об’єкта на цьому зображенні (наприклад, сріблястого автомобіля чи смуги руху), а модель SAM створить маски сегментації для цього об’єкта.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Візуальна підказка

Швидка інженерія стосується структурування вхідних даних для моделі, завдяки чому модель розуміє намір і дає бажаний результат. За допомогою розробки текстових підказок ви можете структурувати вхідний текст за допомогою змін, таких як вибір слів, форматування, порядок тощо, щоб отримати бажаний результат. Розробка візуальних підказок припускає, що користувач працює у візуальній модальності (зображення або відео) і надає вхідні дані. Нижче наведено неповний список потенційних способів надання вхідних даних для генеративної моделі AI у візуальній області:

  • Точка – особлива (x, y) координатна точка в площині зображення
  • Точки – кілька (x, y) точок координат, не обов’язково пов’язаних одна з одною
  • Обмежувальна рамка – набір із чотирьох значень (x, y, w, h), які визначають прямокутну область у площині зображення.
  • Контур – набір (x, y) координатних точок у площині зображення, які утворюють замкнуту форму
  • Маска – масив такого ж розміру, як зображення, з частковою маскою об’єкта інтересу

Пам’ятаючи про методи розробки візуальних підказок, давайте дослідимо, як це можна застосувати до попередньо навченої моделі SAM. Ми використовуємо базову версію попередньо навченої моделі.

Підказка нульового пострілу за допомогою попередньо навченої моделі SAM

Для початку давайте дослідимо підхід нульового удару. Нижче наведено зразок зображення з навчального набору даних, зробленого з передньої камери автомобіля.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

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

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Однак цей результат не є відразу корисним з таких причин:

  • Автомобілі сегментовані не цілком, а по частинах. Для більшості моделей сприйняття, наприклад, ми не дбаємо про те, щоб кожна шина мала окремі вихідні маски. Це також стосується пошуку інших відомих об’єктів інтересу, таких як дорога, рослинність, знаки тощо.
  • Частини зображення, які корисні для подальших завдань, як-от зона проїзду, розділені без пояснення. З іншого боку, подібні екземпляри ідентифікуються окремо, і ми можемо бути зацікавлені в групуванні подібних об’єктів (паноптичний або сегментований екземпляр).

Візуальна швидка інженерія з попередньо навченою моделлю SAM

На щастя, SAM підтримує надання підказок введення, і ми можемо використовувати точки, масиви точок і обмежувальні рамки як вхідні дані. Завдяки цим конкретним інструкціям ми очікуємо, що SAM працюватиме краще із сегментацією, зосередженою на конкретних точках або областях. Це можна порівняти з шаблоном мовної підказки
"What is a good name for a company that makes {product}?"
де введення разом із цим шаблоном запиту від користувача є {product}. {product} це вхідний слот. У візуальних підказках обмежувальні рамки, точки або маски є вхідними слотами.

На наступному зображенні наведено оригінальну обмежувальну рамку наземної істинності навколо транспортних засобів і фрагмент придатної для руху зони з даних BDD100K наземної правдивості. На зображенні також показано точку введення (жовтий X) у центрі зеленої обмежувальної рамки, яку ми згадуватимемо в наступних кількох розділах.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Давайте спробуємо згенерувати маску для автомобіля ліворуч із зеленою обмежувальною рамкою як входом для SAM. Як показано в наступному прикладі, базова модель SAM насправді нічого не знаходить. Це також видно в низькій оцінці сегментації. Коли ми уважніше розглядаємо маски сегментації, ми бачимо, що є невеликі регіони, які повертаються як маски (позначені червоними стрілками), які насправді непридатні для будь-якої подальшої програми.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Давайте спробуємо поєднати обмежувальну рамку та точку як візуальну підказку для введення. Жовтий хрестик на попередньому зображенні є центром обмежувальної рамки. Надання координат цієї точки (x,y) як підказка разом із обмеженням обмежувальної рамки дає нам наступну маску та трохи вищу оцінку. Це досі не можна використовувати жодним чином.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Нарешті, за допомогою базової попередньо навченої моделі ми можемо надати лише точку введення як підказку (без рамки обмеження). На наступних зображеннях показано дві з трьох масок, які ми вважали цікавими.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Маска 1 сегментує весь автомобіль, тоді як Маска 3 сегментує область, яка містить номерний знак автомобіля поблизу жовтого хреста (підказка введення). Маска 1 все ще не є щільною, чистою маскою навколо автомобіля; це вказує на якість моделі, яка, як можна припустити, зростає з розміром моделі.

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

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Велика версія моделі SAM також забезпечує аналогічні результати.

Процес, який ми тут пройшли, схожий на розробку текстових підказок вручну, з якими ви, можливо, вже знайомі. Зауважте, що нещодавнє вдосконалення моделі SAM для сегментування будь-чого у високій якості забезпечує набагато кращі виходи, що залежать від об’єкта та контексту. У нашому випадку ми бачимо, що нульові підказки з текстовими та візуальними підказками (точка, прямокутник і введення точок і прямокутників) не покращують результати суттєво, як ми бачили вище.

Шаблони підказок і візуальні ланцюжки

Як ми бачимо з попередніх прикладів нульового кадру, SAM намагається ідентифікувати всі об’єкти в сцені. Це хороший приклад того, як ми можемо скористатися шаблонами підказок і візуальними ланцюжками. Візуальний ланцюг натхненний концепцією ланцюга в популярній структурі LangChain для мовних програм. Це допомагає об’єднати джерела даних і LLM для отримання результату. Наприклад, ми можемо використовувати ланцюжок API для виклику API та виклику LLM для відповіді на запитання на основі відповіді API.

Натхненний LangChain, ми пропонуємо послідовний візуальний ланцюжок, який виглядає як наведений нижче малюнок. Ми використовуємо інструмент (наприклад, попередньо навчену модель виявлення об’єктів), щоб отримати початкові обмежувальні прямокутники, обчислити точку в центрі обмежувальної рамки та використати це для підказки моделі SAM із вхідним зображенням.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Наприклад, на наступному зображенні показані маски сегментації в результаті виконання цього ланцюжка.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Інший приклад ланцюжка може включати введення тексту об'єкта, який користувач зацікавлений ідентифікувати. Щоб реалізувати це, ми побудували конвеєр за допомогою Заземлення DINO, модель виявлення об’єктів, яка сповіщає SAM про сегментацію.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Grounding DINO — це модель виявлення об’єктів з нульовим ударом, яка може виконувати виявлення об’єктів за допомогою тексту, що містить назви категорій (наприклад, «світлофори» або «вантажівка») і вирази (наприклад, «жовта вантажівка»). Він приймає пари тексту та зображення для виконання виявлення об’єкта. Він базується на трансформаторній архітектурі та дає змогу використовувати перехресні модальності з текстовими та графічними даними. Щоб дізнатися більше про заземлення DINO, див Заземлення DINO: поєднання DINO з заземленим попереднім навчанням для виявлення відкритих об’єктів. Це генерує обмежувальні прямокутники та мітки, які можна обробляти далі, щоб генерувати центральні точки, фільтрувати на основі міток, порогів тощо. Це використовується (поля або точки) як підказка SAM для сегментації, яка виводить маски.

Нижче наведено кілька прикладів, що показують вхідний текст, вихід DINO (обмежувальні рамки) і остаточний вихід SAM (маски сегментації).

На наступних зображеннях показано результати для «жовтої вантажівки».

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

На наступних зображеннях показано результати для «срібного автомобіля».

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

На наступному зображенні показано результат для «смуги руху».

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми можемо використовувати цей конвеєр для побудови візуального ланцюжка. Наступний фрагмент коду пояснює цю концепцію:

pipeline = [object_predictor, segment_predictor]
image_chain = ImageChain.from_visual_pipeline(pipeline, image_store, verbose=True)
image_chain.run('All silver cars', image_id='5X3349')

Хоча це простий приклад, цю концепцію можна розширити, щоб обробляти канали з камер на автомобілях для відстеження об’єктів, редагування даних, що ідентифікують особу (PII), тощо. Ми також можемо отримати обмежувальні рамки з менших моделей або, у деяких випадках, за допомогою стандартних засобів комп’ютерного зору. Використовувати попередньо навчену модель або такий сервіс, як Amazon Rekognition, досить просто, щоб отримати початкові (візуальні) мітки для підказки. На момент написання цієї статті на Amazon SageMaker Jumpstart доступно понад 70 моделей для виявлення об’єктів, а також Amazon Rekognition вже визначає кілька корисних категорій об’єктів на зображеннях, включаючи автомобілі, пішоходів та інші транспортні засоби.

Далі ми розглянемо деякі кількісні результати, пов’язані з продуктивністю моделей SAM із підмножиною даних BDD100K.

Кількісні результати

Наша мета — порівняти продуктивність трьох попередньо навчених моделей за однакових візуальних підказок. У цьому випадку ми використовуємо центральну точку розташування об’єкта як візуальний вхід. Ми порівнюємо продуктивність щодо розмірів об’єктів (пропорційно розміру зображення) — малий (площа 0.11%). Порогові значення області обмежувальної рамки визначаються Загальними об’єктами в контексті (COCO) показники оцінки [Лін та ін., 2014].

Оцінка здійснюється на рівні пікселів, і ми використовуємо такі показники оцінки:

  • Точність = (кількість релевантних і отриманих екземплярів) / (загальна кількість отриманих екземплярів)
  • Відкликання = (кількість релевантних і отриманих екземплярів) / (загальна кількість релевантних екземплярів)
  • Примірниками тут є кожен піксель у межах обмежувальної рамки об’єкта інтересу

У наведеній нижче таблиці наведено продуктивність трьох різних версій моделі SAM (базова, велика та величезна). Ці версії мають три різні кодери: ViT-B (базовий), ViT-L (великий), ViT-H (великий). Кодери мають різну кількість параметрів, де базова модель має менше параметрів, ніж велика, а велика менша, ніж величезна. Хоча збільшення кількості параметрів показує покращену продуктивність з великими об’єктами, це не так для менших об’єктів.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Точне налаштування SAM для вашого випадку використання

У багатьох випадках безпосереднє використання попередньо навченої моделі SAM може бути не дуже корисним. Наприклад, давайте подивимося на типову сцену під час дорожнього руху — наступне зображення є виходом моделі SAM із випадково відібраними точками підказок у якості вхідних даних ліворуч і фактичними мітками із завдання семантичної сегментації з BDD100K праворуч. Вони, очевидно, дуже різні.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Стеки сприйняття в AV можуть легко використовувати друге зображення, але не перше. З іншого боку, є деякі корисні результати з першого зображення, які можна використовувати, і що модель не була явно навчена на, наприклад, розмітку смуг, сегментацію тротуарів, маски номерних знаків і так далі. Ми можемо точно налаштувати модель SAM, щоб покращити результати сегментації. Щоб виконати цю точну настройку, ми створили навчальний набір даних, використовуючи піднабір екземплярів сегментації (500 зображень) із набору даних BDD10K. Це дуже невелика підмножина зображень, але наша мета полягає в тому, щоб довести, що базові моделі бачення (подібно до LLM) можуть добре працювати для вашого випадку використання з напрочуд малою кількістю зображень. На наступному зображенні показано вхідне зображення, вихідна маска (синім кольором, з червоною рамкою для автомобіля ліворуч) і можливі підказки (обмежувальна рамка зелена, центральна точка X жовта).

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми виконали точне налаштування за допомогою бібліотеки Hugging Face on Студія Amazon SageMaker. Ми використовували екземпляр ml.g4dn.xlarge для тестів базової моделі SAM і ml.g4dn.2xlarge для тестів величезної моделі SAM. У наших початкових експериментах ми помітили, що тонке налаштування базової моделі лише за допомогою обмежувальних рамок не було успішним. Тонко налаштовані та попередньо навчені моделі не змогли вивчити наземні маски правди, характерні для автомобіля, з оригінальних наборів даних. Додавання точок запиту до тонкого налаштування також не покращило навчання.

Далі ми можемо спробувати точно налаштувати величезну модель SAM на 30 епох із дуже маленьким набором даних (500 зображень). Оригінальна наземна маска правди виглядає так, як наведене нижче зображення для автомобіля з етикеткою.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Як показано на наступних зображеннях, оригінальна попередньо навчена версія величезної моделі з підказкою про спеціальну обмежувальну рамку (зеленого кольору) не дає вихідних даних, тоді як точно налаштована версія дає вихідні дані (ще не точні, але тонке налаштування було вирізано). після 40 епох і з дуже маленьким навчальним набором даних із 500 зображень). Оригінальна, попередньо навчена величезна модель не змогла передбачити маски для жодного зображення, яке ми перевірили. Як приклад подальшого застосування, налаштовану модель можна використовувати в робочих процесах попереднього маркування, таких як описаний у Модуль автоматичного маркування для передових систем допомоги водієві на основі глибокого навчання на AWS.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Висновок

У цій публікації ми обговорили основоположну модель бачення, відому як Segment Anything Model (SAM), та її архітектуру. Ми використали модель SAM для обговорення візуальних підказок і різних вхідних даних для розробки візуальних підказок. Ми дослідили, як працюють різні візуальні підказки та їхні обмеження. Ми також описали, як візуальні ланцюжки підвищують продуктивність за допомогою лише одного запиту, подібно до API LangChain. Далі ми надали кількісну оцінку трьох попередньо навчених моделей. Нарешті, ми обговорили налаштовану модель SAM та її результати порівняно з вихідною базовою моделлю. Точне налаштування базових моделей допомагає покращити продуктивність моделі для конкретних завдань, наприклад сегментації. Слід зазначити, що модель SAM через вимоги до ресурсів обмежує використання для сценаріїв використання в реальному часі та висновків на межі в поточному стані. Ми сподіваємося, що майбутні ітерації та вдосконалені методи зменшать вимоги до обчислень і покращать затримку.

Ми сподіваємося, що ця публікація спонукає вас досліджувати візуальні підказки для ваших випадків використання. Оскільки це все ще нова форма оперативного проектування, є багато чого відкрити з точки зору візуальних підказок, візуальних ланцюжків і продуктивності цих інструментів. Amazon SageMaker це повністю керована платформа машинного навчання, яка дозволяє розробникам досліджувати великі мовні та візуальні моделі та створювати генеративні додатки ШІ. Почніть будувати майбутнє з AWS вже сьогодні.


Про авторів

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Гопі Крішнамурті є старшим архітектором рішень AI/ML в Amazon Web Services у Нью-Йорку. Він працює з великими автомобільними клієнтами як їхній довірений консультант, щоб трансформувати робочі навантаження машинного навчання та перенести їх у хмару. Його основні інтереси включають глибоке навчання та безсерверні технології. Поза роботою він любить проводити час із сім’єю та вивчати різноманітну музику.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Шреяс Субраманян є головним архітектором рішень зі штучного інтелекту та ML і допомагає клієнтам за допомогою машинного навчання вирішувати їхні бізнес-завдання за допомогою платформи AWS. Шреяс має досвід великомасштабної оптимізації та машинного навчання, а також використовує машинне навчання та навчання з підкріпленням для прискорення завдань оптимізації.

 Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Суджита Мартін є прикладним науковцем у Generative AI Innovation Center (GAIIC). Її досвід полягає в створенні рішень машинного навчання, що включають комп’ютерне бачення та обробку природної мови для різних галузевих вертикалей. Зокрема, вона має значний досвід роботи з орієнтованим на людину ситуаційним усвідомленням і навчанням на основі знань для високоавтономних систем.

Базові моделі бачення та розробка візуальних підказок для програм автономного водіння | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Франциско Кальдерон є спеціалістом із обробки даних у Центрі інновацій Generative AI (GAIIC). Як член GAIIC, він допомагає клієнтам AWS відкривати мистецтво можливого за допомогою технологій Generative AI. У вільний час Франсіско любить грати на гітарі та музиці, грати у футбол зі своїми дочками та проводити час із сім’єю.

Часова мітка:

Більше від AWS Машинне навчання