MHI é o acrônimo de Motion History Image [1] que, em português, significa Imagem da História do Movimento. Tecnicamente, MHI é um método para a análise de movimento por meio de processamento de imagens sucessivas no tempo.

Movimento editar

No processamento digital de imagens, movimento é tudo aquilo que sofre alteração em uma sequência de imagens ao longo do tempo. Uma das formas de se determinar computacionalmente esse movimento é criar uma imagem da história desse movimento [2], que registra as diferenças que ocorreram entre imagens capturadas sequencialmente ao longo do tempo.

Basicamente, existem duas formas de utilizar essa técnica: offline e online. Em um processamento offline, uma determinada quantidade de imagens previamente capturadas é processada, resultando em uma única imagem, que destaca as alterações percebidas na coleção de imagens original. Se o resultado for expresso com uma imagem em tons de cinza, os pixels pretos denotam pontos em que alterações nulas ou irrelevantes ocorreram. Já os pixels com intensidade diferente de zero, representam pontos que sofreram alteração, pelo menos, de uma das imagens originais em relação à outra. Além disso, as diferentes intensidades dos pixels, revelam o momento em que essas alterações ocorreram: alterações mais recentes, detectadas entre as últimas imagens da coleção, são ponderadas de forma a resultar em pixels mais claros. Por outro lado, se o resultado for expresso com uma imagem em escala de temperatura, a cor preta é substituída pela cor azul escuro, ao passo que as intensidades não nulas são substituídas por cores que variam do azul claro ao vermelho. As figuras ao lado foram obtidas com a aplicação do algoritmo MHI à uma coleção de oito imagens previamente capturadas. O resultado é mostrado em cores e em nível de cinza.

 
Aplicação do algorítimo MHI em uma coleção de 8 imagens previamente capturadas com resultado apresentado em tons de cinza (preto significa mudanças nulas ou irrelevantes e intensidades mais altas significam mudanças mais recentes).

Por outro lado, em um processamento online, uma câmera digital é utilizada para capturar imagens periodicamente, sendo que as últimas n imagens são processadas de forma cíclica. Dessa forma, resultados, como os mostrados nas figuras ao lado, também são atualizados periodicamente, permitindo que as mudanças ocorridas no ambiente monitorado pela câmera sejam facilmente percebidas. Essa apresentação gráfica dos resultados pode ser facilmente quantificada de forma numérica, por exemplo, tomando-se a intensidade média dos pixels da imagem em tons de cinza. Assim, por exemplo, pode-se disparar uma sirene sempre que a movimentação em um determinado local ultrapassar um limite pré estabelecido. Existem algoritmos prontos para realizar o MHI online [3].

Técnica MHI editar

A técnica MHI constrói a imagem final acumulando, como se fosse em camadas, as imagens previamente capturadas, obedecendo a regra de que cada pixel (x, y) no MHI é marcado com o instante (hora, minuto, segundo e milissegundo) corrente e será removido se ele não variar depois de um parâmetro de tempo.

O primeiro passo no processamento da imagem é transformá-la do espectro de cores RGB (Red, Green, Blue) para o espectro de cores HSI (Hue, Saturation, Intensity) (Gonzalez, Woods (2008)), onde o objetivo é obter a imagem em tons de cinza, e representada pelo componente I (intensidade) da HSI.

 

Onde R, G e B representam os níveis de cor vermelho, verde e azul em 8 bits para cada pixel.

Quando o braço se movimenta de baixo para cima, a coleção de imagens podem ser manipuladas pelo processo do MHI em alguns passos descritos a seguir. A Equação representa a diferença entre duas imagens sucessivas Ij e Ij+1, conhecida como silhueta.

Sj = Ij - Ij+1

Na imagem silhueta Sj, aplica-se a função de threshold (Gonzalez, Woods (2008)).

Tj(x,y) = 1 se Sj (x, y)>Z

0 se Sj (x, y)<=Z

Onde Z é o parâmetro de threshold e Tj(x,y) é o threshold da imagem em cada momento j.

O procedimento MHI final é a soma das imagens dentro dos limites do buffer de tamanho n por um kj constante, o que representa o tempo de vida da imagem no momento j.

 
Aplicação do algorítimo MHI em uma coleção de 8 imagens previamente capturadas com resultado apresentado em escala de temperatura (azul escuro significa mudanças nulas ou irrelevantes e vermelho significa mudanças mais recentes).

Como funciona o MHI editar

Basicamente, dada uma coleção de n imagens previamente capturadas em tons de cinza, o MHI pode ser obtido por meio do seguinte procedimento:

  1. Subtração de valores de intensidade de imagens sucessivas. Dessa forma, esse primeiro passo consiste subtrair duas imagens sucessivas, guardar o resultado em uma nova matriz e, em seguida, subtrair na sequência mais duas imagens sucessivas, e assim por diante. Ao final, temos n-1 matrizes, contendo as descritas subtrações das n imagens da coleção original.
  2. Aplicação a função binarização ( ou threshold). Essa função tem o objetivo de eliminar mudanças que sejam consideradas irrelevantes. Para isso, analisa-se o módulo de cada elemento das matrizes que armazenam os resultados das subtrações descritas na etapa anterior. Se esse módulo for menor que o limite estabelecido pelo usuário (threshold), o ponto da matriz é mapeado com o valor 0. Por outro lado, se o módulo do elemento analisado for maior que o limite, a matriz resultante recebe o valor 1 na posição associada. Os valores 0 e 1 representam em níveis de cinza os valores 1 e 256, ou seja, preto ou branco respectivamente. Ao final, temos novamente um conjunto de n-1 matrizes, com as mesmas dimensões das matrizes anteriores, porém contendo apenas valores binários. Além de eliminar mudanças consideradas (com a escolha do limite da função threshold) irrelevantes, essa etapa também é fundamental para que as operações propostas a seguir sejam realizadas de forma correta. Essa é uma etapa de define a sensibilidade da detecção do movimento.
  3. Adição ponderada dos resultados das diferenças binarizadas. Assim, além de identificar pontos em que ocorreram mudanças, o algorítimo MHI dá destaque aos movimentos mais recentes, ou seja das últimas diferenças. Para se fazer isso, uma possibilidade é somar algebricamente as n-1 matrizes obtidas na etapa anterior, sendo que a cada imagem de diferença recebe um peso maior para as imagens mais recentes. Assim, as mudanças mais recentes são destacadas. O peso pode ser uma constante k, com o valor máximo para os elementos de uma matriz em tons de cinza sendo 255; é conveniente escolher k como:

 

O código para Matlab mostrado a seguir implementa o funcionamento descrito.

% pré requisitos
    % Matlab R2011b (ou superior)
    % Image acquisition toolbox
    % Image processing toolbox
    % Webcam integrada ou USB

% inicialização
    clear all; close all; clc;

% configuração do algoritmo MHI
    n = 8; % quantidade de imagens
    t = 2; % um frame é aproveitado a cada t frames
    z = 5; % intensidade de threshold

% conexão e configuração da câmera
    vid = videoinput('winvideo',1);
    set(vid,'ReturnedColorSpace','grayscale');
    set(vid,'FramesPerTrigger',n);
    set(vid,'FrameGrabInterval',t);
    set(vid,'TimeOut',(n*t)+t);
    
% apresentação da imagem online e diálogo com usuário
    hnd = preview(vid);
    qst = questdlg('Iniciar MHI?','MHI Simples','Ok','Cancelar','Ok');
    if strcmp(qst,'Cancelar')
        close(ancestor(hnd,'figure'));
        return;
    end
   
% aquisição das imagens
    start(vid);
    img = getdata(vid);
    close(ancestor(hnd,'figure'));

% subtração da próxima imagem da imagem anterior
    S = cell(1,n-1);
    for j = 1 : n-1
        S{j} = img(:,:,:,j) - img(:,:,:,j+1);
    end
     
% aplicação a função threshold
    T = cell(1,n-1);
    for j = 1 : n-1
        T{j} = (abs(S{j}) > z);
    end
    
% adição ponderada dos resultados da função threshold
    mhi = zeros(size(T{1}));
    k = 255 / sum(1:n-1);
    for j = 1 : n-1
        mhi = mhi + T{j} * (k * j);
    end

% apresentação do resultado
    figure(1); imshow(mhi,[0 255]); colormap(gray);
    title('MHI em Escala de Cinza');
    figure(2); imshow(mhi,[0 255]); colormap('default');
    title('MHI em Escala de Temperatura');

Vantagens editar

O MHI é caracterizado pelas seguintes vantagens:

  • É um método simples e robusto;
  • Utilizado para pesquisa de reconhecimento de ação e análise de movimento;
  • Não é um método tão sensível aos ruídos, como imperfeições e sombras;
  • Mantém um histórico das alterações temporais em cada localização de pixels ao longo do tempo;
  • Expressa o fluxo de movimento usando a intensidade de cada pixel de forma temporal;
  • Pode ser implementado com câmeras de baixo custo e computadores não sofisticados;
  • Pode ser implementado em áreas de baixa luminosidade, onde a estrutura não pode ser detectada facilmente[4].

Limitações editar

O MHI não indica a direção do deslocamento, indicando somente que ocorreu movimento de um determinado objeto num intervalo de tempo.[5]

O método é MHI não é adequado para o fundo dinâmico, pois dificulta o contraste com o objeto que se deseja analisar.

Aplicações editar

As inúmeras aplicações do MHI são categorizadas em três grandes grupos: 1) Gesto ou ação de reconhecimento. 2) Análise de movimento. 3) Sistemas interativos.

1) GESTO OU AÇÃO DE RECONHECIMENTO Este método é utilizado para reconhecer diferentes ações. É usado para reconhecimento de movimentos humanos e rastreamento de objetos em movimento por vários grupos. Xiang Gong [6], introduziu um conceito semelhante para reconhecimento de atividades comerciais em recinto fechado e atividades de carga da aeronave em recinto aberto. Davis e Bradski [7] e Davis [8] melhoram o MHI de maneiras diferentes para o o reconhecimento de vários movimentos e gestos. Leman et al [9], desenvolveram um sistema de reconhecimento baseado no PDA, utilizando a metodologia do MHI.

2) O MHI PARA ANÁLISE DE MOVIMENTO Além da ação humana e reconhecimento de atividade, o MHI também é empregado para a detecção de movimento e de localização para a vigilância de vídeo e outros fins. Yin e Collin [10], combinaram os métodos forward-MHI e backward-MHI para alcançar uma forma de contorno para o objeto em movimento no quadro atual. Rosales e Sclaroff [11], usaram o MHI para acompanhar várias atividades ao ar livre. Em outra abordagem, é desenvolvido um sistema de rastreamento adaptável multimodal onde o MHI é calculado para encontrar a peça em movimento. Jan [12], desenvolveu um sistema de vigilância para a avaliação da ameaça no parque de um estacionamento. Este sistema emprega MHI's para exibir qualquer padrão irregular de uma pessoa suspeita no restrito lugar do estacionamento.

3) O MHI PARA SISTEMAS INTERATIVOS Vários sistemas interativos foram criados com base no MHI, como mecanismo de detecção primária. Davis et al [13], desenvolveram um instrutor virtual de aeróbica que assiste e responde aos usuários como ela/ele realiza os exercícios. Bobick et al [14], desenvolveram um espaço de jogo interativo e narrativo para crianças, chamado Kids-room [15], usando o MHI. Neste ambiente as crianças podem interagir com monstros enquanto estiverem jogando em um cenário de histórias narrativas. Yau et al [16], desenvolveram um método para o reconhecimento de voz virtual, empregando o MHI,os dados de vídeo da boca do orador é representado por MHI's.

Implementação do MHI utilizando pirâmides editar

MHI HIERÁRQUICO

Muito parecido com o trabalho na estimativa de movimento hierárquico, combinando som, imagem e codificação usando pirâmides imagem[17][18][19], entende-se a representação inicial MHI em um formato de pirâmide hierárquica para fornecer um meio de abordar o cálculo gradiente de múltipla velocidades de imagem. Uma pirâmide imagem é construída por meio de filtragem recursiva lowpass e sub-amostragem de uma imagem até atingir o tamanho desejado de redução espacial. Com uma representação de pirâmide, duas imagens com grandes deslocamentos de movimento entre eles terão deslocamentos menores quando comparados a cada nível da pirâmide mais elevados. Isso permite usar máscaras de gradiente de tamanho fixo em cada nível da pirâmide (junto com algumas restrições) para calcular os movimentos de diferentes velocidades. O resultado é uma hierarquia de campos onde o movimento resultante calculado em cada nível é ajustado para uma velocidade específica Além disso, as reduções espaciais na geração de pirâmide ajuda a preencher em todas as pequenas falhas que podem ter sido perdidas.

Referências

  1. http://web.cse.ohio-state.edu/~jwdavis/CVL/Research/MHI/mhi.html Motion History Images
  2. DAVIS, JW. Hierarchical motion history images for recognizing human motion. Detection and Recognition of Events in Video, …, 2002. Disponível em: http://ieeexplore.ieee.org/iel5/7478/20323/00938864.pdf?arnumber=938864 (Accessed October 18, 2010).
  3. http://repositorio.ufla.br/handle/1/1760
  4. Ahad, Atiqur. «Motion history image: its variants and applications». Machine Vision and Applications. doi:10.1007/s00138-010-0298-4. Consultado em 18 de novembro de 2014 
  5. J. Davis.MIT Technical Report #487, March 1999.
  6. Xiang, T., Gong, S.: Beyond tracking: modelling activity and understanding behaviour. Int. J.Comput.Vis. 67(1), 21–51 (2006).
  7. Bradski, G., Davis, J.: Motion segmentation and pose recognition with motion history gradients. In: Proc. IEEE Workshop on Applications of Computer Vision, pp. 174–184, December 2000; Bradski, G., Davis, J.: Motion segmentation and pose recognition with motion history gradients. Mach. Vis. Appl. 13(3),174–184 (2002)Davis, J., Bradski, G.: Real-time motion template gradients using Intel CVLib. In: Proc. ICCV Workshop on Frame-Rate Vision, pp. 1–20, September 1999
  8. Davis, J.: Hierarchical motion history images for recognizing human motion. In: Proc. IEEE Workshop on Detection and Recognition of Events in Video, pp. 39–46 (2001); Davis, J.: Recognizing movement using motion histograms. MIT Media Lab. Perceptual Computing Section Tech. Report No. 487 (1998)
  9. Leman, K., Ankit, G., Tan, T.: PDA-based human motion recognition system. Int. J. Softw. Eng. Knowl. 2(15), 199–205 (2005).
  10. Yin, Z.,Collins,R.:Moving object localization in thermal imagery by forward-backward MHI. In: Proc. IEEE Workshop on Object Tracking and Classification in and Beyond the Visible Spectrum, NY, pp. 133–140, June 2006
  11. Rosales, R., Sclaroff, S.: 3D trajectory recovery for tracking multiple objects and trajectory guided recognition of actions. In: Proc. CVPR, vol. 2, pp. 117–123 (1999).
  12. Jan, T.: Neural network based threat assessment for automated visual surveillance. In: Proc. IEEE Joint Conf. on Neural Networks,vol. 2, pp. 1309–1312, July 2004
  13. Davis, J., Bobick, A.: Virtual PAT: a virtual personal aerobics trainer. In: Proc. Perceptual User interfaces, pp. 13–18, November 1998
  14. Bobick,A., Intille, S., Davis, J.,Baird, F., Pinhanez, C.,Campbell, L., Ivanov, Y., Schutte, A., Wilson, A.: The Kidsroom: a perceptually- based interactive and immersive story environment. Presence: Teleoperators Virtual Environ. 8(4), 367–391 (1999).
  15. . Bobick,A., Intille, S., Davis, J.,Baird, F., Pinhanez, C.,Campbell,L., Ivanov, Y., Schutte, A., Wilson, A.: The Kidsroom: a perceptually-based interactive and immersive story environment. Presence:Teleoperators Virtual Environ. 8(4), 367–391 (1999)
  16. Yau, W., Kumar, D., Arjunan, S., Kumar, S.: Visual speech recognition using image moments and multiresolution wavelet. In: Proc. Conf. on Computer Graphics, Imaging and Visualization, pp. 194–199 (2006); Yau, W., Kumar, D., Arjunan, S.: Voiceless speech recognition using dynamic visual speech features. In: Proc. HCSNet Workshop on the Use of Vision in HCI, Australia (2006).
  17. J. Bergen, P. Anadan, K. Hanna, and R. Hingorami. Hierarchical model-based motion estimation. In Proc. Euro. Conf.Comp. Vis., pages 237–252, 1992.
  18. L. Quam. Hierarchical warp stereo. Proc. Image Understanding Workshop, pages 137–148, 1984.
  19. P. Burt and E. Adelson. The laplacian pyramid as a compact image code. IEEE transactions on communications, com-31(4):532–540, April 1983.