Мониторинг внимания аудитории по видео (командный проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

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

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

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

Пример видео: https://yadi.sk/d/vl-M4jbSvtyor

Кадр из видеосъемки зала во время доклада

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

Базовые техники компьютерного зрения: обработка изображений, детектирование объектов на изображении, трекинг объектов в видео. Классификация изображений при помощи глубинного обучения (Deep Learning): файн-тюнинг современных сверточных нейронных сетей.

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

Желательно 2 студента:

  1. С фокусом на задаче выделения объектов (зрителей)
  2. С фокусом на классификации изображений

Третий студент допустим в случае наличия у команды четкого разделения ролей в проекте.

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

  1. Выделение зрителей на одном изображении (кадре)
  2. Улучшение выделения зрителей за счет использования видео-потока. Прототип 1: подсчет временного ряда числа зрителей в видео.
  3. Оценка пола и возраста по лицу при помощи предобученных нейронных сетей из Caffe ModelZoo. Прототип 2: определение соц-дема аудитории.
  4. Выделение типичных состояний людей (смотрит, общается с соседом, спит, втыкает в смартфон), обучение нейронной сети для определения состояния. Прототип 3: временные ряды и статистики вовлеченности аудитории.
  5. CLI-приложение, генерирующее отчет в виде документа с графиками + (опционально) наложить изменение метрик на видео.
  6. (*) Nightmare: real-time версия алгоритма

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

  • OpenCV
  • Python
  • Deep Learning: Caffe + TensorFlow или Keras или Lasagne

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

Уверенное владение языком Python, базовое знание C++. Угар по компьютерному зрению.

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

  • Библиотеки для обработки изображений
  • Базовые представления о детектировании объектов на изображении, существующие детекторы и трекеры лиц
  • Deep Learning и библиотеки для него

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

  • 4-5: Консольное приложение, подсчитывающее по видео временные ряды числа зрителей, числа вовлеченных и соц. дем статистика.
  • 6-7: Введение бенчмарков и оценка качества отдельных частей приложения, качественный код на GitHub
  • 8-10: Вариант 1: отработка приложения в бою (анализ нескольких мероприятий) + оценка качества работы приложения в целом + пост на Хабрахабр. Варант 2: реализация real-time версии приложения + пост на Хабр.

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

Проект оригинальный и может являться хорошим элементом портфолио. К вопросу о том что могут делать сверточные нейронные сети: http://howhot.io/, как можно находить лица в видео: https://youtu.be/iI7mWvf0g1M

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

Петр Ромов (peter@romov.ru), Алексей Артемов (artonson@yandex.ru)

Слайды с презентации проектов