Участник:Akonushin — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Материалы)
Строка 2: Строка 2:
 
Меня зовут Конушин Антон. Я доцент департамент больших данных и информационного поиска ФКН НИУ ВШЭ и академический руководитель ОП "Прикладная математика и информатика". Также я руковожу лабораторией компьютерной графики и мультимедиа ВМК МГУ (http://graphics.cs.msu.ru/ru) и читаю лекции в Школе Анализа Данных Яндекса. Мои основные научные интересы - это компьютерное зрение, машинное обучение и компьютерная графика.
 
Меня зовут Конушин Антон. Я доцент департамент больших данных и информационного поиска ФКН НИУ ВШЭ и академический руководитель ОП "Прикладная математика и информатика". Также я руковожу лабораторией компьютерной графики и мультимедиа ВМК МГУ (http://graphics.cs.msu.ru/ru) и читаю лекции в Школе Анализа Данных Яндекса. Мои основные научные интересы - это компьютерное зрение, машинное обучение и компьютерная графика.
  
= Научные интересы и предлагаемые темы работ =
+
= Научные интересы =
 +
Основное приложение методов компьютерного зрения, которое мне сейчас интересно, это "разбор видео", т.е. извлечение всей возможной информации из видеоданных. Главный  рассматриваемый сейчас сценарий - это работа с данными видеонаблюдения. На выходе нужно получить всю возможную информацию - выделение всех людей, отслеживание их движения, определение их характеристик (пол, возраст), идентификация людей по лицу / походке / комплекции / одежде, вплоть до построения трёхмерной модели сцены в динамике.
  
Основное приложение методов компьютерного зрения, которое мне сейчас интересно, это "разбор видео", т.е. извлечение всей возможной информации из видеоданных. Главный  рассматриваемый сейчас сценарий - это работа с данными видеонаблюдения. На выходе нужно получить список наблюдаемых людей и объектов, траектории их движения в кадре, их характеристики, и даже трёхмерную модель каждого объекта. Решение такой задачи требует решения множества подзадач - выделение интересующих объектов в кадре и их частей, сопровождение объектов (т.е. построение траекторий), идентификация, распознавание атрибутов, оценка 3х мерной формы и т.д.. Используемые методы можно разделить на три группы - построение признакового описания, классификация, и оценка параметров моделей. Сейчас задачи извлечения признаков из изображений и классификации решаются совместно с использованием нейросетей, за счёт которых наблюдается бурный прогресс компьютерного зрения в последние несколько лет. Задача оценки параметров моделей с использованием имеющихся параметрических моделей, как мне кажется, временно отошла на второй план, но остаётся наиболее перспективным подходом для решения некоторых задач, в которых, например, данных никогда не будет достаточно для явного обучения нейросетей из-за слишком высокой размерности множества выходных параметров.  
+
Главный инструмент компьютерного зрения сейчас - это нейросетевые модели. Нейросети позволяют автоматических вычислять признаки из данных, и их обрабатывать. При этом решение многих задач можно строить в виде одной сложной нейросетевой модели. В этой области идёт бурный прогресс.
  
Задачи, которые я предлагаю в качестве тем курсовых и ВКР, можно условно разделить на 3 группы:
+
= Структура предлагаемых КР и ВКР =
* Изучение и развитие отдельных методов для нейросетей (например, исследование пакетной нормализации при обучении нейросетей)
+
Все темы КР и ВКР, которые я предлагаю в этом учебном году, связаны с построением, усовершенствованием и применением нейросетевых моделей для задач компьютерного зрения, в первую очередь для анализ видео с людьми. Поэтому общая схема выполнения всех КР и ВКР будет примерно следующая:
* Создание и совершенствование методов решения отдельных подзадач (например, детектор объектов)
+
* Развитие генеративных методов (например, Разбор двухмерных сцен с помощью порождающих моделей)
+
  
Большинство задач подходят одновременно и как курсовая для разных курсов, и как выпускная работа. Различие будет в масштабе проработки задачи. Например, в одном случае будет достаточно разобраться с библиотекой, воспроизвести алгоритм из статьи и провести его экспериментальную оценку. В другом случае, нужно будет его усовершенствовать.  
+
1) (Рекомендовано) Знакомство с нейросетями. Для этого нужно выполнить 2-3 небольших практических упражнений по нейросетям, на базе одного из фреймворков (Keras). Это позволит освоить ряд основных принципов работы с нейросетями для изображений (размножение данных, задание правильных функций потерь при обучении, использование предобученных моделей и дообучение и т.д.)
 +
2)Изучение набора базовых статей по теме (ключевые статьи в целом по нейросетям в зрении, набор конкретных по рассматриваемым моделям)
 +
3) Выбор конкретной модели и её реализации как базового алгоритма. Для многих задач есть готовые реализации. В этом случае нужно освоить реализацию - т.е. научиться обучать модель на своих данных, измерять качество, анализировать такую работу. В некоторых случаях конкретную модель предлагаю я, в других случаях её нужно будет выбрать самостоятельно по результатам проведённого обзора (п.2). Если модели в открытых источниках нет, тогда нужно будет выполнить самостоятельную реализацию этой модели. В зависимости от выбранной модели может потребоваться дополнительно изучить другой фреймворк нейросетей (Caffe, TensorFlow, Torch).  
 +
4) Собственно исследовательская часть, которая включает в себя проверку некоторой гипотезы о развитии этой модели, доработку модели, сбор данных и т.д.
 +
5) Текст КР. Если есть интересный, пусть небольшой, научный результат, тогда нужно будет написать по тексту диплома статью и подавать её.
  
При работе с нейросетями в качестве основного инструмента я предлагаю использовать библиотеку Caffe, одну из самых популярных для нейросетей. Писать с нуля реализацию нейросетей не вижу большого смысла. С другой стороны, для порождающих моделей, опирающихся на разные методы оптимизации, в основном на метод Монте-Карло в Марковских цепях, на данный момент нет столь же качественных библиотек. Поэтому придется реализовывать некоторые базовые процедуры или переписывать их, опираясь на реализации в других языках и пакетах. Так, например, порождающие модели (как часть интересной области "вероятностного программирования") активно исследуются в MIT, реализованы на внутреннем языке Julia, и хакерскими костылями стыкуются с библиотеками на других языках, что делает их непригодными для широкого использования. Поэтому в этой области есть возможность внести свой вклад в создание чего-то более востребованного, в т.ч. и получая консультации от авторов методов.  
+
В ходе выполнения курсовой работы на практике можно освоить работу с нейросетевыми моделями, изучать 1-2 фреймворка, научиться применять модели для решения конкретных задач анализа изображений. В зависимости от успехов можно будет успеть провести небольшое законченное исследование.  
  
Ещё один аспект. Ряд предложенных тем попадают в тематику гранта РФФИ "Развитие новых методов глубинного обучения в задачах обучения по большим объемам данных" (руководитель  Дмитрий Петрович Ветров), участником которого являюсь я и мой аспирант. Выбрав соответствующую тему и хорошо себя проявив вы получаете возможность войти в исследовательский коллектив этого проекта.
+
= Темы на 2016-2017 учебный год =
 +
== Автоматический выбор метапараметров нейросетевой модели выделения объектов (Automatic selection of metaparameters in object detection model) ==
 +
Нейросетевая модель выделения объектов на изображении имеет ряд параметров, которые задает исследователь. Эти параметры зависят от конкретных типов наблюдаемых объектов, их пропорций, размеров в обучающей выборке и т.д. Например, одним из параметров является число гипотез о месте и форме объектов, в каждом анализируемом фрагменте изображения. Сейчас эти параметры выбираются вручную. Предлагается исследовать подходы в автоматическому выбору этих параметров на примерах задач выделения людей, голов и лиц людей в изображениях.
  
= Список тем (2015-2016 учебный год) =  
+
== Нейросетевая модель выделения и разбора групп людей (CNN-based model for detection and parsing of people groups)==
==== Исследование нейросетевых архитектур на базе CIFAR (Evaluation of neural architectures on CIFAR) 2-3 ====
+
Обычный нейросетевой детектор выделяет отдельные объекты. В тех местах, где находятся группы близкостоящих людей, наблюдаются ошибки. Предлагается модифицировать имеющуюся нейросетевую модель таким образом, чтобы отдельно обрабатывать такие случаи.
==== Исследование методов обучения нейросетевых архитектур (Evaluation of CNN training methods) 2-4 ====
+
 
==== Исследование процедуры пакетной нормализации при обучении нейросетей (Evaluation of batch normalization for CNN) 2-4 ====
+
== Локализация головы, лица и точек на лице человека нейросетевой модель ( Head, face and facial features localization with cnn-based model) ==
==== Исследование параметров обучения нейросетевых каскадов (Evaluation of training parameters for neural cascade) 2-3 ====
+
Детектор человека позволяет выделить человека на изображении. Однако для последующего анализа полезно определить, где находится (или где должна находиться) голова человека. Видно ли лицо человека? Если да, то где на лице контрольные точки (глаза, нос, рот, уши) и куда смотрит человек? Необходимо разработать модель, получающую на вход изображение фигуры человека, и определяющую указыванные параметры.
==== Дистилляция нейросетей (Distilling neural networks) 2-4 ====
+
 
==== Определение марки и цвета автомобиля с помощью нейросетей ( Car type and color estimation with neural networks) 2-4 ====
+
== Быстрая нейросетевая модель выделения лиц людей на изображении (Fast cnn-based model for face detection) ==
==== Определение цвета одежды человека (Clothing color estimation) 2-4 ====
+
Нейросетевые детекторы лиц людей на изображении работают сейчас очень хорошо, пусть и не идеально. Основное препятствие на пути использования этих методов в устройствах это их вычислительная сложность. Детектор лица работает порядка 200ms на изображение 1980*1080 на видеокарте Nvidia GTX 1070. Однако был предложен целый ряд методов, которые позволяют увеличить производительность нейросетевой модели. Предлагается исследовать применимость этих методов для ускорения детектора лиц.
==== Нейросетевой детектор объектов (CNN-based object detector) 2-4 ====
+
 
==== Сегментация изображений на основе нейросетей (Image segmentation with CNN) 2-4 ====
+
== Повторная идентификация человека по изображению фигуры (Person reidentification) ==
==== Исследование рекуррентных нейросетей для описания изображений (Evaluation of RNN for image description) 2-4 ====
+
Необходимо реализовать нейросетевую модель отображения изображения фигуры человека в вектор-признак, кодирующий внешность человека. Сравнение изображений людей по таким признакам позволяет определить повторное появление человека в видеопотоке.
==== Исследование порождающих нейросетей для генерации изображений (Image synthesis with generative neural networks) 2-4 ====
+
 
==== Поиск изображений по содержанию (Content-based image retrieval) 3-4 ====
+
== Определение атрибутов человека по изображению фигуры (Attribute classification from person image) ==
==== Аннотация персонажей в видео (Person annotation in video) 2-4 ====
+
Такие атрибуты человека, как пол, возраст, комплекция, можно определить, глядя на фотографию фигуры. Если известна "поза" человека, т.е. положение всех конечностей человека в кадре, то задача решается проще. Предлагается реализовать нейросетевую модель, на вход получающую изображение человека с размеченными частями тела, и определяющую атрибуты человека.
==== Определение наличия голоса в аудиодорожке (Voice detection in audio stream) 2-4 ====
+
 
==== Распознавание персонажей по голосу в видеофильмах (Voice-based person recognition in movies) 2-4 ====
+
== Генеративная нейросетевая модель для дорожных знаков (Generative cnn-based model for traffic signs) ==
==== Разбор двухмерных сцен с помощью порождающих моделей (2D scene parsing with generative models) 2-3 ====
+
Существуют нейросетевые модели, которые позволяют генерировать изображение объектов заданного типа с указанными параметрами. Одним из активно развивающихся классов таких моделей являются GAN (Generative Adversarial Networks). Идея метода заключается в одновременном обучении двух сетей. Одна сеть генерирует синтетическое изображение, а вторая сеть учится определять, является ли изображение синтетическим или реальным. В результате получается сеть, которая позволяет генерировать очень реалистичные изображения. Предлагается применить такую модель для генерации изображений дорожных знаков и исследовать, насколько такая модель и изображения позволят улучшить алгоритмы выделения и распознавания дорожных знаков на практике.
==== Разбор трёхмерных сцен с помощью порождающих моделей  (3D scene parsing with generative models) 2-4 ====
+
==== Подсчёт и сопровождение людей с камеры Kinect (People counting and tracking with Kinect) 4 ====
+
  
 
= Материалы =
 
= Материалы =

Версия 15:53, 3 ноября 2016

Обо мне

Меня зовут Конушин Антон. Я доцент департамент больших данных и информационного поиска ФКН НИУ ВШЭ и академический руководитель ОП "Прикладная математика и информатика". Также я руковожу лабораторией компьютерной графики и мультимедиа ВМК МГУ (http://graphics.cs.msu.ru/ru) и читаю лекции в Школе Анализа Данных Яндекса. Мои основные научные интересы - это компьютерное зрение, машинное обучение и компьютерная графика.

Научные интересы

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

Главный инструмент компьютерного зрения сейчас - это нейросетевые модели. Нейросети позволяют автоматических вычислять признаки из данных, и их обрабатывать. При этом решение многих задач можно строить в виде одной сложной нейросетевой модели. В этой области идёт бурный прогресс.

Структура предлагаемых КР и ВКР

Все темы КР и ВКР, которые я предлагаю в этом учебном году, связаны с построением, усовершенствованием и применением нейросетевых моделей для задач компьютерного зрения, в первую очередь для анализ видео с людьми. Поэтому общая схема выполнения всех КР и ВКР будет примерно следующая:

1) (Рекомендовано) Знакомство с нейросетями. Для этого нужно выполнить 2-3 небольших практических упражнений по нейросетям, на базе одного из фреймворков (Keras). Это позволит освоить ряд основных принципов работы с нейросетями для изображений (размножение данных, задание правильных функций потерь при обучении, использование предобученных моделей и дообучение и т.д.) 2)Изучение набора базовых статей по теме (ключевые статьи в целом по нейросетям в зрении, набор конкретных по рассматриваемым моделям) 3) Выбор конкретной модели и её реализации как базового алгоритма. Для многих задач есть готовые реализации. В этом случае нужно освоить реализацию - т.е. научиться обучать модель на своих данных, измерять качество, анализировать такую работу. В некоторых случаях конкретную модель предлагаю я, в других случаях её нужно будет выбрать самостоятельно по результатам проведённого обзора (п.2). Если модели в открытых источниках нет, тогда нужно будет выполнить самостоятельную реализацию этой модели. В зависимости от выбранной модели может потребоваться дополнительно изучить другой фреймворк нейросетей (Caffe, TensorFlow, Torch). 4) Собственно исследовательская часть, которая включает в себя проверку некоторой гипотезы о развитии этой модели, доработку модели, сбор данных и т.д. 5) Текст КР. Если есть интересный, пусть небольшой, научный результат, тогда нужно будет написать по тексту диплома статью и подавать её.

В ходе выполнения курсовой работы на практике можно освоить работу с нейросетевыми моделями, изучать 1-2 фреймворка, научиться применять модели для решения конкретных задач анализа изображений. В зависимости от успехов можно будет успеть провести небольшое законченное исследование.

Темы на 2016-2017 учебный год

Автоматический выбор метапараметров нейросетевой модели выделения объектов (Automatic selection of metaparameters in object detection model)

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

Нейросетевая модель выделения и разбора групп людей (CNN-based model for detection and parsing of people groups)

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

Локализация головы, лица и точек на лице человека нейросетевой модель ( Head, face and facial features localization with cnn-based model)

Детектор человека позволяет выделить человека на изображении. Однако для последующего анализа полезно определить, где находится (или где должна находиться) голова человека. Видно ли лицо человека? Если да, то где на лице контрольные точки (глаза, нос, рот, уши) и куда смотрит человек? Необходимо разработать модель, получающую на вход изображение фигуры человека, и определяющую указыванные параметры.

Быстрая нейросетевая модель выделения лиц людей на изображении (Fast cnn-based model for face detection)

Нейросетевые детекторы лиц людей на изображении работают сейчас очень хорошо, пусть и не идеально. Основное препятствие на пути использования этих методов в устройствах это их вычислительная сложность. Детектор лица работает порядка 200ms на изображение 1980*1080 на видеокарте Nvidia GTX 1070. Однако был предложен целый ряд методов, которые позволяют увеличить производительность нейросетевой модели. Предлагается исследовать применимость этих методов для ускорения детектора лиц.

Повторная идентификация человека по изображению фигуры (Person reidentification)

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

Определение атрибутов человека по изображению фигуры (Attribute classification from person image)

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

Генеративная нейросетевая модель для дорожных знаков (Generative cnn-based model for traffic signs)

Существуют нейросетевые модели, которые позволяют генерировать изображение объектов заданного типа с указанными параметрами. Одним из активно развивающихся классов таких моделей являются GAN (Generative Adversarial Networks). Идея метода заключается в одновременном обучении двух сетей. Одна сеть генерирует синтетическое изображение, а вторая сеть учится определять, является ли изображение синтетическим или реальным. В результате получается сеть, которая позволяет генерировать очень реалистичные изображения. Предлагается применить такую модель для генерации изображений дорожных знаков и исследовать, насколько такая модель и изображения позволят улучшить алгоритмы выделения и распознавания дорожных знаков на практике.

Материалы

  • Caffe - deep learning framework - наиболее активно используемая моими студентами библиотека нейросетей
  • A Primer on Neural Network Models for Natural Language Processing хорошее введение в нейросети на примере анализа текстов
  • Neural Networks and Deep Learning - неплохая небольшая книга по глуибнному обучению, с которой можно начинать изучение.
  • Deep Learning book - черновая версия книги Yoshua Bengio, Ian Goodfellow and Aaron Courville про глубинное обучение. Большая и подробная. Можно читать в фоновом режиме, медленно и вдумчиво.
  • robertsdionne/neural-network-papers - Хорошая коллекция статей про нейросети. Часть мы уже разбирали на семинарах на ВМК, часть будем разбирать, часть посмотрим на семинарах в ВШЭ.
  • Colah blog - блог с хорошим описанием ряда вопросов по нейросетям, например, про backpropagation.
  • Nuit Blance blog - блог с описанием разных моментов по машинному обучению. Можно следить.
  • Курс Стенфорда по нейросетям - Много интересных материалов по нейросетям
  • [1] - Хороший тьюториал Стенфорда
  • Facebook Moscow Computer Vision Group - страница семинара по компьютерному зрению в ШАД с дайджестами интересных ссылок