Avançado Em Média Ponderada


A maneira estranha que uma média móvel faz a tendência de uma massa de medidas confusas pode ser vista ao traçar a média móvel de 10 dias juntamente com os pesos diários originais, mostrados como pequenos diamantes. As médias móveis que usamos até agora dão igual significado a todos os dias na média. Isso não precisa ser assim. Se você pensa sobre isso, não faz muito sentido, especialmente se você estiver interessado em usar uma média móvel de longo prazo para suavizar os colisões aleatórias na tendência. Suponha que você esteja usando uma média móvel de 20 dias. Por que seu peso, quase três semanas atrás, deve ser considerado igualmente relevante para a tendência atual como seu peso nesta manhã. Várias formas de médias móveis ponderadas foram desenvolvidas para resolver essa objeção. Em vez de apenas somar as medidas para uma seqüência de dias e dividir pelo número de dias, em uma média móvel ponderada, cada medida é primeiro multiplicada por um fator de peso que difere do dia a dia. A soma final é dividida, não pelo número de dias, mas pela soma de todos os fatores de peso. Se fatores de peso maiores forem usados ​​para dias mais recentes e fatores menores para medidas mais atrasadas no tempo, a tendência será mais sensível às mudanças recentes sem sacrificar o alisamento de uma média móvel. Uma média móvel não ponderada é simplesmente uma média móvel ponderada com todos os fatores de peso iguais a 1. Você pode usar qualquer fator de peso que você gosta, mas um conjunto específico com a média de movimentação suavizada exponencial de montagem de jawbreaking provou ser útil em aplicações que variam do radar de defesa aérea Para negociar o mercado da barriga de porco Chicago. Vamos também pôr em prática as barrigas. Este gráfico compara os fatores de peso para uma média móvel de 20 dias exponencialmente suavizada com uma média móvel simples que pesa todos os dias igualmente. O alisamento exponencial dá a medição de hoje duas vezes o significado que a média simples atribuiria, a medição de ontem um pouco menor do que isso, e cada dia sucessivo inferior ao seu antecessor no dia 20, contribuindo apenas com 20 para o resultado com uma média móvel simples. Os fatores de peso em uma média móvel suavemente exponencial são potências sucessivas de um número chamado de constante de suavização. Uma média móvel suavizada exponencialmente com uma constante de suavização de 1 é idêntica a uma média móvel simples, uma vez que 1 para qualquer potência é 1. As constantes de suavização inferiores a 1 pesam mais os dados mais recentes, com o viés para as medidas mais recentes aumentando à medida que o alisamento Diminui constantemente para zero. Se a constante de suavização exceder 1, os dados mais antigos são mais ponderados do que as medidas recentes. Este gráfico mostra os fatores de peso resultantes de diferentes valores da constante de suavização. Observe como os fatores de peso são todos 1 quando a constante de suavização é 1. Quando a constante de suavização é entre 0,5 e 0,9, o peso dado aos dados antigos cai tão rapidamente em comparação com medidas mais recentes que não há necessidade de restringir a média móvel para Um número específico de dias, podemos medir todos os dados que temos, de volta ao início e permitir que os fatores de peso calculados a partir da constante de suavização descartem automaticamente os dados antigos à medida que se torna irrelevante para a tendência atual. Para ser um artigo muito simples, mas você vai achar isso muito útil. Trata-se de Extração de fundo de um vídeo. Suponha que você tenha um vídeo de filmagem de tráfego, pode ser uma coisa assim. Tráfego na Índia. E você é convidado a encontrar um fundo aproximado. Ou qualquer coisa assim. A extração de fundo vem importante no rastreamento de objetos. Se você já possui uma imagem do fundo nu, então é simples. Mas, em muitos casos, você não terá essa imagem e, então, você terá que criar uma. É aí que o Running Average é útil. (Eu pensei sobre isso quando um cara fez uma pergunta no SOF. Link) A função que usamos aqui para encontrar Running Average é cv2.accumulateWeighted (). Por exemplo, se estamos assistindo um vídeo, continuamos alimentando cada quadro para esta função, e a função continua encontrando as médias de todos os quadros alimentados a ele de acordo com a relação abaixo: src não é senão a nossa imagem de origem. Pode ser em escala de cinza ou imagem colorida e ponto flutuante de 8 bits ou 32 bits. Dst é a imagem de saída ou acumulador com os mesmos canais que a da imagem de origem, e é um ponto flutuante de 32 bits ou 64 bits. Além disso, devemos declarar primeiro um valor que será tomado como valor inicial. Alfa é o peso da imagem de entrada. De acordo com o Docs, o alfa regula a velocidade de atualização (o quão rápido o acumulador 8220forgets8221 sobre imagens anteriores). Em palavras simples, se o alfa é um valor maior, a imagem média tenta capturar mudanças muito rápidas e curtas nos dados. Se for menor valor, a média fica lenta e não considera mudanças rápidas nas imagens de entrada. Vou explicar um pouco com a ajuda de imagens no final do artigo. No código acima, estabeleci duas médias, uma com maior valor alfa e outra com menor valor alfa para que você possa entender o efeito do alfa. No início, ambos são configurados para o quadro inicial da captura. E em loop eles são atualizados. Você pode ver alguns resultados no link SOF que eu já forneci. (Eu forneço esses resultados aqui, você pode verificar o código e o valor alfa lá): usei minha webcam e economize o quadro original e a média de execução em um instante particular. Este é um quadro de um vídeo de tráfego típico tirado por uma câmera estacionária. Como você pode ver, um carro está indo na estrada, e a pessoa está tentando atravessar a estrada em um determinado instante de tempo. Mas veja a média de corrida naquele momento. Não há pessoa e carro nesta imagem (Na verdade, está lá, tenha uma aparência próxima, então você vai ver isso, e a pessoa é mais clara que o carro, já que o carro está se movendo muito rápido e através da imagem, não tem muito Efeito em média, mas a pessoa está lá por um longo tempo, já que ele está lento e se movendo através da estrada.) Agora precisamos ver o efeito do alfa sobre essas imagens. Imagens em movimento A explicação abaixo pertence ao livro Visão de Computador: Algoritmos E Aplicações de Richard Szeliski e LearningOpenCV Smoothing. Também chamado de desfocagem. É uma operação de processamento de imagem simples e freqüentemente usada. Existem muitas razões para suavizar. Neste tutorial, vamos nos concentrar no alisamento para reduzir o ruído (outros usos serão vistos nos seguintes tutoriais). Para realizar uma operação de suavização aplicaremos um filtro na nossa imagem. O tipo de filtro mais comum é linear. No qual um valor pixel8217s de saída (isto é) é determinado como uma soma ponderada de valores de pixels de entrada (isto é): ajuda a visualizar um filtro como uma janela de coeficientes que desliza através da imagem. Existem muitos tipos de filtros, aqui vamos mencionar os mais usados: Filtro de caixa normalizado Este filtro é o mais simples de todos. Cada pixel de saída é a média de seus vizinhos do kernel (todos eles contribuem com pesos iguais) O núcleo está abaixo: Gaussiano Filtro Provavelmente o filtro mais útil (embora não seja o mais rápido). A filtragem gaussiana é feita convolvendo cada ponto na matriz de entrada com um kernel Gaussiano e, em seguida, somando todos para produzir a matriz de saída. Apenas para tornar a imagem mais clara, lembre-se de como um kernel gaussiano 1D parece assumir que uma imagem é 1D, você pode notar que o pixel localizado no meio teria o maior peso. O peso de seus vizinhos diminui à medida que a distância espacial entre eles eo pixel central aumenta. Lembre-se de que um gaussiano 2D pode ser representado como: Filtro médio O filtro médio percorre cada elemento do sinal (neste caso, a imagem) e substitua cada pixel pela mediana dos pixels vizinhos (localizado em um bairro quadrado ao redor do pixel avaliado ). Filtro bilateral Até agora, explicamos alguns filtros, cujo principal objetivo é alisar uma imagem de entrada. No entanto, às vezes os filtros não só dissolvem o ruído, mas também suavizam as bordas. Para evitar isso (em certa medida pelo menos), podemos usar um filtro bilateral. De forma análoga ao filtro gaussiano, o filtro bilateral também considera os pixels vizinhos com pesos atribuídos a cada um deles. Esses pesos têm dois componentes, o primeiro dos quais é a mesma ponderação usada pelo filtro gaussiano. O segundo componente leva em consideração a diferença de intensidade entre os pixels vizinhos e o avaliado. Para uma explicação mais detalhada, você pode verificar este link. O que faz esse programa. Carrega uma imagem. Aplica 4 tipos diferentes de filtros (explicado em Theory) e mostra as imagens filtradas sequencialmente. Explicação Let8217s verifica as funções OpenCV que envolvem apenas o procedimento de suavização, já que O resto já é conhecido. Filtro de bloco normalizado: o OpenCV oferece a função desfocada para executar o alisamento com este filtro. Especificamos 4 argumentos (mais detalhes, verifique a Referência): src. Imagem de origem dst. Tamanho da imagem de destino (w, h). Define o tamanho do kernel a ser usado (de pixels de largura w pixels e altura h) Ponto (-1, -1). Indica onde o ponto de ancoragem (o pixel avaliado) está localizado em relação ao bairro. Se houver um valor negativo, o centro do kernel é considerado o ponto de ancoragem. É executado pela função GaussianBlur: Aqui usamos 4 argumentos (mais detalhes, verifique a referência OpenCV):

Comments

Popular posts from this blog

Spartan Forex Trading Academy Revisão

Rublo De Negociação Forex

Ea Forex Trading Arbitrage System