Мониторинг внимания аудитории по видео (командный проект)
Содержание
- 1 Что это за проект?
- 2 Чему научатся студенты? Что самое интересное в проекте?
- 3 Организация работы (Как студенты будут работать в команде?)
- 4 Компоненеты (Из каких частей состоит проект?)
- 5 Какие будут использоваться технологии?
- 6 Какие начальные требования?
- 7 Темы вводных занятий
- 8 Критерии оценки
- 9 Похожие проекты
- 10 Контактная информация
Что это за проект?
Организаторам лекционных мероприятий интересно уметь численно оценивать качество мероприятий: число зрителей, их социально-демографический портрет, вовлеченность аудитории во время доклада. По наборам метрик мероприятия можно сравнивать между собой, выявлять проблемы и искать пути их исправления.
В рамках проекта предлагается построить приложение, которое будет вычислять метрики вовлеченности зрителей, используя запись с камеры, которая снимает зал со зрителями. Используя техники компьютерного зрения и машинного обучения можно выделить на кадрах видеопотока отдельных зрителей, оценить их пол/возраст, выделить моменты, в которые зритель смотрел доклад, или наоборот — уткнулся в экран смартфона или попросту уснул. В результате анализа видео-файла, приложение выводит временные ряды изменения метрик и суммарные показатели качества мероприятия.
Пример видео: https://yadi.sk/d/vl-M4jbSvtyor
Чему научатся студенты? Что самое интересное в проекте?
Базовые техники компьютерного зрения: обработка изображений, детектирование объектов на изображении, трекинг объектов в видео. Классификация изображений при помощи глубинного обучения (Deep Learning): файн-тюнинг современных сверточных нейронных сетей.
Организация работы (Как студенты будут работать в команде?)
Желательно 2 студента:
- С фокусом на задаче выделения объектов (зрителей)
- С фокусом на классификации изображений
Третий студент допустим в случае наличия у команды четкого разделения ролей в проекте.
Компоненеты (Из каких частей состоит проект?)
- Выделение зрителей на одном изображении (кадре)
- Улучшение выделения зрителей за счет использования видео-потока. Прототип 1: подсчет временного ряда числа зрителей в видео.
- Оценка пола и возраста по лицу при помощи предобученных нейронных сетей из Caffe ModelZoo. Прототип 2: определение соц-дема аудитории.
- Выделение типичных состояний людей (смотрит, общается с соседом, спит, втыкает в смартфон), обучение нейронной сети для определения состояния. Прототип 3: временные ряды и статистики вовлеченности аудитории.
- CLI-приложение, генерирующее отчет в виде документа с графиками + (опционально) наложить изменение метрик на видео.
- (*) 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)