В предыдущем блоге, мы описали решение сквозной проверки личности в одном регионе AWS. В решении используется Апостол API Обнаружить лица для распознавания лиц и СравнитьЛица для сравнения лиц. Мы рассматриваем эти API как API без сохранения состояния, поскольку они не зависят от Amazon Rekognition. коллекция лиц. Они также идемпотентны, то есть повторные вызовы с одними и теми же параметрами вернут один и тот же результат. Они предоставляют гибкие возможности передачи изображений либо через Простой сервис хранения Amazon (Amazon S3) местоположение или необработанные байты.
В этом посте мы сосредоточимся на Образ распознавания Amazon API без сохранения состояния, а также обсудить два варианта передачи изображений и выбор одного из них с точки зрения архитектуры системы. Затем мы обсудим, как масштабировать API без сохранения состояния, чтобы преодолеть некоторые региональные ограничения. Говоря о масштабируемости, мы часто имеем в виду максимальное количество транзакций в секунду (TPS), которое может обрабатывать решение. Например, при проведении крупного мероприятия, использующего компьютерное зрение для обнаружения лиц или меток объектов, вы можете столкнуться с резким скачком трафика, и вы не хотите, чтобы система регулировала скорость. Это означает, что иногда вам нужно увеличить TPS и даже превысить квоту региональных услуг, которую имеют API Amazon Rekognition. В этом посте предлагается решение для увеличения TPS API без сохранения состояния за счет использования нескольких регионов.
API без сохранения состояния Amazon Rekognition
Из доступных API изображений Amazon Rekognition: СравнитьЛица, Обнаружить лица, Обнаружение меток, детектмодератионлейблс, ОбнаружитьЗащитноеОборудование, Детекттексти ПризнатьЗнаменитости не имеют гражданства. Они предоставляют как Amazon S3, так и необработанные байты для передачи изображений. Например, в синтаксисе запроса DetectFaces
API есть два варианта перехода к Image
поле: Bytes
or S3Object
.
При использовании S3Object
Вариант, типичная архитектура выглядит следующим образом.
Это решение имеет следующий рабочий процесс:
- Клиентское приложение получает доступ к веб-странице, размещенной на АМС Усиление.
- Клиентское приложение аутентифицируется и авторизуется с помощью Амазон Когнито.
- Клиентское приложение загружает изображение в корзину S3.
- Amazon S3 запускает AWS Lambda для вызова Amazon Rekognition.
- Функция Lambda вызывает API Amazon Rekognition с параметром S3Object.
- Функция Lambda сохраняет результат в Amazon DynamoDB таблице.
Выберите S3Object
вариант в следующих случаях:
- Изображение представляет собой файл в формате PNG или JPEG.
- Вы развертываете весь стек в том же регионе, где доступен Amazon Rekognition.
- Квота региональной службы API Amazon Rekognition соответствует вашим системным требованиям.
Если вы не соответствуете всем этим требованиям, вам следует выбрать Bytes
опцию.
Используйте API Amazon Rekognition без сохранения состояния в другом регионе
Один из примеров использования Bytes
вариант, когда вы хотите развернуть свой вариант использования в регионе, где Amazon Rekognition обычно недоступен, например, если у вас есть клиенты в Южной Америке (sa-east-1
) Область, край. Для хранения данных корзина S3, которую вы используете для хранения изображений пользователей, должна находиться в sa-east-1
, но вы хотите использовать Amazon Rekognition для своего решения, несмотря на то, что он обычно не доступен в sa-east-1
. Одно из решений - использовать Bytes
возможность вызова Amazon Rekognition в другом регионе, где доступна Amazon Rekognition, например us-east-1
. Следующая диаграмма иллюстрирует эту архитектуру.
После запуска функции Lambda (шаг 4) вместо прямого вызова Amazon Rekognition с указанием местоположения изображения S3 функция должна получить изображение из корзины S3 (шаг 5), а затем вызвать Amazon Rekognition с необработанными байтами изображения (шаг 6). Ниже приведен фрагмент кода функции Lambda:
Обратите внимание, что предыдущий фрагмент кода работает непосредственно для форматов JPEG или PNG. Для других форматов изображений, таких как BMP, требуется дополнительная обработка изображения, чтобы преобразовать его в байты JPEG или PNG перед отправкой в Amazon Rekognition. Следующий код преобразует байты BMP в JPEG:
Масштабируйте TPS API без сохранения состояния, распределяя вызовы API по нескольким регионам.
Другой вариант использования Bytes
вариант заключается в том, что вы можете масштабировать TPS API без сохранения состояния, распространяя вызовы API на несколько регионов. Таким образом, вы не ограничены квотой региональной службы API, поскольку можете получить дополнительные TPS из других регионов.
В следующем примере создается функция Lambda для вызова службы Amazon Rekognition. DetectLabels
API с Bytes
вариант. Чтобы увеличить максимальное значение TPS, вы можете распределить вызовы API по нескольким регионам с весами. Максимальный TPS, которого вы можете достичь, рассчитывается следующим образом: min(region_1_max_tps/region_1_weight, region_2_max_tps/region_2_weight, … region_n_max_tps/region_n_weight). В следующем примере используется us-east-1
и us-west-2
Регионы.
Фрагмент кода для вызова DetectLabels
API выглядит следующим образом:
Так как us-east-1
и us-west-2
оба имеют максимум 50 TPS для Amazon Rekognition DetectFaces API, вы можете равномерно распределить вызовы API с весом 50/50, установив переменную среды REGION_1_TRAFFIC_PERCENTAGE
до 50. Таким образом, теоретически вы можете достичь min(50/50%, 50/50%) = 100 TPS.
Чтобы подтвердить идею, функция Lambda представлена как REST API с Шлюз API Amazon, тогда JMeter используется для нагрузочного тестирования API.
REGION_1_TRAFFIC_PERCENTAGE
сначала устанавливается на 100, таким образом все DetectFaces
Вызовы API отправляются на us-east-1
Только. Теоретически максимальное значение TPS, которое может быть достигнуто, ограничено сервисной квотой в us-east-1
, что составляет 50 TPS. Нагрузочный тест на пользовательской конечной точке API, начиная с 50 одновременных потоков, постепенно добавляя 5 потоков, пока ProvisionedThroughputExceededException
Возвращение с Amazon Rekognition наблюдается.
REGION_1_TRAFFIC_PERCENTAGE
затем устанавливается на 50, таким образом все DetectLabels
Вызовы API равномерно отправляются на us-east-1
и us-west-2
. Теоретически максимальное значение TPS, которое может быть достигнуто, — это общая квота обслуживания двух регионов, которая составляет 100 TPS. Снова запустите нагрузочный тест со 100 потоков, чтобы найти максимальное значение TPS.
В следующей таблице приведены результаты нагрузочного тестирования.
Процент вызовов API DetectLabels к us-east-1 | Процент вызовов API DetectLabels к us-west-2 | Максимальный TPS в теории | Максимальное количество одновременных запусков без ProvisionedThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
Заключение
Многие клиенты используют API-интерфейсы Amazon Rekognition Image без сохранения состояния для различных вариантов использования, включая проверку личности, модерацию контента, обработку мультимедиа и многое другое. В этом посте обсуждались два варианта передачи изображений и как использовать параметр необработанных байтов для следующих случаев использования:
- Amazon Rekognition Региональная доступность
- Местонахождение данных клиента
- Масштабирование TPS без сохранения состояния API Amazon Rekognition
Узнайте, как Amazon Rekognition используется в различные варианты использования компьютерного зрения и начните свое инновационное путешествие.
Об авторах
Шарон Ли является архитектором решений в AWS, базирующейся в Бостоне, штат Массачусетс. Она работает с корпоративными клиентами, помогая им решать сложные проблемы и использовать AWS. Вне работы она любит проводить время со своей семьей и посещать местные рестораны.
Вайбхав Шах является старшим архитектором решений в AWS и любит помогать своим клиентам во всем, что связано с облачными технологиями, и обеспечивать их переход к облачным технологиям. Вне работы он любит путешествовать, исследовать новые места и рестораны, готовить, заниматься такими видами спорта, как крикет и футбол, смотреть фильмы и сериалы (поклонник Marvel), а также приключения, такие как походы, прыжки с парашютом, и этот список можно продолжить.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Апостол
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- Технические инструкции
- зефирнет