Dicas e Truques#
Modo de Demonstração#
O modo de demonstração permite-lhe demonstrar a CMUcam4 sem um processador mestre. No modo de demonstração, a CMUcam4 executa o comando «TW» (Track Window) e depois move dois servos de hobby padrão em direção ao objeto que está a ser seguido, ao mesmo tempo que apresenta o objeto seguido numa TV padrão. Assim que a CMUcam4 entra no modo de demonstração, não sairá dele até ser feito o reset. Siga os passos abaixo para entrar no modo de demonstração:
Prima e mantenha premido o botão de reset da CMUcam4
Prima e mantenha premido o botão de utilizador da CMUcam4
Solte o botão de reset (não solte o botão de utilizador)
Aguarde até o LED auxiliar vermelho acender (2 segundos)
Aguarde até o LED auxiliar vermelho começar a piscar a 10 Hz e depois solte o botão de utilizador
A TV deverá ligar-se (deverá ver um ecrã de apresentação na TV) se a CMUcam4 estiver ligada a uma TV
A CMUcam4 vai agora ajustar-se às condições de iluminação durante os próximos 5 segundos
Não coloque o objeto que pretende seguir à frente da CMUcam4 durante os próximos 5 segundos
Aguarde até o LED auxiliar vermelho parar de piscar a 10 Hz
A CMUcam4 terminou agora o ajuste às condições de iluminação
Os pinos dos servos de pan e tilt deverão gerar impulsos de 1500 μs a 50 Hz
Coloque o objeto que pretende seguir à frente da CMUcam4 e prima o botão de utilizador
Se o LED auxiliar vermelho começar a piscar a 10 Hz, examine a ligação do módulo de câmara OV9665
O módulo de câmara OV9665 poderá estar danificado e muito provavelmente precisa de ser substituído
Deverá agora ver o objeto seguido (ou semelhante) apresentado na TV se a CMUcam4 estiver ligada a uma TV
Os servos de pan e tilt, se ligados, também tentarão orientar a câmara em direção ao objeto seguido
Por favor, experimente este procedimento com diferentes objetos em diferentes ambientes para ver o que funciona melhor
A CMUcam4 está agora a correr em modo de demonstração
Prima o botão de reset para sair do modo de demonstração.
Para o funcionamento não invertido do servo de pan, comprimentos de impulso inferiores a 1500 µs devem mover a posição X do módulo da câmara para a direita (do ponto de vista do módulo da câmara) e comprimentos de impulso superiores a 1500 µs devem mover a posição X do módulo da câmara para a esquerda (do ponto de vista do módulo da câmara).
Para o funcionamento não invertido do servo de tilt, comprimentos de impulso inferiores a 1500 µs devem mover a posição Y do módulo da câmara para baixo (do ponto de vista do módulo da câmara) e comprimentos de impulso superiores a 1500 µs devem mover a posição Y do módulo da câmara para cima (do ponto de vista do módulo da câmara).
Modo de Paragem#
O modo de paragem permite-lhe parar a CMUcam4 enquanto esta continua ligada a um Arduino. No modo de paragem, a CMUcam4 consome muito pouca energia e não impede a programação de um Arduino ao bloquear a porta série do Arduino. O modo de paragem só é necessário se a CMUcam4 interferir com o processo de programação do Arduino. Se não interferir, então o modo de paragem é desnecessário - o que costuma ser o caso. Assim que a CMUcam4 entra no modo de paragem, não sairá dele até ser feito o reset. Siga os passos abaixo para entrar no modo de paragem:
Prima e mantenha premido o botão de reset da CMUcam4
Prima e mantenha premido o botão de utilizador da CMUcam4
Solte o botão de reset (não solte o botão de utilizador)
Aguarde até o LED auxiliar vermelho acender (2 segundos)
Solte o botão de utilizador
A CMUcam4 está agora parada indefinidamente
Prima o botão de reset para sair do modo de paragem.
Notas sobre um Melhor Seguimento#
Melhor Seguimento com Auto-gain e Balanço de Brancos#
O auto-gain é um controlo interno que ajusta o nível de brilho da imagem para melhor se adequar ao ambiente. Tenta normalizar as zonas claras e escuras da imagem para que se aproximem do brilho geral de uma imagem ajustada manualmente. Este processo repete-se ao longo de muitos fotogramas, à medida que a câmara ajusta automaticamente os seus níveis de brilho. Se, por exemplo, uma luz for acesa e o ambiente ficar mais claro, a câmara tentará ajustar o brilho para escurecer a imagem geral.
O balanço de brancos, por outro lado, tenta corrigir os ganhos de cor da câmara. A luz ambiente na sua imagem pode não ser branco puro. Neste caso, a câmara verá as cores de forma diferente. A câmara começa com uma estimativa inicial de quanto ganho dar a cada canal de cor. Se estiver ativo, o balanço de brancos ajustará estes ganhos frame a frame, de modo a que a cor média na imagem se aproxime de um cinzento. Empiricamente, este método de «mundo cinzento» tem-se revelado relativamente eficaz. O problema com o balanço de brancos de mundo cinzento é que, se uma cor sólida preencher o campo de visão da câmara, o balanço de brancos definirá lentamente os ganhos de modo a que a cor pareça cinzenta e não a sua cor verdadeira. Depois, quando a cor sólida é removida, a imagem terá ganhos de cor indesejáveis até restabelecer a sua média cinzenta.
Ao seguir cores, como no modo de demonstração, poderá querer permitir que o auto-gain e o balanço de brancos funcionem durante um curto período e depois desligá-los. Enquanto ligada durante um período de cerca de 5 segundos, a câmara pode definir o seu ganho de brilho e os seus ganhos de cor conforme o que considerar adequado. Depois, desligá-los impedirá que a câmara altere desnecessariamente as suas configurações devido a um objeto ser colocado perto da lente, a sombras, etc. Se o auto-gain e o balanço de brancos não fossem desativados e a câmara alterasse as suas configurações para os valores RGB ou YCbCr, então os novos valores medidos poderiam ficar fora dos thresholds de seguimento de cor originalmente selecionados.
O módulo da câmara requer que o auto-gain esteja ativado para utilizar o balanço de brancos.
Espaço de Cor YUV (YCbCr)#
O YCbCr é uma definição de espaço de cor diferente do espaço RGB, mais conhecido. No YCbCr, os dados de iluminação são armazenados num canal separado. Devido a esta propriedade, no modo YCbCr a câmara pode ser mais resistente a alterações de iluminação. Por ser um espaço de cor diferente, as imagens em YCbCr não se parecem com imagens RGB padrão quando mapeadas diretamente por um programa de frame dump. Os canais RGB mapeiam para CrYCb. Assim, no modo YCbCr, o valor devolvido como parâmetro vermelho é na verdade Cr, o parâmetro verde é Y e o parâmetro azul é Cb. Por isso, se quiser seguir um objeto vermelho, precisa de olhar para um frame descarregado para ver para que valores as cores desse objeto mapeiam em YCbCr. Deverá então ser possível encontrar os limites de Cb e Cr, dando ao mesmo tempo um limite de Y muito relaxado, mostrando que a iluminação não é muito importante. Ao utilizar o YCbCr, certifique-se de que tem em conta que, em termos de toda a I/O da CMUcam4, o Vermelho mapeia para Cr, o Verde para Y e o Azul para Cb.
Repare que os canais RGB mapeiam para lhe dar CrYCb, e não YCbCr.
Sobre o Módulo da Câmara#
A partir do arranque, a câmara pode demorar até 5 segundos a ajustar-se automaticamente à luz. Alterações drásticas no ambiente, como luzes a serem acesas e apagadas, podem induzir um tempo de reajuste semelhante. Ao utilizar a câmara no exterior, devido às poderosas emissões de IR do sol, mesmo em dias relativamente nublados, será provavelmente necessário utilizar um filtro de IR ou um filtro de câmara de densidade neutra para diminuir o nível de luz ambiente.
As funções fornecidas pela placa da câmara destinam-se a dar ao utilizador uma caixa de ferramentas de funções de visão a cores. As aplicações reais podem variar bastante e ficam ao critério da imaginação do utilizador. A capacidade de alterar a janela visível, recolher estatísticas de cor e de luz, e seguir cores pode ser combinada pelo processador anfitrião para criar funcionalidade de nível superior.