Графические модели (курс лекций)/2014/Задание 3
Материал из MachineLearning.
(Новая: {{main|Графические модели (курс лекций)/2014}} __NOTOC__ {{stop| '''Задание находится в стадии разработки.'''<br/> Не пр...) |
|||
Строка 20: | Строка 20: | ||
!''Вариант 1'': α-расширение || ''Вариант 2'': αβ-замена | !''Вариант 1'': α-расширение || ''Вариант 2'': αβ-замена | ||
|- | |- | ||
- | | | + | |Харациди О. || Рыжков А. |
|- | |- | ||
- | | | + | |Ульянов Д. || Горелов А. |
|- | |- | ||
- | | | + | |Антипов А. || Львов С. |
|- | |- | ||
- | | | + | |Сокурский Ю. || Новиков А. |
|- | |- | ||
- | | | + | |Алешин И. || Шадриков А. |
|- | |- | ||
- | | | + | | Ломов Н. || Никифоров А. |
|- | |- | ||
- | | | + | | Найдин О. || Шабашев Ф. |
|- | |- | ||
- | | | + | | Зиннурова Э. || Подоприхин Д. |
|- | |- | ||
- | | | + | | Корольков М. || Арбузова Д. |
|- | |- | ||
- | | | + | | Новиков М. (420) || Петров Г. |
+ | |- | ||
+ | | Шахуро В. (420) || Грингауз А. (320) | ||
+ | |- | ||
+ | | Ибадов Т. (420) || Старцев М. (420) | ||
|- | |- | ||
|} | |} | ||
Строка 53: | Строка 57: | ||
*переменные <tex> x_p </tex> дискретны и принимают значения из множества {1,…,K}, K ≥ 2, | *переменные <tex> x_p </tex> дискретны и принимают значения из множества {1,…,K}, K ≥ 2, | ||
*система соседства <tex>\mathcal{E} </tex> — прямоугольная решетка, | *система соседства <tex>\mathcal{E} </tex> — прямоугольная решетка, | ||
- | |||
- | === MRF для | + | === MRF для склеивания изображений === |
- | Задача | + | Задача склеивания изображений состоит в построении одного составного изображения на основе набора исходных изображений. В рамках данного задания предполагается, что все исходные изображения выровнены друг относительно друга. В этих условиях задачу можно решать при помощи минимизации энергии, переменные которой соответствуют номеру изображения, из которого взят конкретный пиксель. |
- | Для задачи | + | Для задачи склеивания энергия строится следующим образом: |
- | *Переменная <tex>x_p</tex> соответствуют | + | *Переменная <tex>x_p</tex> соответствуют финального изображения. |
*Используется стандартная 4-х связная система соседства. | *Используется стандартная 4-х связная система соседства. | ||
- | *Унарные потенциалы должны показывать, | + | *Унарные потенциалы должны показывать, из каких изображений должны быть взяты некоторые пиксели (так называемые семена). |
- | * | + | *Парные потенциалы должны поощрять 1) короткие разрезы и 2) расположение разреза там, где изображения хорошо соответствуют друг другу. |
- | + | ||
В рамках данного задания рассматривается задача поиска конфигурации, обладающей минимальной энергией. Вариант 1 работает с алгоритмом α-расширение, вариант 2 — αβ-замена. Далее в задании алгоритм соответствующего варианта обозначается ''алгоритм''. | В рамках данного задания рассматривается задача поиска конфигурации, обладающей минимальной энергией. Вариант 1 работает с алгоритмом α-расширение, вариант 2 — αβ-замена. Далее в задании алгоритм соответствующего варианта обозначается ''алгоритм''. | ||
Строка 71: | Строка 73: | ||
* Реализовать ''алгоритм'', используя выданный код разрезов графов. | * Реализовать ''алгоритм'', используя выданный код разрезов графов. | ||
* Протестировать ''алгоритм'' на модельных данных. | * Протестировать ''алгоритм'' на модельных данных. | ||
- | * Реализовать процедуру решения задачи | + | * Реализовать процедуру решения задачи склеивания двух изображений. Построить не менее 1 композиции, состоящей их двух частей. |
- | * | + | * Реализовать процедуру склеивания произвольного числа изображений. Построить не менее 1 композиции, состоящей их не менее 4-х частей. |
- | * На | + | * На задаче склеивания Вашего набора изображений сравнить работу алгоритмов α-расширение и αβ-замена. Реализацию недостающего алгоритма можно взять у товарища, выполняющего другой вариант (в отчете обязательно указывать, чей код вы используете). Требуется провести сравнение по энергии получаемого решения, по времени работы, по визуальному качеству решения. Все выводы должны быть подтверждены числами, графиками, картинками. |
* Написать отчет в формате PDF с описанием всех проведенных исследований. | * Написать отчет в формате PDF с описанием всех проведенных исследований. | ||
Строка 129: | Строка 131: | ||
!''Стерео'' | !''Стерео'' | ||
|- | |- | ||
- | |[ | + | |[resultImage, resultMask] = stichImages(images, seeds) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 135: | Строка 137: | ||
| | | | ||
{|border="0" | {|border="0" | ||
- | | | + | |images — набор исходных изображений, cell array размера K x 1, где K – кол-во изображений. Все изображения должны быть одинакового разрешения и содержать ровно 3 цветовых канала. |
+ | |- | ||
+ | |seeds — маски, заданные пользователем, cell array размера K x 1. Каждый элемент - логический массив размера, равного разрешению изображений, в котором значение true означает, что соответствующий пиксель должен быть взят из соответствующего изображения. | ||
|} | |} | ||
|- | |- | ||
Строка 142: | Строка 146: | ||
| | | | ||
{| | {| | ||
- | | | + | |resultImage — построенное изображение. |
+ | |- | ||
+ | |resultMask — маска ответа, массив типа double, по размеру равный разрешению изображения. Элемент results(i,j) равен k, если в построенном изображении пиксель (i, j) взят из исходного изображения номер k. | ||
|} | |} | ||
|} | |} | ||
- | |||
=== Рекомендации по выполнению задания === | === Рекомендации по выполнению задания === | ||
Строка 152: | Строка 157: | ||
#* после каждого применения разреза графа общая энергия не возрастает; | #* после каждого применения разреза графа общая энергия не возрастает; | ||
#* значение энергии, выдаваемое функцией graphCutMex, совпадает со значением энергии, подсчитанным независимой процедурой. | #* значение энергии, выдаваемое функцией graphCutMex, совпадает со значением энергии, подсчитанным независимой процедурой. | ||
- | # | + | # Обратите внимание, что для достижения хорошего качества решения задачи склеивания, возможно придется изменить интерфейс, выданный в задании. |
=== Данные для выполнения задания === | === Данные для выполнения задания === | ||
[[Media:GM_GraphCut.zip|graphCut]] — MATLAB интерфейс к разрезам графов. | [[Media:GM_GraphCut.zip|graphCut]] — MATLAB интерфейс к разрезам графов. | ||
- | |||
- | |||
- | |||
- | |||
=== Оформление задания === | === Оформление задания === | ||
- | Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «[ | + | Выполненный вариант задания необходимо прислать письмом по адресу ''bayesml@gmail.com'' с темой «[ГМ14] задание 3, вариант X, фамилия». Убедительная просьба присылать выполненное задание '''только один раз''' с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации. |
Письмо должно содержать: | Письмо должно содержать: | ||
*PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел) | *PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел) | ||
*Все исходные файлы, реализованные в рамках настоящего задания. Убедитесь, что Ваши файлы работают и соответствуют прототипам! | *Все исходные файлы, реализованные в рамках настоящего задания. Убедитесь, что Ваши файлы работают и соответствуют прототипам! | ||
+ | *Не менее двух склеенных изображений и соответствующих им наборов исходных. | ||
[[Категория:Учебные курсы]] | [[Категория:Учебные курсы]] |
Версия 12:34, 29 марта 2014
Задание находится в стадии разработки. Не приступайте к выполнению задания, пока это объявление не убрано. |
Начало выполнения задания: 1 апреля 2014 г.;
Срок сдачи: 14 апреля 2014 г. (понедельник), 23:59.
Среда для выполнения задания — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Задание состоит из двух вариантов. Распределение вариантов задания по студентам:
Вариант 1: α-расширение | Вариант 2: αβ-замена |
---|---|
Харациди О. | Рыжков А. |
Ульянов Д. | Горелов А. |
Антипов А. | Львов С. |
Сокурский Ю. | Новиков А. |
Алешин И. | Шадриков А. |
Ломов Н. | Никифоров А. |
Найдин О. | Шабашев Ф. |
Зиннурова Э. | Подоприхин Д. |
Корольков М. | Арбузова Д. |
Новиков М. (420) | Петров Г. |
Шахуро В. (420) | Грингауз А. (320) |
Ибадов Т. (420) | Старцев М. (420) |
Марковское случайное поле
Марковское случайное поле (MRF) — графическая модель, энергия которой записывается в виде:
где P — множество индексов переменных, — система соседства, D — унарные потенциалы, V — парные потенциалы.
Рассмотрим модель со следующими ограничениями:
- переменные дискретны и принимают значения из множества {1,…,K}, K ≥ 2,
- система соседства — прямоугольная решетка,
MRF для склеивания изображений
Задача склеивания изображений состоит в построении одного составного изображения на основе набора исходных изображений. В рамках данного задания предполагается, что все исходные изображения выровнены друг относительно друга. В этих условиях задачу можно решать при помощи минимизации энергии, переменные которой соответствуют номеру изображения, из которого взят конкретный пиксель.
Для задачи склеивания энергия строится следующим образом:
- Переменная соответствуют финального изображения.
- Используется стандартная 4-х связная система соседства.
- Унарные потенциалы должны показывать, из каких изображений должны быть взяты некоторые пиксели (так называемые семена).
- Парные потенциалы должны поощрять 1) короткие разрезы и 2) расположение разреза там, где изображения хорошо соответствуют друг другу.
В рамках данного задания рассматривается задача поиска конфигурации, обладающей минимальной энергией. Вариант 1 работает с алгоритмом α-расширение, вариант 2 — αβ-замена. Далее в задании алгоритм соответствующего варианта обозначается алгоритм.
Задание
- Вывести все формулы, использующиеся в вашей реализации алгоритма (сведение шага алгоритма к разрезу графа).
- Реализовать алгоритм, используя выданный код разрезов графов.
- Протестировать алгоритм на модельных данных.
- Реализовать процедуру решения задачи склеивания двух изображений. Построить не менее 1 композиции, состоящей их двух частей.
- Реализовать процедуру склеивания произвольного числа изображений. Построить не менее 1 композиции, состоящей их не менее 4-х частей.
- На задаче склеивания Вашего набора изображений сравнить работу алгоритмов α-расширение и αβ-замена. Реализацию недостающего алгоритма можно взять у товарища, выполняющего другой вариант (в отчете обязательно указывать, чей код вы используете). Требуется провести сравнение по энергии получаемого решения, по времени работы, по визуальному качеству решения. Все выводы должны быть подтверждены числами, графиками, картинками.
- Написать отчет в формате PDF с описанием всех проведенных исследований.
Спецификация реализуемых функций
Алгоритм | |||||||||
---|---|---|---|---|---|---|---|---|---|
[labels, energy, time] = alphaExpansionGridPotts(unary, vertC, horC, metric) | |||||||||
[labels, energy, time] = alphaExpansionGridPotts(unary, vertC, horC, metric, options) | |||||||||
[labels, energy, time] = alphaBetaSwapGridPotts(unary, vertC, horC, metric) | |||||||||
[labels, energy, time] = alphaBetaSwapGridPotts(unary, vertC, horC, metric, options) | |||||||||
ВХОД | |||||||||
| |||||||||
ВЫХОД | |||||||||
|
Обратите внимание: в процедурах alphaExpansionGridPotts и alphaBetaSwapGridPotts параметры N, M, и K определяются неявно по размеру соответствующих элементов.
Стерео | ||
---|---|---|
[resultImage, resultMask] = stichImages(images, seeds) | ||
ВХОД | ||
| ||
ВЫХОД | ||
|
Рекомендации по выполнению задания
- Обратите внимание на область применимости алгоритма.
- При тестировании алгоритма необходимо следить за следующим:
- после каждого применения разреза графа общая энергия не возрастает;
- значение энергии, выдаваемое функцией graphCutMex, совпадает со значением энергии, подсчитанным независимой процедурой.
- Обратите внимание, что для достижения хорошего качества решения задачи склеивания, возможно придется изменить интерфейс, выданный в задании.
Данные для выполнения задания
graphCut — MATLAB интерфейс к разрезам графов.
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «[ГМ14] задание 3, вариант X, фамилия». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел)
- Все исходные файлы, реализованные в рамках настоящего задания. Убедитесь, что Ваши файлы работают и соответствуют прототипам!
- Не менее двух склеенных изображений и соответствующих им наборов исходных.