Опытно-конструкторский проект: система компьютерного зрения для пожилых людей, распознающая падение

Система видеонаблюдения для пожилых людей. Распознает, когда человек падает, и позволяет ему вызвать медицинскую помощь. Устанавливается дома и работает даже в темноте.
Для пожилых людей падения могут быть чрезвычайно опасны. Это часто происходит из-за внезапных патологий, таких как инсульт, эпилептический припадок или сердечный приступ. Проблема особенно актуальна для тех, кто живет один: если вы упадете, до прибытия помощи может пройти довольно много времени.

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

Запрос

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

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

  • Распознавать позу человека (когда он сидит, идет, ложится, падает);
  • Распознавать человека в кадре;
  • Распознавать падение;
  • Различать, когда человек падает, а когда ложится намеренно.

Решение

Из-за сложности проекта мы предложили заказчику сотрудничество по модели опытно-конструкторской работы. Она подразумевает научные изыскания и оценку реализуемости проекта. Мы провели тщательное исследование в области компьютерного зрения и машинного обучения и сейчас работаем над алгоритмами компьютерного зрения, которые позволят собирать и анализировать видео-данные.
Выполненные работы

  • Выбрали 3D-камеру с датчиком глубины для распознавания объектов в темноте.
  • Написали алгоритмы компьютерного зрения на C/C++ с помощью библиотеки OpenCV. Они могут распознавать состояние человека и отличать, когда человек падает, а когда ложится намеренно.
  • Создали систему связи, которая собирает информацию со всех камер, установленных в доме.
      Специалист КЕДР Solutions в процессе разработки алгоритмов компьютерного зрения

      3D-камера

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

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

      • Недостаточная частота кадров при низком разрешении;
      • Слабый процессор, на котором мы не могли запустить сложные алгоритмы обработки изображений;
      • У камеры только один интерфейс передачи данных – UART;
      • Очень шумный кулер.

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

      Нам требовалось решение получше. Камера должна была «видеть» комнату в 3D независимо от условий освещения. К числу таких камер относятся Orbbec 3D и Intel. У них обеих есть функция активного определения глубины сцены с помощью инфракрасного излучения, так что они могут работать в темноте.

      3D-камера формирует видео, используя карты глубин – изображения, содержащие информацию о расстоянии от точки съемки до поверхностей объектов сцены. Камера передает эти данные на одноплатный компьютер, который с помощью умных алгоритмов распознает на изображении человека и определяет его позу.

      Мы выбрали камеру Orbbec 3D, но также рассматриваем вариант с разработкой собственной камеры, способной определять глубину сцены и передавать данные по Wi-Fi, а не по USB-кабелю.

      Алгоритмы компьютерного зрения

      Наша система использует ряд сложных алгоритмов, главная цель которых – распознавать падение человека. Мы написали их на C/C++ с помощью OpenCV. Алгоритмы выполняют следующие задачи:

      • На основе данных камеры распознают контуры человека. У одноплатного компьютера, устанавливаемого в доме, ограниченная вычислительная мощность. Поэтому нам пришлось отказаться от ресурсоемких методов машинного обучения. Вместо них, для разработки алгоритма мы применили метод вычитания фона, в котором разные кадры сравниваются для нахождения отличий.
      • Распознают позу человека (сидит, идет, лежит, падает) и различают, когда человек падает, а когда ложится намеренно. Здесь мы использовали скрытую модель Маркова, которая помогает предсказывать вероятность падения на основе предшествовавших и переходных положений тела. Модель помогает определять, к какому типу события (падению или нормальному состоянию) относится текущее положение тела.
      • Отслеживают в реальном времени центр массы тела, скорость ходьбы и контур тела для получения максимально подробной информации о текущем событии.
      • Фильтруют данные с камер, чтобы уменьшить влияние шума на качество распознавания изображений.
      • Применяют алгоритмы вычитания фона и анализ осаночных колебаний тела.

      Определяют, сколько человек в комнате. Для этого мы использовали такие методы машинного обучения, как гистограмма направленных градиентов и метод опорных векторов. Мы также работали над «областями наблюдения» – специальными зонами в комнатах. Благодаря этому, система лучше понимает повседневную активность человека. Если какое-то действие в «области наблюдения» занимает больше времени, чем обычно, система распознает его как то или иное событие. Например, область дивана требует больше внимания, чем область шкафа.

      Система связи

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

      После установления связи оператор спрашивает упавшего человека о его самочувствии и, если нужно, направляет к нему домой врачебную бригаду. Оператор также может связаться с родственниками человека и сообщить им о случившемся. Мы планируем спроектировать специальное устройство наподобие планшета Android в форме фоторамки. Устройство будет полностью адаптировано под наши нужды и служить пользовательским интерфейсом. С его помощью пожилые люди смогут общаться с родственниками, связываться с врачами и получать полезный контент – например, видео с упражнениями.
      Использованные технологии
      • Для разработки алгоритмов и проверки концепции мы использовали язык C++ и библиотеку OpenCV.
      • Первоначально мы использовали умную камеру компьютерного зрения JeVois в качестве компактного и доступного решения, которое легко интегрировать в прототип.
      • Для определения расстояния до объекта наблюдения использовались камеры глубины, такие как Intel RealSense и Orbbec Astra.
      • Для работы с каналом глубины мы использовали библиотеку Nuitrack.
      • Для распознавания силуэта человека использовались алгоритмы отслеживания положения тела.
      • В качестве RTSP-сервера для потоковой передачи видео, полученного с камеры Astra, использовался одноплатный Banana Pi Media Board Computer.
      • RTSP-сервер был разработан на C++ с использованием библиотеки live555.
      • Кроссплатформенное приложение с GUI для взаимодействия с Banana Pi было разработано с помощью фреймворка Qt.
      Канал глубины, для которого была использована технология Nuitrack
      Камера глубины

      Итоги

      Система видеонаблюдения для распознавания падений, над которой работает КЕДР Solutions, включает в себя четыре компонента:

      • 3D-камеры для отслеживания повседневной активности пожилых людей;
      • Одноплатный компьютер для обработки данных с камер;
      • Алгоритмы компьютерного зрения для распознавания поз человека и падений;
      • Система связи, которая в случае падения человека передает ответственному лицу тревожное оповещение и фотографию с места.
      В своей работе КЕДР Solutions проявляет терпение и отзывчивость. Разница во времени не повлияла на качество общения. Во время работы над проектом команда регулярно присылала развернутые отчеты, что давало четкое представление о ходе работ и доступных ресурсах.
      Основатель компании-заказчика