Wibracja
ViBe to algorytm odejmowania tła , który został zaprezentowany na konferencji IEEE ICASSP 2009 i udoskonalony w późniejszych publikacjach. Mówiąc dokładniej, jest to moduł oprogramowania do wydobywania informacji tła z ruchomych obrazów. Został opracowany przez Olivera Barnicha i Marca Van Droogenbroecka z Instytutu Montefiore na Uniwersytecie w Liège w Belgii.
ViBe jest opatentowany: patent obejmuje różne aspekty, takie jak zastępowanie stochastyczne, dyfuzja przestrzenna i obsługa nie-chronologiczna.
ViBe jest napisany w języku programowania C i został zaimplementowany na CPU , GPU i FPGA .
Opis techniczny
Model pikseli i proces klasyfikacji
Do oszacowania funkcji gęstości prawdopodobieństwa czasowego (pdf) piksela x stosuje się wiele zaawansowanych technik. Odmienne jest podejście ViBe, które narzuca ograniczenie wpływu wartości w przestrzeni polichromatycznej do lokalnego sąsiedztwa. W praktyce ViBe nie szacuje pdf, ale wykorzystuje zestaw wcześniej zaobserwowanych przykładowych wartości jako model pikselowy. Aby sklasyfikować wartość pt(x), porównuje się ją z jej najbliższymi wartościami w zbiorze próbek.
Aktualizacja modelu: przykładowe zasady dotyczące okresu życia wartości
ViBe zapewnia płynną wykładniczą długość życia dla wartości próbek, które składają się na modele pikselowe. To sprawia, że ViBe jest w stanie skutecznie radzić sobie z towarzyszącymi zdarzeniami za pomocą jednego modelu o rozsądnej wielkości dla każdego piksela. Osiąga się to poprzez losowe wybieranie, która próbka ma zostać zastąpiona podczas aktualizacji modelu pikseli. Po wybraniu próbki do odrzucenia nowa wartość zastępuje odrzuconą próbkę. Nie można przewidzieć modelu piksela, który powstałby w wyniku aktualizacji danego modelu piksela z daną próbką piksela, ponieważ wartość do odrzucenia jest wybierana losowo.
Aktualizacja modelu: spójność przestrzenna
Aby zapewnić spójność przestrzenną całego modelu obrazu i poradzić sobie z praktycznymi sytuacjami, takimi jak niewielkie ruchy kamery lub wolno ewoluujące obiekty w tle, ViBe stosuje technikę podobną do tej opracowanej dla procesu aktualizacji, w której losowo wybiera i aktualizuje model pikseli w sąsiedztwo bieżącego piksela. Oznaczając odpowiednio NG(x) i p(x) przestrzenne sąsiedztwo piksela x i jego wartość oraz zakładając, że zdecydowano się zaktualizować zbiór próbek x poprzez wstawienie p(x), to ViBe również używa tej wartości p(x) do aktualizacji zestawu próbek jednego z pikseli w sąsiedztwie NG(x), wybranych losowo. W rezultacie ViBe jest w stanie generować spójne przestrzennie wyniki bezpośrednio, bez użycia jakiejkolwiek metody przetwarzania końcowego.
Inicjalizacja modelu
Chociaż model można łatwo odzyskać po dowolnej inicjalizacji, na przykład wybierając zestaw losowych wartości, wygodnie jest uzyskać dokładne oszacowanie tła tak szybko, jak to możliwe. Idealnie algorytm segmentacji chciałby móc segmentować sekwencje wideo, zaczynając od drugiej klatki, przy czym pierwsza klatka jest używana do inicjalizacji modelu. Ponieważ przed drugą klatką nie są dostępne żadne informacje czasowe, ViBe wypełnia modele pikseli wartościami znajdującymi się w przestrzennym sąsiedztwie każdego piksela; dokładniej, inicjuje model tła z wartościami pobranymi losowo w każdym sąsiedztwie piksela pierwszej klatki. Oszacowanie tła jest zatem ważne, począwszy od drugiej klatki sekwencji wideo.