Практикум на ЭВМ (317)/2013-2014/BackgroundSubtraction
Материал из MachineLearning.
(→Восстановление плотности распределений. Вычитание фона) |
(→Оценка алгоритмов) |
||
Строка 19: | Строка 19: | ||
Для каждого кадра тестовой части последовательности можно оценить качество алгоритма, зная его верную разметку (директория groundtruth). Обратите внимание, что только часть каждого из кадров является областью интереса. Например, на последовательности traffic область интереса ограничивается дорогой. Зная, какие части изображения на самом деле относятся к фону (класс static) и к переднему плану (класс motion), можно оценить количество верных положительных (TP) и отрицательных (TN) обнаружений пикселей, а также ложноположительных (FP) и ложноотрицательных (FN). | Для каждого кадра тестовой части последовательности можно оценить качество алгоритма, зная его верную разметку (директория groundtruth). Обратите внимание, что только часть каждого из кадров является областью интереса. Например, на последовательности traffic область интереса ограничивается дорогой. Зная, какие части изображения на самом деле относятся к фону (класс static) и к переднему плану (класс motion), можно оценить количество верных положительных (TP) и отрицательных (TN) обнаружений пикселей, а также ложноположительных (FP) и ложноотрицательных (FN). | ||
+ | [http://www.machinelearning.ru/wiki/images/2/2d/BkgEstimCode.zip Здесь] можно скачать функции для подсвечивания маски переднего плана (<code>highlightMask.m</code>) и «проигрывания видео» (<code>showvid.m</code>), которые могут быть полезны для визуальной оценки качества. Пример работы функции <code>highlightMask</code>: | ||
+ | |||
+ | [[Изображение:BkgEstim.jpg]] [[Изображение:BkgEstimG.png]] | ||
== Реализация == | == Реализация == |
Версия 13:16, 2 декабря 2013
Статья в настоящий момент дорабатывается. Это предварительная версия задания. Пока не сто́ит приступать к выполнению. |
Содержание |
Восстановление плотности распределений. Вычитание фона
Вычитания фона — важная прикладная задача. Часто оно является первой стадией в системах анализа видео с камер наблюдения. Необходимо классифицировать пиксели видеопоследовательности на принадлежащие фону и принадлежащие объектам переднего плана. Обычно предполагается, что камера статична. По обучающей выборке необходимо оценить модель фона, чтобы затем для каждого пикселя каждого кадра тестовой видеопоследовательности уметь предсказать вероятность того, что он является фоном. Педполагая равномерное распределение на принадлежность пикселей объектам переднего плана (обычно нет априорных сведений, чтобы использовать другое распределение), принятие решения для данного пикселя эквивалентно сравнению предсказанной вероятности фона с некоторым порогом.
Часто (хотя и не всегда) в качестве обучающей выборки удаётся взять один или несколько кадров, на которых отсутствуют объекты переднего плана. Но даже в этом случае задача оценки модели фона не является тривиальной из-за того, что фон никогда не бывает полностью статичен: всегда есть шум камеры, также может меняться освещение, тени, камера может дрожать, фон может быть динамическим (листва или вода в присутствии ветра), к фону могут добавляться дополнительные объекты. Вам предлагается протестировать несколько моделей разной сложности и селать выводы о применимости моделей в разних ситуациях.
Данные
Вам предлагается использовать стандартные тестовые последовательности с веб-сайта ChangeDetection.net. Два набора данных являются обязательными:
- Baseline/pedestrians (train — 1:299; test — 300:1099),
- Camera jitter/traffic (train — [581:723, 752:951]; test — 1000:1570).
Вы можете использовать и другие последовательности для лучшего изучения свойств методов.
Оценка алгоритмов
Для каждого кадра тестовой части последовательности можно оценить качество алгоритма, зная его верную разметку (директория groundtruth). Обратите внимание, что только часть каждого из кадров является областью интереса. Например, на последовательности traffic область интереса ограничивается дорогой. Зная, какие части изображения на самом деле относятся к фону (класс static) и к переднему плану (класс motion), можно оценить количество верных положительных (TP) и отрицательных (TN) обнаружений пикселей, а также ложноположительных (FP) и ложноотрицательных (FN).
Здесь можно скачать функции для подсвечивания маски переднего плана (highlightMask.m
) и «проигрывания видео» (showvid.m
), которые могут быть полезны для визуальной оценки качества. Пример работы функции highlightMask
:
Реализация
Одномерная гауссиана
В самом простом варианте можно моделировать распределение цвета в каждом пикселе одномерным нормальным распределением. Для этого нужно перевести видеопоследовательность в полутоновую. Это можно сделать, например, с помощью формулы из стандарта NTSC: . Для каждого пикселя обучающей части последовательности оцените параметры нормального распределения, используя яркости в каждой позиции пикселя (например, для pedestrians будет 299 точек для оценки плотности в каждом пикселе). Обратите внимание, что некоторые гауссианы получаются вырожденными. Для регуляризации разумно ограничивать возможное значение среднеквадратичного отклонения снизу. Можно использовать . Далее, при классификации пикселя тестовой выборки, его нужно относить к фону тогда и только тогда, когда его яркость отклоняется от μ меньше, чем на kσ. Если установить k = 3, ожидается, что к переднему плану будут отнесены только 0.27% пикселей фона («правило 3σ»). Изменяя этот порог, можно регулировать соотношение между количеством ложноположительных и ложноортицательных обнаружений.
Реализуйте такую оценку фона и запустите на последовательности pedestrians. Проанализируйте качество вычитания фона с помощью трёх инструментов:
- Для каждого тестового кадра посчитайте количество ошибок 1 рода (FP) и 2 рода (FN). Постройте график зависимости ошибок от номера кадра. Какой эффект наблюдается?
- Проведите визуальную оценку. Для этого на каждом из кадров выделите области, отнесённые к переднему плану. Сделайте вывод о характере ошибок.
- Проведите оценку величин TPR и FPR (доли верноположительных и ложноположительных обнаружений, соответственно) по всей тестовой последовательности (не усредняя по кадрам) и постройте графики ROC характеристики. Это будет необходимо для сравнения различных моделей.