Вступление

AISpy - это экспериментальная концепция приложения, созданная с использованием Flutter, кроссплатформенного инструментария от Google. Приложение использует TensorFlow Lite, платформу глубокого обучения для вывода на устройстве.

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

Прототип приложения использует довольно ограниченную предварительно обученную модель данных с чуть менее чем сотней распознаваемых классов объектов; начиная от компьютерной мышки и заканчивая холодильником, человеком или даже туалетом!

Чтобы увеличить количество узнаваемых объектов, приложение просит пользователя поделиться фотографиями объектов, которые он не мог угадать во время игры.

Я шпион - оригинальная версия

Приложение основано на популярной игре I Spy, игроки по очереди угадывают личность ближайшего объекта. Претендент дает первую букву объекта как подсказку, чтобы помочь другим игрокам. Если никто не угадает правильно, претендент побеждает в раунде.

AISPY - Призрак в машине

В основе функциональности приложения лежит способность «распознавать» объекты в реальном мире и запоминать их на протяжении всей игры. Хотя классическая версия I spy - детская игра, это приложение предназначено и для взрослых.

Он использует платформу машинного обучения под названием TensorFlow - «всеобъемлющую гибкую экосистему инструментов, библиотек и ресурсов сообщества, которая позволяет исследователям продвигать новейшие достижения в области машинного обучения, а разработчикам легко создавать и развертывать приложения на основе машинного обучения . »

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

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

Взаимодействие между ИИ-плеером (устройством!) И человеком-игроком осуществляется почти полностью за счет распознавания голосовой речи, а взамен приложение использует устройства, встроенные в речевые возможности, чтобы говорить.

Компьютерное зрение

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

« Удивительно, что люди и животные делают это так легко, в то время как алгоритмы компьютерного зрения так подвержены ошибкам »

- Ричард Селиски (Microsoft Research)

Неудачи с машинным обучением в реальном мире вызывают тревогу. Но в AISPY он обеспечивает элемент беззаботного юмора, особенно когда приложение принимает объект за что-то совершенно абсурдное!

Я продолжил играть на этом юмористическом аспекте, предоставляя ИИ-игроку причудливые, харизматичные ответы и высказывания на протяжении всей игры.

Набор данных Microsoft COCO

Текущая версия AISpy использует модель, созданную Microsoft COCO (общие объекты в контексте). Такой процесс использования предварительно обученной модели называется Transfer Learning.

Набор данных COCO включает 80 типов объектов, полученных из более чем 200 тысяч помеченных изображений.

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

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

Ограничения

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

Заключение

В целом, это был интересный опыт работы с TensorFlow и Flutter. Я надеюсь, что смогу расширить обученную модель данных изображениями, собранными с помощью этого приложения. Затем модель будет полезна для будущих проектов, которые требуют распознавания объектов в реальном времени с большим количеством распознаваемых объектов.

Первоначально опубликовано на https://blog.matwright.dev 3 сентября 2020 г.