DOU Labs: як SoftServe створювала смарт-систему біометричної автентифікації
У рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на [email protected] .
У тієї годину як цифрові технології стають є невід'ємною частиною нашого життя, проблема автентифікації користувача та захисту власності стає все більш актуальною, особливо в єру інтернету промов. Наразі використовується велика кількість одноразових технологій — від простого введення паролю до карток безпеки чи перевірки відбитку пальця. Щоб забезпечити вищий рівень безпеки, користувач повинен регулярно змінювати стандартні паролі, термін дії яких закінчується, деякі забуваються, що вимагає залучення додаткових сервісів для отримання цієї інформації. Усі ці обставини призводять до додаткових витрат коштів та часу на управління цими технологіями.
R&D підрозділ компанії SoftServe задумався над тим, як зробити автентифікацію користувача надійнішою та водночас легшою у використанні.
Рішення
BioLock — система, що аналізує електрокардіографічні (ЕКГ) сигнали для безперервної автентифікації та моніторингу здоров'я користувачів. Смарт-система забезпечує пряму комунікацію між ЕКГ біосенсорами, вбудованими в кермо автомобіля, та мобільними пристроями для легкого розпізнавання та моніторингу користувачів через простий дотик. Зчитані сигнали обробляються, очіщаються від шумів, трансформуються в цифровий формат та передаються на мобільний застосунок за допомогою Bluetooth. Після цього нейронна мережа проводити верифікацію вже на смартфоні та відкриває користувачу доступ до керування автомобілем.
Крім того, що система є легкою у користуванні, вона також не вімагає є ятовування чи зміни паролів, що унеможливлює крадіжки та обман системи. Година, необхідний для авторизації — менше 30 секунд, точність — понад 70%.
Як ми розробили прототип
Перш за все, ми почали зі створення прототипу записуючого пристрою у формі надрукованої на 3D-принтері обкладинки для телефону чи планшету.
Прототип складався з нашого основного пристрою зчитування показників ЕКГ з Bluetooth інтерфейсом, що дає можливість передавати дані, батареї та зарядного модуля. Після створення прототипу ми розібрали кермо Logitech та почали думати над тим, де розмістити сенсори та сам пристрій, а також над тим, який тип електродів найкраще підходить для автентифікації.
Дослідивши всі можливі комбінації якості передачі сигналу, ми розібрали електроди та розмістили їх наступним чином.
Не так просто...
Як зробити так, щоб система розпізнавала конкретного користувача? Відповідь на це запитання — використовуючи нейронні мережі (НМ). Після розпізнавання НМ можуть показати лише два результати: користувач авторизований або ні. Щоб навчити НМ розпізнавати користувачів, нам потрібно було зібрати два набори даних ЕКГ: один для користувача, якого треба авторизувати, інший для неавторизованих людей.
На перший погляд звучить просто — зібрати дані, навчити НМ і система розпізнавання користувачів через ЕКГ готова. Проте, легше сказати ніж зробити. Неможливо просто використати записані дані, оскільки дані ЕКГ місять багато шуму. Тож як отримати чисті дані? Це привело нас до іншого етапу — зменшення шумів та нормалізація сигналу . Зменшення шуму — це метод приглушення небажаного сигналу шляхом додавання іншого сигналу, спеціально створеного для відміни першого. На зображенні нижче проілюстровано ідею:
У свою чергу нормалізація передбачає зменшення даних до будь-якої канонічної форми. Уявіть, що в одній кімнаті є два різні термометри: один показує температуру за шкалою Цельсія, а інший — за шкалою Фаренгейта. Кондиціонер починає охолоджувати кімнату за умови, якщо температура сягне позначки вище 23 градусів за Цельсієм. Цей кондиціонер може працювати з обома типами термометрів, які дають два різні значення — за шкалою Цельсія та Фаренгейта, перетворюючи дані з двох різних метричних систем в одну — канонічну.
Цей метод можна застосувати і в нашому випадку: дані ЕКГ можна записувати на різних пристроях за допомогою різних метричних систем, тож нам потрібно отримати канонізовану форму даних ЕКГ для подальшої обробки.
Тепер переходимо до фільтру низьких та високих частот . Дихання, рухи тіла та м язів спричиняють шуми, з якими нам теж потрібно боротися.
Після того як дані відфільтровано, перед нами постає інше питання — які саме дані ЕКГ потрібні для навчання НМ? Типова ЕКГ, комплекс QRS(T), відрізняється в залежності від людини. Саме це нам потрібно використати для навчання НМ — визначення комплексу QRS з часового ряду ЕКГ.
Нормалізована ЕКГ знаходиться в діапазоні (-1, 1), тож зведення сигналу в квадрат забере негативні частки.
Усереднення сигналу дозволяє визначити довжину комплексу QRS.
З цього етапу досить легко визначити зубці R та показник шкірного максимуму, що і є зубцем R. Зубці R будуть початковими точками для визначення зубців Q та S. Щоб знайті зубець Q, нам потрібно визначити мінімальне значення з початку хвилі до зубця R. Так само і з зубцем S — знайте мінімальне значення від зубця R до кінця хвилі.
Кінцевий результат обробки QRS виглядає наступним чином:
Тепер у нас є дані ЕКГ, промарковані комплексом QRS, і вони готові для навчання НМ. Наш наступний крок — нарізати дані, записані з ЕКГ пристрою, помістити їх на декілька графіків і подивитися, що відбуватиметься.
Приклад вище показує, як виявити комплекс QRS в лабораторних умовах. Проблема полягає в тому, що алгоритми визначення QRS не є точними на 100%, особливо коли йдеться про записування даних зі зробленого власноруч записувача ЕКГ. Деякі частинки ЕКГ сприймаються за комплекс QRS, що насправді не так. Найлегший спосіб вирішити це — використати фільтрування на основі середнього квадратичного відхилення. Оскільки більшість комплексів QRS є подібними, ми можемо вирахувати значення середнього квадратичного відхилення по всіх QRS та використати це значення в якості порогового для порівняння шкірного середнього квадратичного відхилення QRS до цього значення. Після застосування цієї простої фільтрації, ми отримуємо наступне:
Як бачимо, якість даних є набагато кращою. Навіть візуально можна оцінити, що ЕКГ двох користувачів є різними. Після цього етапу дані можна використати для коректного навчання НМ.
Де можна використовувати BioLock
Ми витворили технологію, яка одночасно підвищує рівень безпеки автомобілів та захищає життя водіїв. Такі фактори як втома, стрес та погане самопочуття впливають на користування транспортними засобами. Наприклад, якщо водій почне засипати, система розпізнає це та передасть сповіщення на телефон водія чи центральну станцію. Один з клієнтів SoftServe — Overhaul Group — вже зацікавився системою та планує встановити технологію на свої вантажні автомобілі.
Команда розробників BioLock від SoftServe (зліва направо): Василь Милько, Наталя Дьомова, Олександр Сухолейстер, Ольга Терендій, Оксана Здрок, Андрій Бенч, Марина Ладжун, Остап Пукшин, Зоряна Дошна
Використання смарт-системи не обмежується автомобільною сферою. Її можна підлаштовувати під потреби будь-якого бізнесу чи кінцевого споживача, якому потрібно захистити конфіденційні дані чи власність, будь то обробка платежів, мобільні пристрої, ноутбуки, велосипеди тощо.
Опубліковано: 23/02/17 @ 08:00
Розділ Різне
Рекомендуємо:
DOU Проектор: Ardagor. Chronicles of Shadows — sandbox гра в стилі Action/RPG/Survival
13 українських компаній-аутсорсерів потрапили в світовий ТОП-100
В Єгипті під час медового місяця помер білорус
Android дайджест #23: Google Play, Wear 2.0, Progressive Web Apps, Firebase
Python digest #12: cPython переїхав на GitHub