Executando verificação de segurança...
18

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.

texto

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.

texto

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.

texto

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.

texto

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

texto

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

Carregando publicação patrocinada...
2

Que projeto bacana, obrigado por compartilhar! Soluções de ia para o agro geralmente são mais fechadas, é um nicho que precisa ter mais opensource.

1

Que massa! Estou fazendo um projeto parecido porem com detecção de bananas prontas para colher, basicamente elas precisam ser colhidas antes do amadurecimento e o processo é feito por pessoas com bastante experiência colhendo banana, que marcam os cachos a serem colhidos antes do pessoal passar cortando, a ideia é criar em um primeiro momento um pequeno app que possa falar quando a banana pode ser colhida ou qual sua previsão, para no futuro expandir isso para ser coletado via drone.

1

Muito interessante sua ideia, o seu modelo seria relativamente simples (verde ou maduro). Agora, da construção do modelo para a fase de deploy é outro mundo, da maneira que você relata me parece que você vai ter que construir um backend relativamente complexo.

Mas antes de partir para a solução pronta, constrói um MVP com o modelo funcionando e divulga aqui pra gente ver!

1
1

Sem dúvidas dados para dataset são uma mina de ouro, quem simplificar esse processo, principalmente em Visão Computacional onde carece de soluções do gênero vai ganhar muito dinheiro.

Por conta disso os modelos multimodais (como CLIP, OpenCLIP) vem ganhando destaque. Eles resolvem desafios de visão computacional sem treinamento prévio por meio de uma abordagem chamada zero-shot. Eles já são treinados com MILHÕES de dados.

São baseados em Vision Transformers, através da inferência você insere um prompt textual e um visual e recebe o output da probabilidade do seu prompt textual ser semelhante ao prompt visual.

Inclusive estou desenvolvendo um projeto de pesquisa envolvendo agricultura sobre isso.

texto

Inclusive, já existem diversas abordagens como (Autodistill, Label Studio, CVAT) utilizando modelos multimodais para fazer a parte difícil e repetitiva de anotação dos datasets. Apesar disso, acredito que não sejam muito utilizados no mercado brasileiro de IA, não são tão conhecidos aqui.

1

Nem me fale, trabalhar com IA no Brasil é um verdadeiro parto. o conteúdo mais técnico sobre IA não é solicitado, voce pode escrever o que for sobre ia, se tiver 2 ou 3 interessados por rede social voce já é um vencedor no Brasil, a maioria esta concentrado no GITHUB que eu nem uso e acho que só faz sentido para projetos de código aberto, ainda assim, quando se trata de brasileiros voce vê mil forks em um projeto sobre uso de ia, e pouquíssimos em projetos construídos para IA, eu não uso porque cá entre nós eu não quero meus projetos treinando IA da Microsoft. Acho impressionante e preocupante o avanço que vejo no mundo da IA no exterior comparado com aqui, o pessoal está engatinhando nisso, aprendendo: o que é um tensor, como funciona a IA, vejo cara apanhando pra integrar cuda e apenas entender o inicio de um treinamento de modelo, são poucos que podem abordar os assuntos com propriedade e já estão trabalhando dentro da blackbox do sistema financeiro e governamental, escondidos praticamente. Aqui parece que somente governo e grandes instituições estão indo atrás disso. Poucos desenvolvedores realmente estão desenvolvendo "para a área de IA", mas tem muitos desenvolvendo "com ia". Absurdo. Quer um exemplo kkk, olha o que eu comecei a postar e teve zero interesse, e acredite não foi só no tabnews eu usei isso como laboratório mesmo, publiquei em algumas redes, e interesse zero.
https://www.tabnews.com.br/macnator/serie-infra-multiagente-para-programacao-cliente-servidor-multi-api-de-ia-modelos-offline-historico-seguro-de-arquivos-e-recuperacao-total-de-servidores

Nesse caso ai é um sistema de memória estendida e ao mesmo tempo execução segura de agentes.
É ou não é para se preocupar essa falta de interesse? Não é a falta de interesse que me preocupa na verdade é o fato das pessoas não entenderem a relevância e o avanço que é assuntos como o seu e o meu entendeu? Não é que não exista interesse, é que os desenvolvedores não entendem a relevância, isso é o preocupante. Agora sobre o seu assunto:

Acho que visão computacional é e será o cerne da construção de robôs em geral pelos próximos anos, e estamos falando inclusive do setor de saúde, já é importante claro, mas será ainda mais, diaguinosticos por imagem geral, desde um ressonância ao seu exemplo na agricultura, e o que vai mandar no desenvolvimento disso são os dados, é só o que impede de ja termos quase 100% dos empregos substituídos, "apenas" os dados, e como tudo que a humanidade não consegue suprir por muito tempo acabam criando uma solução artificial. Eu mesmo estou criando um dataset de plantas baixas de construção, consegui fazer parceria com uma empresa de estudantes de engenharia e arquitetura para conseguir os dados, e agora estou aqui catalogando tudo em json kkkk, eu consigo vislumbrar uma centena de usos, desde a extração de lista de materiais para obras, pesquisa de compra, verificação de metragens. cálculos de orçamentos de execução é realmente assombroso o que pode ser feito, como eu gosto muito de IOT, estou pensando em uni o LIDAR a laser para criar um protótipo de escaneamento de interiores para retirada de medidas de forma rápida e confiável para softwares cad, assim arquitetos por exemplo podem desenvolver o projeto muito mais alinhado ao ambiente real, isso é um problema para eles hoje, eu tenho usado o Vision da Microsoft para isso, se ainda não conhece acredito que deva conhecer, acho que ele pode acelerar muito a sua ideia, a não ser que prefira fazer tudo na unha, o que seria bem mais interessante, eu mesmo estou usando por pura comodidade mesmo porque ja estou tocando outros projetos e o tempo não dá.

1

Cara, sua visão é extremamente lúcida, é exatamente isso tem mais pessoas desenvolvendo projetos com IA do que desenvolvedores de IA em si. O mercado brasileiro e o setor acadêmico está muito atrasado.

Agora sobre o seu post, acredito que as pessoas não deem a devida importância por realmente não entenderem do que se trata. Inclusive, muito interessante ele, não tinha visto antes.

Essa sua ideia é de unir LIDAR com o intuito de reconstruir plantas baixas é um mercado validado fora do Brasil, você poderia trazer sua solução para cá, é um mercado gigantesco. Já tinha pensado em algo do gênero visando as recentes evoluções em gaussian splating, mas infelizmente a tecnologia para trabalhar com LIDAR não sai barato, mesmo IoT, a não ser que seja algo super limitado para projetos pequenos com microcontroladores, como um VL53L8CX da vida.

1

To pensando em investir um pouco no LIDAR de mais tecnologia, e não vender o produto em si, mas alugar para obras e projetos. Assim fica recorrente.