Início / Blog / Visão TinyML no ESP32-S3
IA embarcada e visão computacional

TinyML com câmera no ESP32-S3: da captura à classificação local

Uma demo que classifica uma imagem preparada prova que o modelo executa; não prova que há um produto de visão útil. O dispositivo real precisa capturar quadros com consistência, encaixar pré-processamento e inferência na memória, cumprir o prazo de resposta e agir com segurança quando houver incerteza. Câmera, pipeline e classificador devem ser tratados como um único sistema medido.

Desenhe o pipeline antes de escolher o modelo

Cada transformação consome tempo, memória ou informação
1 / CapturaExposição, formato, resolução e propriedade do buffer.
2 / PreparaçãoRecorte, resize, conversão de cor e normalização.
3 / InferênciaModelo quantizado, arena de tensores e runtime medido.
4 / DecisãoLimiar de confiança, classe desconhecida e revisão.
5 / SaídaAção local ou telemetria mínima com versão do modelo.

Comece pela decisão que o produto deve tomar e colete imagens representativas de luz, distância, ângulo, movimento, fundo e cenas vazias. Separe treino, calibração e avaliação por sessão ou local de captura para evitar que quadros quase idênticos contaminem o teste. Inclua “nenhuma classe/incerto”: forçar cada imagem numa categoria conhecida produz confiança enganosa.

Dimensione câmera e memória em conjunto

Buffers de quadro, área temporária de conversão, pesos, ativações e runtime disputam RAM. Alta resolução pode ajudar o sensor e ainda ser desperdício para um classificador pequeno. Use formato suportado pelo sensor e driver, reduza ou recorte cedo e evite guardar quadros completos em duplicidade sem necessidade medida. PSRAM amplia espaço, mas não elimina limites de banda, fragmentação e latência.

Registre heap interno livre, maior bloco, uso de PSRAM e tempo de quadro a resultado sob a configuração final de rádio e tarefas. Teste capturas repetidas, não apenas a primeira inferência. Um modelo que roda após o boot pode falhar horas depois por vazamento, fragmentação ou concorrência.

Quantização é um experimento de qualidade

ESP-DL oferece formatos quantizados e ferramentas para converter e avaliar modelos no ESP32-S3. Quantização pós-treino pode reduzir custo de pesos e ativações, mas o resultado depende de dados de calibração representativos e do esquema suportado. Preserve uma linha de base float e compare candidatos quantizados com precisão/recall por classe e matriz de confusão em imagens reservadas. Pré-processamento precisa coincidir: cores, resize, recorte e normalização devem ser iguais aos do treino.

Não escolha só pelo número de parâmetros. Meça separadamente pré-processamento, inferência e pós-processamento na resolução final. Se a meta de latência falhar, teste entrada menor, backbone simples ou amostragem menos frequente antes de remover limites de confiança.

FalhaO que medirComportamento mais seguro
Imagem borrada ou escuraQualidade e falso positivo.Retornar incerto e capturar novamente.
Modelo não cabePico de heap, PSRAM e maior bloco.Reduzir entrada/arena e falhar inicialização com clareza.
Quantização piora uma classeMétrica por classe em conjunto reservado.Ajustar calibração ou modelo, sem ocultar regressão.
Inferência bloqueia capturaQuadros perdidos, latência e watchdog.Filas limitadas e propriedade explícita dos buffers.
Cenário desconhecidoCalibração e exemplos fora da distribuição.Abster-se e pedir confirmação humana ou outro sensor.

Mantenha ações locais explicáveis e reversíveis

Se a classificação acionar relé, trava ou máquina, trate a saída como sinal de sensor, não como autoridade. Adicione camada determinística com confiança e validade, padrão seguro, limite de frequência e override manual. Registre versão e motivo sem enviar imagens identificáveis por padrão. Se a depuração exigir imagem, obtenha consentimento, restrinja retenção e proteja a transferência.

Versione modelo e parâmetros de pré-processamento como um pacote. Valide no hardware, preserve rollback e compare erros antes de expandir a atualização. Um painel pode mostrar duração, taxa de incerteza, reinícios e versões sem transmitir todos os quadros.

Em resumo

Visão útil no ESP32-S3 começa com dados representativos e decisão limitada, depois co-projeta captura, memória, pré-processamento e inferência quantizada. Meça o caminho completo na placa real, trate incerteza como saída de primeira classe e não permita que um modelo probabilístico controle diretamente uma ação crítica de segurança.

Referências