Что представляет собой «Робин»
Погружение в мир технологий для людей с инвалидностью началось со знакомства нашего директора Дениса Кулешова с Центром ресурсной поддержки глухих студентов в Бауманке, где он учился. Лабораторию «Сенсор-тех» в 2017 году помог учредить Фонд поддержки слепоглухих «Со-единение». Мы создаем разные гаджеты, программы, которые помогают слепым и глухим, проводим исследования в области социальных инноваций. «Робин» стал одним из первых гаджетов, над которым начала работать Лаборатория «Сенсор-Тех». Я присоединился к команде в августе 2017 года и сразу стал главным конструктором, приступив к реализации технической части устройства.
Умный помощник «Робин» помогает незрячему человеку ориентироваться в пространстве. С помощью встроенных камер он определяет предметы, объекты, сообщает расстояние до них и передает эту информацию пользователю через наушник. Гаджет также можно научить распознавать лица, сфотографировав на камеру знакомых людей и добавив их в библиотеку устройства. Каждой фотографии можно присвоить голосовую метку, и после этого устройство сможет назвать знакомый объект по имени. Всего «Робин» определяет 50 объектов и предметов.
Устройство состоит из компьютера, платы питания и управления, платы кнопок, платы дальномера, а также из камер, дальномеров, разных датчиков ориентации и металлических радиаторов и пластикового корпуса. У «Робина» есть семь кнопок для управления.
Над разработкой умного устройства трудилась большая команда специалистов: главный конструктор, инженер-конструктор, схемотехник, программист нейронных сетей, программист встраиваемого и прикладного ПО, программист микроконтроллеров, монтажник и фрезеровщик-сборщик, технический писатель.
Работа над «Робином» шла с осени 2017 года по весну 2019 года в составе проекта «Нейрокоммуникатор» по разработке комплекса из пяти устройств. Кроме него, туда вошли:
- модуль распознавания речи «Чарли»;
- умный мяч для слепых Soundball;
- конструкция, платы и ПО для проекта «Трогательная история»;
- виброподсказчик для слепоглухих танцоров проекта «Прикасаемые» Фонда поддержки слепоглухих «Со-единение».
«Робин» прошел две итерации аппаратной версии и поступил в продажу.
Как работает умный помощник
Софт для устройства — ОC Linux, на которой выполняется открытое ПО и ПО собственной разработки, а программное обеспечение для работы служебных функций выполняется на микроконтроллерах. Нет предела совершенству, поэтому прибор мы постоянно дорабатываем.
В качестве стека технологий мы использовали TensorFlow, SSD, YOLOX, YOLO v.5, CUDA, OpenCV, Python, PyTorch, dlib.
Прибором с семью кнопками нужно как-то управлять, а также необходимо иметь возможность подключить его к Wi-Fi, Bluetooth, выполнить расширенную настройку. Поэтому мы разработали приложение, которое продолжаем совершенствовать вместе с устройством. Оно подключается по Bluetooth 4.2 и обеспечивает доступ ко всем настройкам устройства.
Распознавание объектов реализовано с помощью предобученной библиотеки машинного зрения на базе TensorFlow и одной из камер. Расстояния определяются с использованием стереопары: камеры и встроенного узконаправленного статичного лидара.
Определение произвольных препятствий происходит с помощью тактильной обратной связи (вибрация) благодаря двум работающим в паре дальномерам — ультразвукового и лидара. Чем препятствие ближе к одному из дальномеров, тем сильнее вибрация. Уровни диапазонов чувствительности можно настроить в приложении. Также в устройстве есть возможность обновления ПО компьютера, его основных функций и микроконтроллера через интернет «по воздуху».
Распознавание лиц людей основано на переработанных алгоритмах dlib и каскадах Хаара. Порядок работы для добавления лица:
- Детектирование всех лиц на изображении.
Для решения этой задачи мы использовали каскады Хаара (англ. Haar), алгоритм HOG (англ. Histogram of Oriented Gradients) и линейный SVM или граф — алгоритм обученной нейронной сети. Используя один из методов детектирования лиц, определим их положение. - Преобразование изображения лица к фронтальному виду.
Когда все лица на изображении найдены, необходимо идентифицировать человека вне зависимости от поворота его головы. Для решения этой задачи каждое изображение преобразуется таким образом, чтобы глаза и губы находились в конкретном месте, как будто лицо повернуто анфас. - Кодирование лица.
Для распознавания конкретных людей нужно сравнить не сами изображения, а дескрипторы, описывающие лицо. Это может быть размер уха, расстояние между глазами или длина носа. Каждое лицо кодируется уникальным набором дескрипторов. - Создание базы данных изображений лиц конкретных людей, которые требуется распознать.
Чтобы найти конкретные лица на изображении, надо сделать от одной до трех цифровых фотографий. Затем фото, имена и звуковые файлы этих лиц загрузить в базу данных. - Поиск имени человека.
На последнем шаге нужно найти имя человека, наиболее похожего на изображение с видеокамеры или отдельно взятой картинки. Для этого надо последовательно сравнить дескрипторы опознаваемого лица с дескрипторами лиц, хранящимися в базе данных, которая была создана на предыдущем шаге. Если совпадение есть, устройство запускает аудиофайл с именем, записанный при добавлении фотографии.
Планы на будущее
Бета-режима (в понимании, что его можно как-то включить или получить) на устройстве сейчас нет. Есть устройства, на которых в данный момент ведется разработка и тестирование нового функционала и обновлений. Можно сказать, что такие устройства находятся в бета-режиме. Мы постоянно улучшаем продукт, постоянно тестируем новые функции и режимы. Например, недавно опубликованная функция распознавания текстов была протестирована и отлажена перед публикацией в подобном бета-устройстве.
На данный момент умного помощника «Робин» используют более 400 человек. Большинству достаточно 30-минутной демонстрации, продвинутые пользователи справляются самостоятельно, так как все настройки понятны и очевидны, все необходимые алгоритмы настроены и работоспособны «из коробки». Одного заряда хватает не менее чем на три часа работы без постоянного использования ИИ и на 1,5 часа — с постоянным поиском с ИИ.
«Робин» может не подойти только тем, кому размер и вес покажутся неудобными. Хотя пока еще никто на эти показатели не жаловался, так как мы делали разработку эргономичной.
Мы с командой Лаборатории «Сенсор-Тех» сейчас активно развиваем продукт и занимаемся проработкой и разработкой следующих поколений «Робина», а также планируем делать похожие гаджеты для людей с нарушенным зрением и для слепоглухих.