Российская ИТ-компания «Криптонит» продолжает развивать технологии дистанционного мониторинга показателей жизнедеятельности человека. В своей новой работе специалист отдела перспективных исследований компании «Криптонит» Алексей Протопопов представил бесконтактный метод определения частоты дыхательных движений (ЧДД) с высокой точностью. В этом методе применяется обычная веб-камера и алгоритм, использующий нейросеть на одном из этапов обработки видеосигнала.
Традиционные способы измерения частоты дыхания требуют физического контакта с пациентом. Например, для этого применяют нагрудный ремень или датчики у носа. Это не всегда удобно, особенно когда важны скорость или свобода движений. Существующие бесконтактные подходы либо работают исключительно в идеальных условиях, либо дают значительную погрешность — до 13%, что вызвано недостаточной способностью отфильтровывать естественные движения человека.
Метод Алексея Протопопова решает эту проблему. В его основе лежит сегментация изображения тела нейросетью и продвинутая фильтрация помех. Метод протестировали на видеозаписях 14 добровольцев: 8 мужчин и 6 женщин в возрасте от 20 до 65 лет. Общая продолжительность записей превысила 2,5 часа.
Принцип работы
В основе метода лежит анализ естественного смещения грудной клетки при вдохе и выдохе. Главная сложность — выделить именно дыхательные движения на фоне другой физической активности: разговора, жестов, поворотов и смены позы.
Для решения этой задачи в предложенном методе нейронная сеть MediaPipe выделяет на каждом кадре области груди и живота. Тем самым она создаёт «маску» для анализа изображения. Этот этап называется «сегментация». Он самый ресурсоёмкий и занимает более 90% времени обработки. Сегментация позволяет алгоритму самостоятельно определять часть кадра, по которой нужно проводить измерения, поэтому смена позы почти не влияет на результат.
На следующем этапе для анализа перемещений между кадрами используется метод Фарнебэка, который строит карту векторов движения. Каждому пикселю присваивается двухмерный вектор, соответствующий перемещению объектов в его окрестности между предыдущим и текущим кадром. Поскольку дыхание вызывает в основном вертикальные смещения, алгоритм отфильтровывает всё, что движется иначе, — жесты рук, повороты головы и другие «недыхательные» движения.
Полученный сигнал — это временной ряд, отражающий движение грудной клетки. Его очищают от шумов с помощью фильтров. Сначала сигнал сглаживается путём усреднения по скользящему окну шириной 0,65 секунд. Затем к нему применяется фильтр низких частот Баттерворта с частотой среза 0,496 Гц. Такой подход удаляет большую часть шума и не затрагивает данные, связанные с дыханием.
Отфильтрованный сигнал нормализуется и подаётся в функцию find_peaks из библиотеки SciPy. Функция ищет пики и определяет, соответствуют ли они вдохам и выдохам. Оптимальные параметры поиска пиков подбирались экспериментально. На финальном этапе алгоритм определяет промежутки времени между найденными пиками и по ним вычисляет частоту дыхания.
Точность в условиях свободы
Для проверки метода было важно создать естественные условия. Такие, которые позволяют испытуемым абстрагироваться от контроля своего дыхания и удерживания позы перед камерой. Поэтому добровольцы во время записи решали головоломку на компьютере. Эта задача требовала сфокусировать внимание и обеспечивала естественный ритм дыхания. При этом испытуемые могли разговаривать и двигаться как угодно. Единственным требованием было не покидать поле зрения камеры.
Эталонные данные собирались с помощью традиционных механических датчиков. Сравнение показало, что алгоритм успешно справляется с помехами: средняя ошибка составила менее 5%, что значительно лучше предыдущих аналогов.

В настоящее время метод Алексея Протопопова работает с небольшой задержкой из-за ресурсоёмкого этапа сегментации изображений. Дальнейшая оптимизация позволит приблизить его к режиму реального времени. Единственным ограничением останется этап накопления статистики. Он требуется при любых способах измерения ЧДД и не может быть преодолён техническими методами, так как связан с физиологическими особенностями. Поскольку в обычных условиях человек совершает 12 – 15 дыхательных движений в минуту, требуется не менее 30 секунд для точного измерения ЧДД.
Перспективы
Предложенный метод представляет интерес для телемедицины. Его можно использовать как отдельно, так и в паре с представленной ранее системой измерения пульса. Вместе они представляют собой доступный и точный инструмент для комплексного дистанционного контроля состояния человека. Оба метода используют обычную веб-камеру, применяют нейронные сети и сложную фильтрацию сигнала для работы в естественных условиях. Их сочетание позволяет одновременно контролировать сердечный ритм и частоту дыхан��я — два ключевых показателя, меняющихся при стрессе, усталости или заболеваниях. Это создаёт доступную альтернативу профессиональному медоборудованию, открывает новые возможности для профилактической медицины и дистанционного наблюдения.
Основные сферы применения:
Телемедицина: быстрая оценка жизненно важных показателей во время онлайн-консультаций.
Мониторинг водителей и операторов: выявление усталости, сонливости и уровня стресса по изменениям пульса и дыхания.
Изолированные профессии: самодиагностика для космонавтов, полярников, работников труднодоступных станций и удалённых объектов.
Общественные места: скрининг в залах ожидания аэропортов, вокзалов и других местах скопления людей для выявления лиц с признаками респираторных заболеваний или в состоянии стресса.
Подробнее читайте в научной статье Алексея Протопопова (АО НПК «Криптонит») «Надёжный метод измерения частоты дыхательных движений с помощью камеры».
