SUL-UNIJUÍ
FERNANDO LUIZ SIMON
ALGORITMO DE PROCESSAMENTO DE IMAGEM PARA ORDENHA
ROBÓTICA
SANTA ROSA, RS 2019
ALGORITMO DE PROCESSAMENTO DE IMAGEM PARA ORDENHA
ROBÓTICA
Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Engenharia Elétrica, da Universidade Regional do Noroeste do Estado do Rio Grande do Sul-UNIJUÍ, como requisito parcial para obtenção do grau de Engenheiro Eletricista.
Orientador: Prof. Me. Mauro Fonseca Rodrigues
SANTA ROSA, RS 2019
ALGORITMO DE PROCESSAMENTO DE IMAGEM PARA ORDENHA
ROBÓTICA
Este Trabalho de graduação foi julgado adequado para a obtenção do grau de
Engenheiro Eletricista e aprovado em sua forma final pela Comissão
Examinadora e pelo Colegiado do Curso de Graduação em Engenharia Elétrica
da Universidade Regional do Noroeste do Estado do Rio Grande do
Sul-UNIJUÍ.
Banca examinadora:
________________________________________________
Me. Eng. Mauro Fonseca Rodrigues- Orientador –DCEEng /Unijuí
_______________________________________________
Dedico o presente trabalho inicialmente a Deus, por iluminar meu caminho e por me abençoar em todas as conquistas.
À minha Família por ser meu porto seguro e por me apoiar em todas as batalhas. Aos meus colegas de Engenharia Elétrica, por toda ajuda e apoio nessa difícil trajetória percorrida até aqui.
Agradeço primeiramente a Deus, por tudo que Ele realizou em minha vida, por todas as conquistas e realizações que proporcionou à nossa família e por me abençoar nesta trajetória da minha vida.
Aos meus pais Luiz e Neli pelo constante suporte e apoio nesta jornada, além de todo sacrifício que os mesmos fizeram para que eu chegasse até aqui.
Agradeço à minha irmã Fabiana e ao meu cunhado Luis pelo incentivo e auxilio na minha trajetória profissional e pessoal.
Aos colegas do curso de Engenharia Elétrica por todo apoio, companheirismo e incentivo para enfrentar as dificuldades do curso.
Ao meu orientador e amigo Mauro Fonseca Rodrigues pelo apoio e orientação no desenvolvimento deste trabalho.
A todos os professores da Unijuí por compartilhar conhecimento e experiências, assim como por nos incentivar a estudar e a correr atrás dos nossos objetivos.
A Unijuí por oferecer esta oportunidade de curso em local próximo, buscando desenvolver a região e formar profissionais capacitados.
A persistência é o caminho do êxito. Charles Chaplin
O presente trabalho tem por objetivo o desenvolvimento de um algoritmo de processamento de imagem para atuar nas ordenhas robóticas como forma alternativa ao uso de sensores diversos. O trabalho com imagens mostra-se, a cada dia, uma perspectiva de obtenção de informações a respeito de inúmeros sistemas, usando um único sensor comandado por software. O uso de sensores na detecção dos tetos na ordenha robótica enfrenta alguns problemas, como por exemplo, a oclusão dos tetos e as falhas de projeção para fora da região de interesse, sendo o processamento de imagem uma alternativa para a solução destes problemas. Entre as vantagens da utilização de softwares destaca-se a facilidade para alterar o modo de operação, bastando realizar a modificação do algoritmo. Para o desenvolvimento deste trabalho foram utilizadas as técnicas de limiarização, gradiente Prewitt, Transformada de Hough e segmentação da região de interesse. O desenvolvimento do algoritmo será realizado através da linguagem de programação C e com o auxílio do software MATLAB. Para os testes de funcionamento do algoritmo, foram utilizadas quatro imagens de base coletadas em campo. Dessas quatro imagens utilizadas nos testes, três obtiveram sucesso em menos de duas tentativas, sendo que somente uma delas obteve rendimento menos satisfatório.
The present work has the objective of developing an image processing algorithm to act on the robotic milking as an alternative way to the use of different sensors. The work with images shows, every day, a perspective of obtaining information about numerous systems, using a single sensor commanded by software. The use of sensors in the detection of the breast in robotic milking faces some problems, such as occlusion of the breast and projection faults outside the region of interest, and image processing is an alternative to solve these problems. Among the advantages of using software is the ease to change the operating mode, simply by performing the modification of the algorithm. For the development of this work, the techniques of thresholding, Prewitt gradient, Hough transform and segmentation of the region of interest were used. The development of the algorithm will be done through the programming language C and with the help of MATLAB software. For the tests of the algorithm, four field images were used. Of the four images used in the tests, three were successful in less than two attempts, with only one of them achieving a less satisfactory yield.
Figura 1- Ordenha robótica. ... 17
Figura 2- Falha da conexão do insuflador na ordenha robótica. ... 17
Figura 3-Oclusões de tetos. ... 18
Figura 4-Topologias de instalação: Fluxo livre (a); Fluxo forçado com alimentação primeiro (b); Fluxo forçado com ordenha primeiro (c). ... 21
Figura 5- Representação de imagem digital. ... 23
Figura 6-Demonstração de imagem com seu respectivo histograma. ... 25
Figura 7-Processo de votação de Hough em circunferências. ... 26
Figura 8-Detecção de bordas por derivação. ... 27
Figura 9-Máscara gradiente Prewitt horizontal (esquerda) e vertical (direita). ... 28
Figura 10-Imagem utilizada como base no trabalho. ... 33
Figura 11-Imagem utilizada como base no trabalho. ... 34
Figura 12-Imagem utilizada como base no trabalho. ... 34
Figura 13-Imagem utilizada como base no trabalho. ... 35
Figura 14-Comparativo imagem sem ajuste de histograma (lado esquerdo) e com ajuste de histograma (lado direito). ... 36
Figura 15-Imagem de base convertida para escala de cinza. ... 36
Figura 16-Imagem de base convertida para escala de cinza. ... 37
Figura 17-Imagem de base convertida para escala de cinza. ... 37
Figura 18-Imagem de base convertida para escala de cinza. ... 37
Figura 19-Comparativo de desempenho de gradientes: Imagem Original (a); Roberts (b); Prewitt (c) e Sobel (d). ... 38
Figura 20-Pixels dispersos na região central da imagem. ... 40
Figura 21-Análise das variações do raio. ... 42
Figura 22-Influência de pixels próximos à circunferência. ... 44
Figura 23-Fluxograma de processos a serem executados. ... 46
Figura 24-Resultado do processamento da imagem de base. ... 47
Figura 25-Resultado do processamento da imagem de base. ... 48
Figura 26-Resultado do processamento da imagem de base. ... 48
Figura 27-Resultado do processamento da imagem de base. ... 49
Quadro 1-Detecção de bordas pelo gradiente de Prewitt...39 Quadro 2-Aplicação de filtro na Região de Interesse...41 Quadro 3-Tempo de processamento por imagem e número de tentativas...50
1 INTRODUÇÃO ... 14 1.1 CONTEXTUALIZAÇÃO ... 14 1.2 JUSTIFICATIVA ... 17 1.3 OBJETIVOS ... 18 1.3.1 Objetivo Geral ... 18 1.3.2 Objetivos Específicos ... 19 1.4 ESTRUTURA DO TRABALHO ... 19 2 REFERENCIAL TEÓRICO ... 20 2.1 ORDENHA ROBÓTICA ... 20
2.2 PROCESSAMENTO DE IMAGEM E APLICAÇÕES ... 22
2.3 AQUISIÇÃO E DIGITALIZAÇÃO DE IMAGENS ... 23
2.4 LIMIARIZAÇÃO ... 24 2.5 HISTOGRAMA ... 25 2.6 MORFOLOGIA MATEMÁTICA ... 25 2.7 TRANSFORMADA DE HOUGH ... 26 2.8 DETECTAÇÃO DE BORDAS ... 27 2.9 GRADIENTE PREWITT ... 27 2.10 MATHWORKS MATLAB ... 28 3 TRABALHOS RELACIONADOS ... 29 4 METODOLOGIA ... 33
4.1 AQUISIÇÃO DA IMAGEM E SOFTWARES ... 33
4.2 CONVERSÃO PARA NÍVEL DE CINZA ... 35
4.3 SEGMENTAÇÃO DAS BORDAS PELO GRADIENTE PREWITT ... 38
4.4 SEGMENTAÇÃO DA REGIÃO DE INTERESSE ... 40
4.5 APLICAÇÃO DA TRANSFORMADA DE HOUGH ... 42
4.6 FILTRAGEM DE REGIÕES PRÓXIMAS AO PONTO VOTADO ... 43
4.7 FLUXOGRAMA DE PROCESSOS ... 44
5 DISCUSSÃO DOS RESULTADOS OBTIDOS ... 47
5.1 ANÁLISE DO TEMPO DE PROCESSAMENTO ... 49
5.2 ANÁLISE DOS RESULTADOS OBTIDOS ... 50
REFERÊNCIAS BIBLIOGRÁFICAS ... 55 APÊNDICE 1-CÓDIGO FONTE ... 57
1 INTRODUÇÃO
1.1 CONTEXTUALIZAÇÃO
A bovinocultura é responsável por uma importante fatia do setor do agronegócio brasileiro, gerando emprego e renda para muitas famílias. Antigamente, os animais possuíam a finalidade de transporte ou tração na agricultura. Porém, com o desenvolvimento de novas tecnologias, os bovinos perderam esta finalidade e passaram a serem utilizados tão somente na produção de carne, leite e couro.
Entre os segmentos da bovinocultura destaca-se a criação de gado leiteiro, que desempenha um relevante fator social, pois permite que os pequenos agricultores continuem no campo devido ao retorno financeiro que o leite pode proporcionar. Atualmente, o setor leiteiro, passa por períodos difíceis devido ao impacto proporcionado pela abertura do livre mercado. Aliado a isso, a competição de mercado faz com que se quebre a inércia da inserção de novas alternativas, obrigando o pecuarista a procurar por eficiências econômicas para obter sucesso. Infelizmente, grande parte dos pecuaristas ainda trata de seus animais de maneira arcaica, pois possuem pouco conhecimento sobre alternativas de produção de leite. Ademais, muitos ainda encaram o negócio sem visão de empresa rural.
Em um mercado tão competitivo, o uso de tecnologias se torna imprescindível para obter maior eficiência na produção de leite, visto que o produto sofre com a instabilidade de seus preços e a redução da lucrativa é cada fez mais frequente. Dessa maneira, a inserção destas tecnologias auxilia o pecuarista a manter-se nesse mercado, sem obter prejuízos. De acordo com o IBGE (apud ARAÚJO, 2017, p. 62), “Enquanto os vizinhos Argentina e Uruguai registram uma produtividade média de 12 litros por vaca por dia e alguns países europeus ultrapassam 18 litros por vaca por dia, o Brasil apresenta a vexatória produtividade média de 4,4 litros de leite por animal”.
Devido à alta competição de mercado, a bovinocultura de leite tem progredido nas últimas décadas. Segundo Neto e Lopes (2014, p. 102), a reprodução, que antes era realizada pelo touro, hoje é realizada pelo homem, por meio da inseminação artificial. A ordenha que antes era manual passou a ser mecanizada. E mais recentemente está se tornando robótica, auxiliando o pecuarista a obter um melhor rendimento na produção de leite aliado a economia de gastos, além de proporcionar mais tempo livre para exercer atividades gerenciais.
A ordenha robótica é um sistema relativamente novo no Brasil, porém já consolidado há muitos anos em países desenvolvidos, como Holanda, Alemanha, EUA, entre outros.
O primeiro robô ordenhador experimental de vacas foi construído na Alemanha, na Universidade de Hohenheim, pelo professor e engenheiro agrônomo especializado em pecuária leiteira, Karl Rabold, no ano de 1980, com o intuito de substituir a mão de obra, que já, naquela época, era crítica.
(KETELAAR-DE LAUWERE et al, 1996, apud NETO; LOPES, 2014, p. 102).
Nesse contexto, as tecnologias de automação e controle surgem para complementar à mão de obra. Através da Tabela 1 é possível analisar as vantagens que cada tecnologia proporciona ao pecuarista.
Automação Vantagens da utilização
Identificação eletrônica de animais/ Colares eletrônicos
Melhora o gerenciamento produtivo e o monitoramento dos dados da propriedade. Pedômetro/ Sensor de pressão Melhora a eficiência reprodutiva da
propriedade.
Balança eletrônica Facilita o controle dos dados referentes ao peso do animal.
Ordenhas Melhora a qualidade do leite e diminui custos de mão-de-obra.
Extrator automático de leite Melhora o manejo da ordenha, acabando com a sobre ordenha.
Finalizador automático de leite Possibilita uma ordenha completa do leite evitando-se o leite residual.
Medidor eletrônico de leite Facilita o controle das lactações, pois faz a pesagem diária da produção de leite das vacas
e a transmite, automaticamente, ao sistema informatizado.
Ordenha robótica Padronização dos processos.
Pulsador eletrônico de leite Melhora o fluxo de leite durante a ordenha e faz uma massagem mais eficiente nos úberes
das vacas.
Resfriador de leite Melhora a qualidade do leite.
Limpeza automática Diminui o custo de mão-de-obra e padroniza a limpeza.
Ambiente/ Zona de conforto Melhora o desempenho produtivo e reprodutivo do rebanho.
Fonte: adaptado de Botega et al (2008, p.638). Tabela 1-Beneficios da automação na pecuária leiteira.
Segundo Hillerton e Winter (1992 apud NETO e LOPES, 2014, p.104): “o sistema de ordenha robotizado pode aumentar a produção leiteira em até 15% uma vez que as vacas são ordenhadas mais frequentemente, ou seja, mais que duas vezes por dia, como é o convencional”.
Conforme relata Bernier-Dodier et al (2010 apud NETO; LOPES, 2014, p.104), o aumento na quantidade de ordenhas traz vantagens como o aumento da produção de leite, redução dos custos fixos, melhor saúde do úbere por possuir menos contaminantes, aumento do conforto animal e observação mais visível de doenças como mastite. Entretanto, é importante destacar as desvantagens que são os aumentos do custo com alimentação, tetos mais expostos a feridas e traumas, dentre outros.
O robô de ordenha basicamente é um braço manipulável que, através de 3 graus de liberdade (X, Y, Z), conecta os copos de ordenha aos tetos da vaca pelo sistema de localização que cada máquina possui. Conforme relatado por Cattaneo et al (1996, apud NETO; LOPES, 2014, p.102-103), a velocidade de 1m/s permite que a movimentação seja mais exata ao real posicionamento. Primeiramente, ocorre uma abordagem bruta do braço robótico, com o objetivo de chegar o mais próximo possível do úbere da vaca. Logo após, ocorre à abordagem fina, que visa obter a correta localização do teto através da triangulação do sensor infravermelho. O infravermelho é utilizado por não ser influenciado por distorções causadas pela variação de cor de animal para animal. Na fase final, o robô posiciona o insuflador abaixo do teto correspondente e a conexão é efetivada.
Devido à importância dessa nova tecnologia, novas pesquisas na área são de grande relevância para aperfeiçoar ainda mais o funcionamento da ordenha robótica e tornar o maquinário mais acessível a todos, pois o preço do mesmo ainda é considerado um empecilho como relata Neto e Lopes (2014, p. 106) “[...] um robô ordenhador completo, ou seja, com alimentador automático, software de gestão, controle de qualidade do leite, limpeza de úbere, é vendido por R$400.000,00.”. A seguir um exemplo de ordenha robótica, Figura 1, encontrada no mercado.
Figura 1- Ordenha robótica.
Fonte: Delaval (2017).
1.2 JUSTIFICATIVA
O sistema de sensoriamento utilizado nas ordenhas robóticas, que serve para determinar a correta localização no plano dos tetos das vacas, na grande maioria das vezes se baseia em sensores a laser. Com o desenvolvimento da área de processamento de imagem, novas abordagens podem ser realizadas para a resolução de problemas que antes faziam uso de vários sensores, sendo a principal vantagem à redução da quantidade de sensores e dispositivos utilizados.
Conforme relatado por Akhloufi (2014, p.3), o uso de sensores apresenta certas desvantagens como pode se verificar na Figura 2 (a), onde houve a projeção do laser para fora da região de interesse e por consequência ocasionando a falha de conexão do insuflador, como pode ser visto na Figura 2 (b).
(a) (b) Fonte: Akhloufi (2014, p. 3).
Também segundo Akhloufi (2014, p.3), é importante destacar algumas situações onde o sensor a laser é falho. Algumas vacas podem apresentar certas oclusões aos demais tetos, ocasionando o erro de sensoriamento conforme verificado na Figura 3.
Fonte: Akhloufi (2014, p. 3).
Para a elaboração deste trabalho, foi considerado um estudo para o desenvolvimento de uma técnica alternativa para a resolução da mesma tarefa acima citada, com técnicas de processamento de imagem, sendo a principal vantagem desse sistema o uso de somente uma câmera e um algoritmo, que pode ser inserido a um microprocessador. Uma diferente abordagem pode resultar na economia de materiais utilizados na construção do equipamento, considerando que um dos principais obstáculos de se utilizar a ordenha robótica no Brasil é o seu alto valor de mercado. Além disso, a utilização do sistema de processamento de imagem possibilita facilidades ao realizar alterações no funcionamento em comparação ao hardware.
1.3 OBJETIVOS
1.3.1 Objetivo Geral
Este trabalho tem como objetivo elaborar um algoritmo de processamento de imagem em linguagem C capaz de identificar o posicionamento correto dos tetos das vacas em ordenhas robóticas.
1.3.2 Objetivos Específicos
Revisar a bibliografia sobre processamento de imagem;
Estudar os métodos de segmentação de imagem;
Aplicar os métodos de determinação das coordenadas;
Testar o algoritmo em imagens de teste;
Analisar os resultados obtidos.1.4 ESTRUTURA DO TRABALHO
A estrutura de desenvolvimento deste trabalho busca expor de forma clara e objetiva as etapas de revisão dos principais conceitos abordados, pesquisa em campo para obtenção das imagens, construção do algoritmo com seus fluxogramas de funcionamento, discussão dos resultados e, por fim, conclusão. O presente trabalho está dividido em 6 capítulos, incluindo a Introdução.
No segundo capítulo é realizada uma revisão bibliográfica de conceitos presentes tanto na área de processamento de imagem como na área de ordenha robótica, e que serão aplicados no desenvolvimento do presente trabalho.
No terceiro capítulo é realizada uma revisão dos principais trabalhos relacionados na área, assim como uma análise das metodologias utilizadas para a resolução de problemas similares.
No quarto capítulo será apresentada a metodologia proposta para alcançar o objetivo. Serão expostas as ferramentas para obter a aquisição e digitalização da imagem, assim como o fluxograma de processos que o algoritmo deverá seguir. Também será tratada da técnica de conversão para níveis de cinza, detecção de bordas pelo gradiente Prewitt, delimitação da região de interesse, Transformada de Hough, além de outras metodologias matemáticas para realizar a filtragem de pixels próximos à ROI (region of interest).
No quinto capítulo será apresentado os resultados obtidos com o algoritmo, assim como a análise de desempenho nas imagens utilizadas como base.
No sexto capítulo serão expostas as conclusões obtidas e as sugestões para possíveis melhorias futuras.
2 REFERENCIAL TEÓRICO
2.1 ORDENHA ROBÓTICA
Segundo Paiva (2015, p.42), a ordenha robótica é composta basicamente por três fases de processos: pré-ordenha; ordenha e pós-ordenha. O processo de pré-ordenha consiste na correta localização dos tetos da vaca contida no box de ordenha, higienização, estimulação e examinação dos primeiros jatos de leite para analisar se há alguma anormalidade no leite. Na fase de ordenha, o fluxo de leite é monitorado e o mesmo é inserido nos dados de controle de produção do animal identificado. E por fim, na fase de pós-ordenha ocorre a retirada automática dos insufladores e posterior higienização para liberar o animal.
Conforme Koning (2011 apud PAIVA et al, 2015, p. 43), ao projetar a topologia de instalação da ordenha, deve-se levar em consideração fatores como conforto animal, frequência de ordenha, períodos de espera, etc.
Basicamente existem três tipos de topologia: fluxo livre, fluxo forçado com alimentação primeiro e fluxo forçado com ordenha primeiro. Fluxo livre: acessam o robô quando possuem necessidade, assim como podem acessar livremente à área de descanso e alimentação. Esta topologia resulta em menores taxas de ordenha, porém proporciona maior conforto ao animal, conforme se verifica na Figura 4 (a); Fluxo forçado com alimentação primeiro: as vacas devem passar obrigatoriamente pelo robô de ordenha para obterem acesso à área de descanso, porém possuem livre acesso à área de alimentação. Esta topologia resulta em ordenhas regulares e longos intervalos entre ordenhas, como visto na Figura 4 (b); Fluxo forçado com ordenha primeiro: as vacas devem obrigatoriamente passar pelo robô para terem acesso à alimentação e retornarem à área de descanso. Neste modelo podem-se formar longas filas, aumentando os problemas com o casco do animal, além de uma maior frequência de ordenha, conforme Figura 4 (c). Para todos os casos, a entrada ao robô é motivada pelo concentrado adocicado oferecido à vaca durante o processo de ordenha.
(a) (b) (c) Fonte: Paiva et al (2015, p. 43-44).
Um dos problemas enfrentados é o loop dos animais para obterem novamente o concentrado adocicado. Neste sentido, e também para obter a devida identificação do rendimento de cada vaca, torna-se necessário a identificação de cada animal utilizando sensores. O sensor mais utilizado atualmente é o de identificação por rádio frequência (RFID), instalado na orelha do animal.
Conforme descrito por Costa et al (2014 apud MOROZ; STEVAN JR, 2016, p. 2 ),
Trata-se de uma etiqueta composta por um microchip e uma antena. Um microchip armazena as informações do objeto, identificando-o com um único serial. Uma antena transmite as informações do microchip para um leitor que, por sua vez, transforma os dados em informações para computadores.
Assim, é possível condicionar a entrada do animal a intervalos de períodos entre as ordenhas, além de realizar a identificação da produção de leite de cada animal, sendo possível identificar possíveis anomalias no mesmo.
Figura 4-Topologias de instalação: Fluxo livre (a); Fluxo forçado com alimentação primeiro (b); Fluxo forçado com ordenha primeiro (c).
2.2 PROCESSAMENTO DE IMAGEM E APLICAÇÕES
A área de processamento de imagem é algo que vem sendo alvo de vários estudos atualmente, principalmente devido ás aplicações que estão presentes no cotidiano, como por exemplo, compressões de imagem, filtros para fotografias e melhores funcionalidades nas câmeras de smartphones. Porém, seu estudo começou no século passado, devido à necessidade de transmitir imagens a longas distâncias em melhor qualidade visual.
O interesse em métodos de processamento de imagens digitais decorre de duas áreas principais de aplicação: melhoria de informação visual para interpretação humana e o processamento de dados de cenas para percepção automática através de máquinas. Uma das principais aplicações de técnicas de processamento de imagens da primeira categoria foi o melhoramento de imagens digitalizadas para jornais, enviadas por meio de cabo submarino de Londres para New York. A introdução do sistema Bartlane de transmissão de imagens via cabo no início dos anos 20 reduziu o tempo requerido de mais de uma semana para menos de três horas no transporte de imagens através do oceano Atlântico. Um equipamento especializado de impressão codificava as imagens para transmissão a cabo, as quais eram então reconstruídas no terminal receptor.
(GONZALEZ; WOODS, 2000, p.1).
Segundo Gonzalez e Woods (2000, p.1), os primeiros sistemas de transmissão de informação visual via cabo possuam a capacidade de codificar imagens em cinco níveis de brilhos, tendo sido aumentada para quinze níveis em 1929.
O grande advento que contribuiu para o desenvolvimento da área de processamento de imagem foi o surgimento do programa espacial aliado ao desenvolvimento de computadores digitais, que despertaram o interesse de pesquisadores ao potencial que a área oferecia.
O emprego de técnicas de computação para o melhoramento de imagens produzidas por uma sonda espacial iniciou-se no Jet Propulsion Laboratory (Passadena, California) em 1964, quando imagens da Lua, transmitidas pelo Ranger 7, foram processadas por um computador para corrigir vários tipos de distorção de imagem inerentes à câmera de televisão a bordo. Essas técnicas serviram de base para métodos melhorados no realce e restauração de imagens das missões Surveyor para a Lua, a série Mariner de missões para Marte, os vôos tripulados da Apolo para a Lua e outros.
(GONZALEZ; WOODS, 2000, p.1).
Entre as principais aplicações práticas da área de processamento para melhoria da interpretação visual humana, encontram-se as melhorias decorrentes de imagens de raios-X, análise de imagens aéreas, restauração de fotografias e artefatos raros, realce de imagens em microscópios eletrônicos, além de aplicações industriais e de sensoriamento.
Problemas típicos em percepção por máquina, que rotineiramente usam técnicas de processamento de imagens, são o reconhecimento automático de caracteres, visão computacional industrial para a montagem e inspeção de produtos, reconhecimento militar, processamento automático de impressões digitais, análise de resultados de raios X e amostras de sangue em tela, processamento de imagens aéreas e de satélites para previsão do tempo e monitoração do plantio.
(GONZALEZ; WOODS, 2000, p.4).
A segunda área de interesse de processamento de imagens consiste na percepção por máquina. Consiste na extração de informações relevantes de uma imagem, como por exemplo, histogramas, Transformada de Fourier, medidas de distância, coeficientes, etc.
2.3 AQUISIÇÃO E DIGITALIZAÇÃO DE IMAGENS
Uma imagem digital nada mais é do que uma matriz, onde em cada posição da matriz está contido apenas um pixel com informações relevantes para a formação da imagem como um todo, como por exemplo, seu nível de cinza em imagens binarizadas.
Uma imagem digital pode ser considerada como sendo uma matriz cujos índices de linhas e de colunas identificam um ponto na imagem, e o correspondente valor do elemento da matriz identifica o nível de cinza naquele ponto. Os elementos dessa matriz digital são chamados de elementos da imagem, elementos da figura, “pixels” ou “pels”, estes dois últimos, abreviações de “pictures elements”(elementos de figura).
(GONZALEZ; WOODS, 2000, p.4-5).
Na Figura 5 é possível visualizar a representação de uma imagem digital, assim como a coordenada de um pixel presente na mesma.
Figura 5- Representação de imagem digital.
Dois elementos são necessários para a aquisição de imagens digitais. O primeiro é um dispositivo físico que seja sensível a uma banda do espectro de energia eletromagnética (como raios X, ultravioleta, visível, ou banda infravermelha) e que produza um sinal elétrico de saída proporcional a um nível de energia percebida. O segundo, chamado digitalizador, é um dispositivo para a conversão da saída elétrica de um dispositivo de sensoriamento físico para a forma digital.
(GONZALEZ; WOODS, 2000, p.7).
Segundo Marques e Vieira (1999, p.21), as tecnologias mais utilizadas para realizar o processo de digitalização e aquisição são os dispositivos de carga acoplada (“charge-coupled devices, CCDs”) e os semicondutores de óxido complementar (“complementary metal-oxyde semiconductor, CMOS”). Os CCDs são compostos por uma matriz de capacitores, onde cada capacitor pode transferir sua carga elétrica para o capacitor vizinho. Já a tecnologia CMOS é assim definida por utilizar os dois tipos de transistores MOSFET, o MOSFET canal N e o MOSFET canal P, sendo um complementar ao outro. A tecnologia CMOS possui entre suas vantagens o baixo consumo de energia e alta densidade de integração (espaço menor da superfície do sensor), razão pelo qual são empregados em celulares. Já a tecnologia dos CCDs é utilizada em câmeras profissionais e dispositivos que requerem uma melhor qualidade de digitalização (imagem mais próxima do real). A mesma permite uma maior profundidade de alcance, menor ruído e uma melhor precisão de cor.
2.4 LIMIARIZAÇÃO
Segundo Marques e Vieira (1999, p.71-72), a limiarização consiste na bipartição dos pixels cujo tom de cinza é maior ou igual a certo limiar T em brancos e os demais em pretos.
O processo de limiarização pode ser descrito matematicamente, como relatado por Marques e Vieira (1999, p.73), “a operação de limiarização pode ser descrita como uma técnica de processamento de imagens na qual uma imagem de entrada f(x,y) de T níveis de cinza produz à saída uma imagem g(x,y), chamada de imagem limiarizada, cujo número de níveis de cinza é menor que T”. A Equação (1) relata como é realizada a limiarização de uma imagem (MARQUES; VIEIRA, 1999, p. 73):
( ) ( ) ( ) ( )
2.5 HISTOGRAMA
Segundo Marques e Vieira (1999, p.55), o histograma de uma imagem é um conjunto de números que indicam um percentual de pixels naquela imagem que apresentam um determinado nível de cinza. Através da visualização do histograma de uma imagem é possível obter uma indicação de sua qualidade quanto ao nível de contraste e quanto ao seu brilho médio (se a imagem é predominantemente clara ou escura), e desta forma torna-se possível analisar parâmetros de limiar para realizarmos a equalização dos níveis de cinza, ou seja, diminuir o contraste existente na imagem. A representação dos histogramas geralmente é através de gráficos de barras, como pode ser visto na Figura 6.
Fonte: Elaborado pelo autor.
2.6 MORFOLOGIA MATEMÁTICA
Segundo Marques e Vieira (1999, p.139), “o principio básico da morfologia matemática consiste em extrair as informações relativas à geometria e à topologia de um conjunto desconhecido (uma imagem), pela transformação através de outro conjunto completamente definido, chamado elemento estruturante”. Através deste elemento estruturante é possível identificar formatos presentes em uma imagem, além de realizar o pré e pós processamento pelo uso de filtragens e detecção de contornos.
Entre as diversas ferramentas que a morfologia matemática oferece destaca-se a dilatação, erosão, anti-dilatação e anti-erosão, sendo estas as funções mais utilizadas no processamento de imagens.
2.7 TRANSFORMADA DE HOUGH
Conforme Hadad e Kwatra (apud DUARTE, 2003 p.53), a Transformada de Hough é uma técnica matemática criada por Paul Hough em 1962, capaz de realizar a detecção de formas geométricas por um processo de votação. Os pontos binarizados de uma imagem que mais receberem votos serão escolhidos como possíveis “candidatos” para serem o ponto central da forma geométrica em questão.
Embora a Transformada de Hough seja muito aplicada em linhas retas, a mesma é aplicável a qualquer outra função. Por exemplo, os pontos sobre uma circunferência podem ser representados pela Equação 2 (GONZALEZ; WOODS, 2000,p.312):
( ) ( ) (2)
Onde:
x e y = Coordenadas cartesianas.
Parâmetros tridimensionais.
Segundo Pistori H., Pistori J. e Costa (2005, p.2), cada célula da matriz de pixels recebe, inicialmente, o valor zero, e para cada ponto (x, y) da imagem incrementa-se no espaço de Hough uma projeção de circunferências, de raio r, que passam por (x, y). Ao final, as células contendo os valores mais altos indicarão os centros “mais prováveis” de serem uma circunferência.
Na Figura 7 é possível observar as fases do processo de votação das circunferências em imagens digitais:
Fonte: Pistori H., Pistori J. e Costa (2005, p.3). Figura 7-Processo de votação de Hough em circunferências.
2.8 DETECTAÇÃO DE BORDAS
Segundo Gonzalez e Woods (2000, p. 297), uma borda é o limite entre duas regiões com propriedades distintas de nível de cinza, sendo que a transição entre duas regiões pode ser determinada com base apenas na descontinuidade dos níveis de cinza.
A técnica utilizada para detectar bordas consiste basicamente em derivadas. A magnitude da primeira derivada é utilizada para detectar a presença de uma borda, enquanto que o sinal da segunda derivada é usado para determinar se o pixel da borda localiza-se no lado escuro ou claro da mesma, como pode ser visto na Figura 8.
Figura 8-Detecção de bordas por derivação.
Fonte: Gonzalez e Woods (2000, p.298).
2.9 GRADIENTE PREWITT
Conforme Marques e Vieira (1999, p.38), o gradiente Prewitt funciona através do uso de máscaras horizontais e verticais, que são convolucionadas com a imagem original. Ao utilizar este gradiente, é possível criar uma imagem em que valores elevados do nível de cinza
indicam a presença de uma borda. A diferença entre a terceira e a primeira linha da região 3x3 da Figura 9, aproxima a derivada na direção x, e a diferença entre a terceira e a primeira coluna aproxima a derivada na direção y.
Fonte: Gonzalez e Woods (2000, p.578).
2.10 MATHWORKS MATLAB
O software MATLAB desenvolvido pela MathWorks é essencial para o desenvolvimento de algoritmos de alto desempenho. Atualmente o MATLAB possui uma biblioteca abrangente de ferramentas que podem ser incorporadas em áreas específicas de desenvolvimento, como por exemplo, a Toolbox Computer Vision System e a Image Processing Toolbox, muito utilizadas na área de visão computacional e processamento de imagem. (MATLAB, 2018).
Os produtos desenvolvidos pela MathWorks são utilizados em setores como automação automotiva, aeroespacial, eletrônica, telecomunicações, máquinas industriais e dispositivos médicos, como ferramentas básicas de pesquisa e desenvolvimento. Eles também são usados para modelagem e simulação em campos cada vez mais técnicos, como serviços financeiros e biotecnologia. As soluções da empresa são usadas em mais de 5.000 faculdades e universidades em todo o mundo para ensino e pesquisa em uma ampla gama de disciplinas técnicas. (MATLAB, 2018).
3 TRABALHOS RELACIONADOS
Neste capítulo são definidos os principais trabalhos desenvolvidos na área de processamento de imagens, assim como diferentes abordagens para a resolução de problemas na área.
Akhloufi (2013), em seu trabalho que propõe uma alternativa ao sistema de posicionamento dos tetos das vacas em robôs de ordenha utilizando o método TOF (Time of Flying) e câmeras RGBD, é realizado um comparativo utilizando diferentes câmeras e técnicas de visão computacional para realizar a detecção dos tetos. Foram desenvolvidos testes para três situações: a) tetos em movimento; b) tetos estáticos; c) tetos em diferentes condições de luz. Para isso, foi construído um protótipo para simular o ubre da vaca e um braço robótico que serviu para realizar o acoplamento da câmera. Foram utilizados métodos de binarização de imagem, redução de ruídos na imagem e segmentação das áreas de interesse para análise de cada teto individualmente. A aplicação destes métodos apresentaram boa eficiência e resultados possíveis de serem replicados e melhorados na prática.
Siqueira (2014) utilizou métodos de processamento de imagens para realizar a construção de um framework para reconhecimento da maturação dos frutos. Seu trabalho em termos gerais consiste em realizar a classificação da maturação dos morangos, visto que anteriormente o procedimento era realizado manualmente. Para a realização do estudo foi utilizado a IDE Eclipse, a biblioteca OPENCV para realizar a identificação dos morangos e o software JavaNNS para realizar o treinamento e a validação da rede neural. A metodologia para classificar consiste em converter a imagem em escala de cinza, aplicar filtro gaussiano, convertê-la em dois tons (binarização) e aplicar uma máscara (fundo preto) na imagem. Logo após, é realizado o treinamento da rede neural, utilizando 48 padrões (imagens utilizadas), 25 entradas (valores de vermelho de 25 pixels) e 1 saída para definir o estado de maturação do morango. Os resultados apresentaram a validação da rede neural com acertos na classificação em 80% das vezes.
Em Gallon (2013), seu trabalho propõe a criação de um algoritmo de visão computacional para uma empresa do ramo de pedras naturais, com o intuito de classificar e separar as mesmas em tempo real através de uma webcam, processo que anteriormente era realizado manualmente. Utilizando técnicas de visão computacional e processamento de imagem, foi possível realizar a classificação através da identificação de padrões, juntamente
com a biblioteca OPENCV. Posteriormente, foi realizada a validação do sistema que apresentou porcentagem superior ao mínimo de 70% estipulado.
Segundo Silva (2009), que realizou um comparativo entre os métodos clássicos de binarização de imagens encontrados na literatura e o método de Neves-Mello-Silva, tendo também como objetivo principal realizar a binarização de cheques bancários e realizar a escolha do melhor método avaliando os seguintes critérios: eficiência do algoritmo (tempo para realizar a binarização) e eficácia (o quanto o resultado obtido atingiu o objetivo pretendido). Entre métodos clássicos de binarização estão os de Niblack, Sauvola, White, Johannsen, Bernsen, Rosenfeld e Wellner.
O método de Niblack consiste em variar o limiar por toda a imagem, de acordo com a média local e o desvio padrão calculados na vizinhança de cada pixel. Já o método de Sauvola busca melhorar os resultados de binarizações obtidas em más condições de iluminação e que possuem muito ruído, consistindo em introduzir um novo parâmetro para calcular o limiar: a faixa dinâmica do desvio padrão. Na sequência, o método de White consiste na comparação do tom de cinza de cada pixel da imagem com a média dos valores da vizinhança, sendo que, se o pixel for mais escuro que a média, ele é classificado como caractere, caso contrário, ele é classificado como papel, ou seja, fundo da imagem. O método de Johannsen consiste na binarização por entropia, ou seja, é realizada a divisão da imagem em dois níveis de entropia, um para os pixels pretos e outra para os pixels brancos, minimizando a interdependência entre seus níveis de cinza. No método de Bernsen o limiar é escolhido como um valor intermediário entre o mínimo e o máximo tom de cinza da vizinhança do pixel. O método de binarização desenvolvido por Rosenfeld é baseado na análise do envoltório do histograma da imagem, onde o limiar é o ponto mais profundo entre o histograma e seu envoltório. O método de Wellner, chamado de média móvel, é uma média nos níveis de cinza dos últimos pixels vistos, produzindo um limiar por pixel muito rápido.
Logo após, é realizado o comparativo direto de cada método presente na bibliografia com o método Neves-Mello-Silva, que foi desenvolvido pelos autores, demonstrando para esta aplicação ser o melhor método em comparação com os presentes na bibliografia.
O trabalho de Lima (2009) consiste na criação de um algoritmo de processamento de imagem para identificação de placas de automóveis utilizando o software MATLAB e uma base de imagens que serviram como testes de massa e calibração. O fluxograma para identificação dos caracteres das placas foi:
a) eliminação do ruído; b) equalização do contraste;
c) escolha do método de detectação (linhas ou bordas); d) segmentação;
e) esqueletonização.
Os resultados obtidos foram de 100% de sucesso, entretanto imagens que possuam um grande número de características requerem tratamento prévio da imagem.
Segundo Manzi (2007), é proposto uma aplicação de visão computacional capaz de captar em tempo real a variação do diâmetro da pupila do olho humano ao longo do tempo em resposta à variação da luminosidade. A análise dos resultados obtidos pode identificar padrões e anomalias da reação pupilar. Para o desenvolvimento do trabalho foi utilizado a biblioteca de processamento de imagem OPENCV e o ambiente de desenvolvimento DEV-C++.
O trabalho desenvolvido por Matos (2007) consiste na criação de um sistema de visão artificial projetado para ser utilizado em robôs móveis controlados por realimentação visual. Para o desenvolvimento do trabalho foi utilizado uma câmera fixa que realiza a captura das imagens, sendo posteriormente realizado o processamento das medidas retiradas no plano da imagem. O sistema proposto é capaz de efetuar a detecção automática por cor do robô e dos obstáculos presentes na área de trabalho em tempo real. Foi levado em conta o modelo de cores, o método de segmentação, a etapa de pós-processamento e o custo computacional. O resultado apresentado pelo autor é um sistema robusto e ao mesmo tempo computacionalmente muito leve.
Em Araujo (2008), é proposto um sistema de visão computacional capaz de reconhecer múltiplos robôs em uma imagem baseado em características de cor e forma. Para isso são utilizados marcos visuais circulares nos robôs. Cada marco possui duas etiquetas coloridas, uma identifica o “time” e a outra identifica o robô. Os robôs são reconhecidos pelos marcos circulares através da Transformada de Hough. A individualização é feita através de um processamento baseado em cores usando o modelo HSV e operações lógicas. O algoritmo foi implementado através da linguagem C++ e com o auxilio da biblioteca OPENCV. O sistema proposto é apresentado através de uma comparação qualitativa entre ele e outros sistemas de visão computacional propostos por alguns times de futebol de robôs.
A partir dos trabalhos destes autores pode-se deduzir que:
a grande maioria utiliza métodos da literatura de processamento de imagem;
a biblioteca OPENCV é a mais utilizada para o processamento de imagem devido à facilidade que as funções da mesma proporcionam;
poucos são os trabalhos que apresentam alternativas para determinar posicionamentos e distâncias de objetos no plano através de processamento de imagem.
4 METODOLOGIA
4.1 AQUISIÇÃO DA IMAGEM E SOFTWARES
Para o desenvolvimento do presente trabalho será utilizado o software MATLAB versão R2017, devido à ampla gama de aplicações que o software proporciona e ao fato do mesmo estar amplamente difundido no meio acadêmico. Além disso, será utilizada a biblioteca Image Processing Toolbox que possui funções específicas para a área de processamento de imagem.
As imagens que serão utilizadas foram obtidas através de análise em campo. Procurou-se obter imagens com parâmetros diversificados, ressaltando as variações de luminosidade, formas, contrastes e cores. As imagens de base para o desenvolvimento do trabalho podem ser visualizadas nas Figuras 10, 11, 12 e 13.
A Figura 10 possui como característica o fato ser adquirido com uma boa iluminação, destacando os tetos do animal e facilitando o processo de detecção, que na prática seria a imagem ideal para o algoritmo processar.
Fonte: Elaborado pelo autor.
A Figura 11 possui como característica ser uma imagem muito escura e com baixa qualidade de iluminação, além de a mesma estar projetada indevidamente, podendo ocasionar problemas na segmentação das bordas.
Fonte: Elaborada pelo autor.
A Figura 12 possui como característica o fato de possuir quase que a totalidade do úbere na tonalidade clara, evidenciando neste caso, o contraste entre o fundo (background) e a ROI (region of interest) em análise.
Fonte: Elaborado pelo autor. Figura 11-Imagem utilizada como base no trabalho.
A Figura 13 possui como característica o alto contraste entre os tetos e o fundo da imagem, evidenciando o fato de um deles possuir coloração distinta dos demais.
Fonte: Elaborado pelo autor.
4.2 CONVERSÃO PARA NÍVEL DE CINZA
A primeira etapa contemplada neste trabalho consiste em converter a imagem para a escala de cinza, sendo esta etapa necessária para detectar as bordas da imagem no processo seguinte. Segundo Marques e Vieira (1999, p.55), o histograma consiste no conjunto de números que indicam o percentual de pixels naquela imagem que apresentam um determinado nível de cinza. Através do histograma é possível determinar parâmetros existentes entre pixels, como desvio padrão, variância e média. Neste trabalho não serão abordadas questões relacionadas a estes parâmetros, pois os testes de equalização e distribuição dos níveis de cinza não apresentaram melhorias, pelo contrário, prejudicaram o desempenho do algoritmo, como pode ser visto na Figura 14, onde o processamento da Figura 12 sem a equalização do histograma obteve os resultados pretendidos em sua segunda tentativa.
Fonte: Elaborado pelo autor.
Ao contrário deste, o processamento da Figura 12 com equalização (lado direito da Figura 14) apresentou resultados falhos, como pode ser visto no teto esquerdo superior, que apresenta um leve desvio na detecção, porém suficiente para ocasionar a falha de conexão do insuflador. Nas Figuras 15, 16, 17 e 18, é possível visualizar as imagens de base convertidas para escala de cinza.
Fonte: Elaborado pelo autor.
Figura 14-Comparativo imagem sem ajuste de histograma (lado esquerdo) e com ajuste de histograma (lado direito).
Fonte: Elaborado pelo autor.
Fonte: Elaborado pelo autor.
Fonte: Elaborado pelo autor.
Figura 16-Imagem de base convertida para escala de cinza.
Figura 17-Imagem de base convertida para escala de cinza.
4.3 SEGMENTAÇÃO DAS BORDAS PELO GRADIENTE PREWITT
Através da função nativa da biblioteca Image Processing Toolbox chamada de edge é possível escolher tanto os índices de limiar quanto o tipo de gradiente utilizado, como por exemplo, Prewitt, Sobel, Roberts, entre outros. Analisando o trabalho desenvolvido por Souza e Correia (2007, p.11), foi possível constatar o desempenho de diferentes gradientes na qualidade de segmentação das bordas de uma imagem.
Conforme o trabalho de Souza e Correia (2007, p.11), foi possível constatar que os melhores desempenhos foram obtidos pelos gradientes Prewitt e Sobel, não apresentando diferenças significativas entre si, enquanto que o gradiente de Roberts apresentou a menor eficiência, como pode ser constatado também através da Figura 19 (b). Para o desenvolvimento do presente trabalho será utilizado o gradiente de Prewitt.
(a) (b) (c) (d) Fonte: Souza e Correia (2007, p.10).
Além disso, analisando o nível de segmentação que cada índice fornece, foi decidido utilizar o índice de limiar inicial de 0,05, sendo este reduzido a cada ciclo em que o algoritmo falhar na detecção. Um índice alto de limiar pode acarretar, a depender da imagem, insuficiência de detalhes na região de interesse, enquanto que um baixo nível de limiar pode ocasionar um nível alto de detalhamento, provocando excesso de informações para filtrar.
No Quadro 1 é possível visualizar o resultado da segmentação das bordas pelo gradiente de Prewitt, assim como o comparativo entre a imagem original e a imagem alterada pelo gradiente.
IMAGEM ORIGINAL IMAGEM ALTERADA (a) (b) (c) (d)
Fonte: Elaborado pelo autor.
As imagens (a) e (b) do Quadro 1 utilizaram como índice de gradiente 0,05, enquanto que as imagens (c) e (d) do Quadro 1 utilizaram como índice de gradiente 0,04. Estes índices serão detalhados mais adiante.
4.4 SEGMENTAÇÃO DA REGIÃO DE INTERESSE
Conforme será exposto adiante, a Transformada de Hough realiza uma varredura na matriz de pixels, sendo realizada a projeção das circunferências somente nos pixels brancos. Algumas imagens podem sofrer interferências de pixels dispersos que não fazem parte da ROI (region of interest), que neste caso seria o teto do animal.
Dessa forma, é necessário filtrar as informações relevantes das imagens para não ocorrer erros, como ocorre com a Figura 20, onde pixels referentes à pelagem escura do animal estão dispersos no centro da imagem, interferindo no processo de votação da Transformada de Hough.
Fonte: Elaborado pelo autor.
A etapa 5 do fluxograma de processos contempla esta tarefa, onde será utilizado a função „bwareafilt‟ proveniente da biblioteca Image Processing Toolbox para filtrar esses pixels. Esta função classifica o aglomerado de pixels conectados na vizinhança como área e os classifica por tamanho. Neste caso, será deixado passar no filtro da imagem somente as 25 maiores áreas. Este número foi determinado analisando o desempenho de segmentação das bordas e levando em consideração não deixar de fora nenhuma informação importante da região de interesse. No Quadro 2 é possível visualizar a filtragem que ocorreu nas imagens,
sendo possível ainda visualizar os contornos dos tetos, ou seja, não ocorrendo prejuízos significativos na segmentação.
IMAGEM SEM FILTRO DE ROI IMAGEM COM FILTRO DE ROI
(a)
(b)
(c)
(d)
Fonte: Elaborado pelo autor.
4.5 APLICAÇÃO DA TRANSFORMADA DE HOUGH
A Transformada de Hough é um método matemático genérico, variando conforme a morfologia do objeto a ser detectado. Para o caso da detecção de círculos, o método consiste em descobrir na matriz de pixels qual é o ponto que possui mais votos para ser escolhido o centro do círculo.
Primeiramente, é realizada uma varredura na imagem, condicionando a execução da Transformada somente se o pixel for igual a 1 (pixel branco). Se a condição for satisfeita, serão projetados círculos com o raio variando de a , sendo o centro o ponto que está sendo analisado. Todos os pontos que estão sendo interceptados pelo perímetro do círculo projetado receberão um voto. Ao final da varredura da matriz, será verificado qual é o pixel que recebeu mais votos, assim como sua respectiva posição e seu raio correspondente.
Os valores de e foram escolhidos a partir da análise do raio dos tetos, conforme pode ser visto na Figura 21.
Fonte: Elaborado pelo autor.
Através da mensuração do raio de pixels que era composto o teto do animal, verificou-se que os valores de raio variavam de 40 a 80 pixels em todas as imagens utilizadas como base neste trabalho, sendo, portanto, utilizado como o valor de 40 e o valor de 80. Destaca-se que estes valores podem variar a depender da distância em que a
câmera de aquisição está posicionada. Portanto, se a câmera capturar imagens muito próximas, o raio dos tetos será maior, e vice-versa.
Esta distância câmera-tetos pode ser um parâmetro de entrada do usuário que configurar a instalação da câmera/software, sendo necessário neste caso digitar a distância aproximada da câmera em relação ao úbere da vaca. Admitindo que a distância das imagens utilizadas como base neste trabalho é de aproximadamente 30 cm, a Equação (3) pode ser descrita da seguinte forma:
( ) ( ) (3)
Onde a variável “distância” é fornecida pelo usuário em centímetros e dessa forma, são obtidas as variáveis de rinicial e rmax. O algoritmo deve ser capaz de realizar o arredondamento do resultado para um resultado inteiro e positivo, pois as variáveis rinicial e rmax não podem ser fracionárias ou negativas, devido ao fato de trabalhar-se com a unidade de medida pixels, não podendo existir resultados de, por exemplo, 1,5 pixels. Essa interface de entrada do usuário, assim como a inserção da Equação (3) não serão abordadas neste trabalho, sendo somente uma sugestão de aprimoramento para o desenvolvimento de trabalhos futuros.
4.6 FILTRAGEM DE REGIÕES PRÓXIMAS AO PONTO VOTADO
Um dos problemas enfrentados no trabalho foi a influência de pixels presentes próximos à circunferência da Transformada de Hough, tanto internamente como externamente, ocasionando a dupla detecção do mesmo teto. Isto muitas vezes ocorreu devido a bordas bem definidas, porém fora da nossa região de interesse, como é possível observar na Figura 22.
Devido a isso, tornou-se necessário eliminar os pixels compreendidos dentro da área circular detectada, pois os mesmos não devem interferir no processo de análise dos demais tetos. Para o processamento da Figura 11, como exceção, foi necessário eliminar uma área compreendida ao dobro do raio da circunferência, ou seja, foi necessário eliminar pixels presentes no exterior da circunferência, obtendo assim a correta localização dos tetos para esta imagem.
Fonte: Elaborado pelo autor.
4.7 FLUXOGRAMA DE PROCESSOS
O fluxograma de funcionamento do algoritmo é de suma importância para expor de forma descomplicada e clara a sequência operacional do mesmo. A Figura 23 detalha os procedimentos que serão realizados para obter-se sucesso e alcançar os objetivos propostos.
O processo número 1 é acionado quando a vaca está devidamente posicionada no box de ordenha e autorizada pelo sistema de controle de ordenha. A autorização da ordenha é obtida depois de ser realizada a identificação do animal pelo RFID (Radio-Frequency
IDentification), sendo posteriormente verificado se o mesmo não foi ordenhado antes do
tempo de espera estipulado. A tecnologia RFID basicamente consiste em um transponder que responde aos sinais de rádio enviados por uma base transmissora, podendo o mesmo ser posto na orelha do animal ou qualquer parte do corpo, como forma de identificação do mesmo.
Na etapa 2 será obtido um quadro da câmera de aquisição acoplada no braço robótico. Neste trabalho as imagens foram obtidas pela coleta em campo, como pode ser visto nas Figuras 10, 11, 12 e 13, sendo, portanto, sobreposta esta etapa do algoritmo.
No processo 3 é realizada a conversão das imagens adquiridas da etapa 2 para níveis de cinza. Esta conversão é importante, pois as funções utilizadas nas segmentações posteriores necessitam que as imagens estejam neste formato.
No processo 4 é realizada a detecção das bordas da imagem utilizando o gradiente Prewitt e o índice inicial de 0,05. Este índice foi escolhido tomando como base o fato de um
índice alto de limiar poder acarretar, a depender da imagem, insuficiência de detalhes na região de interesse, enquanto que um baixo nível de limiar pode ocasionar um nível alto de detalhamento, provocando excesso de informações para filtrar.
Na etapa 5 será realizada uma filtragem através da segmentação das regiões de interesse da imagem. Esta segmentação selecionará somente as 25 maiores bordas, eliminando pixels dispersos pela imagem.
No processo 6 será aplicada a Transformada de Hough com a devida eliminação dos pixels presentes dentro da circunferência detectada.
No processo 7 será realizada a verificação se os posicionamento encontrados estão corretos. Na prática, a realimentação do processo (feedback) seria obtido através da falha ou não da conexão dos insufladores. No presente trabalho esta etapa não foi contemplada, sendo a verificação realizada visualmente.
Caso o algoritmo encontre a correta localização dos tetos, o processo será encerrado pela etapa 11, caso contrário, passa para o 8. Neste processo 8 será aumentado o nível de detalhamento do gradiente Prewitt, neste caso, será subtraído o índice em 0,01.
No processo 9 será verificado se o índice do gradiente Prewitt se encontra menor ou maior que 0,01, pois o mesmo é fator relevante no direcionamento das próximas etapas do algoritmo. Se o índice estiver maior que 0,01, o algoritmo direcionará o funcionamento para a etapa 4. Se o índice estiver menor que 0,01 o algoritmo direcionará para a etapa 10. Não será abordado o processo 9 neste trabalho, pois o mesmo necessita da realimentação (feedback) da conexão dos insufladores para funcionar automaticamente.
Na etapa 10 será restaurado o índice inicial de 0,05 do gradiente Prewitt e duplicado o raio de eliminação dos pixels do processo 6. Neste caso, os pixels da região externa à circunferência detectada pela Transformada de Hough serão eliminados.
SIM NÃO SIM NÃO
Fonte: Elaborado pelo autor.
Figura 23-Fluxograma de processos a serem executados.
1. INÍCIO
4. DETECTA AS BORDAS DA IMAGEM PELO GRADIENTE PREWITT
11. FIM
8. SUBTRAI O ÍNDICE DO GRADIENTE PREWITT EM 0,01
2. CAPTURA FRAME DA CÂMERA
3. CONVERTE IMAGEM PARA ESCALA DE CINZA
7. POSICIONAMENTO CORRESPONDE A REAL POSIÇÃO DOS TETOS?
5. DELIMITAÇÃO DA REGIÃO DE INTERESSE
6. APLICA A TRANSFORMADA DE HOUGH E ELIMINA OS PIXELS AO REDOR DO
PONTO MAIS VOTADO.
9. ÍNDICE MAIOR QUE
0,01?
10. DUPLICA O RAIO DE ELIMINAÇÃO DOS PIXELS
AO REDOR DO PONTO VOTADO E RESTAURA O
ÍNDICE INICIAL DO PREWITT.
5 DISCUSSÃO DOS RESULTADOS OBTIDOS
Nesta parte do trabalho serão apresentados os resultados do desempenho do algoritmo. Das quatro imagens utilizadas como base todas concluíram suas funções com tempos e variáveis distintas uma das outras. Será apresentado o desempenho de cada uma delas individualmente.
A Figura 10, após passar pelo algoritmo, este foi capaz de realizar a correta identificação dos tetos. O índice do gradiente Prewitt utilizado foi de 0,05 e o coeficiente de eliminação de pixels ao redor do ponto votado foi igual a 1, ou seja, foi necessário eliminar os pixels compreendidos somente dentro da circunferência. Analisando as etapas do fluxograma de funcionamento do algoritmo, e levando em consideração que os parâmetros iniciais utilizados são os mesmos que foram obtidos como resultado final nos testes da imagem, o algoritmo detectaria a correta localização dos tetos na primeira tentativa.
Na Figura 24 é possível visualizar que as circunferências detectadas correspondem ao real posicionamento dos tetos, assim como suas respectivas coordenadas x, y.
Fonte: Elaborado pelo autor.
No processamento da Figura 11, o algoritmo cumpriu sua função, porém, analisando o fluxograma de processos, seriam necessárias seis tentativas para obter-se os parâmetros que
obtiveram sucesso na correta segmentação. O índice do gradiente Prewitt foi de 0,05 e o coeficiente de eliminação de pixels ao redor do ponto votado foi igual a 2, sendo necessário eliminar uma área externa à circunferência.
O resultado do processamento pode ser visualizado na Figura 25, com a marcação correta das circunferências nos tetos e com suas respectivas coordenadas.
Fonte: Elaborado pelo autor.
A imagem de base da Figura 12, possui como índice do gradiente Prewitt 0,04 e o coeficiente de eliminação de pixels ao redor do ponto votado foi igual a 1, sendo necessário eliminar os pixels presentes na parte interna da circunferência. Os resultados podem ser vistos na Figura 26, onde se conclui que o algoritmo cumpriu sua tarefa na segunda tentativa.
Fonte: Elaborado pelo autor.
Figura 25-Resultado do processamento da imagem de base.
E por fim, o processamento da Figura 13 apresentou o índice de gradiente Prewitt em 0,04 e o coeficiente de eliminação de pixels ao redor do ponto votado foi igual a 1, sendo necessário eliminar os pixels presentes na parte interna da circunferência. O resultado pode ser visto na Figura 27, concluindo que o algoritmo cumpriu sua tarefa na segunda tentativa, assim como o processamento da Figura 12.
Fonte: Elaborado pelo autor.
5.1 ANÁLISE DO TEMPO DE PROCESSAMENTO
Através da ferramenta “Time and Run” disponíveis pelo MATLAB é possível verificar o tempo de processamento de cada imagem, assim como o tempo de execução de cada função específica utilizada no algoritmo. Entretanto, como não foi possível executar o algoritmo com os parâmetros variando automaticamente, foi realizado o somatório simples de cada tentativa de processamento com as alterações das variáveis feitas manualmente conforme o fluxograma da Figura 23.
Os testes de processamento foram realizados em um notebook marca Dell, processador Intel Core i3 1,7GHz, memória RAM de 4GB. Os resultados dos tempos de processamento podem ser vistos no Quadro 3.
Quadro 3-Tempo de processamento por imagem e número de tentativas.
Figura 10 Figura 11 Figura 12 Figura 13
Tempo (s) 43 366 81 60
Número de
Tentativas 1 6 2 2
Fonte: Elaborado pelo autor.
Os resultados apresentados no Quadro 3 evidenciam a importância da utilização de hardware e software dedicado à execução do algoritmo, pois os resultados apresentados são inaceitáveis para o rápido funcionamento da ordenha robótica. Além disso, conforme relatado por Neto e Lopes (2014, p.104), ”as vacas que foram ordenhadas roboticamente [...] tiveram média de cinco minutos a mais no tempo de ordenha (15 min), quando comparados ao sistema convencional (10 min)”. Sendo assim, a aplicação do algoritmo em um microcontrolador e o aperfeiçoamento do código utilizando funções e linguagens que apresentem melhores resultados, diminuem substancialmente o tempo de processamento do algoritmo e, consequentemente, o tempo total de ordenha do animal.
5.2 ANÁLISE DOS RESULTADOS OBTIDOS
Analisando o algoritmo implementado, conclui-se que o mesmo apresentou excelentes resultados e os objetivos a que se propôs foram atendidos. As sucessivas segmentações e filtragens permitiram identificar as bordas dos tetos do animal, denominadas de região de interesse ou, simplesmente ROI, da sigla em inglês, muito utilizada no processamento de imagens para designar essa área.
Conseguiu-se, assim, demonstrar que apesar das segmentações realizadas, o algoritmo apresentou uma melhora na área e não piorou a qualidade da imagem geral, principalmente às sucessivas filtragens efetuadas na imagem.
Analisando os resultados de processamento do algoritmo, conclui-se que das quatro imagens utilizadas como base no desenvolvimento do trabalho, três delas detectariam o correto posicionamento em até duas tentativas, sendo que somente uma delas teve um desempenho menos satisfatório.
Entretanto, destaca-se que imagens que apresentarem características similares à Figura 11 podem demorar mais para detectarem a localização dos tetos, assim como ocorreu com a própria, tendo sido necessário seis tentativas até obter sucesso na segmentação. Isto pode decorrer pelo fato da imagem apresentar a curva de distribuição dos níveis de cinza
deslocada quase totalmente para a esquerda (lado escuro), como pode ser visto na Figura 28, destacando neste caso a importância da correta iluminação que o sistema deve apresentar na aquisição.
Fonte: Elaborado pelo autor.
Como forma de contornar a distribuição deste histograma, foi realizada a equalização da Figura 11 para distribuir os níveis de cinza na imagem. Entretanto, a equalização não melhorou o desempenho do algoritmo, pelo contrário, aumentou o número de tentativas necessárias para obter a localização dos tetos, como pode ser verificado na Figura 29, onde a equalização (lado direito) apresentou resultado falho em sua sexta tentativa, ao contrário do processamento sem equalização (lado esquerdo) que obteve sucesso em sua sexta tentativa. Os mesmos resultados estenderam-se para as Figuras 10, 12 e 13, onde a equalização não apresentou melhorias.
Desta forma, como já explicado no capítulo 4.2, a equalização não melhorou o desempenho do algoritmo, pelo contrário, aumentou o número de tentativas de processamento.
Estas seis tentativas provenientes do processamento da imagem da Figura 11, podem representar muito tempo na realização da ordenha, o que tornaria inviável este algoritmo. Porém, alguns fatores como iluminação e hardware exclusivo dedicado ao processamento não foram abordados, o que poderia acarretar em um menor número de tentativas ou em um menor tempo de processamento.
Fonte: Elaborado pelo autor.
Uma observação importante merece destaque para desenvolvimentos futuros. A unidade de medida apresentada nas coordenadas está em número de pixels e não em milímetros. Uma próxima etapa do algoritmo deve ser realizar a conversão desta medida para outra que seja compatível com o braço robótico, não sendo abrangida esta parte no presente trabalho.