Qual é o método mais avançado para lidar com problemas de iluminação na subtração em segundo plano?


8

Tenho lutado para encontrar uma abordagem bem citada para isso. Basicamente, estou experimentando diferentes algoritmos de subtração de segundo plano, mas nenhum parece ter um bom desempenho quando há mudanças significativas de iluminação (por exemplo, de uma janela na cena recebendo brilho significativo em momentos específicos).

A questão é simples (relativamente): quais são os métodos mais avançados para subtração de segundo plano com mudanças repentinas de iluminação? Meu cenário é câmeras de vigilância.

Respostas:


4

A abordagem padrão é usar uma mistura de gaussianos para modelar as várias leis que comandam a intensidade de um pixel. Nesta abordagem, um pixel pode ser atribuído a várias leis normais (com diferentes médias e variâncias), cada uma delas modelará seu valor sob diferentes condições. Obviamente, apenas 1 gaussiano precisa estar ativo por vez.

Enquanto o número máximo de gaussianos na mistura é um parâmetro (fixo), os parâmetros de cada gaussiano são aprendidos online. Você pode encontrar um exemplo de implementação na biblioteca OpenCV .

Alguns anos atrás, alguém (desculpe, não consigo mais encontrar o nome) propôs uma abordagem alternativa interessante: usar variações da orientação do gradiente da imagem em vez de variações das intensidades da luz. A orientação do gradiente tem a vantagem de ser invariável ao contraste, tornando-a mais robusta às mudanças de iluminação. Intuitivamente, funciona porque a orientação do gradiente está ligada às formas da imagem, não à sua cor ou luminosidade.


0

Esta não é uma abordagem ou estado da arte "bem citado" para subtração em segundo plano em qualquer caso. No entanto, sua segunda frase disse que você estava experimentando diferentes abordagens , então acho que o que tenho a dizer ainda terá algum valor.


Geral sobre a abordagem:

O que estou propondo é uma representação de imagem invariante de contraste , chamada Árvore das Formas ou Árvore de Linha de Nível (havia mais nomes, infelizmente, eles ainda não se estabeleceram em um nome comumente aceito).

A idéia geral nesse aplicativo proposto é criar representações de invariante-contraste de algumas imagens e e procurar diferenças. A vantagem é que você pode obter , como saída, partes presentes em mas não em (ou vice-versa), em oposição às comparações mais simples de imagens , onde o resultado é todas as diferenças, ou seja, tudo o que está presente em uma das imagens e não o outro .IxIyIyIx


Maneira possível de usar com câmeras de segurança:

Se o seu aplicativo for uma câmera de segurança, acho que você poderá obter algumas imagens reais em boas condições (iluminação uniforme, baixas oclusões). Em seguida, você pode criar uma Árvore de Formas a partir da sua imagem básica e usá-la para detectar novos objetos presentes nas imagens atuais . As árvores devem ser semelhantes, porque não se baseiam nos níveis globais de cinza de pixels, mas no "contraste local": a questão principal que conduz o processo de construção das árvores é se ela é mais brilhante / mais escura que o ambiente , e não com a claridade / escuridão é .


Literatura:

Relevantes para sua aplicação em particular seriam as duas últimas páginas deste documento:

Você pode encontrar algumas referências relevantes na minha resposta aqui , mas parece-me agora que a breve visão geral que fiz para essa resposta está longe de estar completa.

Os autores desse artigo em particular também publicaram um livreto na série LNM sobre essa árvore em particular:

E, finalmente, essas abordagens eram mais teóricas do que práticas até poucos dias atrás, porque o tempo de construção do pior caso era quadrático no número de pixels da imagem. Ainda ontem, foi apresentado um algoritmo quase linear que finalmente torna a Árvore das Formas utilizável em várias aplicações:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.