4.20. Conclusão#
Você percorreu as partes da pilha de imageamento da câmera que surgem toda vez que um script captura um quadro:
A óptica diante do sensor – um furo de alfinete (pinhole) como o elemento formador de imagem mais simples, depois as lentes, que captam muito mais luz e ainda assim focalizam, com distância focal, abertura, profundidade de campo e campo de visão como os ajustes que a aplicação escolhe. Lentes reais vêm com distorção, vinhetagem e efeitos de ângulo do raio principal (chief-ray-angle) que o sensor e o ISP compensam posteriormente.
A grade do sensor – um conjunto bidimensional de fotodiodos que transforma fótons em carga, com o tempo de exposição e o ganho analógico trocando brilho por desfoque de movimento e ruído. Os obturadores rolante e global determinam como as linhas do conjunto são lidas, e um pequeno conjunto de calibrações no chip – FPN de coluna, nível de preto, pixel defeituoso, sombreamento da lente – limpa os dados antes que eles deixem o chip. Dois barramentos conectam o chip ao MCU: um barramento de controle I2C lento para registradores e um barramento paralelo ou MIPI rápido para pixels.
Cor e o ISP – um conjunto de filtros de cor Bayer dá a cada pixel uma entre vermelho, verde ou azul; o debayering interpola os dois canais ausentes. O processador de sinal de imagem (ISP) costura o restante do pipeline – extração de estatísticas, balanço de branco automático, debayering, correção por matriz de cor, gama, escalonamento, recorte e um empacotamento final no formato de pixel solicitado.
Formatos de pixel – Bayer bruto, RGB888, RGB565, YUV422, escala de cinza, BINARY e as saídas comprimidas JPEG / PNG trocam tamanho de memória por fidelidade de cor e compatibilidade com algoritmos posteriores. RGB565 é o padrão para cor finalizada porque se alinha com a largura de palavra do MCU e reduz pela metade o custo de memória em relação ao RGB888.
A API CSI – cinco linhas de configuração mais um laço de snapshot é a forma a partir da qual todo script começa. Os pools de framebuffer (simples, duplo, triplo, FIFO de vídeo ou disparado) decidem como a aplicação e a câmera compartilham os quadros; um canal de preview separado alimenta qualquer programa de depuração conectado sem competir pelos buffers da aplicação; os ajustes do sensor cobrem orientação, exposição, ganho, balanço de branco, limite de taxa de quadros e um padrão de teste de barras de cor.
Múltiplos sensores e pools de memória – placas com dois sensores instanciam um
CSIpor chip e executam cada um em sua própria taxa. Por baixo, o pool de framebuffer, a região de preview, o heap do MicroPython e as alocações menores de memória rápida vivem em regiões distintas da RAM, posicionadas de modo que as partes que precisam de velocidade a obtêm e as partes que só precisam de tamanho obtêm isso.
Isso é suficiente para tirar um quadro do sensor com o formato, o tamanho de quadro e a exposição corretos para a cena; escolher um modo de framebuffer que combine com o tempo de processamento da aplicação; expor um preview ao vivo para o que estiver conectado; e ler a Image de volta para o Python, pronta para ser operada.
4.20.1. Usando esta referência mais tarde#
Trate os capítulos de imageamento como material de referência, não como uma leitura de uma só passagem. Voltar para relembrar os modos de framebuffer, os formatos de pixel ou o significado de um determinado ajuste do sensor é o uso pretendido. A página de referência csi.CSI lista todos os métodos em um só lugar quando a pergunta é apenas “qual é o nome exato dessa chamada mesmo”.
4.20.2. Para onde ir a partir daqui#
Processamento de imagem é o próximo tópico natural. Com o buffer em mãos e a API csi compreendida, o que resta é o que fazer com os pixels: limiares, detecção de bordas, busca de blobs, detecção de linhas e formas, códigos QR, AprilTags, inferência de aprendizado de máquina. O conjunto de ferramentas muda para o módulo image e seu catálogo de métodos sobre o objeto Image. Tudo desta seção é levado adiante; a forma do laço, o modo de framebuffer, o formato de pixel – tudo isso é sobre o que os métodos de processamento de imagem operam.