Как найти передний план

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

Многим приложениям не нужно знать все об эволюции движения в видеопоследовательности, им требуется только информация об изменениях в сцене, потому что интересующие области изображения — это объекты (люди, автомобили, текст и т. Д.).) на переднем плане. После этапа предварительной обработки изображения (который может включать в себя шумоподавление изображения, постобработку, такую ​​как морфология и т. Д.) Требуется локализация объекта, которая может использовать этот метод.

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

Фоновое изображение и изображение переднего плана.

Содержание

  • 1 Описание
  • 2 Вычитание фона
  • 3 Фильтр среднего временного значения
  • 4 Традиционные подходы
    • 4.1 Использование разности кадров
    • 4.2 Средний фильтр
    • 4.3 Среднее значение по Гауссу
    • 4.4 Модели фоновой смеси
  • 5 Обзоры
  • 6 Приложения
  • 7 См. Также
  • 8 Ссылки
    • 8.1 Сравнения
    • 8.2 Книги
    • 8.3 Журналы
    • 8.4 Семинары
    • 8.5 Конкурсы
  • 9 Внешние ссылки
    • 9.1 Сайты
    • 9.2 Наборы данных
    • 9.3 Библиотеки

Описание

Все методы обнаружения основаны на моделировании фона изображения, т.е. установить фон и определить, какие изменения происходят. Определение фона может быть очень сложным, если он содержит фигуры, тени и движущиеся объекты. При определении фона предполагается, что неподвижные объекты могут со временем изменяться по цвету и интенсивности.

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

Очень хорошая система обнаружения переднего плана должна уметь:

  • Разработать модель фона (оценочную).
  • Быть устойчивым к изменениям освещения, повторяющимся движениям (листья, волны, тени), и долгосрочные изменения.

Вычитание фона

Вычитание фона — широко используемый подход для обнаружения движущихся объектов в видео со статических камер. Обоснованием этого подхода является обнаружение движущихся объектов по разнице между текущим кадром и опорным кадром, часто называемым «фоновым изображением» или «фоновой моделью». Вычитание фона в основном выполняется, если рассматриваемое изображение является частью видеопотока. Вычитание фона дает важные подсказки для многочисленных приложений в компьютерном зрении, например, наблюдение отслеживание или оценка позы человека.

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

Фильтр временного среднего

Пример временного среднего фильтра

Временной средний фильтр — метод, предложенный Веластиным. Эта система оценивает модель фона на основе медианы всех пикселей ряда предыдущих изображений. Система использует буфер со значениями пикселей последних кадров для обновления медианы для каждого изображения.

Для моделирования фона система исследует все изображения в заданный период времени, называемый временем обучения . В настоящее время мы показываем только изображения и на этот раз найдем медианное значение, пиксель за пикселем, всех графиков в фоновом режиме.

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

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

Традиционные подходы

Надежный алгоритм вычитания фона должен уметь обрабатывать изменения освещения, повторяющиеся движения из-за беспорядка и длительные изменения сцены. Следующие ниже анализы используют функцию V (x, y, t) как видеопоследовательность, где t — измерение времени, x и y — переменные местоположения пикселя. например V (1,2,3) — это интенсивность пикселей в местоположении (1,2) пикселя изображения при t = 3 в видеопоследовательности.

Использование разности кадров

Алгоритм обнаружения движения начинается с сегмента сегментации, когда передний план или движущиеся объекты сегментируются от фона. Самый простой способ реализовать это — взять изображение в качестве фона и взять кадры, полученные в момент времени t, обозначенный I (t), для сравнения с фоновым изображением, обозначенным B. Здесь, используя простые арифметические вычисления, мы можем сегментировать объекты, просто используя технику вычитания изображения компьютерного зрения, означающую для каждого пикселя в I (t), возьмите значение пикселя, обозначенное P [I (t)], и вычтите его с соответствующими пикселями в той же позиции на фоновом изображении, обозначенном как P [B].

В математическом уравнении это записывается как:

P [F (t)] = P [I (t)] — P [B] { displaystyle P [F (t)] = P [I (t)] — P [B]}{ Displaystyle P [F (t)] = P [I (t)] - P [B]}

Предполагается, что фон является кадром в момент времени t. Это разностное изображение будет показывать только некоторую интенсивность для положений пикселей, которые изменились в двух кадрах. Хотя мы, казалось бы, удалили фон, этот подход будет работать только в тех случаях, когда все пиксели переднего плана движутся, а все пиксели фона статичны. Для этого разностного изображения устанавливается пороговое значение «Порог» для улучшения вычитания (см. Изображение пороговое значение ).

| P [F (t)] — P [F (t + 1)] |>T порог { displaystyle | P [F (t)] — P [F (t + 1)] |> mathrm {Threshold}}{displaystyle |P[F(t)]-P[F(t+1)]|> mathrm {Threshold}}

Это означает, что яркость пикселей разностного изображения установлена ​​на пороговом уровне. ‘или фильтруется на основе значения порога. Точность этого подхода зависит от скорости движения в сцене. Для более быстрых движений могут потребоваться более высокие пороги.

Средний фильтр

Для расчета изображение, содержащее только фон, усредняется по серии предыдущих изображений. Для расчета фонового изображения в момент t,

B (x, y, t) = 1 N ∑ i = 1 NV (x, y, t — я) { displaystyle B (x, y, t) = {1 over N} sum _ {i = 1} ^ {N} V (x, y, ti)}В (х, y, t) = {1  над N}  сумма _ {я = 1} ^ {N} V (x, y, ti)

где N — количество предыдущие изображения, снятые для усреднения. Это усреднение относится к усреднению соответствующих пикселей в данных изображениях. N будет зависеть от скорости видео (число изображений в секунду в видео) и количество движения в видео. После вычисления фона B (x, y, t) мы можем затем вычесть его из изображения V (x, y, t) в момент времени t = t и установить порог. Таким образом, передний план

| V (x, y, t) — B (x, y, t) |>T час { displaystyle | V (x, y, t) -B (x, y, t) |> mathrm {Th}}{displaystyle |V(x,y,t)-B(x,y,t)|> mathrm {Th}}

где Th — порог. Точно так же мы можем использовать вместо этого медианное значение. среднего значения в приведенном выше вычислении B (x, y, t).

Использование глобальных и не зависящих от времени пороговых значений (одинаковое значение Th для всех пикселей изображения) может ограничивать точность двух вышеуказанных подходов.

Текущее среднее значение по Гауссу

Для этого метода Рен и др. Предлагают подгонку вероятностной функции плотности Гаусса (pdf) на самые последние n { displaystyle n}n frames. Чтобы избежать подгонки PDF-файла с нуля в каждый новый временной интервал t { displaystyle t}t , выполняется непрерывная (или кумулятивная онлайн) вычисляется среднее значение.

PDF-файл каждого пикселя характеризуется mean μ t { displaystyle mu _ {t}} mu _ {t} и дисперсия σ t 2 { displaystyle sigma _ {t} ^ {2}} sigma _ {t} ^ {2} . Ниже приведено возможное начальное условие (при условии, что изначально каждый пиксель является фоном):

μ 0 = I 0 { displaystyle mu _ {0} = I_ {0}} mu _ {0} = I_ {0}
σ 0 2 = ⟨некоторое значение по умолчанию значение⟩ { displaystyle sigma _ {0} ^ {2} = langle { text {некоторое значение по умолчанию}} rangle}{ displaystyle  sigma _ {0} ^ {2 } =  langle { text {некоторое значение по умолчанию}}  rangle}

где I t { displaystyle I_ {t}}I_ {t} — значение интенсивности пикселя в момент времени t { displaystyle t}t . Чтобы инициализировать дисперсию, мы можем, например, использовать дисперсию по x и y из небольшого окна вокруг каждого пикселя.

Обратите внимание, что фон может изменяться со временем (например, из-за изменений освещения или нестатических фоновых объектов). Чтобы учесть это изменение, в каждом кадре t { displaystyle t}t среднее значение и дисперсия каждого пикселя должны обновляться следующим образом:

μ t = ρ I t + (1 — ρ) μ T — 1 { Displaystyle му _ {t} = rho I_ {t} + (1- rho) mu _ {t-1}} mu _ {t} =  rho I_ {t} + (1-  rho)  mu _ {t-1}
σ t 2 = d 2 ρ + ( 1 — ρ) σ T — 1 2 { Displaystyle sigma _ {t} ^ {2} = d ^ {2} rho + (1- rho) sigma _ {t-1} ^ {2}} sigma _ {t} ^ {2} = d ^ {2}  rho + (1-  rho)  sigma _ {t-1} ^ {2}
d = | (I t — μ t) | { displaystyle d = | (I_ {t} — mu _ {t}) |}{ displaystyle d = | (I_ { t} -  mu _ {t}) |}

Где ρ { displaystyle rho} rho определяет размер временного окна, которое используется для соответствия формату PDF (обычно ρ = 0,01 { displaystyle rho = 0,01} rho = 0,01 ) и d { displaystyle d}d — евклидово расстояние между среднее и значение пикселя.

Гауссово распределение для каждого пикселя.

Теперь мы можем классифицировать пиксель как фон, если его текущая интенсивность находится в пределах некоторого доверительного интервала среднего его распределения:

| (I t — μ t) | σ t>к ⟶ передний план { displaystyle { frac {| (I_ {t} — mu _ {t}) |} { sigma _ {t}}}>k longrightarrow { text {foreground}}}{displaystyle {frac {|(I_{t}-mu _{t})|}{sigma _{t}}}>k  longrightarrow { text {foreground}}}
| (I t — μ t) | σ t ≤ k ⟶ фон { displaystyle { frac {| (I_ {t} — mu _ {t}) |} { sigma _ {t}}} leq k longrightarrow { text {background}}}{ displaystyl e { frac {| (I_ {t} -  mu _ {t}) |} { sigma _ {t}}}  leq k  longrightarrow { text {background}}}

где параметр k { displaystyle k}k — свободный порог (обычно k = 2,5 { displaystyle k = 2,5}k = 2,5 ). Чем больше значение для k { displaystyle k}k , тем лучше фон, а при меньшем k { displaystyle k}k увеличивает вероятность перехода с фона на передний план из-за более тонких изменений.

В одном из вариантов метода распределение пикселей обновляется, только если оно классифицируется как фон. Это сделано для того, чтобы новые объекты переднего плана не уходят на второй план. Соответственно изменяется формула обновления среднего значения:

μ t = M μ t — 1 + (1 — M) (I t ρ + (1 — ρ) μ t — 1) { displaystyle mu _ {t } = M mu _ {t-1} + (1-M) (I_ {t} rho + (1- rho) mu _ {t-1})}{ displaystyle  mu _ {t} = M  mu _ {t-1} + (1-M) (I_ {t}  rho + (1-  rho)  mu _ {t-1})}

где M = 1 { displaystyle M = 1}M = 1 когда I t { displaystyle I_ {t}}I_ {t} считается передним планом и M = 0 { displaystyle M = 0 }M = 0 иначе. Поэтому, когда M = 1 { displaystyle M = 1}M = 1 , то есть когда пиксель определяется как передний план, среднее значение останется прежним. В результате пиксель, когда он стал передним планом, может снова стать фоном только тогда, когда значение интенсивности приближается к тому, что было до перехода на передний план. Однако у этого метода есть несколько проблем: он работает только в том случае, если все пиксели изначально являются фоновыми пикселями (или пиксели переднего плана аннотированы как таковые). Кроме того, он не может справиться с постепенными изменениями фона: если пиксель классифицируется как передний план в течение слишком длительного периода времени, интенсивность фона в этом месте могла измениться (из-за изменения освещения и т. Д.). В результате, как только объект переднего плана исчезнет, ​​новая интенсивность фона может больше не распознаваться как таковая.

Модели фоновых смесей

Метод смеси гауссиан позволяет моделировать каждый пиксель как смесь гауссиан и использует приближение в реальном времени для обновления модели. В этом методе предполагается, что значения интенсивности каждого пикселя в видео могут быть смоделированы с использованием модели смеси Гаусса. Простая эвристика определяет, какие интенсивности, скорее всего, являются фоновыми. Тогда пиксели, которые им не соответствуют, называются пикселями переднего плана. Пиксели переднего плана группируются с использованием анализа 2D связного компонента.

В любой момент времени t, конкретный пиксель (x 0, y 0 { displaystyle x_ {0}, y_ {0 }}x_ {0}, y_ {0} ) история

X 1,…, X t = {V (x 0, y 0, i): 1 ⩽ i ⩽ t} { displaystyle X_ {1}, ldots, X_ {t} = {V (x_ {0}, y_ {0}, i): 1 leqslant i leqslant t }}{  Displaystyle X_ {1},  ldots, X_ {t} =  {V (x_ {0}, y_ {0}, i): 1  leqslant i  leqslant t }}

Эта история моделируется смесью K распределений Гаусса:

п (Икс T) знак равно ∑ я знак равно 1 К ω я, T N (Икс T ∣ μ я, t, Σ я, т) { Displaystyle P (X_ {т}) = сумма _ {я = 1} ^ {K} omega _ {i, t} N left (X_ {t} mid mu _ {i, t}, Sigma _ {i, t} right)}P (X_ {t}) =  sum _ {i = 1} ^ {K}  omega _ {i, t} N  left (X_ {t}  mid  mu _ { i, t},  Sigma _ {i, t}  right)

где

N (X t ∣ μ it, Σ i, t) = 1 (2 π) D / 2 1 | Σ i, t | 1/2 ехр ⁡ (- 1 2 (Икс T — μ я, t) T Σ я, t — 1 (X t — μ я, t)) { Displaystyle N влево (X_ {т} середина му _ {it}, Sigma _ {i, t} right) = { dfrac {1} {(2 pi) ^ {D / 2}}} {1 over | Sigma _ {i, t} | ^ {1/2}} exp left (- {1 over 2} (X_ {t} — mu _ {i, t}) ^ {T} Sigma _ {i, t} ^ {- 1} left (X_ {t} — mu _ {i, t} right) right)}{ displaystyle N  left (X_ {t}  mid  mu _ {it},  Sigma _ {i, t}  right) = { dfrac {1} {(2  pi) ^ {D / 2}}} {1  над |  Sigma _ {i, t} | ^ {1/2}}  exp  left (- {1  over 2} (X_ {t} -  mu _ {i, t}) ^ {T}  Sigma _ {i, t} ^ {- 1}  left (X_ {t} -  mu _ {i, t}  right)  right)}

Во-первых, каждый пиксель характеризуется своей интенсивностью в цветовом пространстве RGB. Тогда вероятность наблюдения текущего пикселя определяется следующей формулой в многомерном случае

P (X t) = ∑ i = 1 K ω i, t η (X t μ i, t, Σ i, t) { Displaystyle P (X_ {t}) = sum _ {i = 1} ^ {K} omega _ {i, t} eta left (X_ {t} , mu _ {i, t}, Sigma _ {i, t} right)}P ( X_ {t}) =  sum _ {i = 1} ^ {K}  omega _ {i, t}  eta  left (X_ {t} ,  mu _ {i, t},  Sigma _ { i, t}  right)

Где K — количество распределений, ω — вес, связанный с i-м гауссианом в момент времени t и µ, Σ — это среднее значение и стандартное отклонение указанного гауссиана соответственно.

η (X t μ i, t, Σ i, t) = 1 (2 / pi) n / 2 Σ i, t 0,5 exp ⁡ (- 1 2 (X t — μ i, t) Σ i, T (Икс T — μ я, t)) { Displaystyle eta left (X_ {t} , mu _ {я, t}, Sigma _ {я, t} right) = { dfrac { 1} {(2 / pi) ^ {n / 2} Sigma _ {i, t} ^ {0.5}}} exp left (- {1 over 2} (X_ {t} — mu _ { i, t}) Sigma _ {i, t} left (X_ {t} — mu _ {i, t} right) right)} eta  left (X_ {t} ,  mu _ {i, t},  Sigma _ {i, t}  right) = { dfrac {1} {(2 / pi) ^ {n / 2}  Sigma _ {i, t} ^ {0.5}}}  exp  left (- {1  over 2} (X_ {t} -  mu _ {i, t})  Sigma _ {i, t}  left (X_ {t} -  mu _ {i, t}  right)  right)

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

B = argmin ⁡ (Σ i — 1 B ω i, t>T) { displaystyle B = operatorname {argmin} left ( Sigma _ {i-1} ^ {B} omega _ {i, t}>T right)}{displaystyle B=operatorname {argmin} left(Sigma _{i-1}^{B}omega _{i,t}>T  right)}

Считается, что другие распределения представляют собой распределение переднего плана. Затем, когда появляется новый кадр t + 1 { displaystyle t + 1}t + 1 , проверка соответствия выполняется для каждого пикселя. Пиксель соответствует распределению Гаусса, если расстояние Махаланобиса

((X t + 1 — μ t + 1) T Σ i — 1 b (X t + 1 — μ t + 1)) 0,5 < k ⋅ σ i, t {displaystyle left(left(X_{t+1}-mu _{t+1}right)^{T}Sigma _{i-1}^{b}left(X_{t+1}-mu _{t+1}right)right)^{0.5}{ displaystyle  left ( left (X_ {t + 1} -  mu _ {t + 1}  right) ^ {T}  Sigma _ {i-1} ^ {b}  left (X_ {t + 1} -  mu _ {t + 1}  right)  right) ^ {0.5} <k  cdot  sigma _ {i, t}}

где k — постоянный порог, равный 2,5 { displaystyle 2.5}2,5 . Тогда возможны два случая:

Случай 1: найдено совпадение с одним из k гауссианов. Для согласованного компонента обновление выполняется следующим образом:

σ i, t + 1 2 = (1 — ρ) σ я, T 2 + ρ (Икс Икс + 1 — μ Икс + 1) (Икс Икс + 1 — μ Икс + 1) T { Displaystyle sigma _ {я, т + 1} ^ { 2} = left (1- rho right) sigma _ {i, t} ^ {2} + rho left (X_ {x + 1} — mu _ {x + 1} right) left (X_ {x + 1} — mu _ {x + 1} right) ^ {T}}{  Displaystyle  sigma _ {я, t + 1} ^ {2} =  left (1-  rho  right)  sigma _ {i, t} ^ {2} +  rho  left (X_ {x + 1 } -  mu _ {x + 1}  right)  left (X_ {x + 1} -  mu _ {x + 1}  right) ^ {T}}

Пауэр и Шунес [3] использовали тот же алгоритм для сегментации переднего плана изображения

σ i T + 1 знак равно (1 — α) ω я, T + α п (К ∣ Икс T, φ) { Displaystyle sigma _ {я, т + 1} = влево (1- альфа вправо) omega _ {i, t} + alpha P left (k mid X_ {t}, varphi right)}{ displaystyle  sigma _ {i, t + 1} =  left (1-  alpha  right)  omega _ {i, t} +  alpha P  left (k  mid X_ {t},  varphi  right)}

Существенное приближение к P (k ∣ X t, φ) { displaystyle P left (k mid X_ {t}, varphi right)}{ displaystyle P  left (k  mid  X_ {t},  varphi  right)} задается как M k, t { displaystyle M_ {k, t}}M_ {k, t}

M k, t = {1 совпадение, 0 в противном случае. { displaystyle M_ {k, t} = { begin {cases} 1 { text {match}}, \ 0 { text {else}}. end {ases}}}{ displaystyle M_ {k, t} = { begin {cases} 1 { text {ma tch}}, \ 0 { текст {иначе}}.  end {cases}}}

Случай 2: Нет найдено совпадение с любым из K { displaystyle K}K гауссианов. В этом случае наименее вероятное распределение K { displaystyle K}K заменяется новым с параметрами

k i. t = низкий априорный вес { displaystyle k_ {it} = { text {низкий априорный вес}}}{ displaystyle k_ {it} = { text {низкий априорный вес}}}
μ i, t + 1 = X t + 1 { displaystyle mu _ {i, t + 1} = X_ {t + 1}} mu _ {i, t + 1} = X_ {t + 1}
σ i. t + 1 2 = большая начальная дисперсия { displaystyle sigma _ {i.t + 1} ^ {2} = { text {большая начальная дисперсия}}}{ displaystyle  sigma _ {i.t + 1} ^ {2} = { text {большая начальная дисперсия}}}

После того, как выполняется обслуживание параметров, обнаружение переднего плана может быть сделал и тд. Онлайн-аппроксимация K-средних используется для обновления гауссианов. Были предложены многочисленные усовершенствования этого оригинального метода, разработанные Штауффером и Гримсоном, а полный обзор можно найти в Bouwmans et al. Стандартный метод адаптивного фонового изображения — это усреднение изображений по времени, создание приближения фона, аналогичного текущей статической сцене, за исключением случаев, когда происходит движение.

Опросы

Несколько опросов, которые касаются категорий или подкатегорий моделей, можно найти следующим образом:

  • Вычитание фона MOG
  • Вычитание фона обучения подпространства
  • Статистическое вычитание фона
  • Вычитание нечеткого фона
  • Вычитание фона RPCA (Подробнее см. Робастный анализ главных компонентов )
  • Динамический RPCA для фона / Разделение переднего плана (Подробнее см. Робастный анализ главных компонентов )
  • Разложение на низкоранговые плюс аддитивные матрицы для разделения фона / переднего плана
  • Концепции глубоких нейронных сетей для вычитания фона
  • Традиционные и современные подходы к вычитанию фона

Приложения

  • Видеонаблюдение
  • Оптический захват движения
  • Взаимодействие человека с компьютером
  • Видео на основе контента кодирование
  • Мониторинг трафика
  • Движение в реальном времени распознавание жестов

Подробнее ls, см.

См. также

Ссылки

Сравнения

В литературе можно найти несколько статей по сравнению / оценке:

  • A. Собрал, А. Вакавант. «Исчерпывающий обзор алгоритмов вычитания фона на синтетических и реальных видео ». Компьютерное зрение и понимание изображений, CVIU 2014, 2014.
  • A. Шахбаз, Дж. Харийоно, К. Джо, «Оценка алгоритмов вычитания фона для видеонаблюдения », FCV 2015, 2015.
  • Y. Сюй, Дж. Донг, Б. Чжан, Д. Сюй, «Методы моделирования фона в видеоанализе: обзор и сравнительная оценка », CAAI Transactions on Intelligence Technology, страницы 43–60, том 1, выпуск 1, январь 2016.

Книги

  • Т. Боуманс, Ф. Порикли, Б. Хорферлин, А. Вакавант, Справочник по «Фоновому моделированию и обнаружению переднего плана для видеонаблюдения: традиционные и современные подходы, реализации, сравнительный анализ и оценка» «, CRC Press, Taylor and Francis Group, июнь 2014 г. (Для получения дополнительной информации: http://www.crcpress.com/product/isbn/9781482205374 )
  • Т. Боуманс, Н. Айбат и Э. Zahzah. Handbook on Robust Low-Rank и Sparse Matrix Decomposition: Applications in Image and Video Processing, CRC Press, Taylor and Francis Group, May 2016. (Для получения дополнительной информации: http://www.crcpress.com/product / isbn / 9781498724623 )

Журналы

  • Т. Бауманс, Л. Дэвис, Дж. Гонсалес, М. Пиккарди, К. Шан, специальный выпуск по теме «Моделирование фона для обнаружения переднего плана в реальном World Dynamic Scenes «, специальный выпуск по машинному зрению и приложениям, июль 2014 г.
  • A. Vacavant, L. Tougne, T. Chateau, Специальный раздел «Сравнение фоновых моделей », Компьютерное зрение и понимание изображений, CVIU 2014, май 2014.
  • A. Петросино, Л. Маддалена, Т. Бауманс, Специальный выпуск «Моделирование и инициализация фона сцены », Письма о распознавании образов, сентябрь 2017 г.
  • T. Бауманс, специальный выпуск «Обнаружение движущихся объектов », MDPI Journal of Imaging, 2018.

Семинары

  • Фоновое обучение для обнаружения и отслеживания с помощью видео RGB (RGBD 2017) Семинар в сотрудничестве с ICIAP 2017. (Для получения дополнительной информации: http://rgbd2017.na.icar.cnr.it/ )
  • Семинар по моделированию и инициализации фона сцены (SBMI 2015) совместно с ICIAP 2015. (Для дополнительной информации: http://sbmi2015.na.icar.cnr.it/ )
  • IEEE Change Detection Workshop совместно с CVPR 2014. (Для получения дополнительной информации: http://www.changedetection.net/ )
  • Workshop on Background Model Challenges (BMC 2012) в сочетании с ACCV 2012. (Дополнительная информация: http://bmc.iut-auvergne.com/ )

Contests

  • IEEE Scene Background Modeling Contest (SBMC 2016) совместно с ICPR 2016 (Дополнительная информация: http://pione.dinf.usherbrooke.ca/sbmc2016/ )

Внешние ссылки

Веб-сайты

  • Веб-сайт вычитания фона

Веб-сайт вычитания фона (Т. Бауманс, Univ. Ла-Рошель, Франция) содержит исчерпывающий список справочных материалов в данной области и ссылки на доступные наборы данных и программное обеспечение.

Наборы данных

  • ChangeDetection.net (Дополнительная информация: http://www.changedetection.net/ )
  • Background Models Challenge (Дополнительная информация: http: // bmc.iut-auvergne.com / )
  • Штутгартский набор данных искусственного вычитания фона (Дополнительная информация: http://www.vis.uni-stuttgart.de/index.php?id=sabs )
  • Набор данных SBMI ( Для получения дополнительной информации: http://sbmi2015.na.icar.cnr.it/ )
  • Набор данных SBMnet (Для получения дополнительной информации: http://pione.dinf.usherbrooke.ca/dataset/ )

Библиотеки

  • BackgroundSubtractorCNT

Библиотека BackgroundSubtractorCNT реализует очень быстрый и высококачественный алгоритм, написанный на C ++ на основе OpenCV. Он ориентирован на оборудование с низкими характеристиками, но работает так же быстро в современных Linux и Windows. (Для получения дополнительной информации: https://github.com/sagi-z/BackgroundSubtractorCNT ).

  • Библиотека BGS

Библиотека BGS (A. Sobral, Univ. La Rochelle, Франция) предоставляет среду C ++ для выполнения алгоритмы вычитания фона. Код работает либо на Windows или Linux. В настоящее время библиотека предлагает более 30 алгоритмов BGS. (Для получения дополнительной информации: https://github.com/andrewssobral/bgslibrary )

  • Библиотека LRS — инструменты низкого ранга и разреженные инструменты для фонового моделирования и вычитания в видео The LRSLibrary (A. Sobral, Univ. La Rochelle, Франция) предоставляет набор алгоритмов низкоранговой и разреженной декомпозиции в MATLAB. Библиотека была разработана для сегментации движения в видео, но ее также можно использовать или адаптировать для других задач компьютерного зрения. В настоящее время LRSLibrary содержит более 100 основанных на матрицах и алгоритмы на основе тензора. (Для получения дополнительной информации: https://github.com/andrewssobral/lrslibrary )
  • OpenCV — библиотека OpenCV предоставляет ряд алгоритмов сегментации фона / переднего плана.

From Wikipedia, the free encyclopedia

Foreground detection is one of the major tasks in the field of computer vision and image processing whose aim is to detect changes in image sequences. Background subtraction is any technique which allows an image’s foreground to be extracted for further processing (object recognition etc.).

Many applications do not need to know everything about the evolution of movement in a video sequence, but only require the information of changes in the scene, because an image’s regions of interest are objects (humans, cars, text etc.) in its foreground. After the stage of image preprocessing (which may include image denoising, post processing like morphology etc.) object localisation is required which may make use of this technique.

Foreground detection separates foreground from background based on these changes taking place in the foreground. It is a set of techniques that typically analyze video sequences recorded in real time with a stationary camera.

Background image and foreground image

Description[edit]

All detection techniques are based on modelling the background of the image, i.e. set the background and detect which changes occur. Defining the background can be very difficult when it contains shapes, shadows, and moving objects. In defining the background it is assumed that the stationary objects could vary in color and intensity over time.

Scenarios where these techniques apply tend to be very diverse. There can be highly variable sequences, such as images with very different lighting, interiors, exteriors, quality, and noise. In addition to processing in real time, systems need to be able to adapt to these changes.

A very good foreground detection system should be able to:

  • Develop a background (estimate) model.
  • Be robust to lighting changes, repetitive movements (leaves, waves, shadows), and long-term changes.

Background subtraction[edit]

Background subtraction is a widely used approach for detecting moving objects in videos from static cameras. The rationale in the approach is that of detecting the moving objects from the difference between the current frame and a reference frame, often called «background image», or «background model». Background subtraction is mostly done if the image in question is a part of a video stream. Background subtraction provides important cues for numerous applications in computer vision, for example surveillance tracking or human pose estimation.[citation needed]

Background subtraction is generally based on a static background hypothesis which is often not applicable in real environments. With indoor scenes, reflections or animated images on screens lead to background changes. Similarly, due to wind, rain or illumination changes brought by weather, static backgrounds methods have difficulties with outdoor scenes.[1]

Temporal average filter[edit]

Temporal average filter example

The temporal average filter is a method that was proposed at the Velastin. This system estimates the background model from the median of all pixels of a number of previous images.
The system uses a buffer with the pixel values of the last frames to update the median for each image.

To model the background, the system examines all images in a given time period called training time. At this time we only display images and will find the median, pixel by pixel, of all the plots in the background this time.

After the training period for each new frame, each pixel value is compared with the input value of funds previously calculated. If the input pixel is within a threshold, the pixel is considered to match the background model and its value is included in the pixbuf. Otherwise, if the value is outside this threshold pixel is classified as foreground, and not included in the buffer.

This method can not be considered very efficient because they do not present a rigorous statistical basis and requires a buffer that has a high computational cost.

Conventional approaches[edit]

A robust background subtraction algorithm should be able to handle lighting changes, repetitive motions from clutter and long-term scene changes.[2] The following analyses make use of the function of V(x,y,t) as a video sequence where t is the time dimension, x and y are the pixel location variables. e.g. V(1,2,3) is the pixel intensity at (1,2) pixel location of the image at t = 3 in the video sequence.

Using frame differencing[edit]

A motion detection algorithm begins with the segmentation part where foreground or moving objects are segmented from
the background. The simplest way to implement this is to take an image as background and take the frames obtained at the time
t, denoted by I(t) to compare with the background image denoted by B. Here using simple arithmetic calculations, we can
segment out the objects simply by using image subtraction technique of computer vision meaning for each pixels in I(t), take the
pixel value denoted by P[I(t)] and subtract it with the corresponding pixels at the same position on the background image
denoted as P[B].

In mathematical equation, it is written as:

{displaystyle P[F(t)]=P[I(t)]-P[B]}

The background is assumed to be the frame at time t. This difference image would only show some intensity for the pixel locations which have changed in the two frames. Though we have seemingly removed the background, this approach will only work for cases where all foreground pixels are moving and all background pixels are static.[2] A threshold «Threshold» is put on this difference image to improve the subtraction (see Image thresholding).

{displaystyle |P[F(t)]-P[F(t+1)]|>mathrm {Threshold} }

This means that the difference image’s pixels’ intensities are ‘thresholded’ or filtered on the basis of value of Threshold.
[3] The accuracy of this approach is dependent on speed of movement in the scene. Faster movements may require higher thresholds.

Mean filter[edit]

For calculating the image containing only the background, a series of preceding images are averaged. For calculating the background image at the instant t,

B(x,y,t)={1 over N}sum _{i=1}^{N}V(x,y,t-i)

where N is the number of preceding images taken for averaging. This averaging refers to averaging corresponding pixels in the given images. N would depend on the video speed (number of images per second in the video) and the amount of movement in the video.[4] After calculating the background B(x,y,t) we can then subtract it from the image V(x,y,t) at time t = t and threshold it. Thus the foreground is

{displaystyle |V(x,y,t)-B(x,y,t)|>mathrm {Th} }

where Th is a threshold value. Similarly we can also use median instead of mean in the above calculation of B(x,y,t).

Usage of global and time-independent thresholds (same Th value for all pixels in the image) may limit the accuracy of the above two approaches.[2]

Running Gaussian average[edit]

For this method, Wren et al.[5] propose fitting a Gaussian probabilistic density function (pdf) on the most recent n frames. In order to avoid fitting the pdf from scratch at each new frame time t, a running (or on-line cumulative) average is computed.

The pdf of every pixel is characterized by mean mu _{t} and variance sigma _{t}^{2} . The following is a possible initial condition (assuming that initially every pixel is background):

mu _{0}=I_{0}
{displaystyle sigma _{0}^{2}=langle {text{some default value}}rangle }

where I_{t} is the value of the pixel’s intensity at time t. In order to initialize variance, we can, for example, use the variance in x and y from a small window around each pixel.

Note that background may change over time (e.g. due to illumination changes or non-static background objects). To accommodate for that change, at every frame t, every pixel’s mean and variance must be updated, as follows:

mu _{t}=rho I_{t}+(1-rho )mu _{t-1}
sigma _{t}^{2}=d^{2}rho +(1-rho )sigma _{t-1}^{2}
{displaystyle d=|(I_{t}-mu _{t})|}

Where rho determines the size of the temporal window that is used to fit the pdf (usually rho =0.01 ) and d is the Euclidean distance between the mean and the value of the pixel.

Gaussian distribution for each pixel

We can now classify a pixel as background if its current intensity lies within some confidence interval of its distribution’s mean:

{displaystyle {frac {|(I_{t}-mu _{t})|}{sigma _{t}}}>klongrightarrow {text{foreground}}}
{displaystyle {frac {|(I_{t}-mu _{t})|}{sigma _{t}}}leq klongrightarrow {text{background}}}

where the parameter k is a free threshold (usually k=2.5 ). A larger value for k allows for more dynamic background, while a smaller k increases the probability of a transition from background to foreground due to more subtle changes.

In a variant of the method, a pixel’s distribution is only updated if it is classified as background. This is to prevent newly introduced foreground objects from fading into the background. The update formula for the mean is changed accordingly:

{displaystyle mu _{t}=Mmu _{t-1}+(1-M)(I_{t}rho +(1-rho )mu _{t-1})}

where M=1 when I_{t} is considered foreground and M=0 otherwise. So when M=1 , that is, when the pixel is detected as foreground, the mean will stay the same. As a result, a pixel, once it has become foreground, can only become background again when the intensity value gets close to what it was before turning foreground. This method, however, has several issues: It only works if all pixels are initially background pixels (or foreground pixels are annotated as such). Also, it cannot cope with gradual background changes: If a pixel is categorized as foreground for a too long period of time, the background intensity in that location might have changed (because illumination has changed etc.). As a result, once the foreground object is gone, the new background intensity might not be recognized as such anymore.

Background mixture models[edit]

Mixture of Gaussians method approaches by modelling each pixel as a mixture of Gaussians and uses an on-line approximation to update the model. In this technique, it is assumed that every pixel’s intensity values in the video can be modeled using a Gaussian mixture model.[6] A simple heuristic determines which intensities are most probably of the background. Then the pixels which do not match to these are called the foreground pixels.
Foreground pixels are grouped using 2D connected component analysis.[6]

At any time t, a particular pixel (x_{0},y_{0})’s history is

{displaystyle X_{1},ldots ,X_{t}={V(x_{0},y_{0},i):1leqslant ileqslant t}}

This history is modeled by a mixture of K Gaussian distributions:

{displaystyle P(X_{t})=sum _{i=1}^{K}omega _{i,t}Nleft(X_{t}mid mu _{i,t},sigma _{i,t}right)}

where

{displaystyle Nleft(X_{t}mid mu _{i,t},sigma _{i,t}right)={dfrac {1}{(2pi )^{D/2}}}{1 over |sigma _{i,t}|^{1/2}}exp left(-{1 over 2}(X_{t}-mu _{i,t})^{T}sigma _{i,t}^{-1}left(X_{t}-mu _{i,t}right)right)}

First, each pixel is characterized by its intensity in RGB color space. Then probability of observing the current pixel is given by the following formula in the multidimensional case

{displaystyle P(X_{t})=sum _{i=1}^{K}omega _{i,t}eta left(X_{t},,mu _{i,t},sigma _{i,t}right)}

Where K is the number of distributions, ω is a weight associated to the ith Gaussian at time t and µ, Σ are the mean and standard deviation of said Gaussian respectively.

{displaystyle eta left(X_{t},,mu _{i,t},sigma _{i,t}right)={dfrac {1}{(2pi )^{D/2}}}{1 over |sigma _{i,t}|^{1/2}}exp left(-{1 over 2}(X_{t}-mu _{i,t})^{T}sigma _{i,t}^{-1}left(X_{t}-mu _{i,t}right)right)}

Once the parameters initialization is made, a first foreground detection can be made then the parameters are updated. The first B Gaussian distribution which exceeds the threshold T is retained for a background distribution

{displaystyle B=operatorname {argmin} left(Sigma _{i=1}^{B}omega _{i,t}>Tright)}

The other distributions are considered to represent a foreground distribution. Then, when the new frame incomes at times t+1, a match test is made of each pixel. A pixel matches a Gaussian distribution if the Mahalanobis distance

{displaystyle left(left(X_{t+1}-mu _{i,t}right)^{T}sigma _{i,t}^{-1}left(X_{t+1}-mu _{i,t}right)right)^{0.5}<kcdot sigma _{i,t}}

where k is a constant threshold equal to 2.5. Then, two cases can occur:

Case 1: A match is found with one of the k Gaussians. For the matched component, the update is done as follows[7]

{displaystyle sigma _{i,t+1}^{2}=left(1-rho right)sigma _{i,t}^{2}+rho left(X_{x+1}-mu _{x+1}right)left(X_{x+1}-mu _{x+1}right)^{T}}

Power and Schoonees [3] used the same algorithm to segment the foreground of the image

{displaystyle sigma _{i,t+1}=left(1-alpha right)omega _{i,t}+alpha Pleft(kmid X_{t},varphi right)}

The essential approximation to {displaystyle Pleft(kmid  X_{t},varphi right)} is given by M_{k,t}[8]

{displaystyle M_{k,t}={begin{cases}1&{text{match}},\0&{text{otherwise}}.end{cases}}}

Case 2: No match is found with any of the K Gaussians. In this case, the least probable distribution K is replaced with a new one with parameters

{displaystyle k_{i.t}={text{low prior weight}}}
mu _{i,t+1}=X_{t+1}
{displaystyle sigma _{i.t+1}^{2}={text{large initial variance}}}

Once the parameter maintenance is made, foreground detection can be made and so on. An on-line K-means approximation is used to update the Gaussians. Numerous improvements of this original method developed by Stauffer and Grimson[6] have been proposed and a complete survey can be found in Bouwmans et al.[7] A standard method of adaptive backgrounding is averaging the images over time, creating a background approximation which is similar to the current static scene except where motion occur.

Surveys[edit]

Several surveys which concern categories or sub-categories of models can be found as follows:

  • MOG background subtraction [7]
  • Subspace learning background subtraction [9]
  • Statistical background subtraction [10][11]
  • Fuzzy background subtraction [12]
  • RPCA background subtraction[13] (See Robust principal component analysis for more details)
  • Dynamic RPCA for background/foreground separation [14] (See Robust principal component analysis for more details)
  • Decomposition into low-rank plus additive matrices for background/foreground Separation [15]
  • Deep neural networks concepts for background subtraction [16]
  • Traditional and recent approaches for background subtraction [17][18]

Applications[edit]

  • Video surveillance
  • Optical motion capture
  • Human computer interaction
  • Content-based video coding
  • Traffic monitoring
  • Real-time motion gesture recognition

For more details, please see [19]

See also[edit]

  • 3D data acquisition and object reconstruction
  • Gaussian adaptation
  • Region of interest
  • Teknomo–Fernandez algorithm
  • ViBe

References[edit]

  1. ^ Piccardi, M. (2004). «Background subtraction techniques: A review» (PDF). 2004 IEEE International Conference on Systems, Man and Cybernetics. pp. 3099–3104. doi:10.1109/icsmc.2004.1400815. ISBN 0-7803-8567-5. S2CID 12127129.
  2. ^ a b c Tamersoy, B. (September 29, 2009). «Background Subtraction – Lecture Notes» (PDF). University of Texas at Austin.
  3. ^ Lu, N.; Wang, J.; Wu, Q.; Yang, L. (February 2012). An improved Motion Detection method for real time Surveillance. CiteSeerX 10.1.1.149.33.
  4. ^ Benezeth, Y.; Jodoin, P.M.; Emile, B.; Laurent, H.; Rosenberger, C. (2008). «Review and Evaluation of Commonly-Implemented Background Subtraction Algorithms» (PDF). 2008 19th International Conference on Pattern Recognition (PDF). pp. 1–4. doi:10.1109/ICPR.2008.4760998. ISBN 978-1-4244-2174-9. S2CID 15733287.
  5. ^ Wren, C.R.; Azarbayejani, A.; Darrell, T.; Pentland, A.P. (1997). «Pfinder: Real-time tracking of the human body» (PDF). IEEE Transactions on Pattern Analysis and Machine Intelligence. 19 (7): 780–785. doi:10.1109/34.598236. hdl:1721.1/10652.
  6. ^ a b c Stauffer, C.; Grimson, W.E.L. (1999). «Adaptive background mixture models for real-time tracking» (PDF). Proceedings of the 1999 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. pp. 246–252. doi:10.1109/CVPR.1999.784637. ISBN 0-7695-0149-4. S2CID 8195115.
  7. ^ a b c Bouwmans, T.; El Baf, F.; Vachon, B. (November 2008). «Background Modeling using Mixture of Gaussians for Foreground Detection – A Survey». Recent Patents on Computer Science. 1 (3): 219–237. CiteSeerX 10.1.1.324.22. doi:10.2174/2213275910801030219.
  8. ^ Power, P.; Schoonees, J. (2002). «Understanding Background Mixture Models for Foreground Segmentation» (PDF). Proceedings Image and Vision Computing New Zealand 2002. pp. 267–271.
  9. ^ Bouwmans, Thierry (November 2009). «Subspace Learning for Background Modeling: A Survey». Recent Patents on Computer Science. 2 (3): 223–234. doi:10.2174/1874479610902030223. S2CID 62697257.
  10. ^ Chen, C. H. (2009). Handbook of Pattern Recognition and Computer Vision. pp. 181–199. doi:10.1142/7297. ISBN 978-981-4273-38-1. S2CID 58410480.
  11. ^ Bouwmans, Thierry (September 2011). «Recent Advanced Statistical Background Modeling for Foreground Detection: A Systematic Survey». Recent Patents on Computer Science. 4 (3): 147–176. doi:10.2174/1874479611104030147.
  12. ^ Bouwmans, Thierry (2012). «Background Subtraction for Visual Surveillance». Handbook on Soft Computing for Video Surveillance. Chapman & Hall/CRC Cryptography and Network Security Series. pp. 103–138. ISBN 978-1-4398-5684-0.
  13. ^ Bouwmans, Thierry; Zahzah, El Hadi (2014). «Robust PCA via Principal Component Pursuit: A review for a comparative evaluation in video surveillance». Computer Vision and Image Understanding. 122: 22–34. doi:10.1016/j.cviu.2013.11.009.
  14. ^ Vaswani, Namrata; Bouwmans, Thierry; Javed, Sajid; Narayanamurthy, Praneeth (2018). «Robust Subspace Learning: Robust PCA, Robust Subspace Tracking, and Robust Subspace Recovery». IEEE Signal Processing Magazine. 35 (4): 32–55. arXiv:1711.09492. Bibcode:2018ISPM…35d..32V. doi:10.1109/MSP.2018.2826566. S2CID 3691367.
  15. ^ Bouwmans, Thierry; Sobral, Andrews; Javed, Sajid; Jung, Soon Ki; Zahzah, El-Hadi (2017). «Decomposition into low-rank plus additive matrices for background/Foreground separation: A review for a comparative evaluation with a large-scale dataset». Computer Science Review. 23: 1–71. arXiv:1511.01245. doi:10.1016/j.cosrev.2016.11.001. S2CID 10420698.
  16. ^ Vaswani, Namrata; Bouwmans, Thierry; Javed, Sajid; Narayanamurthy, Praneeth (2018). «Deep Neural Network Concepts for Background Subtraction: A Systematic Review and Comparative Evaluation». arXiv:1811.05255 [cs.CV].
  17. ^ Bouwmans, T. (2014-07-25). «Traditional Approaches in Background Modeling for Static Cameras». Background Modeling and Foreground Detection for Video Surveillance. CRC Press. ISBN 9781482205374.
  18. ^ Bouwmans, T. (2014-07-25). «Recent Approaches in Background Modeling for Static Cameras». Background Modeling and Foreground Detection for Video Surveillance. CRC Press. ISBN 9781482205374.
  19. ^ Bouwmans, T.; Garcia-Garcia, B. (2019). «Background Subtraction in Real Applications: Challenges, Current Models and Future Directions». arXiv:1901.03577 [cs.CV].

Comparisons[edit]

Several comparison/evaluation papers can be found in the literature:

  • A. Sobral, A. Vacavant. «A comprehensive review of background subtraction algorithms evaluated with synthetic and real videos[dead link]«. Computer Vision and Image Understanding, CVIU 2014, 2014.
  • A. Shahbaz, J. Hariyono, K. Jo, «Evaluation of Background Subtraction Algorithms for Video Surveillance», FCV 2015, 2015.
  • Y. Xu, J. Dong, B. Zhang, D. Xu, «Background modeling methods in video analysis: A review and comparative evaluation’, CAAI Transactions on Intelligence Technology, pages 43–60, Volume 1, Issue 1, January 2016.

Books[edit]

  • T. Bouwmans, F. Porikli, B. Horferlin, A. Vacavant, Handbook on «Background Modeling and Foreground Detection for Video Surveillance: Traditional and Recent Approaches, Implementations, Benchmarking and Evaluation», CRC Press, Taylor and Francis Group, June 2014. (For more information: http://www.crcpress.com/product/isbn/9781482205374)
  • T. Bouwmans, N. Aybat, and E. Zahzah. Handbook on Robust Low-Rank and Sparse Matrix Decomposition: Applications in Image and Video Processing, CRC Press, Taylor and Francis Group, May 2016. (For more information: http://www.crcpress.com/product/isbn/9781498724623)

Journals[edit]

  • T. Bouwmans, L. Davis, J. Gonzalez, M. Piccardi, C. Shan, Special Issue on «Background Modeling for Foreground Detection in Real-World Dynamic Scenes», Special Issue in Machine Vision and Applications, July 2014.
  • A. Vacavant, L. Tougne, T. Chateau, Special section on «Background models comparison», Computer Vision and Image Understanding, CVIU 2014, May 2014.
  • A. Petrosino, L. Maddalena, T. Bouwmans, Special Issue on «Scene Background Modeling and Initialization», Pattern Recognition Letters, September 2017.
  • T. Bouwmans, Special Issue on «Detection of Moving Objects», MDPI Journal of Imaging, 2018.

Workshops[edit]

  • Background Learning for Detection and Tracking from RGB videos (RGBD 2017) Workshop in conjunction with ICIAP 2017. (For more information: http://rgbd2017.na.icar.cnr.it/)
  • Scene Background Modeling and Initialization (SBMI 2015) Workshop in conjunction with ICIAP 2015. (For more information: http://sbmi2015.na.icar.cnr.it/)
  • IEEE Change Detection Workshop in conjunction with CVPR 2014. (For more information: http://www.changedetection.net/)
  • Workshop on Background Model Challenges (BMC 2012) in conjunction with ACCV 2012. (For more information: http://bmc.iut-auvergne.com/)

Contests[edit]

  • IEEE Scene Background Modeling Contest (SBMC 2016) in conjunction with ICPR 2016 (For more information: http://pione.dinf.usherbrooke.ca/sbmc2016/)

External links[edit]

  • Background subtraction by R. Venkatesh Babu
  • Foreground Segmentation and Tracking based on Foreground and Background Modeling Techniques by Jaume Gallego
  • Detecció i extracció d’avions a seqüències de vídeo by Marc Garcia i Ramis

Websites[edit]

  • Background Subtraction website

The Background Subtraction Website (T. Bouwmans, Univ. La Rochelle, France) contains a comprehensive list of the references in the field, and links to available datasets and software.

Datasets[edit]

  • ChangeDetection.net (For more information: http://www.changedetection.net/)
  • Background Models Challenge (For more information: http://bmc.iut-auvergne.com/)
  • Stuttgart Artificial Background Subtraction Dataset (For more information: http://www.vis.uni-stuttgart.de/index.php?id=sabs Archived 2015-03-27 at the Wayback Machine)
  • SBMI dataset (For more information: http://sbmi2015.na.icar.cnr.it/)
  • SBMnet dataset (For more information: http://pione.dinf.usherbrooke.ca/dataset/)

Libraries[edit]

  • BackgroundSubtractorCNT

The BackgroundSubtractorCNT library implements a very fast and high quality algorithm written in C++ based on OpenCV. It is targeted at low spec hardware but works just as fast on modern Linux and Windows. (For more information: https://github.com/sagi-z/BackgroundSubtractorCNT).

  • BGS Library

The BGS Library (A. Sobral, Univ. La Rochelle, France) provides a C++ framework to perform background subtraction algorithms. The code works either on Windows or on Linux. Currently the library offers more than 30 BGS algorithms. (For more information: https://github.com/andrewssobral/bgslibrary)

  • LRS Library – Low-Rank and Sparse tools for Background Modeling and Subtraction in Videos The LRSLibrary (A. Sobral, Univ. La Rochelle, France) provides a collection of low-rank and sparse decomposition algorithms in MATLAB. The library was designed for motion segmentation in videos, but it can be also used or adapted for other computer vision problems. Currently the LRSLibrary contains more than 100 matrix-based and tensor-based algorithms. (For more information: https://github.com/andrewssobral/lrslibrary)
  • OpenCV – The OpenCV library provides a number background/foreground segmentation algorithms.

Глубина практически в любом изображении добавляет больше интереса в глазах зрителя. Это заставляет сделать паузу, чтобы рассмотреть различные элементы и то, как они работают в контексте кадра. В этой статье фотограф Картика Гупта (Karthika Gupta) расскажет как использовать передний, средний и задний планы для получения интересных фотоснимков. 

Что такое передний план, средний план и задний план? 

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

Как правильно использовать передний, средний и задний планы в фотографии

Фотографии по сути сжимают все эти элементы в плоское двухмерное изображение.

Как правильно использовать передний, средний и задний планы в фотографии

На изображении выше корабль ближе к передней части кадра считается передним планом. Корабли позади считаются средним, а Лондонский мост и здания за ним будут задним планом. 

Другой способ представить себе три элемента: передний, средний и задний план — представить  изображение в виде слоев. Вы можете попробовать поместить основной объект в область среднего плана и добавить элементы в кадр, которые действовали бы как передний план и фон.

Как правильно использовать передний, средний и задний планы в фотографии

На изображении выше розовые цветы ближе к зрителю считаются передним планом. Можете ли мысленно убрать этот слой, чтобы увидеть, что за ним? Вода и деревья за ручьем считаются средним планом. Снимите их, и вы увидите подножья гор. Горы выступают в роли заднего плана. Убирайте каждый слой гор, чтобы увидеть всю гряду холмов. С другой стороны вы можете представить, как добавление каждого элемента на пустой холст поэтапно создает слои. Подумайте о том, как он добавляет глубину всему изображению с помощью элементов фона, среднего и переднего плана. 

Как использовать передний план, средний план и задний план в изображении? 

В идеальной ситуации было бы здорово, если бы в кадре было что-то привлекательное во всех трех областях. Однако, само собой, не всегда это возможно. Особенно, когда вы собираетесь фотографировать вне дома/студии, например, на природе. 

Вы можете легко найти 2 элемента из 3. Чаще всего мы находим изображения с сильным фоном и передним планом или же задним и средним планом. Эти два элемента достаточно сильны, чтобы держать на себе все изображение. 

Как с помощью этой техники улучшить композицию?

  • Используйте технику с правилом третей.

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

Объединив правило третей с концепцией четкого выделения переднего, среднего и заднего планов, вы можете еще больше усилить композицию изображения. 

Как правильно использовать передний, средний и задний планы в фотографии

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

  • Используйте ведущие линии

Цель использования направляющих линий в изображении — помочь зрителю постепенно сосредоточить внимание на основном объекте. Часто фотографы используют направляющие линии в виде дорог, столбов или даже зданий. Они направляют взгляд зрителя на главный объект. В других случаях ведущие линии более образны, например, дорожные или строительные знаки. 

Как правильно использовать передний, средний и задний планы в фотографии

Но все же самые распространенные ведущие линии — дороги. Они могут естественным образом привлечь внимание к главному объекту в середине кадра. В данном случае на снимке средний план и фон совпадают — это слои гор. 

  • Используйте технику с творческим кадрированием

Креативное кадрирование — это простой фотографический прием. Он поможет вам определить объект и повысить его относительную важность на изображении. Рамки служат для закрытия кадра, не позволяя взгляду зрителя оторваться от изображения. 

Элементы обрамления повсюду вокруг нас. Все, что требуется, — это внимательное наблюдение и использование перспективы. Архитектурные элементы, природа, цвет, текстуры, свет и тени, отражения, люди и объекты — отличные способы добавить глубины и многослойности фотографиям. Они могут четко разделить три разных области изображения. 

Как правильно использовать передний, средний и задний планы в фотографии

На снимке выше творческое обрамление окна действует как элемент переднего плана. Он привлекает внимание гигантской статуей Будды и огромными горами на заднем плане. 

Настройки для фотографии переднего, заднего и среднего плана 

Большинство пейзажных фотографов всегда будут снимать с узкой диафрагмой не менее f/8 и выше. 

Узкая диафрагма — это значение диафрагмы или большое значение f/stop (больше, чем f/5,0). Широкая диафрагма — это значение диафрагмы или значение f/stop маленькое (меньше, чем f/5,0). И, наконец, значение диафрагмы f/5,6 считается нормальным значением диафрагмы. 

Использование узкой диафрагмы позволяет добиться четкости всех элементов кадра. Можно увидеть отчетливые слои. Но, как известно, правила предназначены для их нарушения. Иногда можно снимать пейзажи на открытой диафрагме. Вы все еще можете получить изображение с отдельными слоями, хотя и несколько размытыми. 

Как правильно использовать передний, средний и задний планы в фотографии

Эффект боке на заднем и переднем планах со средним планом в фокусе имеет свое очарование. И при этом по-прежнему достигается эффект отдельных слоев изображения. Изображение слева было создано с широко открытой диафрагмой. Цветы переднего плана в фокусе, а остальная часть изображения размыта. На изображении справа используется узкая диафрагма. Средний план и фон находятся в фокусе, а передний план, т.е. цветы размыты. 

Как добиться многослойности при постобработке? 

Иногда технические и творческие способы достижения многослойного вида переднего, среднего плана и фона не всегда работают так, как вы надеялись. Например, если вы фотографируете в условиях смешанного освещения — резкого света и теней или даже в условиях низкой освещенности — непосредственно перед восходом или закатом. 

На помощь приходит брекетинг — это хороший способ добиться четкости переднего, среднего и заднего планов в изображениях. 

Как правильно использовать передний, средний и задний планы в фотографии

Изображение выше — это объединенное изображение знаменитого Хаф-Доума в национальном парке Йосемити на рассвете. Ближе к восходу солнца было действительно темно, и фотограф не смогла сфокусировать передний и задний план одновременно. Поэтому она сделала разные изображения (брекетинг экспозиции) с передним планом в фокусе и ярко освещенным. Затем — задний в фокусе, после чего объединила эти фото в Lightroom. 

Объединение или наложение изображений можно выполнить в Lightroom или Photoshop. В случае Lightroom.

  • Выберите все изображения, которые вы хотите объединить
  1. Выберите пункт меню Photo > Photo Merge > HDR.
  2. В зависимости от количества выбранных изображений это может занять несколько минут.
  3. В диалоговом окне HDR Merge Preview вы можете выбрать для изображений Auto Align и Auto Settings.
  4. Функция Auto Align выравнивает изображения в случае небольшого движения от кадра к кадру. Если вы снимали изображения на штатив, это может не применяться.

Этот метод также можно использовать для объединения изображений, сделанных в разные моменты времени. Он следует тому же принципу наличия отдельных слоев или элементов, составляющих передний, средний план и фон в данном изображении. 

Заключение 

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

Что отличает фотографию неопытного начинающего от снимка опытного фотографа?

Верно.

Объем и глубина. Многоплановость и контрасты.

Рассматривая фотографии начинающих во ВКонтакте, можно подметить, что проблемой многих снимков выступает отсутствие планов в кадре.

Начинающие снимают с резкостью по всему кадру или при плоском освещении, что приводит к отсутствию объема, глубины снимка и странному контрасту между элементами.

Но достаточно создать или подчеркнуть передний план, и проблемы будут решены.

Не верите?

Как создать передний план

Очень просто.

Нужно зрительно оторвать элементы переднего плана от заднего и среднего.

Сделать это можно средствами композиции или созданием заднего фона через съемку на открытой диафрагме.

Да, господа и дамы.

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

Не стоит опрометчиво полагать, что портрет с размытым фоном, это фотография с передним планом.

Но, если портретируемого сдвинуть на средний план, а на передний план поместить нечто обрамляющее, то снимок сразу приобретет глубину и объем.

А также приобретет передний план.

Этот композиционный прием широко используется и называется «рамка» или «обрамление».

фотография с темным передним планом

Снимая изнутри комнаты, я получил полноценный передний план с обрамлением ключевого элемента.

Фотография смотрится объемно и интересно.

Была бы она объемной, если бы я встал в дверях и просто сфотографировал скульптуру?

Нет.

Фотография бы лишилась переднего плана, превратившись в творчество туриста обыкновенного или начинающего фотографа.

Отделяем передний план от заднего

Из живописи известно, что объекты переднего плана должны обладать большим размером, нежели объекты среднего и заднего.

Это приводит к пониманию масштаба и масштабности.

Недостаточно просто оторвать модель от фона, снимая на открытой диафрагме.

Нужно добиться того, чтобы портретируемая модель соотносилась с объектами заднего и среднего плана своими размерами.

Художники измеряют визуальные пропорции, рисуя картины. Фотографы же пренебрегают этим.

Визуальные пропорции планов

Из живописи также известно:

  • Что передний план выглядит темнее, чем средний и задний. Это придает объем и глубину перспективы картине
  • Объекты, исчезающие вдали, выглядят более светлыми и более синими, чем те объекты, что расположены на переднем плане
  • Насыщенность цвета убывает к заднему плану
  • Четкость снимка также убывает к заднему плану

Эти правила описал еще Леонардо да Винчи в 15 веке.

  1. «Вещи на расстоянии кажутся тебе двусмысленными и сомнительными; делай и ты их с такой же расплывчатостью, иначе они в твоей картине покажутся на одинаковом расстоянии…»
  2. «…не ограничивай вещи, отдаленные от глаза, ибо на расстоянии не только эти границы, но и части тел неощутимы»
  3. «…а самые последние предметы, в нем (в воздухе) видимые, как, например, горы вследствие большого количества воздуха, находящегося между твоим глазом и горою, кажутся синими, почти цвета воздуха»

Наставление хорошо просматривается в картине «Дева Мария с ребенком и Св. Анна».

картина Леонардо да Винчи

Этот прием вы легко обнаружите и в «Тайной Вечере» и знаменитой «Джоконде».

К сожалению, большая часть «профессиональных» фотографов не соблюдает и не использует эти правила при обработке фотографий.

Но что произойдет, если их соблюсти и учесть при обработке снимка?

Давайте проверим.

Маленький эксперимент или бессмертная классика

Этот снимок Кремля я сделал с Патриаршего моста у Храма Христа Спасителя.

С точки зрения фотографии, на снимке все правильно и хорошо. Но он слишком академический и ученический.

Линейная перспектива и планы

Линейная перспектива обеспечивает построение кадра. Приоткрытая диафрагма немного размывает задний фон в виде Кремля. Осевая линия дороги и автобусы задают направление в кадре.

Передний план как таковой отсутствует, если не считать за него часть дороги.

Можно ли улучшить этот снимок?

Несомненно.

Для лучшего разграничения планов я воспользовался наставлениями Леонардо да Винчи.

Разграничение планов обработков

В несколько корректирующих слоев в Фотошопе, я изменил:

  1. Убавил четкость снимка от переднего плана к заднему
  2. Сделал задный план более синим и светлым
  3. Насыщенность цвета убывает от переднего плана к заднему
  4. Затемнил передний план

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

Обработка сделана достаточно грубо для большей явности изменений, и заняла не более 5 минут.

Работает ли этот способ?

Да, если на вашей фотографии есть изначальная глубина и перспектива.

Если вы снимаете с резкостью по всему кадру или пренебрегаете композицией, то этот способ обработки вам не поможет.

Оглавление

1. Алгоритм Grabcut OpenCV: сегментация и извлечение переднего плана)

(1) Принцип работы алгоритма

(2) Функция OpenCV CV2.grabCut

(3) Алгоритм инициализации Grabcut с Bezel OpenCV

(4) Дисплей результатов выходных результатов

(5) Резюме


1. Алгоритм Grabcut OpenCV: сегментация и извлечение переднего плана)

Используя несовершенную маску, сгенерированную MAST R-CNN или U-NET, вы можете использовать Grabcut для очистки этих сегментов.

Эта статья относится к блогу Adrian от Bald GE. В исходном тексту используется инициализация пограничного ящика и инициализацию маски. В этой статье только появляется метод инициализации пограничной коробки.https://www.pyimagesearch.com/2020/07/27/opencv-grabcut-foreground-segmentation-and-extraction/

(1) Принцип работы алгоритма

1. Получите входное изображение, параметр один: положение объекта на изображении, которое хочет

2. Выращивать следующие операции

  1. Используйте перспективы гауссовой смеси (оценка) и распределение цветов фона
  2. Построение случайного поля Маркова (например, на переднем плане и фона) на пиксельных метках.
  3. Оптимизация среза графика для достижения окончательного деления

(2) Функция OpenCV CV2.grabCut

grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode) ->  mask, bgdModel, fgdModel

Описание параметра

  • IMG: Введите изображение, Grabcut предполагает, что это 8 -бит -3 -канальный изображение (то есть без знака 8 -битного целого числа в порядке канала BGR).
  • Маска: входная/выходная маска. Предположим, что маска представляет собой одноканальное изображение, а тип данных -это 8 -битное целое число. Если вы используете инициализацию пограничного поле (режим седьмого параметра, установленный на CV2.gc_init_with_rect), эта маска автоматически инициализируется. В противном случае Грабкут предполагает, что инициализация маски выполняется (седьмой параметр устанавливается на CV2.GC_INIT_WITH_MASK).
  • Прямо: прямоугольник с рамкой, содержащий область, которую мы хотим разделить. Этот параметр используется только при настройке режима на CV2.GC_INIT_WITH_MASK).
  • Bgdmodel: временный массив, используемый на фоне Grabcut.
  • FGDModel: Grabcut использует временный массив, используемый во время перспектив моделирования.
  • Itercount: количество итераций, выполняемых перспективами и фоновым моделированием. Чем больше раз больше итераций, тем дольше работает Grabcut, идеал, результат будет лучше.
  • Модель: либо cv2.gc_init_with_rect, либо cv2.gc_init_with_mask, что зависит от того, используете ли вы границу или маску инициализированную Grabcut.
  • Grabcut’s OpenCV осознает группу 3 юаней:
  • Маска: выходная крышка после использования Grabcut
  • FGDMode: временный массив для моделирования фона (можно игнорировать)
  • FGDModel: временный массив для моделирования перспектив (также может игнорировать это значение)

(3) Алгоритм инициализации Grabcut с Bezel OpenCV

Метод граничного ящика: граничная коробка объекта, который разделен на изображение, будет указан на изображении. Пока алгоритм генерирует пограничную коробку, его можно использовать, объединив его с Grabcut. Метод реализации пограничного кадра выглядит следующим образом:

  • Проверьте изображение вручную и отметьте координаты границы (x, y)
  • Используйте уровень HAAR
  • Используйте Hog+Linear SVM -цель обнаружения
  • Используйте детекторы объектов глубокого обучения, такие как более быстрые R-CNN, SSD, YOLO и т. Д.

Кодовое шоу, как ниже:

  • Метод инициализации инициализации Grabcut

Построить анализатор параметра и проанализировать параметры, сценарий обрабатывает два параметра командной строки

  1. -image: введите изображение. Используйте изображение guangtou.png в каталоге «D: Image.

  2. -Производительность: количество раз, которое будет выполнено Grabcut, меньшее значение приведет к более быстрому общему времени, и большее значение приведет к более медленному времени работы (но результат идеального деления лучше)

# import the necessary packages
import numpy as np
import argparse
import time
import cv2
import os
# Параметры конструкции и параметры анализа и параметры анализа
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", type=str,
  default=os.path.sep.join([r"D:image", "guangtou.png"]),
  help="path to input image that we'll apply GrabCut to")
ap.add_argument("-c", "--iter", type=int, default=10,
  help="# of GrabCut iterations (larger value => slower runtime)")
args = vars(ap.parse_args())
  • Загрузите входное изображение и выделить пространство для одного и того же размера
# load the input image from disk and then allocate memory for the
# output mask generated by GrabCut -- this mask should hae the same
# spatial dimensions as the input image
image = cv2.imread(args["image"])
mask = np.zeros(image.shape[:2], dtype="uint8")

Созданная маска была быстро заполнена результатами алгоритма Grabcut.

  • Вручную определите координаты лица людей в Guangtou.png, выберите область с прямоугольными, первыми двумя параметрами являются верхний левый угол прямоугольника, а последние два параметра — длина и ширина.

Что касается определения пикселей, вы можете использовать бесплатное программное обеспечение для редактирования графики, такое как Photoshop или Gimp. Лицо лица определено вручную. Любой детектор объектов может завершить эту работу. Вы можете выбрать детектор на основе лиц на основе лиц на основе HAAR или DLL, чтобы найти границу.

# define the bounding box coordinates that approximately define my
# face and neck region (i.e., all visible skin)
rect = (80, 20, 140, 230)
  • Выполните алгоритм Grabcut и инициализируйте граничный кадр на входе
# allocate memory for two arrays that the GrabCut algorithm internally
# uses when segmenting the foreground from the background
 fgmodel = np.zeros ((1, 65), dtype = "float") #two пустые массивы, что удобно для использования из фоновой сегментации (fgmodel и bgmodel)))
bgModel = np.zeros((1, 65), dtype="float")
# apply GrabCut using the the bounding box segmentation method
start = time.time()
 #Grabcut Вернитесь к маске, которую мы заполняем, и два массива, которые мы можем игнорировать
(mask, bgModel, fgModel) = cv2.grabCut(image, mask, rect, bgModel,fgModel, iterCount=args["iter"], mode=cv2.GC_INIT_WITH_RECT)
end = time.time()
print("[INFO] applying GrabCut took {:.2f} seconds".format(end - start))
  • Продолжайте покрывать маску позже
# the output mask has for possible output values, marking each pixel
# in the mask as (1) definite background, (2) definite foreground,
# (3) probable background, and (4) probable foreground
values = (
  ("Definite Background", cv2.GC_BGD),
  ("Probable Background", cv2.GC_PR_BGD),
  ("Definite Foreground", cv2.GC_FGD),
  ("Probable Foreground", cv2.GC_PR_FGD),
)
# loop over the possible GrabCut mask values
for (name, value) in values:
  # construct a mask that for the current value
  print("[INFO] showing mask for '{}'".format(name))
  valueMask = (mask == value).astype("uint8") * 255
  # display the mask so we can visualize it
  cv2.imshow(name, valueMask)
  cv2.waitKey(0)

Определите возможные значения в выводе Grabcut, включая/возможный фон и перспективы, которые мы определили. Затем продолжайте циркулировать эти значения, чтобы мы могли визуализировать каждое значение. В цикле мы строим маску для текущего значения и отображаем ее, пока вы не нажмете какую -либо клавишу.

  • После того, как определенный/возможный фон и перспективы были отображены, наш код начнет генерировать выходную маску и выходное изображение (фон замаскирован)
# Найдите все определенные фоны или возможные фоновые пиксели, и установите их на 0, все остальные пиксели должны быть помечены как 1 (передний план)
outputMask = np.where((mask == cv2.GC_BGD) | (mask == cv2.GC_PR_BGD), 0, 1)
# scale the mask from the range [0, 1] to [0, 255]
outputMask = (outputMask * 255).astype("uint8")
# apply a bitwise AND to the image using our mask generated by
# GrabCut to generate our final output image
output = cv2.bitwise_and(image, image, mask=outputMask)

На данный момент у нас есть:

  1. Вход подготовлен для функции Grabcut, включая входные изображения, маски, прямоугольные координаты, а также массив FGModel и BGModel Zero. Обратите внимание, что прямые координаты определены вручную.

  2. Выполните алгоритм Grabcut.

  3. Создайте и визуализируйте наш определенный/возможный фон и перспективы.

  4. Сгенерируйте выходной передачу вывода Grabcut и выходное изображение (вывод) с фоновой маской

  • Продолжайте и покажите наш окончательный результат
# show the input image followed by the mask and output generated by
# GrabCut and bitwise masking
 Cv2.imshow ("input", image) #
 cv2.imshow ("Grabcut Mask", OutputMask) #grabcut
 CV2.imshow ("Grabcut Output", Output) #only Primitive Image с перспективами
cv2.waitKey(0)

(4) Дисплей результатов выходных результатов

(5) Резюме

Основываясь на сетях глубокого обучения, таких как более быстрый R-CNN и U-NET, он может автоматически генерировать маску делящихся объектов (перспективы) с фона-это не означает, что Grabcut не имеет смысла в эпоху глубокого обучения. Хотя более быстрые R-CNN и U-NET являются супер мощными способами, они приведут к хаотичной и грубой маске. Мы можем использовать Grabcut, чтобы помочь очистить эту маску, чтобы получить лучшие результаты.

Понравилась статья? Поделить с друзьями:
  • Как найти чехол от эирподсов
  • Как найти диаметр колодца
  • Как исправить бровь в виде запятой
  • Как найти делопроизводство на человека
  • Как составить решение задачи коши