Construção de datasets para Visão Computacional
Construir modelos de Visão Computacional do zero, seja utilizando redes neurais convolucionais (CNNs) ou outros métodos nem sempre é fácil, principalmente durante o processo de treinamento.

Apesar de algumas arquiteturas como YOLO simplificarem o caminho, trazendo simplicidade e comodidade no treinamento, ainda existe um problema universal no mundo de Machine Learning, onde visão computacional compartilha do mesmo problema: falta de data.
Construir datasets de visão computacional é um processo infernal. Independente da arquitetura escolhida você vai gastar muito tempo num processo repetitivo e nem sempre o resultado vai sair como esperado, a não ser que você utilize datasets prontos (que outras pessoas já sofreram por você), mas nem sempre irá servir para o seu problema especifico.
Um desses casos super específicos é na utilização de Visão Computacional na agricultura, utilizando algoritmos para interpretar imagens e automatizar processos, como por exemplo a detecção de pragas agrícolas. O reconhecimento de pragas agrícolas é uma tarefa essencial para o manejo de lavouras e para a mitigação de perdas na produção.
Mesmo que você monte dataset do zero tem grandes chances do seu modelo não ter a precisão esperada, principalmente quando se trata de detecção de pequenos objetos ou de categorias raras, onde fazer anotações sobre certos padrões é uma tarefa quase impossível, como é o caso de algumas pragas agrícolas.
E como resolvemos isso? Criação de data artificial por data augmentation. Daria para escrever um post aqui somente disso, mas simplificando é um método para gerar artificialmente novos dados de treinamento a partir de dados existentes, o que ajuda a melhorar a precisão e a robustez dos modelos de machine learning, além de prevenir o overfitting.

Pensando nisso iniciei um projeto de detecção de pragas agrícolas com YOLO (DarkNet), especificamente utilizando um inseto chamado Bemisia Tabaci, popularmente conhecido como mosca-branca. A mosca-branca é uma das pragas mais temidas por agricultores. É um inseto sugador que rouba os nutrientes da planta em que se hospeda. Listada em oitavo dentre as 83 pragas de maior risco fitossanitário para o Brasil pelo Ministério da Agricultura e Pecuária (Mapa), impede o desenvolvimento e, em casos mais graves, destrói plantações inteiras.

A detecção de Bemisia tabaci apresenta complexidades adicionais devido aos diferentes estágios de desenvolvimento da praga, além de contar se faz necessário diferenciar os estágios de vida relacionados à mosca-branca. Abordagens específicas para classificar o estágio de evolução de infestação da B. Tabaci se tornam cruciais para a executar estratégias de Manejo Integrado de Pragas.
Me baseando nisso, coletei algumas imagens de diferentes estágios de desenvolvimento da praga (umas 50 imagens), apliquei o processo de data augmentation para expandir o dataset e fiz o treinamento pelo YOLO/DarkNet.
Apesar de precisar de pequenos aperfeiçoamentos, como visível geração de falsos positivos em algumas inferências, o resultado foi bom.

Fiz uma publicação no LinkedIn exibindo o resultado, você pode clicar aqui.

Você também pode verificar o código-fonte no github.
