Ответы на текстовые вопросы от упаковки

Это упрощенное сокращение статьи, которую я написал в соавторстве со всей командой, подробно описанной ниже, опубликованной на Международной конференции по мультимодальному взаимодействию 2021. Если вам когда-нибудь понадобится, пожалуйста, процитируйте нашу статью под названием «У меня аллергия на это? Помощь слабовидящим на кухне.

Harvard:
Ramil Brick, E., et al., 2021. Am I Allergic to This? Assisting Sight Impaired People in the Kitchen. In Proceedings of the 2021 International Conference on Multimodal Interaction.
BibTeX:
@inproceedings{ramilbrick2021allergic,
  title={Am I Allergic to This? Assisting Sight Impaired People in the Kitchen},
  author={Ramil Brick, Elisa and Caballero Alonso, Vanesa and O'Brien, Conor and Tong, Sheron and Tavernier, Emilie and Parekh, Amit and Addlesee, Angus and Lemon, Oliver},
  journal={Proceedings of the 2021 International Conference on Multimodal Interaction},
  year={2021}
}

Первоначально опубликовано в блоге Расы здесь 5 октября 2021 г.

TL;DR

Слепые и слабовидящие люди нуждаются в помощи с упаковкой пищевых продуктов, которая часто содержит важную для безопасности информацию. Таким образом, текстовыевизуальные ответы на вопросы (VQA) могут оказаться критически важными для повышения независимости людей, страдающих потерей зрения. Например, понимание текста на изображении необходимо, чтобы определить, какой тип супа находится в банке, как долго готовить еду в микроволновой печи, когда истечет срок годности коробки с яйцами и содержит ли еда ингредиент, вызывающий аллергию. к. Эта горстка примеров относится к обстановке кухни — особенно сложной зоне для людей с нарушениями зрения.

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

Команда

В начале 2020 года я руководил группой из семи студентов магистратуры, проходящих курс Разговорные агенты и обработка разговорной речи Университета Хериот-Ватт. Мы заложили основы голосового помощника для слепых и слабовидящих людей. Об этой работе и учениках можно прочитать здесь.

В этом году команда работала над этим проектом в течение 12 недель в рамках того же курса. Они есть:

Студенты:

Элиза Рамиль Брик (LinkedIn)
Ванеса Кабальеро Алонсо (LinkedIn)
Конор О'Брайен (LinkedIn, GitHub)
Шерон Тонг (LinkedIn)
Эмили Тавернье
Амит Парех (LinkedIn, GitHub)

Супервайзеры:

Ангус Аддлеси (LinkedIn, Twitter)
Оливер Лемон (LinkedIn, Twitter)

Мотивация проекта

Кулинария — важный навык для всех, кто хочет вести более здоровую и независимую жизнь. Научиться готовить уже сложно, но это значительно сложнее для людей, страдающих потерей зрения. Благотворительные организации, такие как Sight Scotland Veterans, поддерживают эту группу, предлагая доступную кухонную технику, советы по планировке кухни и замечательные кулинарные мероприятия:

На CVPR 2020 панельная дискуссия (которую вы можете посмотреть здесь) с четырьмя слепыми экспертами по технологиям показала, что текстовая информация была ежедневной проблемой, например, поиск правильной платформы на вокзале.

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

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

Системы «человек в цикле» позволяют слабовидящим людям подключаться к зрячим волонтерам или платить обученному персоналу в зависимости от платформы. Затем они могут использовать камеру своего телефона для отправки фотографий или видео и задавать вопросы об изображениях. Добровольцы очень точны и могут ответить на вопросы, требующие своевременного/культурного понимания (например, «Что означает эта работа Бэнкси?»), но они не частные. Изображения могут содержать личную информацию вроде адресов в письмах или семейных фотографий, которыми пользователь не собирался делиться, которые теперь может увидеть этот неизвестный доброволец.

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

По этой причине сквозные системы, как правило, просто читают текст вслух, а текстовые визуальные ответы на вопросы (VQA) остаются сложной задачей. Хотя чтение каждого слова на коробке с хлопьями, в конечном счете, дало бы ответы на большинство вопросов, это просто недоступно, так как разочаровывает и занимает огромное количество времени (как также обсуждалось на этой панели).

Наша система

Мы решили сделать первые шаги к голосовому помощнику, который может адекватно выполнять текстовый VQA. Мы стремились ответить на вопросы, которые требовали понимания текста на изображении, дополнительного контекста из предыдущих взаимодействий и некоторого мирового контекста. Например, «Это безопасно есть?» требует текущей даты и аллергенов пользователя для адекватного ответа.

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

Представляем Айе-саак

Как уже упоминалось, группа студентов магистратуры Университета Хериот-Ватт с нуля создала базовый голосовой помощник для людей с нарушениями зрения. Они назвали его Айе-саак и вы можете прочитать об этом здесь.

В этом году мы опирались на Aye-saac, создавая новые компоненты, улучшая существующие и добавляя этапы предварительной обработки для текстового VQA.

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

Аналогичным образом мы создали обновленную диаграмму архитектуры, а затем более подробно рассмотрим каждое из наших обновлений.

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

Понимание естественного языка (NLU)

Первоначально Айе-саак использовал модель NLU Раса, чтобы получить вопрос пользователя и понять его.

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

Однако предыдущая команда реализовала очень простую модель Rasa, поэтому нам действительно нужно было обновить ее, чтобы реализовать все наши дополнительные функции. Мы решили использовать модель Dual Intent Entity Transformer (DIET) в Rasa, используя предварительно обученные языковые модели spaCy. Вместо того, чтобы обучать отдельные модели классификации намерений и извлечения сущностей, модели DIET обучают их вместе, поскольку это повышает общую производительность.

Чтобы понять новые вопросы, на которые мы планируем ответить, нам нужно было сгенерировать больше обучающих данных. Поэтому мы собирали данные от сокурсников. Примеры включают:

  • Есть ли в этом орехи? (намерение: обнаружить_ингредиенты)
  • Это все еще хорошо есть? (намерение: обнаружить_expiration)
  • Когда это проходит? (намерение: обнаружить_expiration)
  • Мне следует воздержаться от употребления молочных продуктов и моллюсков, безопасно ли это для меня? (намерение: обнаружить_безопасность)

С нашими недавно собранными данными мы обучили модель DIET, и наш NLU был готов, понимая намерения пользователя и извлекая ключевые объекты (такие как молочные продукты и моллюски<). /strong> в последнем примере) для использования нижестоящими компонентами.

Хотите увидеть другие примеры машинного обучения в действии? Загляните на наш канал на YouTube!

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

Использование Rasa для нашего NLU позволило очень легко обновить существующую модель, обучив новую с нуля и просто заменив старую. Мы были очень впечатлены эффективностью модели DIET в целом.

Менеджер в диалоговом менеджере

Как только вопрос пользователя «понят» нашим компонентом NLU, менеджер выбирает путь через различные компоненты внутри Aye-saac. Во всех наших случаях, поскольку мы фокусируемся на текстовомVQA, менеджер пропускает обработанный вопрос через компоненты оптического распознавания символов (OCR) и извлечения меток почти для всех наших новых намерений.

Компонент-менеджер также управляет камерами и отправляет фото по тому же пути, что и вопрос пользователя.

Оптическое распознавание символов (OCR)

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

Мы реализовали этап предварительной обработки «коррекция перекоса» в компоненте OCR, чтобы улучшить чтение текста на предметах, которые держат под углом. Короче говоря, мы расширяем текст до тех пор, пока символы не наложатся друг на друга, образуя прямоугольники. Затем вычисляется угол наклона относительно самого длинного края прямоугольника. Вот пример, иллюстрирующий этот процесс:

Эта коррекция перекоса повысила точность распознавания текста Tesseract на уровне слов на 23 %, но в итоге мы решили выбрать Keras OCR, так как его общая производительность была несколько выше (4 %).

Извлечение этикетки

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

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

Ключевые слова имели особое значение: «ингредиенты», «питание», «хранение» и т. д. обычно появлялись перед текстом, в котором находятся ответы. Точно так же даты истечения срока действия, как правило, имеют определенные форматы: дд мм, дд/мм/гггг, дд.мм.гггг, ммгггг и т. д.

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

Без универсальных стандартов этикеток наша версия Aye-saac должна ожидать разнообразного содержания и форматов этикеток. Стандартный «QR-код доступности» было бы невероятно легко обнаружить любой системой, и точность увеличилась бы до ~ 100%.

Генерация естественного языка (NLG)

Вся информация, полученная от каждого из компонентов, затем собирается в интерпретаторе и передается в NLG для генерации ответа системы на естественном языке.

Со всеми нашими дополнительными функциями мы приветствовали управляемость Aye-saac, поскольку нам нужно было отвечать на целый ряд новых вопросов пользователей. Чтобы избежать ошибочных галлюцинаций, полученных из данных, Айе-саак использует шаблонный метод NLG. Благодаря этому нам просто нужно было создать несколько положительных и отрицательных ответов для каждого нового намерения NLU.

Теперь мы могли отвечать на вопросы пользователей:

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

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

Оценка

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

Чтобы проверить это, мы сравнили нашу новую версию Aye-saac с Pythia; Победитель конкурса VQA от Facebook AI Research.

Мы задали Айе-сааку, Пифии и людям несколько текстовых вопросов VQA из набора данных VizWiz VQA. Этот набор данных содержит пары изображение-вопрос от людей, страдающих потерей зрения. Вот некоторые примеры:

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

Как видите, Пифия ответила быстрее всех, но правильно ответила только в 23,6% случаев. Учитывая, что многие вопросы представляют собой бинарные вопросы типа «да/нет», Пифия должна была ответить на некоторые из них правильно. Например, Пифия правильно ответила «нет», когда ее спросили, содержит ли продукт говядину. Мы полагаем, что Пифия искала объект говядины, но точно не знаем.

Pythia — победитель конкурса VQA, и мы не утверждаем, что это плохая система — просто ей не хватает способности выполнять текстовый VQA. Вероятно, это связано с отсутствием контролируемого OCR, полагающегося на то, что модель неявно обучается выполнять собственное OCR во время обучения.

Наша главная цель — подчеркнуть, что текстовая VQA является важной, но упускаемой из виду областью исследований. Явное включение компонента OCR может принести людям большую пользу.

Айе-саак медленнее всего отвечал на вопросы (над которыми мы работаем), но правильно ответил на 61,1% вопросов. Очевидно, это было не так точно, как у человека, но у систем с участием человека в контуре есть свои недостатки, о которых говорилось ранее (конфиденциальность, стоимость и время подключения).

Когда Айе-саак ошибался, обычно виновата OCR. Например, наш компонент обнаружения аллергенов всегда работает правильно, если OCR точен. Мы реализовали коррекцию перекоса, чтобы смягчить некоторые ошибки OCR, но Aye-saac полностью зависит от существующих моделей OCR.

У нас есть планы разработать более сложный экстрактор этикеток, использовать графы знаний для понимания групп продуктов и еще больше расширить круг вопросов, которые может понять наш NLU. Это должно улучшить производительность с текущими моделями OCR, но «QR-код доступности» на упаковке сделал бы многие из этих задач тривиальными и обеспечил бы точность ответов, важных для безопасности.

Заключение

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

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

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

Интересно, есть еще одна студенческая команда! Их бумага была принята на ReInAct 2021, так что ждите еще одну статью на похожую тему.

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

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

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