4. Inflation et salaires
4.1 Prix à la consommation
A aplicação desenvolvida após a tela de abertura possui um menu com as opções de ações a serem realizadas, que são: Capturar Imagem, a qual permite ao usuário fotografar lagartas encontradas; Localizar Imagem, que abre a galeria de imagens do dispositivo, possibilitando localizar uma imagem no dispositivo, ou mídia externa acoplado ao mesmo; Identificador, que abre a câmera do dispositivo e a mesma tenta detectar lagarta a sua frente, e, quando essa funcionalidade consegue detectar algo, fica um quadrado verde sobre o objeto identificado.
Na Figura 8 encontra-se um fluxograma da estrutura de funcionamento do aplicativo. Algumas telas da aplicação, como a do Menu Inicial, Captura de Imagens e o Localizador de Imagens, encontram-se na Figura 9.
Figura 8 - Fluxograma do Aplicativo
Fonte: Imagem desenvolvida pela autora.
A parte pontilhada da imagem a cima não foi implementada, pois não havia necessidade para o funcionamento básico, da aplicação com o que era esperado. Em preto estão as classes com o código Java implementado, em azul são os arquivos xml correspondentes ao layout de cada tela, o único nome em vermelho na imagem corresponde ao xml resultado do treinamento responsável pela eficácia da identificação.
Figura 9 - Tela de Menu, Busca de Imagem e Galeria
Fonte: Imagem desenvolvida pela autora.
A aplicação ainda possui um Plus, o qual apresenta um menu que encaminha para uma tela contendo informações sobre algumas lagartas, pragas da soja, a Anticarsia, a Spodoptera e a Medideira. Isto é observado na Figura a seguir:
Figura 10 - Menu de Lagartas + Telas
Para que fosse possível realizar a identificação da existência de lagarta na tela, foi utilizado um algoritmo já pré-implementado na biblioteca OpenCV, que faz a detecção de faces, que usa a lógica do algoritmo Viola Jones. As classes Java correspondentes a implementação desse algoritmo são a DetectionBasedTracker.java e FdActivity.java.
Efetivada a aplicação, ela deve ser treinada para que consiga identificar objetos, nesse caso lagartas. Para a realização do treinamento, inicialmente é necessário um conjunto de amostras. As amostras utilizadas são de dois tipos: positivas, imagens que contêm o objeto (lagarta) a ser identificado, e negativas, imagens que não contêm o objeto a ser identificado. Essas imagens devem estar separadas conforme seu tipo.
As amostras negativas são enumeradas em um arquivo especial. É um arquivo de texto em que cada linha contém um arquivo de imagem (caminho de onde se encontra a imagem), imagem da amostra negativa. Este arquivo deve ser criado manualmente. Note-se que as amostras negativas e amostras de imagens também são chamadas de amostras de fundo ou o fundo de amostras de imagens, e são utilizados indiferentemente no presente documento. As imagens descritas podem ser de tamanhos diferentes (OPENCV, 2014, p. 32).
As amostras positivas são criadas pelo utilitário opencv_createsamples. Elas podem ser criadas a partir de uma única imagem com objeto ou de uma coleção de imagens previamente marcadas (OPENCV, 2014, P. 33). Após a execução do opencv_createsamples, é gerado um arquivo .vec contendo um vetor de amostras positivas para o treinamento, baseado nas informações contidas em um arquivo .info, que contém o caminho, nome, quantidades de lagartas e dimensões das imagens positivas.
É necessário um grande número de amostras de imagens, uma vez que, conforme Annamraju (2014), é imprescindível que a quantidade de imagens negativas seja maior que a de positivas. Nesse caso estão sendo usadas 400 imagens negativas e 185 positivas.
Com o arquivo .vec de imagens criado realiza-se o treinamento utilizando o opencv_traincascade. Nessa parte passa-se um caminho no qual será gerado o cascade.xml, que contém toda a estrutura do treinamento (o arquivo contendo os parâmetros, params.xml e os arquivos xml de cada estágio do treinamento), o arquivo .vec com as imagens positivas, o arquivo .txt com as imagens negativas, o número de
imagens positivas e negativas, o número de estágios do treinamento, além, claro, do tipo de treinamento, nesse caso o LBP.
Quanto mais imagens forem usadas e quanto mais estágios tiver o treinamento, mais demorado ele será, posto que a cada estágio ele recarrega as imagens, em um tempo que cresce exponencialmente conforme vai aumentando os estágios. Em contrapartida, quanto mais imagens, tanto positivas como negativas, e quanto mais estágios tiver o treinamento, mais rápida será a execução do algoritmo e mais precisa será a detecção.
Concluído o treinamento, copia-se o conteúdo do arquivo cascade.xml para o arquivo .xml dentro da pasta raw do projeto no eclipse. Após salvar pode-se executar que o aplicativo irá funcionar.
Na Figura 11 observa-se a tela de detecção de lagartas.
Figura 11 - Tela de Detecção de Lagarta
Fonte: Imagem desenvolvida pela autora
Foi optado pelo uso dos algoritmos citados a cima, visto que o algoritmo utilizado já estava pré implementado na biblioteca OpenCV e pelo fato dele permitir treinamento em cascata, que pelo que foi pesquisado pareceu ser o meio mais viável para se conseguir resultados positivos nesse trabalho. Não se usou o Isoseg, nem o DWT, por não ter se conseguido adquirir o conhecimento necessário.
O treinamento foi realizado usando opencv_traincascade featureType= LBP. O LBP é mais ágil do que o treinamento usando Haar, isso porque o treinamento usando LBP, ao contrário de Haar, pode ser feito utilizando multithreds. Também não se optou por usar o algoritmo de aprendizagem Adaboost, pois não se ter conhecimento de
como ele poderia ser implementado na estrutura desse aplicativo para se alcançar o resultado desejado. Outro motivo que influenciou em optar-se por usar o LBP, é que segundo Oliveira (2013), esse é o algoritmo mais indicado para uso em dispositivos móveis. Ele suporta diferentes tamanhos de vizinhança entre os pixels, devido à necessidade do uso do algoritmo para diferentes aplicações. A maior vantagem desse método é sua tolerância a variações de iluminação e seu custo computacional.
4 Resultados
Implementado o protótipo do nosso aplicativo, necessita-se realizar um treinamento utilizando o banco de imagens positivas e negativas juntamente com um algoritmo de aprendizagem, para que o identificador consiga realizar a função desejada. Essa é parte que demanda mais tempo em virtude do carregamento de imagens.
Utilizando um treinamento de até cem estágios para a quantidade de imagens, já descrita anteriormente, obteve-se o seguinte resultado:
Houve uma detecção mais precisa das imagens com fundo branco, onde a lagarta Anticarcia encontra-se posicionada entre a horizontal e a diagonal, como pode ser visto na imagem da Figura 12:
Figura 12 - Teste de Detecção com Anticarcia
Fonte: Imagem desenvolvida pela autora.
Com imagens de fundo branco de lagartas medideiras, a impressão inicial, é de que se obtém resultado semelhante da imagem anterior, porém, observando com mais atenção, percebe-se que a mesma seleção intermitente não está muito bem-localizada sobre a mesma, ou seja, não se obteve sucesso nesse reconhecimento.
Figura 13 - Teste de Detecção com Medideira
Fonte: Imagem desenvolvida pela autora.
Obteve-se resultados positivos com imagens de lagarta Spodoptera em um fundo com conteúdo e as mesmas estando dispostas horizontalmente na imagem, como pode ser visto na figura 14.
Figura 14 - Teste de Detecção com Spodoptera
Fonte: Imagem desenvolvida pela autora.
Aplicando o identificador sobre imagens de lagartas de outras espécies, ou sobre imagens diferentes das a cima citadas não se obteve resultados positivos.
Os melhores resultados foram obtidos com imagens semelhantes a maioria contidas no banco de imagens positivas. Esse banco contém imagens de diversas espécies de lagartas, dispostas de forma mista, isso porque a quantidade individual de imagens de cada espécie que se tinha era menor que o necessário.
Durante a realização dos testes identificou-se que a luminosidade do ambiente, a posição da câmera perante a visualização da lagarta e a movimentação do dispositivo que está realizando a detecção, influenciam no resultado obtido.
5 Conclusões e trabalhos futuros
Quando surgiu a ideia do desenvolvimento desse aplicativo, não se tinha noção da tamanha complexidade que o mesmo teria; não referente à parte da estrutura tradicional do aplicativo, mas, sim, às questões do reconhecimento de padrões de imagens. Apesar disso foi possível concluir de que é possível sim identificar espécies de lagartas usando reconhecimento de padrões.
Um ponto fundamental na implementação de um sistema de reconhecimento de padrões é o treinamento. Quanto mais treinado for o algoritmo melhor será o resultado final, e também quanto mais fases tiver o treinamento mais ágil será o retorno do algoritmo. Ao mesmo tempo, porém, quanto mais fases tiver o treinamento, mais tempo o mesmo demorará para ser concluído, por isso os treinamentos com melhores resultados demoram cerca de semanas. Ainda, quanto maior a diversidade de imagens no banco de imagens para o treinamento, mais próximo se chegará ao resultado esperado.
Tem-se, como plano futuro para esse aplicativo, melhorar sua capacidade de reconhecimento. Para isso, deve-se aumentar a diversidade de imagens positivas e negativas para um número bem mais elevado que o atual. Pensa-se em algo aproximado de 1.000 imagens negativas e 900 positivas, e, além disso, categorizar as imagens positivas conforme sua espécie, focando, principalmente, em lagartas Spodopteras, Medideiras e Anticarsias para, posteriormente a isso, realizar o treinamento conforme cada categoria criada, podendo-se, assim, realizar a identificação de lagartas conforme a sua espécie separadamente.
Referências
ANNAMRAJU, Abhishek Kumar. A gateway to Robotic Vision. 2014. Pilani
Chicalim – Índia. Disponível em: <http://abhishek4273.com/2014/03/16/traincascade- and-car-detection-using-opencv/>. Acesso em: 1º jun. 2015.
BUENO. Conceito, histórico e divisões da agricultura. 2012. Iporá-GO, Disponível em:
<http://www.ifgoiano.edu.br/ipora/images/stories/coordenacao/Bueno/1_- _Conceito_histrico_e_divisao_da_agricultura.pdf>. Acesso em: 28 mar. 2014. DE SAMPAIO, Luciano. Google Goggles: descubra o mundo pelos olhos da
Google. 2010. Disponível em: <http://www.tecmundo.com.br/google/4218-google-
goggles-descubra-o-mundo-pelos-olhos-da-google.htm>. Acesso em: 20 maio 2015. FARINA, André Marcelo. BioMobile: Sistema de identificação de usuários em
dispositivos móveis na plataforma Android utilizando reconhecimento de faces a partir de vídeo. 2012. Disponível em: <http://www.ibilce.unesp.br/Home/Pos-
Graduacao475/CienciadaComputacao/pdf-andre-marcelo-farina.pdf>. Acesso em: 9 fev. 2015
FURTADO, Nicole, Entomologia agrícola. 2013. Paraná. Disponível em:
<http://www.ebah.com.br/content/ABAAAAzxMAE/entomologia-agricola#>. Acesso em: 02 abr. 2014
GALLO, Domingos et al. Entomologia agrícola, São Paulo. FEALQ. 2002. 920 p. GONZALES, Rafael; WOODS, Richard. Processamento de imagens digitais, São Paulo. Edgard Blucher. 2000. 509 p.
GRASSI, J. T. et al. Estudo comparativo entre os algoritmos segmentadores para a geração de máscaras de. SIMPÓSIO BRASILEIRO DE SENSORIAMENTO
REMOTO - SBSR, 16., 2013. Anais XVI. Disponível em:
<http://www.dsr.inpe.br/sbsr2013/files/p0607.pdf>. Acesso em: 25 fev. 2015. MACHADO, B. B. et al. Implementação de um algoritmo de reconhecimento
facial usando Eigenfaces. e-Xacta, 2012. Disponível em:
<http://revistas.unibh.br/index.php/dcet/article/view/247/137>. Acesso em: 25 fev. 2015.
MAREGONI, Mauricio; STRINGHINI, Denise. Tutorial: introdução à visão
computacional usando OpenCV. 2009. Disponível em:
<http://seer.ufrgs.br/rita/article/viewFile/rita_v16_n1_p125/7289>. Acesso em: 9 de mar. 2014
MILANO, Danilo de; HONORATO, Luciano Barrozo. Visão Computacional. 2010. Disponível em:
<http://www.ft.unicamp.br/liag/wp/monografias/monografias/2010_IA_FT_UNICAMP_ visaoComputacional.pdf>. Acesso em: 25 set. 2013.
MOREIRA, Henrique José da Costa; ARAGÃO, Flávio Damasceno. Manual de
Pragas da Soja. 2009. Disponível em:
<http://www.plantimar.com.br/img/documentos/Manual_de_pragas_de_soja.pdf>. Acesso em: 9 de mar. 2014.
OLIVEIRA, B. S.; MATAVELI, G. A. V. Avaliação do desempenho dos classificadores Isoseg e Bhattacharya para o mapeamento. SIMPÓSIO BRASILEIRO DE
SENSORIAMENTO REMOTO – SBSR. 16., 2013. Anais XVI. Disponível em: <http://www.dsr.inpe.br/sbsr2013/files/p0863.pdf>. Acesso em: 25 fev. 2015. OPENCV. Cascade Classifier Training. 2014. Disponível em:
<http://docs.opencv.org/doc/user_guide/ug_traincascade.html>. Acesso em: 31 maio 2015.
OPENCV, OpenCV (Open Source Computer Vision). 2013. Disponível em: <http://opencv.org/>. Acesso em: 25 set. 2013.
PIRES, Alexandre Cezar; DE ARAUJO, Sidnei Alves; SANTANA, Jose Carlos.
Classificação automática de sementes de feijão usando técnicas de visão computacional. 2011. São Paulo. Disponível em:
<http://www.abepro.org.br/biblioteca/enegep2011_TN_STP_136_866_19407.pdf>. Acesso em 15 out. 2013.
PUC-RIO. Técnica baseada em treinamento e cascata de classificadores. Maxwell. Disponível em: <http://www.maxwell.vrac.puc-rio.br/13069/13069_4.PDF>. Acesso em: 2 fev. 2015.
SOUSA, Kelly Aparecida Oliveira. Uso de visão computacional em dispositivos
móveis para auxílio à travessia de pedestres com deficiência visual. 2013. São
Paulo. Disponível em:
<http://www.mackenzie.br/fileadmin/PUBLIC/UP_MACKENZIE/servicos_educacionai s/stricto_sensu/Engenharia_Eletrica/Kelly_Aparecida_Oliveira_Sousa.pdf>. Acesso em: 5 nov. 2014.
SOUZA, C. F. S. D.; PANTOJA, C. E. P.; SOUZA, F. C. M. D. Verificação de
assinaturas Off-line utilizando o algoritmo dynamic time warping. C.E.S.A.R.
Disponível em:
<http://www.cesar.org.br/site/files/file/Verificacao_de_Assinaturas_Off-
line_Utilizando_o_Algoritmo_Dynamic_Time_Warping.pdf>. Acesso em: 25 fev. 2015.
WANGENHEIM,Aldo von; COMUNELLO, Eros; RICHA , Rogério. Inteligência
artificial aplicada à visão computacional, 2013, Disponível em :
WIKIPEDIA. AdaBoost. 2013. Disponível em:
<https://pt.wikipedia.org/wiki/AdaBoost>. Acesso em: 25 fev. 2015.
ZANETTI,Thais dos Santos. O ataque de lagartas trazendo preocupações para a
cultura da soja. 2013. Disponível em:
<http://blog.ourofino.com/agricola/2013/02/28/o-ataque-de-lagartas-trazendo- preocupacoes-para-a-cultura-da-soja/>. Acesso em: 11 de abr. 2014.