Как люди, мы воспринимаем распознавание изображений как должное. Это естественный процесс, продолжающийся с момента нашего появления в младенчестве на протяжении всей нашей жизни. Мы можем легко распознавать объекты, различать похожие объекты и определять уникальные характеристики, которые говорят нам, что это наше домашнее животное по сравнению с похожим животным. Даже будучи младенцами, мы можем распознавать лица как маму и папу, даже если мы не можем точно знать, кто они такие, или не можем вербализовать это распознавание.

Как сообщает Brain Blogger, мозг определяет предметы за миллисекунды, и это быстрое распознавание работает, потому что наш мозг постоянно делает прогнозы об объектах в нашем поле зрения, а затем сравнивает их с поступающей информацией Как мозг распознает лица. Это означает, что распознавание образов - это знание или способность вспомнить достаточно информации из нашей памяти, чтобы точно идентифицировать бабушку, или способность воспринимать / предсказывать информацию об этих объектах, чтобы знать, что скоро произойдет автомобильная авария.

Это создает основу для сложности распознавания изображений как в неподвижных изображениях, так и в видео. Механизмы искусственного интеллекта могут научиться достаточно, чтобы идентифицировать объект, но здесь присутствует фактор уверенности, потому что может быть тонкий нюанс, который не был изучен, чтобы различать двух людей или объекты со 100% уверенностью.

Если бы мы дали определение распознавания изображений, это было бы «Распознавание изображений с технологической точки зрения, относится к компоненту технологии, называемому компьютерным зрением, и относится к технологиям, способным идентифицировать места, логотипы, людей, объекты, здания по изображению, будь то изображение из фотографии, видео или проанализировано в реальном времени с камеры.

Что такое AWS Rekognition?

Amazon Rekognition - это решение для анализа изображений и видео, продукт из категории искусственного интеллекта / машинного обучения, который использует глубокое машинное обучение для идентификации объектов на изображении. Это хорошо масштабируемое решение, способное быстро анализировать изображение и идентифицировать объекты на изображении или видео.

Для использования не требуется знаний машинного обучения, и за кулисами специалисты Amazon, занимающиеся компьютерным зрением, постоянно анализируют новые изображения и видео, совершенствуют модель глубокого обучения и добавляют новые функции в сервис.

Настройка AWS Rekognition

В отличие от других сервисов AWS, в Rekognition нет консольного интерфейса, кроме демонстраций. Хотя демонстрационные примеры можно использовать в качестве тестового примера, они не являются практическим применением службы.

Для настройки Rekognition требуется доступ к AWS, загрузка пакета разработки программного обеспечения (SDK) для желаемого языка программирования и реализация вашего кода.

Возможности Rekognition

Rekognition может анализировать как неподвижные кадры, так и видео.

Rekognition for Video включает следующие функции:

  • Анализ потокового видео в реальном времени;
  • Идентификация и поиск человека;
  • Распознавание лица;
  • Анализ лица;
  • Обнаружение объектов, сцен и действий;
  • Обнаружение несоответствующего видео; и,
  • Признание знаменитостей.

Rekognition for Images включает эти функции;

  • Обнаружение объектов и сцен;
  • Распознавание лиц;
  • Анализ лица;
  • Сравнение лиц;
  • Обнаружение небезопасных изображений;
  • Признание знаменитостей; и,
  • Текст в изображении.

Анализ изображений ограничен форматами JPEG и PNG.

Использование AWS Rekognition

Хотя взаимодействие с AWS Rekognition в консоли AWS ограничено, реализация Rekognition практически реализуется через SDK.

При использовании SDK изображение и видео можно отправлять напрямую через вызов API или передав URL-адрес объекта, хранящегося в S3. При отправке байтов изображения в API изображение должно быть в кодировке Base64, что для некоторых языков выполняется автоматически. При передаче объекта S3 кодирование Base64 не требуется.

Вот пример - мы собираемся использовать обнаружение объектов, чтобы идентифицировать элементы на следующем изображении.

Код, который мы будем использовать, предоставлен AWS для демонстрации использования API.

Наш код

import os
import sys
import boto3

def detect_labels_local_file(photo):
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

    client = boto3.client('rekognition')
    
    with open(photo, 'rb') as image:
        response = client.detect_labels(Image={'Bytes': image.read()})
        
    print('Detected labels in ' + photo)    
    for label in response['Labels']:
        print (label['Name'] + ' : ' + str(label['Confidence']))

    return len(response['Labels'])

def main():
    photo='dscf5559.JPG'

    label_count=detect_labels_local_file(photo)
    print("Labels detected: " + str(label_count))

if __name__ == "__main__":
    main()

Когда мы выполняем это в оболочке с использованием Python3, результаты следующие:

$ python3 rekog1.py
Detected labels in dscf5559.JPG
Walkway : 99.99960327148438
Path : 99.99960327148438
Sidewalk : 99.81764221191406
Pavement : 99.81764221191406
Person : 99.6449966430664
Human : 99.6449966430664
Cobblestone : 92.26229095458984
Furniture : 87.95263671875
Bench : 87.95263671875
Porch : 82.72274780273438
Road : 59.49223327636719
Patio : 55.43474197387695
Labels detected: 12
$

Relatively simple to make work, and it did a pretty good job of identifying the objects in the image.

Let’s also try the Celebrity recognition API. Again, the AWS Rekognition documentation has some sample code we can use for this example. Here is our image, the infamous J.R. Ewing from the TV series “Dallas”, as played by Larry Hagman.

The code we are going to execute is

#Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

import boto3
import json

def recognize_celebrities(photo):

    
    client=boto3.client('rekognition')

    with open(photo, 'rb') as image:
        response = client.recognize_celebrities(Image={'Bytes': image.read()})

    print('Detected faces for ' + photo)    
    for celebrity in response['CelebrityFaces']:
        print ('Name: ' + celebrity['Name'])
        print ('Id: ' + celebrity['Id'])
        print ('Position:')
        print ('   Left: ' + '{:.2f}'.format(celebrity['Face']['BoundingBox']['Height']))
        print ('   Top: ' + '{:.2f}'.format(celebrity['Face']['BoundingBox']['Top']))
        print ('Info')
        for url in celebrity['Urls']:
            print ('   ' + url)
        print
    return len(response['CelebrityFaces'])

def main():
    photo='PB086173.JPG'

    celeb_count=recognize_celebrities(photo)
    print("Celebrities detected: " + str(celeb_count))


if __name__ == "__main__":
    main()

Выполняя код с нашим изображением, мы получаем ответ

$ python3 rekog2.py
Detected faces for PB086173.JPG
Name: Larry Hagman
Id: 1y3D0N
Position:
   Left: 0.47
   Top: 0.23
Info
   www.imdb.com/name/nm0001306
Celebrities detected: 1
$

Эти два примера демонстрируют относительную простоту взаимодействия с AWS Rekognition, хотя есть гораздо больше возможностей, которые я не обсуждал в этой статье.

Цены на AWS Rekognition

Стоимость Rekognition зависит от неподвижного изображения или видео, количества сохраненных изображений / видео и метаданных лиц и может варьироваться в зависимости от региона. Пользователи бесплатного уровня также могут попробовать Rekognition по более низкой цене.

Пользователи бесплатного уровня могут анализировать 1000 минут видео и 5000 изображений с 1000 записями метаданных лиц в месяц в течение первых 12 месяцев. Это прекрасное время, чтобы поэкспериментировать с Rekognition и посмотреть, как он может работать в вашем приложении.

После того, как уровень бесплатного пользования истечет, цена будет зависеть от типа изображения, региона и количества.

Видеоанализ оплачивается посекундно, но взимается поминутно, и есть плата за каждую 1000 записей метаданных лица в месяц. Плата за хранение этих метаданных рассчитывается пропорционально на неполные месяцы.

Если вы обрабатываете миллионы изображений каждый месяц, это может обойтись дорого, но все равно будет дешевле, чем «изобретать колесо» и поддерживать решение. Кроме того, за AWS Rekognition стоит значительная база данных, которую пришлось бы создавать в других ситуациях.

Одна из «ловушек» модели ценообразования заключается в различных вызовах API для различных функций, таких как DetectLabel и DetectFaces. Если вам потребуется 1000 изображений, проанализированных обоими API, это будет равно 2000 обработанным изображениям.

Распознавание изображений в медицине

Распознавание изображений обычно имеет плохую репутацию из-за своего использования в системах распознавания лиц, но в медицине существует множество применений. К ним относятся рентгеновский анализ, маммография и помощь слепым или слабовидящим людям, живущим независимой жизнью.

Рак молочной железы

По данным Национального института рака США, рак груди является наиболее распространенным онкологическим заболеванием у женщин и второй по значимости причиной смерти от рака [3]. Как и другие системы распознавания изображений, системы раннего компьютерного обнаружения (CAD), используемые для обнаружения возможных видов рака молочной железы, приводили к тому, что некоторым женщинам ставили неправильный диагноз рака [3] и получали лечение, в котором они не нуждались, или их рак не обнаруживался на достаточно ранней стадии, чтобы предотвратить другие заболевания. осложнения.

Медицинские исследования все еще продолжаются, чтобы улучшить эти системы CAD, чтобы включить глубокое обучение и распознавание изображений для повышения точности обнаружения рака 4.

Распознавание изображений для слабовидящих

Перед слепыми и слабовидящими людьми стоит уникальная задача - ориентироваться в мире. Иногда им необходимо идентифицировать объект или найти объект вокруг них, или определить, когда препятствие, которое может нанести им вред, находится поблизости.

Существуют такие устройства, как WeWalk Smart Cane, основанная на традиционной белой трости, но более продвинутое обнаружение объектов позволяет использовать индивидуальный телефон и Rekognition. Такие приложения, как Seeing AI от Microsoft, хотя и не управляются Rekognition, являются хорошим примером того, как использование камеры смартфона может помочь человеку с ослабленным зрением ориентироваться и взаимодействовать с окружающим миром. Это приложение можно расширить с помощью дополнительных возможностей AWS Rekognition.

Вывод

В этой статье было рассмотрено, что такое распознавание изображений, почему его сложно реализовать на компьютере, что такое AWS Rekognition и несколько примеров приложений в одной области.

Однако возможные варианты использования AWS Rekognition выходят далеко за рамки того, что я обсуждал здесь. Помимо медицины, Rekognition можно использовать в автономных транспортных средствах, роботизированном зрении, обнаружении небезопасного контента в пользовательском контенте, сравнении лиц для идентификации, опроса, правоохранительных органов и т. Д.

Любой, кому требуется анализировать изображения или видео, должен серьезно оценить возможности AWS Rekognition для своего приложения.

использованная литература

[1] Центр демократии и технологий

[2] Face Off: правоохранительные органы используют технологию распознавания лиц

[3] Как глубокое обучение может помочь в борьбе с раком груди, который не учитывается при маммографии

[4] Обнаружение и классификация поражений на маммограммах с глубоким обучением

Анализ изображения, загруженного из локальной файловой системы

AWS Rekognition

Цены на AWS Rekognition

Как мозг распознает лица

Узнавать знаменитостей в образе

Увидеть AI от Microsoft

Умная трость WeWalk

об авторе

Крис - высококвалифицированный специалист в области информационных технологий и облачных вычислений AWS, который руководит облачными технологиями, безопасностью и технологией для упрощения и предоставления высококачественных продуктов. Он является соавтором более семи книг и автором более 70 статей и глав в книгах по техническим вопросам, вопросам управления и информационной безопасности. Его обширный опыт в области технологий, информационной безопасности и обучения делает его ключевым ресурсом, который может помочь компаниям в решении технических проблем.

Авторские права 2019, Крис Хэйр