Esta semana tive muito pouco tempo para pegar na tese, devido às entregas de dois projectos das 4 cadeiras que estou a fazer.
Depois da reunião da semana com o Prof. Tiago Guerreiro, vimos que como ainda não havia novidades por parte da disponibilização da API via Novabase, e tendo em conta a qualidade e o tempo de espera entre imagens que eram possíveis obter através do directshow o melhor seria comecar a criar uma aplicação no PC, utilizando uma webcam e depois "porta-la" para o PDA. Isto tempo em conta todos os problemas que possam advir, nomeadamente as incompatibilidades entre algumas das bibliotecas da .NET Compact Framework e da .NET Framework normal. Começar também a ver a algoritmos que possibilitem a detecção de gamas de cor, detecção de objectos e de objectos com uma determinada cor e no final detecção de movimento (nomeadamente as 4 direcções).
Fui também ver a discussão da tese de mestrado do Ricardo Gamboa, que gostei bastante e que se assemelhava um pouco à minha. Permitiu-me ter uma noção mais real do que me espera daqui a uns meses, tendo tirado algumas notas com algumas coisas que achei importantes.
domingo, 25 de novembro de 2007
Semana 19
Consegui finalmente utilizar a câmara do telefone directamente! Depois de mais pesquisa e mais troca de mensagens em foruns descobri uma aplicação feita pelo Marcus Perryman (http://blogs.msdn.com/marcpe/archive/2006/03/03/542941.aspx) que serviu de base para conseguir arranjar uma forma de ir buscar as imagens directamente à camera de forma mais "crua".
Depois de tanto entusiasmo veio de novo a desilusão, já esperada, de que as fotos acabam por ser tiradas apenas de 4 em 4 segundos (3 e pouco, mas algumas ficam a meio se escolher os tais 3 segundos) e a sua qualidade é bastante má.
No entanto isto permitiu-me avançar bastante no que queria, e que já tinha começado a fazer para o próprio PDA. Assim, com isto a funcionar consegui por a funcionar as seguintes funções no PDA automaticamente:
- Detectar se fica escuro de repente e desligar o ecrã se tal acontecer (como se alguém pusesse o telefone no bolso/mala/etc)
- Detectar uma determinada cor predominante na imagem, por exemplo quando alguém associa a cor verde a um amigo e aponta para um papel verde, o telemovel liga automaticamente para esse amigo.
- Detectar que houve movimento acima de um determinado valor.
Isto tudo recorrendo a funções que fiz, tendo como base a AForge.net, através de processamento de imagem nomeadamente, transformações para preto & branco, threshold, diferenca de imagens, estatísticas de cor, conversores de RGB para Luminância.
Foi um bom avanço, permitindo-me explorar directamente outra ferramentas, visto que comecei a fazer processamento de imagem em tempo real e também comecei a mexer com bibliotecas que lidam directamente com o telefone.
Depois de tanto entusiasmo veio de novo a desilusão, já esperada, de que as fotos acabam por ser tiradas apenas de 4 em 4 segundos (3 e pouco, mas algumas ficam a meio se escolher os tais 3 segundos) e a sua qualidade é bastante má.
No entanto isto permitiu-me avançar bastante no que queria, e que já tinha começado a fazer para o próprio PDA. Assim, com isto a funcionar consegui por a funcionar as seguintes funções no PDA automaticamente:
- Detectar se fica escuro de repente e desligar o ecrã se tal acontecer (como se alguém pusesse o telefone no bolso/mala/etc)
- Detectar uma determinada cor predominante na imagem, por exemplo quando alguém associa a cor verde a um amigo e aponta para um papel verde, o telemovel liga automaticamente para esse amigo.
- Detectar que houve movimento acima de um determinado valor.
Isto tudo recorrendo a funções que fiz, tendo como base a AForge.net, através de processamento de imagem nomeadamente, transformações para preto & branco, threshold, diferenca de imagens, estatísticas de cor, conversores de RGB para Luminância.
Foi um bom avanço, permitindo-me explorar directamente outra ferramentas, visto que comecei a fazer processamento de imagem em tempo real e também comecei a mexer com bibliotecas que lidam directamente com o telefone.
segunda-feira, 12 de novembro de 2007
Semana 18
Depois de já ter algumas das funçoes feitas, para o processamento de imagem, descobri o AForge.net.
Esta biblioteca tem uma quantidade enorme de filtros e funções de processamento de imagem. Depois de a testar vi que a velocidade de processamento era muito mais rapida que a das funçoes que tinha feito.
Como tal, comecei a utiliza-la e fiz uma aplicação em windows que recebia um video e ia analisando as frames, através desses filtros, fornecendo informações relativas às caracteristicas da frame actual, nomeadamente luminancia, cor dominante, media de cinzentos, etc.
Depois de alguns melhoramentos no programa, e de melhor perceber a plataforma AForge.net resolvi então passar essa aplicação que tinha feito para o Pocket PC.
No entanto, e devido ao facto da .NET Compact Framework ter algumas funções bastante limitadas relativamente à .NET Framework normal, o programa não funcionou.
Como tal, tive que abandonar a biblioteca AForge.net, e criar manualmente as funções de processamento de imagem. Depois de encontrar o código fonte da mesma, tive a tentar percebe-lo para poder utilizar algum do conhecimento no programa para PocketPC.
Um dos principais problemas foi o facto da .NET Compact Framework nao ter o modo de 8bits na classe Bitmap, isto faz com que grande parte das funções de tratamento de imagem a preto e branco tenha deixado de funcionar.
Tive que arranjar uma soluçao para esse problema, e consegui implementar algumas das funções que utilizava no programa inicial.
No entanto, algumas funçoes, nomeadamente a Luminancia, não mostraram grande performance no telefone, e penso que não poderão ser utilizadas, numa altura em que se analise várias imagens por segundo, quando a interface com a camera seja fornecida pela HTC.
Esta biblioteca tem uma quantidade enorme de filtros e funções de processamento de imagem. Depois de a testar vi que a velocidade de processamento era muito mais rapida que a das funçoes que tinha feito.
Como tal, comecei a utiliza-la e fiz uma aplicação em windows que recebia um video e ia analisando as frames, através desses filtros, fornecendo informações relativas às caracteristicas da frame actual, nomeadamente luminancia, cor dominante, media de cinzentos, etc.
Depois de alguns melhoramentos no programa, e de melhor perceber a plataforma AForge.net resolvi então passar essa aplicação que tinha feito para o Pocket PC.
No entanto, e devido ao facto da .NET Compact Framework ter algumas funções bastante limitadas relativamente à .NET Framework normal, o programa não funcionou.
Como tal, tive que abandonar a biblioteca AForge.net, e criar manualmente as funções de processamento de imagem. Depois de encontrar o código fonte da mesma, tive a tentar percebe-lo para poder utilizar algum do conhecimento no programa para PocketPC.
Um dos principais problemas foi o facto da .NET Compact Framework nao ter o modo de 8bits na classe Bitmap, isto faz com que grande parte das funções de tratamento de imagem a preto e branco tenha deixado de funcionar.
Tive que arranjar uma soluçao para esse problema, e consegui implementar algumas das funções que utilizava no programa inicial.
No entanto, algumas funçoes, nomeadamente a Luminancia, não mostraram grande performance no telefone, e penso que não poderão ser utilizadas, numa altura em que se analise várias imagens por segundo, quando a interface com a camera seja fornecida pela HTC.
Semana 17
Esta semana andei de volta da ligação entre a camera e o futuro programa em C# de tratamento da imagens obtidas por ela.
Visto que não ha nenhuma API fornecida pela HTC, andei a tentar encontrar em vários foruns da especialidade ser havia alguma alternativa.
Passados dois dias, as respostas eram sempre as mesmas, que a unica hipotese era criar uma API para em C++, utilizando o directshow.
Como tal, decidi esperar pela resposta da HTC, apesar de ter arranjado alguns exemplos que me podem ajudar.
Decidi comecar a investigar algoritmos de processamento de imagem para utilizar no processamento das imagens vindas da camera mais tarde.
Comecei então a fazer uma classe com algumas funções para esse propósito.
Visto que não ha nenhuma API fornecida pela HTC, andei a tentar encontrar em vários foruns da especialidade ser havia alguma alternativa.
Passados dois dias, as respostas eram sempre as mesmas, que a unica hipotese era criar uma API para em C++, utilizando o directshow.
Como tal, decidi esperar pela resposta da HTC, apesar de ter arranjado alguns exemplos que me podem ajudar.
Decidi comecar a investigar algoritmos de processamento de imagem para utilizar no processamento das imagens vindas da camera mais tarde.
Comecei então a fazer uma classe com algumas funções para esse propósito.
Semana 16
Esta semana tivemos o Workshop Móvel no Tagus Park.
Tivemos a rever as plataformas e a testar alguns programas, nomeadamente o LorretoTTS.
Discuti com o Prof. Tiago Guerreiro algumas ideias interessantes, como a utilização da camera para interacção no carro, ou noutros cenários em que estejamos mais ocupados.
Falamos também do facto deste trabalho ter que ter um objectivo concreto e uma linha condutora ao longo da evolução do trabalho. No entanto, e dado o facto do trabalho ainda não estar num estado muito evoluido, não ficou decidido nada de concreto relativamente a qual o caminho a seguir concretamente.
A hipotese de utilizar este tipo de interacção com pessoas com algumas dificuldades motoras pareceu-me bastante interessante, mas estas opções irão ser aprofundadas ao longo do tempo.
Durante o resto da semana não pude trabalhar mais na Dissertação, porque tive a 1ª entrega do projecto de GPI e a entrega da pesquisa temática de AOSI.
Tivemos a rever as plataformas e a testar alguns programas, nomeadamente o LorretoTTS.
Discuti com o Prof. Tiago Guerreiro algumas ideias interessantes, como a utilização da camera para interacção no carro, ou noutros cenários em que estejamos mais ocupados.
Falamos também do facto deste trabalho ter que ter um objectivo concreto e uma linha condutora ao longo da evolução do trabalho. No entanto, e dado o facto do trabalho ainda não estar num estado muito evoluido, não ficou decidido nada de concreto relativamente a qual o caminho a seguir concretamente.
A hipotese de utilizar este tipo de interacção com pessoas com algumas dificuldades motoras pareceu-me bastante interessante, mas estas opções irão ser aprofundadas ao longo do tempo.
Durante o resto da semana não pude trabalhar mais na Dissertação, porque tive a 1ª entrega do projecto de GPI e a entrega da pesquisa temática de AOSI.
Subscrever:
Mensagens (Atom)