Escola Politécnica da Universidade de São Paulo



Classificação de Jogadores de Futebol pelo reconhecimento de cores utilizando decisão por Lógica Fuzzy

Rodrigo Dias Arnaut

Laboratório de Técnicas Inteligentes (LTI)

Escola Politécnica da Universidade de São Paulo (EPUSP)

E-mail: rodrigo.arnaut@.br

Resumo

Este trabalho apresenta uma proposta de solução, utilizando lógica fuzzy, para processamento de imagens estáticas, capturadas de câmeras de TV, aplicado à classificação de jogadores de futebol, para definir qual equipe ele possui o maior grau de pertinência, em relação ao padrão de cores RGB de cada região analisada. Inicialmente descrevemos o atual sistema, bem como as premissas, e o problema da classificação dos jogadores. A solução fuzzy proposta envolve o controle de uma variável de saída, equipe do jogador analisado, e de três variáveis de entrada: Cor R (Red) Médio, Cor G (Green) Médio e Cor B (Blue) Médio. Foi desenvolvida uma aplicação que empregou um conhecimento especialista para modelagem das variáveis lingüísticas e construção da base de regras fuzzy. Os modelos foram refinados através de simulações realizadas na aplicação desenvolvida em linguagem Visual Basic.

1 Introdução

Muitas pesquisas foram feitas na área da Inteligência Artificial (IA) para aplicações de processamento de imagens. Essas soluções propõem métodos para manipular algum conhecimento humano especialista. Um dos grandes gargalos na construção de sistemas que envolvem conhecimento especialista é a dificuldade na obtenção e modelagem desse conhecimento. Particularmente, a lógica fuzzy tem sido apresentada na literatura como uma das tecnologias de IA que efetivamente resolve com sucesso certa classe de problemas. Em contraste aos sistemas lógicos clássicos, a lógica fuzzy formaliza modos de raciocínio que são aproximados em vez de exatos. O especialista do domínio usa expressões vagas, termos aproximados e até mesmo raciocínio impreciso e incompleto para exprimir seu conhecimento. A lógica fuzzy vem de encontro a essa maneira de pensar, tipicamente humana, fornecendo ao engenheiro do conhecimento, meios adequados de representar tal conhecimento através de variáveis lingüísticas e combiná-las através de regras fuzzy. Neste trabalho propomos a modelagem de um controlador fuzzy como solução para o problema de classificação de jogadores de futebol, decidindo a qual equipe ele pertence.

1.1 Aplicação desenvolvida

O sistema desenvolvido atualmente é composto por uma aplicação (Figura 1), que importa arquivos gráficos no formato BMP, simulando uma captura de imagens geradas de alguma câmera dentro de um estádio de futebol, já que o escopo deste trabalho é na resolução do problema de classificação de jogadores, e por isso focamos nosso esforço para esta tarefa.

[pic]

Figura 1 – Tela da Aplicação desenvolvido em Linguagem Visual Basic

A Aplicação possui 4 módulos:

• Aquisição de imagem BMP, via importação de arquivo gráfico;

• Ferramenta para seleção manual do contorno do jogador desejado para calibração ou classificação;

• Calibração Inicial das duas equipes, para formação de uma “look up table”;

• Classificação de Jogador com a execução das Regras de Inferências Fuzzy.

2 Descrição do Problema

O Problema principal a ser resolvido é classificar qualquer jogador dentro de um campo de futebol (exceto goleiro), em imagens estáticas capturadas com câmeras de TV dentro de estádios de futebol, para aplicar os conceitos de Lógica Fuzzy baseados nas cores internas ao contorno selecionado pelo usuário partindo para uma definição de qual equipe o jogador possui o maior grau de pertinência, podendo este ser classificado como, por exemplo:

• Jogador pertence ao Time A ou Jogador pertence ao Time B;

• Incerteza (Podendo ser erro de decisão, ou algum outro elemento que esteja presente em excesso na área selecionada, tais como Fundo da Imagem, backgroud, Juiz, Goleiro, Gandula, Bola, etc).

As imagens estáticas são representadas por arquivos no formato BMP.

Como restrições para este problema, a seleção da área para classificação será feita por um retângulo escolhido por um usuário do sistema.

Será necessário ser feita uma calibração inicial dos limites de cores RGB, das duas equipes que participam da determinada partida de futebol. Esta calibração utiliza a área selecionada pelo usuário e efetua um cálculo simples, da média da somatória de todos os pixels internos ao retângulo. Pode ser utilizado qualquer jogador que esteja presente na imagem.

3 Proposta de Solução

A Solução proposta é um aplicativo desenvolvido em Linguagem Visual Basic, que manipula todas as informações do sistema e produz um resultado satisfatório neste domínio.

Inicialmente é necessário ser feita uma calibração inicial das duas equipes que participarão da partida de futebol (conforme exemplificado na figura 2).

Esta calibração é feita a partir do contorno do objeto desejado (retângulo do jogador), através de um cálculo baseado na média da somatória do código RGB das cores (RMédio, BMédio, GMédio). Este resultado é a base que alimentação uma “look up table” com a calibração inicial de cada equipe.

Assim, obtêm-se um código RGB CRISP médio. Este código é utilizado para compor os termos das variáveis lingüísticas, mínimo, médio e máximo. Os termos possuem 2 filtros de ajuste, que definem os limites de cada curva nas funções de pertinência (FFN-Flat Fuzzy Number, M1 a M4), ou seja, M1 - 30; M2 – 20; M3 + 20; M4 + 30 (valores em bits RGB).

Para a distribuição dos termos mínimo, médio e máximo na função de pertinência, é utilizado um terceiro filtro que define a distância entre o ponto central do cálculo realizado na calibração inicial (médio), ou seja, o ponto central dos termos mínimo e máximo são respectivamentes, + 50 e -50 pixels, em relação ao ponto médio.

Todos os filtros podem ser alterados com facilidade pela interface para ser ajustado nas condições iniciais do ambientes onde será realizada a partida (este ajuste está diretamente relacionado com a variação de cores existentes entre os diversos ângulos de captação das imagens, pois interfere nos limites das curvas na função de pertinência).

Com a função de pertinência pronta, o sistema inicia as 4 tarefas principais:

• Faz a Fuzzyficação para decidir qual o grau de pertinência que o “jogador” possui para a calibração inicial nas variáveis lingüísticas;

• Inferência Fuzzy, executando as regras impostas pelo sistema utilizando os valores das variáveis lingüísticas;

• Defuzzyficação, transformando os valores do resultado da Inferência Fuzzy, em valores CRISP de saída, que resultam na decisão de qual equipe pertence o jogador (área retangular) analisado.

|[pic] |[pic] |[pic] |

|[pic] |[pic] |[pic] |

|[pic] |[pic] |[pic] |

Figura 2 – Amostras de Imagens utilizadas na aplicação

4 Modelagem Fuzzy do Conhecimento Especialista

Para a modelagem do sistema foram utilizados testes de avaliação da variação nas cores RGB das imagens selecionadas, e convencionaram-se, a partir de um conhecimento especialista, parâmetros de ajustes, denominados “filtros”, que servem de base para a formação dos termos da função de pertinência.

Existem fatores do ambientes que influenciam diretamente o número RGB das imagens, como por exemplo, a luz ambiente, enquadramento do ângulo da câmera e foco da imagem. Mesmo com certo grau de incompletude e imprecisão do conhecimento obtido foi possível modelar as variáveis envolvidas, criar a base de regras fuzzy e gerar simulações satisfatórias na aplicação desenvolvida.

1. Modelagem das Variáveis Lingüísticas

Uma vez identificadas as variáveis lingüísticas, determinou-se para cada variável, seu universo de discurso, a partição do conjunto de termos e os respectivos conjuntos fuzzy.

4.1.1 Entradas

A figura 2 mostra os conjuntos fuzzy da variável lingüística RequipeA. Essa variável representa a variação na tonalidade da Cor Vermelho do padrão RGB de um jogador utilizado para calibração inicial da equipe A, na escala de 0 a 255, referente ao tamanho de um byte (oito bits).

Variável lingüística: RequipeA;

Universo de discurso dinâmico: 0-255 (um byte), depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo.

[pic]

Figura 3 - Função de pertinência da variável lingüística RequipeA, a partir de uma calibração inicial

Tabela 1 – Valores CRISP da variável lingüística RequipeA

|Mínimo: M1 = 0, M2 = 0, M3 = 18, M4 = 18 |

|Médio: M1 = 18, M2 = 28, M3 = 68, M4 = 78 |

|Máximo: M1= 68, M2 = 78, M3 = 118, M4 = 128 |

A figura 3 mostra os conjuntos fuzzy da variável lingüística GequipeA. Essa variável representa a variação na tonalidade da Cor Verde do padrão RGB de um jogador utilizado para calibração inicial da equipe A, na escala de 0 a 255, referente ao tamanho de 1 byte (8 bits).

Variável lingüística: GequipeA;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo.

[pic]

Figura 4 - Função de pertinência da variável lingüística GequipeA, a partir de uma calibração inicial

Tabela 2 – Valores CRISP da variável lingüística GequipeA

|Mínimo: M1 = 0, M2 = 0, M3 = 0, M4 = 14 |

|Médio: M1 = 0, M2 = 14, M3 = 54, M4 = 64 |

|Máximo:M1 = 54, M2 = 64, M3 = 104, M4 = 114 |

A figura 4 mostra os conjuntos fuzzy da variável lingüística BequipeA. Essa variável representa a variação na tonalidade da Cor Azul do padrão RGB de um jogador utilizado para calibração inicial da equipe A, na escala de 0 a 255, referente ao tamanho de 1 byte (8 bits).

Variável lingüística: BequipeA;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo..

[pic]

Figura 5 - Função de pertinência da variável lingüística BequipeA, a partir de uma calibração inicial

Tabela 3 – Valores CRISP da variável lingüística BRequipeA

|Mínimo: M1 = 0, M2 = 0, M3 = 15, M4 = 15 |

|Médio: M1 = 15, M2 = 25, M3 = 65, M4 = 75 |

|Máximo: M1 = 65, M2 = 75, M3 = 115, M4 = 125 |

A figura 5 mostra os conjuntos fuzzy da variável lingüística RequipeB. Essa variável representa a variação na tonalidade da Cor Vermelho do padrão RGB de um jogador utilizado para calibração inicial da equipe B, na escala de 0 a 255, referente ao tamanho de 1 byte (8 bits).

Variável lingüística: RequipeB;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo.

[pic]

Figura 6 - Função de pertinência da variável lingüística RequipeB, a partir de uma calibração inicial

Tabela 4 – Valores CRISP da variável lingüística RRequipeB

|Mínimo: M1 = 104, M2 = 114, M3 = 154, M4 = 164 |

|Médio: M1 = 154, M2 = 164, M3 = 204, M4 = 214 |

|Máximo: M1 = 204, M2 = 214, M3 = 254, M4 = 255 |

A figura 6 mostra os conjuntos fuzzy da variável lingüística GequipeB. Essa variável representa a variação na tonalidade da Cor Verde do padrão RGB de um jogador utilizado para calibração inicial da equipe B, na escala de 0 a 255, referente ao tamanho de um byte (oito bits).

Variável lingüística: GequipeB;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo.

[pic]

Figura 7 - Função de pertinência da variável lingüística GequipeB, a partir de uma calibração inicial

Tabela 5 – Valores CRISP da variável lingüística GRequipeB

|Mínimo: M1 = 86, M2 = 96, M3 = 136, M4 = 146 |

|Médio: M1 = 136, M2 = 146, M3 = 186, M4 = 196 |

|Máximo: M1= 186, M2 = 196, M3 = 236, M4 = 246 |

A figura 7 mostra os conjuntos fuzzy da variável lingüística BequipeB. Essa variável representa a variação na tonalidade da Cor Azul do padrão RGB de um jogador utilizado para calibração inicial da equipe A, na escala de 0 a 255, referente ao tamanho de um byte (oito bits).

Variável lingüística: BequipeB;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: mínimo, médio e máximo.

[pic]

Figura 8 - Função de pertinência da variável lingüística BequipeB, a partir de uma calibração inicial

Tabela 6 – Valores CRISP da variável lingüística GRequipeB

|Mínimo: M1 = 0, M2 = 0, M3 = 24, M4 = 34 |

|Médio: M1 = 24, M2 = 34, M3 = 74, M4 = 84 |

|Máximo: M1 = 74, M2 = 84, M3 = 124, M4 = 134 |

As variáveis de captura ou variáveis de seleção do Jogador são identificadas como Rmedio, Gmedio e Bmedio. Essas variáveis representam a variação na tonalidade da Cor Vermelho, Verde e Azul respectivamente do padrão RGB de um jogador selecionado, na escala de 0 a 255, referente ao tamanho de 1 byte (8 bits).

Variável lingüística: Rmedio;

Universo de discurso: 0-255 (um byte);

Valores lingüísticos: mínimo, médio e máximo.

Variável lingüística: Gmedio;

Universo de discurso: 0-255 (um byte);

Valores lingüísticos: mínimo, médio e máximo.

Variável lingüística: Bmedio;

Universo de discurso: 0-255 (um byte);

Valores lingüísticos: mínimo, médio e máximo.

4.1.2 Saídas

A figura9 mostra a aplicação com o jogador selecionado para análise, bem como o resultado obtido.

[pic]

Figura 9 – Tela da Aplicação desenvolvido em Linguagem Visual Basic

A figura 10 mostra os conjuntos fuzzy da variável lingüística Requipe. Essa variável representa os vários valores que podem ser atribuídos para controle da qualidade da imagem.

Variável lingüística: Requipe;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: RequipeA e RequipeB.

[pic]

Figura 10 - Função de pertinência da variável lingüística Requipe, a partir de uma calibração inicial

A figura 11 mostra os conjuntos fuzzy da variável lingüística Gequipe. Essa variável representa os vários valores que podem ser atribuídos para controle da qualidade da imagem.

Variável lingüística: Gequipe;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: GequipeA e GequipeB

[pic]

Figura 11 - Função de pertinência da variável lingüística Gequipe, a partir de uma calibração inicial

A figura 12 mostra os conjuntos fuzzy da variável lingüística Bequipe. Essa variável representa os vários valores que podem ser atribuídos para controle da qualidade da imagem.

Variável lingüística: Bequipe;

Universo de discurso dinâmico: 0-255 (um byte) , depende da calibração inicial;

Valores lingüísticos: equipeA, equipeB e indefinido.

[pic]

Figura 12 - Função de pertinência da variável lingüística Bequipe, a partir de uma calibração inicial

4.2 A Base de Regras Fuzzy

O conhecimento especialista que relaciona as variáveis e seus respectivos valores foi resumido na tabela 7, a qual deu origem à base de regras fuzzy no formato if-then.

Tabela 7 – Conhecimento Especialista

|RequipeA |mínimo |médio |máximo |

|Rmedio | | | |

|mínimo |Rmedio=RequipeA |Rmedio =Indefinido |Rmedio =Indefinido |

|médio |Rmedio =Indefinido |Rmedio =RequipeA |Rmedio =Indefinido |

|máximo |Rmedio =Indefinido |Rmedio =Indefinido |Rmedio =RequipeA |

|RequipeB |mínimo |médio |máximo |

|Rmedio | | | |

|mínimo |Rmedio =RequipeB |Rmedio =Indefinido |Rmedio =Indefinido |

|médio |Rmedio =Indefinido |Rmedio =RequipeB |Rmedio =Indefinido |

|máximo |Rmedio =Indefinido |Rmedio =Indefinido |Rmedio =RequipeB |

|GequipeA |mínimo |médio |máximo |

|Gmedio | | | |

|mínimo |Gmedio =GequipeA |Gmedio =Indefinido |Gmedio =Indefinido |

|médio |Gmedio =Indefinido |Gmedio =GequipeA |Gmedio =Indefinido |

|máximo |Gmedio =Indefinido |Gmedio =Indefinido |Gmedio =GequipeA |

|GequipeB |mínimo |médio |máximo |

|Gmedio | | | |

|mínimo |Gmedio =GequipeB |Gmedio =Indefinido |Gmedio =Indefinido |

|médio |Gmedio =Indefinido |Gmedio =GequipeB |Gmedio =Indefinido |

|máximo |Gmedio =Indefinido |Gmedio =Indefinido |Gmedio =GequipeB |

|BequipeA |mínimo |médio |máximo |

|Bmedio | | | |

|mínimo |Bmedio =BequipeA |Bmedio =Indefinido |Bmedio =Indefinido |

|médio |Bmedio =Indefinido |Bmedio =BequipeA |Bmedio =Indefinido |

|máximo |Bmedio =Indefinido |Bmedio =Indefinido |Bmedio =BequipeA |

|BequipeB |mínimo |médio |máximo |

|Bmedio | | | |

|mínimo |Bmedio =BequipeB |Bmedio =Indefinido |Bmedio =Indefinido |

|médio |Bmedio =Indefinido |Bmedio =BequipeB |Bmedio =Indefinido |

|máximo |Bmedio =Indefinido |Bmedio =Indefinido |Bmedio =BequipeB |

Uma seqüência de regras pode ser utilizada da seguinte forma:

1. If (RequipeA is mínimo) and (Rmedio is mínimo) then (Requipe = RequipeA)

2. If (RequipeA is médio) and (Rmedio is médio) then (Requipe = RequipeA)

3. If (RequipeA is máximo) and (Rmedio is máximo) then (Requipe =R equipeA)

4. If (GequipeA is mínimo) and (Gmedio is mínimo) then (Gequipe = GequipeA)

5. If (GequipeA is médio) and (Gmedio is médio) then (Gequipe = GequipeA)

6. If (GequipeA is máximo) and (Gmedio is máximo) then (Gequipe = GequipeA)

7. If (BequipeA is mínimo) and (Bmedio is mínimo) then (Bequipe = BequipeA)

8. If (BequipeA is médio) and (Bmedio is médio) then (Bequipe = BequipeA)

9. If (BequipeA is máximo) and (Bmedio is máximo) then (Bequipe = BequipeA)

10. If (RequipeB is mínimo) and (Rmedio is mínimo) then (Requipe = RequipeB)

11. If (RequipeB is médio) and (Rmedio is médio) then (Requipe = RequipeB)

12. If (RequipeB is máximo) and (Gmedio is máximo) then (Requipe = RequipeB)

13. If (GequipeB is mínimo) and (Gmedio is mínimo) then (Gequipe = GequipeB)

14. If (GequipeB is médio) and (Gmedio is médio) then (Gequipe = GequipeB)

15. If (GequipeB is máximo) and (Gmedio is máximo) then (Gequipe = GequipeB)

16. If (BequipeB is mínimo) and (Bmedio is mínimo) then (Bequipe = BequipeB)

17. If (BequipeB is médio) and (Bmedio is médio) then (Bequipe = BequipeB)

18. If (BequipeB is máximo) and (Bmedio is máximo) then (Bequipe = BequipeB)

A Aplicação Corometro, implementa este sistema, e perimite fazer testes para encontrar o melhor ajuste de acordo com a necessidade.

7 Considerações Finais

Com este estudo, foi possível comprovar que a verificação e classificação de cores de determinadas áreas de uma imagem (nesse caso um retângulo), pode ser facilmente implementado utilizando a Lógica Fuzzy, como uma ferramenta de decisão. Notamos que existem muitos estudos que podem complementar este trabalho, assim como avaliar outras formas de realizar a inferência Fuzzy, partindo até para conversão de códigos RGB (Red, Green Blue) para HLS (Hue, Luminance e Saturation). Como iniciativa para melhorar este algoritmo novos estudos são motivadores maiores para continuar compreendendo o domínio do conhecimento das cores nas imagens.

Referências Bibliográficas

Chuen Chien Lee, Fuzzy Logic in Control Systems: Fuzzy Logic Controller - Part I, IEEE

Transactions on Systems, Man, and Cybernetics, vol 20, no 2, March / April 1990.

Chuen Chien Lee, Fuzzy Logic in Control Systems: Fuzzy Logic Controller - Part II, IEEE

Transactions on Systems, Man, and Cybernetics, vol 20, no 2, March / April 1990.

Lotfi A. Zadeh, Outline of a New Approach to the Analysis of Complex Systems and

Decision Processes, IEEE Transactions on Systems, Man, and Cybernetics, vol SMC3, no

1, January 1973.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download