• Nenhum resultado encontrado

3.3 Revisão de Características

6.2.3 Extrator de Características

Este módulo é responsável por extrair, a partir de imagens de palavras segmentadas na forma de arquivos PNG (Portable Network Graphics), valores numéricos corres- pondentes às características exploradas neste trabalho. Este formato foi escolhido

por ser o mesmo presente no banco de dados público utilizado nos experimentos. O resultado desse processo é o armazenamento das seguintes informações para cada patch:

• Valores numéricos normalizados de todas as características; • Classe correspondente (manuscrito ou impresso);

• No caso de impressos, tipo de fonte (Times New Roman, Calibri, etc) e variação (normal, negrito ou itálico);

• Índice para separação dos dados em folds conforme será detalhado nos expe- rimentos (Capítulo 7).

Nesta proposta, adotamos 52 das características descritas no Capítulo 3. São elas: 1. Proporção de Aspecto (CAS1);

2. Razão entre a Zona Ascendente e o Corpo Principal (CAS2);

3. Razão entre a Zona Descendente e o Corpo Principal (CAS3);

4. Razão entre a Área e o Valor Máximo da Projeção Horizontal do Perfil Superior- Inferior (CP R1);

5. Variação da Projeção Vertical (CP R2);

6. Maior Diferença de Projeção Horizontal (CP R3);

7. Densidade Geral (CDE1);

8. Distribuição de Pixels (CDE2);

9. Razão entre Pontos da Linha Inferior e a Largura (CDE3);

10. Soma das Razões de Pixels de Cada Linha pela Largura (CDE4);

11. Razão entre o Maior Contorno Vertical e a Altura (CSE1);

12. Razão entre a Soma dos Comprimentos dos Contornos Verticais e a Área (CSE2);

13. Comprimento de Caminho Horizontal Máximo (CSE3);

14. Comprimento de Caminho Médio (CSE4);

16. Transições Verticais (CT R2);

17. Número de Pontos Máximos do Perfil Superior (CP E1);

18. Número de Pontos Mínimos do Perfil Superior (CP E2);

19. Número de Pontos Máximos do Perfil Inferior (CP E3);

20. Número de Pontos Mínimos do Perfil Inferior (CP E4);

21. Máximo Normalizado dos Pontos Máximos do Perfil Superior (CP E5);

22. Máximo Normalizado dos Pontos Mínimos do Perfil Superior (CP E6);

23. Máximo Normalizado dos Pontos Máximos do Perfil Inferior (CP E7);

24. Máximo Normalizado dos Pontos Mínimos do Perfil Inferior (CP E8);

25. Mínimo Normalizado dos Pontos Máximos do Perfil Superior (CP E9);

26. Mínimo Normalizado dos Pontos Mínimos do Perfil Superior (CP E10);

27. Mínimo Normalizado dos Pontos Máximos do Perfil Inferior (CP E11);

28. Mínimo Normalizado dos Pontos Mínimos do Perfil Inferior (CP E12);

29. Média Normalizada dos Pontos Máximos do Perfil Superior (CP E13);

30. Média Normalizada dos Pontos Mínimos do Perfil Superior (CP E14);

31. Média Normalizada dos Pontos Máximos do Perfil Inferior (CP E15);

32. Média Normalizada dos Pontos mínimos do Perfil inferior (CP E16);

33. Desvio Padrão dos Pontos Máximos do Perfil Superior (CP E17);

34. Desvio Padrão dos Pontos Mínimos do Perfil Superior (CP E18);

35. Desvio Padrão dos Pontos Máximos do Perfil Superior (CP E19);

36. Desvio Padrão dos Pontos Mínimos do Perfil Superior (CP E20);

37. Máximo Normalizado do Vetor de Diferenças de Máximos Superiores (CP E21);

38. Máximo Normalizado do Vetor de Diferenças de Mínimos Superiores (CP E22);

39. Máximo Normalizado do Vetor de Diferenças de Máximos Inferiores (CP E23);

41. Mínimo Normalizado do Vetor de Diferenças de Máximos Superiores (CP E25);

42. Mínimo Normalizado do Vetor de Diferenças de Mínimos Superiores (CP E26);

43. Mínimo Normalizado do Vetor de Diferenças de Máximos Inferiores (CP E27);

44. Mínimo Normalizado do Vetor de Diferenças de Mínimos Inferiores (CP E28);

45. Média do Vetor de Diferenças de Máximos Superiores (CP E29);

46. Média do Vetor de Diferenças de Máximos Inferiores (CP E30);

47. Média do Vetor de Diferenças de Mínimos Superiores (CP E31);

48. Média do Vetor de Diferenças de Mínimos Inferiores (CP E32);

49. Desvio Padrão do Vetor de Diferenças de Máximos Superiores (CP E33);

50. Desvio Padrão do Vetor de Diferenças de Máximos Inferiores (CP E34);

51. Desvio Padrão do Vetor de Diferenças de Mínimos Superiores (CP E35);

52. Desvio Padrão do Vetor de Diferenças de Mínimos Inferiores (CP E36).

O processo de extração de características promove ainda a binarização e normali- zação do banco de imagens. A binarização resulta na redução de dados a serem tratados, facilitando a extração de características. A normalização, por sua vez, garante uma maior homogeneidade em relação ao tamanho dos patches;

Desta forma, todas as características são extraídas a partir de imagens em branco e preto com 75 pixels de altura e largura proporcional. A altura de normalização dos patches foi definida em função da média de alturas conforme será detalhado do Capítulo 7.

O Extrator de Características providencia ainda a normalização dos valores numé- ricos de características extraídos a partir dos patches. Esta segunda normalização é necessária em decorrência da natureza das diversas características que as posici- ona em escalas de valores, muitas vezes, bastante diferentes. Esse processo ocorre segundo a seguinte expressão:

xnorm =

x − xmin

xmax− xmin

Sendo xnorm o valor normalizado calculado sobre o valor original x e xmin e xmax são

os valores mínimo e máximo do conjunto de dados. O resultado da normalização retornará valores de características entre 0 e 1.

6.2.4 Seletor de Características

Outro elemento importante é o Seletor de Características. Este módulo faz uso de um Algoritmo Genético binário para otimizar o resultado de classificação. A cada geração, o Seletor de Características submete a solução atual, ou seja, um cromossomo binário de tamanho igual ao número de características implementadas, ao Módulo Avaliador que retorna o erro de classificação obtido e verifica se o critério de parada foi atingido.

6.2.5 Avaliador

O Módulo Avaliador trabalha em conjunto com o Seletor de Características rece- bendo como parâmetro, a cada geração do AG, o cromossomo binário que identifica as características a serem consideradas em seu processo interno de classificação (seja usando kNN ou Redes Neurais). A relação entre o cromossomo binário e identifica- ção das característica selecionadas pode ser vista na Figura 6.3:

Figura 6.3: Relação entre cromossomo e características selecionadas

Sendo cada alelo binário e Gi o gene no locus i, sempre que o mesmo assumir valor

igual a 0 (zero) o Módulo Avaliador entenderá que a característica de igual posição não deverá ser considerada e, desta forma, não recuperá seus valores. No exemplo da imagem acima, C3, C5 e C8 ficariam desativadas e não seriam utilizadas para obtenção do erro de classificação. Este módulo trabalha então como Função de Avaliação para o Algoritmo Genético que recebe a taxa de erro de classificação do mesmo como parâmetro de minimização a cada nova geração.

6.3 Arquitetura de Testes

Na fase de teste verificamos se, com a melhor solução apontada na fase de treina- mento, o erro de classificação se comporta de maneira semelhante para um conjunto

de dados diferente fazendo novamente uso de classificadores kNN e Redes Neurais. Os resultados desta etapa podem demonstrar a hipótese de que os resultados obti- dos, após o processo de redução de dimensionalidade, devam ser iguais ou melhores aos obtidos sem seleção de características. Para este fim, fazemos uso da seguinte arquitetura:

Figura 6.4: Arquitetura de Teste

Como vimos, ao compor a base de dados normalizados, uma parte dos dados (1 10) é isolada do processo de seleção de características para uso na etapa de teste. Os dados de teste (1) devem ser obtidos de maneira aleatória e igualmente distribuídas entre manuscritos e impressos a partir do total de dados disponíveis.

Na Figura 6.4 observamos que, na etapa de teste, fazemos uso de um classificador (3) que recebe como parâmetro, além de dados de teste, o resultado da etapa de treinamento, ou seja, o cromossomo binário que representa a melhor solução após o processo de otimização com AG (2).

Na etapa de teste, o classificador faz dois treinamentos. No primeiro, utiliza o cromossomo binário e filtra apenas as características selecionadas (com os genes correspondentes a cada característica iguais a 1). No segundo, realiza o treinamento utilizando todas as características implementadas. Este processo é feito com os dois tipos de classificadores utilizados na etapa de treinamento (kNN e Rede Neural). Os resultados (4) das duas situações (com e sem seleção de características) são então armazenados para análise e comparação.

7 Experimentos e Resultados

7.1 Apresentação

Este capítulo detalha os experimentos realizados neste trabalho. Inicialmente apre- sentamos a estrutura do programa desenvolvido de modo a associar seus módulos à arquitetura proposta no Capítulo 6. Em seguida, tratamos da construção da base de dados abordando questões como origem dos dados, resolução e normalização além da variação de fontes e estilos (para o caso de patches impressos).

Dando continuidade, detalhamos a parametrização utilizada para realização dos tes- tes e o uso da validação cruzada K-fold como técnica para verificação da capacidade de generalização do modelo. Concluímos com a apresentação dos resultados obtidos fazendo uso dos classificadores kNN e Redes Neurais MLP e com a apresentação de alguns experimentos complementares.

7.2 Estrutura do Programa

Para codificação dos experimentos, fizemos uso da ferramenta MATLAB1 através da sua toolbox para processamento de imagens. A escolha desta ferramenta se deu por sua praticidade, facilidade de uso além da grande comunidade de usuários e vasta documentação disponível. O programa desenvolvido está organizado em 10 scripts ".m" que implementam diversas funções. São eles:

• segmentation_tool.m: Faz a segmentação de imagens de documentos im- pressos em patches. Utilizado para construção do banco de dados de impressos; • get_average_dim.m: Calcula as médias de alturas e larguras a partir das dimensões de todos os patches. Estes valores são utilizados como parâmetro para normalização dos patches durante o processo de extração de característi- cas;

1MATLAB (MATrix LABoratory) é um software interativo da empresa Mathworks que integra

análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente integrado e voltado ao uso científico. A versão utilizada foi a R2012a de 64bits.

• features_extractor.m: Extrai características de um único patch. Recebe como entrada o caminho físico do patch e retorna um array com valores de características normalizadas entre 0 e 1;

• features_persist.m: Persiste em disco os valores numéricos corresponden- tes às características extraídas de cada patch além de suas respectivas classes, fontes e estilos (no caso de impressos), índices que serão utilizados para vali- dação k-fold e nomes dos respectivos arquivos. Produz como saída o arquivo persisted_data.mat.

• hidden_size_identifier.m: Script utilizado para definir experimentalmente o número de neurônios da camada escondida para parametrização das Redes Neurais que serão treinadas no experimento.

• fitness_knn.m e fitness_rna.m: Implementações das funções de avali- ação para o Algoritmo Genético utilizando, respectivamente, kNN e Redes Neurais. Recebem cromossomos binários e retornam os erros de classificação para cada geração do AG;

• features_filter.m: Implementa filtro de características. Recebe um cro- mossomo binário e retorna, a partir dos dados persistidos, apenas os valores de características ativadas, ou seja, aquelas cujo o gene correspondente no cromossomo possuir valor igual a 1;

• main_knn.m e main_Rna: Executam o fluxo principal do script utili- zando, respectivamente, kNN e Redes Neurais como classificador. Realizam chamadas às demais funções e gerenciam a execução do Algoritmo Genético. São também responsáveis pela implementação da Validação Cruzada K-fold.

Documentos relacionados