terça-feira, 19 de fevereiro de 2008

Semana 33

Esta semana, e depois de ter posto o filtro HSL a funcionar correctamente, tive a testa-lo. A utilização de cores forte (azul florescente, rosa choque, etc) funciona bastante bem.

Assim passei para a detecção de objectos mas agora com o filtro HSL. Depois de definida a cor do objecto a detectar, a performance é bastante melhor que a anterior detecção de objectos, notando-se que acaba por detectar apenas os objectos daquela cor e não objectos de cores pouco semelhantes como acontecia com a outra solução.

No entanto há sempre o factor iluminação, visto que se a luz bate de maneira diferente no objecto este por vezes deixa de ser reconhecido. A webcam em questão também é bastante antiga, e com uma qualidade relativamente má, no entanto as cameras dos telemóveis não são comparáveis a máquinas fotográficas também.

Apesar disso fiquei relativamente contente com o que este filtro acabou por fazer, sendo que o mesmo está por enquanto apenas a utilizar o Hue para filtragem, não utilizando por enquanto ainda a Saturation nem a Luminance.

Estive a limpar algumas funções e com base no HSL criei um filtro para HSV também, que irá variar no seu comportamente relativamente ao primeiro, apenas quando se utilizar também como parametros a Saturation e o Value.

Depois de ler alguma informação decidi ir investigar acerca do reconhecimento da cor da pele, para possiveis movimentos com as maos ou cabeça à frente da camara do telemovel.

Descobri o paper do Peer (Human skin colour clustering for face detection), tendo criado um filtro com o algoritmo que ele apresentou. Os resultados em fotos foram bastante melhores do que estava à espera, tendo uma performance bastante boa.

Na utilização com webcam acabei por não ter tão bons resultados, mas também apenas testei num quarto à noite, com pouca luz, e tendo em conta que o algoritmo foi feito para imagens na rua estava à espera que tal acontecesse.

Isso fez-me pensar que talvez hajam soluções de uniformização de imagem/luminosidade, para que os filtros não sejam tão afectados pelas diferenças de luz. Também que talvez a utilização de outros tipos de espaços de cor possam facilitar na detecção de objectos por exemplo.

Tenho ainda esta semana que fazer a apresentação e preparar a demo para a reunião na próxima semana, e de fazer uma página para o projecto.

Semana 32

Ainda relativamente ao QRCode, percebi que o facto das cameras não terem autofocus diminui muito a performance de reconhecimento.

Outra questão é o facto de que este tipo de tecnologia não me pareceu (ao contrario do que estava à espera) capaz de funcionar em tempo real.

Depois de falar com uma pessoa relativamente a isso decidi experimentar a utilização de codigos de barras "normais" (code39), tendo conseguido arranjar uma biblioteca para tal através dessa mesma pessoa.

No entanto também aqui os resultados não foram grande coisa, porque era necessário ou a imagem ser muito grande, ou a camera focar. Porque para os ditos codigos de barras normais que vêm nas embalagens não era possivel a deteccao de qualquer um deles, visto que ficavam muito pequenos e desfocados.

Entretanto tive a reunião quinzenal com o Prof. Tiago Guerreiro e com o Hugo e o David, onde se decidiu que tinhamos agora que nos focar mais no que o projecto realmente ia ser, e que na proxima reunião iriamos apresentar uma demo e uma apresentacao do projecto em si.

Ficou também decidido que se ia tentar marcar uma analise de tarefas para eu poder perceber melhor o ambiente em que este tipo de solução poderia ser utilizado.

Após isto virei-me de novo para a biblioteca de imagem, nomeadamente o filtro HSL que não estava ainda a funcionar correctamente.

No final da semana acabei por deixar o HSL e experimentar com HSV, visto que tinha mais ferramentas de comparação para este espaço de cor, tendo conseguido arranjar uma solução (que acabava por ser também a solução para o problema do filtro HSL).

Entretanto chegou finalmente o portatil! :D

Já posso aumentar o ritmo outra vez.

Semana 31

Esta semana acabei por desistir da OpenCV, visto que não a estava a conseguir por a funcionar com o telemovel. Depois de muito pesquisar, penso que uma das razoes possa ser o facto da mesma estar desenhada para uma arquitectura x86 e os telemóvel em questão ter uma arquitectura ARM.

Depois de ler um paper enviado pelo Prof. Tiago Guerreiro, acabei por comecar à procura de uma solução para utilização de códigos visuais.

Estes códigos seriam uteis para substituir por exemplo as pranchas utilizadas por alguns individuos com dificuldades cognitivas, podendo assim estar presentes nas mesmas ou mesmo estarem ao lado de uma fotografia com uma dada acção, bastando para tal que a pessoa em questão apontasse o telemovel para esse código na foto.

Após não ter tido resposta ao mail que tinha enviado à kaywa, e de ter descoberto que a OpenNETCF tinha retirado há umas semanas a solução que disponibilizavam de uma biblioteca QRCode para Windows Mobile, comecei à procura de outras soluções.

Acabei por descobrir a source na qual a OpenNETCF se baseou, uma biblioteca em java feita por uns japoneses, e que me permitiu chegar à ThoughWorks. A ThoughtWorks, tinha portado grande parte do código para C#.

Assim consegui inclui-la no meu projecto, e testar mesmo com o telemovel através da tiragem de fotografias. Os resultados dependiam um pouco do tamanho do texto que o QRCode continha e da luz existente.

Terminei em grande parte o QRCode, que me pareceu funcionar relativamente bem para ambientes em que se pudesse estar parado e apontar a camera do telemovel ao código.

Semana 30

Esta semana houve a reunião magna do IMMI, onde apresentámos todos os nossos projectos. Foi interessante ver os diferentes estilos de projectos e as oportunidades que cada um deles tinha para evoluir.

Acabei por falar com a Sara que me aconselhou uns links para o uso da biblioteca da Intel OpenCV no reconhecimento de objectos e imagens.

Estive a fazer a refazer uma parte do Relatório Intercalar, e tambem a meter já as referências bibliográficas e formatando-o de acordo com o que irá ser pedido na entrega da Tese.

Depois de entregue o relatório, estive durante o resto da semana a tentar explorar a OpenCV para tentar perceber se conseguia utilizar alguma função que me pudesse ajudar no reconhecimento de objectos, mas não tive muito sucesso.

Semana 29

Esta semana estive a alterar a apresentação para o IMMI e a tentar pensar um pouco em que é que a tese se deveria focar mesmo.

Estive o resto da semana quase sempre de volta do estudo para exames das cadeiras do IST e acabei por não pegar muito na tese.