Автоматизация видеосъёмки в прямом эфире (командный проект)
Компания | 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