В этой статье хотелось бы затронуть такую непростую тему как изготовление устройств для людей с ограничениями по зрению. Речь пойдет об "еще одном устройстве", призванном улучшить жизнь. Но это не рекламная статья нового изделия, а скорее "взгляд за кулисы" изготовления похожих устройств, их необходимость, новые веяния в этой среде, а также сложности и их преодоление в этом непростом творческом процессе.
Зачем вообще потребовалось создавать еще одно техническое средство, которых и так "пруд пруди", начиная от простых "палок поводыря" за условную тысячу рублей и заканчивая сложными принтерами, которые печатают брайлевские тексты, выводя их прямо на бумагу?
Ответ на этот вопрос скорее риторический.
На определенном этапе сложилось мнение, что процесс миниатюризации ПК с одной стороны и процесс создания легковесных моделей машинного зрения, "говорения", "слушания" сровнялись в своем развитии. А это значит, что можно было совершить очередную попытку сделать жизнь тех, кто ничего не видит, лучше.
Но создавать что-то одноразовое или узко специализированное, решающие только одну задачу, тоже не хотелось. Задумка была сделать этакий "швейцарский нож", который бы предоставлял пользователю уровень сервиса совершенного нового качества. Уж простите за маркетинговые слова. При этом пользователь был бы не отягощен необходимостью что-то носить на голове или, что еще хуже, в голове. Речь, в последнем случае, о нейроимплантах.
Поэтому мы начали делать свой индивидуальный прибор, который бы поместился в ладони.
Проект устройства не был "взят с потолка" и авторами было просмотрено n-е количества информации из Интернета, получено из личного общения с целевой аудиторией. Очень быстро выяснилось, что люди, для которых все затевалось (нисколько не умаляя их личные качества), отличаются как потребители технически сложных устройств. В них присутствует эдакая "вера в чудо" при обращении с каким-либо гаджетом, девайсом. Отсюда вытекает определенный уровень скепсиса, который сопровождает незрячего тестировщика как в процессе эксплуатации устройства, так и после изучения ранее не выявленных особенностей прибора.
Иными словами, потребители данных устройств всегда будут ждать "чего-то большего" от того, что могут дать современные технологии, даже при стремительном развитии последних.
Еще одна деталь, которая проявила себя, при общении с незрячими коллегами, это тот факт, что их быт, по большому счету, мало отличается от быта любого другого человека и только очень мелкие транзакции при взаимодействии с окружением делают этот быт иным.
Тем не менее, нам показалось, что мы сможем помочь упростить реализацию этих самых мелких транзакций с бытовыми вещами и окружением.
В разрабатываемый прибор решили внедрить сразу несколько вещей, адаптация которых нам показалась возможной:
небольшая нейросеть, которая распознает объекты по списку;
прочитать и озвучить текст с камеры;
описать окружение, включая объекты в их взаимосвязи, а лучше и действия, происходящие на сделанном фото;
возможность интерактивного взаимодействия с прибором: задать вопрос по сделанному фото и получить осмысленный ответ.
автономная работа до 5-6 часов.
вывод звука на самом приборе.
отсутствие необходимости в настройке со смартфона, то есть полная автономность прибора.

В прибор решили не включать следующий функционал:
распознавание лиц.
Как выяснилось экспериментальным путем, детекция лиц, хотя и работает на относительно больших расстояниях - до 10 метров, распознавание же самих лиц в этом плане не так успешно. Освещение, движения распознаваемого делают свое дело. Да и само по себе распознавание лиц не так востребовано на таких коротких дистанциях.
определение расстояний до объектов.
Даже несмотря на техническую сложность детекции правильных расстояний, сам процесс ориентирования в этой части сугубо индивидуален. Раз уж упомянули о технических сложностях здесь, то вот несколько. Если брать детектор от той же нейросети yolo, то задача заключается в определении размеров пикселей bbox объекта по высоте на фото. Это несложно, если объект помещается на фото. Но если в кадр попала часть объекта ?
Еще одна задача, которая, кажется может быть решена внедрением ик датчика расстояния - узкий луч самого дальномера. Как выяснилось, луч поглощается, отражается или банально "проходит сквозь поручни" лестницы, давая неверное представление о расстоянии до нее.
прочие датчики, а также дополнительные мк. В начале были даже идеи устанавливать мини-лидар для ориентации в пространстве, но от этого отказались. Несмотря на то, что лидар элегантно смотрелся на запястье и его сложно было отличить от наручных часов, нести руку строго горизонтально, чтобы slam алгоритм мог эффективно работать, задача не для живого человека. Также "пошли под нож" варианты датчиков, которые "красиво смотрятся на роботах": уз-датчики, ик-датчики, несмотря на их кажущуюся ценовую и интеграционную привлекательность.
алгоритмы навигации в каком-либо виде. Попытки "затолкать slam" и иные интересные вещи пока не дали реальных эффективных результатов. И дело даже не в мощности используемого железа, хотя и в нем тоже. Как выяснилось, то, что неплохо работает на роботах, не работает на людях. Но об этом уже было в предыдущем пункте.

Полную начинку перечислять не будем, так как модель защищена патентом, но в общих чертах все выглядит так.
Мини-пк, где размещен весь софт, а также "сопутствующие" модули:
мини-экран, на который выводятся пункты меню. Как ни странно, настолько маленький, что даже человеку с единицей по зрению сложно на нем все разглядеть. Но прелесть данного мини-экрана в том, что на нем разведены джойстик и пара-тройка кнопок навигации. И любые манипуляции дублируются голосом с самого прибора.
мини-динамики, звука которых оказалось достаточно, чтобы озвучить анализ схемы метро в вагоне подземки.
модули контроля заряда батареи и сама батарея. Как ранее упоминалось, 5-6 часов работы прибор выдерживает, но есть идеи, в каком направлении еще можно поработать, чтобы продлить это время.
камера с адаптивным автофокусом. При тестировании целой батареи камер, выбрали именно ту, которая сможет прочитать инструкцию к лекарствам и относительно неплохо "видит в темноте".
радиатор. Это отдельная большая, больная тема. Охладить прибор при активном использовании - непростая задача. Вдвойне непростая, если охлаждение пассивное. Для этого было предпринято несколько "шагов эффективности", так их назовем, как со стороны железной части, так и со стороны софта.

Здесь пункты будут немного перекликаться с теми задачами, которые было задуманы, так как на их решение и был направлен вектор разработки.
небольшая нейросеть, которая распознает объекты по списку.
Количество объектов детекции-распознавания-озвучивания превышает в разы стандартный список yolo. И здесь секрета делать не будем, за основу была взята именно эта архитектура. Она неплохо показала себя на edge-устройствах как в "сыром" виде, так и после оптимизаций самой модели. Скорость распознавания составляет 200-300 мс + время озвучивания предмета. Время озвучивания может варьироваться в зависимости от выбранной пользователем скорости произношения. Всего на приборе предусмотрено две скорости: нормально и быстро. Практика показала, что чаще используют режим "быстро". Он отлично подходит для детекции объектов, а вот с распознаванием текстов иногда бывают проблемы.
Добавили также определение расположения объекта в кадре: слева, справа или по центру.
Среди объектов есть полезные для целевой аудитории: двери, ступени, лестницы. Но полноценно ходить с прибором, как ранее уже обозначалось, к сожалению, нельзя.
прочитать и озвучить текст с камеры.
Здесь мы не стали "мудрствовать лукаво" и решили просто прикрутить API от какой-либо мощной компании, куда бы улетала наша снятая с камеры картинка. Это давало лучшие результаты как по скорости обработки, так и по качеству. Но, к сожалению, выяснилось, что возможности API были ограничены по сроку - 1 год, потом "какая-либо мощная" компания свернула благотворительность. А потом еще и добавились сложности с доступом по API из страны. Проблема какое-то время решалось внедрением vpn на самом мини-пк, но потом и это перестало работать.
Почему зарубежное API ?
Как ни странно, зарубежные сервисы были дешевле местного ПО из расчета токены-на-рубли. А уж изначально API вообще было бесплатным!
В итоге нам пришлось "пересесть" на местные отечественные аналоги API по распознаванию текста, но отказаться от синтеза речи по API. Это получалось слишком дорого.
Кроме того, со временем мы добавили локальное распознавание текста, прямо на приборе. Работает оно дольше и хуже онлайн варианта, но "таков путь" автономности.
описание окружения, включая объекты в их взаимосвязи.
Этот сценарий работы прибора пошел также по пути использования зарубежного API. И все также отлично работало до определенного момента, так как предоставлялось зарубежным гигантом бесплатно. VLM модель галлюцинировала, иногда сваливалась в цикл повторения уже озвученного. Но в целом все отрабатывало неплохо - пользователь получал картинку-представление того, на что он направил камеру. И это описание получалось достаточно подробным вплоть до того, что узнавалось "чьих кистей эта работа"(С), при попадании в кадр известной картины.
В целевой среде этот процесс в целом называется тифлокомментирование. Описание происходящего. И это у прибора неплохо получалось.
Однако и эта история с бесплатным API закончилась, как и любая другая история, с чем-то бесплатным. В один прекрасный день - ошибка 500 и поиски другого сервиса.
У отечественных компаний есть доступ к VLM моделям и работает он не хуже зарубежных. Но доступ далеко не бесплатный и сам прибор вообще перестает быть относительно бюджетным.
Поэтому, как временное решение, сервера разместили на своих мощностях, используя сильно квантованные модели. Скорость упала, но описательная часть работы сценария не сильно пострадала. Хотя это субъективное мнение.
возможность интерактивного взаимодействия с прибором: задать вопрос по сделанному фото и получить осмысленный ответ.
Здесь режим работы во многом перекликается с предыдущим за одним исключением. Если хочется что-то узнать поподробнее, а не просто получить описательную часть фото, можно прямо голосом, прямо в прибор задать вопрос.
Этот вариант поведения придает неплохое ускорение в плане взаимодействия с прибором. Не нужно слушать все, что есть на фото, можно сразу спросить конкретные вещи.
В технической части все также - все та же VLM модель отвечает пользователю. Но в этот раз по промпту.
Самое сложное в реализации, как оказалось, это не перевести речь пользователя в текст, для последующей передачи модели. А режим переключения из воспроизведения звука в его запись. На bluetooth.
Почему на bluetooth ? Здесь опять же "включается" пользовательский опыт, который гласит: лучше наушников - только bluetooth наушники. А лучше bluetooth наушников - наушники с костной проводимостью. Для людей с ограничением по зрению крайне важно, чтобы уши не были ничем заняты. Поэтому разрываясь между наушником в одно ухо, проводным вариантом и с костной проводимостью, мы выбрали последний.
Визуально наушники расположены перед ушной раковиной и не закрывают ее. А встроенный микрофон в наушники - вообще подарок. Только вот переключить bluetooth микрофон в запись на мини-пк, оказалось нетривиальной задачей, которую также удалось решить.
К слову, качество записи звука с bluetooth устройства для целей распознавания получается лучше, чем аналогичная с микрофона на приборе.
Про автономную работу и ее продолжительность на приборе рассказывать не будем, здесь мало интересного, кроме того, что минималистичный датчик контролирует заряд батареи, а прибор голосом предупреждает заранее о полной разрядке прибора.
Остановимся на пункте об отсутствии необходимости в настройке со смартфона.
полная автономность в настройках. Данный шаг о переходе в настройке только силами самого прибора был непростым. И сложности данной реализации стали проявлять себя незамедлительно. Если с настройкой скорости произнесения слов были все более-менее понятно - с прибора это не вызывало трудностей, то настройки bluetooth и wifi стали настоящим вызовом для разработчика.
Например, как решить задачу выбора сети wifi или bluetooth из числа доступных ?
Проговаривание всех доступных сетей - настоящий кошмар.
Как вводить символы клавиатуры на приборе, когда у тебя только джойстик и пара клавиш?
Пришлось делать "карусель" символов, листая которую можно по озвученным буквам алфавита, ввести последовательность, составляющую пароль wifi.
Сюда добавляется еще то, что озвучивание самих пунктов меню через синтез речи напрямую - утомительно долго даже в миллисекундах.
Погоня за миниатюризацией устройства завела нас определенный логический тупик. Чем меньше хотелось сделать устройство, тем больше мы упирались в необходимость как-то бороться с выделяемым теплом. А тепло выделялось с избытком. В какой-то момент хотелось отказаться от пассивного варианта охлаждения и добиться меньших размеров и меньшего веса.
Но памятуя принцип: "что вращается - обязательно сломается", мы в итоге отказались от затеи с активным вентилятором на приборе. И это добавило ему вес. Не только в наших глазах, но и руках тех, кто его держал потом на испытаниях.
В подзаголовке также было упомянуто о портах. Порты usb, через которое заряжается устройство пришлось укреплять несколько раз. Потребители, как оказалось, физически сильные люди и при постановке устройства на зарядку, не раз ломали порты. Беспроводная зарядка устройства пока только мечты.
Воодушевившись созданием первого MVP, мы устремили свой взор на бескрайние поля потенциальных потребителей, которые с нетерпением мечтали прикоснуться к нашему детищу. Так нам казалось.
Реальность встретила нас суровыми буднями во "Всероссийском обществе слепых", куда мы обратились с нашим изделием. Нас встретили настороженно скептически, в целом дружелюбно для отечественной реальности. Туда мы отдали наш прибор на тестирование и получение обратной связи в надежде, что наши труды будут оценены по достоинству.
Через некоторое время с нами связались и попросили провести демонстрацию возможностей, что мы с радостью организовали.
Но, то ли проверяющие уже видели что-то лучше на "горизонте событий", то ли прибор был не катастрофически быстр в своих размышлениях, то ли просто серая осенняя погода...
Нас ободряюще похлопали по плечу, провели демонстрацию иных занимательных устройств, кои пылились на полках за ненадобностью. Но "общий посыл" был следующий: вот уже есть приложения на мобильном телефоне, зачем нам больше. На этом прогресс внедрения затормозился...
Но мы не сдались и провели самостоятельные тестирования со слепыми пользователями, которых нашли при переписке. Они обозначили позитивную обратную связь, которая нас слегка ободрила и поддержала.
Сначала о ложке дегтя, чтобы потом о светлом будущем.
Никто не спорит, что есть неплохо поддерживаемые приложения, одно из которых на слуху - "Be my eyes". Для тех, кто с ним ни разу не сталкивался, как и автор до поры до времени, коротко о нем.
Приложение предоставляет услуги описания фото, сделанного через телефон. По сути наш сценарий на устройстве - "описание сцены". Возможности интерактивного взаимодействия с фото нет, то есть устно не уточнить какие-то детали. Есть также видеосвязь с живым человеком-волонтером, которому можно позвонить в приложении и он бесплатно поможет.
Все эти моменты, бесспорно, несут положительную окраску, придают удобство. Но, в то же время, являются уязвимыми местами: потребитель расплачивается своей приватностью.
Автор тестировал видеосвязь, но при установлении соединения молчал, имитируя случайный звонок. На другом конце провода тоже молчали. Потом диалог состоялся.
Что касается функции описания фото - она работает быстро, но только при наличии интернета. Кроме того, вопрос с приватностью тоже хромает - фото улетают на зарубежные сервера, которые пока работают. Надолго ли?
Но как говорится, "что на зеркало пенять, коли своя р... крива". Прибор пока далек от идеала. Ответы по API прилетают не так быстро как хотелось бы, времени работы 5-6 часов кому-то маловато, в жаркий летний день, радиатор на приборе выдыхается. Серверы с VQA моделями потока желающих не выдержат, пока только небольшие группы. Так что, все еще впереди.
Спасибо за внимание.
Немного видео напоследок - https://rutube.ru/video/155f1cb45a2421a5f46590329d728700/
Источник


