AgroLens
Em desenvolvimentoDo campo ao dataset, mesmo sem conexão.
- Ano
- 2026
- Papel
- Trabalho de conclusão de curso
- Contexto
- UNICENTRO · Computação e Agronomia
Tecnologias: Flutter, Angular, NestJS, FastAPI, YOLO, PostgreSQL, Docker
Sobre
O AgroLens é uma plataforma offline-first para captura, organização, anotação e exportação de imagens agrícolas destinadas a datasets de visão computacional. O projeto foi desenvolvido como Trabalho de Conclusão de Curso em Ciência da Computação na UNICENTRO, com colaboração entre os departamentos de Computação e Agronomia.
O código-fonte e os dados permanecem privados para proteger configurações de ambiente e material de pesquisa; o estudo de caso público documenta a arquitetura e as decisões de engenharia.
O problema
Imagens dispersas
Fotos de campo ficam espalhadas em dispositivos, pastas e serviços genéricos.
Conectividade instável
A internet pode ser instável ou inexistente durante a coleta.
Contexto agronômico
Propriedade, talhão, cultura, estádio fenológico e localização precisam acompanhar cada lote.
Anotação desconectada
Anotação e exportação normalmente exigem ferramentas separadas do processo de coleta.
Fluxo de dados
- Captura em campo
- Fila local
- Sincronização
- Revisão
- Anotação
- Exportação
Aplicativo de campo
- Captura ou seleção de imagens em Flutter.
- Registro de propriedade, talhão, cultura e estádio fenológico.
- Coordenadas obtidas por GPS ou selecionadas no mapa.
- Persistência local em SQLite e fila de sincronização offline.
- Estados explícitos para itens pendentes, em envio, concluídos ou com erro.
Painel web
- Dashboard e filtros sobre uploads e metadados agrícolas.
- Gestão de usuários, catálogos e permissões.
- Editor de bounding boxes com anotações no formato YOLO.
- Exportação de metadados, imagens e datasets de treino e validação.
Arquitetura
Fluxo do sistema
App de campo
Flutter · offline-first
Painel web
Angular
API
NestJS · Drizzle ORM
PostgreSQL
metadados e auditoria
Armazenamento S3
imagens
Worker
uploads e jobs
Serviço de IA
FastAPI · YOLO
| Camada | Tecnologias | Responsabilidade |
|---|---|---|
| Mobile | Flutter · Dart · SQLite | Coleta, metadados, operação offline e sincronização |
| Web | Angular · TypeScript | Gestão, anotação, controle de acesso e exportação |
| API | NestJS · Drizzle ORM · PostgreSQL | Autenticação, regras de negócio, auditoria e jobs |
| Arquivos | Armazenamento S3 | Uploads assinados e armazenamento de imagens |
| IA | Python · FastAPI · YOLO | Serviço isolado para inferência e anotação assistida |
| Operação | Docker Compose · nginx · GitHub Actions | Ambientes reproduzíveis, proxy e validação automatizada |
Decisões de engenharia
Offline primeiro
A coleta não depende de conexão ativa: imagens e metadados são registrados localmente e sincronizados quando a rede volta.
Metadados como parte do dado
Cada lote carrega o contexto agronômico desde a captura, reduzindo imagens sem identificação.
Clientes separados do processamento
Operações demoradas, como finalização de uploads e inferência, ficam em workers fora da API HTTP.
Segurança e operação
Rotação de refresh tokens, uploads pré-assinados, rate limiting, trilha de auditoria, health checks e backups documentados.
Resultado e participação
O protótipo integrou dois clientes funcionais e demonstrou o fluxo completo de captura, sincronização, gerenciamento, anotação e exportação. A refatoração para backend próprio e a integração de inferência seguem em desenvolvimento.
Trabalho orientado por Jotair Elio Kwiatkowski Junior, Carlos Eduardo Andrade Iatskiu e Leandro Rampim, na UNICENTRO.
- Levantamento e modelagem dos requisitos do domínio.
- Desenvolvimento do aplicativo Flutter e do painel Angular.
- Implementação do fluxo offline e da sincronização de imagens e metadados.
- Modelagem de permissões, anotações e exportação YOLO.
- Evolução para API própria, banco relacional, object storage e conteinerização.