Você está na página 1de 4

RECONHECIMENTO EM TEMPO REAL DE CARTAS DE BARALHO

UTILIZANDO PROCESSAMENTO DIGITAL DE IMAGENS E REDES NEURAIS


Felipe Adriano da Silva Gonalves, Gustavo Gomes Mendona, Igor Borges Tavares, Keiji Yamanaka,
Vincius Ramos de Faria
Faculdade de Engenharia Eltrica (FEELT)
Universidade Federal de Uberlndia (UFU)
Av. Joo Naves de vila, 2160 - Bloco 3N - Campus Santa Mnica CEP: 38400-902
Uberlndia, MG, Brasil
e-mail: igorborgest@gmail.com

Resumo Tendo como foco o reconhecimento em


tempo real de cartas de baralho, foi elaborado um
trabalho utilizando tecnologias recentes e tcnicas
avanadas de processamento digital de imagem e
inteligncia artificial que conseguiu alcanar com xito o
objetivo proposto.

Palavras-Chave Baralho, Processamento Digital de


Imagens, Inteligncia Artificial.

REAL TIME CARDS RECOGNITION


USING IMAGE PROCESSING AND NEURAL
NETWORKS
Abstract Centering on the real-time recognition of
cards, we designed a study using recent technologies and Figura 1:Ilustrao Black-Jack.
advanced techniques of digital image processing and
artificial intelligence that could successfully achieve our
objective.
1

Keywords Cards, Digital Image Processing, Artificial II. SOFTWARE DE TREINAMENTO DA REDE
Intelligence.
Existem inmeras estratgias que podem ser adotadas
I. INTRODUO para treinar uma rede neural, estas so aplicadas conforme as
caractersticas e complexidade do problema. Neste trabalho
Reconhecimento de cartas de baralho podem ser em particular a rede neural ser utilizada para
utilizados para identificar possveis trapaceiros em jogos tais reconhecimento de padres em imagens de cartas de baralho.
como Black-Jack e pquer minimizando assim o tempo gasto esperado ento que a rede apreenda e separe os pontos em
por casas de jogos na tentativa de identificar indivduos que um espao, de tal forma que seja possvel diferenci-los.
tentam burlar o sistema, pode tambm ser utilizado para Estes pontos correspondem aos naipes, nmeros e letras de
calcular a probabilidade de vitria de uma mo. cada carta, binarizados e transformados em vetores de
Este artigo envolve binarizao, identificao de arestas, zeros e uns como na Figura 2.
processamento de manchas e correspondncia com os
padres de entrada atravs do uso de redes neurais
multicamadas.
A estratgia proposta possui um foco no baralho utilizado
para teste, trazendo resultados satisfatrios em condies
adversas o que demonstra a robustez das redes neurais.
Entretanto, o algoritmo de reconhecimento pode ser
facilmente ampliado para reconhecer qualquer tipo de
baralho levando assim a um sistema de inspeo de padres
de cartas universal.

1
Figura 2:Imagem binarizada

Para facilitar o treinamento da rede, para vez que esta Figura 4:Tela para definir a arquitetura da rede e os parmetros de
possa ser treinada vrias vezes com variados padres de treinamento.
entrada e permitir fcil modificao de parmetros como taxa
de aprendizagem nmeros de camadas foi construdo um Aps definidos os parmetros de treinamento, nmero
programa baseado no treinamento backpropagation para mximo de iteraes, erro mnimo e a arquitetura da rede
treinar as rede com os targets, que correspondem a converso neural o treinamento pode ser iniciado. O treinamento da
das imagens em vetores bitmap, como mostra a Figura 2. rede baseado no algoritmo backpropagation, onde o erro
Na primeira tela do programa utilizado para treinar a rede retro propagado para cada camada escondida permitindo
neural (Figura 3) possvel adicionar as entradas que so os assim treinar a rede at que se chegue em um erro mnimo
targets, imagens no formato .bmp, e as sadas. As sadas pr-estabelecido. No programa possvel acompanhar o
correspondem ao vetores que a rede dever vincular a cada desempenho da rede e verificar como vai o andamento de seu
target de entrada, por exemplo para imagem A0.bmp ser aprendizado a partir do grfico do erro (Figura 5), sendo
vinculado a sada [0 1], para imagem A1.bmp ser vinculado possvel parar o treinamento e comear outro caso os
a sada [0 1] e assim por diante. Neste programa possvel parmetros configurados no estejam coerentes.
treinar a rede com vrios padres da mesma letra, de forma
tornar a rede o mais generalista possvel, tornando-a capas de
reconhecer a letra A, por exemplo, estando deslocada, com
excesso de luminosidade ou algum borro.

Figura 5:Grfico do erro produzido pela rede neural.

Figura 3:Primeira tela do programa, definio dos targets. Terminado o treinamento possvel validar a rede,
colocando uma imagem bitmap em sua entrada e verificando
sua sada como pode ser visto na Figura 6. Caso a resposta
Uma vez definido os targets e suas sadas necessrio da rede esteja coerente e de acordo com as expectativa ela
treinar a rede. Entretanto antes de treinar a rede possvel pode ser serializada em um arquivo para ser desserializada e
ajustar os parmetros de treinamento como mostra a tela da utilizada em outro programa, que far o reconhecimento das
Figura 4. imagens.
Figura 6: Teste da rede neural.

Figura 8:Imagem original, Com escala de Cinza e Binarizada.

Dessa maneira, utilizado a classe BlobCounter, para


pegar as manchas, ou seja objetos que tenham entre 150 e
350 pixels de largura para conseguir reconhecer cartas tanto
deitadas quanto em p. A partir do reconhecimento dessas
manchas, para cada uma reconhecido as arestas e a partir
dessas, encontrado os vrtices quadrilteros. A carta ento
rotacionada se estiver deitada, e depois normalizada para
ambos os casos.
Aps isso, reconhecido quais manchas so cartas,
avaliado se as cartas so famlia real, ou seja, cartas J, Q,
Figura 7:Salvando Rede para ser reutilizada. K atravs das manchas na prpria carta, avaliando se h
alguma grande no centro da carta, se houver a carta uma
III. SOFTWARE PARA RECONHECIMENTO DAS famlia real, se no a carta numrica. Como o s de Espada
IMAGENS tem tambm uma mancha grande no centro da carta, as
cartas s foram separadas em ambos os conjuntos de carta.
Para reconhecer cartas de baralho, foi utilizado uma Com as cartas e os conjuntos definidos, parte-se para o
webcam e a ferramenta de programao .NET, o Microsoft reconhecimento de qual nmero ou letra a carta representa,
Visual Studio juntamente com o framework Aforge.NET para para isso so cortados dois bitmaps da carta original. A partir
reconhecimento digital de imagens. Foi utilizado uma classe do canto esquerdo do bitmap recorta-se dois retngulos, um
VideoCaptureDevice para reconhecer os frames da webcam e contendo a imagem da letra ou nmero e um para a imagem
dessa maneira, a cada dez frames a imagem da webcam do naipe. Novamente, a imagem binarizada em preto e
clonada como um bitmap, e atravs de uma classe feitos os branco e, ainda retirado os espaos em branco ao redor do
tratamentos para reconhecer as cartas do baralho. nmero, letra ou naipe para que o que se quer comparar fique
O bitmap que passado para a classe, ento clonado preenchendo o bitmap. Com isso, feito o
para preservar a imagem original. Com o bitmap clonado, redimensionamento para que as imagens dos naipes e
aplicado um filtro de escala de cinza e aps um utilizado de nmeros sejam do mesmo tamanho, ao treinado na Rede
um limiar (Threshold) para que a imagem fique binarizada Neural. Aps o redimensionamento, aplicado outro filtro
em preto e branco, conforme mostrada na Figura 8. com limiar para garantir a binarizao, j que com o
redimensionamento os pixels podem voltar ficarem cinza,
conforme apresentado na Figura 9.

Figura 9:Etapas do processamento de imagens para o naipe de


Copas.
http://users.isr.ist.utl.pt/~cjs/cadeiras/controlodata/Grup
Com o bitmap de cada naipe, nmero ou letra de cada carta o03.pdf>.Acesso em: 21 maio 2011.
mostrada na webcam, a verificao feita com a matriz de
pixel do bitmap, considerando pretos como 1, e brancos [2] Eduardo Camponogara. Clculo Numrico para
como 0. Essa matriz ento comparada com a Rede controle e automao. Santa Catarina, Departamento de
Neural retornando o valor da letra, do nmero ou da letra Automao e Sistemas Universidade Federal de Santa
encontrada. A carta encontrada ento adicionada a uma Catarina. Disponvel em:<
coleo de cartas e passada tela de exibio da webcam. http://www.das.ufsc.br/~camponog/Disciplinas/DAS-
Com o nome da carta, com os vrtices e arestas da mesma 5103/Slides/l21-numint-simpson.pdf >.Acesso em: 25
possvel desenhar um polgono ao redor da carta e escrever o maio 2011.
nome no padro s de Espadas, conforme apresentado na
Figura 10. [3] Eduardo Camponogara. Clculo Numrico para
controle e automao. Santa Catarina, Departamento de
Automao e Sistemas Universidade Federal de Santa
Catarina. Disponvel em:<
http://www.das.ufsc.br/~camponog/Disciplinas/DAS-
5103/Slides/l21-numint-simpson.pdf>.Acesso em: 27
maio 2011.

[4] ALTUN, Nazmi. Playing Card Recognition Using


AForge.Net Framework. ndia: Nazmi Altun, 2011.

[5] FAUSSET, Laurene. Fundamentals of Neural


Networks: Architectures, Algorithms, and Aplications.
ndia: Pearson Education Do Brasil, 2006.

Figura 10:Programa em funcionamento.

IV. CONCLUSO

Conclui-se ento que, os mtodos e algoritmos utilizados


em combinao com as estratgias descritas no artigo
alcanaram com bastante xito o objetivo proposto,
conseguindo reconhecer todas as cartas do baralho francs,
com quase 100% de acerto, mesmo sobre condies de
iluminao descontnua e outros desafios na exposio das
cartas.
O trabalho desenvolvido ainda tem bastante margem para
continuaes em projetos futuros, para que possa ser
utilizado em aplicaes reais, como o reconhecimento de
cartas parcialmente sobrepostas por objetos ou at mesmo
por outras cartas que estejam na mo do jogador. Tambm
sugerido que haja continuidade do trabalho na rea de
probabilidade e estatstica que procede a parte de
reconhecimento das cartas.

AGRADECIMENTOS

Os autores agradecem aos seus familiares pela


compreenso nos momentos de ausncia pela realizao do
trabalho, assim como pelo apoio incondicional.
A concluso do projeto tambm no seria possvel sem a
colaborao, do professor Keiji Yamanaka.

REFERNCIAS BIBLIOGRFICAS

[1] Eduardo Morgad. Cap. 8 - Controlador P-I-D. Portugal,


Departamento de Engenharia Eletrotcnica e de
Computadores (DEEC). Disponvel em:<