Este documento descreve um estudo sobre a viabilidade de um sistema de previsão de colheita de cogumelos utilizando visão computacional. Os autores testaram um algoritmo de deteção de círculos em MatLab que conseguiu detetar com sucesso moedas e cogumelos em imagens, fornecendo o raio e centro de cada um. Os resultados indicam que é possível desenvolver um sistema para prever colheitas baseado na análise automática de imagens dos cogumelos ao longo do tempo.
Contagem automatizada de ovos de schistosoma mansoni para o método de kato-katz
Artigo_Final
1. ANÁLISE DA VIABILIDADE DE UM SISTEMA DE PREVISÃO DE
COLHEITA DE COGUMELOS
João Martins
Universidade de Trás-os-Montes e Alto Douro
Quinta de Prados, 5000 Vila Real, Portugal
José Silva
Universidade de Trás-os-Montes e Alto Douro
Quinta de Prados, 5000 Vila Real, Portugal
ABSTRACT
With this study we aim to assess if we are able to detect
and measure mushrooms Agaricus bisporus using computer
vision on a previously taken picture in a controlled
environment with the help of an algorithm that runs in a
computer program so that in the future is possible to make
an automatic prediction of harvest and with this replace the
traditional way of prediction that is human based. The
results showed that indeed is possible to detect and measure
the mushrooms from a previously taken picture with a high
rate of success and that is relevant enough to proceed with
the development of a more complex software structure in
order to get more information.
Palavras-Chave
Cogumelos; Agaricus bisporus; Visão por computador;
Previsão de colheita; MatLab.
1. ESTADO DA ARTE
Após a uma pesquisa profunda das atividades já realizadas
no âmbito da previsão de colheita utilizando visão artificial,
descobrimos alguns exemplos enquadrados na produção
agrícola, como o da empresa Vision Studio [1] e da
Advanced Mushroom Research Corporation (AMR) [2].
A primeira oferece soluções baseadas em visão artificial,
uma delas enquadra-se na área da agricultura, a Agro
Vision. A solução Agro Vision consiste num sistema
preditivo que é capaz de “estimar o potencial frutícola de
uma forma não destrutiva, rápida, objetiva e confiável”. O
sistema destaca-se por através de um smartphone, tablet,
drone ou câmara em tripé, um utilizador tirar uma
fotografia. De seguida, essa fotografia é enviada para os
servidores da empresa que por sua vez têm um sistema que
analisa a imagem e distingue folhagem de fruto, permitindo
contar, medir e construir um mapa espacial com rigor
vegetativo. Após este tratamento são gerados relatórios que
oferecem um erro de previsão inferior a 5%. Os exemplos
que são demonstrados enquadram-se na colheita da
azeitona e na cultura de vide.
Por outro lado, a AMR é um exemplo claro que este projeto
é possível. Como o nome indica, está ligado diretamente
aos cogumelos e oferece uma solução de colheita
inteligente de cogumelos chamada AMR Smart Harvest.
Através da recolha de fotografias com alta resolução ao
tabuleiro onde os cogumelos se encontram, é possível
detetá-los, medi-los, estudar a textura e até a perceber a sua
cor. Depois, através da comparação da fotografia da atual
com uma anterior, é possível determinar o crescimento de
cada cogumelo e registá-lo. Para além disto o sistema
implementado pela AMR inclui um sistema de apoio à
colheita através da utilização de um projeto por cima do
tabuleiro de modo a projetar uma luz por cima dos
cogumelos que estão em condições de ser colhidos.
Infelizmente, em nenhum destes exemplos são
grandemente desmitificados os componentes de software e
hardware utilizados.
2. 2. CASO DE ESTUDO
2.1 Método
Para testarmos a viabilidade do nosso estudo decidimos que
a melhor estratégia seria, começar a testar um algoritmo
numa imagem com boa definição e pouco ruído, seguindo
depois a experiência nas imagens obtidas diretamente dos
tabuleiros onde estavam a ser desenvolvidos os cogumelos.
Consequentemente conseguiremos determinar o centro de
cada cogumelo e saber qual a área do mesmo, permitindo
assim calcular no futuro o número de cogumelos por
tamanho. Os testes foram realizados em MatLab, versão
2015, escolhido com influência da sugestão do professor
António Sousa, docente de unidade curricular
“Processamento de Imagem”. O método adotado tratou-se
de uma tentativa de diminuir ao máximo as nossas
limitações em processamento de imagem, pois este tema
não é abordado na Licenciatura em Tecnologias da
Informação e Comunicação, a nossa formação de base.
Desta forma tanto o método utilizado como o software
foram bastante importantes para o resultado final do estudo.
2.2 Atividades
O respetivo estudo foi além de um teste em Matlab, pois
tudo começou com uma visita às instalações da empresa
SousaCamp Cogumelos – Varanda de Sousa, SA. que nos
possibilitou não só retirar fotografias num contexto real,
como também perceber as fases de desenvolvimento do
cogumelo. Logo no momento da visita percebemos que o
composto onde os cogumelos de desenvolviam continham
muito “ruído” que iria complicar um pouco a deteção dos
cogumelos a partir de uma fotografia, pois continha
imensos pontos brancos que não deveriam ser
contabilizados, mas que poderiam vir a ser confundidos
com cogumelos pequenos. O outro problema detetado foi a
realização clusters com vários cogumelos que poderiam
tornar mais difícil a deteção e calculo com precisão do
tamanho dos cogumelos. Neste sentido e devido à fácil
inicial deste projeto, obter imagens com qualidade e com o
menor “ruido” possível para possibilitar testar o nosso
algoritmo. Sendo assim podemos dividir o a nossa
atividade em duas fases, a 1ª Teste em fotografia em
contexto diferente e a 2ª Teste em contexto real.
Azul – “Ruído”, podem induzir em erro.
Vermelho – Cluster de cogumelos.
Atividades:
1ª Teste em fotografia em contexto diferente:
- Obter uma fotografia para realizar o teste com o nosso
algoritmo;
- Verificar a percentagem de assertividade do nosso teste.
2ª Teste em contexto real:
- Obter as fotografias em contexto real de desenvolvimento
do cogumelo;
- Verificar a percentagem de assertividade do nosso teste;
- Comparar os resultados.
2.3 Equipamento
O teste realizado foi efetuado em Matlab versão R2015b,
que se trata de um software trata-se de
um software interativo de alta performance voltado para
o cálculo numérico. Contém um ambiente intuitivo e de
fácil adaptação, permitindo-nos uma a adaptação mais
rápida. Computador usado trata-se de um HP i7 modelo 15-
n005sp. Assim como as fotografias testadas foram obtidas
com o smartphone Wiko Highway 4G.
3. 2.4 Procedimento
Inicialmente procuramos uma imagem cujo fundo tivesse
um bom contraste de forma a ser mais simples o teste do
algoritmo. A imagem escolhida foi uma com base branca e
que continha oito moedas de vários tamanhos, inicialmente
fizemos a leitura da imagem para duas variáveis:
Img = imread('moedas.jpg');
Img2 = imread('moedas.jpg');
Transformamos a imagem em preto e branco,
possibilitando assim um processamento mais rápido da
imagem:
Img=im2bw(Img(:,:,1));
Definimos os raios através de um mínimo e de um máximo:
Rmin=24;
Rmax=150;
Após a definiçãos dos raios utilizamos o seguinte
algoritmos para detetar as moedas existentes na imagem e
os respetivos raios:
[centersDark, radiiDark] = imfindcircles(Img, [Rmin
Rmax], ...
'ObjectPolarity','bright','sensitivity',0.90)
Por fim través do seguinte algoritmo apresentamos a
imagem com as respetivas moedas sinalizadas com uma
linha vermelha e tracejada, tanto a imagem tratada, como a
imagem original:
imagesc(Img2);
hold on
viscircles(centersDark, radiiDark,'LineStyle','--');
hold off
figure;
imshow(Img);
hold on
viscircles(centersDark, radiiDark,'LineStyle','--');
hold off
Por fim para além de sinalizar os círculos, também localiza
o centro e determina o raio de cada um deles.
2.5 Resultados e discussões
Durante a primeira atividade conseguimos detetar as oito
moedas com uma margem de erro muito baixa no que toca
aos limites selecionada em comparação com a imagem,
conforme o exemplo da seguinte imagem:
Raio e Centro
Raio Centro
35.2192 248.4099 156.4326
36.7052 247.6047 47.4388
35.9138 48.8135 48.8798
36.7223 49.8992 156.1268
37.5660 146.9177 154.0864
35.9161 349.9602 48.4480
34.9817 146.7736 50.9326
34.7734 347.9710 156.6924
2ª Atividade, visava fazer o mesmo teste que na 1ª
atividade, no entanto usando a foto obtida em contexto real,
cujo objetivo foi atingido com sucesso e pouca margem de
erro. Detetando 37 cogumelos de cerca de 40, conforme se
pode ver nas seguintes imagens:
4. Raio Centro
35.6396 749.3630 307.8084
32.6655 497.0558 368.2409
32.2357 244.9291 508.4397
30.7410 474.9671 285.5713
36.5738 335.4763 487.4612
26.6115 931.4045 294.4523
32.2426 675.4072 239.5111
27.4107 56.0154 197.8444
27.3941 31.5785 128.3876
38.6007 100.7329 449.7635
28.9975 147.9469 220.2418
39.1136 825.6639 291.6202
29.6741 218.2955 455.5123
38.6390 76.2751 260.4056
25.8361 314.2759 258.9060
53.9493 323.4029 392.8069
38.7597 861.3708 223.5481
34.4793 427.0321 474.9057
29.6812 599.6341 125.4669
31.4017 715.5240 29.7539
47.1700 856.7919 434.3452
33.3477 176.6492 537.5535
41.4540 938.4122 222.8908
26.0407 381.2778 450.1338
55.6399 498.9833 526.0887
27.0313 44.5873 420.8223
24.9000 477.9612 181.8717
25.7252 243.3631 437.5913
26.3653 317.5711 28.1444
58.1281 225.3252 380.0511
30.9546 373.6801 39.6636
31.0421 621.3361 355.2093
31.1085 828.9020 427.6795
55.8138 789.2203 513.8321
56.5624 888.5032 43.4585
27.8007 706.5453 193.1654
35.9568 708.1503 511.6650
Após a obtenção dos resultados, verificamos que o mesmo
algoritmo utilizado nas moedas poderá ser usado também
com as fotos dos cogumelos obtidas em contexto real.
Verificando-se uma margem de erro muito reduzida.
Podemos notar que os cogumelos da extremidade da
fotografia não são detetados, mas o que não se verifica um
problema na medida em que se isso acontece os mesmos
cogumelos iriam ser contabilizados mais do que uma vez,
para isso bastava que na outra fotografia contivesse a parte
que falta dos cogumelos avaliados na fotografia. Mesmo
assim nota-se que existem cerca de 3 ou 4 cogumelos muito
pequenos que não são detetados o que poderá ser aferido
num estudo futuro, mesmo assim tratam-se de tamanhos
precoces e que só serão colhidos numa fase mais evoluída e
que aí sim o algoritmo já irá fazer a deteção devido ao seu
tamanho maior.
Relativamente aos centros e raios será muito importante na
obtenção de informação, como peso em quilogramas de
cogumelos, número de cogumelos por tamanho e fazer
previsões baseadas no processo de evolutivo do cogumelo
por espécie.
3. CONCLUSÃO E TRABALHO FUTURO
Concluímos que é possível detetar cogumelos através de
uma foto e com isto fazer uma coleta de dados relativo, ao
centro, raio e estimar a área de cogumelos por imagem.
Desta forma conseguiremos num futuro próximo recolher
informações que nos ofereçam a possibilidade de prever
quantidades de colheita em determinada data, baseada no
processo evolutivo do cogumelo. Mesmo assim poderá ser
possível desenvolver mais o algoritmo e desta forma
diminuir a margem de erro que o presente estudo ainda
tem. Diminuindo a margem de erro, aumentamos a
qualidade da análise e no futuro as previsões de colheita
serão mais eficazes.
Durante o estudo apontaria como principal limitação da
nossa parte, a falta de conhecimentos em matéria de
processamento de imagem, se tal existisse achamos que o
estudo poderia ter-se desenvolvido de uma forma mais
rápida e consequentemente seriam atingidos outros
objetivos. Mesmo assim julgamos que o resultado é
positivo e o estudo pode ser considerado de sucesso,
abrindo portas para ser desenvolvido num futuro próximo.
4. REFERÊNCIAS
[1] Website da Vision Studio . Disponível em:
http://www.visionstudio.com.ar/index.html
[Acedido em 15 março 2016].
[2] Website da Advanced Mushroom Research Corporation
Disponível em:
http://www.advancedmushroomresearch.com/
[Acedido em 20 março 2016]
[3] Detect Circles in Images Using MATLAB
Disponível em:
http://www.theengineeringprojects.com/2015/11/detect-
circles-images-using-matlab.html
[Acedido em 20 maio 2016]