Разработчик из Москвы написал приложение, которое определяет пульс по селфи
Разработчик из Москвы, Кирилл Герасимов, выпустил бесплатное Android-приложение, которое измеряет пульс по лицу с достаточно высокой точностью.
Он долгое время занимался бегом и около года назад заинтересовался возможностями смартфона для помощи спортсменам-любителям.
Идея измерения пульса с помощью селфи-камеры показалась ему интересной. Несмотря на то, что в этой области работают целые исследовательские лаборатории из России, США, Канады и Китая – в открытом доступе подобных решений для Android не было. Поэтому он решил сделать такое приложение сам.
На данный момент к тестированию программы Facebeat ( https://play.google.com/store/apps/details?id=ki.facehrm ) присоединилось уже несколько тысяч пользователей. В основном приложение используется для контроля за своим состоянием. Но некоторые идут дальше: например, родители, измерившие с помощью Facebeat пульс спящего малыша.
Как это работает?
Множество мелких кровеносных сосудов на поверхности кожи слегка сужается и расширяется от биения сердца, немного изменяя цвет лица. Человеческий глаз этого не замечает, но камеры большинства смартфонов достаточно чувствительны, чтобы зафиксировать колебания. Используя эту информацию, алгоритмы обработки сигналов и машинного обучения могут определить пульс человека.
Для получения сигнала используется компьютерное зрение. После этого данные проходят через 6 фильтров, которые убирают шумы, компенсируют глобальные изменения в освещении и улучшают характеристики сигнала.
Далее к получившемуся сигналу применяется преобразование Фурье для получения спектра.
Спектр показывает, какие частотные компоненты (пульсации) содержатся в сигнале. В подавляющем большинстве случаев сердечный ритм человека оказывается самой сильной пульсацией.
На видео представлены спектры разных версий алгоритма. Чем выше график, тем большую амплитуду имеет соответствующая частота.
Можно заметить, что новая версия лучше выделяет пульс, более устойчива к шумам и движению в кадре.
Первые успехи
Несмотря на то, что первые работы о распознавании сердечного ритма через камеру были опубликованы еще в 2010 году (в статье MIT) – внедрение алгоритма на Android затруднялось слабыми техническими характеристиками смартфонов. Часть телефонов просто не справлялась с нагрузкой, не успевая обработать кадр до того, как с камеры приходил следующий. Поэтому основная работа велась именно над оптимизацией алгоритма.
В настоящее время проблема решена. На более мощных устройствах добавлена функция точного распознавания контуров лица в режиме реального времени, на бюджетных моделях для экономии ресурсов используется статическая маска. На данный момент приложение работает практически на любом телефоне, а среднее время измерения снизилось с 22 до 14 секунд.