Трибуна Илья Лесун
1 517

Deep sign — универсальная технология распознавания жестов

Переводит звук в жестовый язык и наоборот.

В закладки

Запуск

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

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

«Как в эпоху цифровой революции и технического прогресса нет такого очевидного решения, как автоматизированный сурдопереводчик?» — спросили мы себя и приступили к работе.

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

Затем следовало долгое погружение в предметную область: консультации с узкими специалистами, определение актуальности продукта в рамках тематических заседаний с представителями ЮНИСЕФ и Института инклюзивного образования, воркшопы по изучению жестового языка, осознание его семантики и специфики, обзор рынка.

Команда

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

Сегодня — это сплочённый коллектив мотивированных профессионалов, разработчиков и архитекторов программного обеспечения, специалистов по компьютерному зрению, машинному обучению, глубокому изучению, 2D- и 3D-дизайнеров и аниматоров, бизнес- и узкоспециальных консультантов, создающих собственные технологические решения в сегменте «дополненная и виртуальная реальности для мобильных платформ».

Продукт

Перечень задач расширялся по мере углубления в отрасль. Очевидной оказалась потребность в распознавании жестов рук (hand gestures), движений тела и позы (body movements & pose), движений пальцев (finger gestures), контекстном анализе. Разработка велась параллельно в двух направлениях: голос — текст — жест — текст — голос, что обеспечивало полноценный двунаправленный перевод от глухого человека к слышащему и обратно и качественно отличало наш продукт от предлагаемых решений на современном рынке.

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

Пилотная версия «На приёме у терапевта» была разработана в течение девяти месяцев. За это время был собран DataSet жестов, согласован с медиками скрипт диалогов, разработаны дизайн интерфейсов, модель переводчика, анимация жестов и алгоритмы их распознавания.

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

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

Дополнительные возможности

Если кратко, то в процессе создания продукта был выведен ряд технологических решений и алгоритмов, базирующихся на наиболее эффективных современных подходах и моделях компьютерного зрения и глубокого обучения, сконцентрированных вокруг камеры мобильного устройства (или любой веб-камеры) как основного «перцептивного центра».

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

Если же говорить о самой технологии, то Deep Sign — это нейросетевое решение, которое построено на собственной архитектуре, включающее себя три основных блока: feature extractor, action detector и action recogniser. Также было использована методология one-shot learning (обучение по минимальному датасету), что позволило быстро получить результаты.

Конечные метрики технологии в обычной RGB-камере:

  • 87% точность распознавания;

  • 30 кадров в секунду (fps);

  • 1500 объём датасета;

  • 13 распознаваемых жеста.

Ещё мы использовали transfer learning, что на выходе позволяет использовать технологию в разные предметные области, только меняя датасет.

Продвижение

Значимые каналы продвижения как продукта, так и технологии мы видим в международных выставках, конференциях, семинарах (в подтверждение этих слов — призовое место уже на первой в нашей практике конференции EMERGE 2018 — мы стали победителями в направлении Data и Ai и получили интересные предложения от инвесторов и бизнес-ангелов).

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

Монетизация

Таким образом, варианты развития укладываются в несколько моделей: b2b, b2g, SaaS.

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

Планы

Ещё в начале пути было очевидно, что детекция и распознавание движений востребованы во многих сферах, но особенно актуальны они в медицине, образовании, безопасности. Сегодня мы смотрим в этих направлениях и ведём R&D, но это уже совсем другая история, о которой, возможно, будет наша следующая статья.

P.S. Статья подготовлена Антониной Судиловской, Product Manager ARRM.io.

#стартапы

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Илья Лесун", "author_type": "self", "tags": ["\u0441\u0442\u0430\u0440\u0442\u0430\u043f\u044b"], "comments": 9, "likes": 31, "favorites": 1, "is_advertisement": false, "subsite_label": "tribuna", "id": 38876, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 38876, "author_id": 89854, "diff_limit": 1000, "urls": {"diff":"\/comments\/38876\/get","add":"\/comments\/38876\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/38876"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116 }

9 комментариев 9 комм.

Популярные

По порядку

Написать комментарий...
3

Друзья, а пункт целевая аудитория? Кто эти люди?

Ответить
1

Никто. На самих глухонемых за перевод денег не заработать, поэтому разработчики ориентированы на бизнес - "варианты развития укладываются в несколько моделей: b2b, b2g, SaaS". Поэтому же и сконцентрировались на темах «Консультация в банке», «Консультация в страховой компании».

Ответить
0

Спасибо, опередили!)

Ответить
0

а больной не может набрать эти сообщения в чате мобильного?

Ответить
5

Добрый день! Безусловно может. Но, к сожалению, такая коммуникация не всегда оказывается продуктивной. Актуальность медицинского сектора была сформулирована именно носителями жестового языка, так как
1) не всегда доступна мед. лексика,
2) врач может не допустить на прием неслышащего человека без сурдопереводчика.

Ответить
0

Там на видео красивая девушка - это вы? Здорово, что ещё и большая умница! ))

Ответить
1

Спасибо за комплемент

Ответить
0

Не, это не комплимент, а реальность ))

Ответить
2

Парень палехче

Ответить

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Хакеры смогли обойти двухфакторную
авторизацию с помощью уговоров
Подписаться на push-уведомления