Введение - Белорусский государственный университет

advertisement
Министерство образования Республики Беларусь
Учреждение образования
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Конкурс научных работ студентов Республики Беларусь
по естественным и техническим наукам
СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ ВЫДЕЛЕНИЯ
ДВИЖУЩИХСЯ ОБЪЕКТОВ
Автор: Шиманский Артем Юрьевич
Группа 250501, курс 4
Факультет компьютерных систем и сетей
Научный руководитель: Садыхов Рауф Хосровович
доктор технических наук, профессор
кафедра ЭВМ
Минск 2006
Оглавление
Введение......................................................................................................... 3
Постановка задачи ........................................................................................ 3
Простейший алгоритм и его проблемы ...................................................... 4
Изменения заднего плана ......................................................................... 5
Изменение освещения .............................................................................. 6
Движущиеся тени ...................................................................................... 6
Динамический задний план ..................................................................... 7
Шум камеры .............................................................................................. 7
Применение низкочастотного фильтра рекурсивного сглаживания ....... 7
Σ-Δ – метод .................................................................................................... 7
Метод обнаружения существенных движений .......................................... 9
Алгоритмы, основанные на вероятностных моделях.............................. 11
Нормальное распределение.................................................................... 11
Смесь нормальных распределений ....................................................... 12
Обнаружение теней ..................................................................................... 15
Литература ................................................................................................... 17
Введение
Нахождение и отслеживание движущихся объектов в видеопотоке
является важной задачей для таких приложений, как охранные системы,
системы анализа потока машин на автомагистрали, smart room и т.д. Часто
первым шагом к решению этих задач является выделение переднего плана. В
данной работе будет рассмотрено несколько методов вычитания фона
(background subtraction), применяемых для решения этой задачи. Методы
вычитания фона - это методы, которые строят модель заднего плана сцены и
на каждом кадре производят попиксельное сравнение текущего значения в
каждом пикселе с моделью и в соответствии с результатами сравнения
принимают решение, принадлежит пиксель к заднему плану или к
переднему. Также в работе будут описаны основные проблемы, с которыми
эти методы сталкиваются, и будут рассмотрены решения некоторых из них.
Постановка задачи
Будем
считать,
что
с
видеокамеры
поступают
полутоновые
изображения. Пусть первые n кадров перед видеокамерой не происходит
никакого движения, а, начиная с n+1 кадра, перед камерой могут появляться
объекты интереса, т.е. люди, машины или что-то еще.
Тогда для каждого кадра последовательности требуется получить
бинарное изображение (маску) переднего плана (движущихся объектов). В
полученной маске 0/черный соответствует заднему плану, а 1/белый
соответствует переднему плану.
Стоит дополнительно заметить, что требование о том, что первые n
кадров перед камерой не происходит никакого движения, не всегда может
быть
выполнено.
В
качестве
примера
можно
рассмотреть
видеопоследовательность с видом на улицу, на которой находится дерево с
качающимися от ветра листьями. Подобное явление мы будем называть
динамическим задним планом. Таким образом, данное требование можно
заменить на то, что первые n кадров перед камерой не появляется никаких
объектов интереса, т.е. виден только задний план, статический или
динамический.
Простейший алгоритм и его проблемы
Алгоритм сохраняет первый кадр видеопоследовательности, а потом
для каждого следующего кадра применяет порог к модулю разности
текущего и сохраненного изображения по каждому пикселю. Итак:
Сохраняем первое изображение видеопоследовательности. Обозначим
его B .
Для каждого следующего кадра (обозначим текущий кадр
применяется
пороговый
фильтр
к
разности
фона
и
кадра.
I)
Если
B[i][ j ]  I [i][ j ]   , i  0..w, j  1..h , где w и h это ширина и высота картинки
соответственно, то пиксель [i][ j ] считается переднеплановым, иначе он
считается заднеплановым.
Для устранения шума к полученному бинарному изображению можно
применить медианный фильтр или операции мат. морфологии.
Рис. 1. Виды ошибок
Отметим 2 вида ошибок такого алгоритма: переднеплановый пиксель
был классифицирован как заднеплановый (например, в следствие шума или
из-за того, что цвет переднепланового объекта совпадает с цветом заднего
плана) и заднеплановый пиксель был классифицирован как переднеплановый
(например
из-за
шума).
Изменяя
параметр
 (порог)
и
параметры
последующей фильтрации можно регулировать чувствительность алгоритма
т.е. уровни этих ошибок. Несомненными достоинствами данного алгоритма
является
исключительная
простота
реализации
и
высокая
производительность. Не смотря на эти достоинства существует ряд проблем,
которые делают этот алгоритм практически неприменимым на практике.
Изменения заднего плана
Представим
себе
следующую,
вполне
реальную,
ситуацию:
видеокамера установлена на улице и в поле ее видимости находится машина,
через некоторое время приходит хозяин машины садится в нее и уезжает.
Подобная ситуация является большой проблемой для изложенного алгоритма
вычитания фона. Дело в том, что после того, как машина уедет, камере
откроется часть сцены, которую машина собой загораживала. Эта часть
сцены в общем случае будет иметь цвет отличный от цвета машины и, таким
образом, будет восприниматься алгоритмом как передний план.
Рис. 2. Изменение заднего плана
Сверху первый кадр последовательности. Обратите внимание на
коробку на столе. Снизу кадр и результаты сегментации, после того, как
коробку со стола убрали.
Если в заднем плане сцены подобного рода изменения будут
происходить достаточно часто, то в итоге большая часть сцены будет
сегментироваться в передний план и данные сегментации будут совершенно
непригодны для анализа и обработки.
Изменение освещения
Изменения освещения практически полностью меняют цветовые
характеристики сцены. В итоге из-за сильного изменения освещения
алгоритм будет сегментировать в передний план большую часть сцены, что,
разумеется, совершенно неприемлемо. Стоит разбить изменения освещения
на 2 группы: быстрые (такие, например, как включение света в комнате) и
медленные (например, изменение освещения в течение дня). С медленными и
быстрыми изменениями освещения можно бороться по-разному.
Движущиеся тени
Найти тень на изображении или в видеопотоке для человека не
составляет никакого труда в то время как автоматическое нахождение теней довольно сложная задача. Алгоритм вычитания фона сталкивается с
проблемой движущихся теней, т.е. теней от движущихся объектов сцены.
Дело в том, что падение тени на объект довольно сильно меняет цвет
объекта, и именно поэтому изложенный выше алгоритм классифицирует
тени как передний план.
Рис. 3. Движущиеся тени
Динамический задний план
Изложенный алгоритм не в состоянии также справиться с проблемой
динамического
заднего
плана.
Запомнив
первый
кадр
видеопоследовательности алгоритм в дальнейшем будет сегментировать
такие “неинтересные” движения, как, например, движение листьев на дереве
или движение воды в передний план.
Шум камеры
Разные камеры шумят по-разному, и это также может быть проблемой
для данного алгоритма вычитания фона. Неадаптивный порог приходится
настраивать вручную для разных камер и разных настроек камеры поразному, что, разумеется, нежелательно для автоматических систем.
Применение низкочастотного фильтра рекурсивного
сглаживания
Данный метод предполагает плавное изменение модели фона с каждым
кадром
путем
применения
низкочастотного
фильтра
рекурсивного
сглаживания.
Bt 1[i][ j ]  (1   )  Bt ( x)  a  It 1[i][ j],   0 1 ,
B0  I 0 ,
где  - параметр, влияющий на скорость обучения, Bi - модель фона на
i-м кадре, I i - i-е изображение.
Далее, как и в предыдущем методе, к
разности фона и кадра
применяется пороговый фильтр.
Данный метод хорош тем, что очень прост в реализации, имеет
высокую производительность, применим в условиях плавного изменения
освещения, однако он не решает проблем динамического заднего плана.
Σ-Δ – метод
В рассмотренных методах ко всему изображению применялся одна и та
же пороговая величина. Данный метод основан на применении Σ-Δ фильтра
для оценки статистических параметров каждого пикселя кадра. Метод
состоит из четырех этапов:
1. Первая оценка фона.
Инициализация: Для каждого пикселя x выполняется M 0  x   I 0  x 
Для каждого кадра t:
Для каждого пикселя x: если M t 1  x   I t  x , то M t  x   M t 1  x   1
eсли M t 1  x   I t  x  , то M t  x   M t 1  x   1
где It—входная последовательность, Mt—оцененное значение фона, т.е.
аппроксимированная медиана It.
2. Вычисление абсолютной разности между медианой Mt и
изображением It:
 t  M t x   I t x  .
3. Оценка среднеквадратического отклонения Vt:
Инициализация: Для каждого пикселя Х выполняется V0  x    0  x 
Для каждого кадра t: Для каждого пикселя Х такого что  t  x   0 :
если Vt 1  x   N *  t  x  , то Vt  x   Vt 1  x   1
если Vt 1  x   N *  t  x  , то Vt  x   Vt 1  x   1
Поскольку нас интересуют пиксели, которые изменяют свое значение
значительно со временем, то мы применяем
   фильтрование к
последовательности N разностей (  t ), отличных от нуля.
4. Обнаружение задне- и переднеплановых пикселей (0 или 1)
выполняем просто сравнением  t и Vt:
если  t  x   Vt  x  , то  t  x   0 - фон, иначе  t  x   1 - передний план.
Рис. 4. Σ-Δ метод
Данный алгоритм решает проблему шума камеры т.к. имеет
адаптивный вероятностный порог, применим при плавном изменении
освещения.
Метод обнаружения существенных движений
Данный метод производит выделение движущихся объектов на
динамическом фоне.
Алгоритм выделения основывается на предположении, что объект
движется равномерно, относительно медленно и в одном направлении.
Этапы алгоритма:
1. Построение модели фона любым из алгоритмов.
2. Вычитание кадра из фона.
Рис. 5. Разность кадра и фона
3. Нахождение
перемещения
каждого
пикселя
разности
(посчитанной на 2-ом этапе) за один кадр (методом ЛукасаКанаде).
Рис. 6. Смещение пикселей
4. К X-, Y-компонентам перемещения применяется Temporal Filter:
из всех найденных «движущихся» пикселей выбираются те,
которые движутся в одном направлении на протяжении N кадров,
а все колебания отфильтровываются. Это и будет интересующие
нас движущиеся объекты
Рис. 7. Результат применения Temporal Filter
5. После применения TEMPORAL FILTERа границы движущихся
объектов оказываются меньше реальных, поэтому во избежание
этого, а также разделения одного движущегося объекта,
накладывается маска МхМ. Если в ней присутствует хоть один
«движущийся» пиксель, то все остальные пиксели, вошедшие в
маску, тоже становятся «движущимися» и добавляются к
переднему плану.
Рис. 8. Конечный результат
Данный метод применим при работе с динамическим фоном
(шевеление листьев, брызги фонтана, волны). Однако существует ряд
недостатков: данный метод работает неправильно при зигзагообразном,
хаотичном движении, при быстром перемещении объекта, а также может
работать неправильно, если объект резко остановился.
Алгоритмы, основанные на вероятностных моделях
Нормальное распределение
Будем считать, что с камеры поступают полутоновые изображения.
Данный алгоритм моделирует каждый пиксель заднего плана с помощью
одномерной нормально распределенной случайной величины т.е.
B
N ( x,  ,  2 )
Первые n кадров (когда камере виден только задний план) для каждого
пикселя алгоритм производит оценку параметров модели, т.е.  и  2
используя аппарат математической статистики, а потом, после того как
обучение закончено, попиксельно использует вероятностный порог для того,
чтобы определить принадлежит ли значение пикселя заднему плану или
переднему. Итак:
1. Обучение модели заднего плана по первым n кадрам. Для оценки
параметров модели
выборочное
и
среднее
для каждого пикселя можно применять
и
среднее
квадратичное
отклонение
1
n
n
значений в данном пикселе т.е.     X i ,  2 
где X1
i 1
n
1
  ( X i   )2 ,
n  1 i 1
X n – значения в пикселе по первым n кадрам.
2. Далее для каждого следующего кадра и для каждого пикселя.
Обозначим за с значение в текущем кадре для (i,j) пикселя.
Если
 c
 e то данный пикселя сегментируется в задний план,

иначе он сегментируется в передний план.
3. Для устранения шума к полученному бинарному изображению
можно применить медианный фильтр или операции мат.
морфологии
Параметр e влияет на чувствительность алгоритма и выбирается из
следующих соображений. Фиксируется некоторое число a  (0,1) . После этого
  
относительно e решается уравнение P 



 e   a , где 

N (  ,  2 ) . Число a
есть ни что иное, как вероятность того, что отклонение, вызванное шумом
камеры, попадет в указанную выше e-окрестность. Очень часто пользуются e
= 3 (т.н. Mahalanobis distance), которому соответствует значение a  0.98 .
Данный алгоритм решает проблему шума камеры т.к. имеет адаптивный
вероятностный порог, но все остальные проблемы остаются в силе. Заметим,
что данный алгоритм допускает реализации не только для полутоновых но и,
например, для RGB изображений, что улучшает качество работы алгоритма.
При реализации в RGB следует использовать 3-хмерное нормальное
распределение вместо одномерного и построить вероятностный порог для 3х
мерной сл. величины.
Смесь нормальных распределений
Алгоритм создает попиксельную модель сцены используя смесь
нормальных распределений и с поступлением каждого нового кадра
обновляет модель и классифицирует каждый пиксель как принадлежащий к
заднему или к переднему плану. Таким образом

1
2
,
где
N
(
x
,

,

)


e
w

N
(
x
,

,

)
p

p
p
p
2  
p 1
k
S
2
p
( x   )2
2 2
Каждому слагаемому в сумме соответствует процесс в пикселе сцены,
который характеризуется параметрами нормального распределения (мат.
ожиданием и дисперсией) и коэффициентом w, который называется весом и
является показателем того, насколько часто данный процесс в данном
пикселе попадал в поле зрения камеры. Параметр k (максимальное
количество гауссианов) выбирается в соответствии с ресурсами компьютера,
обычно берут значения от 3 до 5. Используя и обучая такую модель можно
создать
алгоритм,
который
справляется
практически
со
всеми
перечисленными выше проблемами (кроме движущихся теней).
Будем считать, что с камеры поступают полутоновые изображения.
Итак:
1. На первом кадре видеопоследовательности происходит инициализация
модели. В каждом пикселе создается один процесс со след. параметрами:
2
w  1,   c,  2   std
, где с - текущее значение в данном пикселе а  std2 –
дисперсия
по
умолчанию
(выбирается
вручную).
Все
пиксели
сегментируются в задний план.
2. Для каждого следующего кадра и для каждого пикселя:
2.1. Поиск процесса, которому удовлетворяет значение данного пикселя c.
Для каждого процесса в модели применяется порог
 c
 e . Если

текущее значение с для некоторого процесса удовлетворяет порогу, то
данный процесс помечается как текущий и переходим к пункту 2.3.
Если порог не выполнился ни для одного процесса, то переходим к
пункту 2.2.
2.2. Создание нового процесса. Оценки мат. ожидания и дисперсии
выбираются следующим образом:   c,  2   std2 . Если количество
процессов в модели уже равно k, то ищется процесс с наименьшим
весом, его вес не меняется, а остальные параметры приравниваются к
параметрам нового процесса, данный процесс помечается как текущий
и переходим к пункту 2.5. Если количество процессов в модели еще не
достигло максимума то новый процесс добавляется к списку
процессов, его вес приравнивается 0, этот процесс помечается как
текущий и переходим к пункту 2.4.
2.3. Обновление статистики текущего процесса. Оценки мат. ожидания и
дисперсии
обновляются
с
помощью
низкочастотного
фильтра
рекурсивного сглаживания. Обозначим за t 1 и  t21 оценки параметров
текущего процесса на предыдущем шаге, а  t и  t2 оценки на текущем
шаге, тогда
t  (1  a1 )  t 1  a1  c ,
 t2  (1  a2 )   t21  a2  c , где
a1 , a2
–
параметры фильтра позволяющие регулировать скорость обучения.
2.4. Обновление весов процессов. Обозначим за wi ,t 1 вес i-того процесса на
предыдущем шаге, а за wi ,t вес i -того процесса на текущем шаге, тогда
wi ,t  (1  a3 )  wi ,t 1  a3  M (i ) , где a3 – параметр отвечающий за скорость
изменение веса, а M (i) – функция равная 1 при i равном индексу
текущего процесса и равная 0 при всех остальных значениях i.
2.5. Классификация пикселя. Алгоритм классификации очень прост:
применение порога к весу текущего процесса. Если значение веса
текущего процесса больше чем значение порога, то пиксель
классифицируется как заднеплановый, иначе он классифицируется как
переднеплановый. Порог следует выбирать из интервала (0,1).
3. Для устранения шума к полученному бинарному изображению можно
применить медианный фильтр или операции мат. морфологии
Метод,
используемый
для
классификации
пикселей
очевидно
допускает принадлежность к заднему плану сразу нескольких процессов.
Именно по этому при наличии динамического заднего плана алгоритм через
некоторое время адаптируется к его повторяющимся движениям. Более того,
алгоритм способен адаптироваться к таким движениям сцены как дождь или
снег. Также алгоритм способен адаптироваться к изменениям заднего плана
т.к. через некоторое время после изменения вес созданного при изменении
процесса превысит порог и он начнет сегментироваться в задний план. К
медленным изменениям освещения алгоритм способен адаптироваться
благодаря системе оценки параметров, т.к. по мере плавного изменения цвета
пикселей заднего плана алгоритм будет переобучаться на новые значения. К
быстрым изменениям освещения алгоритм адаптируется также, как он
адаптируется к изменениям заднего плана.
Обнаружение теней
Точное обнаружение и подавление движущихся теней является одной
из главных проблемы алгоритмов вычитания фона т.к. каждый движущийся
объект отбрасывает тень. Это может привести к серьезным искажениям
формы объектов, а также может приводить к тому, что разные объекты
сольются в один, что может сильно усложнить дальнейший анализ и
обработку. Читателю предлагается алгоритм тенеподавления, использующий
локальные (попиксельные) свойства теней.
Рассмотрим некоторую точку сцена и пусть она имеет цвет ( R, G, B) ,
тогда после падения на эту точку тени она будет иметь цвет a  ( R, G, B) , где
коэффициент a определяет то, насколько упала освещенность в точке.
Оказывается, что этого факта вполне достаточно, чтобы построить неплохую
систему подавления теней. Алгоритм тенеподавления будет изложен для
RGB реализации алгоритма с одним нормальным распределением, но по
аналогии данную систему тенеподавления можно интегрировать в алгоритм с
порогом и алгоритм с смесью нормальных распределений. Пусть ( R1 , G1 , B1 ) –
цвет заднего плана в некотором пикселе (т.е. оценка мат. ожидания 3х
мерной случайной величины, моделирующей задний план в данном пикселе)
а ( R2 , G2 , B2 ) – текущее значение в этом пикселе. Сперва перейдем в цветовое
пространство YUV т.е. ( Ri , Gi , Bi )  (Yi ,Ui ,Vi ), i  1, 2 . В YUV компонента Y
определяет интенсивность а компоненты U,V определяют цветность. Таким
образом, при падении тени на объект значение Y должно серьезно
уменьшится, а значения U,V практически не поменяются. Таким образом,
текшее
значение
в
пикселе
классифицируется
как
тень,
если
U1  U 2   , V1  V2   , Y2  Y1 , где α,β – значения порогов определяющие
чувствительность системы тенеподавления. Стоит заметить что это не
единственный метод подавления теней использующий их локальные
свойства. В [3] можно прочитать про похожую систему, которая использует
HSV вместо YUV.
Рис. 9. Результат подавления теней
Литература
1. Ismail Haritaoglu, David Harwood, Larry S. Davis “W4: Real-Time
Surveillance of People and Their Activities”.
2. A . Manzanera J. C. Richefeu, “A robust and computationally efficient
motion detection algorithm based on Σ-Δ background estimation”.
3. Ying-Li Tian, Arun Hampapur, “Robust Salient Motion Detection
with Complex Background”.
4. Виктор Гаганов, Антон Конушин, “Сегментация движущихся
объектов в видео потоке”.
Download