Автоматизация видеосъёмки в прямом эфире (командный проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 13:47, 14 сентября 2017; Dkorolev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания On-Air.Pro
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-10



Что это за проект?

По потоку RTSP, получаемому от управляемой (PTZ) IP видеокамеры, нужно определять человека в кадре и посредством команд ONVIF управлять камерой, чтобы человек оставался в кадре. При этом, движения должны быть плавными (но настойчивыми, чтобы не терять цель), а композиция кадра должна быть выдержана по заданным правилам. Требуется обеспечить устойчивость к ситуациям, когда снимаемый человек отвернулся или сел за стол, наклонился, и т.д. При появлении новых людей в кадре следует удерживать фокус на первом. Результатом является а) сервис на виртуальной linux-машине, имеющий REST API для передачи адресов-паролей камер и потоков, а также возвращения контрольного потока со служебными метками, и б) автономно устанавливаемая его версия в виде службы в Windows.

Чему научатся студенты? Что самое интересное в проекте?

  • Трекинг человека в кадре. Актуальная задача для многих применений. В данном случае "фишка" проекта -- в художественной съёмке. Здесь нет ничего гениального, просто следовать правилам, а правила опираются на знание, как расположена фигура человека в кадре и куда он смотрит или хотя бы повернул голову. Но, чтобы это смотрелось хорошо, нужно правильно управлять перемещением камеры, поэтому:
  • Управление камерой через ONVIF с плавным и одновременным изменением координат.

Следует учитывать, что работать придется без опорного изображения, полагаясь только на поток с камеры. То есть, выходящего за кадр актера придётся догонять, "отъезжать" и предпринимать все возможные действия, чтобы не потерять совсем. Желательно, чтобы при этом зрителей не укачало.

Основной challenge проекта -- учесть возможные помехи (человек отвернулся или наклонился, сел за стол -- тогда полагаться на иные, чем только распознанное лицо, характеристики изобржаения, следить за контурами и т.д.), при этом, обеспечить движение, которое можно показывать в прямом эфире, не боясь, что камера будет дергаться или снимать "мимо".

Полезная возможность в контексте решаемой задачи -- автоматически брать заданный план (крупность человека в кадре).

Сервис должен запускаться как на удаленном Linux-сервере, так и иметь локальную версию для Windows (в виде службы), при этом, взаимодействие с сервисом должно обеспечиваться через REST API и через веб-интерфейс. Помимо базовых команд (запуск, остановка автотрекинга, ручной выбор композиции и крупности плана), пользователь должен иметь возможность видеть обнаруженных программой людей (если их в кадре больше одного) и переключать фокус трекера на одного из них.

Организация работы (Как студенты будут работать в команде?)

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

Далее организуется slack и трекер (обычно trello), где ведется рабочее общение и трекинг задач. Встречи -- по договоренности (на первых порах это понадобится точно) на Кочновском, альтернативный и более частый вариант -- аудио/видеосвязь. Удобно, т.к. можно собираться по актуальному вопросу безотлагательно и в любое время в любом составе.

Компоненеты (Из каких частей состоит проект?)

  • Трекер (OpenCV)
  • UI
  • REST API

Исполнение для работы на сервере Linux и для установки на пользовательском комплютере под Windows.

Какие будут использоваться технологии?

  • OpenCV
  • потоковая передача RTSP
  • ONVIF-управление PTZ-камерой
  • REST API для интеграции с клиентами сервиса.

Какие начальные требования?

В зависимости от роли в проекте:

  • Навыки работы с распознаванием лица и фигуры человека
  • Программирование UI

Темы вводных занятий

Не в порядке изложения:

1. Архитектура проекта. API, внешние связи и зависимости.

2. Специфические технологии и используемые инструменты.

3. Доступные ресурсы, организация доступа.

4. Разделение ролей

Критерии оценки

Про работу и оценки почитайте здесь: https://d.pr/143bq

Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!

Похожие проекты

Этот проект выполнялся в МИЭМ в 2016-17 учебном году, но не был доведен до уровня продукта. Тем не менее, наработки есть и результаты трекинга были удовлетворительные (отработка помех не реализована). Некоторые PTZ-камеры имеют встроенные средства трекинга по видеопотоку, но они не приспособлены для видеосъёмки, их задача -- не упустить движущийся объект при видеонаблюдении.

Существуют камеры-трекеры специально для видеосъёмки конференций/лекций, но они работают с дополнительным видеопотоком (обзорной камерой), в пределах кадра которого могут вести объект.

В 2011 в МИЭМе был изготовлен прототип "автокамеры" с Kinect вместо обзорной камеры. Трекинг работал качественно, но устройство получалось дорогое и довольно тяжелое (8 кг) и было ограничено дальностью действия Kinect (4 метра), что мешало его применению во многих случаях.

Данный проект опубликован на ярмарке проектов ВШЭ: https://pf.hse.ru/208027417.html

Контактная информация

Денис Королев,

https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)

+7 903 610 3290 (месенджеры по вкусу)

d.korolev@gmail.com