Anda di halaman 1dari 63

UNIVERSIDADE FEDERAL DO VALE DO SO FRANCISCO

CURSO DE GRADUAO EM ENGENHARIA ELTRICA

Juliana Pires Pereira

DESENVOLVIMENTO DE UMA MESA AUTOMTICA


PARA SELEO DE RESISTORES VIA REDES
NEURAIS

Juazeiro - BA
2015

JULIANA PIRES PEREIRA

DESENVOLVIMENTO DE UMA MESA AUTOMTICA


PARA SELEO DE RESISTORES VIA REDES
NEURAIS

Trabalho de Concluso de Curso


apresentado Universidade Federal do
Vale do So Francisco UNIVASF,
Campus Juazeiro, como requisito da
obteno do ttulo de Bacharel em
Engenharia Eltrica.
Orientador: Prof. Dr. Eduard Montgomery
Meira Costa.
Co-orientador: Prof. Dr. Jos Bismark de
Medeiros.

Juazeiro BA
2015

Pereira, Juliana Pires.


P436d

Desenvolvimento de uma mesa automtica para seleo de


resistores via redes neurais / Juliana Pires Pereira. -- Juazeiro, BA,
2015.
62 f. : il.
Trabalho de Concluso de Curso (Graduao em Engenharia
Eltrica) - Universidade Federal do Vale do So Francisco, Campus
Juazeiro, Juazeiro, BA, 2015.
Orientador: Prof. Dr. Eduard Montgomery Meira Costa.
1. Redes neurais (Computao). 2. Automao. I. Ttulo. II.
Universidade Federal do Vale do So Francisco.
CDD 006.32

Ficha catalogrfica elaborada pelo Sistema Integrado de Biblioteca SIBI/UNIVASF


Bibliotecrio: Ana Paula Lopes da Silva

Aos meus irmos, Natanael Pires e Natlia


Pires, por toda compreenso que tiveram nos
meus momentos de ausncia, pelo apoio dado
em todos meus projetos e por me incentivarem
a no me contentar com pouco.

AGRADECIMENTOS

A Deus e Nossa Senhora por me dar fora e determinao para a realizao desse
trabalho.
Aos meus pais, Expedito Alves e Eva Pires, pelo amor incondicional, apoio, carinho,
pacincia, incentivo e compreenso em todos os meus momentos de estresse e
angstia, sempre me motivando a chegar mais longe.
Aos meus irmos, Natanael Pires e Natlia Pires, por me darem o incentivo necessrio
para alcanar meus objetivos.
Aos meus avs, tios e primos pela confiana que sempre depositaram em mim e por
comemorarem comigo cada vitria.
Aos meus amigos pelo companheirismo e apoio em tudo, por sempre torcerem por
meu sucesso, me ajudarem e estarem do meu lado.
A minha famlia F-Carranca por toda amizade, apoio, motivao, carinho e por
acreditarem no meu potencial. Em especial ao meu amigo Carlos Alberto, que foi muito
importante na realizao desse trabalho, dando um grande auxlio na construo da
mesa aqui utilizada.
Ao meu orientador, Eduard Montgomery, por toda motivao, confiana e auxlio dado
ao longo desse trabalho.
Ao meu co-orientador, Jos Bismark de Medeiros, por toda amizade, pacincia,
dedicao e apoio imensurvel dado ao longo desses anos de orientao.

RESUMO

Este trabalho apresenta o desenvolvimento de uma mesa que separa, de forma


automtica, resistores de diferentes valores de resistncia. Para este propsito, uma
cmera webcam utilizada como elemento de aquisio da imagem do resistor, que
passa por um mtodo de extrao de caractersticas de cor e, posteriormente,
enviado para uma rede neural implementada no MATLAB, de forma que ela faa o
devido reconhecimento do resistor. A partir disso, ser enviado um comando para um
motor de passo, localizado na mesa, o qual ir girar uma esptula contendo o resistor
at a posio indicada para ele, de acordo com sua resistncia, e, com auxlio de um
servomotor, far o depsito do mesmo. Foram testadas algumas arquiteturas para a
rede neural e dois tipos de descritores, o BIC (Border/Interior Classification) e o
histograma, de modo a obter uma configurao que resultaria no melhor desempenho
para esse sistema. Erros no descritor de cores BIC foram encontrados e ele se tornou
mais eficiente para redes mais complexas, enquanto o histograma se demonstrou
bastante eficaz mesmo para redes com arquiteturas mais simples.

Palavras-chave: Mesa automtica. Reconhecimento de Padres. Redes Neurais.


BIC. Histograma.

ABSTRACT

This paper shows the development of a table which separates, automatically,


resistors with different resistence values. For this purpose, a webcam is used as an
acquisition element to obtain the resistor image, which passes through a color feature
extraction method and, later, it is sent to a neural network implemented in MATLAB,
so it will do the recognition of the resistor appropriately. Thus, a command will be sent
to a stepper motor, which is on the table, thereby, it will turn a spatula containing the
resistor to the right position, according to its resistence value and, aided by servomotor,
the resistor will be deposited. Some architectures of neural networks were tested for
two types of descriptors, BIC (Border/Interior Classification) and histogram, to acquire
the best configuration for the recognition system. Mistakes in BIC color descriptor were
found and it became more efficient for complex networks, while histogram is shown
quite effective even for networks with simple structures.

Keywords: Automatic Table. Pattern Recognition. Neural Networks. BIC. Histogram.

LISTA DE FIGURAS

Figura 1: O sistema de automao. ......................................................................... 18


Figura 2: Atuadores utilizados no presente trabalho (a) motor de passo; (b)
servomotor..19
Figura 3: Representao numrica de uma imagem pela intensidade. .................... 21
Figura 4: Exemplo de segmentao (a) imagem original; (b) segmentao baseada
em semelhana de cores; (c) segmentao baseada em bordas.................23
Figura 5: Rede Neural................................................................................................25
Figura 6: Exemplo de histograma............................................................................. 26
Figura 7: Estrutura do neurnio biolgico. ................................................................ 29
Figura 8: Potencial de ao ...................................................................................... 30
Figura 9: Primeiro modelo de neurnio artificial chamado MCP............................... 30
Figura 10: Funes de ativao: (a) degrau; (b) sigmoidal; (c) linear; (d) tangente
hiperblica. ................................................................................................................ 31
Figura 11: Arquitetura de redes neurais (a) rede no recorrente; (b) rede no
recorrente. ................................................................................................................. 32
Figura 12: Rede neural perceptron........................................................................... 32
Figura 13: Funo "XOR"...............................................33
Figura 14: Grafo do fluxo de sinal do processo de aprendizagem por correo de
erro..............................................35
Figura 15: Primeiro passo para construo da mesa (a) colagem do molde na chapa
galvanizada de 1mm; (b) delimitando o espao para corte; (c) chapa riscada, pronta
para corte; (d) corte na guilhotina.............................................................................. 40
Figura 16: Segundo passo (a) mesa j cortada na guilhotina; (b) mesa com todos os
cortes e furos necessrios......................................................40
Figura 17: Fixao do motor de passo. .................................................................... 41
Figura 18: Mesa sem esptula.. ............................................................................... 41
Figura 19: Esptula da mesa.................................................................................... 42
Figura 20: Mesa automtica. .................................................................................... 42
Figura 21: Modelagem da mesa automtica no Inventor... .................................... 43
Figura 22: Caixa para colocar o resistor a ser analisado ......................................... 46
Figura 23: Corte da imagem obtida pela webcam: (a) imagem original; (b) imagem
aps corte.................................................................................................................. 46
Figura 24: Estrutura de uma das redes utilizadas..................................................... 47
Figura 25: Imagens utilizadas no treinamento da rede neural...................................48
Figura 26: Fluxograma do sistema.............................................................................49
Figura 27: Sada da rede 01 com (a) descritor BIC; (b) histograma........52
Figura 28: Sada da rede 02 para (a) descritor BIC; (b) histograma........53
Figura 29: Sada para rede 03 com (a) descritor BIC; (b) histograma. ..................... 53
Figura 30: Colar arquivo "pde" na pasta de biblioteca do arduino. ........................... 60

Figura 31: Primeiro passo para conexo da Webcam com o MATLAB. ................... 61
Figura 32: Segundo passo........................................................................................ 62
Figura 33: Lista de cmeras.....................................................................62

LISTA DE TABELAS

Tabela 1: ngulo de giro do motor de passo correspondente para cada tipo de


resistor ...................................................................................................................... 44
Tabela 2: Dados da webcam utilizada. ..................................................................... 45
Tabela 3: Comparao entre as diferentes redes neurais utilizando cada um dos
descritores de cor ...................................................................................................... 51

LISTA DE ABREVIATURAS E SIGLAS

BIC Border/Interior Classification


IA Inteligncia Artificial
MLP Multi-layer Perceptron (perceptron de mltiplas camadas)
PCA - Anlise de Componentes Principais
RGB Red (vermelho), Green (verde) e Blue (azul).
RNA Rede Neural Artificial

SUMRIO

INTRODUO

14

1.1
1.2

Objetivo Geral
Objetivos Especficos

15
15

FUNDAMENTAO TERICA

17

2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3
2.4

Automao
Reconhecimento de padres
Aquisio de imagem
Pr-processamento
Segmentao
Representao e Descrio
Reconhecimento
BIC (Border/Interior Classification)
Redes Neurais

17
20
20
21
22
23
24
25
28

CONSTRUO DO PROTTIPO

38

3.1
3.2

Materiais Utilizados
Procedimentos

38
39

DESENVOLVIMENTO DO SISTEMA AUTOMTICO

43

RESULTADOS E DISCUSSO

50

CONCLUSO

55

6.1

Sugestes para trabalhos futuros

56

REFERNCIAS

57

ANEXOS

60

14
1 Introduo

A automao nasceu de uma crescente necessidade de mercado de se


produzir de uma forma mais rpida, mais barata e com um alto padro de qualidade.
Alm dessas vantagens, ela traz consigo a reduo de trabalhos manuais, muitas
vezes repetitivos e desgastantes, dando um certo conforto ao trabalhador.
A automao industrial consiste em uma gama de mtodos envolvendo
equipamentos fsicos (hardwares) e programas que fazem o controle desses
equipamentos (softwares). Para estes, cada vez mais se faz uso da Inteligncia
Artificial (IA), atribuindo inteligncia operao das mquinas.
A IA uma importante ferramenta da automao, pois ela auxilia na construo
de aparelhos inteligentes que substituem o homem em suas atividades. Elas possuem
a habilidade de aprender, interpretar dados sensoriais, tomar decises, entre outras
(LUDWIG; COSTA, 2007).
Uma das maiores funes sensoriais do homem a viso e para fazer com que
as mquinas possuam uma funo similar que seja capaz de interpretar imagens, de
associ-las a outras, de detectar possveis defeitos, utiliza-se o reconhecimento de
padres. De acordo com Theodoridis e Koutroumbas (1999), o reconhecimento de
padres uma rea de pesquisa cujo objetivo a classificao de objetos (padres)
em um nmero de categorias ou classes.
Para fazer o reconhecimento, pode ser feito o uso de uma ferramenta de
Inteligncia Artificial chamada rede neural. As redes neurais possuem capacidade de
aprendizado e de processamento que servem para obter as identificaes de padres
dentro de classes previamente estabelecidas de forma rpida (CRISTINA, 2005).
Porm, antes de fazer o reconhecimento, necessrio fazer o treinamento da
rede neural, para isso ela passar por um processo de aprendizado atravs de
exemplos. Nesse processo, sero apresentados a ela conjuntos de padres e a que
categoria cada um deles pertence, assim, ser colocado um outro conjunto ainda no
visto e ela conseguir classific-lo em uma das classes antes apresentadas. Isso
possvel devido s informaes extradas no processo de aprendizado.

15
Os dados, antes de serem enviados rede neural, passam por um mtodo de
extrao de caractersticas. Os escolhidos para esse projeto foram o BIC
(Border/Interior Classification) e o mais comum, o histograma. O BIC um mtodo
que recebe como entrada uma matriz de pixels de elevada dimenso e d com sada
um vetor constitudo de histogramas que mostram a relao de cores apresentadas
na imagem. Antes de se fazer o uso desses mtodos, deve-se fazer a escolha da
quantidade de cores que ser utilizada e reduzir o nmero total de cores da imagem
para essa determinada quantidade, atravs do mtodo chamado quantizao.

1.1

Objetivo Geral

Este trabalho tem como objetivo apresentar a construo de uma mesa


automtica e de um sistema que faz o reconhecimento e a separao de resistores
de acordo com suas resistncias. Para isso, conta-se com o auxlio de uma ferramenta
da Inteligncia Artificial, a rede neural, de modo que esse processo no necessite de
alguma interveno humana.

1.2

Objetivos Especficos

Compreender e fazer um levantamento bibliogrfico acerca do reconhecimento


de padres e de redes neurais;

Desenvolver um algoritmo para o mtodo de extrao de caractersticas, BIC,


de modo a se otimizar o processo de reconhecimento;

Implementar e treinar a rede neural para que ela realize a funo para a qual
foi designada e, em seguida, efetuar testes de reconhecimento de resistores;

Construir a mesa automtica com motor de passo e servomotor, juntamente


com o posicionamento a cmera webcam;

16

Fazer o controle dos atuadores pelo MATLAB de modo que eles atuem aps
o reconhecimento, depositando os resistores em seus devidos lugares;

Analisar os resultados obtidos, os erros, entre outros aspectos.

17
2 Fundamentao Terica

2.1

Automao

No mundo cada vez mais competitivo em que se vive hoje, a automao se faz
ainda mais necessria, j que ela traz consigo otimizao na produo, fazendo,
desse modo, com que seus produtos sejam concebidos a um menor custo e com
melhor qualidade. Assim, ela atende s exigentes especificaes do mercado, e,
proporciona, ainda, um maior controle e melhor planejamento da produo. Alm
disso, ela propicia uma certa comodidade ao homem, j que a automao o substitui
em atividades desconfortveis, de risco, repetitivas, entre outras.
Define-se a automao como sendo qualquer sistema auxiliado por computador
que realize um trabalho antes feito pelo homem (MORAES; CASTRUCCI, 2007).
Os sistemas podem ser classificados de acordo com seu acionamento: pelo
tempo ou por eventos ou, ainda, por ambos.
De modo a estabelecer o comportamento esttico e dinmico dos sistemas,
implementado o controle dinmico nos mesmos. Para isso so utilizadas variveis de
sada em uma realimentao negativa, de modo que se tenha uma medida do erro do
processo em relao ao seu valor ideal e, a partir disso, realiza-se o controle. Outro
objetivo do controle fazer com que qualquer perturbao que atinja o sistema seja
minimizada (SIGHIERI; NISHINARI, 1973).
Outro tipo deste, mais recente, tambm utilizado nesses sistemas o controle
lgico que tem o objetivo de complement-los de forma que eles respondam a eventos
de acordo com as regras impostas.
Para a automao, so utilizados os dois tipos de controle em propores
variveis dependendo da necessidade e do tipo de sistema.
Os sistemas de automao so constitudos como mostrado na figura 1.
Conforme observado na mesma, o sistema mecnico passa por diversas medies

18
de modo que se obtenha informaes sobre o processo a controlar. Essas medidas
so tomadas por elementos denominados sensores.
Figura 1 - O sistema de automao.

Fonte: DUNN, 2013.

Sensor um dispositivo que converte variveis fsicas de uma forma de sinal


para outra, de acordo com objetivo (BOLTON, 1933). Em sistemas automticos,
normalmente, ela transformada em uma grandeza eltrica, que pode ser corrente
ou tenso geralmente, opta-se pela sada do sensor em forma de corrente, fazendo
com que sejam reduzidos rudos no sinal (MORAES; CASTRUCCI, 2007).
Caso a sada seja analgica, ela deve passar por um conversor analgicodigital para, em seguida, realizar o seu processamento, que consiste no tratamento
ou observao do sinal para que os ajustes necessrios sejam feitos e,
consequentemente, possa-se controlar o processo em questo.
Para fins de automao, o principal objetivo observar eventos e atuar na
presena deles, para isso so utilizados sensores discretos. Estes so divididos em
dois tipos: com contato mecnico ou sem (sensores de proximidade). Para aqueles,
necessrio que exista uma fora entre eles e o objeto de modo a detect-los, por
exemplo, chaves eletromecnicas, chaves de presso, entre outros. Para os ltimos,
ocorre a deteco pela simples proximidade com o sensor, so exemplos: sensores
indutivos, capacitivos, de efeito Hall, etc. Estes so os mais importantes, pois sofrem
menos desgastes, tornando-se mais confiveis, alm de serem mais flexveis na sua
montagem no sistema mecnico (MORAES; CASTRUCCI, 2007).

19
Aps o processamento, so definidas aes a serem realizadas de modo que
o sistema mecnico atinja o estado desejado, para esse fim so utilizados atuadores.
Eles convertem o comando dado por um controlador em uma atuao mecnica no
processo, melhor dizendo, eles convertem algum outro tipo de energia em energia
mecnica (PESSA; SPINOLA, 2014).
Podem-se classificar os atuadores em trs tipos: eltricos, hidrulicos e
pneumticos. A diferena entre os dois ltimos que os hidrulicos utilizam um lquido
sob presso para fazer o movimento enquanto o pneumtico utiliza gs. Eles,
tambm, podem ser ditos como lineares ou rotativos. Os lineares fazem movimento
de puxar e empurrar e os rotativos um movimento giratrio. Estes ainda so divididos
em: angulares ou contnuos. Os angulares possuem um ngulo limitado de giro e nos
contnuos o nmero de rotaes indeterminado.
Neste trabalho, sero usados os seguintes atuadores rotativos: motor de passo
e servomotor, como pode ser visto a figura 2. O primeiro ser utilizado para girar a
esptula que contm o resistor at a caixa de despacho correta para esse tipo de
resistor e, para fazer o despejo do mesmo, ser utilizado um servomotor.

Figura 2 - Atuadores utilizados no presente trabalho (a) motor de passo; (b) servomotor.

O servomotor um dispositivo que faz um giro at uma dada posio, podendo,


tambm, sofrer mudanas no sentido de rotao. Vale ressaltar que ele pertence
classe de atuadores giratrios angulares, no chegando, na maioria das vezes, nem
a 360. O motor de passo, por sua vez, pode girar infinitamente, ele recebe pulsos
eltricos e cada pulso desse realiza uma rotao angular fixa, conhecida como ngulo

20
de passo (BONACORSO; NOLL, 2006). Este motor no adequado em aplicaes
em que seja necessria uma alta velocidade de rotao, pois, devido inercia, pode
ocorrer uma perda nos passos e ele pode no parar na posio correta, causando,
assim, um dano preciso (DUNN, 2013).

2.2

Reconhecimento de Padres

Define-se reconhecer como identificar, distinguir ou classificar e padro


como classe, nvel ou categoria. Ou seja, o reconhecimento de padres serve para
distinguir uma classe ou categoria das outras, separar um objeto ou coisa de outros,
fazendo a sua distino, colocando-o em uma determinada categoria.
O reconhecimento de padres acompanha o homem diariamente, por exemplo,
quando ele v alguma coisa com um lugar para sentar que tem quatro pernas, um
apoio para as costas e no to aconchegante como uma poltrona, ele j sabe que
aquilo uma cadeira, ele a reconhece como tal. O que se acaba de descrever so as
caractersticas necessrias para reconhecer o objeto como uma cadeira, atributos que
mostram um formato peculiar da cadeira que a diferencia de outros objetos. assim
que feito o reconhecimento de padres por pessoas, nesse trabalho mostrado
como o computador o realiza.
Ainda

utilizando

exemplo

acima,

pode-se

perceber

que

existem

caractersticas que no so relevantes para saber que o objeto analisado uma


cadeira. No importante saber sua cor, de que tipo de madeira ela feita, se h um
tecido nela e qual esse tipo de tecido. Observa-se que essas informaes no so
necessrias para o reconhecimento, assim, o homem faz uma extrao das
caractersticas mais relevantes, deixando as demais de lado.
Fazendo uma relao com o modelo citado, h algo bem parecido no
procedimento de reconhecimento de padres feito por computadores. Esse processo
segue os seguintes passos: aquisio da imagem, pr-processamento, segmentao,
representao e descrio e, por ltimo, o reconhecimento.

21
O homem inicialmente observa o objeto, assim como o computador adquire a
imagem e faz o seu pr-processamento que tem como intuito eliminar problemas
existentes nos dados recm-adquiridos (CALHEIROS, 2012). Logo em seguida, feita
a segmentao, que separa o objeto em estudo. Depois, chega-se a representao a
qual tem como objetivo transformar os dados brutos numa forma mais apropriada para
o posterior tratamento computacional. Nessa etapa tambm feita a descrio, que
o processo no qual se extraem caractersticas a serem realadas para poder
classificar o objeto como algo especfico. Isso o que foi feito ao descrever a cadeira,
podendo encaix-la nesse padro. Feita a separao dos objetos em classes, o
computador faz o reconhecimento utilizando as redes neurais e, ento, d um
significado quela imagem.
Assim, pode-se definir o reconhecimento de padres como sendo um
procedimento que extrai dados de uma entrada e os compara com estruturas j
conhecidas, posteriormente, classificando-as.
Segundo Peter (2005), o reconhecimento de padres envolve trs nveis de
processamento: filtragem da entrada, extrao de caractersticas e classificao. A
filtragem engloba os seguintes estgios: aquisio da imagem, pr-processamento e
segmentao. A seguir sero mostrados com mais detalhes cada uma dessas etapas.

2.2.1 Aquisio de imagem

O primeiro passo a aquisio da imagem. Para Marques e Vieira (1999) a


aquisio de uma imagem o processo de converso de uma cena real tridimensional
em uma imagem analgica. Para os mesmos autores, uma imagem digital pode ser
interpretada como uma matriz cujas linhas e colunas identificam um ponto na imagem,
que tem um valor o qual corresponde ao nvel de cinza da imagem naquele ponto,
como ilustrado na figura 3.

22
Figura 3 - Representao numrica de uma imagem pela intensidade.

Para imagens coloridas, cada ponto da imagem composto por a tripla de cores
RGB R como Red (vermelho), G representando Green (verde) e o B a cor Blue (azul)
e cada intensidade de cor equivale a um nmero, que de 0 a 255. Essas cores se
combinam formando todas as outras mudando somente as propores.

2.2.2 Pr-processamento

O pr-processamento consiste no aprimoramento da imagem que tem como


objetivo produzir um resultado mais adequado para uma certa aplicao do que a
imagem original (GONZALES; WOODS, 1992).
Ele pode ser feito atravs de duas classes de mtodos: alguns no domnio
espacial e outros no domnio da frequncia. Os mtodos no domnio espacial atuam
diretamente na imagem, manipulando seus pixels, enquanto os no domnio da
frequncia se baseiam em tcnicas de mudana da transformada de Fourier da
imagem.
O processo realizado com a imagem no domnio espacial pode ser
representado pela expresso 01.

(01)

Onde f(x,y) representa os dados da imagem original, T o operador de


transformao desses dados obtendo, assim, g(x,y) para cada ponto de coordenada
(x,y) da imagem.

23
Podem ser usadas tcnicas de aumento de contraste, remoo de rudos,
transformao de uma imagem colorida em tons de cinza, deteco de bordas, etc.

2.2.3 Segmentao

A atividade bsica da etapa de segmentao a de decompor uma imagem


em suas unidades expressivas, ou seja, nos objetos de interesse que a compem
(MARQUES; VIEIRA, 1999).
Ela pode ser baseada em descontinuidades ou similaridades dos diferentes
aspectos da imagem. Algumas tcnicas esto listadas a seguir: segmentao
baseada em regies, baseada em morfologia matemtica, filtragem no domnio
espacial, filtragem no domnio da frequncia, entre outras. Na figura 4, so mostrados
exemplos.

Figura 4 - Exemplo de segmentao (a) imagem original; (b) segmentao baseada em


semelhana de cores; (c) segmentao baseada em borda.

Fonte: AZEVEDO; CONCI; LETA, 2008.

24

2.2.4 Representao e descrio

A representao da imagem pode ser feita atravs das caractersticas externas


ou internas. Opta-se pelas externas quando a ateno voltada para o formato da
regio e pela interna quando voltada para os pixels que constituem a regio
(ANNADURAI, 2007).
A descrio, tambm chamada de extrao de caractersticas, consiste na
retirada dos atributos mais relevantes da imagem, de modo que, o grande conjunto de
dados brutos da imagem seja transformado em uma menor quantidade de dados.
Assim, so retiradas caractersticas irrelevantes para o reconhecimento e este, por
sua vez, ser feito de forma mais eficiente. Em posse do novo conjunto de dados, a
classificao poder ser feita.
Alguns exemplos de mtodos de extrao de caractersticos so: Anlise de
Componentes Principais (PCA), Coeficiente de Correlao, Momentos Invariantes,
BIC, entre outros.

2.2.5 Reconhecimento

O reconhecimento, que a ltima etapa, consiste na atribuio de um rtulo a


um objeto baseado nas suas caractersticas (MARQUES; VIEIRA, 1999).
Os padres so pontos em um espao multidimensional que, por sua vez,
delimitado por regies e cada uma destas est relacionada a uma classe. No processo
de aprendizado so delimitadas as fronteiras entre regies e, assim, determina-se a
classe a que cada conjunto pertence.
Para fazer o reconhecimento dos padres, faz-se o uso de uma rede neural,
como mostrada na figura 5. Quando se utiliza a rede neural para fins de
reconhecimento, utilizado o aprendizado supervisionado, ou seja, so passados os
dados de entrada e a classe particular (dado de sada) a que cada padro contido no

25
conjunto de entrada pertence, de modo que a rede neural possa ajustar seus pesos e
nveis de bias. Assim, quando apresentado um novo conjunto de dados, ela,
automaticamente, j o coloca na categoria a que ele pertence e, assim, d-se o
reconhecimento de padres.
Figura 5 - Rede Neural.

2.3

BIC (Border/Interior Classification)

Os mtodos de extrao de caractersticas servem para selecionar os dados


que apresentam relevncia e no possuem redundncias. Eles, posteriormente, sero
utilizados no reconhecimento de imagens (LUDWIG; COSTA, 2007). Com a reduo
dos dados de entrada, o treinamento e o reconhecimento feito pela rede neural se
tornam mais rpidos e mais fceis de serem realizados.
Para tratar os dados antes de envi-los s redes neurais podem ser utilizadas
dois tipos de tcnicas. O primeiro grupo delas almeja retirar do conjunto de dados
aqueles que tiverem pouca importncia. O segundo aplica transformaes ao conjunto
de dados de entrada, reduzindo-os. (LUDWIG; COSTA, 2007).
No reconhecimento de padres de imagens, os dados de entrada so dados
por matrizes de pixels de grande dimenso. Assim, extrai-se uma quantidade de
informaes que viabilize o reconhecimento da imagem em uma classe.

26
O mtodo de extrao de atributos deve ser escolhido de acordo com o
problema apresentado. Um erro na escolha do mtodo causar impreciso na
classificao.
Caso as caractersticas importantes sejam de forma do objeto, descritores
desse tipo sero utilizados, como, por exemplo, Momentos Invariantes. Se forem de
cor, so usados os descritores de cor, os quais extraem caractersticas relacionadas
a cores.
Os descritores de cores so classificados em trs tipos de acordo com Almeida
et al (2008). A primeira classe comporta os Global based que trata a imagem como
um todo, observando cada pixel de uma s vez. A segunda, Partition based, separa a
imagem em uma quantidade fixa de regies a as analisa separadamente. E, por
ltimo, a Region based decompe a imagem em regies que contenham grupos
similares de pixels (PICON; ROSSI; PONTI, 2011).
O descritor escolhido foi desenvolvido por Stehling, Nascimento e Falco (2002)
e chamado de BIC (Border/Interior Classification). Ele um algoritmo baseado em
histogramas e bastante eficiente, mesmo para imagens com baixas resolues
como mostrado em Picon, Rossi e Ponti (2011).
O histograma nada mais do que um conjunto de nmeros que mostram a
quantidade percentual de pixels da imagem que possuem um determinado tom de
cinza, como pode-se ver na figura 6 (MARQUES; VIEIRA, 1999).
Figura 6 Exemplo de histograma.

Fonte: MARQUES, 1999.

Calcula-se cada elemento do conjunto como sendo:




(02)

27
Em que:
n: nmero total de pixels da imagem
nk: nmero de pixels cujo nvel de cinza corresponde a k
k: nvel de cinza (de 0 a L, L sendo o nmero de nveis de cinza possveis).

Para imagens coloridas, so criados trs histogramas, um para cada


componente RGB.
O mtodo BIC consiste em dividir os dados da imagem em dois histogramas:
um para pixels de borda e outro para pixels de interior. Ele dividido em trs etapas.
Inicialmente, a imagem requantizada para um menor nmero de cores, o que define
o tamanho do histograma, cujo nmero de elementos igual ao nmero de cores. Em
seguida, so definidos quais pixels so de borda e quais so de interior. Atribui-se a
classificao de pixel como interior se ele possuir a mesma cor quantizada dos seus
quatro vizinhos, caso contrrio o pixel ser considerado de borda (ESCOBAR; PONTI
2011).
So utilizados quatro vizinhos no lugar de oito, j que isso reduz a
complexidade da anlise da imagem e a perda em efetividade insignificante
(STEHLING; NASCIMENTO; FALCO, 2002). Assim, so criados dois histogramas, um
para cada tipo de pixel e, por fim, esses histogramas so concatenados formando o
vetor de caractersticas.
Para requantizar a imagem para 64 cores, como proposto por Stehling,
Nascimento e Falco (2002), foram utilizados os dois bits mais significativos de cada
um dos canais RGB. Assim, o que eram 24 bits, oito em cada canal, com mostrado a
seguir: [(RRRRRRRR), [GGGGGGGG], [BBBBBBBB]], foram colocados em um nico
canal no seguinte formato: [RRGGBB], reduzindo para 6 bits, ou seja, 26 = 64 cores
(PICON; ROSSI; PONTI, 2011).
Porm, foi comprovado por Escobar e Ponti (2011) que o descritor BIC no
drasticamente afetado com a reduo de cores e, tambm, que a partir de 16 cores
os resultados possuem uma melhora pequena. A principal vantagem de realizar uma
quantizao com um menor nmero de cores que o vetor de caracterstica final ser
menor e, com um menor nmero de dados sendo enviado para o reconhecimento de
padres, a classificao se tornar mais rpida.

28

2.4

Redes Neurais

Provavelmente a primeira referncia do que se conhece hoje como Inteligncia


Artificial foi escrita pela irm de Pascal, Perr, aps ele ter criado uma mquina que
realizava operaes de adio, subtrao e converso de moedas. Em seu texto, ela
escreveu o esprito foi capturado pela mquina, pois ela podia executar, sem errar,
todo tipo de clculo, coisa extraordinria pois a mquina no usava lpis, e sem que
tenham lhe ensinado matemtica (BARRETO, 2001).
A Inteligncia Artificial (IA) definida por quatro frentes diferentes que
relacionam processos de pensamento e raciocnio, comportamento, desempenho
humano e, por ltimo, conceitos de racionalidade. Assim, nessa rea, alguns tentam
fazer uma rplica do pensamento humano enquanto outros preferem combinar a
engenharia com a matemtica de modo a construir mquinas inteligentes (NORVIG;
RUSSEL, 2013).
Um sistema de Inteligncia Artificial deve estar sempre habilitado para
armazenar conhecimento (aprender), usar esse conhecimento para resoluo de
problemas (raciocinar) e ainda deve ser capaz de adquirir novos conhecimentos,
atravs da sua experincia.
A palavra conhecimento, nesse ramo, refere-se informao armazenada e
ele pode ser de dois tipos: declarativo ou procedimental. Na primeira classe, ele
representado por uma coleo de fatos, assim, a informao explcita e, na segunda,
ele se encontra dentro de um cdigo executvel e usado de forma subsequente
(HAYKIN, 2001).
A IA uma rea extremamente ampla e pode ser utilizada em diversas
aplicaes, abrangendo desde a resoluo de complexos problemas de engenharia
elaborao de poesias.
Para a sua concepo, foram utilizados conhecimentos de diversas reas,
como: filosofia, economia (como forma de otimizar funes de custo e outras),

29
matemtica, neurocincia (onde se estuda todo sistema nervoso e, em especial, o
crebro humano), engenharia de computadores, entre outras.
Conhecimentos da neurocincia foram utilizados com o intuito de entender de
que forma o ser humano adquire conhecimento e, ento, formalizar essa atividade
atravs de procedimentos matemticos, de modo a se fazer com que uma mquina
consiga tambm aprender.
A estrutura individual do neurnio biolgico, apresentada na figura 7,
composta por trs principais partes: os dendritos, o corpo do neurnio e o axnio. Os
dendritos recebem informaes em forma de impulsos nervosos oriundos de outros
neurnios e as levam ao corpo celular. Este, por sua vez, realiza uma mesclagem das
informaes que so, posteriormente, levadas ao axnio, o qual, geralmente, as envia
aos dentritos da prxima clula nervosa, de modo que elas sejam passada frente.
Figura 7 - Estrutura do neurnio biolgico.

Os neurnio se arranjam de modo complexo a fim de formar o que se chama


de sistema nervoso. Essa combinao se d atravs da regio denominada sinapse,
que fica entre os dendritos de um neurnio e o axnio de outro. Ela funciona como
uma vlvula, controlando a transmisso dos impulsos, de modo que se a soma dos
sinais de entrada estiver acima do limiar de excitao, a clula dispara, produzindo
um impulso eltrico que propagado ao neurnio seguinte.
H uma diferena de potencial (d.d.p.) gerada pela concentrao de potssio
dentro da clula e a de sdio fora dela. Quando o neurnio est em repouso essa ddp
equivale a, mais ou menos, -70 mV, na passagem do impulso ela pode ficar positiva,
excedendo o limiar de tenso e transmitindo o impulso a outra clula, como mostrado
na figura 8.

30
Figura 8 - Potencial de ao.

De acordo com o neurobiologia, pouqussimos neurnios so dedicados a


apenas uma atividade, assim, a sua grande maioria interligada, de modo que as
aes humanas sejam resultados da interao de inmeras clulas nervosas. Desse
modo, na formao do crebro criado um nmero exorbitante de conexes entre
essas clulas e estas vo se extinguindo com o passar do tempo, atravs da
aprendizagem, e somente as conexes realmente importantes sero mantidas.
(CAMPOS; SAITO, 2004)
No ano de 1943, em uma associao entre um psiclogo e neurologista,
Warren McCulloch, e um recm-formado matemtico, Walter Pitts, surgiu um modelo
artificial de neurnio chamado MCP (McCulloch e Pitts), mostrado na figura 9. Esse
prottipo buscava simular a forma do neurnio biolgico e reproduzir funes lgicas,
como OU e E lgicos (CAMPOS, SAITO, 2004).
Figura 9 - Primeiro modelo de neurnio artificial chamado MCP.

Inicialmente, ele recebe um ou mais sinais de entrada (representados por x),


que so ativaes de neurnios anteriores. Estes so ponderados atravs dos pesos
sinpticos (letra w) e so somados, resultando na varivel u, que a sada do

31
combinador linear. Diferentemente das sinapses encontradas no cerbro, os pesos
sinpticos podem ter valores tanto positivos quanto negativos (HAYKIN, 2001).
funo u adicionada ao bias de entrada, letra b, resultando no campo local
induzido, tambm conhecido como potencial de ativao, equao 03.


(03)

O potencial de ativao introduzido na funo de ativao, (), que


normalmente binria (0 ou 1) e decide se o neurnio vai levar a informao adiante,
disparar, ou no. Essa deciso ocorre atravs da comparao com o valor de limiar
(threshold). Existem vrios tipos de funes como essa, conforme mostrado na figura
10, funo de ativao degrau, sigmoidal, linear, tangente hiperblica, entre outras. A
funo de ativao empregada para evitar o acrscimo progressivo dos valores de
sada, j que ela possui valores mximo e mnimo.
Figura 10 - Funes de ativao: (a) degrau; (b) sigmoidal; (c) linear; (d) tangente hiperblica.

A fim de aumentar a capacidade computacional, os neurnios so dispostos


em conjunto, conectados por meio de sinapses, formando, desse modo, a rede neural
artificial.
A forma como eles so colocados na rede definida pela arquitetura da mesma,
que pode ser esttica: sem recorrncia a sua estrutura, ou seja, as sadas em um
momento s dependem das suas entradas nesse instante, figura 11 (a), ou no, figura
11 (b), com sua operao em funo da dinmica de mudana de estados dos
neurnios.

32
Figura 11 - Arquitetura de redes neurais (a) rede no recorrente; (b) rede no recorrente.

Em 1958, Rosenblatt apresentou o primeiro modelo de rede neural para


aprendizagem supervisionada, chamado perceptron, mostrada na figura 12. Essa
rede foi feita da maneira mais simples possvel, com apenas uma camada de entrada
e uma de sada (LUDWIG; COSTA, 2007). No entanto, ela chamada de percetron
de uma camada, pois somente a camada de sada possui propriedades adaptativas
(BRAGA; LUDEMIR; CARVALHO, 2011). O perceptron serve para classificar padres
chamados de linearmente separveis, ou seja, padres com classes dispostas em
lados contrrios no espao, separadas por um hiperplano.
Figura 12 - Rede neural perceptron.

Ele possua um algoritmo de aprendizagem ao qual eram apresentados pares


de valores de entrada e sua respectiva sada. Assim, a partir dos valores de entrada,
gerava-se uma sada e esta era comparada sada ideal, que, no caso do perceptron,
era 0 ou 1. O valor do erro correspondente diferena entre as sadas era ento usado
para ajustar o valor dos pesos calculados a princpio, de modo que a sada se tornasse
mais prxima da desejada. Esse ajuste no instante n nos pesos dado pela equao
04.

33

Em que:

(04)

(05)

Onde representa a taxa de aprendizado que mede a rapidez com que se


atualiza os valores do peso, e o erro referente sada e x(n), como j foi visto, o
vetor de entrada.
Em 1969, no livro Perceptrons de Minsky e Papert, foi feita uma anlise
matemtica do modelo de rede neural apresentado por Rosenblatt e esta veio seguida
de duras crticas ao perceptron, como, por exemplo, a incapacidade do perceptron de
construir generalizaes baseadas no seu aprendizado (HAYKIN, 2001). Um das
limitaes do perceptron era sua incapacidade de implementar a funo ou exclusivo
(XOR), pois ela no poderia ser separada no plano, como mostrado na figura 13
(KOVCS, 2002).
Figura 13 - Funo "XOR".

Com isso, dvidas a respeito da capacidade das redes neurais foram geradas,
causando um grande impacto nas pesquisas e desinteresse pela rea. Desse modo,
o estudo a respeito das redes neurais ficou paralisado at o nicio da dcada de 1980.
No captulo final do seu livro, Minsky e Papert atribuem as limitaes do
perceptron de uma nica camada tambm para as redes neurais de mltiplas
camadas. Hoje, com a eficincia comprovada do perceptron de mltiplas camadas,
pode-se ver o quanto essa atribuio foi equivocadamente colocada.

34
O perceptron de mltiplas camadas (MLP, multilayer perceptron) possui trs
caractersticas marcantes. A primeira que cada neurnio possui uma funo de
ativao no-linear, como, por exemplo, a sigmide. importante destacar que essa
funo deve ser derivvel em todo intervalo de tempo, no ocorrendo mudana
abruptas, como no perceptron de uma s camada. Outra caracterstica importante
que ela possui uma ou mais camadas intermedirias, o que aumenta o potencial da
rede na realizao de atividade mais complexas. Alm disso, a rede altamente
conectada, possuindo, assim, muitas regies sinpticas. Com a unio dessas
caractersticas ao seu aprendizado, o MLP se destaca por possuir um alto potencial
computacional.
Na figura 11(a), mostrada a arquitetura de um perceptron de mltiplas
camadas (MLP), onde, inicialmente, os sinais de entrada (estmulos) passam pela
camada de entrada que no so formadas por neurnios e sua nica funo
representar a distribuio dos dados de entrada para a prxima camada. Em seguida,
pode conter uma ou mais camadas ocultas (camadas intermedirias), formadas por
neurnios ocultos, que tem como funo principal capacitar a rede a extrair
estatsticas de elevada ordem. E, por fim, uma camada de sada que d a resposta da
rede ao vetor de entrada. Com o ajuste dos pesos sinpticos e nveis de bias, a rede
neural realiza a tarefa de aprendizado.
De acordo com Braga, Ludemir e Carvalho (2011, p. 12) o aprendizado
consistem em:
[] um processo iterativo de ajuste de parmetros da rede, os pesos das
conexes, que guardam, ao final do processo, o conhecimento que a rede adquiriu do
ambiente externo.
O processo de aprendizado de uma rede neural pode ser supervisionado ou
no-supervisionado. No primeiro, tambm conhecido como aprendizado com
professor, apresentado a rede neural as sadas desejadas para as respectivas
entradas. O treinamento feito at a taxa de acerto ser satisfatria. No outro, ela
recebe apenas os valores de entrada e os classifica em grupos.

35
A rede neural recebe um treinamento de modo que seus pesos sinpticos e
nveis de bias sejam ajustados. Para isso, utilizam-se algoritmos de aprendizagem,
por exemplo, aprendizagem por correo de erros, aprendizagem competitiva,
aprendizagem hebbiana, etc.
Elas so utilizadas em reas de classificao, aproximao, otimizao,
categorizao e previso. Na classificao, o objetivo colocar um padro
desconhecido em uma das classes pr-definidas. Nela, utiliza-se o aprendizado
supervisionado, ou seja, so dadas entradas (dados do objeto) e sadas (classes) para
o treinamento da rede.
Um algoritmo eficiente e lagarmente utilizado o de retropropagao de erro
(back-propagation) para redes multicamadas, apresentado na figura 14. A sua
popularizao se deu pelo fato dele ser um relativamente poderoso algoritmo e ser
muito simples, sendo implementado em poucas linhas de cdigo (CHAUVIN;
RUMELHART, 1995).

Figura 14 - Grafo do fluxo de sinal do processo de aprendizagem por correo de erro.

O algoritmo back-propagation possui um treinamento supervisionado e realiza


seu aprendizado atravs da correo de erros. Ele dividido em duas etapas, uma de

36
propagao e outra de retropropagao. Na primeira, a entrada aplicada rede e
seu efeito propagado, resultando na obteno de uma sada. Na segunda etapa,
essa sada adquirida comparada sada ideal (j que se trata de um aprendizado
supervisionado) gerando um sinal de erro, o qual retropropagado pela rede, fazendo
ajuste nos pesos sinpticos, de modo a corrigir o erro obtido na sada, gerando uma
resposta mais prxima da ideal (HAYKIN, 2001).
Este mtodo consiste em obter uma sada (yk(n)) no neurnio k a partir de um
vetor de entradas (x(n)) e compar-la a sada desejada (dk(n)), j que este se trata de
um aprendizado supervisonado. Assim, obtem-se um valor de erro (ek(n)) e, com esse
valor, percorre-se o sentido inverso, ajustando os pesos sinpticos de modo a
minimizar esse erro e obter a resposta mais prxima possvel da ideal.
O objetivo desse algoritmo alcanado quando o ndice de desempenho
(conhecida tambm como funo de custo),

E(n), minimizado. Esta representa o

valor instantneo da energia do erro e mostrada abaixo:

(06)
Onde ej(n)= dj(n) yj(n), representando o erro para o neurnio j da camada
de sada.
Considerando N o nmero total de padres existentes no conjunto de
treinamento, a energia mdia do erro quadrado dada por:

(07)
O algoritmo back-propagation apresenta problemas de lentido em diversas
aplicaes. Mesmo em problemas simples, ele solicita que se apresente os padres
de treinamento milhares de vezes.
Assim, vrias mudanas foram propostas com o intuito de melhorar o seu
desempenho e reduzir o tempo de treinamento. Um delas, bastante usada, chama-se

37
algoritmo Levenberg-Marquardt, que uma tcnica de otimizao numrica baseada
no mtodo de Newton. Ela exige uma grande complexidade computacional e
quantidade de memria.

38
3 Construo do Prottipo

A construo da parte mecnica da mesa de automao foi realizada como


segue abaixo.

3.1

Materiais Utilizados

Foram utilizados os seguintes materiais na construo da mesa:

1 folha de papel carto branco;

1 folha de papel dupla face branco;

1 fita crepe;

1 projeto CAD desenvolvido no Inventor como molde;

4 parafusos de 3 mm;

5 parafusos de 4 mm;

Arduino UNO;

Chapas galvanizadas 1 mm de 217x329mm, 58x33mm e 50x35mm;

Chapas galvanizada 2 mm de 150x100mm, 30x250mm e 30x150;

Cola branca comum;

Cola epoxy;

Divinycell;

Dois LEDs brancos de alto brilho;

Motor de passo de 5 V com driver ULN2003;

Servomotor TowerPro 9g com torque de 1,8 kgf;

Tinta spray preto fosco;

Webcam;

As ferramentas utilizadas para confeco so mostradas a seguir:

39

3.2

Alicate;

Brocas de 2 mm, 3 mm, 4 mm e 10 mm;

Calandra viradeira de chapa;

Chave de fenda;

Esquadro;

Furadeira;

Guilhotina;

Morsa;

Mini retfica;

Martelo;

Puno de marcao;

Rgua 30cm;

Riscador;

Tesoura comum;

Tesoura de cortar chapa;

Procedimentos

Inicialmente, o molde da mesa foi colado na chapa galvanizada de 2 mm


utilizando cola branca comum, figura 15 (a), e, com auxlio de uma rgua e de um
riscador, foi delimitado onde a guilhotina iria cortar a chapa, o que foi realizado em
seguida, figura 15 (b).

40
Figura 15 - Primeiro passo para construo da mesa (a) colagem do molde na chapa
galvanizada de 1mm; (b) delimitando o espao para corte; (c) chapa riscada, pronta para corte;
(d) corte na guilhotina.

Fonte: o autor, 2015.

Logo depois, a mesa foi cortada com uma tesoura para chapa e foi utilizada a
furadeira com as brocas de 4 mm e 10 mm nos locais indicados no molde, figura 16.
Figura 16 - Segundo passo (a) mesa j cortada na guilhotina; (b) mesa com todos os cortes e
furos necessrios.

Fonte: o autor, 2015.

41
Para fixao do motor de passo, foi utilizada uma cola epoxy e parafusos, como
mostrado na figura 17.
Figura 17 - Fixao do motor de passo.

Fonte: o autor, 2015.

Utilizando uma chapa galvanizada de 1 mm, foram feitos os apoios da mesa e


utilizados parafusos para sua unio com a mesma, figura 18.
Figura 18 - Mesa sem esptula.

Fonte: o autor, 2015.

Para a construo da esptula, onde so colocados os resistores, foram


utilizadas chapas galvanizadas de 2 mm e tinta spray preto fosco. Para fixao do

42
servo estrutura, fez-se uso de divinycell e cola epoxy. E, ainda, foi construda uma
caixa com folha branca dupla face e papel carto com dois LEDs brancos de alto brilho
em sua estrutura para iluminao do resistor dentro da caixa, figura 19.
Figura 19 - Esptula da mesa.

E, por fim, foi construdo um suporte para a webcam na mesa. A mesa completa
est apresentada na figura abaixo.
Figura 20 - Mesa automtica.

Fonte: o autor, 2015.

43
4 Desenvolvimento do Sistema Automtico

Conforme os objetivos apresentados, a proposta deste trabalho a separao


de resistores por valores de resistncia, os quais so dados pelo padro de cores
apresentado no resistor.
Para a construo da mesa automtica, foi realizada uma modelagem da mesa
no software Inventor, onde foram colocadas as dimenses da mesa, da esptula,
onde os resistores sero colocados, e dos atuadores e, a partir disso, foram simulados
os movimentos que a mesa realizar. O sistema desenhado no Inventor mostrado
na figura 21.
Figura 21 - Modelagem da mesa automtica no Inventor.

Fonte: o autor, 2015.

Para controle dos atuadores, estes foram conectados fisicamente ao Arduino,


que uma plataforma de prototipagem eletrnica composta por um controlador,
entradas e sadas digitais e analgicas e linguagem prpria de programao. Ele foi,
ento, integrado ao software MATLAB e, para isso, foram seguidos os passos
mostrados no Anexo A.
O servo coloca a esptula 30, inicialmente, de modo que todos os resistores
sempre fiquem encostados na parede da caixa, a uma mesma distncia da cmera.

44
Ao receber o resistor, ele deixa a esptula em sua posio original, horizontal. Ento,
a rede neural reconhece o resistor e manda o comando para o motor de passo girar o
ngulo correspondente ao tipo de resistor, tabela 1, de modo que ele seja depositado
no local correto.
Tabela 1 - ngulo de giro do motor de passo correspondente para cada tipo de resistor.

Resistores

ngulo que o motor de

Sada

passo ir girar
33,8

72 para direita

1000

12

144 para direita

0100

47,8

72 para esquerda

0010

47

144 para esquerda

0001

Desse modo, quando o motor de passo chegar a sua posio final o servo
acionado para mover 30 para baixo de modo a despejar o resistor e depois voltar a
sua posio inicial juntamente com o motor de passo.
Posteriormente, a tarefa realizada foi a de escolher os parmetros e mtodos
utilizados no sistema de reconhecimento. Foi selecionada, para hardware de

45
aquisio da imagem, uma cmera webcam, com as caractersticas apresentadas na
tabela 2, obtidas na sua conexo com o software MATLAB. A escolha se deu devido
a disponibilidade e baixo custo.
Tabela 2 Dados da webcam utilizada.

Nome

Microsoft LifeCam VX-800

Resoluo mxima

640x480

Balano de branco

6500

Ganho

34

Saturao

Brilho

Contraste

10

Para fazer a conexo do componente com o software utilizado no trabalho, o


MATLAB, utilizou-se o pacote de suporte de hardware para webcams. Assim, foram
realizados os passos apresentados no Anexo B para obteno desse pacote com o
Matlab 2014b.
O reconhecimento do padro do resistor foi feito atravs da cor, como j
mencionado. Porm, existe um grande problema nesse tipo de reconhecimento,
quando a iluminao no constante, a preciso do reconhecimento diminui
significativamente, j que a aparncia da cor fortemente afetada pela luminosidade
(GEVERS; SMEULDERS, 1999).
Em um ambiente aberto no possvel fazer o controle da iluminao. Por isso,
o sistema foi isolado da iluminao externa e foram colocados dois LEDs brancos de
alto brilho como nica forma de iluminao dos resistores, como mostrado na figura
22.

46
Figura 22 - Caixa para colocar o resistor a ser analisado.

Fonte: o autor, 2015.

Aps a aquisio, a imagem cortada de modo a separar o resistor para


posterior tratamento. Delimitou-se uma faixa de corte da imagem baseada no princpio
de que o resistor sempre estar no fundo da caixa, j que a esptula estar inclinada
para recepo do mesmo. O corte mostrado na figura 23.
Figura 23 - Corte da imagem obtida pela webcam: (a) imagem original; (b) imagem aps corte.

Fonte: o autor, 2015.

Em seguida, a imagem levada para etapa de extrao de atributos de modo


a selecionar as caractersticas que devem ser levadas em considerao para o
reconhecimento de padres.
Nesse caso, o importante so as caractersticas de cores, pois elas vo
determinar o valor da resistncia de cada resistor. Assim, para esse fim, optou-se pelo
descritor de cores chamado BIC (Border/Interior Classification). Esse mtodo foi
escolhido por apresentar uma grande eficincia mesmo para imagens com baixas
resolues, como a desse trabalho (PICON; PONTI, 2011).

47
A quantizao escolhida foi a de 64 cores, pela facilidade de implementao,
mesmo sabendo que ela no to mais eficiente do que a de 16 cores e que os dados
aumentam de quantidade, como j mencionado. Porm, a quantidade de dados que
sa desse mtodo, para esse nmero de cores, que so 128, bem inferior ao nmero
de dados apresentados inicialmente, ou seja, ele bastante eficiente na extrao de
caracterstica e cumpre o requisito da reduo dos dados iniciais.
Outro recurso utilizado para obteno das cores apresentadas no resistor foi o
histograma. Os dois mtodos foram comparados em termos de eficincia.
No treinamento, utilizou-se a funo do MATLAB newff(). So 128
elementos de entrada da rede para o algoritmo BIC e 64 para o Histograma e foram
escolhidos 20 neurnios nas duas camadas intermedirias e quatro na ltima camada
intermediria para a arquitetura de rede mais sofisticada, como mostrado na figura 24.
Em seguida, foi feita outra rede com apenas duas camadas intermedirias com dez
neurnios cada e outra com 24 cada, com o intuito de comparar a resposta.
Figura 24 - Estrutura de uma das redes utilizadas.

Fonte: MATLAB, 2015.

A funo de transferncia utilizada nas camadas intermedirias foi a sigmide,


pois os valores de sada sero sempre positivos entre zero e um e uma funo
derivvel em todo o intervalo de tempo, como utilizado em MLP. Assim, a resposta
sair compatvel com o proposto para as sadas, j mostrado na tabela 1. Na camada
de sada foi utilizada a funo linear.
O aprendizado foi feito com o algoritmo de retropropagao LevenbergMarquardt, que o mais rpido e mais recomendado para esse tipo de algoritmo
supervisionado.
Algumas das imagens utilizadas no treinamento so apresentadas na figura 25.

48
Figura 25 - Imagens utilizadas no treinamento da rede neural.

Fonte: o autor, 2015.

49
Assim, o sistema de automao construdo segue os passos apresentados na
figura 26.

Figura 26 Fluxograma do sistema.

Fonte: o autor, 2015.

50
5 Resultados e Discusso

O maior desafio no projeto de uma rede neural dimension-la, de modo que


ela atenda complexidade do problema em questo e seja a mais simples possvel.
A escolha dos seus parmetros de arquitetura da rede um tanto emprica, j que no
se pode afirmar a existncia de uma regra geral que os defina com preciso para a
resoluo de um determinado problema (BRAGA; LUDEMIR; CARVALHO, 2011).
Dois parmetros que alteram bruscamente o desempenho da rede so o
nmero de neurnios por camada e a quantidade de camadas intermedirias. Para
esta, sabe-se que, para um bom nmero delas, possvel obter representaes para
qualquer conjunto de dados de entrada. De acordo com Cybenko (1988), duas
camadas ocultas o necessrio para obter a aproximao de qualquer funo.
A quantidade de neurnios define a capacidade da rede para a resoluo de
problemas de um certo grau de dificuldade. Quanto maior o nmero de neurnios por
camada de rede, maior a sua complexidade e abrangncia na quantidade de solues
possveis, aumentando, em geral, a qualidade da aproximao resultante.
No entanto, um aumento excessivo desse nmero provoca efeitos do
superdimensionamento. Estes so devidos ao aumento de solues possveis com o
aumento de neurnios, que faz com que o nmero de solues boas fique menor em
relao ao nmero de todas solues.
Assim, o objetivo construir uma rede com arquitetura mnima a qual atenda
as exigncias de minimizao do erro quadrtico.
Foram criados trs tipos de redes neurais: uma mais simples com apenas duas
camadas ocultas com 10 neurnios cada (Rede 01), outra com 24 neurnios cada
(Rede 02) e uma ltima com trs camadas intermedirias de 20 neurnios as duas
primeiras e a outra com quatro (Rede 03). Para as duas ltimas redes, ainda foram
testados dois tipos de descritores de cores, o BIC e o histograma.
As amostras foram separadas em dois conjuntos. Um para ser usado no
treinamento, constituda de entrada e sada desejada, com 120 delas, e outro para
posterior simulao da rede e comparao dos resultados, com somente dados de
entrada, contendo 60 amostras.

51
No treinamento da rede, os dados so divididos em trs conjuntos (BEALE;
HAGAN; DEMUTH, 2015):

Conjunto de Treinamento: usado para calcular o gradiente e atualizar os


pesos da rede e bias.

Conjunto de Validao: o seu erro monitorado durante o processo de


treinamento at atingir o erro mnimo e a, ento, os pesos e bias so salvos.

Conjunto de Teste: no utilizado durante o treinamento e o seu erro


calculado.

Desse modo, 70% das amostras foram para o conjunto de treinamento, 15%
para o de validao e os outros 15% para o de teste, com os dados escolhidos de
forma aleatria.
Nos treinamentos, o critrio de parada baseado no nmero de iteraes
sucessivas, onde a performace de validao, dada nesse caso pelo erro mdio
quadrtico, no decresce. Quando esse valor chega a seis, o treinamento para. Esse
critrio pode ser alterado, ajustando o parmetro net.trainParam.max_fail.
Os trs tipos de rede foram comparados, como apresentado na tabela 3, de
modo a escolher a melhor arquitetura para a resoluo desse problema e o melhor
descritor de cores entre os apresentados.
Tabela 3 Comparao entre as diferentes redes neurais utilizando cada um dos descritores
de cor.
Parmetros

Rede 01

Rede 02

Rede 03

BIC

Histograma

BIC

Histograma

BIC

Histograma

10

30700x10-7

0,4x10-7

2088x10-7

4,9x10-7

9,17x10-7

4,8x10-7

0,99669

0,99989

0,99999

Nmero de

20

13

17

28

32

Tempo de
treinamento
(s)
Erro mdio
quadrtico

pocas

52
Pode-se ver que quanto maior o nmero de pocas (iteraes), maior o
aprendizado da rede e menor o erro mdio quadrtico apresentado por ela, na sua
melhor performace, que quando os erros e bias so salvos.
O valor de R representa a relao entre a sada dada pela rede e a sada
desejada. Para o valor de R igual a um, tem-se o resultado perfeito, que quando
obtm-se, atravs da rede, a sada desejada, que o caso de todas as redes
apresentadas quando utilizado o Histograma como descritor.
Quanto maior o nmero de neurnios, maior o tempo gasto no treinamento
devido aos clculos feitos ao longo da rede para adaptao dos pesos de modo a
obter a sada desejada. Isso comprovado pela tabela 3, onde observa-se que a rede
com mais neurnios, possui um maior tempo de treinamento.
Assim, pode-se perceber que a rede com melhor desempenho foi a primeira
rede utilizando o Histograma, pois apresentou o menor tempo de treinamento e o
menor erro mdio quadrtico.
Em seguida, foram preparadas 60 amostras contendo 15 de cada tipo de
resistor para simular a rede j treinada e avaliar sua eficincia. Assim, foram
construdos grficos comparando a sada desejada que um para cada tipo de resistor
com a sada obtida.
Para a rede com trs camadas contendo 10 neurnios cada camada
intermediria, obteve os grficos da figura 27, considerando a sada ideal como um.

Figura 27 Sada da rede 01 com (a) descritor BIC; (b) histograma.

53
No grfico da figura 27 (a), pode-se observar o grande erro mostrado
anteriormente na tabela 3, refletindo no valor da sada. Na figura 27 (b), encontra-se
o mesmo erro nos sete primeiros valores e no outro, a sada praticamente ideal.
Para a rede 02, os mesmos grficos foram feitos, figura 28. Pode-se ver que o
histograma continua mais preciso que o descritor BIC, mas que nessa arquitetura,
mesmo para esse descritor, ele eficaz no reconhecimento.
Figura 28 - Sada da rede 02 para (a) descritor BIC; (b) histograma.

Para a rede 03, tem-se os grficos apresentados abaixo, figura 29.


Figura 29 - Sada para rede 03 com (a) descritor BIC; (b) histograma.

54
Para o descritor BIC, pode-se ver que uma rede com mais camadas possui uma
melhor resposta e, para o histograma, uma rede mais simples to eficiente quanto
uma mais sofisticada.
Vale ressaltar que em cada treinamento realizado na rede neural, os
parmetros so diferentes e podem produzir diferentes solues. Porm, mesmo
passando por diferentes treinamentos, a rede escolhida continua sendo a melhor.

55
6 Concluso

O principal objetivo desse trabalho foi a construo de uma mesa que


reconhecesse automaticamente padres de cores de resistores diferentes e os
separassem de acordo com o valor da sua respectiva resistncia, utilizando redes
neurais.
Algumas topologias de rede foram analisadas e comparadas, chegando a
concluso de que uma rede simples com apenas duas camadas intermedirias e dez
neurnios por camadas seria bastante eficiente e precisa para esse sistema de
reconhecimento, utilizando histograma como mtodo de extrao de caractersticas.
O que comprova o bom desempenho da rede de duas camadas ocultas abordado por
Cybenko (1988).
Para esse problema, o histograma se apresentou bem mais preciso do que o
descritor BIC, isso se deve aos erros de identificao do que so pixels de borda e de
interior. A eficincia do descritor BIC

para o reconhecimento aumentou

significativamente com o aumento da complexidade da rede neural, obtendo uma boa


aproximao na resposta.
Outra fonte de erros aqui apresentados que o histograma, utilizado nos dois
mtodos de extrao de caractersticas, bastante sensvel iluminao. Seus
valores so alterados significativamente para uma pequena mudana na luminosidade
do resistor, fazendo com que o reconhecimento, em alguns casos, no se torne
possvel.
Uma limitao para esse projeto que os descritores de cor, aqui utilizados,
no diferenciam a ordem das cores no resistor, gerando erros, pois a ordem altera o
valor da resistncia. Assim, resistores com mesmas cores e diferentes resistncias
no sero separados.
Este trabalho possui inmeras aplicaes, uma delas aqui, no Vale do So
Francisco, a diviso de frutas por maturao, o que bastante utilizado nas frutas
para exportao, ou, at mesmo, para separar as que esto apodrecidas, que no
servem mais para o consumo.

56
Alm disso, mudando-se o mtodo de extrao de caracterstica para um
descritor de forma, pode-se separar objetos por tamanho, detectar falhas na produo
de determinado produto e, tambm, criar sistemas de segurana com reconhecimento
de digital (utilizado em caixas eletrnicos), de faces, entre outros.

6.1

Sugestes para trabalhos futuros

Desenvolver um algoritmo que diferencie resistores no s pela cor como pela


ordem delas;

Elaborar um algoritmo que desempenhe a funo de um descritor de cores e


que seja insensvel iluminao;

Desenvolver um mtodo que escolha a arquitetura de uma rede neural para


determinado problema.

57
7 Referncias

ALMEIDA, J.; ROCHA, A.; TORRES, R.; GOLDENSTEIN, S. Making colors worth
more than a thousand words. ACM Symposium on Applied Computing (SAC
2008), 1180-1186, 2008.

ANNADURAI, S. Fundamentals of Digital Image Processing. Pearson Education


India. 2007.
AZEVEDO, E.; CONCI, A.; LETA, F. R. Computao Grfica: Teoria e Prtica. Vol
2. Rio de Janeiro: Elsevier. 2008.

BARRETO, J. M. Inteligncia Artificial no limiar do Sculo XXI. 3 ed.


Florianpolis. Ppp edies. 2001.

BEALE, M. H.; HAGAN, M. T.; DEMUTH, H. B. Neural Network Toolbox Users


guide. The MathWorks, Inc. 2015.

BOLTON, W. Instrumentao & controle. Curitiba: Hemus, 1933.

BONACORSO, N.G.; NOLL, V. Automao Eletropneumtica. 6 ed. So Paulo:


rica, 2006.

BRAGA, A. P.; LUDEMIR, T. B.; CARVALHO, A. P. L. F. Redes neurais artificiais:


Teoria e aplicaes. 2 ed. Rio de Janeiro: LTC, 2011.

CALHEIROS, V. Reconhecimento de Padres. Universidade Federal de


Pernambuco. Disponvel em: <
http://www.cin.ufpe.br/~if114/Monografias/Reconhecimento/ >. Acesso em: 01. fev.
2012.

CAMPOS, M. M., SAITO, K. Sistemas Inteligentes em Controle e Automao de


Processos. Ed. Cincia Moderna, 2004.

CHAUVIN, Y.; RUMELHART, David E. Backpropagation: Theory, Architectures,


and Applications. Lawrence Erlbaum, NJ, 1995.

58

CRISTINA, M. Uso de Redes Neurais para o Reconhecimento de Padres.


Trabalho da disciplina Arquiteturas Especiais de Computadores. Universidade
Federal do Rio Grande do Sul, 2005.

CYBENKO, G. Continuous valued neural networks with two hidden layers are
sufficient. Technical report, Departament of Computer Science, Tufts University,
1988.
DUNN, W. C. Fundamentos de instrumentao industrial e controle de
processos. Porto Alegre: Bookman, 2013.

ESCOBAR, L. C.; PONTI, M. P. Quantizao de imagens para gerao de


descritores compactos de cor e textura. Instituto de Cincias Matemticas e de
Computao - Universidade de So Paulo, 2011.

GEVERS, T.; SMEULDERS, A. Color-based object recognition. Pattern


Recognition 32, 453464, 1999.

GONZALES, R. C.; WOODS, R. E. Digital Image Processing. University of


Tennessee Perceptics Corporation, 1992.

HAYKIN, S. Redes Neurais: Princpios e prtica. 2.ed. Porto Alegre: Bookman,


2001.

KOVCS, Z. L. Redes neurais artificiais: Fundamentos e aplicaes. 4.ed. So


Paulo: Livraria da Fsica, 2002.

LUDWIG, O. Jr.; COSTA, E.M.M., Redes Neurais: Fundamentos e Aplicaes


com Programas em C. Ed. Cincia Moderna, Rio de Janeiro, RJ, 2007.

MARQUES, O.; VIEIRA, H. Processamento Digital de Imagens. Rio de Janeiro:


Brasport, 1999.

MINSKY, M.; PAPERT, S. Perceptrons. MIT Press, Cambridge: 1969.

MORAES, C. C. de; CASTRUCCI, P. de L. Engenharia de automao industrial.


2. ed. - Rio de Janeiro: LTC, 2007.

59

NORVIG, P.; RUSSEL, S. Inteligncia Artificial. 3. ed. 2013. Traduo Regina


Clia Simille. Rio de Janeiro: Elsevier, 2013.

PETER, J. The neural approach to pattern recognition, 2005. Ubiquity: An ACM IT


Magazine and forum - http://www.acm.org/ubiquity/views/v5i7_jesan.html - Acessado
em: 5 jan. 2012.

PESSA, M. S. de P.; SPINOLA, M. de M. Introduo Automao. 1. ed. So


Paulo: Elsevier Editora Ltda, 2014.

PICON, C.; ROSSI, I.; PONTI, M. P. Anlise da classificao de imagens por


descritores de cor utilizando vrias resolues. Em SIBGRAPI 2011 Workshop
of Undergraduate Works (WUW), 2011.

ROSENBLATT, F. The perceptron: a probabilistic model for information storage


and retrieval in the brain. Psychological Review, v. 65, p. 386-408, 1958.

SIGHIERI, L.; NISHINARI, A. Controle automtico de processos industriais:


instrumentao. 2. ed. So Paulo: Edgard Blcher, 1973.

STEHLING, R. O.; NASCIMENTO, M. A.; FALCO, A. X. A compact and efficient


image retrieval approach based on border/interior pixel classification. Em
CIKM02 - 11th ACM Int Conf Information Knowledge Management, 2002.

THEODORIDIS, S.; KOUTROUMBAS, K. Pattern Recognition. Academic Press,


1999.

60
ANEXOS

ANEXO A Integrao do Arduino ao MATLAB 2014b


Para conectar o Arduino ao MATLAB de modo que todo o controle seja feito
diretamente na plataforma do MATLAB, foram seguidos os passos apresentados a
seguir:
1) Baixar

arquivo

ArduinoIO

pelo

site

http://www.mathworks.com/matlabcentral/fileexchange/32374-matlab-supportpackage-for-arduino-aka-arduinoio-package?download=true,

com

as

bibliotecas necessrias para conexo.


2) Copiar a pasta pde do arquivo ArduinoIO na pasta de bibliotecas do arduino,
como mostrado na figura 30.
Figura 30 - Colar arquivo "pde" na pasta de biblioteca do arduino.

3) No MATLAB, na aba Home, em Environment, clicar em Set Path.


Escolher Add with subfolders e adicionar o arquivo ArduinoIO, salvar e
fechar.

61
4) Ir na plataforma de programao do arduino e, com o arduino conectado ao
computador, abrir o programa adioes em pde e compil-lo.
5) Por ltimo, ver em que porta o arduino est conectado (X = porta) e escrever
no prompt de comando do MATLAB: >> a = arduino(COMX);.
Das prximas vezes, a conexo ser feita apenas com o ltimo passo. E se o
arduino estiver com outro programa gravado, repetir o passo 4.

ANEXO B Conexo da webcam com o Matlab 2014b


Para utilizar a webcam no projeto como hardware de aquisio da imagem, foi
necessrio instalar o pacote de suporte para webcams. Os passos seguidos so
apresentados abaixo.
Primeiro Passo: No ltimo quadro aba Home denominado Resources,
deve-se clicar no Add-Ons e, desse modo, aparecer Get Hardware Support
Packages, como mostrado na figura 31, escolher essa opo.
Figura 31 - Primeiro passo para conexo da Webcam com o Matlab.

Segundo passo: Escolher a opo Install from Internet e seguir a diante.

62
Figura 32 - Segundo passo.

Terceiro passo: Em Support for optar pela alternativa USB Webcams e


seguir.
Quarto passo: Fazer o login da sua conta no MathWorks.
Quinto passo: Aceitar os termos de uso e continuar.
Sexto passo: Clicar em Instalar, esperar alguns instantes e finalizar.
Depois de instalada, para ver quais cameras esto disponveis, digita-se na
linha de comando webcamlist e aparecer algo parecido ao da figura 33.
Figura 33 - Lista de cmeras.

Assim, ser observado qual das cmeras ser usada, nesse caso a segunda
cmera e digitar no prompt de comando do MATLAB cam = webcam(nmero da
camera) ou, nesse caso, cam = webcam(2). Assim, a webcam ser chamada de
cam.
Para alterar a resoluo da cmera, deve-se usar o comando cam.Resolution
atribuindo a ele o valor de resoluo desejado.