Как изучить распознавание изображений на основе глубокого обучения

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

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

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

Что мы сделали

Нашей первой целью было немного познакомиться с Rekognition, опробовать его возможности распознавания лиц на различных фотографиях. Мы решили начать с использования AWS CLI. После установки использование Rekognition стало простым и интуитивно понятным. Все, что нам нужно было сделать, это загрузить фотографии в корзину AWS S3, а затем ссылаться на корзину и фотографию в командах интерфейса командной строки. (Чтобы получить руководство Amazon по этому процессу, щелкните здесь.) Вскоре мы смогли использовать Rekognition для получения некоторой информации о наших фотографиях, такой как Конференц-зал и Проекционный экран (с уровнем достоверности 97,7% и 82,4% соответственно) от фотографии нас на хакатоне HopHacks в конференц-зале с проекционным экраном позади нас.

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

Чтобы получить некоторые данные об ограничениях Rekognition, мы собрали набор из 2 эталонных фотографий и 6 тестовых фотографий в различных ситуациях, например, в продуктовом магазине или сидя у окна. Затем мы создали сценарий оболочки, который автоматизировал процесс тестирования. Сначала мы загрузили наши 2 эталонные фотографии в Коллекцию, с помощью которой пользователи могут группировать фотографии в Rekognition. Копии наших тестовых фотографий были созданы с качеством 100%, 90% и т. Д., Вплоть до качества 10%, а затем все 60 тестовых фотографий были загружены в нашу корзину S3 и сравнены с обоими эталонными фотографиями. Затем скрипт извлек полезную информацию из данных, возвращаемых Rekognition, и структурировал эти данные в формате JSON.

Выводы

Результаты были интересными, и мы узнали несколько ключевых концепций. Неудивительно, что с нашими тестовыми фотографиями в разрешении вплоть до двузначного числа (в сравнении с впечатляющим минимальным разрешением Rekognition 80x80), многие фотографии были просто слишком низкого разрешения, чтобы Rekognition обнаружила совпадение. Однако такая простая вещь, как улыбка посреди смеха, могла существенно повлиять на способность Rekognition обнаруживать сходства. На одной из наших тестовых фотографий был изображен улыбающийся объект, и Rekognition смогла распознать объект с качеством исходной тестовой фотографии 50% с достоверностью 93%, используя эталонную фотографию, на которой объект также улыбался. Однако при сравнении тестовых фотографий смеющегося субъекта с эталонным фото субъекта с серьезным выражением лица Rekognition не смог распознать объект ни при каком качестве тестовой фотографии.

Точно так же, когда объект появлялся в группе с частично затемненным лицом, Rekognition не могла распознать объект ни по эталонному изображению, ни при любом качестве тестового изображения. Переход от уверенной идентификации к неудачной идентификации был также довольно резким, обычно переходя от идентификации объекта с достоверностью 80–90% при одном качестве тестовой фотографии к полной неудаче при следующем минимальном процентном соотношении тестовых фотографий.

Дальнейшие действия

Используя наши тестовые данные, мы определили, что фотографии, используемые в нашей системе проверки личности, должны иметь разрешение как минимум 450x300 (или 300x450), поскольку это примерно то же самое разрешение тестовых фотографий самого низкого качества, на которых Rekognition все еще может распознать тема. В идеале субъекты также должны смотреть в камеру, стоять близко и не закрывать лицо. На стороне эталонного изображения, основываясь на результатах улыбающегося тестового изображения, было бы полезно иметь несколько изображений каждого известного человека с некоторыми разными выражениями или углами.

Имея это в виду, мы начали разработку следующего этапа нашего проекта: камеры. Мы заказали element14 Raspberry Pi Camera V2 и будем настраивать его для работы с Raspberry Pi и срабатывания через датчик движения.