Сочетание диалога и компьютерного зрения для помощи на кухне

Вступление

Общение с домом - это уже не фантастика, а обычная часть повседневной жизни для многих. Это, несомненно, захватывающе, но доступность голосовых помощников (Amazon Alexa, Google Assistant и т. Д.) Сейчас как никогда важна. На самом деле помощь человеку с ограниченными возможностями имеет больший положительный эффект, чем помощь кому-то установить таймер во время выпечки.

С целью оказания такой разговорной помощи людям с нарушениями зрения команда студентов работает с Лабораторией взаимодействия в Университете Хериот-Ватт. В этой серии из двух частей будут рассмотрены их работы.

Мы планировали сотрудничать с Royal Blind, но, к сожалению, эти планы были отложены из-за covid-19. Мы решили сделать небольшое пожертвование и попросить читателей ознакомиться с их ценными работами.

Команда

Этот проект был спланирован, разработан и реализован в течение 12 недель в рамках курса под названием Разговорные агенты и обработка разговорной речи. Если это класс или область, которая вас интересует, взгляните на Магистр разговорного искусственного интеллекта в Heriot-Watt.

Студенты:

Амит Парех (LinkedIn, GitHub)
Винсент Ларше
Лукас Дюми
Александр Кардайак
Катерина Александр
Хэмиш Маккиннон
(GitHub)
Тео Феррейра

Руководители:

Angus Addlesee (Medium, Twitter, LinkedIn)
Шубхам Агарвал (Medium, Twitter, LinkedIn)
Верена Ризер (Twitter, LinkedIn)
Оливер Лемон (Twitter, LinkedIn)

Чего мы достигли: разработка AyeSaac

TL; DR: мы создали AyeSaac, чтобы отвечать на вопросы на кухне с помощью голоса. Пользователи могут спросить, что это за объекты, есть ли там объект, что на нем написано, какого цвета и примерно где находится предмет. Наша структура доступна с открытым исходным кодом, и мы приглашаем других внести свой вклад, если они пожелают.

Изначально мы планировали адаптировать нашу систему (названную AyeSaac) для использования в гостиной. Однако как только мы начали просматривать реальные вопросы, задаваемые слепыми людьми (VizWiz Dataset), стало совершенно очевидно, что лучше выбирать кухню. Диван не часто двигается, а вот кухонная утварь на стойке - тоже. Найти эту посуду и прочитать текст на упаковке пищевых продуктов - две заметные задачи, которые мы хотели решить.

В этой области существуют приложения. Например, Be My Eyes объединяет своих пользователей со зрячими волонтерами посредством видеозвонка. Существуют также автоматизированные приложения, в которых не участвуют добровольцы, такие как TapTapSee, которые могут идентифицировать объекты на изображении. Чтение текста вслух также возможно с помощью устройства под названием OrCam MyEye 2.0, которое крепится к очкам пользователя.

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

  • Обнаружение объекта
  • Чтение текста (OCR)
  • Обнаружение цвета
  • Обнаружение положения

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

В следующем видео некоторые из команды представляют AyeSaac и проводят демонстрацию в 4:35.

Получение более технических

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

Как подробно описано в видео (в 2:17), архитектура AyeSaac выглядит так:

AyeSaac содержит следующие компоненты:

  • Распознавание речи (мы использовали Watson) - преобразует голос пользователя в текст.
  • NLU (Rasa) - обрабатывает текст, чтобы понять, что пользователь запрашивает системе. Например: определить цвет, прочитать текст или найти именованный объект.
  • Диспетчер - определяет путь, по которому следует пройти через диспетчер диалогов на основе вывода Rasa. Например: «Какого цвета чаша?» требует обнаружения объекта и определения цвета, но не определения положения или OCR.
  • Camera Manager - обнаруживает и извлекает визуальный сигнал с одной или нескольких камер. Камеры могут быть встроенными в ноутбук, внешними камерами (такими как веб-камеры или Kinect) или мобильными камерами, если вы хотите запустить AyeSaac на смартфоне.
  • OCR (Keras OCR) - извлекает текст из изображений. Это используется, если пользователю требуется прочитать какой-либо текст.
  • Обнаружение объектов (Обнаружение объектов TensorFlow) - идентифицирует объекты и находит их на сцене. Это используется, когда пользователи хотят спросить, что перед ними, есть ли там конкретный объект, сколько их и т. Д.
  • Определение положения - возвращает положение каждого объекта по горизонтали относительно кадра. При подключении Kinect также возвращается глубина объекта.
  • Определение цвета (алгоритм сегментации SLIC и кластеризация KNN) - определяет наиболее распространенный цвет каждого объекта в сцене и его имя.
  • Интерпретатор - получает путь, выбранный менеджером, и вывод каждого соответствующего компонента. Он объединяет эту информацию для использования при создании естественного языка (NLG).
  • NLG (на основе правил) - использует информацию от интерпретатора и намерение от NLU для генерации текстового ответа на вопрос, заданный пользователем.
  • Преобразование текста в речь (Google TTS) - преобразует текстовый ответ в голосовой ответ для пользователя.

Если вы ищете интересный проект для работы во время изоляции, не стесняйтесь повеселиться с AyeSaac. Ниже мы предлагаем следующие шаги, а код можно найти здесь: https://github.com/Aye-saac/aye-saac

Следующие шаги:

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

  • Улучшение обнаружения объектов. Модель обнаружения объектов TensorFlow обучается с использованием набора данных «Общие объекты в контексте» (CoCo). Этот набор данных является отличной базой, но он не предназначен для кухни. По этой причине было бы полезно обучить модель на более конкретном наборе данных (т.е. исключая самолеты и верблюдов, но включая шпатели и терки).
  • Точно так же улучшение NLU с помощью более адаптированного корпуса обучения.
  • Оценка альтернативных решений OCR для нашего варианта использования. Мы решили внедрить Keras OCR, но у нас не было времени проверить, например, лучше ли работает Tesseract для этого варианта использования.
  • Использование определения глубины. Мы потеряли доступ к нашему Kinect в середине этого проекта из-за коронавируса. К сожалению, это означало, что мы не смогли реализовать улучшенное определение местоположения объекта с использованием глубины. Реализация этого позволит системе сообщать пользователю, находится ли объект перед пользователем или позади него.
  • Что такое синонимы. В настоящее время система обнаруживает чашу, но также возвращает отрицательный ответ, когда пользователь спрашивает, есть ли поблизости «блюдо». Очевидно, что это проблема, которую необходимо решить, чтобы значительно улучшить удобство использования и уменьшить потенциальное разочарование пользователей.
  • Добавление функциональности. В настоящее время AyeSaac не может ответить на все вопросы, которые могут быть заданы (очевидно, всегда будут вопросы, выходящие за рамки). Такой вопрос, как "Тостер включен?" можно было бы ответить, используя текущие компоненты, но система выиграла бы от дополнительной информации. Например, может быть реализована модель для определения того, находится ли рычаг тостера вверх или вниз. В качестве альтернативы в умном доме AyeSaac может связываться с доступными устройствами IoT.

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

Независимая редакция, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по обработке данных и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить лучшие модели машинного обучения.