Escola Politécnica da Universidade de São Paulo Engenharia Elétrica Programa de Pós Graduação PCS 5711 - Computação Fuzzy - 1º Ciclo - 2000 Professor: Dr. Marco Túlio Carvalho de Andrade Trabalho Final Aluna: Marilza Antunes de Lemos [email protected] Controle Fuzzy na Qualidade de Imagens de um Sistema de Aquisição de Imagens para Aplicação de Multas de Trânsito Marilza A. Lemos Laboratório de Sistemas Integráveis (LSI) Escola Politécnica da Universidade de São Paulo (EPUSP) e-mail: [email protected] Resumo Este trabalho apresenta uma proposta de solução, usando tecnologia fuzzy, para controle da qualidade de imagens num sistema de aquisição de imagens para aplicação de multas de trânsito. Inicialmente descrevemos o atual sistema e o problema da qualidade da imagem o qual reflete diretamente a precisão na aplicação das multas. A solução fuzzy proposta envolve o controle de duas variáveis de saída a saber, brilho e contraste no sinal de entrada de vídeo. O controle é realizado em função de três variáveis de entrada: previsão do tempo, horário de captura da imagem e concentração de tons de cinza na imagem obtida anteriormente. Conhecimento especialista foi adquirido para modelagem das variáveis lingüisticas e construção da base de regras fuzzy. Os modelos foram refinados através de simulações realizadas com a ferramenta Matlab. 1 Introdução Técnicas da área da Inteligência Artificial (IA) têm sido amplamente utilizadas na construção de sistemas que necessitam manipular conhecimento humano especializado. 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üisticas e combiná-las através de regras fuzzy. Neste trabalho propomos a modelagem de um controlador fuzzy como solução para o problema de controle da qualidade de imagens de um sistema de aplicação de multas de trânsito. 1.1 O sistema atual O sistema de aquisição de imagens atual é controlado por um computador configurado com uma placa de aquisição e digitalização de imagens, acoplada à três cameras. Cada camera supervisiona uma das três pistas de uma rodovia. O sistema detecta a velocidade dos automóveis na pista, adquirindo a imagem dos veículos que ultrapassam a velocidade permitida. A figura 1 mostra a arquitetura básica do sistema. 2 d laço 1 laço 2 Detector de laço Câmera pista 1 2 3 Placa de aquisição de imagem Detector de velocidade RS232 Microcomputador Figura 1 - Componentes básicos do Sistema de Aquisição de Imagens para Aplicação de Multas de Trânsito O módulo detetor de laço detecta quando um automóvel passa sobre o primeiro laço iniciando a contagem de tempo até que o automóvel atinja o segundo laço. O tempo do percurso entre os dois laços - distância d - é enviada ao detetor de velocidade que obtém a velocidade do automóvel. A velocidade é enviada, via porta serial RS232, para o microcomputador onde um módulo de software verifica se a velocidade do automóvel ultrapassou o limite de velocidade permitida. Quando isto ocorre, a aquisição da imagem do automóvel é disparada e armazenada no sistema. 2 Descrição do Problema Uma vez que o objetivo final do sistema é aplicar multas sobre automóveis que ultrapassam o limite de velocidade permitida, é necessário obter máxima precisão na leitura da placa do automóvel a ser multado. Observou-se nos testes iniciais do sistema algumas dificuldades na interpretação de algumas placas devido à má qualidade das imagens obtidas. Dois fatores são responsáveis pela geração desse problema: a) Uma restrição de tempo precisa ser obedecida para captura da imagem. O sistema leva um determinado tempo para calcular a velocidade do automóvel e decidir se sua imagem deve ser capturada ou não. Enquanto isso o automóvel está se locomovendo na pista e se distanciando do campo de visão da camera. Para obter a imagem mais rapidamente, o sistema está configurado para captar apenas meio quadro (frame), o que corresponde a um tempo de captura de 1/60 s no modo entrelaçado, uma vez que a placa pode captar 30 frames entrelaçados por segundo. Isso gera uma degradação na qualidade da imagem. A imagem entrelaçada é composta da superposição de dois campos denominados campo par e campo impar. Meio quadro corresponde à captura de 3 um desses campos. Nesta aplicação, além da restrição de tempo, compor a imagem com os dois campos pode gerar uma imagem distorcida devido a alta velocidade do automóvel, uma vez que cada campo é obtido em tempos diferentes. A fim de atender tais requisitos, o sistema precisa trabalhar com a imagem de meio quadro, a qual não é tão bem definida como uma imagem de um quadro completo. b) Dependendo da luz do dia (ou noite) e das condições climáticas, a imagem do automóvel pode ser capturada com brilho e contraste não adequados, resultando em erro na leitura da placa ou perda da imagem. A regulagem automática da camera mostrou-se insuficiente para compensar as variações da luminosidade do ambiente na rodovia. Daí a necessidade de se implementar ajuste automático de brilho e contraste, segundo a luz do ambiente a fim de melhorar a qualidade da imagem. 3 Proposta de Solução A solução proposta neste trabalho para o problema descrito acima é a de controlar algumas características do sinal de entrada de vídeo na placa de aquisição de imagem, tais como brilho e contraste, baseando-se em informações sobre o horário de captura da imagem (período), previsão do tempo da região (tempo) e luminosidade da imagem obtida anteriormente (concentração). O objetivo do trabalho é propor um modelo fuzzy das variáveis envolvidas (brilho, contraste, período, tempo, concentração) para controle de brilho e contraste do sinal de entrada de vídeo através de um controlador fuzzy. 3.1 Descrição da placa de aquisição de imagens As funções principais da placa de aquisição de imagens é capturar a imagem, digitalizá-la e disponibilizá-la no sistema de memória do computador para apresentação no vídeo ou armazenamento em arquivo para posterior processamento. O sinal de entrada de vídeo na placa de aquisição de imagem pode ser controlado por software, através de um grupo de funções disponíveis no kit para desenvolvimento de software em linguagem C ou C++. Algumas características controláveis são: • • • • • • Padrão de vídeo: NTSC ou PAL; Seleção de canal de vídeo: 1, 2 e 3; Ajuste de cor: matiz e saturação; Contraste; Brilho; Captura do vídeo: start/stop; Como o sistema está implementado usando uma camera monocromática, pretende-se melhorar o sinal de vídeo captado, ajustando-se as variáveis contraste e brilho através de duas funções disponíveis na biblioteca de funções da placa: 4 • • configura_brilho (valor_do_brilho) configura_contraste (valor_de_contraste) A faixa de valores possíveis para os argumentos das funções são: • • valor_do_brilho: 0 a 255 (default 128) valor_de_contraste: 0 a 255 (default 128) 4 Modelamento Fuzzy do Conhecimento Especialista Durante os testes iniciais do sistema foi possível descobrir e acumular conhecimento especialista sobre a variação de brilho e contraste no sinal de entrada de vídeo e a qualidade da imagem obtida. Para isto, foram geradas várias entradas nas funções configura_brilho e configura_contraste e as imagens correspondentes foram analisadas. Observou-se ainda a influência das condições climáticas nas decisões de controle do brilho e contraste. Apesar da 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 no Matlab. 4.1 O Modelamento das Variáveis Lingüísticas Uma vez identificadas as variáveis lingüisticas, 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üistica período. Essa variável representa os vários períodos ao longo do dia, de acordo com a distribuição das 24 horas. Variável lingüistica: período Universo de discurso: 0-24 horas Valores lingüisticos: madrugada, manhã, tarde, noite Figura 2 - Função de pertinência da variável lingüistica período 5 A figura 3 mostra os conjuntos fuzzy da variável lingüistica tempo. Essa variável representa a previsão do tempo ao longo do dia. Variável lingüistica: tempo Universo de discurso: 0-100 Valores lingüisticos: chuvoso, nublado, ensolarado Figura 3 - Função de pertinência da variável lingüistica tempo 4.1.2 Saídas A figura 4 mostra os conjuntos fuzzy da variável lingüistica brilho. Essa variável representa os vários valores que podem ser atribuídos para controle da qualidade da imagem. Variável lingüistica: brilho Universo de discurso: 0-255 Valores lingüisticos: baixo, médio, alto Figura 4 - Função de pertinência da variável lingüística brilho 6 A figura 5 mostra os conjuntos fuzzy da variável lingüistica contraste. Essa variável representa os vários valores que podem ser atribuídos para controle da qualidade da imagem. Variável lingüistica: contraste Universo de discurso: 0-255 Valores lingüisticos: baixo, médio, alto Figura 5 - Função de pertinência da variável lingüistica contraste 4.2 A Base de Regras Fuzzy O conhecimento especialista que relaciona as diversas variáveis e seus respectivos valores foi resumido na tabela 1, a qual deu origem à base de regras fuzzy no formato if-then. Tempo Período madrugada manhã tarde noite chuvoso B=A B=A B=M B=A C=A C=M C=B C=A nublado B=A B=M B=A B=A C=M C=A C=M C=M ensolarado B=B C=B B=B C=M B - brilho C - contraste B - baixo M - médio A - alto Tabela 1 - Conhecimento especialista 1. If (período is madrugada) and (tempo is chuvoso) then (brilho is alto) 2. If (período is madrugada) and (tempo is chuvoso) then (contraste is alto) 3. If (período is madrugada) and (tempo is nublado) then (brilho is alto) 4. If (período is madrugada) and (tempo is nublado) then (contraste is medio) 5. If (período is manhã) and (tempo is chuvoso) then (brilho is alto) 6. If (período is manhã) and (tempo is chuvoso) then (contraste is medio) 7. If (período is manhã) and (tempo is nublado) then (brilho is medio) 8. If (período is manhã) and (tempo is nublado) then (contraste is alto) 7 9. If (período is manhã) and (tempo is ensolarado) then (brilho is baixo) 10. If (período is manhã) and (tempo is ensolarado) then (contraste is baixo) 11. If (período is tarde) and (tempo is chuvoso) then (brilho is medio) 12. If (período is tarde) and (tempo is chuvoso) then (contraste is baixo) 13. If (período is tarde) and (tempo is nublado) then (brilho is alto) 14. If (período is tarde) and (tempo is nublado) then (contraste is medio) 15. If (período is tarde) and (tempo is ensolarado) then (brilho is baixo) 16. If (período is tarde) and (tempo is ensolarado) then (contraste is medio) 17. If (período is noite) and (tempo is chuvoso) then (brilho is alto) 18. If (período is noite) and (tempo is chuvoso) then (contraste is alto) 19. If (período is noite) and (tempo is nublado) then (brilho is alto) 20. If (período is noite) and (tempo is nublado) then (contraste is medio) 5 Refinando o Controle: a análise da imagem anterior Uma variável de entrada adicional foi considerada a fim de inserir, no sistema, um ajuste fino no controle do brilho e contraste: a luminosidade da imagem captada anteriormente à imagem corrente. Para tal é realizado um pré-processamento da imagem digitalizada obtendo-se o seu histograma das tonalidades de cinza. O histograma é uma das formas mais comuns de se representar a distribuição dos níveis de cinza (NC) de uma imagem. O histograma fornece a informação de quantos pixels, na imagem, possuem um determinado NC, definido entre 0 (preto) a 255 (branco) para uma imagem quantificada em 8 bits. Normalmente tem-se no eixo X a distribuição dos NC e no eixo Y a freqüência em que ocorrem conforme exemplifica a figura 6. Figura 6 - Histograma da luminosidade de uma imagem 8 Após o processamento da imagem podemos obter, dentro de um universo de discurso normalizado (0-1), a concentração dos níveis de cinza, a qual foi representada em lógica fuzzy por dois conjuntos fuzzy: alta e baixa, conforme mostra a figura 7. Se a concentração é alta indica que a imagem está excessivamente escura. Se a concentração é baixa indica que a imagem está excessivamente clara. Assim, as seguintes regras fuzzy foram adicionadas na base de regras: 21. If (concentração is alta) then (brilho is alto) 22. If (concentração is alta) then (contraste is medio) 23. If (concentração is baixa) then (brilho is medio) 24. If (concentração is baixa) then (contraste is alto) Figura 7 - Função de pertinência da variável concentração 6 Um exemplo de aplicação das regras Durante um ciclo de simulação, o primeiro passo é a fuzificação, onde é realizada a classificação (matching) das variáveis de entrada com relação às respectivas variáveis lingüisticas. Neste exemplo, temos os seguintes valores de entrada para as variáveis modeladas: período = 12,3 h ⇒ é manhã com grau de pertinência 0,2 e tarde com grau 0,65 tempo = 67,3 ⇒ é nublado com grau de pertinência 0,8 e ensolarado com grau 0,2 concentração = 0,68 ⇒ é alta com grau de pertinência 0,3 e baixa com grau 0,7 Após essa classificação, o procedimento de inferência verifica na base de regras quais delas são aplicáveis, concluindo as seguintes regras: 7. If (período is manhã) and (tempo is nublado) then (brilho is médio) 8. If (período is manhã) and (tempo is nublado) then (contraste is alto) 9. If (período is manhã) and (tempo is ensolarado) then (brilho is baixo) 10. If (período is manhã) and (tempo is ensolarado) then (contraste is baixo) 9 13. If (período is tarde) and (tempo is nublado) then (brilho is alto) 14. If (período is tarde) and (tempo is nublado) then (contraste is médio) 15. If (período is tarde) and (tempo is ensolarado) then (brilho is baixo) 16. If (período is tarde) and (tempo is ensolarado) then (contraste is médio) 19. If (período is noite) and (tempo is nublado) then (brilho is alto) 20. If (período is noite) and (tempo is nublado) then (contraste is médio) 21. If (concentração é alta) then (brilho is alto) 22. If (concentração é alta) then (contraste is médio) 23. If (concentração é baixa) then (brilho is baixo) 24. If (concentração é baixa) then (contraste is alto) Para as regras com dois antecedentes relacionados com o conectivo and, o operador de interseção é aplicado, tomando o valor mínimo entre os dois antecedentes. Para cada regra, o grau de ativação da ação de controle é calculada de acordo com o resultado da combinação de antecedentes. Terminada a inferência, a ação final de controle é calculada a partir da união (operador máximo) das contribuições de cada regra ativada gerando uma única e nova função. Finalmente, no processo de defuzzificação foram determinados os sinais de controle de brilho e contraste a serem enviados para a placa (brilho = 120; contraste = 144). Neste exemplo utilizou-se o método do centro de área (CDA) que calcula o centro da área da função inferida. A figura 8 mostra o resultado dos processos descritos neste exemplo. Figura 8 - A projeção da aplicação das regras sobre as variáveis de saída 10 7 Considerações Finais A modelagem apresentada neste trabalho foi realizada no ambiente Matlab onde foi possível realizar várias simulações. A simulação é parcial pois não é possível obter as imagens com a aplicação do controle obtido sobre as variáveis brilho e contraste. Porém foi possível notar que a relação das variações das entradas refletem variações fortemente coerentes nas saídas, de acordo com o conhecimento especialista. Foi ainda importante observar que apesar do conhecimento especialista mostrar-se incompleto, impreciso e compactado, os modelos fuzzy cobrem essas lacunas fornecendo uma resposta adequada para quaisquer valores sugeridos na entrada do controlador fuzzy. O uso da ferramenta Matlab facilitou o trabalho de forma considerável pois fornece um ambiente muito amigável para ajustes nas curvas dos modelos fuzzy e observação do comportamento das variáveis de saída de acordo com a aplicação das regras fuzzy. 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. Gomide, F. A. C.; Gudwin, R. R.; Tanscheit, R. Conceitos Fundamentais da Teoria de Conjuntos Fuzzy, Lógica Fuzzy e Aplicacoes. Tutorial of the Sixth International Fuzzy Systems Association World Congress - IFSA, São Paulo, Brasil, July 22-28, 1995. Lindley, Craig A. Practical Image Processing in C. John Wiley & Sons, 1991. 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. 11