Visão computacional é a área da ciência da computação que lida com como máquinas podem adquirir informações de alto nível, de maneira análoga a visão humana. Estas informações normalmente são adquiridas a partir de vídeos ou imagens digitais, capturas por algum sensor (câmera digital). As aplicações onde visão computacional pode ser importante são várias, tendo como exemplos: detecção de eventos vídeo vigilância, navegação automática para veículos e automóveis, diagnóstico automático em imagens médicas, inspeção automática de processos, entre outros.
Uma tarefa extremamente comum em diversos processos de visão computacional é a segmentação de imagens. Esta tarefa se caracteriza em classificar os pixeis de uma imagem de entrada em grupos (segmentos) que possuem mesma semântica. Este processo normalmente é utilizado como etapa inicial de algoritmos de visão computacional, pois pode servir para gerar uma representação da imagem de entrada, que seja mais simples e fácil de analisar. Uma área de aplicação que pode tirar grande proveito de técnicas de visão computacional é a agricultura de precisão.
Agricultura de precisão é caracterizada pelo uso de tecnologias para aumentar a produtividade e a qualidade das plantações, assim como reduzir o dano ao meio ambiente. Existem vários exemplos de agricultura de precisão variando de acordo com a aplicação, como sistemas de auxílio a tomada de decisão para toda a gerencia de uma fazenda, otimização de usos de adubos e pesticidas, uso de veículos aéreos não tripulados (unmanned aerial vehicle – UAV), e outros. Neste último temos como grande vantagem a habilidade de inspecionar uma grande área de monitoramento, provendo imagens de alta resolução com variados canais multi-espectrais, sendo tipicamente compostos por luz visível e informação infravermelha.
O uso de UAV na agricultura de precisão é recente, e existem várias aplicações que podem fazer uso deste tipo de imagem aérea. Algumas dessas aplicações são, monitoramento da evolução dos cultivares, identificação e contagem de plantas, detecção de falhas nas linhas de plantio, discriminação e detecção de plantas daninhas (weed).
Para atacar os problemas de visão computacional envolvidos no desenvolvimento das aplicações listadas acima, nosso laboratório estuda o uso de um algoritmo de segmentação de imagens capaz de separar em uma imagem de entrada, diferentes objetos presentes nela. Estes objetos podem ser as plantas cultivadas (crop), as daninhas (weed), o solo, e se desejado, as linhas de plantio individualmente. A figura a baixo mostra de forma geral o funcionamento do algoritmo estudado.
O algoritmo utiliza informações de cor e textura em conjunto para construir uma métrica de distancia não linear, capaz de diferenciar a classe (planta, daninha, solo …) de cada pixel da imagem. Para realizar a extração da informação de textura, são utilizados filtros de Gabor, e como métrica de distância é utilizada a Distância Polinomial de Mahalanobis (PMD).
Nas imagens mostradas a seguir, é possível observar o resultado obtido a partir do de algumas imagens, utilizando o algoritmo estudado.
Nas imagens acima podemos ver que o algoritmo proposto é capaz de segmentar as linhas de plantio individualmente em plantações de cana de açúcar, mesmo em imagens com e sem plantas daninhas, e em imagens com diferentes estágios de maturação das plantas.
Nas imagens acima podemos perceber que o algoritmo proposto é capaz de segmentar as linhas de plantio individualmente em imagens de algodão, mesmo em imagens com e sem plantas daninhas, e em imagens com diferentes estágios de maturação das plantas.
Na imagem a cima é mostrado o resultado obtido quando executamos o algoritmo em uma área de plantação inteira.