Moving Average Opencv


Ainda estou cortando um script de varredura de livros, e por enquanto, tudo o que preciso é poder detectar automaticamente uma página. O livro preenche 90 da tela (eu uso uma webcam cruddy para a detecção de movimento), então, quando eu giro uma página, a direção do movimento é basicamente na mesma direção. Eu modifiquei um script de rastreamento de movimento, mas os derivativos estão me levando para lugar nenhum: ele detecta o movimento médio do centro médio de todas as caixas, o que é extremamente ineficiente. Como eu iria sobre a detecção de tais movimentos de forma rápida e precisa (ou seja, dentro de um limiar) Estou usando Python, e eu pretendo ficar com isso, já que minha estrutura inteira é baseada em Python. E a ajuda é apreciada, então agradeço a todos com antecedência. Cheers. Motion Detection With OpenCV Introdução e objetivo Eu sempre quis um software baseado na webcam que possa detectar movimento e gravar em um arquivo de vídeo, apenas algo está se movendo. Agora está pronto. ) Na verdade, não é realmente possível gravar o tempo todo porque a unidade de disco rígido seria preenchida rapidamente se o software tiver que executar um dia, por exemplo. Porque eu amo o OpenCV e o du para a falta desse tipo de software no Linux, eu decidi fazê-lo. Como dito antes, o programa analisa as imagens tiradas da webcam e a intenção de detectar o movimento. Se um movimento for detectado, o programa começa a gravar a webcam em um arquivo de vídeo por 10 segundos. Depois disso, se um movimento for novamente detectado, ele ainda será gravado até os movimentos pararem. Este projeto está hospedado no meu Github. A maneira trivial de implementar dois algoritmos diferentes para detectar o primeiro movimento é o mais trivial em sua maneira de se comportar. A idéia trivial é calcular a diferença entre dois quadros aplicar um limiar os pixels separados que mudaram dos outros e então contar todos os pixels pretos. Então, a média é calculada com esta contagem e o número total de pixels e, dependendo do ceil, o evento é desencadeado ou não. InitRecorder: inicialize o gravador com um codec arbitrário, ele pode ser alterado com problemas no método de execução, nenhum movimento pode ser detectado nos primeiros 5 segundos porque é quase o tempo necessário para a webcam ajustar o foco e a luminosidade que implicam lotrsquos de Mudanças na imagem processImage: contém todas as operações de imagens aplicadas à imagem somethingHasMoved: a iteração da imagem para contar pixels negros está contida neste método. O resultado: a maneira inteligente como eu chamo de maneira inteligente porque sua maneira de operar é menos trivial Do que o anterior, mas os resultados são idênticos, se não mais precisos no método anterior. Inspirei-me do Motion-tracker por Matt Williamson para as operações e filtros para aplicar na imagem, mas o resto é diferente. A idéia neste método é encontrar os contornos dos objetos em movimento e calcular a área de todos eles. Em seguida, a média da mudança de superfície é comparada com a superfície total da imagem e o alarme é disparado se exceder o limite especificado. Observe que o código mostrado abaixo não implementa o sistema de gravação, como é o caso no exemplo anterior, mas pode ser feito facilmente. Robin David Posts recentes GitHub Repos CategoriesHi, este será um artigo muito simples, mas você vai achar 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 move através da estrada.) Agora, precisamos ver o efeito do alfa sobre essas imagens.

Comments

Popular posts from this blog

Qqq Swing Trading System Reviews

Kursy Walut Money Forex

Daily Forex Sinal Indicador Revisão33