•
Introdução o Baixa Visão o Amplificação Digital•
Motivação•
xLupa embarcado•
Desafios de Implementação•
Otimização do tempo de processamento do frame via mudança de fluxo de Execução•
Otimização do tempo de processamento do frame através da reescrita do código•
Execução do xLupa na Norco BIS-6630•
Conclusões e trabalhos futuros•
As tecnologias assistivas tem melhorado a vida de pessoas com alguma deficiência física e/ou mental [Sartoretto eBersch 2012];
•
Nem todas as pessoas com necessidades especiais possuemacesso as tecnologias assistivas:
o Falta de Informação dos profissionais da área; o Custo elevado dessas tecnologias.
•
Segundo OMS (Organização Mundial da Saúde) baixa visão ou visão subnormal é o comprometimento do funcionamento de ambos os olhos, porém possuem alguma visão;•
Uma pessoa com visão preservada enxerga um certo objetoaté 20m já uma pessoa com baixa visão consegue enxergar o mesmo até 6m[Conde 2005] .
•
Segundo IBGE 23,9 % da população brasileira declara possuir alguma deficiência[Censo 2010];•
Deste grupo 18,8% declaram ter algum problema visual;•
Para indivíduos com baixa visão o uso de ampliadores digitais se faz necessário.•
O projeto xLupa embarcado é o desenvolvimento de um ampliador de documentos impressos portátil para pessoas com baixa visão e idosas:•
Desenvolvido pelo GIA da UNIOESTE;•
Fornece diferentes perfis de ampliação e mudança de cor de fundo.•
Plataforma BeagleBoardXM e webcam
Especificação
Processadores
ARM Cortex -A8 (Arquitetura RISC) com 1 GHz de frequência de operação TMS320C64x+ (Arquitetura DSP com 800 MHz de frequência de operação Memória 512-MB LPDDR RAM Armazenamento MICRO SD
Conexões Entrada e Saída de áudio estéreo, 4xUSB 2.0 , Conector JTAG, HDMI, S-video, porta RS-232 Serial Rede 10/100 Ethernet
•
Sistema Linux Ubuntu 11.10 para processadores ARM;•
Bibliotecas adicionais:•
libgtk2.0;*um protótipo está instalado na biblioteca da Escola Estadual Julia Wanderley em Cascavel-PR
•
Devido a baixa capacidade de processamento e poucamemória da plataforma Beagleboard, o tempo de execução por frame (entre 270 – 650 ms), ainda não é adequado
•
Para melhorar o desempenho do software na plataforma duas iniciativas estão sendo realizadas:•
Melhoria do tempo de processamento do frame viamudança de fluxo de execução;
•
Melhoria do tempo de processamento do frame através da•
O xLupa captura continuamente imagens da webcam, realiza o processamento e após direciona para a TV ou monitor;•
O objetivo desse método é evitar a atualização desnecessária da tela;o
Diminuir o processamento;o
Diminuir o desconforto visual devido a constante atualização da tela.•
Testes mostraram que a câmera não suporta a leitura em frames separados;•
Método utilizado, V4L2_BUF_TYPE_VIDEO_CAPTURE com acaptura em YUYV;
o Formato Nativo;
o Não necessita de conversão de cores para a obtenção da
Tipo de Captura Tempo de Captura(ms) Tempo de Captura e Processamento(ms)
RGB24 200 270
YUYV 0.10 210
A conversão para RGB24 explicitamente, resultou em um tempo de processamento de 210 ms, mostrando-se mais rápido que a conversão feita internamente pela V4L.
•
O algoritmo desenvolvido realiza a conversão para RGB24 apenas quando é necessário;•
A cada nova captura, é calculado a diferença entre o buffer de imagem anterior e o atual para verificar a quantidade de pixels alterados;•
O limiar escolhido para determinar se haverá oprocessamento da nova imagem foi de 80% de diferença entre as imagens;
•
O tempo para o processamento do frame obtido com esse método quando não é necessário fazer a conversão foi de 252 ms;•
Quando é necessário fazer a conversão, o tempo de processamento sobe para 512 ms;•
Otimizações realizadas•
1° alteração: compilar com a flag -o3, não houve ganho de desempenho;•
2° alteração: usar da ferramenta gProf para determinar os pontos críticos do código;•
Detectado que as funções de mudança de cor de frente e fundo ocupam grande parte do tempo de processamento;•
Reescrita do código para facilitar a aplicação da técnica loop unrolling pelo compilador;•
Algoritmo 1 original, ealgoritmo 2 após a otimização:
•
3° alteração: Instalação de outro driver de video xserver-xorg-video-omap3;•
4° alteração : Aumento da memória de video padrão de 16MBConfiguração Tempo com Webcam de baixa resolução (640x480) Tempo com LifeCam HD-500 driver xorg padrão
e resolução de (640x480)
Tempo com LifeCam HD-500 driver xorg padrão
e resolução de (1280x720) Tempo com LifeCam HD-500 com o xorg-video-omap3 (1280x720)
Normal sem zoom 230 ms 350 ms 250 ms 280 ms
Normal com zoom 300 ms 380 ms 270 ms 310 ms Contraste cinza com zoom 460 ms 420 ms 370 ms 350 ms Contraste verde 400 ms 510 ms 530 ms 360 ms Contraste verde com zoom 600 ms 540 ms 550 ms 380 ms Contraste vermelho 410 ms 500 ms 520 ms 360 ms
•
Participação na I IntelCup - Competição Intel de Sistemas Embarcados, que aconteceu no III SBESC;Especificação Processador Intel Atom
N2800/D2700 Processor
Memória DDR3 1066MHz 2GB
Armazenamento mSATA 16 GB
I/O Entrada e Saída de Audio, USBx6
Network 2x Gigabit
•
Duas estratégias de troca de perfil, uma usando o mouse e outra usando reconhecimento de gestos (trabalho realizado em conjunto com Gustavo Gargioni);•
Executa no sistema linux Ubuntu 12.04;•
Utiliza a biblioteca OpenCV para reconhecimento de gestos(OpenCV 2013). Tempo de processamento na plataforma Norco BIS-6630
Configuração Tempo de processamento por frame sem
reconhecimento de movimento( ms)
Tempo de processamento por frame com
reconhecimento de movimento (ms)
Normal sem zoom 118 143
Normal com zoom 111 145
Contraste cinza com
zoom 118 145
Contraste verde 158 186
Contraste verde com
zoom 157 177
•
Configurar o Kernel do Linux na plataforma
Beagleboard para diminuir o tempo de
inicialização;
•
Na plataforma Norco BIS-6630
o
Incluir novos padrões de movimento na troca por
reconhecimento de gestos;
•
O objetivo principal do projeto é a execução do
xLupa em tempo real na plataforma Beagleboard e
em alta definição (tempo de execução de por
frame de pelo menos 100ms);
•
Mesmo com a melhora de 60% em alguns casos, o
objetivo não foi totalmente atingido;
•
Possibilidade de utilização do processador DSP na
Beagleboard, e das instruções NEON do
Obrigado!
{deivide.possamai, Fernando.santos8,
Conde, J. M. (2005) “Definindo a Cegueira e a Visão Subnormal”. Disponível em: http://www.ibc.gov.br/?itemid=94. Acesso
em Dez/2012
Sartoretto, M. L. e Bersch, R. (2012) ―Tecnologia Assistiva‖. Disponível em: http://www.assistiva.com.br/tassistiva.html. Acesso em Dez/2012.
GNU (2008) “GNU gprof”. Disponível em:
http://sourceware.org/binutils/docs/gprof/. Acesso em Dez/2012.
Censo (2010) Instituto Brasileiro de Geografia e Estatística. Disponível em:
http://www.ibge.gov.br/home/estatistica/populacao/censo2 010/default_resultados_amostra.shtm. Acesso Jan/2013
Opencvorg (2013). “Open Source Computer Vision”. Available at: http://opencv.org/. Out/2013.