Esse é um método correto para correção de ruído de padrão fixo?

12

Atualmente, estou envolvido em um projeto que envolve a programação de um sensor de imagem. Nosso sensor está nos dando ruído, então queremos corrigi-lo. Alguém mais no projeto teve a idéia de tirar uma imagem "preta", ou seja, colocar a tampa da lente e tirar uma imagem que deveria ser toda preta. (Obviamente, não é devido ao ruído) Nesse ponto, nas capturas subseqüentes, ele pega os valores de pixel da imagem em preto e os subtrai da imagem capturada regularmente.

A imagem parece melhor e a maior parte do ruído é removida, no entanto, não estou convencido de que essa seja a melhor abordagem para remover o ruído devido ao seguinte:

O intervalo da imagem fixa é [-172 194] (366 valores), versus o intervalo padrão de [0 255]. Quando é redesenhado, ele varia de volta para [0 255], e parece melhor, no entanto, acredito que isso esteja incorreto.

Devo mencionar que a nova imagem é tirada com pouca luz.

Este método é correto para remover o ruído? Por que ou por que não?

NominSim
fonte
Esse método específico (imagem "preta") é uma forma de calibração do sensor, que não é um DSP puro (também está relacionado à física, por exemplo - você precisa modelar defeitos físicos). Por exemplo, essa abordagem específica tenta compensar defeitos de pixel quente.
MSalters
Concordo com @PaulR
Simon Bergot 6/12/12
você pode verificar a solução neste link: ardueye.com/pmwiki.php?n=Main.StonymanLens
selma
se lidarmos com imagens de satélite, os métodos de cálculo serão os mesmos? Quero dizer, como calcular a imagem em preto e branco para obter os valores puros de Offset e Gain? Existe alguma descrição de código do cálculo da FPN no Matlab? Obrigado por todas as dicas !!!

Respostas:

12

A imagem em preto é a soma de um padrão fixo e ruído escuro (que provavelmente segue uma distribuição normal, pois geralmente surge das flutuações atuais). Você deseja subtrair o padrão fixo, mas não o ruído escuro - subtrair o ruído aleatório de um sinal simplesmente aumenta o ruído geral e, portanto, diminui a qualidade do sinal.

Para obter uma boa estimativa para o padrão fixo, você deve capturar um número considerável de quadros (digamos 25, embora 100, é claro, deixem você com apenas metade do ruído) e faça a média deles. Como o ruído escuro é (deve ser) não correlacionado no tempo, ele fica em média, de modo que você fica com um padrão fixo de baixo ruído que pode subtrair das imagens futuras e que não aumenta o ruído na imagem.

Observe que o padrão fixo geralmente depende do tempo de exposição (uma câmera CCD, por exemplo, pode acumular elétrons durante operações de turno); portanto, você precisará fazer uma calibração para cada tempo de exposição. Se você variar os tempos de exposição com frequência e se for possível, poderá configurar sua experiência para capturar uma série de quadros escuros após cada experiência, o que significa que você recebe uma calibração para cada experiência.

Se você subtrair um quadro escuro de baixo ruído (ou seja, a média), obterá alguns valores negativos (porque o ruído escuro que ocorre durante a aquisição da imagem pode ter valores negativos), mas o alcance da sua imagem não deve aumentar significativamente. Caso isso aconteça, é um sinal de que você não obteve uma média de quadros escuros suficientes ou que o padrão fixo mudou desde que você está usando um tempo de exposição diferente.

Jonas
fonte
1
Eu totalmente segundo @ Jonas. Se agora você deseja diminuir o ruído escuro para remover o padrão constante, a única solução é resfriar o sensor.
19412 Jean-Yves
1
Isso pressupõe que o ruído do padrão fixo seja apenas "compensado". Muitos sensores com FPN também têm variações de ganho em cada pixel também, então quando expostos a uma cena "branco puro", ainda haverá FPN, mesmo depois de retirar os deslocamentos medidos no escuro ...
Martin Thompson
@MartinThompson: É um bom argumento, embora na prática possa ser muito desafiador garantir uma cena "branca pura". É por isso que nunca uso nenhum ganho se posso ajudá-lo :).
Jonas
@MartinThompson Martin, qual é a melhor prática para corrigir parâmetros de ganho. Não consigo pensar em uma maneira fácil de tornar tudo branco em uma determinada duração de exposição.
Ktuncer 12/12/12
1
@Ktuncer: Eu não acho que você precise torná-lo branco puro - quanto mais brilhante você conseguir, melhor poderá corrigir. Contanto que seja um brilho uniforme na cena, você pode usar o valor médio de pixel como o "alvo" para corrigir
Martin Thompson
7

essa abordagem é válida e é de fato usada em algumas câmeras de última geração: o sensor primeiro tira uma foto com o obturador fechado e subtrai-a à foto "verdadeira". Isso tem duas vantagens:

  • corrige o ruído do padrão fixo
  • torna a imagem linear

Este método pode fornecer resultados diferentes para diferentes tempos de exposição.

O ruído fotônico é deixado intocado.

Simon Bergot
fonte
4

Eu acho que isso depende do sensor que você está usando.

Você pode capturar uma série de (por exemplo, 10000) imagens com a tampa da lente e comparar a média / desvio padrão de cada pixel. Se possível, você pode fazer o mesmo para uma imagem "brilhante" uniforme (sem superexposição, apenas brilho uniforme).

Se houver diferenças significativas entre as "médias escuras", subtrair a média escura para cada pixel é uma boa idéia. Se houver diferenças significativas entre (média brilhante - média escura) para cada pixel, dividir por essa "imagem branca média" também pode ser uma melhoria.

Mas você realmente precisa fazer essas estatísticas para descobrir o que faz sentido.

Niki Estner
fonte
3

Geralmente, os valores negativos devem ser truncados para zero quando você subtrai o quadro escuro.

Surpreende-me que a subtração de quadro escuro dê valores de -172. Significa que:

  • Seu nível de ruído é alto - pelo menos 172 em algum lugar
  • Seu ruído varia muito de quadro para quadro. Nesse caso, a subtração de quadro escuro não é muito eficaz.

Você pode postar imagens de um quadro normal, quadro escuro e, em seguida, da versão subtraída?

japreiss
fonte
A câmera pode tentar corrigir as condições de pouca luz aumentando o tempo de captura. Como resultado, os pixels quentes acumularão mais ruído. Além disso, a leitura do sensor pode não ser linear; nesse caso, você não pode subtraí-los.
MSalters
negative values should be truncated to zero when you subtract the dark frame. Você não deve fazer isso, pois isso impedirá que você faça um bom trabalho para minimizar as áreas escuras da sua imagem. É melhor manter o ruído "natural" antes de realmente tentar removê-lo.
Simon Bergot
Esse foi o meu problema com o método: se você não truncar os valores para zero, ficará com um intervalo maior do que uma imagem deve produzir; portanto, quando você o redimensiona, aparentemente encobre os dados, em vez dos valores truncados que também parecem impedi-lo de obter uma correção adequada