MHI é o acrônimo de Motion History Image http://web.cse.ohio-state.edu/~jwdavis/CVL/Research/MHI/mhi.html Motion History Images 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 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 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)., 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.

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 http://repositorio.ufla.br/handle/1/1760.

Técnica MHI 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.

thumb|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 Basicamente, dada uma coleção de n imagens previamente capturadas em tons de cinza, o MHI pode ser obtido por meio do seguinte procedimento: 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. 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. 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 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.

Limitações O MHI não indica a direção do deslocamento, indicando somente que ocorreu movimento de um determinado objeto num intervalo de tempo.J. Davis.MIT Technical Report #487, March 1999.

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 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 Xiang, T., Gong, S.: Beyond tracking: modelling activity and understanding behaviour. Int. J.Comput.Vis. 67(1), 21–51 (2006)., introduziu um conceito semelhante para reconhecimento de atividades comerciais em recinto fechado e atividades de carga da aeronave em recinto aberto. Davis e Bradski 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 e Davis 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) melhoram o MHI de maneiras diferentes para o o reconhecimento de vários movimentos e gestos. Leman et al Leman, K., Ankit, G., Tan, T.: PDA-based human motion recognition system. Int. J. Softw. Eng. Knowl. 2(15), 199–205 (2005)., desenvolveram um sistema de reconhecimento baseado no PDA, utilizando a metodologia do MHI.

2) O MHI PARA ANÁLISE DE MOVIMENTO