Компьютерное зрение (CV) — одно из наиболее распространенных приложений машинного обучения (ML) и глубокого обучения. Варианты использования варьируются от беспилотных автомобилей, модерации контента на платформах социальных сетей, обнаружения рака и автоматического обнаружения дефектов. Апостол — это полностью управляемая служба, которая может выполнять задачи CV, такие как обнаружение объектов, обнаружение сегментов видео, модерация контента и многое другое, чтобы извлекать ценную информацию из данных без необходимости какого-либо предварительного опыта машинного обучения. В некоторых случаях может потребоваться более индивидуальное решение вместе с услугой для решения очень конкретной проблемы.
В этом посте мы рассмотрим области, в которых CV можно применять в случаях, когда важна поза объектов, их положение и ориентация. Одним из таких вариантов использования могут быть мобильные приложения для клиентов, где требуется загрузка изображения. Это может быть сделано из соображений соответствия или для обеспечения согласованного взаимодействия с пользователем и повышения вовлеченности. Например, на платформах онлайн-покупок угол, под которым товары показаны на изображениях, влияет на скорость покупки этого товара. Одним из таких случаев является определение положения автомобиля. Мы демонстрируем, как можно объединить известные решения машинного обучения с постобработкой для решения этой проблемы в облаке AWS.
Мы используем модели глубокого обучения для решения этой проблемы. Обучение алгоритмов машинного обучения для оценки позы требует большого опыта и пользовательских обучающих данных. Оба требования трудно и дорого получить. Поэтому мы представляем два варианта: один, не требующий каких-либо знаний в области машинного обучения и использующий Amazon Rekognition, и другой, использующий Создатель мудреца Амазонки для обучения и развертывания пользовательской модели машинного обучения. В первом варианте мы используем Amazon Rekognition для обнаружения колес автомобиля. Затем мы определяем ориентацию автомобиля по положению колес, используя систему, основанную на правилах. Во втором варианте мы обнаруживаем колеса и другие детали автомобиля с помощью Детектрон модель. Они снова используются для определения положения автомобиля с помощью кода на основе правил. Второй вариант требует опыта машинного обучения, но он также более настраиваемый. Его можно использовать для дальнейшей постобработки изображения, например, чтобы обрезать всю машину. Оба варианта можно обучить на общедоступных наборах данных. Наконец, мы покажем, как вы можете интегрировать это решение для определения позы автомобиля в существующее веб-приложение, используя такие сервисы, как Шлюз API Amazon и АМС Усиление.
Обзор решения
Следующая диаграмма иллюстрирует архитектуру решения.
Решение состоит из имитации веб-приложения в Amplify, куда пользователь может загрузить изображение и вызвать либо модель Amazon Rekognition, либо пользовательскую модель Detectron для определения положения автомобиля. Для каждого варианта мы размещаем AWS Lambda функция за шлюзом API, который открыт для нашего фиктивного приложения. Мы настроили нашу функцию Lambda для работы либо с моделью Detectron, обученной в SageMaker, либо в Amazon Rekognition.
Предпосылки
Для этого прохождения у вас должны быть следующие предпосылки:
Создайте бессерверное приложение с помощью Amazon Rekognition
Наш первый вариант демонстрирует, как вы можете определять ориентацию автомобиля на изображениях с помощью Amazon Rekognition. Идея состоит в том, чтобы использовать Amazon Rekognition для определения местоположения автомобиля и его колес, а затем выполнить постобработку, чтобы определить ориентацию автомобиля на основе этой информации. Все решение развертывается с использованием Lambda, как показано на Репозиторий Github. Эта папка содержит два основных файла: файл Dockerfile, определяющий образ Docker, который будет запускаться в нашей функции Lambda, и файл app.py
файл, который будет основной точкой входа функции Lambda:
Функция Lambda ожидает событие, содержащее заголовок и тело, где тело должно быть изображением, которое необходимо пометить как декодированный объект base64. Учитывая изображение, Amazon Rekognition detect_labels
функция вызывается из лямбда-функции с помощью Бото3. Функция возвращает одну или несколько меток для каждого объекта на изображении и сведения о ограничивающей рамке для всех обнаруженных меток объектов как часть ответа, а также другую информацию, такую как достоверность назначенной метки, метки-предки обнаруженной метки, возможные псевдонимы для метки и категории, к которым принадлежит обнаруженная метка. На основе меток, возвращенных Amazon Rekognition, мы запускаем функцию label_image
, который вычисляет угол автомобиля по обнаруженным колесам следующим образом:
Обратите внимание, что приложение требует, чтобы на изображении присутствовал только один автомобиль, и возвращает ошибку, если это не так. Однако постобработку можно адаптировать для предоставления более детальных описаний ориентации, охвата нескольких автомобилей или вычисления ориентации более сложных объектов.
Улучшить обнаружение колес
Чтобы еще больше повысить точность обнаружения колеса, вы можете использовать Пользовательские ярлыки Amazon Rekognition. Подобно тонкой настройке с помощью SageMaker для обучения и развертывания пользовательской модели машинного обучения, вы можете принести свои собственные размеченные данные, чтобы Amazon Rekognition мог создать для вас пользовательскую модель анализа изображений всего за несколько часов. С помощью пользовательских меток Rekognition вам нужен только небольшой набор обучающих изображений, которые относятся к вашему варианту использования, в данном случае изображения автомобилей с определенными углами, потому что он использует существующие возможности Amazon Rekognition для обучения на десятках миллионов изображений по всему миру. много категорий. Пользовательские метки Rekognition можно интегрировать всего несколькими щелчками мыши и небольшой адаптацией к функции Lambda, которую мы используем для стандартного решения Amazon Rekognition.
Обучите модель с помощью учебного задания SageMaker
Во втором варианте мы обучаем пользовательскую модель глубокого обучения на SageMaker. Мы используем Фреймворк Detectron2 для сегментации автомобильных запчастей. Затем эти сегменты используются для определения положения автомобиля.
Платформа Detectron2 — это библиотека, предоставляющая современные алгоритмы обнаружения и сегментации. Detectron предоставляет множество моделей Mask R-CNN, которые были обучены на известном наборе данных COCO (Общие объекты в контексте). Чтобы построить нашу модель обнаружения автомобильных объектов, мы используем трансферное обучение для точной настройки предварительно обученной модели Mask R-CNN на сегментация автомобильных запчастей набор данных. Этот набор данных позволяет нам обучить модель, которая может обнаруживать колеса, а также другие детали автомобиля. Эта дополнительная информация может быть дополнительно использована в расчетах угла автомобиля относительно изображения.
Набор данных содержит аннотированные данные об автомобильных деталях, которые будут использоваться для обнаружения объектов и задач семантической сегментации: около 500 изображений седанов, пикапов и внедорожников (внедорожников), сделанных в нескольких видах (спереди, сзади и сбоку). Каждое изображение аннотировано 18 масками экземпляров и ограничивающими рамками, представляющими различные части автомобиля, такие как колеса, зеркала, фары, переднее и заднее стекло. Мы изменили базовые аннотации колес таким образом, чтобы каждое колесо считалось отдельным объектом, а не рассматривало все доступные колеса на изображении как один объект.
МЫ ИСПОЛЬЗУЕМ Простой сервис хранения Amazon (Amazon S3) для хранения набора данных, используемого для обучения модели Detectron, вместе с артефактами обученной модели. Более того, контейнер Docker, который запускается в функции Lambda, хранится в Реестр Amazon Elastic Container (Амазон ЭКР). Контейнер Docker в функции Lambda нужен для включения необходимых библиотек и зависимостей для запуска кода. В качестве альтернативы мы могли бы использовать Лямбда-слои, но она ограничена квотой размера пакета развертывания в разархивированном виде, равной 250 МБ, и к функции Lambda можно добавить не более пяти уровней.
Наше решение построено на SageMaker: мы расширяем готовые Контейнеры SageMaker Docker для PyTorch для запуска нашего пользовательского PyTorch тренировочный код. Затем мы используем SageMaker Python SDK для включения обучающего изображения в средство оценки SageMaker PyTorch, как показано в следующих фрагментах кода:
Наконец, мы начинаем обучающую работу, вызывая fit()
на созданном оценщике PyTorch. По завершении обучения артефакт обученной модели сохраняется в корзине сеансов в Amazon S3 для использования в конвейере логических выводов.
Разверните модель с помощью SageMaker и конвейеров логического вывода.
Мы также используем SageMaker для размещения конечной точки логического вывода, которая запускает нашу пользовательскую модель Detectron. Полная инфраструктура, используемая для развертывания нашего решения, предоставляется с помощью AWS CDK. Мы можем разместить нашу пользовательскую модель через Конечная точка 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 для каждой из развернутых функций Lambda в
index.html
файл в предыдущем репозитории (есть заполнители, где необходимо разместить конечную точку). Следующий код является примером того, как выглядит этот раздел файла .html:
- Сохраните файл HTML и отправьте изменение кода в удаленную основную ветку.
Это обновит файл HTML в развертывании. Теперь приложение готово к использованию.
- Перейдите к консоли Amplify и найдите созданный проект.
URL-адрес приложения будет виден после завершения развертывания.
- Перейдите по URL-адресу и получайте удовольствие от пользовательского интерфейса.
Заключение
Поздравляем! Мы развернули полную бессерверную архитектуру, в которой использовали Amazon Rekognition, но также предоставили возможность для вашей собственной пользовательской модели, причем этот пример доступен на GitHub. Если в вашей команде нет опыта машинного обучения или недостаточно пользовательских данных для обучения модели, вы можете выбрать вариант, использующий Amazon Rekognition. Если вам нужен больший контроль над вашей моделью, дополнительная ее настройка и достаточно данных, вы можете выбрать решение SageMaker. Если у вас есть команда специалистов по данным, они также могут захотеть дополнительно улучшить модели и выбрать более индивидуальный и гибкий вариант. Вы можете поместить функцию Lambda и шлюз API позади своего веб-приложения, используя любой из двух вариантов. Вы также можете использовать этот подход для другого варианта использования, для которого вы, возможно, захотите адаптировать код.
Преимущество этой бессерверной архитектуры заключается в полной взаимозаменяемости строительных блоков. Возможности практически безграничны. Итак, начните сегодня!
Как всегда, AWS приветствует обратную связь. Пожалуйста, отправьте любые комментарии или вопросы.
Об авторах
Майкл Валлнер является старшим консультантом по данным и искусственному интеллекту в AWS Professional Services и увлечен тем, чтобы помочь клиентам в их путешествии стать управляемыми данными и AWSome в облаке AWS. Кроме того, ему нравится мыслить масштабно с клиентами, чтобы внедрять инновации и изобретать для них новые идеи.
Амна Наджми является специалистом по данным в AWS Professional Services. Она увлечена тем, что помогает клиентам внедрять инновации с помощью технологий больших данных и искусственного интеллекта, чтобы использовать бизнес-ценность и идеи из данных. У нее есть опыт работы с платформой данных и проектами AI/ML в сфере здравоохранения и медико-биологических наук. В свободное время она занимается садоводством и путешествует по новым местам.
Дэвид Зауэрвейн является старшим специалистом по данным в AWS Professional Services, где помогает клиентам в их путешествии в области искусственного интеллекта и машинного обучения в облаке AWS. Дэвид занимается цифровыми двойниками, прогнозированием и квантовыми вычислениями. Он имеет докторскую степень по теоретической физике Университета Инсбрука, Австрия. Он также был докторантом и постдокторантом в Институте Макса Планка по квантовой оптике в Германии. В свободное время любит читать, кататься на лыжах и проводить время с семьей.
Шрикришна Чайтанья Кондуру является старшим специалистом по данным в службе AWS Professional. Он поддерживает клиентов в создании прототипов и вводе в эксплуатацию их приложений машинного обучения на AWS. Шрикришна занимается компьютерным зрением и НЛП. Он также возглавляет инициативы по проектированию платформы машинного обучения и идентификации вариантов использования для клиентов из различных отраслевых вертикалей. Шрикришна имеет степень магистра биомедицинской инженерии в Рейнско-Вестфальском техническом университете Ахена, Германия, со специализацией в области медицинской визуализации.
Ахмед Мансур является специалистом по данным в AWS Professional Services. Он оказывает техническую поддержку клиентам на протяжении всего их пути в области искусственного интеллекта и машинного обучения в облаке AWS. Ахмед фокусируется на применении НЛП в белковой области наряду с RL. Он имеет степень доктора технических наук Мюнхенского технического университета, Германия. В свободное время он любит ходить в спортзал и играть со своими детьми.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: 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 Web Services
- an
- анализ
- и
- Другой
- любой
- API
- приложение
- Применение
- Приложения
- Приложения НЛП
- прикладной
- подхода
- примерно
- архитектура
- МЫ
- области
- искусственный
- искусственный интеллект
- AS
- оценить
- назначенный
- предполагается,
- At
- Austria
- Автоматизированный
- доступен
- AWS
- Профессиональные услуги AWS
- назад
- Использование темпера с изогнутым основанием
- основанный
- BE
- , так как:
- становиться
- за
- не являетесь
- принадлежит
- Кроме
- большой
- Big Data
- биомедицинских
- Блоки
- тело
- изоферменты печени
- Коробка
- коробки
- Филиал
- приносить
- строить
- Строительство
- построенный
- бизнес
- но
- покупка
- by
- вычислять
- рассчитанный
- исчисляет
- вызова
- CAN
- рак
- возможности
- автомобиль
- легковые автомобили
- случаев
- случаев
- категории
- Центр
- изменение
- Выберите
- класс
- облако
- кокос
- код
- объединять
- Комментарии
- Общий
- полный
- полностью
- комплекс
- Соответствие закону
- компоненты
- вычисление
- расчеты
- компьютер
- Компьютерное зрение
- доверие
- настроить
- Свяжитесь
- считается
- принимая во внимание
- последовательный
- состоит
- Консоли
- консультант
- Container
- содержит
- содержание
- контекст
- контроль
- соответствующий
- дорогостоящий
- может
- чехол для варгана
- создали
- урожай
- изготовленный на заказ
- Клиенты
- настраиваемый
- настроить
- данным
- Платформа данных
- ученый данных
- управляемых данными
- Наборы данных
- Давид
- сделка
- глубоко
- глубокое обучение
- Определяет
- демонстрация
- демонстрировать
- демонстрирует
- Зависимости
- развертывание
- развернуть
- развертывание
- Проект
- подробнее
- обнаруживать
- обнаруженный
- обнаружение
- различный
- Интернет
- Цифровые близнецы
- Разное
- do
- Docker
- не
- домен
- Dont
- каждый
- эффект
- или
- еще
- позволяет
- позволяет
- Конечная точка
- обязательство
- Проект и
- повышать
- достаточно
- запись
- ошибка
- События
- пример
- существующий
- существует
- надеется
- опыт
- опыта
- подвергаться
- продлить
- дополнительно
- извлечение
- семья
- знаменитый
- Обратная связь
- несколько
- Файл
- Файлы
- в заключение
- Во-первых,
- гибкого
- Фокус
- фокусируется
- после
- следующим образом
- Что касается
- найденный
- Рамки
- Бесплатно
- от
- передний
- полный
- полностью
- fun
- функция
- Функции
- далее
- шлюз
- Germany
- получить
- данный
- стекло
- Go
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Спорт зал
- Жесткий
- Есть
- he
- здравоохранение
- помощь
- ее
- его
- кашель
- состоялся
- ЧАСЫ
- Как
- Однако
- HTML
- HTTPS
- идея
- идеи
- Идентификация
- if
- иллюстрирует
- изображение
- изображений
- Изображениями
- важную
- улучшать
- улучшенный
- in
- включают
- individual
- промышленность
- информация
- Инфраструктура
- инициативы
- обновлять
- вход
- размышления
- пример
- вместо
- интегрировать
- интегрированный
- Интеллекта
- в
- вызывается
- IT
- ЕГО
- работа
- путешествие
- JPG
- JSON
- всего
- Основные
- Дети
- этикетка
- Этикетки
- слоев
- Лиды
- изучение
- библиотеки
- Библиотека
- ЖИЗНЬЮ
- Медико-биологическая промышленность
- такое как
- нравится
- Ограниченный
- безграничный
- загрузка
- погрузка
- расположение
- искать
- ВЗГЛЯДЫ
- серия
- любит
- машина
- обучение с помощью машины
- Главная
- сделать
- управляемого
- многих
- отображение
- маска
- Маски
- математике
- максимальный
- Медиа
- основным медицинским
- может быть
- миллионы
- ML
- Мобильный телефон
- Приложения для мобильных устройств
- модель
- Модели
- умеренность
- модифицировало
- Модули
- БОЛЕЕ
- Более того
- самых
- с разными
- Названный
- Необходимость
- необходимый
- потребности
- Новые
- следующий
- НЛП
- нет
- сейчас
- объект
- Обнаружение объекта
- объекты
- получать
- of
- on
- ONE
- онлайн
- интернет-магазины
- только
- Возможности
- оптика
- Опция
- Опции
- or
- Другое
- наши
- внешний
- выходной
- за
- собственный
- в упаковке
- пара
- часть
- части
- страстный
- Выполнять
- выполняет
- Физика
- выбирать
- трубопровод
- Мест
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Играть
- пожалуйста
- Точка
- поза
- Оценка позы
- должность
- позиции
- возможное
- После
- предсказывать
- предсказанный
- прогноз
- Predictor
- предпосылки
- представить
- Предварительный
- Проблема
- производит
- Продукт
- Продукция
- профессиональный
- Проект
- проектов
- Белкове продукты
- макетирования
- обеспечивать
- приводит
- публично
- Push
- положил
- Питон
- pytorch
- Квантовый
- Квантовая оптика
- Вопросы
- ассортимент
- Обменный курс
- Читать
- готовый
- реального времени
- причины
- область
- относительный
- удаленные
- хранилище
- представляющий
- требовать
- обязательный
- Требования
- требуется
- исследователь
- ответ
- результат
- возвращают
- Возвращает
- Run
- Бег
- работает
- sagemaker
- SC
- НАУКА
- Ученый
- Ученые
- SDK
- Во-вторых
- Раздел
- посмотреть
- сегмент
- сегментация
- сегментами
- самостоятельное вождение
- старший
- Serverless
- обслуживание
- Услуги
- выступающей
- Сессия
- набор
- несколько
- она
- Шоппинг
- должен
- показывать
- показанный
- сторона
- аналогичный
- просто
- Размер
- небольшой
- So
- Соцсети
- социальные сети
- социальные медиа-платформы
- Решение
- Решения
- РЕШАТЬ
- некоторые
- конкретный
- тратить
- Спорт
- стек
- стандарт
- Начало
- и политические лидеры
- современное состояние
- Шаг
- Шаги
- диск
- магазин
- хранить
- отправить
- такие
- достаточный
- поставляется
- поддержка
- Поддержка
- Убедитесь
- система
- приняты
- Нажмите
- задачи
- TD
- команда
- Технический
- технологии
- десятки
- чем
- который
- Ассоциация
- их
- Их
- тогда
- теоретический
- Там.
- следовательно
- Эти
- они
- мышление
- этой
- Через
- время
- в
- топ
- Train
- специалистов
- Обучение
- перевод
- Путешествие
- Близнецы
- два
- ui
- Университет
- Обновление ПО
- URL
- us
- использование
- прецедент
- используемый
- Информация о пользователе
- Пользовательский опыт
- использования
- через
- утилита
- Проверка
- ценностное
- разнообразие
- Транспорт
- версия
- вертикальный
- вертикалей
- очень
- Видео
- Вид
- Просмотры
- видимый
- видение
- прохождение
- хотеть
- законопроект
- we
- Web
- веб приложение
- веб-сервисы
- приветствует
- известный
- были
- Что
- Колесо
- когда
- когда бы ни
- который
- все
- будете
- без
- работает
- бы
- заворачивать
- Ты
- ВАШЕ
- зефирнет