Projeto · 2013
TCC — Reconhecimento de Plantas por Rede Neural
Meu TCC de Ciência da Computação (2013): um aplicativo móvel de reconhecimento de espécies de plantas. Um app Android fotografa a folha, envia a um servidor Java, e o reconhecimento usa Inteligência Artificial (rede neural) e processamento de imagem (contornos e cores), classificando contra um banco Oracle de espécies. Anos antes do boom de IA.
Enquanto o mundo sonhava com IA, eu já entregava com IA — em 2013, reconhecendo espécies de plantas pela foto, com rede neural e visão computacional feitas à mão em Java.
Em 2013, no meu TCC de Ciência da Computação, construí um aplicativo móvel para reconhecer espécies de plantas pela foto da folha — anos antes de IA virar assunto de todo mundo. A motivação era simples: diante de uma planta desconhecida (num parque, por exemplo), poder identificá-la na hora pelo celular — e, na época, não existiam apps assim.
O usuário final tem dois caminhos para enviar a foto: um app Android (câmera) e uma página web cliente. Os dois mandam a imagem, por socket, ao mesmo servidor Java — o cliente só captura; o peso do processamento fica no servidor.
No servidor, um pipeline de visão computacional prepara a imagem: redimensiona, converte para escala de cinza, binariza por limiar e detecta o contorno da folha varrendo a imagem em quatro sentidos; depois recorta a moldura útil e gera a matriz de características.
O reconhecimento usa Rede Neural Artificial. Escolhi a rede ART (Adaptive Resonance Theory) de propósito: ela é auto-organizável e não supervisionada, e resolve o dilema plasticidade-estabilidade — aprende uma espécie nova sem precisar reiniciar todo o treinamento. Implementei a ART do zero em Java (e também um MLP com backpropagation), sem frameworks de IA.
Do outro lado, um software desktop em Java é a ferramenta do especialista: cadastra e classifica as plantas de referência (foto original + versão processada) num banco Oracle. É contra essa base que o reconhecimento compara — devolvendo ao cliente a espécie reconhecida ou uma lista de candidatas, com nome e uma curiosidade sobre cada uma.
Decisões de engenharia
- 01
ART pela plasticidade-estabilidade
Escolhi a rede ART em vez de um MLP comum porque ela é auto-organizável e aprende padrões novos sem esquecer os antigos nem reiniciar o treinamento — exatamente o que um catálogo de espécies que cresce com o tempo pede.
- 02
Processar no servidor, não no celular
Em 2013 o celular era limitado; o app só captura e envia a foto por socket, e todo o peso — visão computacional e rede neural — roda num servidor Java.
- 03
Contorno em vez da folha inteira
Em vez de alimentar a rede com a imagem cheia, extraio o contorno da folha (varredura em quatro sentidos) e recorto a moldura útil — menos dados, reconhecimento mais rápido e focado na forma.
- 04
Redes neurais escritas à mão
Implementei a ART e um MLP com backpropagation do zero em Java, sem bibliotecas de IA — em 2013 não havia o ecossistema de hoje.
Arquitetura
Clientes
App Android + Web
Usuário final envia a foto da folha (câmera ou navegador) por socket.
Servidor Java
O elo central
Servidor Java que conecta tudo: recebe as imagens dos clientes, roda o reconhecimento e conversa com o Oracle.
Visão computacional
Pré-processamento
Cinza → binariza → contorno → recorte → matriz.
Rede neural (ART)
Reconhecimento
Rede ART auto-organizável, feita à mão em Java.
Banco Oracle
Espécies
Catálogo cadastrado; devolve a planta ou candidatas.
Desktop (especialista)
Cadastro Java
Software desktop onde o especialista cadastra e classifica as plantas de referência.
Responsivo



Stack