Комп’ютерне бачення (CV) є одним із найпоширеніших застосувань машинного навчання (ML) і глибокого навчання. Варіанти використання варіюються від безпілотних автомобілів, модерації вмісту на платформах соціальних мереж, виявлення раку та автоматичного виявлення дефектів. Amazon Rekognition – це повністю керована служба, яка може виконувати такі завдання CV, як виявлення об’єктів, визначення сегментів відео, модерація вмісту тощо, щоб витягувати інформацію з даних без попереднього досвіду ML. У деяких випадках разом із послугою може знадобитися більш спеціальне рішення для вирішення дуже конкретної проблеми.
У цій публікації ми розглядаємо області, де CV можна застосувати для випадків, коли поза об’єктів, їх положення та орієнтація важливі. Одним із таких випадків використання можуть бути орієнтовані на клієнта мобільні програми, де потрібне завантаження зображення. Це може бути з міркувань відповідності або для забезпечення узгодженого взаємодії з користувачем і покращення взаємодії. Наприклад, на платформах онлайн-магазинів кут, під яким товари показано на зображеннях, впливає на швидкість купівлі цього товару. Одним із таких випадків є визначення положення автомобіля. Ми демонструємо, як можна поєднати добре відомі рішення ML із постобробкою, щоб вирішити цю проблему в хмарі AWS.
Для вирішення цієї проблеми ми використовуємо моделі глибокого навчання. Навчання алгоритмів ML для оцінки пози потребує великого досвіду та спеціальних навчальних даних. Обидві вимоги важко та дорого виконати. Тому ми представляємо два варіанти: один, який не потребує досвіду ML і використовує Amazon Rekognition, і інший, який використовує Amazon SageMaker для навчання та розгортання спеціальної моделі ML. У першому варіанті ми використовуємо Amazon Rekognition для визначення коліс автомобіля. Потім ми визначаємо орієнтацію автомобіля з положення коліс за допомогою системи на основі правил. У другому варіанті ми виявляємо колеса та інші деталі автомобіля за допомогою Детектрон модель. Вони знову використовуються для визначення положення автомобіля за допомогою коду на основі правил. Другий варіант потребує досвіду ML, але його також можна налаштувати. Його можна використовувати для подальшої постобробки зображення, наприклад, щоб вирізати весь автомобіль. Обидва варіанти можна навчити на загальнодоступних наборах даних. Нарешті, ми покажемо, як можна інтегрувати це рішення для виявлення пози автомобіля в наявну веб-програму за допомогою таких служб, як API -шлюз Amazon та AWS Amplify.
Огляд рішення
Наступна діаграма ілюструє архітектуру рішення.
Рішення складається з макету веб-додатку в Amplify, де користувач може завантажити зображення та викликати або модель Amazon Rekognition, або спеціальну модель Detectron, щоб визначити положення автомобіля. Для кожного варіанту ми розміщуємо AWS Lambda функціонує за шлюзом API, доступним для нашої макетної програми. Ми налаштували нашу функцію Lambda для роботи або з моделлю Detectron, навченою в SageMaker, або з Amazon Rekognition.
Передумови
Для цього покрокового керівництва ви повинні мати такі передумови:
Створіть безсерверну програму за допомогою Amazon Rekognition
Наш перший варіант демонструє, як ви можете визначити орієнтацію автомобіля на зображеннях за допомогою Amazon Rekognition. Ідея полягає в тому, щоб використовувати Amazon Rekognition для визначення розташування автомобіля та його коліс, а потім виконати постобробку, щоб отримати орієнтацію автомобіля з цієї інформації. Усе рішення розгортається за допомогою Lambda, як показано на Сховище Github. Ця папка містить два основні файли: файл Docker, який визначає образ Docker, який запускатиметься в нашій функції Lambda, і app.py
файл, який буде основною точкою входу функції Lambda:
Функція Lambda очікує події, яка містить заголовок і тіло, де тіло має бути зображенням, яке потрібно позначити як об’єкт, декодований base64. Враховуючи зображення, Amazon Rekognition detect_labels
функція викликається з функції Lambda за допомогою Бото3. Функція повертає одну або кілька міток для кожного об’єкта на зображенні та деталі обмежувальної рамки для всіх міток виявлених об’єктів як частину відповіді, а також іншу інформацію, як-от достовірність призначеної мітки, мітки предків виявленої мітки, можливі псевдоніми для мітки та категорії, до яких належить виявлена мітка. На основі міток, повернутих Amazon Rekognition, ми запускаємо функцію label_image
, який обчислює кут автомобіля на основі виявлених коліс наступним чином:
Зауважте, що програма вимагає, щоб на зображенні був лише один автомобіль, і повертає помилку, якщо це не так. Однак постобробку можна адаптувати для надання більш детальних описів орієнтації, охоплення кількох автомобілів або розрахунку орієнтації більш складних об’єктів.
Покращити виявлення коліс
Щоб ще більше підвищити точність виявлення колеса, ви можете використовувати Спеціальні етикетки Amazon Rekogmination. Подібно до тонкого налаштування за допомогою SageMaker для навчання та розгортання спеціальної моделі ML, ви можете принести власні дані з мітками, щоб Amazon Rekognition міг створити для вас спеціальну модель аналізу зображення всього за кілька годин. З користувацькими мітками Rekognition вам потрібен лише невеликий набір навчальних зображень, які відповідають вашому випадку використання, у цьому випадку зображення автомобілів із певними ракурсами, оскільки він використовує наявні можливості в Amazon Rekognition щодо навчання на десятках мільйонів зображень по всьому світу. багато категорій. Спеціальні мітки Rekognition можна інтегрувати лише кількома клацаннями миші та невеликими адаптаціями до функції Lambda, яку ми використовуємо для стандартного рішення Amazon Rekognition.
Навчіть модель за допомогою навчального завдання SageMaker
У нашому другому варіанті ми навчаємо спеціальну модель глибокого навчання на SageMaker. Ми використовуємо Framework Detectron2 для сегментації автомобільних запчастин. Потім ці сегменти використовуються для визначення положення автомобіля.
Платформа Detectron2 — це бібліотека, яка надає найсучасніші алгоритми виявлення та сегментації. Detectron надає різноманітні моделі Mask R-CNN, які були навчені на відомому наборі даних COCO (Common objects in Context). Щоб побудувати нашу модель виявлення автомобільних об’єктів, ми використовуємо навчання передачі для точного налаштування попередньо підготовленої моделі Mask R-CNN на сегментація автозапчастин набір даних. Цей набір даних дозволяє нам навчити модель, яка може виявляти колеса, а також інші частини автомобіля. Цю додаткову інформацію можна додатково використовувати в обчисленнях кута автомобіля відносно зображення.
Набір даних містить анотовані дані деталей автомобіля, які будуть використовуватися для завдань виявлення об’єктів і семантичної сегментації: приблизно 500 зображень седанів, пікапів і позашляховиків, зроблених у кількох режимах перегляду (вид спереду, ззаду та збоку). Кожне зображення анотовано 18 масками та обмежувальними рамками, що представляють різні частини автомобіля, як-от колеса, дзеркала, фари, а також переднє й задне скло. Ми змінили базові анотації коліс таким чином, щоб кожне колесо вважалося окремим об’єктом замість того, щоб розглядати всі доступні колеса на зображенні як один об’єкт.
Ми використовуємо Служба простого зберігання Amazon (Amazon S3), щоб зберігати набір даних, який використовується для навчання моделі Detectron разом із навченими артефактами моделі. Крім того, контейнер Docker, який працює у функції Lambda, зберігається в Реєстр контейнерів Amazon Elastic (Amazon ECR). Контейнер Docker у функції Lambda потрібен для включення необхідних бібліотек і залежностей для виконання коду. Ми могли б альтернативно використати Лямбда шари, але він обмежений розархівованою квотою розміру пакету для розгортання 250 МБ, а до функції Lambda можна додати максимум п’ять рівнів.
Наше рішення побудовано на SageMaker: ми розширюємо попередньо зібраний Контейнери SageMaker Docker щоб PyTorch запускав наш власний PyTorch код навчання. Далі ми використовуємо SDK SageMaker Python, щоб обернути навчальне зображення в засіб оцінки SageMaker PyTorch, як показано в наступних фрагментах коду:
Нарешті, ми починаємо навчальну роботу, зателефонувавши до fit()
на створеному оцінювачі PyTorch. Після завершення навчання артефакт навченої моделі зберігається в сегменті сеансу в Amazon S3 для використання в конвеєрі висновків.
Розгорніть модель за допомогою SageMaker і каналів висновку
Ми також використовуємо SageMaker для розміщення кінцевої точки висновку, яка запускає нашу спеціальну модель Detectron. Повна інфраструктура, яка використовується для розгортання нашого рішення, надається за допомогою AWS CDK. Ми можемо розмістити нашу спеціальну модель через a Кінцева точка реального часу SageMaker зателефонувавши deploy
на інструменті оцінки PyTorch. Це вже другий раз, коли ми розширюємо попередньо зібраний контейнер SageMaker PyTorch, щоб включити PyTorch Detectron. Ми використовуємо його для запуску сценарію висновку та розміщення нашої навченої моделі PyTorch наступним чином:
Зауважте, що для розгортання ми використовували графічний процесор ml.g4dn.xlarge, оскільки це найменший доступний графічний процесор, якого достатньо для цієї демонстрації. Два компоненти потрібно налаштувати в нашому сценарій висновку: завантаження моделі та обслуговування моделі. Функція model_fn()
використовується для завантаження навченої моделі, яка є частиною розміщеного контейнера Docker, а також її можна знайти в Amazon S3 і повертає об’єкт моделі, який можна використовувати для обслуговування моделі таким чином:
Функція predict_fn()
виконує прогноз і повертає результат. Окрім використання нашої навченої моделі, ми використовуємо попередньо навчену версію моделі Mask R-CNN, навчену на наборі даних COCO, щоб отримати головний автомобіль на зображенні. Це додатковий етап постобробки для зображень, де існує більше одного автомобіля. Перегляньте наступний код:
Подібно до рішення Amazon Rekognition, обмежувальні рамки, передбачені для wheel
класу фільтруються з вихідних даних виявлення та передаються в модуль постобробки для оцінки положення автомобіля відносно вихідних даних.
Нарешті, ми також покращили постобробку для рішення Detectron. Він також використовує сегменти різних частин автомобіля, щоб зробити висновок про рішення. Наприклад, щоразу, коли виявляється передній бампер, але немає заднього бампера, припускається, що у нас є вид автомобіля спереду, і обчислюється відповідний кут.
Підключіть своє рішення до веб-додатку
Щоб підключити кінцеві точки моделі до Amplify, виконайте наведені нижче дії.
- Клонуйте репозиторій програм, створений стеком AWS CDK, названий
car-angle-detection-website-repo
. Переконайтеся, що ви шукаєте його в регіоні, який ви використовували для розгортання. - Скопіюйте кінцеві точки API Gateway для кожної з розгорнутих функцій Lambda у
index.html
файл у попередньому репозиторії (є заповнювачі, де потрібно розмістити кінцеву точку). Наведений нижче код є прикладом того, як виглядає цей розділ файлу .html:
- Збережіть файл HTML і надішліть зміну коду до віддаленої головної гілки.
Це оновить файл HTML у розгортанні. Тепер програма готова до використання.
- Перейдіть до консолі Amplify і знайдіть проект, який ви створили.
URL-адресу програми буде видно після завершення розгортання.
- Перейдіть за URL-адресою та розважайтеся з інтерфейсом користувача.
Висновок
Щиро вітаю! Ми розгорнули повну безсерверну архітектуру, у якій ми використовували Amazon Rekognition, але також надали можливість для вашої власної моделі, цей приклад доступний на GitHub. Якщо у вашій команді немає досвіду ML або достатньо спеціальних даних для навчання моделі, ви можете вибрати варіант, який використовує Amazon Rekognition. Якщо ви хочете більше контролювати свою модель, бажаєте її додатково налаштувати та маєте достатньо даних, ви можете вибрати рішення SageMaker. Якщо у вас є команда спеціалістів з обробки даних, вони також можуть захотіти ще більше вдосконалити моделі та вибрати більш індивідуальний і гнучкий варіант. Ви можете розмістити функцію Lambda та шлюз API за своєю веб-програмою, використовуючи будь-який із двох варіантів. Ви також можете використовувати цей підхід для іншого випадку використання, для якого ви можете адаптувати код.
Перевагою цієї безсерверної архітектури є можливість повної заміни будівельних блоків. Можливості майже безмежні. Отже, починайте вже сьогодні!
Як завжди, AWS раді відгукам. Надішліть будь-які коментарі чи запитання.
Про авторів
Майкл Волнер є старшим консультантом із даних та штучного інтелекту в AWS Professional Services і прагне дати клієнтам можливість стати керованими даними та AWSome у хмарі AWS. Крім того, він любить мислити масштабно разом із клієнтами, впроваджувати інновації та винаходити для них нові ідеї.
Аамна Наджмі є спеціалістом із обробки даних у AWS Professional Services. Вона захоплена тим, що допомагає клієнтам впроваджувати інновації з технологіями великих даних і штучного інтелекту, щоб отримувати цінність для бізнесу та розуміння даних. Вона має досвід роботи над платформами даних і проектами AI/ML у галузі охорони здоров’я та наук про життя. У вільний час вона любить займатися садівництвом і подорожувати в нові місця.
Девід Зауервейн є старшим спеціалістом із обробки даних у відділі професійних послуг AWS, де він допомагає клієнтам у їхній подорожі AI/ML у хмарі AWS. Девід зосереджується на цифрових близнюках, прогнозуванні та квантових обчисленнях. Він має ступінь доктора філософії з теоретичної фізики в Університеті Інсбрука, Австрія. Він також був доктором і постдокторантом в Інституті квантової оптики Макса Планка в Німеччині. У вільний час він любить читати, кататися на лижах і проводити час з сім'єю.
Шрікрішна Чайтанья Кондуру є старшим спеціалістом із обробки даних у відділі послуг AWS Professional. Він підтримує клієнтів у створенні прототипів і введенні в дію їхніх додатків ML на AWS. Шрікрішна зосереджується на комп'ютерному зорі та НЛП. Він також очолює ініціативи з розробки платформи машинного навчання та ідентифікації варіантів використання для клієнтів у різних галузевих галузях. Шрікрішна має ступінь магістра біомедичної інженерії в Аахенському університеті RWTH, Німеччина, з фокусом на медичній візуалізації.
Ахмед Мансур є спеціалістом з обробки даних в AWS Professional Services. Він надає технічну підтримку клієнтам під час їх подорожі AI/ML у хмарі AWS. Ахмед зосереджується на застосуванні НЛП до білкового домену разом із RL. Він має ступінь доктора інженерних наук Мюнхенського технічного університету, Німеччина. У вільний час він любить ходити в спортзал і грати зі своїми дітьми.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/build-and-train-computer-vision-models-to-detect-car-positions-in-images-using-amazon-sagemaker-and-amazon-rekognition/
- : має
- :є
- : ні
- :де
- 1
- 10
- 100
- 11
- 12
- 13
- 15%
- 17
- 19
- 22
- 250
- 500
- 7
- 9
- a
- МЕНЮ
- точність
- через
- пристосовувати
- Пристосування
- доданий
- Додатковий
- Додаткова інформація
- адреса
- Перевага
- після
- знову
- AI
- AI / ML
- алгоритми
- ВСІ
- дозволяє
- по
- Також
- завжди
- Amazon
- Amazon Rekognition
- Amazon SageMaker
- Amazon Web Services
- an
- аналіз
- та
- Інший
- будь-який
- API
- додаток
- додаток
- застосування
- Застосування НЛП
- прикладної
- підхід
- приблизно
- архітектура
- ЕСТЬ
- області
- штучний
- штучний інтелект
- AS
- оцінити
- призначений
- передбачається
- At
- Австрія
- Автоматизований
- доступний
- AWS
- Професійні послуги AWS
- назад
- база
- заснований
- BE
- оскільки
- ставати
- за
- буття
- належить
- крім
- Великий
- Великий даних
- біомедичні
- блоки
- тіло
- обидва
- Box
- коробки
- Філія
- приносити
- будувати
- Створюємо
- побудований
- бізнес
- але
- Купівля
- by
- обчислювати
- розрахований
- обчислює
- покликання
- CAN
- рак
- можливості
- автомобіль
- автомобілів
- випадок
- випадків
- категорії
- Центр
- зміна
- Вибирати
- клас
- хмара
- кокос
- код
- об'єднувати
- коментарі
- загальний
- повний
- повністю
- комплекс
- дотримання
- Компоненти
- обчислення
- обчислення
- комп'ютер
- Комп'ютерне бачення
- довіра
- налаштувати
- З'єднуватися
- вважається
- беручи до уваги
- послідовний
- складається
- Консоль
- консультант
- Контейнер
- містить
- зміст
- контекст
- контроль
- Відповідний
- дорого
- може
- обкладинка
- створений
- урожай
- виготовлений на замовлення
- Клієнти
- настроюється
- налаштувати
- дані
- Платформа даних
- вчений даних
- керовані даними
- набори даних
- Девід
- угода
- глибокий
- глибоке навчання
- Визначає
- демонстрація
- демонструвати
- демонструє
- залежно
- розгортання
- розгорнути
- розгортання
- дизайн
- деталі
- виявляти
- виявлено
- Виявлення
- різний
- цифровий
- Цифрові близнюки
- Різне
- do
- Docker
- Ні
- домен
- Не знаю
- кожен
- ефект
- або
- ще
- дозволяє
- дозволяє
- Кінцева точка
- зачеплення
- Машинобудування
- підвищувати
- досить
- запис
- помилка
- Event
- приклад
- існуючий
- існує
- чекає
- досвід
- експертиза
- піддаватися
- продовжити
- додатково
- витяг
- сім'я
- знаменитий
- зворотний зв'язок
- кілька
- філе
- Файли
- в кінці кінців
- Перший
- гнучкий
- Сфокусувати
- фокусується
- після
- слідує
- для
- знайдений
- Рамки
- Безкоштовна
- від
- перед
- Повний
- повністю
- веселощі
- функція
- Функції
- далі
- шлюз
- Німеччина
- отримати
- даний
- скло
- Go
- GPU
- гімнастика
- Жорсткий
- Мати
- he
- охорона здоров'я
- допомогу
- її
- його
- господар
- відбувся
- ГОДИННИК
- Як
- Однак
- HTML
- HTTPS
- ідея
- ідеї
- Ідентифікація
- if
- ілюструє
- зображення
- зображень
- Зображеннями
- важливо
- удосконалювати
- поліпшений
- in
- включати
- індивідуальний
- промисловість
- інформація
- Інфраструктура
- ініціативи
- оновлювати
- вхід
- розуміння
- екземпляр
- замість
- інтегрувати
- інтегрований
- Інтелект
- в
- викликали
- IT
- ЙОГО
- робота
- подорож
- JPG
- json
- просто
- ключ
- Діти
- етикетка
- етикетки
- шарів
- Веде за собою
- вивчення
- libraries
- бібліотека
- життя
- Life Sciences
- як
- Сподобалося
- обмеженою
- безмежний
- загрузка
- погрузка
- розташування
- шукати
- ВИГЛЯДИ
- серія
- любить
- машина
- навчання за допомогою машини
- головний
- зробити
- вдалося
- багато
- відображення
- маска
- маски
- математики
- максимальний
- Медіа
- медичний
- може бути
- мільйони
- ML
- Mobile
- Мобільні програми
- модель
- Моделі
- помірність
- модифікований
- Модулі
- більше
- Більше того
- найбільш
- множинний
- Названий
- Необхідність
- необхідний
- потреби
- Нові
- наступний
- nlp
- немає
- зараз
- об'єкт
- Виявлення об'єктів
- об'єкти
- отримувати
- of
- on
- ONE
- онлайн
- інтернет-магазини
- тільки
- Можливості
- оптика
- варіант
- Опції
- or
- Інше
- наші
- з
- вихід
- над
- власний
- упаковані
- пара
- частина
- частини
- пристрасний
- Виконувати
- виступає
- Фізика
- вибирати
- трубопровід
- місця
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- Play
- будь ласка
- точка
- поза
- Оцінка пози
- положення
- позиції
- це можливо
- пошта
- передбачати
- передвіщений
- прогноз
- Прогноз
- передумови
- представити
- попередній
- Проблема
- виробляти
- Product
- Продукти
- професійний
- проект
- проектів
- Білок
- макетування
- забезпечувати
- забезпечує
- публічно
- Штовхати
- put
- Python
- піторх
- Квантовий
- Квантова оптика
- питань
- діапазон
- ставка
- Читати
- готовий
- реального часу
- Причини
- регіон
- відносний
- віддалений
- Сховище
- представляє
- вимагати
- вимагається
- Вимога
- Вимагається
- дослідник
- відповідь
- результат
- повертати
- Умови повернення
- прогін
- біг
- пробіжки
- мудрець
- SC
- НАУКИ
- вчений
- Вчені
- Sdk
- другий
- розділ
- побачити
- сегмент
- сегментація
- сегменти
- самостійне водіння
- старший
- Без сервера
- обслуговування
- Послуги
- виступаючої
- Сесія
- комплект
- кілька
- вона
- покупка
- Повинен
- Показувати
- показаний
- сторона
- аналогічний
- простий
- Розмір
- невеликий
- So
- соціальна
- соціальні медіа
- соціальні медіа-платформи
- рішення
- Рішення
- ВИРІШИТИ
- деякі
- конкретний
- витрачати
- SPORTS
- стек
- standard
- старт
- почалася
- впроваджений
- Крок
- заходи
- зберігання
- зберігати
- зберігати
- представляти
- такі
- достатній
- поставляється
- підтримка
- Опори
- Переконайтеся
- система
- прийняті
- Кран
- завдання
- TD
- команда
- технічний
- Технології
- тензор
- ніж
- Що
- Команда
- їх
- Їх
- потім
- теоретичний
- Там.
- отже
- Ці
- вони
- Мислення
- це
- через
- час
- до
- топ
- поїзд
- навчений
- Навчання
- переклад
- Подорож
- близнюки
- два
- ui
- університет
- Оновити
- URL
- us
- використання
- використання випадку
- використовуваний
- користувач
- User Experience
- використовує
- використання
- утиліта
- перевірка достовірності
- значення
- різноманітність
- Транспортні засоби
- версія
- вертикальний
- вертикалі
- дуже
- Відео
- вид
- думки
- видимий
- бачення
- покрокове керівництво
- хотіти
- було
- we
- Web
- Веб-додаток
- веб-сервіси
- Вітає
- добре відомі
- були
- Що
- Колесо
- коли
- коли б ні
- який
- всі
- волі
- з
- без
- робочий
- б
- обернути
- Ти
- вашу
- зефірнет