Структурные методы анализа изображений и сигналов (курс лекций)/2011/Задание 1
Материал из MachineLearning.
(+ данные трекинга для каждого кадра видео) |
(Финальная правка текста задания) |
||
(11 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | {{ | + | {{TOCright|300px}} |
[[Структурные методы анализа изображений и сигналов (курс лекций)|Перейти к основной странице курса]] | [[Структурные методы анализа изображений и сигналов (курс лекций)|Перейти к основной странице курса]] | ||
- | |||
- | |||
'''Начало выполнения задания''': 28 марта 2011 | '''Начало выполнения задания''': 28 марта 2011 | ||
Строка 193: | Строка 191: | ||
=== Рекомендации по выполнению задания === | === Рекомендации по выполнению задания === | ||
+ | |||
+ | [[Изображение:SMAIS11_hmm_segmentation.jpg|300px|thumb|Пример модельного сигнала для тестирования СММ]] | ||
+ | * При тестировании ЕМ-алгоритма обучения СММ рекомендуется убедиться в том, что значение неполного правдоподобия <tex>\log p(X|w,A,\mu,\Sigma)</tex> монотонно увеличивается в итерациях. | ||
+ | * В качестве простейшего модельного сигнала для тестирования генерации, обучения и сегментации с помощью СММ можно взять одномерный сигнал с тремя состояниями, в котором два состояния хорошо отличимы друг от друга, а третье состояние является промежуточным. Например, в первом состоянии мат.ожидание = 0 и дисперсия маленькая (скажем, 0.1). Во втором состоянии мат.ожидание = 1 и такая же дисперсия, как и в первом состоянии. В третьем состоянии мат.ожидание = 0, а дисперсия в несколько раз больше (скажем, 0.5). | ||
+ | * При тестировании генерации из модели СММ рекомендуется эксперимент с двухмерным сигналом, чтобы убедиться в корректности задаваемых корреляций | ||
+ | * Для наложения поведенческих актов на видео рекомендуется следующая процедура: | ||
+ | ** Загрузить в MATLAB изображения с названиями поведенческих актов с помощью ''imread'' | ||
+ | ** Небольшими блоками загружать в MATLAB кадры видео с помощью ''aviread'', накладывать на них картинки с названиями поведенческих актов и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью ''imwrite''. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра. | ||
+ | ** Собрать полученные картинки в видео-файл с помощью бесплатной программы [http://www.virtualdub.org/ VirtualDub]. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл. | ||
=== Данные для выполнения задания === | === Данные для выполнения задания === | ||
Строка 221: | Строка 228: | ||
== Вариант 2 == | == Вариант 2 == | ||
+ | |||
=== Формулировка задания === | === Формулировка задания === | ||
- | Рассматривается | + | Рассматривается линейная динамическая система (ЛДС), в которой полное правдоподобие задается как: |
<center> | <center> | ||
<tex> | <tex> | ||
- | p(X,T|\theta)=p(t_1)\prod_{n=2}^Np(t_n |t_{n-1})\prod_{n=1}^Np(x_n |t_n ) | + | p(X,T|\theta)=p(t_1)\prod_{n=2}^Np(t_n |t_{n-1})\prod_{n=1}^Np(x_n |t_n ),\\ |
+ | p(t_n|t_{n-1})=\mathcal{N}(t_n|At_{n-1},\Gamma),\\ | ||
+ | p(x_n|t_n)=\mathcal{N}(x_n|Ct_n,\Sigma),\\ | ||
+ | p(t_1)=\mathcal{N}(t_1|\mu_0,V_0). | ||
</tex> | </tex> | ||
</center> | </center> | ||
- | |||
- | |||
- | |||
- | Для выполнения задания необходимо | + | Все переменные модели являются непрерывными, т.е. <tex>t_n\in\mathbb{R}^D,\ x_n\in\mathbb{R}^d</tex>. Параметры модели <tex>A,\Gamma,V_0\in\mathbb{R}^{D\times D},\ C\in\mathbb{R}^{d\times D},\ \Sigma\in\mathbb{R}^{d\times d},\ \mu_0\in\mathbb{R}^D</tex>. |
- | * | + | |
- | * | + | Данную ЛДС нужно использовать для решения задачи сопровождения (трекинга) объекта в пространстве. В частности, необходимо отфильтровать центр масс мыши на каждом кадре в видео-записи ее поведения в клетке. |
- | * | + | |
+ | Для выполнения задания необходимо: | ||
+ | * Реализовать алгоритм генерации выборки из вероятностной модели ЛДС; | ||
+ | * Реализовать алгоритм онлайн фильтрации сигнала с помощью фильтра Калмана; | ||
+ | * Реализовать алгоритм уточнения фильтрации сигнала с помощью РТС уравнений; | ||
+ | * Реализовать ЕМ-алгоритм обучения СММ при заданной размерности <tex>D</tex>. При этом часть параметров ЛДС также может быть задана пользователем; | ||
+ | * Реализовать алгоритм генерации траектории движения абстрактного объекта в двухмерном пространстве. Способ генерации такой траектории отдается на выбор студента; | ||
+ | * Протестировать реализованные алгоритмы на модельных данных; | ||
+ | * Отфильтровать центр масс мыши в видео-сигнале с помощью реализованных алгоритмов. Выбор параметров фильтрации отдается на выбор студента. Способ выбора этих параметров необходимо отразить в отчете; | ||
+ | * Наложить исходную траекторию центра масс мыши и отфильтрованную траекторию на видео с поведением; | ||
+ | * Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики фильтрации сгенерированных траекторий, а также графики фильтрации центра масс мыши в увеличенном разрешении. | ||
=== Спецификация реализуемых функций === | === Спецификация реализуемых функций === | ||
Строка 242: | Строка 260: | ||
!''Генерация выборки'' | !''Генерация выборки'' | ||
|- | |- | ||
- | |[X, T] = | + | |[X, T] = LDS_GENERATE(N, A, G, C, S, mu0, V0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 250: | Строка 268: | ||
|N — количество точек в генерируемой последовательности, uint32; | |N — количество точек в генерируемой последовательности, uint32; | ||
|- | |- | ||
- | | | + | |A — матрица преобразования среднего в последовательности <tex>t</tex>, матрица типа double размера D x D; |
|- | |- | ||
- | | | + | |G — ковариационная матрица для распределения <tex>p(t_n|t_{n-1})</tex>, матрица типа double размера D x D; |
|- | |- | ||
- | | | + | |C — матрица преобразования среднего при переходе от <tex>t_n</tex> к <tex>x_n</tex>, матрица типа double размера d x D; |
|- | |- | ||
- | | | + | |S — ковариационная матрица для распределения <tex>p(x_n|t_n)</tex>, матрица типа double размера d x d; |
+ | |- | ||
+ | |mu0 — мат.ожидание априорного распределения <tex>p(t_1)</tex>, матрица типа double размера 1 x D; | ||
+ | |- | ||
+ | |V0 — ковариационная матрица априорного распределения <tex>p(t_1)</tex>, матрица типа double размера D x D. | ||
|} | |} | ||
|- | |- | ||
Строка 263: | Строка 285: | ||
| | | | ||
{| | {| | ||
- | |X — сгенерированная последовательность, матрица типа double размера N x d | + | |X — сгенерированная наблюдаемая последовательность, матрица типа double размера N x d |
|- | |- | ||
- | |T — последовательность скрытых состояний, матрица типа double размера | + | |T — последовательность скрытых состояний, матрица типа double размера N x D |
|} | |} | ||
|} | |} | ||
- | Обратите внимание: в процедуре | + | Обратите внимание: в процедуре LDS_GENERATE параметры D и d определяются неявно по размеру соответствующих элементов. |
{|class="standard" | {|class="standard" | ||
- | !'' | + | !''Фильтр Калмана и РТС уравнения'' |
|- | |- | ||
- | |[ | + | |[Mus_back, Sigmas_back, Mus_fwd, Sigmas_fwd, LH, J] = LDS_forwardbackward(X, A, G, C, S, mu0, V0) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 282: | Строка 304: | ||
|X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков; | |X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – количество признаков; | ||
|- | |- | ||
- | + | |A — матрица преобразования среднего в последовательности <tex>t</tex>, матрица типа double размера D x D; | |
- | + | ||
- | |A — матрица | + | |
|- | |- | ||
- | | | + | |G — ковариационная матрица для распределения <tex>p(t_n|t_{n-1})</tex>, матрица типа double размера D x D; |
+ | |- | ||
+ | |C — матрица преобразования среднего при переходе от <tex>t_n</tex> к <tex>x_n</tex>, матрица типа double размера d x D; | ||
+ | |- | ||
+ | |S — ковариационная матрица для распределения <tex>p(x_n|t_n)</tex>, матрица типа double размера d x d; | ||
+ | |- | ||
+ | |mu0 — мат.ожидание априорного распределения <tex>p(t_1)</tex>, матрица типа double размера 1 x D; | ||
+ | |- | ||
+ | |V0 — ковариационная матрица априорного распределения <tex>p(t_1)</tex>, матрица типа double размера D x D. | ||
|- | |- | ||
- | |||
|} | |} | ||
|- | |- | ||
Строка 295: | Строка 322: | ||
| | | | ||
{| | {| | ||
- | | | + | |Mus_back — мат. ожидания распределений <tex>p(t_n|X)</tex>, матрица типа double размера N x D; |
+ | |- | ||
+ | |Sigmas_back — ковариационные матрицы распределений <tex>p(t_n|X)</tex>, массив типа double размера D x D x N, где Sigmas(:,:,n) является матрицей ковариации для момента времени n; | ||
+ | |- | ||
+ | |Mus_fwd — мат. ожидания распределений <tex>p(t_n|x_1,\dots,x_n)</tex>, матрица типа double размера N x D; | ||
+ | |- | ||
+ | |Sigmas_fwd — ковариационные матрицы распределений <tex>p(t_n|x_1,\dots,x_n)</tex>, массив типа double размера D x D x N; | ||
+ | |- | ||
+ | |LH — логарифм неполного правдоподобия <tex>\log p(X|A,\Gamma,C,\Sigma,\mu_0,V_0)</tex>, double; | ||
+ | |- | ||
+ | |J — матрицы J, массив типа double размера D x D x N-1; | ||
|- | |- | ||
- | |||
|} | |} | ||
|} | |} | ||
Строка 306: | Строка 342: | ||
!''Обучение'' | !''Обучение'' | ||
|- | |- | ||
- | |[ | + | |[A, G, C, S, mu0, V0] = LDS_EM_TRAIN(X, D, InputParameters) |
- | + | ||
- | + | ||
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 316: | Строка 350: | ||
|X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – число признаков; | |X — входная последовательность, матрица типа double размера N x d, где N – количество точек в последовательности, d – число признаков; | ||
|- | |- | ||
- | | | + | |D — размерность пространства скрытых состояний, число типа uint16; |
|- | |- | ||
|InputParameters — (необязательный аргумент) набор дополнительных параметров, массив типа cell вида ParameterName1, ParameterValue1, ParameterName2, ParameterValue2 и т.д. Возможны следующие параметры: | |InputParameters — (необязательный аргумент) набор дополнительных параметров, массив типа cell вида ParameterName1, ParameterValue1, ParameterName2, ParameterValue2 и т.д. Возможны следующие параметры: | ||
|- | |- | ||
- | | ' | + | | 'A' — задаваемая пользователем матрица преобразования среднего в распределении <tex>p(t_n|t_{n-1})</tex>(соответственно, ее не нужно определять в процессе EM-итераций); |
|- | |- | ||
- | | ' | + | | 'G' — задаваемая пользователем матрица ковариации <tex>p(t_n|t_{n-1})</tex>; |
|- | |- | ||
- | | ' | + | | 'C' — задаваемая пользователем матрица преобразования среднего в распределении <tex>p(x_n|t_n)</tex>; |
|- | |- | ||
- | | ' | + | | 'S' — задаваемая пользователем матрица ковариации в распределении <tex>p(x_n|t_n)</tex>; |
|- | |- | ||
- | | 'num_iter' — максимально допустимое число итераций EM-алгоритма; | + | | 'num_iter' — максимально допустимое число итераций EM-алгоритма (по умолчанию = 100); |
|- | |- | ||
- | | 'tol_LH' — минимально допустимая величина отклонения по значению логарифма правдоподобия на одной итерации; | + | | 'tol_LH' — минимально допустимая величина отклонения по значению логарифма правдоподобия на одной итерации (по умолчанию = <tex>10^{-2}</tex>); |
|} | |} | ||
|- | |- | ||
Строка 337: | Строка 371: | ||
| | | | ||
{| | {| | ||
- | |||
|- | |- | ||
- | |A — матрица | + | |A — матрица преобразования среднего в последовательности <tex>t</tex>, матрица типа double размера D x D; |
|- | |- | ||
- | | | + | |G — ковариационная матрица для распределения <tex>p(t_n|t_{n-1})</tex>, матрица типа double размера D x D; |
|- | |- | ||
- | | | + | |C — матрица преобразования среднего при переходе от <tex>t_n</tex> к <tex>x_n</tex>, матрица типа double размера d x D; |
+ | |- | ||
+ | |S — ковариационная матрица для распределения <tex>p(x_n|t_n)</tex>, матрица типа double размера d x d; | ||
+ | |- | ||
+ | |mu0 — мат.ожидание априорного распределения <tex>p(t_1)</tex>, матрица типа double размера 1 x D; | ||
+ | |- | ||
+ | |V0 — ковариационная матрица априорного распределения <tex>p(t_1)</tex>, матрица типа double размера D x D. | ||
|- | |- | ||
- | |||
|} | |} | ||
|} | |} | ||
+ | |||
+ | | ||
+ | |||
+ | {|class="standard" | ||
+ | !''Генерация траектории'' | ||
+ | |- | ||
+ | |X = TRAJECTORY_GENERATE(N) | ||
+ | |- | ||
+ | |ВХОД | ||
+ | |- | ||
+ | | | ||
+ | {| | ||
+ | |- | ||
+ | |N — длина генерируемой траектории, uint32; | ||
+ | |- | ||
+ | |} | ||
+ | |- | ||
+ | |ВЫХОД | ||
+ | |- | ||
+ | | | ||
+ | {| | ||
+ | |- | ||
+ | |X — сгенерированная траектория движения объекта в двухмерном пространстве, матрица типа double размера N x 2; | ||
+ | |- | ||
+ | |} | ||
+ | |} | ||
+ | |||
+ | === Рекомендации по выполнению задания === | ||
+ | |||
+ | * При тестировании ЕМ-алгоритма обучения ЛДС рекомендуется убедиться в том, что значение неполного правдоподобия <tex>\log p(X|A,\Gamma,C,\Sigma,\mu_0,V_0)</tex> монотонно увеличивается в итерациях. | ||
+ | * Простейшим способом генерации траектории объекта является генерация по скорости и ускорению, где ускорение иногда меняет величину и направление. | ||
+ | * Один из вариантов тестирования реализованных алгоритмов на основе ЛДС следующий: | ||
+ | ** Сгенерировать траекторию движения объекта | ||
+ | ** Добавить к траектории случайный нормальный шум | ||
+ | ** Отфильтровать зашумленную траекторию с помощью фильтра Калмана; убедиться, что отфильтрованный сигнал ближе к истинной траектории, чем входной зашумленный сигнал. | ||
+ | ** Отфильтровать зашумленную траекторию с помощью РТС уравнений; убедиться, что результат является более точным по сравнению с фильтром Калмана. | ||
+ | * При тестировании генерации из модели ЛДС рекомендуется эксперимент с двухмерным сигналом, чтобы убедиться в корректности задаваемых корреляций | ||
+ | * Для наложения траектории движения на видео рекомендуется следующая процедура: | ||
+ | ** Загрузить в MATLAB изображения с названиями поведенческих актов с помощью ''imread'' | ||
+ | ** Небольшими блоками загружать в MATLAB кадры видео с помощью ''aviread'', накладывать на них траекторию движения за последние 300 кадров и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью ''imwrite''. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра. | ||
+ | ** Собрать полученные картинки в видео-файл с помощью бесплатной программы [http://www.virtualdub.org/ VirtualDub]. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл. | ||
+ | |||
+ | === Данные для выполнения задания === | ||
+ | |||
+ | [http://narod.ru/disk/8645012001/CG1OFD1_input.avi.html Видео-файл] | ||
+ | |||
+ | [http://narod.ru/disk/8645639001/frames_data.mat.html MAT-файл], содержащий данные для каждого кадра видео. В нем находится массив структур, где каждая структура соответствует одному кадру, а поля структуры имеют следующее значение: | ||
+ | * frame_number — номер кадра видео | ||
+ | * centre — координаты центра масс мыши | ||
+ | * nose — координаты предполагаемой точки носа мыши | ||
+ | * tail — координаты предполагаемой точки основания хвоста мыши | ||
+ | * contour — координаты точек контура мыши | ||
+ | * dist_centre — расстояние от центра масс мыши до центра арены | ||
+ | * dist_border — расстояние от центра масс мыши до ближайшей границы арены | ||
+ | * eigen_features — проекции контура мыши на собственные контура, полученные с помощью метода главных компонент | ||
+ | Для фильтрации траектории движения мыши понадобятся только значения координат центра масс мыши. | ||
+ | |||
+ | [[Media:SMAIS11_calc_line.rar|RAR архив]] с процедурой для MatLab, которая строит пиксельное представление линии по координатам начала и конца линии. | ||
=== Оформление задания === | === Оформление задания === | ||
- | + | Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «Задание 1. ФИО, номер группы». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации. | |
- | * | + | |
- | * | + | Письмо должно содержать: |
- | * | + | *PDF-файл с описанием проведенных исследований |
- | * | + | *LDS_GENERATE.m |
+ | *LDS_forwardbackward.m | ||
+ | *LDS_EM_TRAIN.m | ||
+ | *TRAJECTORY_GENERATE.m | ||
+ | *Ссылка на видео-файл, размещенный на файлообменнике или на видео-хостинге, с наложенными исходной и фильтрованной траекториями движения центра масс мыши. Лучше вставить видео-файл непосредственно внутрь PDF-файла с отчетом (это можно сделать, например, в программе Adobe Acrobat 9 и выше). Тогда нужно прислать ссылку на этот PDF-файл. | ||
*Набор вспомогательных файлов при необходимости | *Набор вспомогательных файлов при необходимости | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] | ||
[[Категория:Байесовские методы]] | [[Категория:Байесовские методы]] |
Текущая версия
|
Перейти к основной странице курса
Начало выполнения задания: 28 марта 2011
Срок сдачи: 11 апреля 2011, 23:59
Задание состоит из двух вариантов. Распределение вариантов задания по студентам:
Вариант 1 | Вариант 2 |
---|---|
Ромов Петр, 202 | Лямаев Сергей, 202 |
Иванов Петър, 202 | Елшин Денис, 317 |
Некрасов Константин, 317 | Новиков Павел, 317 |
Меркулова Татьяна, 317 | Лобачева Екатерина, 209 |
Батанов Павел, 321 | Птенцов Сергей, 321 |
Сапатов Александр, 321 | Новикова Татьяна, 321 |
Шальнов Евгений, 321 | Конев Артем, 321 |
Костин Григорий, 320 | Икрам Магжан, 325 |
Переходько Евгения, 325 | Парамонов Сергей, 324 |
Русланова Анна, 421 | Ермишин Федор, 321 |
Исламгулов Ильдар, 420 | Грядицкая Юлия, 411 |
Касперский Иван, 417 | Тихонов Андрей, 417 |
Колев Денис, 417 | Вартанов Сергей, 427 |
Ермаков Михаил, 427 | Баранов Леонид, 428 |
Пироженко Александр, 428 | Рябов Сергей, 428 |
Кузин Сергей, 528 | Светличный Дмитрий, ВВО |
Заякина Ольга, ВВО | Беликов Владимир |
Гребенкина Мария | Субботин Никита |
Для студентов, которых нет в этом списке, механизм выбора варианта следующий: первый вариант, если первая буква фамилии А–Л, второй — иначе.
Среда реализации для всех вариантов – MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Вариант 1
Формулировка задания
Рассматривается классическая скрытая марковская модель (СММ) первого порядка, в которой полное правдоподобие задается как:
Пусть скрытая компонента в произвольный момент времени может принимать значения из множества
. Априорное распределение на значение скрытой компоненты в первый момент времени задается вектором
, причем все
и
. Распределение
задается матрицей перехода
размера
, где в
-ой позиции стоит вероятность перехода из состояния
в состояние
. Все элементы этой матрицы неотрицательны и сумма элементов по каждой строке равна единице. Модель генерации данных задается нормальными распределениями со своими значениями вектора математического ожидания
и матрицы ковариации
для каждого состояния.
Таким образом, набор параметров модели определяется вектором
, матрицей
, значениями векторов математических ожиданий и матриц ковариаций для каждого состояния
.
Данную СММ нужно использовать для сегментации поведения мыши в клетке на набор т.н. поведенческих актов. Поведенческие акты — это элементарные единицы в описании поведения. Примерами поведенческих актов для мыши в клетке являются «бежит», «роется», «сидит на месте», «встает на задние лапы», «крутится на месте» и т.д. В качестве входных данных для этой задачи выступают видео с записью поведения мыши в клетке (см. фрагмент ниже) и набор параметров мыши для каждого кадра видео: координаты центра масс, точки носа и хвоста, координаты пикселей контура мыши. Необходимо на основе этих данных рассчитать набор признаков (например, скорости, ускорения, различные углы) и с помощью ЕМ-алгоритма обучения СММ выделить 3 поведенческих акта. Например, при использовании только скорости можно выделить поведенческие акты вида «бежит», «идет», «стоит на месте». Набор используемых признаков и интерпретация полученных поведенческих актов отдаются на выбор студента. Полученные поведенческие акты необходимо наложить на видео с поведением.
Для выполнения задания необходимо:
- Реализовать алгоритм генерации выборки из вероятностной модели СММ
- Реализовать EM-алгоритм обучения СММ при заданном числе состояний K.
- Реализовать алгоритм Витерби для сегментации сигнала при известных значениях параметров СММ
- Протестировать реализованные алгоритмы на модельных сигналах
- Рассчитать набор признаков для описания поведения мыши и на их основе найти 3 осмысленных поведенческих акта с помощью ЕМ-алгоритма обучения СММ, проинтерпретировать полученные поведенческие акты
- Наложить полученные поведенческие акты на видео с поведением
- Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики сегментации модельных сигналов.
Спецификация реализуемых функций
Генерация выборки | |||||
---|---|---|---|---|---|
[X, T] = HMM_GENERATE(N, w, A, Mu, Sigmas) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Обратите внимание: в процедуре HMM_GENERATE количество признаков и количество скрытых состояний определяются неявно по размеру соответствующих элементов.
Сегментация | |||||
---|---|---|---|---|---|
T = HMM_TEST(X, w, A, Mu, Sigmas) | |||||
ВХОД | |||||
| |||||
ВЫХОД | |||||
|
Обучение | |||||||||
---|---|---|---|---|---|---|---|---|---|
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K) | |||||||||
[w, A, Mu, Sigmas, core] = HMM_EM_TRAIN(X, K, InputParameters) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Рекомендации по выполнению задания
- При тестировании ЕМ-алгоритма обучения СММ рекомендуется убедиться в том, что значение неполного правдоподобия
монотонно увеличивается в итерациях.
- В качестве простейшего модельного сигнала для тестирования генерации, обучения и сегментации с помощью СММ можно взять одномерный сигнал с тремя состояниями, в котором два состояния хорошо отличимы друг от друга, а третье состояние является промежуточным. Например, в первом состоянии мат.ожидание = 0 и дисперсия маленькая (скажем, 0.1). Во втором состоянии мат.ожидание = 1 и такая же дисперсия, как и в первом состоянии. В третьем состоянии мат.ожидание = 0, а дисперсия в несколько раз больше (скажем, 0.5).
- При тестировании генерации из модели СММ рекомендуется эксперимент с двухмерным сигналом, чтобы убедиться в корректности задаваемых корреляций
- Для наложения поведенческих актов на видео рекомендуется следующая процедура:
- Загрузить в MATLAB изображения с названиями поведенческих актов с помощью imread
- Небольшими блоками загружать в MATLAB кадры видео с помощью aviread, накладывать на них картинки с названиями поведенческих актов и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью imwrite. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра.
- Собрать полученные картинки в видео-файл с помощью бесплатной программы VirtualDub. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл.
Данные для выполнения задания
MAT-файл, содержащий данные для каждого кадра видео. В нем находится массив структур, где каждая структура соответствует одному кадру, а поля структуры имеют следующее значение:
- frame_number — номер кадра видео
- centre — координаты центра масс мыши
- nose — координаты предполагаемой точки носа мыши
- tail — координаты предполагаемой точки основания хвоста мыши
- contour — координаты точек контура мыши
- dist_centre — расстояние от центра масс мыши до центра арены
- dist_border — расстояние от центра масс мыши до ближайшей границы арены
- eigen_features — проекции контура мыши на собственные контура, полученные с помощью метода главных компонент
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «Задание 1. ФИО, номер группы». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований
- HMM_GENERATE.m
- HMM_TEST.m
- HMM_EM_TRAIN.m
- Ссылка на видео-файл, размещенный на файлообменнике или на видео-хостинге, с наложенными поведенческими актами. Лучше вставить видео-файл непосредственно внутрь PDF-файла с отчетом (это можно сделать, например, в программе Adobe Acrobat 9 и выше). Тогда нужно прислать ссылку на этот PDF-файл.
- Набор вспомогательных файлов при необходимости
Вариант 2
Формулировка задания
Рассматривается линейная динамическая система (ЛДС), в которой полное правдоподобие задается как:
Все переменные модели являются непрерывными, т.е. . Параметры модели
.
Данную ЛДС нужно использовать для решения задачи сопровождения (трекинга) объекта в пространстве. В частности, необходимо отфильтровать центр масс мыши на каждом кадре в видео-записи ее поведения в клетке.
Для выполнения задания необходимо:
- Реализовать алгоритм генерации выборки из вероятностной модели ЛДС;
- Реализовать алгоритм онлайн фильтрации сигнала с помощью фильтра Калмана;
- Реализовать алгоритм уточнения фильтрации сигнала с помощью РТС уравнений;
- Реализовать ЕМ-алгоритм обучения СММ при заданной размерности
. При этом часть параметров ЛДС также может быть задана пользователем;
- Реализовать алгоритм генерации траектории движения абстрактного объекта в двухмерном пространстве. Способ генерации такой траектории отдается на выбор студента;
- Протестировать реализованные алгоритмы на модельных данных;
- Отфильтровать центр масс мыши в видео-сигнале с помощью реализованных алгоритмов. Выбор параметров фильтрации отдается на выбор студента. Способ выбора этих параметров необходимо отразить в отчете;
- Наложить исходную траекторию центра масс мыши и отфильтрованную траекторию на видео с поведением;
- Написать отчет в формате PDF с описанием всех проведенных исследований. Данный отчет должен, в частности, включать в себя графики фильтрации сгенерированных траекторий, а также графики фильтрации центра масс мыши в увеличенном разрешении.
Спецификация реализуемых функций
Генерация выборки | |||||||
---|---|---|---|---|---|---|---|
[X, T] = LDS_GENERATE(N, A, G, C, S, mu0, V0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Обратите внимание: в процедуре LDS_GENERATE параметры D и d определяются неявно по размеру соответствующих элементов.
Фильтр Калмана и РТС уравнения | |||||||
---|---|---|---|---|---|---|---|
[Mus_back, Sigmas_back, Mus_fwd, Sigmas_fwd, LH, J] = LDS_forwardbackward(X, A, G, C, S, mu0, V0) | |||||||
ВХОД | |||||||
| |||||||
ВЫХОД | |||||||
|
Обучение | |||||||||
---|---|---|---|---|---|---|---|---|---|
[A, G, C, S, mu0, V0] = LDS_EM_TRAIN(X, D, InputParameters) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Генерация траектории | |
---|---|
X = TRAJECTORY_GENERATE(N) | |
ВХОД | |
| |
ВЫХОД | |
|
Рекомендации по выполнению задания
- При тестировании ЕМ-алгоритма обучения ЛДС рекомендуется убедиться в том, что значение неполного правдоподобия
монотонно увеличивается в итерациях.
- Простейшим способом генерации траектории объекта является генерация по скорости и ускорению, где ускорение иногда меняет величину и направление.
- Один из вариантов тестирования реализованных алгоритмов на основе ЛДС следующий:
- Сгенерировать траекторию движения объекта
- Добавить к траектории случайный нормальный шум
- Отфильтровать зашумленную траекторию с помощью фильтра Калмана; убедиться, что отфильтрованный сигнал ближе к истинной траектории, чем входной зашумленный сигнал.
- Отфильтровать зашумленную траекторию с помощью РТС уравнений; убедиться, что результат является более точным по сравнению с фильтром Калмана.
- При тестировании генерации из модели ЛДС рекомендуется эксперимент с двухмерным сигналом, чтобы убедиться в корректности задаваемых корреляций
- Для наложения траектории движения на видео рекомендуется следующая процедура:
- Загрузить в MATLAB изображения с названиями поведенческих актов с помощью imread
- Небольшими блоками загружать в MATLAB кадры видео с помощью aviread, накладывать на них траекторию движения за последние 300 кадров и сохранять полученные кадры в виде отдельных JPG картинок на диск с помощью imwrite. Сохраненные картинки должны иметь название XXXXX.jpg, где XXXXX — номер кадра.
- Собрать полученные картинки в видео-файл с помощью бесплатной программы VirtualDub. Для этого достаточно открыть первую картинку в программе (остальные загрузятся автоматически), установить частоту кадров 25fps, установить кодек (рекомендуется DivX) и сгенерировать AVI-файл.
Данные для выполнения задания
MAT-файл, содержащий данные для каждого кадра видео. В нем находится массив структур, где каждая структура соответствует одному кадру, а поля структуры имеют следующее значение:
- frame_number — номер кадра видео
- centre — координаты центра масс мыши
- nose — координаты предполагаемой точки носа мыши
- tail — координаты предполагаемой точки основания хвоста мыши
- contour — координаты точек контура мыши
- dist_centre — расстояние от центра масс мыши до центра арены
- dist_border — расстояние от центра масс мыши до ближайшей границы арены
- eigen_features — проекции контура мыши на собственные контура, полученные с помощью метода главных компонент
Для фильтрации траектории движения мыши понадобятся только значения координат центра масс мыши.
RAR архив с процедурой для MatLab, которая строит пиксельное представление линии по координатам начала и конца линии.
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «Задание 1. ФИО, номер группы». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований
- LDS_GENERATE.m
- LDS_forwardbackward.m
- LDS_EM_TRAIN.m
- TRAJECTORY_GENERATE.m
- Ссылка на видео-файл, размещенный на файлообменнике или на видео-хостинге, с наложенными исходной и фильтрованной траекториями движения центра масс мыши. Лучше вставить видео-файл непосредственно внутрь PDF-файла с отчетом (это можно сделать, например, в программе Adobe Acrobat 9 и выше). Тогда нужно прислать ссылку на этот PDF-файл.
- Набор вспомогательных файлов при необходимости