ОГЛЯД НАВІГАЦІЙНИХ СИСТЕМ ДЛЯ ЛЮДЕЙ З ВАДАМИ ЗОРУ ТА ОБҐРУНТУВАННЯ ВИБОРУ АРХІТЕКТУРИ ВЛАСНОГО НАВІГАЦІЙНОГО РІШЕННЯ
21.09.2022 15:36
[1. Information systems and technologies]
Author: Хапченко Олександр Вікторович, аспірант кафедри конструювання електронно-обчислювальної апаратури Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського»
За оцінками ВООЗ у всьому світі понад 285 мільйонів людей мають вади зору, із яких 39 мільйонів є сліпими, а 246 мільйонів мають слабкий зір [1]. Однією із найбільших проблем, з якою вони стикаються, є неможливість або наявність труднощів самостійно орієнтуватися. Останніми дослідженнями, проведеними у Великобританії, встановлено, що майже половина людей із вадами зору хотіла б частіше залишати свій будинок [2]. Також наявна проблема в мобільності та компактності пристрою, який би зміг їм в цьому допомогти.
На сьогоднішній день створено велику кількість навігаційних пристроїв для допомоги пересуванню людям з вадами зору на маршрутах у приміщеннях та на відкритому повітрі.
Початкові проекти були зосереджені на знаходженні перешкод і стали основою для розроблення численних пристроїв з мінімальними вагою, споживанням, вартістю, високою надійністю тощо. Однак, когнітивне навантаження на незрячого та слабозорого користувача спонукало дослідників до створення навігаційних систем, які спрощують отримання інформації.
Із поширенням портативних пристроїв пріоритети були віддані рішенням, які не вимагають безперервного контакту з підлогою. На це вплинула поява глобальних навігаційних супутникових систем (GNSS) і, зокрема, глобальної системи позиціонування (GPS), що зробило великий вплив на розвиток тифлотехнічних пристроїв. Особливо враховуючи сьогоднішній день, коли майже всі користувачі з вадами зору мають смартфони з достатніми обчислювальними потужностями. Також варто врахувати попит використання мобільних телефонів і комп'ютерів. Ця тенденція також відображається в створенні таких стандартів і пристроїв як сумісної зі смартфонами інфраструктури лондонського WayFindr [3] або барселонського NaviLens [4].
В основу технології реалізації стандарту Wayfindr покладено комбінацію Bluetooth-маяків, програмних додатків смартфона та навушників для керування рухом людей з вадами зору. Програмний додаток смартфона збирає сигнали трьох найближчих маяків, фізичні місця яких вже запрограмовані в додатку як шляхові реперні точки та порівнюючи їх рівні тріангулює розташування користувача відносно точок маршруту, передаючи йому голосові навігаційні інструкції через навушники.
Альтернативою Wayfindr є створена технологія NaviLens, яка допомагає людям із вадами зору орієнтуватися у просторі та слухати рідну мову. Її основу складає набір кольорових піксельних тегів (схожих на QR-коди) і супутній додаток для смартфона.
Перед вибором стеку технологій, які будуть використовуватися у власному розроблюваному тифлотехнічному навігаційному рішенні, необхідно визначитися з критеріями для його створення.
Вибір конструкції та функціональних можливостей пристрою зумовлюють наступні фактори:
● кінцева ціна;
● легкість, зручність, зрозумілість та звичність використання для кінцевого користувача;
● час безперервної роботи.
Є стереотип, що незрячі користуються лише тростинами і не користуються телефоном чи комп’ютером. Але оскільки є багато технологічних апробованих рішень для незрячих і деякі з рішень використовують смартфони, а, отже, незрячі використовують їх більше, ніж здається спочатку. Використання смартфонів обумовлено, насамперед, наявністю технологій для озвучування всього тексту на екрані. В Iphone – це VoiceOver [5], в Android – TalkBack [6]. Натомість, на комп’ютерах на базі операційної системи Windows треба завантажити програму, яка буде все озвучуватиме і для цього можна скористатися безкоштовною "NVDA"[7] або ж платною "Jobs for Windows"[8].
Також варто не забувати, що є реалізації на базі смартфону, які є у більшості користувачів. Звісно, якщо смартфон розрядиться, то його треба буде так само, як і інший “розумний” пристрій зарядити. Однак, смартфон має з цим менше проблем, особливо якщо брати пристрої з великою ємністю акумулятору.
Щодо архітектури додатку, то заслуговує на увагу, насамперед, веб застосунок / веб сайт SPA (Single Page Application, односторінковий застосунок), який вміщується на одній сторінці з метою надати користувачу з вадами зору досвід, близький до користування ним настільною програмою. Його перевага полягає в тому, що він не потребує скачування і встановлення, завантажуючи цим пам’ять смартфону. Також не буде необхідності користувачу скачувати оновлення, особливо критичні, адже все це буде відбуватися автоматично при оновленні сайту.
Таким чином, зазначене вище обумовлює вибір для застосування у власному тифлотехнічному навігаційному рішенні саме смартфону, а також використання інтернет браузеру, в якому працює лише JavaScript [9]. Наявна також велика кількість мов програмування, на яких можна написати код і скомпілювати його в JavaScript, наприклад, для С/С++ є такі компілятори, як Emscripten, Cheerp, maja, Clue та інші [10].
Найпопулярнішою мовою, яка компілюється в JavaScript, є TypeScript [11]. Ця мова майже не відрізняється від JavaScript, але вона дозволила вирішити ключову проблему, пов’язану з типізацією даних, через яку було важко підтримувати довготривало проект і розуміти окремі сутності в коді, наприклад, що саме приходить з серверу чи що туди відправляється.
Приклад JavaScript функції, яка приймає аргумент text і виводить його в консоль:
Приклад аналогічної функції на TypeScript:
Змін в TypeScript у порівнянні з JavaScript зовсім не багато, але вони необхідні, саме тому TypeScript використовує переважна кількість комерційних проектів та великих компаній.
Ще однією перевагою мов TypeScript та JavaScript є те, що їх можна буде використовувати не лише для Frontend (інтерфейс сайту для користувача), а й для Backend (серверної частини), використовуючи NodeJS [12].
Для безпечної навігації користувача з вадами зору також є потреба у відслідковуванні статичних та динамічних перешкод на його шляху. Статичні перешкоди, наприклад, сходи, огорожі тощо відносно легко виявляти за допомогою записів про їх знаходження в спільних базах даних. Динамічні ж елементи, наприклад, автівки, пішоходи тощо повинні визначатися за допомогою датчиків. Достоїнством саме смартфона є наявність у нього камери, яка може ефективно використовуватись для визначення динамічних елементів. Поява комп’ютерного зору дозволила надавати користувачам з вадами зору також дієві підказки. Такі пристрої можуть знаходити певні картинки, пейзажі, рухомі об’єкти з їх ідентифікацією і надавати по ним рекомендації та коментарі, так як це зроблено в NaviLens [4].
Для реалізації програмного забезпечення для проектів, що використовують комп'ютерний зір, існує велика кількість різноманітних бібліотек. Серед них найпопулярнішими є:
● OpenCV (Open Source Computer Vision Library) [13] — бібліотека алгоритмів комп'ютерного зору, обробки зображень та чисельних алгоритмів загального призначення. Реалізована мовою C/C++, також розробляється для Python, Java, JavaScript, PHP, C#, Ruby, Matlab, Lua та інших мов.
● PCL (Point Cloud Library) [14] — великомасштабних відкритий проект для обробки 2D/3D зображень та хмар точок. Платформа PCL містить безліч алгоритмів, включаючи фільтрацію, оцінку характеристик, реконструкцію поверхні, реєстрацію, підбір моделі та сегментацію.
● ROS (Robot Operating System) [15] — платформа розробки для роботів. Вона є набором інструментів, бібліотек та угод, які спрощують розробки складних та ефективних програм для управління багатьма видами роботів.
● MATLAB [16] — високорівнева мова та інтерактивне середовище для програмування, чисельних розрахунків та візуалізації результатів. За допомогою MATLAB можна аналізувати дані, розробляти алгоритми, створювати моделі та додатки.
● CUDA [17] (Compute Unified Device Architecture) — програмно-апаратна архітектура паралельних обчислень, яка дозволяє суттєво збільшити обчислювальну продуктивність завдяки використанню графічних процесорів фірми Nvidia.
З наведених вище фреймворків виділяється OpenCV, оскільки в нього є більш стабільна веб версія — OpenCV.js [18]. Також його перевагами є доступність та апробованість багатьма фахівцями у галузі комп’ютерного зору. Також досить важливим є те, що він є “open source” проектом з великою аудиторією людей, які його розвивають, удосконалюють і вишукують помилки. Тому створювати, підтримувати та оновлювати додатки на його базі в подальшому буде набагато простіше у порівнянні з іншими переліченими вище інструментами, що і обумовило його вибір для власного розроблюваного рішення.
Література:
1. Vision Loss Expert Group of the Global Burden of Disease Study. Causes of blindness and vision impairment in 2020 and trends over 30 years: evaluating the prevalence of avoidable blindness in relation to “VISION 2020: the Right to Sight”. Lancet Global Health 2020. DOI:10.1016/S2214-109X(20)30489-7
2. John Slade and Rose Edwards. My Voice 2015: The views and experiences of blind and partially sighted people in the UK. London, 2015.
3. Open Standard for Audio-based Wayfinding. (2018). URL: http://www.wayfindr.net/wp-content/uploads/2018/07/Wayfindr-Open-Standard-Rec-2.0.pdf
4. NaviLens. Technology for the visually impaired. URL: https://www.navilens.com/
5. VoiceOver. URL: https://support.apple.com/uk-ua/guide/iphone/iph3e2e415f/ios
6. TalkBack. URL: https://support.google.com/accessibility/android/answer/6007100?hl=ru
7. NVDA. URL: https://nvda.ru/
8. Jobs for Windows. URL: https://docs.42gears.com/suremdm/docs/SureMDM/JobsforWindows.html
9. JavaScript. URL: https://www.javascript.com/
10. list-of-languages-that-compile-to-js. URL: https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js#cc
11. TypeScript. URL: https://www.typescriptlang.org/
12. NodeJS. URL: https://nodejs.org/en/
13. OpenCV. URL: https://opencv.org/
14. PCL. URL: https://pointclouds.org/
15. ROS. URL: https://www.ros.org/
16. MATLAB. URL: https://www.mathworks.com/products/matlab.html
17. CUDA. URL: https://developer.nvidia.com/cuda-zone
18. OpenCV.js. URL: https://docs.opencv.org/3.4/d5/d10/tutorial_js_root.html
_______________
Науковий керівник: Лисенко Олександр Mиколайович, доктор технічних наук, професор, завідувач кафедри конструювання електронно-обчислювальної апаратури Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського»