Tuesday 22 August 2017

Gaussian Moving Average Code


Gaussian Smoothing Nomes comuns: suavização gaussiana Breve descrição O operador de alisamento gaussiano é um operador de convolução 2-D que é usado para desfocar imagens e remover detalhes e ruídos. Nesse sentido, é semelhante ao filtro médio. Mas usa um kernel diferente que representa a forma de uma gueira Gaussiana (em forma de sino). Este kernel possui algumas propriedades especiais que são detalhadas abaixo. Como funciona A distribuição gaussiana em 1-D tem a forma: onde é o desvio padrão da distribuição. Também assumimos que a distribuição tem uma média de zero (isto é, centrada na linha x 0). A distribuição está ilustrada na Figura 1. Figura 1 Distribuição Gaussiana 1-D com média 0 e 1 Em 2-D, um Gaussiano isotrópico (ou simétrico circular) tem a forma: Esta distribuição é mostrada na Figura 2. Figura 2 2-D Distribuição gaussiana com média (0,0) e 1 A idéia de suavização gaussiana é usar esta distribuição 2-D como uma função de propagação de pontos, e isso é conseguido por convolução. Uma vez que a imagem é armazenada como uma coleção de pixels discretos, precisamos produzir uma aproximação discreta da função Gaussiana antes que possamos realizar a convolução. Em teoria, a distribuição gaussiana não é zero em todos os lugares, o que exigiria um núcleo de convolução infinitamente grande, mas, na prática, é efetivamente zero mais do que cerca de três desvios padrão da média e, portanto, podemos truncar o núcleo neste ponto. A Figura 3 mostra um kernel de convolução de número inteiro adequado que se aproxima de um gaussiano com a de 1,0. Não é óbvio como escolher os valores da máscara para aproximar um gaussiano. Pode-se usar o valor do gaussiano no centro de um pixel na máscara, mas isso não é exato porque o valor do gaussiano varia de forma não linear ao longo do pixel. Integramos o valor do gaussiano em todo o pixel (somando o Gaussiano em incrementos de 0,001). As integrais não são inteiros: redimensionamos a matriz de modo que os cantos tivessem o valor 1. Finalmente, o 273 é a soma de todos os valores na máscara. Figura 3 Aproximação discreta à função Gaussiana com 1.0 Uma vez que o kernel adequado foi calculado, então o alisamento gaussiano pode ser realizado usando métodos de convolução padrão. A convolução pode de fato ser realizada com bastante rapidez, uma vez que a equação para Gaussian isotrópico 2-D mostrada acima é separável em componentes x e y. Assim, a convolução 2-D pode ser realizada pela primeira convolução com um gaussiano 1-D na direção x e, em seguida, convolvendo com outro gaussiano 1-D na direção y. (O gaussiano é, de fato, o único operador completamente circularmente simétrico que pode ser decomposto dessa maneira). A Figura 4 mostra o kernel de componente x 1-D que seria usado para produzir o kernel completo mostrado na Figura 3 (após a escala em 273 , Arredondando e truncando uma linha de pixels ao redor do limite porque eles geralmente têm o valor 0. Isso reduz a matriz 7x7 para o 5x5 mostrado acima). O componente y é exatamente o mesmo, mas é orientado verticalmente. Figura 4 Um dos pares de núcleos de convolução 1-D usados ​​para calcular o kernel completo mostrado na Figura 3 mais rapidamente. Uma outra maneira de calcular um alisamento gaussiano com um grande desvio padrão é convolver uma imagem várias vezes com um gaussiano menor. Embora esta seja computacionalmente complexa, pode ter aplicabilidade se o processamento for realizado usando uma tubulação de hardware. O filtro gaussiano não só possui utilidade em aplicações de engenharia. Também atrai a atenção dos biólogos computacionais porque foi atribuído com alguma quantidade de plausibilidade biológica, e. Algumas células nas vias visuais do cérebro geralmente têm uma resposta aproximadamente gaussiana. Diretrizes para uso O efeito do alisamento gaussiano é borrar uma imagem, de forma semelhante ao filtro médio. O grau de suavização é determinado pelo desvio padrão do gaussiano. (Desvio padrão maior Gaussians, é claro, requerem núcleos de convolução maiores para serem representados com precisão.) O gaussiano produz uma média ponderada de cada área de pixels, com a média ponderada mais para o valor dos pixels centrais. Isso contrasta com a média ponderada uniformemente média. Devido a isso, um gaussiano proporciona um alisamento mais suave e preserva bordas melhor do que um filtro médio de tamanho similar. Uma das principais justificativas para o uso do Gaussiano como filtro de suavização deve-se à sua resposta de freqüência. A maioria dos filtros de suavização baseados em convolução atuam como filtros de freqüência de passagem baixa. Isso significa que seu efeito é remover componentes de alta freqüência espacial de uma imagem. A resposta de frequência de um filtro de convolução, isto é, seu efeito em diferentes freqüências espaciais, pode ser vista tomando a transformada de Fourier do filtro. A Figura 5 mostra as respostas de frequência de um filtro médio 1-D com largura 5 e também de um filtro gaussiano com 3. Figura 5 Respostas de frequência do filtro Box (isto é, média) (largura 5 pixels) e filtro gaussiano (3 pixels). O eixo da frequência espacial é marcado em ciclos por pixel e, portanto, nenhum valor acima de 0,5 tem um significado real. Ambos os filtros atenuam as freqüências altas mais do que as baixas freqüências, mas o filtro médio exibe oscilações em sua resposta de freqüência. O gaussiano, por outro lado, não mostra oscilações. Na verdade, a forma da curva de resposta de freqüência é em si (meio a) Gaussiano. Então, ao escolher um filtro Gaussiano de tamanho adequado, podemos ter bastante confiança sobre qual faixa de freqüências espaciais ainda estão presentes na imagem após a filtragem, o que não é o caso do filtro médio. Isso tem conseqüências para algumas técnicas de detecção de bordas, conforme mencionado na seção sobre passagens zero. (O filtro gaussiano também revela-se muito parecido com o filtro de suavização ideal para a detecção de borda, de acordo com o critério utilizado para derivar o detector de borda Canny). Para ilustrar o efeito do alisamento com filtros gaussianos sucessivamente maiores e maiores. Mostra o efeito da filtragem com um Gaussian de 1.0 (e tamanho do kernel 52155). Mostra o efeito da filtragem com um Gaussian of 2.0 (e tamanho do noz 92159). Mostra o efeito da filtragem com um Gaussian de 4.0 (e tamanho do kernel 1521515). Agora consideramos o uso do filtro gaussiano para redução de ruído. Por exemplo, considere a imagem que foi corrompida por ruído gaussiano com uma média de zero e 8. Suavizando isso com um rendimento Gaussiano 52155 (Compare esse resultado com o conseguido pelos filtros médio e médio.) O ruído salino e pimenta é mais desafiador Para um filtro gaussiano. Aqui vamos suavizar a imagem que foi corrompida por 1 barril de sal e pimenta (ou seja, bits individuais foram lançados com probabilidade 1). A imagem mostra o resultado do alisamento gaussiano (usando a mesma convolução como acima). Compare isso com o original Observe que muito do ruído ainda existe e que, embora tenha diminuído de magnitude um pouco, ele foi manchado em uma região espacial maior. Aumentar o desvio padrão continua a reduzir o impacto da intensidade do ruído, mas também atenua significativamente os detalhes de alta freqüência (por exemplo, bordas), como mostrado na Experiência interativa. Você pode experimentar de forma interativa com este operador, clicando aqui. A partir do ruído gaussiano (média 0, 13), a imagem corrompida calcula o filtro médio e o alisamento de filtro Gaussiano em várias escalas, e compara cada um em termos de remoção de ruído versus perda de detalhes. Em quantos desvios-padrão da média, um Gaussiano cai para 5 do seu valor máximo. Com base nisso, sugere um tamanho de kernel quadrado adequado para um filtro gaussiano com s. Estimar a resposta de freqüência para um filtro gaussiano por Gaussian suavizando uma imagem e tomando sua transformada de Fourier tanto antes como depois. Compare isso com a resposta de freqüência de um filtro médio. Como o tempo necessário para suavizar com um filtro Gaussiano se compara com o tempo necessário para suavizar com um filtro médio para um núcleo do mesmo tamanho Observe que, em ambos os casos, a convolução pode ser acelerada consideravelmente ao explorar determinados recursos do kernel. Referências E. Davies Visão da máquina: teoria, algoritmos e praticidades. Academic Press, 1990, pp 42 - 44. R. Gonzalez e R. Woods Processamento de imagem digital. Addison-Wesley Publishing Company, 1992, p. 191. R. Haralick e L. Shapiro Computer and Robot Vision. Addison-Wesley Publishing Company, 1992, Vol. 1, cap. 7. B. Horn Robot Vision. MIT Press, 1986, cap. 8. D. Vernon Machine Vision. Prentice-Hall, 1991, pp 59 - 61, 214. Informações locais Informações específicas sobre este operador podem ser encontradas aqui. Um conselho mais geral sobre a instalação HIPR local está disponível na seção introdutória da Informação Local. Documentação Este exemplo mostra como usar os filtros médios móveis e o reescalonamento para isolar o efeito de componentes periódicos da hora do dia nas leituras horárias horárias, bem como remover Ruído de linha indesejável de uma medida de tensão de circuito aberto. O exemplo também mostra como alisar os níveis de um sinal de relógio, preservando as bordas usando um filtro mediano. O exemplo também mostra como usar um filtro Hampel para remover grandes outliers. Motivation Smoothing é como descobrimos padrões importantes em nossos dados, deixando para fora coisas que não têm importância (ou seja, o ruído). Usamos filtragem para executar esse alisamento. O objetivo do alisamento é produzir mudanças lentas de valor para que seja mais fácil ver tendências em nossos dados. Às vezes, quando você examina dados de entrada, você deseja suavizar os dados para ver uma tendência no sinal. No nosso exemplo, temos um conjunto de leituras de temperatura em Celsius tomadas a cada hora no Aeroporto de Logan durante todo o mês de janeiro de 2011. Note que podemos visualizar visualmente o efeito que a hora do dia tem nas leituras de temperatura. Se você estiver interessado apenas na variação diária da temperatura ao longo do mês, as flutuações horárias só contribuem com o ruído, o que pode tornar as variações diárias difíceis de discernir. Para remover o efeito da hora do dia, gostaríamos agora de suavizar nossos dados usando um filtro de média móvel. Um filtro de média móvel Na sua forma mais simples, um filtro médio móvel de comprimento N leva a média de cada N amostras consecutivas da forma de onda. Para aplicar um filtro de média móvel a cada ponto de dados, nós construímos nossos coeficientes do nosso filtro para que cada ponto seja igualmente ponderado e contribua com 1 24 para a média total. Isso nos dá a temperatura média em cada período de 24 horas. Retardamento do filtro Observe que a saída filtrada está atrasada em cerca de doze horas. Isto é devido ao fato de nosso filtro de média móvel ter um atraso. Qualquer filtro simétrico de comprimento N terá um atraso de (N-1) 2 amostras. Podemos explicar esse atraso manualmente. Extraindo diferenças médias Alternativamente, também podemos usar o filtro de média móvel para obter uma melhor estimativa de como a hora do dia afeta a temperatura geral. Para fazer isso, primeiro, subtrair os dados suavizados das medidas de temperatura horária. Em seguida, segmentar os dados diferenciados em dias e ter a média durante os 31 dias do mês. Extraindo o envelope máximo Às vezes, também gostaríamos de ter uma estimativa de variação suave de como os altos e baixos do nosso sinal de temperatura mudam diariamente. Para fazer isso, podemos usar a função envelope para conectar altas e baixas extremas detectadas em um subconjunto do período de 24 horas. Neste exemplo, garantimos que haja pelo menos 16 horas entre cada extremo alto e extremo baixo. Nós também podemos ter uma sensação de como os altos e baixos estão tendendo tomando a média entre os dois extremos. Filtros médios em movimento ponderados Outros tipos de filtros médios móveis não pesam cada amostra de forma igual. Outro filtro comum segue a expansão binomial de (1 2,1 2) n Este tipo de filtro se aproxima de uma curva normal para valores grandes de n. É útil para filtrar o ruído de alta freqüência para pequenos n. Para encontrar os coeficientes para o filtro binomial, convolve 1 2 1 2 com ele próprio e, então, convoluciona a saída com 1 2 1 2 um número de vezes prescrito. Neste exemplo, use cinco iterações totais. Outro filtro um pouco semelhante ao filtro de expansão gaussiano é o filtro exponencial de média móvel. Este tipo de filtro de média móvel ponderada é fácil de construir e não requer um grande tamanho de janela. Você ajusta um filtro de média móvel ponderada exponencialmente por um parâmetro alfa entre zero e um. Um valor maior de alfa terá menos suavização. Amplie as leituras por um dia. Escolha o seu país

No comments:

Post a Comment