У комп’ютерному баченні семантична сегментація — це завдання класифікації кожного пікселя зображення за класом із відомого набору міток, так що пікселі з однаковою міткою мають певні характеристики. Він генерує маску сегментації вхідних зображень. Наприклад, на наступних зображеннях показано маску сегментації cat
етикетка.
У листопаді 2018, Amazon SageMaker оголосила про запуск алгоритму семантичної сегментації SageMaker. За допомогою цього алгоритму ви можете навчати свої моделі за допомогою загальнодоступного або власного набору даних. Популярні набори даних сегментації зображень включають набір даних Common Objects in Context (COCO) і PASCAL Visual Object Classes (PASCAL VOC), але класи їхніх міток обмежені, і ви можете навчити модель на цільових об’єктах, які не включені до загальнодоступні набори даних. У цьому випадку можна скористатися Основна правда Amazon SageMaker щоб позначити свій власний набір даних.
У цій публікації я демонструю наступні рішення:
- Використання Ground Truth для позначення набору даних семантичної сегментації
- Перетворення результатів із Ground Truth у потрібний формат введення для вбудованого алгоритму семантичної сегментації SageMaker
- Використання алгоритму семантичної сегментації для навчання моделі та виконання висновку
Маркування даних семантичної сегментації
Щоб побудувати модель машинного навчання для семантичної сегментації, нам потрібно позначити набір даних на рівні пікселя. Ground Truth дає вам можливість використовувати людські анотатори Amazon Mechanical Turk, сторонніх постачальників або вашої приватної робочої сили. Щоб дізнатися більше про робочу силу, див Створюйте та керуйте робочими силами. Якщо ви не хочете самостійно керувати персоналом із етикетування, Amazon SageMaker Ground Truth Plus це ще один чудовий варіант як новий сервіс маркування даних «під ключ», який дає змогу швидко створювати високоякісні набори навчальних даних і зменшує витрати до 40%. У цій публікації я покажу вам, як вручну позначити набір даних за допомогою функції автоматичного сегментування Ground Truth і маркування краудсорсингу за допомогою робочої сили Mechanical Turk.
Маркування вручну за допомогою Ground Truth
У грудні 2019 року Ground Truth додала функцію автоматичного сегментування в інтерфейс користувача для маркування семантичної сегментації, щоб збільшити пропускну здатність маркування та підвищити точність. Для отримання додаткової інформації див Автоматичне сегментування об’єктів під час виконання маркування семантичної сегментації за допомогою Amazon SageMaker Ground Truth. За допомогою цієї нової функції ви можете прискорити процес маркування для завдань сегментації. Замість того, щоб малювати щільно прилягаючий багатокутник або використовувати інструмент «Пензель» для зйомки об’єкта на зображенні, ви малюєте лише чотири точки: у верхній, нижній, крайній лівій та крайній правій точках об’єкта. Ground Truth приймає ці чотири точки як вхідні дані та використовує алгоритм глибокого екстремального вирізання (DEXTR), щоб створити щільно прилягаючу маску навколо об’єкта. Щоб отримати посібник із використання Ground Truth для позначення семантичної сегментації зображень, див Семантична сегментація зображення. Нижче наведено приклад того, як інструмент автоматичної сегментації автоматично створює маску сегментації після вибору чотирьох крайніх точок об’єкта.
Маркування краудсорсингу з робочою силою Mechanical Turk
Якщо у вас великий набір даних, і ви не хочете вручну позначати сотні чи тисячі зображень самостійно, ви можете використовувати Mechanical Turk, який надає на вимогу масштабовану людську робочу силу для виконання завдань, які люди можуть виконувати краще, ніж комп’ютери. Програмне забезпечення Mechanical Turk оформляє пропозиції роботи тисячам працівників, які бажають виконувати пошарову роботу, коли їм зручно. Програмне забезпечення також витягує виконану роботу та компілює її для вас, запитувача, який платить працівникам за задовільну роботу (тільки). Щоб почати роботу з Mechanical Turk, див Знайомство з Amazon Mechanical Turk.
Створіть завдання маркування
Нижче наведено приклад завдання маркування Mechanical Turk для набору даних про морську черепаху. Набір даних про морську черепаху взято з конкурсу Kaggle Виявлення обличчя морської черепахи, і я вибрав 300 зображень набору даних для демонстраційних цілей. Морська черепаха не є поширеним класом у загальнодоступних наборах даних, тому вона може представляти ситуацію, яка вимагає позначення масивного набору даних.
- На консолі SageMaker виберіть Роботи з маркування у навігаційній панелі.
- Вибирати Створення завдання маркування.
- Введіть назву своєї роботи.
- для Налаштування вхідних данихвиберіть Автоматичне налаштування даних.
Це генерує маніфест вхідних даних. - для Розташування S3 для вхідних наборів даних, введіть шлях до набору даних.
- для Категорія завданьвиберіть зображення.
- для Вибір завданнявиберіть Семантична сегментація.
- для Типи робітниківвиберіть Amazon Mechanical Turk.
- Налаштуйте параметри часу очікування завдання, терміну дії завдання та ціни за завдання.
- Додайте мітку (для цієї публікації,
sea turtle
), а також надайте інструкції щодо маркування. - Вибирати Створювати.
Налаштувавши завдання маркування, ви можете перевірити хід маркування на консолі SageMaker. Коли його буде позначено як завершене, ви можете вибрати завдання, щоб перевірити результати та використати їх для наступних кроків.
Трансформація набору даних
Отримавши вихідні дані з Ground Truth, ви можете використовувати вбудовані алгоритми SageMaker для навчання моделі на цьому наборі даних. Спочатку вам потрібно підготувати позначений набір даних як запитуваний інтерфейс введення для алгоритму семантичної сегментації SageMaker.
Запитувані канали введення даних
Семантична сегментація SageMaker передбачає збереження вашого навчального набору даних Служба простого зберігання Amazon (Amazon S3). Очікується, що набір даних в Amazon S3 буде представлений у двох каналах, один для train
і один для validation
, використовуючи чотири каталоги, два для зображень і два для анотацій. Очікується, що анотації будуть нестисненими зображеннями PNG. Набір даних також може мати карту міток, яка описує, як створюються відображення анотацій. Якщо ні, алгоритм використовує значення за замовчуванням. Для висновку кінцева точка приймає зображення з image/jpeg
тип вмісту. Нижче наведено необхідну структуру каналів даних:
Кожне зображення JPG у каталогах поїздів і перевірки має відповідне зображення мітки PNG з такою ж назвою в train_annotation
та validation_annotation
каталоги. Ця умова про іменування допомагає алгоритму пов’язувати мітку з відповідним зображенням під час навчання. Поїзд, train_annotation
, підтвердження та validation_annotation
канали є обов'язковими. Анотації є одноканальними зображеннями PNG. Формат працює до тих пір, поки метадані (режими) в зображенні допомагають алгоритму зчитувати зображення анотації в одноканальне 8-розрядне ціле число без знака.
Вихідні дані завдання маркування Ground Truth
Вихідні дані, згенеровані завданням маркування Ground Truth, мають таку структуру папок:
Маски сегментації зберігаються в s3://turtle2022/labelturtles/annotations/consolidated-annotation/output
. Кожне зображення анотації є файлом .png, названим на честь індексу вихідного зображення та часу, коли це зображення було завершено. Наприклад, нижче наведено вихідне зображення (Image_1.jpg) та його маска сегментації, створена робочою силою Mechanical Turk (0_2022-02-10T17:41:04.724225.png). Зверніть увагу, що індекс маски відрізняється від номера в назві вихідного зображення.
Вихідний маніфест із завдання маркування знаходиться у файлі /manifests/output/output.manifest
файл. Це файл JSON, і кожен рядок записує зіставлення між вихідним зображенням і його міткою та іншими метаданими. Наступний рядок JSON записує зіставлення між показаним вихідним зображенням та його анотацією:
Вихідне зображення називається Image_1.jpg, а назва анотації – 0_2022-02-10T17:41: 04.724225.png. Щоб підготувати дані як необхідні формати каналу даних алгоритму семантичної сегментації SageMaker, нам потрібно змінити назву анотації, щоб вона мала те саме ім’я, що й вихідні зображення JPG. І нам також потрібно розділити набір даних на train
та validation
каталоги вихідних зображень та анотацій.
Перетворіть вихідні дані із завдання маркування Ground Truth у потрібний формат введення
Щоб перетворити вихід, виконайте такі кроки:
- Завантажте всі файли із завдання маркування з Amazon S3 в локальний каталог:
- Прочитайте файл маніфесту та змініть імена анотації на ті самі імена, що й вихідні зображення:
- Розділіть набори даних про поїзд і перевірку:
- Створіть каталог у необхідному форматі для каналів даних алгоритму семантичної сегментації:
- Перемістіть зображення поїзда та перевірки та їх анотації до створених каталогів.
- Для зображень використовуйте наступний код:
- Для анотацій використовуйте такий код:
- Завантажте набори даних поїзда та перевірки та їх набори даних анотацій до Amazon S3:
Навчання моделі семантичної сегментації SageMaker
У цьому розділі ми розглянемо кроки для навчання моделі семантичної сегментації.
Дотримуйтесь зразка блокнота та налаштуйте канали даних
Ви можете виконувати інструкції в Алгоритм семантичної сегментації тепер доступний в Amazon SageMaker щоб реалізувати алгоритм семантичної сегментації до вашого міченого набору даних. Цей зразок ноутбук показує наскрізний приклад, що представляє алгоритм. У блокноті ви дізнаєтеся, як навчити та розмістити модель семантичної сегментації за допомогою повністю згорткової мережі (FCN) алгоритм з використанням Набір даних Pascal VOC для навчання. Оскільки я не планую навчати модель з набору даних Pascal VOC, я пропустив крок 3 (підготовка даних) у цьому блокноті. Натомість я безпосередньо створював train_channel
, train_annotation_channe
, validation_channel
та validation_annotation_channel
використовуючи розташування S3, де я зберігав свої зображення та анотації:
Налаштуйте гіперпараметри для власного набору даних в оцінювачі SageMaker
Я пішов за записником і створив об’єкт оцінки SageMaker (ss_estimator
), щоб навчити мій алгоритм сегментації. Є одна річ, яку нам потрібно налаштувати для нового набору даних ss_estimator.set_hyperparameters
: нам потрібно змінитися num_classes=21
до num_classes=2
(turtle
та background
), і я теж змінився epochs=10
до epochs=30
тому що 10 призначено лише для демонстраційних цілей. Потім я використав екземпляр p3.2xlarge для навчання моделі шляхом налаштування instance_type="ml.p3.2xlarge"
. Навчання завершилося за 8 хвилин. Кращий MIoU (Середнє перетин через об’єднання) 0.846 досягається в епоху 11 за допомогою pix_acc
(відсоток пікселів у вашому зображенні, які класифікуються правильно) 0.925, що є досить хорошим результатом для цього невеликого набору даних.
Результати модельного висновку
Я розмістив модель на недорогому екземплярі ml.c5.xlarge:
Нарешті, я підготував тестовий набір із 10 зображень черепах, щоб побачити результат висновку навченої моделі сегментації:
Наступні зображення показують результати.
Сегментаційні маски морських черепах виглядають точно, і я задоволений цим результатом, натренованим на наборі даних із 300 зображень, позначеному працівниками Mechanical Turk. Ви також можете досліджувати інші доступні мережі, наприклад мережа аналізу сцени піраміди (PSP) or DeepLab-V3 у зразку блокнота з вашим набором даних.
Прибирати
Видаліть кінцеву точку, коли ви закінчите з нею, щоб уникнути подальших витрат:
Висновок
У цій публікації я показав, як налаштувати маркування даних семантичної сегментації та навчання моделі за допомогою SageMaker. По-перше, ви можете налаштувати завдання маркування за допомогою інструмента автоматичної сегментації або використовувати робочу силу Mechanical Turk (а також інші варіанти). Якщо у вас більше 5,000 об’єктів, ви також можете використовувати автоматичне маркування даних. Потім ви перетворюєте вихідні дані з завдання маркування Ground Truth у необхідні формати введення для вбудованого навчання семантичної сегментації SageMaker. Після цього ви можете використовувати прискорений обчислювальний екземпляр (наприклад, p2 або p3) для навчання моделі семантичної сегментації за допомогою наступного ноутбук і розгорнути модель на більш економічно ефективному екземплярі (наприклад, ml.c5.xlarge). Нарешті, ви можете переглянути результати висновку у вашому наборі даних тесту за допомогою кількох рядків коду.
Почніть роботу з семантичною сегментацією SageMaker маркування даних та модельне навчання з вашим улюбленим набором даних!
Про автора
Кара Ян є спеціалістом із дослідження даних у AWS Professional Services. Вона прагне допомогти клієнтам досягти їхніх бізнес-цілей за допомогою хмарних сервісів AWS. Вона допомагала організаціям створювати рішення ML у багатьох галузях, таких як виробництво, автомобільна промисловість, екологічна стійкість та аерокосмічна промисловість.
- Coinsmart. Найкраща в Європі біржа біткойн та криптовалют.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. БЕЗКОШТОВНИЙ ДОСТУП.
- CryptoHawk. Альткойн Радар. Безкоштовне випробування.
- Джерело: https://aws.amazon.com/blogs/machine-learning/semantic-segmentation-data-labeling-and-model-training-using-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 11
- 2019
- a
- МЕНЮ
- прискорювати
- прискорений
- точний
- Achieve
- досягнутий
- через
- доданий
- Авіаційно-космічний
- алгоритм
- алгоритми
- ВСІ
- Amazon
- оголошений
- Інший
- навколо
- Юрист
- Автоматизований
- автоматично
- автомобільний
- доступний
- AWS
- фон
- оскільки
- КРАЩЕ
- Краще
- між
- будувати
- вбудований
- бізнес
- захоплення
- випадок
- певний
- зміна
- канали
- Вибирати
- клас
- класів
- класифікований
- хмара
- хмарні сервіси
- код
- загальний
- конкурс
- повний
- комп'ютер
- комп'ютери
- обчислення
- довіра
- Консоль
- зміст
- зручність
- Відповідний
- рентабельним
- витрати
- створювати
- створений
- Клієнти
- налаштувати
- дані
- вчений даних
- глибокий
- демонструвати
- розгортання
- різний
- безпосередньо
- малювання
- під час
- кожен
- дозволяє
- кінець в кінець
- Кінцева точка
- Що натомість? Створіть віртуальну версію себе у
- навколишній
- встановлений
- приклад
- Крім
- очікуваний
- чекає
- дослідити
- екстремальний
- Особа
- особливість
- Перший
- стежити
- після
- формат
- від
- генерується
- Цілі
- добре
- сірий
- великий
- щасливий
- допоміг
- допомогу
- допомагає
- високоякісний
- відбувся
- Як
- How To
- HTTPS
- людина
- Людей
- Сотні
- зображення
- зображень
- здійснювати
- удосконалювати
- включати
- включені
- Augmenter
- індекс
- промисловості
- інформація
- вхід
- екземпляр
- інтерфейс
- перетин
- введення
- IT
- робота
- Джобс
- відомий
- етикетка
- маркування
- етикетки
- великий
- запуск
- УЧИТЬСЯ
- вивчення
- рівень
- обмеженою
- Лінія
- ліній
- список
- місцевий
- розташування
- місць
- Довго
- подивитися
- машина
- навчання за допомогою машини
- управляти
- обов'язковий
- вручну
- виробництво
- карта
- відображення
- маска
- маски
- масивний
- механічний
- може бути
- ML
- модель
- Моделі
- більше
- множинний
- Імена
- іменування
- навігація
- мережу
- мереж
- наступний
- ноутбук
- номер
- Пропозиції
- варіант
- Опції
- організації
- Інше
- власний
- пристрасний
- відсотків
- виконанні
- точок
- Багатокутник
- популярний
- Готувати
- досить
- price
- приватний
- процес
- виробляти
- професійний
- забезпечувати
- забезпечує
- громадськість
- цілей
- швидко
- RE
- облік
- представляти
- вимагається
- Вимагається
- результати
- огляд
- то ж
- масштабовані
- вчений
- SEA
- сегментація
- обраний
- обслуговування
- Послуги
- комплект
- установка
- Поділитись
- Показувати
- показаний
- простий
- ситуація
- невеликий
- So
- Софтвер
- Рішення
- розкол
- почалася
- зберігання
- Sustainability
- Мета
- завдання
- команда
- тест
- Команда
- Джерело
- річ
- третя сторона
- тисячі
- через
- пропускна здатність
- час
- інструмент
- поїзд
- Навчання
- Перетворення
- союз
- використання
- перевірка достовірності
- постачальники
- бачення
- ВООЗ
- Work
- робочі
- Трудові ресурси
- працює
- вашу