Open Water Maze Tracking

Wednesday, August 16, 2006

DLL Creation in MingW http://sig9.com/node/35

Tuesday, April 25, 2006

Ângulo inicial de divergência e o ângulo formado entre a reta entre o ponto inicial até a plataforma e a reta imaginária, média dos primeiros 50 cm de deslocamemto.
Erro de Wishaw e uma relação entre o tempo em que o roedor permanece em um corredor de largura e comprimento especificados do ponto inicial até a plataforma e a latência. Tempo em quadrantes e o tempo em que o roedor permance em cada um dos quadrantes do tanque.
Cruzamentos de anel é o número de vezes em que o roedor passa por um círculo arbitrário centrado na plataforma.
Análise de Fray é a relação entre a distância percorrida dentro de uma determinada região do tanque pela distância percorrida fora dela.


Em 1984 Morris apresentou um trabalho sobre labirinto aquático e que tinha como um dos objetivos criar um procedimento que auxiliasse na investigação das memórias espacial e de trabalho.
O labirinto aquático utilizado inicialmente por Morris com 1,32 m de diâmetro foi substituído por um maior com 2,14 m de diâmetro, 40 cm de altura e preenchida ate 25cm com água. A idéia da utilização de piscinas maiores é evitar as pistas proximais. Isto evita que o roedor utilize uma abordagem direta, obrigando-o a traçar um mapa mental para localizar a plataforma.Pistas próximas devem ser evitadas, mas as pistas distais devem ser utilizadas.
A temperatura deve ser mantida a 26 +/- 1 grau, pois isto impacta diretamente na performance do roedor.
Em um dos quadrantes deve ser colocada uma plataforma rígida com 9 cm de diâmetro, que pode ser submersa a 1cm; ou a plataforma emersa a 1cm. Recomenda-se a adição de leite em forma aquosa ou até em pó para dificultar a visualização direta da plataforma submersa.
Os experimentos podem ser conduzidos de várias formas, dependendo do que se está avaliando, mas a forma mais básica de utilização é colocar o rato na piscina repetidas vezes até que ele consiga alcançar mais diretamente à plataforma. Após a chamada fase de treinamento o roedor é submetido a alguma intervenção e seu desempenho comparado com as vezes anteriores.

Com o intuito de se avaliar o aprendizado do roedor vários parâmetros foram implementados
Partindo-se do princípio que a velocidade do roedor é praticamente constante, a simples avaliação da latência, ou seja o tempo que o roedor leva entre ser colocado na piscina até a localização da plataforma nós dá uma boa informação sobre quanto que o rato aprendeu sobre a tarefa.
Comprimento do caminho que nos dá a distancia percorrida.
Velocidade média, obtida pela relação entre o comprimento do caminho e da latência. Indicativo de nado próximo às bordas é a relação entre o tempo que o roedor permance a uma distancia inferior a 15 cm da borda da latência.
Direcionalidade do caminho é a diferença entre o ângulo da tangente do caminho percorrido pelo rato do ângulo da reta traçada da origem até a plataforma. Direcionalidade média e a média das direcionalidades

Monday, April 03, 2006

Preparando a minha tese, estou fazendo um estudo que se inicia com o labirinto aquático de Morris e seus parâmetros de medida.
Quando do estudo do comportamento em animais, labirinto são muito utilizados em virtude de delimitarem áreas e facilitarem aavaliação da performance. A forma com que o animal procura uma rota de fuga ou de segurança pode ser utilizada para a avaliação sua capacidade cognitiva e de memorização.
Para abreviar a duração dos experimentos utilizam-se técnicas de motivação como eletro-choques, privação de alimetos, mudanças no ambiente como aquecimeto, etc. Como em muita das vezes o animal se acha debilitado em função de medicamentos que lhe são aplicados ou em função de cirurgias no cérebro, busca-se uma alternativa menos agressiva.
Há muitos anos se utiliza a fuga da água como motivação em roedores, especialmente em ratos. Eles são nadadores por excelência e mesmo severamente debilitados ou com lesões cerebrais se saem muito bem neste tipo de experimento, com baixo nível de stress.
Em 1981 Morris apresentou um trabalho sobre a localização espacial em ratos e em 1982 associou a infuência de lesões no hipocampo na orientação em ratos.

Sunday, September 18, 2005

Esta semana terminei uma rotina em C para imagens 640x480 pixels, mas que pode ser adaptada para outras dimensões, provavelmete vou fazer isto para testar na minha webcam (352 x 266). Esta rotina tem como entradas o nome do arquivo (*.bmp), o tamanho da máscara e o ponto de origem. A idéia e aumentar a velocidade para se determinar a posição minimizando a área de busca.
É feita uma varredura em busca de todos os pontos brancos (0xff) dentro das dimensões da máscara. Uma nova implemetação vai ser uma entrada de níveis de decisão entre o preto e branco, pois a rotina atual só procura por branco e não por níveis de cinza.
Como a saída das webcam é usualmente jpeg, e para não ter converter em baixa velocidade, pretendo tratar diretamente as imagens jpeg. Consegui um material sobre imagens jpeg, mas o processo de descompactação não é muito simples. Caso não consiga implementar a rotina em C, vou ter que usar algum módulo pronto em python.

Thursday, September 15, 2005

Fazendo a análise do projeto no qual estou baseando este trabalho, encontrei alguns pontos que podem ser responsáveis pelos erros de medição encontrados quando da validação.

Embora a câmera disponível à época tivesse uma resolução de 768 x 576 pixels, para a medição foram utilizados apenas 384 x 257. O que nos leva em um tanque de 2 m de diâmetro a algo em torno de 1,3 pixel/cm. Utilizando um CCD de 640 x 480 quase dobramos a resolução, ou seja 2,4 pixel/cm.

O tempo de processamento por frame era algo em torno de 500 ms, ou seja de no máximo 2 frames/seg. Se o roedor estiver nadando a digamos 20 cm/s , sua posição a cada nova imagem pode estar distante de 10 cm, o que pode causar erros. Neste caso a idéia é tornar o tempo de processamento mais rápido , para digamos, 100 ms por frame ou seja 10 frames/seg. A comunicação via USB 2.0 deve facilitar em parte. Outra idéia e restringir a região de interesse onde é feito a procura do roedor com o intuito de diminuir o tempo processando a imagem. Algo que chamo de RDI preemptivo.
Para tal basta acompanhar os primeiros frames e começar a estimar a velocidade e a posição baseado nos eventos passados. Desta forma pode ser dimuída a máscara para o tracking do roedor. Alguns cuidados devem ser tomados neste algoritmo, como por exemplo avaliar inicialmente se os limites da máscara não coincidem com o roedor. Neste caso deve ser aumentada a máscara, mas em pequeno grau.
Se não for localizado roedor na região de interesse estimada, a máscara deve ser aumentada em um grande grau, pois a estimativa pode ter sido completamente distorcida, ou se o roedor resolveu bancar o mergulhador, o que as vezes acontece.

Outro ponto que acredito não ter sido avaliado é a distorção da lente da câmara, especialmente nas bordas da imagem. É muito comum em câmaras, principalmente nas de baixo custo a distorção nas bordas conhecido como efeito almofada ou outros ate associados entre si. Em uma avaliação preliminar que fiz com uma webcam, com um objeto a mais de 1m de distância, encontrei diferenças de até 10 % entre as medidas realizadas no centro e nas borda.
Para resolver este problema é necessário fazer a correção da distorção da lente. Para tanto fotografasse uma imagem com um padrão de linhas, retirando-se daí uma tabela ou um polinômio de compensação.

Wednesday, September 14, 2005

Existem sistemas comerciais que fazem a análise do trajeto seja online ou pós-processamento.
Estou me baseando num projeto já existente e fazendo algumas mudanças advindas de upgrade tecnológico e outras para aprimorar a qualidade dos resultados
Pretende-se adotar uma webcam comercial que enviará dados para um pc rodando win32 e com software construído através de ferramentas open source.
Estou inclinado a adquirir uma Creative Live Ultra, que possui uma qualidade de imagem bem razoável graças a excelente combinação de um CCD e lentes de boa qualidade. Adicionalmente possui protocolo de comunicação USB 2.0 o que permite o aumento da velocidade de transmissão de imagens.
As linguagens de programação utilizadas serão Ansi C para as rotinas de tratamento de imagem, que exigem uma maior velocidade de processamento e Python para o corpo do programa e o GUI.
Ansi C foi uma escolha natural até porque já conheço bem e Python pois trata-se de uma linguagem com grande potencial por ser OO, de fácil compreensão, muitas bibliotecas (ou seriam módulos) e porque já queiria programar a algum tempo e faltou oportunidade. Caso o desempenho seja insatisfatório, vou para C++.

Monday, September 12, 2005



A idéia deste blog é fazer o acompanhamento de um projeto que estou desenvolvendo chamado de Open Water Maze Tracking (OWMT).

Este projeto pretende automatizar alguns procedimentos utilizados por pesquisadores que se utilizam da metologia desenvolvida por Morris na universidade de Edimburgo, baseada na observação do comportamento de roedores em um tanque.
O tanque tem cerca de 2 metros de diâmetro, cheio de água e que tem em um dos quadrantes uma plataforma transparente, submersa.
A metodologia consiste em colocar o roedor na água e acompanhar certos parâmetros até que ele encontre e suba na plataforma. O experimento se repete várias vezes e mede-se o aprimoramento do roedor para encontrar a plataforma.
O objetivo final é avaliar a memória e o aprendizado em roedores.

Os parâmetros medidos tem relação com a mobilidade do roedor e são latência, velocidade média, tempo para alcançar a plataforma, distância percorrida, etc.
A latência é a somatória dos tempos nos quais o animal não se move, os demais são auto-explicativos.