Задание 1. Минимизация энергии с помощью разрезов графа.

Начало: 14 октября 2008
Конец: 28 октября 2008 (23:59)


Цель задания

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

Описание задания

Задание состоит из 2 частей.

Интерактивная сегментация изображений

Вход:

  • произвольное изображение I (n x m пикселей)
  • маска семян M (n x m пикселей)
    • 128 - пусто
    • 255 - семя объекта
    • 0 - семя фона
  • параметр Lambda (double)
  • параметр Sigma (double)

Выход:

  • изображение Cutout (n x m пикселей) – исходное изображение I, в котором фон закрашен черным цветом.

Семена объекта и фона задают жесткие ограничения на сегментацию (пиксели – семена объекта обязательно должны принадлежать объекту, семена фона – фону).

Итоговая сегментация изображения получается минимизацией следующей энергией (при условии наложенных жестких ограничений):

В базовом варианте
,
где , , - расстояние между пикселями p и q

Значения σ и λ по умолчанию нужно подобрать вручную.

Бонус: семена также служат для сбора статистики цвета объекта и фона. Распределение цветов объекта и фона моделируются нормальным распределением (трехмерным).

При этом

Склейка изображений (создание коллажей)

Вход:

  • изображение I1 (n x m пикселей)
  • бинарная маска M1 (n x m пикселей)
    • 0 – ничего
    • 255 – данный пиксель должен браться из данного изображения

  • изображение I2 (n x m пикселей)
  • бинарная маска M2 (n x m пикселей)
    • 0 – ничего
    • 255 – данный пиксель должен браться из данного изображения

Выход:

  • склеенное изображение Collage (n x m пикселей).

Бинарные маски задают жесткое ограничение на склейку. Если M1(x,y)=255, то пиксель Collage(x, y) должен быть равным I1(x,y). Аналогично с M2 и I2. Если M1(x,y)=M2(x,y)=255, то в данном пикселе жесткое ограничение снимается.

Склейка изображений происходит с помощью минимизации следующей энергии (при условии наложенных жестких ограничений):


, где - цвет изображения номер m в пикселе p.

Бонус: прислать 1-2 удачных примерах коллажа (исходные изображения + маски, результат).

Подсказка:

  • для сшивки 2 изображений их нужно выровнить относительно друг друга (например, если это изображения лиц 2 людей, то положения основных черт лица должны быть одинаковыми).

Оформление задания

Архив, содержащий:

- readme.txt – с ФИО сдающего, и возможно какими-то комментариями к заданию
- файл Segment.m, в котором должна быть прописана функция
   Cutout = Segment(SrcImage, SeedMask, Lambda, Sigma)
- файл Stitch.m, в котором должна быть прописана функция
   Collage = Stitch(SrcImage1, Mask1, SrcImage2, Mask2)
-(*) набор вспомогательных файлов, требующихся для работы Segment.m и Stitch.m
-(*) папка с удачными примерами коллажей (исходные изображения + маски, полученный результат)

Исходные данные

Mex-функция для нахождения минимального разреза в графе, пример ее вызова.

Вопросы

Вопросы по заданию можно задать либо на очередной лекции, либо на форуме.

© Лаборатория компьютерной графики при ВМиК МГУ