Участник:Anton/Песочница
Материал из MachineLearning.
Строка 28: | Строка 28: | ||
Для выполнения задания выдается: | Для выполнения задания выдается: | ||
- | # исходные изображения; | + | # исходные изображения: обучающая и тестовая выборки; |
- | # правильная | + | # правильная обучающей выборки изображений; |
- | # сегментация изображения на суперпиксели; | + | # сегментация изображения на суперпиксели; суперпиксели подсчитаны при помощи библиотеки [http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html BSR]; |
- | # признаки для каждого суперпикселя; вектором признаков является гистограмма по мешку из 128 слов, построенному по | + | # признаки для каждого суперпикселя; вектором признаков является гистограмма по мешку из 128 слов, построенному по [http://en.wikipedia.org/wiki/Scale-invariant_feature_transform SIFT]; признаки посчитаны при помощи библиотеки [http://www.vlfeat.org/ VLFeat]. |
+ | Для выполнения задания настоятельно рекомендуется использовать реализации структурного метода опорных векторов в библиотеке Торстена Йохимса SVM struct с интерфейсом под MATLAB от Андреа Ведальди: http://www.vlfeat.org/~vedaldi/code/svm-struct-matlab.html | ||
+ | === Описание форматов данных === | ||
+ | |||
+ | Названия файлов, относящихся к каждому объекту обучающей выборке, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы: | ||
+ | *само изображение: imgTrain_XXX.png | ||
+ | *правильная разметка изображения: imgTrain_XXX_groundtruth.png | ||
+ | *mat-файлы, содержащие признаки и суперпиксели для изображения: imgTrain_XXX_data.png. В каждом файле присутствуют следующие переменные: | ||
+ | ** superpixelMap — массив типа double размера, равного размеры изображения; каждому пикселю соответствует; | ||
+ | ** unaryFeatures — массив типа double размера количество суперпикселей на количество унарных признаков. | ||
+ | |||
+ | Названия файлов, относящихся к каждому объекту обучающей выборке, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы: | ||
+ | *само изображение: imgTest_XXX.png | ||
+ | *mat-файлы, содержащие признаки и суперпиксели для изображения: imgTest_XXX_data.png. В каждом файле присутствуют следующие переменные: | ||
+ | ** superpixelMap — массив типа double размера, равного размеры изображения; каждому пикселю соответствует; | ||
+ | ** unaryFeatures — массив типа double размера количество суперпикселей на количество унарных признаков. | ||
- | |||
=== Задание === | === Задание === | ||
- | * Вывести все формулы, | + | * Вывести все формулы, необходимые для решения задачи. |
- | * Реализовать | + | * Реализовать все процедуры обучения и тестирования для задачи сегментации изображений. |
- | + | * При помощи кросс-валидации получить оценку точности алгоритма на обучающей выборке. | |
- | + | * При помощи обученного сегментатора получить разметки тестовой выборки изображения. | |
- | + | ||
- | * | + | |
- | * | + | |
* Написать отчет в формате PDF с описанием всех проведенных исследований. | * Написать отчет в формате PDF с описанием всех проведенных исследований. | ||
=== Спецификация реализуемых функций === | === Спецификация реализуемых функций === | ||
{|class="standard" | {|class="standard" | ||
- | !'' | + | !''Обучение'' |
- | + | ||
- | + | ||
|- | |- | ||
- | |[ | + | |[model] = train_sSVM(unary, vertC, horC, metric) |
|- | |- | ||
|ВХОД | |ВХОД | ||
Строка 152: | Строка 161: | ||
*stereoTsukuba.m, stereoTeddy.m, stereoCones.m, stereoArt.m | *stereoTsukuba.m, stereoTeddy.m, stereoCones.m, stereoArt.m | ||
*Набор вспомогательных файлов при необходимости | *Набор вспомогательных файлов при необходимости | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- |
Версия 13:03, 17 апреля 2012
Задание находится в разработке. Не приступайте к выполнению задания до его официальной выдачи. |
|
Начало выполнения задания: 18 апреля 2012
Срок сдачи: 2 мая 2012, 23:59
Среда реализации для всех вариантов — MATLAB. Неэффективная реализация кода может негативно отразиться на оценке.
Сегментация изображений
В рамках данного задания рассматривается задача сегментации изображений на два класса: машина и фон.
Ответом (сегментацией изображения) является аргминимум бинарной субмодулярной функции совместимости (максимизация супермодулярной функции), состоящей из унарных и парных потенциалов.
Поскольку классы не сбалансированы (на изображениях пикселей фона намного больше, чем пикселей объекта), то ошибка сегментации определяется количеством правильно распознанных пикселей каждого класса, взвешенным на общее количество пикселей этого класса на изображении:
.
Здесь Y — текущая разметка изображения, Ŷ — правильная разметка; метка фона — 0, метка объекта — 1; все суммы берутся по всем пикселям изображения.
Для выполнения задания выдается:
- исходные изображения: обучающая и тестовая выборки;
- правильная обучающей выборки изображений;
- сегментация изображения на суперпиксели; суперпиксели подсчитаны при помощи библиотеки BSR;
- признаки для каждого суперпикселя; вектором признаков является гистограмма по мешку из 128 слов, построенному по SIFT; признаки посчитаны при помощи библиотеки VLFeat.
Для выполнения задания настоятельно рекомендуется использовать реализации структурного метода опорных векторов в библиотеке Торстена Йохимса SVM struct с интерфейсом под MATLAB от Андреа Ведальди: http://www.vlfeat.org/~vedaldi/code/svm-struct-matlab.html
Описание форматов данных
Названия файлов, относящихся к каждому объекту обучающей выборке, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы:
- само изображение: imgTrain_XXX.png
- правильная разметка изображения: imgTrain_XXX_groundtruth.png
- mat-файлы, содержащие признаки и суперпиксели для изображения: imgTrain_XXX_data.png. В каждом файле присутствуют следующие переменные:
- superpixelMap — массив типа double размера, равного размеры изображения; каждому пикселю соответствует;
- unaryFeatures — массив типа double размера количество суперпикселей на количество унарных признаков.
Названия файлов, относящихся к каждому объекту обучающей выборке, начинаются с названия объекта: imgTrain_{номер файла}. Для каждого объекта выданы следующие файлы:
- само изображение: imgTest_XXX.png
- mat-файлы, содержащие признаки и суперпиксели для изображения: imgTest_XXX_data.png. В каждом файле присутствуют следующие переменные:
- superpixelMap — массив типа double размера, равного размеры изображения; каждому пикселю соответствует;
- unaryFeatures — массив типа double размера количество суперпикселей на количество унарных признаков.
Задание
- Вывести все формулы, необходимые для решения задачи.
- Реализовать все процедуры обучения и тестирования для задачи сегментации изображений.
- При помощи кросс-валидации получить оценку точности алгоритма на обучающей выборке.
- При помощи обученного сегментатора получить разметки тестовой выборки изображения.
- Написать отчет в формате PDF с описанием всех проведенных исследований.
Спецификация реализуемых функций
Обучение | ||||||||
---|---|---|---|---|---|---|---|---|
[model] = train_sSVM(unary, vertC, horC, metric) | ||||||||
ВХОД | ||||||||
| ||||||||
ВЫХОД | ||||||||
|
Обратите внимание: в процедуре trwGridPotts параметры N, M, и K определяются неявно по размеру соответствующих элементов.
Стерео | |
---|---|
[disparity] = stereo(name) | |
ВХОД | |
| |
ВЫХОД | |
|
В каталоге, из которого будет запускаться решение при проверке, будет лежать выданный каталог datasets.
Рекомендации по выполнению задания
1. При разбиении MRF-решетки только на вертикальные и горизонтальные цепочки формулировка несколько упрощается:
- Каждое ребро графа принадлежит только одному подграфу, а, значит, не нужно вводить двойственные переменные, соответствующие ребрам.
- Каждая вершина принадлежит только двум деревьям, а, значит, можно ввести |P|K двойственных переменных, соответствующих условиям , где hor и vert обозначают горизонтальную и вертикальную цепочку, проходящую через p-ю вершину.
2. Поскольку двойственная функция вогнута и кусочно-линейна, оптимизировать ее можно при помощи алгоритма субградиентного подъема.
Каждый шаг метода субградиентного подъема состоит в пересчете значений двойственных переменных λ по следующему правилу:
где — субградиент в текущей точке, — параметр, отвечающий за длину сдвига.
В рамках данного практического задания можно использовать любой способ субградиентного подъема. Например, можно использовать следующий адаптивный метод выбора длины шага:
где — текущее значение двойственной функции, — оценка оптимума двойственной функции, которую можно определять следующим способом:
где — лучшее на данный момент значение двойственной функции,
— параметры метода. Обычно . Конкретные значения этих параметров нужно подобрать.
Подробнее о методах субградиентного подъема написано в статье: N. Komodakis, N.Paragios and G. Tziritas, MRF Energy Minimization and Beyond via Dual Decomposition, IEEE TPAMI, 33(3):531-552, 2011, http://www.csd.uoc.gr/~komod/publications/docs/DualDecomposition_PAMI.pdf
3. В качестве текущего значения энергии в рамках алгоритма TRW можно выбрать минимум энергий разметок, полученных по только вертикальным и только горизонтальным цепочкам.
4. При тестировании алгоритма TRW необходимо следить, чтобы наибольшее значение нижней границы было не больше, чем наименьшее значение энергии.
5. Потенциалы для стереопары tsukuba и примеры работы различных алгоритмов: http://vision.middlebury.edu/MRF/results/tsukuba/index.html
Данные для выполнения задания
rgb2luv — конвертер изображений в формат YUV.
datasets — стереопары.
Оформление задания
Выполненный вариант задания необходимо прислать письмом по адресу bayesml@gmail.com с темой «Задание 3. ФИО, вариант 1». Убедительная просьба присылать выполненное задание только один раз с окончательным вариантом. Новые версии будут рассматриваться только в самом крайнем случае. Также убедительная просьба строго придерживаться заданной выше спецификации реализуемых функций. Очень трудно проверять большое количество заданий, если у каждого будет свой формат реализации.
Письмо должно содержать:
- PDF-файл с описанием проведенных исследований (отчет должен включать в себя описание выполнения каждого пункта задания с приведением соответствующих графиков, изображений, чисел)
- trwGridPotts.m
- stereoTsukuba.m, stereoTeddy.m, stereoCones.m, stereoArt.m
- Набор вспомогательных файлов при необходимости