• Nenhum resultado encontrado

2015.2 Jorsivania Ramos da Silva

N/A
N/A
Protected

Academic year: 2021

Share "2015.2 Jorsivania Ramos da Silva"

Copied!
56
0
0

Texto

(1)

BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO

JORSIVANIA RAMOS DA SILVA

SISTEMA DE DETECÇÃO E SEPARAÇÃO AUTOMÁTICO DE FOTOS EM IMAGENS DIGITALIZADAS

FEIRA DE SANTANA 2016

(2)

SISTEMA DE DETECÇÃO E SEPARAÇÃO AUTOMÁTICO DE FOTOS EM IMAGENS DIGITALIZADAS

Trabalho de Conclusão de Curso apresentado ao Colegiado do curso de Engenharia de Computação como requisito parcial para obtenção do grau de Bacharel em Engenharia de Computação pela Universidade Estadual de Feira de Santana.

Orientador: Prof. Dr. Claudio Eduardo Goes

FEIRA DE SANTANA 2016

(3)

especiais de pessoas. As felizes. Aquelas que trazem dentro de si mesmas a criação desse mundo."

(4)

Agradeço ao meu companheiro Iago Breno Alves do Carmo Araujo pelo apoio e por todos os ensinamentos, sem você nada disso seria possível.

Uma das melhores coisas deste trabalho foi poder ver e rever em cada teste o rosto de pessoas que fizeram parte da minha vida e hoje já são parte de mim. As fotos aqui contidas falam por si mesmas.

Agradeço ao meu orientador Claudio Eduardo Goes não só pela confiança no meu trabalho mas pela sua atenção e dedicação que estão impressas em cada página.

(5)

Este trabalho objetivou a implementação de um sistema de detecção e separação automático de fotos em imagens digitalizadas sob uma análise dos principais métodos utilizados na área de processamento de imagens e visão computacional para atingir estes fins. Após um estudo sobre as soluções disponíveis uma base de dados com imagens diversificadas foi construída para possibilitar o desenvolvimento do sistema e testes. O método desenvolvido consiste na aplicação de pré-processamentos nas imagens digitalizadas visando detectar as fotos do fundo, que são extraídas com a aproximação de seu contorno por uma área retangular e passam por um processo de ajuste de inclinação se esta existir, por fim, as fotos detectadas são salvas em arquivos separados. Os principais elementos que compõem o método foram analisados (filtragem e detecção de bordas) com o objetivo de ajustar os melhores parâmetros e definir qual destes se adequam melhor ao sistema proposto, para tal foi implementado um algoritmo para realizar a análise de sensibilidade por especificidade que foi fundamentada pela geração de curvas ROC. Destas análises se concluíram que o método de filtragem gaussiano com uma máscara de tamanho 9x9 e o método de detecção de bordas Sobel produziram uma melhor taxa de verdadeiro positivos (98%) e menor taxa de falso positivos (6%). Com a aplicação da análise realizada pode-se perceber a importância das etapas de pré processamento e detecção de bordas para a separação das fotos nas imagens digitalizadas.

(6)

This work aimed at the implementation of a detection system and automatic separation of photos on scanned images in an analysis of the main methods used in image processing and computer vision area to achieve these ends. After a study of the solutions available one with diverse image database was built to enable system development and testing. The developed method is the application of pre-processing the scanned images to detect photos of the fund, which are extracted with the approach of its outline by a rectangular area and undergo a tilt adjustment process if it exists, finally, detected photos are saved in separate files. The main features of the method were analyzed (filtering and edge detection) in order to adjust the best parameters and define which of these is best suited to the proposed system, this is implemented an algorithm to perform specificity sensitivity analysis it was founded by the generation of ROC curves. These analyzes were completed that the Gaussian filtering method with a mask of size 9x9 and Sobel edge detection method produced better positive real rate (98 %) and lowest false positive rate (6 %). With the application of the analysis can realize the importance of the steps of pre-processing and edge detection for the separation of the photos on scanned images.

(7)

Figura 1 Processo de detecção de uma foto pelo aplicativo Autosplitter. Se tratando de um software pago, marcas d’água são inseridas nas fotos detectadas. Fonte:

Autor 17

Figura 2 Processo de detecção de uma foto pelo aplicativo CamScanner. A área em verde é o objeto identificado e pode ser ajustada pelo usuário. Fonte: Autor 18

Figura 3 Representação de um pixel em uma imagem considerada como uma matriz

MXN. (GONZALEZ; WOODS, 2008) 20

Figura 4 Representação das vizinhanças entre pixels (MARQUES, 2011). 21

Figura 5 Esquemático de um típico sistema de visão computacional. (GONZALEZ et al.,

1992) 22

Figura 6 Vizinhança 3x3 ao redor de um ponto de uma imagem (FILHO; NETO, 1999). 23

Figura 7 Comparativo entre as técnicas de filtragem por média e mediana em relação a uma imagem com ruído aleatório. Fonte: Google Images 25

Figura 8 Resultado do uso do filtro gaussiano em uma imagem ruidosa. Fonte:

opencv.org 26

Figura 9 Principais operações lógicas e seus respectivos resultados para as imagens X e

Y. (MARQUES, 2011) 26

Figura 10 Histograma de uma imagem com um objeto claro em um fundo escuro

(PETROU; PETROU, 2010). 27

Figura 11 Aplicação da limiarização dada a imagem de entrada utilizando um e dois

(8)

Figura 13 Aplicação do operador sobel. Fonte: Google Images 31

Figura 14 Aplicação do detector de bordas Canny. Fonte: Autor 31

Figura 15 Quadrilátero distorcido e seu correspondente corrigido, onde os pontos de amarração são os vértices. (GONZALEZ; WOODS, 2008) 32

Figura 16 Imagem obtida de um processo de segmentação e o seu ground truth

correspondente. Fonte: Google Images 33

Figura 17 Curva ROC obtida para um questionário de tratamento. (SOARES et al., 2009) 35

Figura 18 Imagem extraída do banco de dados do sistema. Fonte: Autor 36

Figura 19 Imagem do banco de dados do sistema e o ground truth. Fonte: Autor 38

Figura 20 Diagrama de casos de uso do sistema. Fonte: Autor 38

Figura 21 Diagrama de funcionamento do sistema. Fonte: Autor 39

Figura 22 Imagem obtida na etapa de detecção das fotos na imagem digitalizada. Fonte:

Autor 39

Figura 23 Ilustração do processo de crop realizado pelo sistema. Fonte: Autor. 40

Figura 24 Imagens obtidas salvas em arquivos separados. Fonte: Autor 41

Figura 25 Ilustração do processo de crop realizado pelo sistema. Fonte: Autor. 41

Figura 26 Fotos detectadas pelo sistema dada a imagem digitalizada como entrada. Fonte:

(9)

Figura 28 Algumas imagens consideradas nos testes e suas propriedades de interesse para

a análise. Fonte: Autor. 44

Figura 29 Imagem extraída do conjunto de imagens que compõem o ground truth. Fonte:

Autor 45

Figura 30 Resultado da aplicação de uma máscara de tamanho 99x99 em uma das imagens

do banco de dados do sistema Fonte: Autor 46

Figura 31 Imagem obtida sem a aplicação de filtragem Fonte: Autor 47

Figura 32 Resultado obtido na aplicação da máscara de tamanho 9x9 em uma das imagens

do banco de dados do sistema. Fonte: Autor 48

Figura 33 Curva ROC obtida entre a relação especificidade e sensibilidade (verdadeiro positivo e falso positivo) para testes com variação do tamanho da máscara de

filtragem Fonte: Autor 48

Figura 34 Resultado obtido na aplicação do detector Sobel com o ajuste de parâmetros de melhor desempenho em uma imagem do banco de dados do sistema. Fonte:

Autor. 50

Figura 35 Curva ROC para os testes realizados com o detector Sobel. Fonte: Autor 50

Figura 36 Resultado obtido na aplicação do detector Canny com o ajuste de parâmetros de melhor desempenho em uma imagem do banco de dados do sistema. Fonte:

Autor. 52

Figura 37 Curva ROC para os testes realizados com o detector Canny. Fonte: Autor 52

(10)

Figura 42 Gráfico representando a eficiência do sistema. Fonte: Autor 54

Figura 40 Imagem de entrada e resultado obtido pelo sistema. Fonte: Autor 55

Figura 41 Resultado não esperado obtido da separação e correção de inclinação de uma

foto da imagem digitalizada. Fonte: Autor 55

(11)

Tabela 1 Principais funções do OpenCV utilizadas no desenvolvimento do sistema.

Fonte: Autor 42

Tabela 2 Simulações realizadas para diferentes tamanhos de máscara do detector Sobel.

Fonte: Autor 49

Tabela 3 Simulações realizadas para diferentes valores de threshold do detector Canny.

(12)

1 INTRODUÇÃO . . . 16 1.1 OBJETIVOS DO TRABALHO . . . 17 1.1.1 OBJETIVOS GERAIS . . . 17 1.1.2 OBJETIVOS ESPECÍFICOS . . . 18 1.2 ESTRUTURA DA MONOGRAFIA . . . 18 2 FUNDAMENTAÇÃO TEÓRICA . . . 20 2.1 REPRESENTAÇÃO DE IMAGENS . . . 20

2.2 PROCESSAMENTO DE IMAGENS E VISÃO COMPUTACIONAL . . . 21

2.3 REALCE E SUAVIZAÇÃO DE IMAGENS . . . 22

2.4 OPERAÇÕES LÓGICAS . . . 25 2.5 SEGMENTAÇÃO . . . 26 2.5.1 THRESHOLD . . . 27 2.5.2 O MÉTODO DE OTSU . . . 28 2.6 MORFOLOGIA MATEMÁTICA . . . 29 2.6.1 EROSÃO . . . 29 2.7 DETECÇÃO DE BORDAS . . . 29 2.7.1 O OPERADOR SOBEL . . . 30

2.7.2 O DETECTOR DE BORDAS CANNY . . . 30

2.8 TRANSFORMAÇÃO GEOMÉTRICA . . . 31

2.9 BIBLIOTECA DE DESENVOLVIMENTO DE APLICAÇÕES EM VISÃO COMPUTACIONAL (OPENCV) . . . 32 2.10 TÉCNICAS DE AVALIAÇÃO . . . 33 2.10.1 GROUND TRUTH . . . 33 2.10.2 SENSIBILIDADE E ESPECIFICIDADE . . . 34 2.10.3 CURVA ROC . . . 34 3 MATERIAIS E MÉTODOS . . . 36

3.1 AQUISIÇÃO E BASE DE DADOS . . . 36

3.2 DESENVOLVIMENTO DO SISTEMA . . . 37

3.3 VISÃO GERAL DO SISTEMA . . . 37

3.4 FUNÇÕES DA BIBLIOTECA OPENCV UTILIZADAS . . . 41

4 RESULTADOS . . . 43

(13)

4.2.2 AVALIAÇÃO DOS DETECTORES DE BORDAS . . . 49

4.3 EFICIÊNCIA DO SISTEMA . . . 53

5 CONCLUSÃO E TRABALHOS FUTUROS . . . 56

(14)

1 INTRODUÇÃO

A primeira fotografia tirada da história data de 1826 (PERES, 2014). Deste marco até os dias atuais os avanços tecnológicos propuseram a substituição das antigas câmeras que produziam filmes revelados em fotos de papel por câmeras que geram imagens digitais. Porém, esta substituição não retira a importância histórica do conteúdo das mesmas. Atualmente, este tipo de registro se encontra susceptível a ação do tempo; a acidentes como: incêndios, perda, roubo e ao esquecimento da sociedade. Felizmente, o processo de digitalização é acessível e provê diversas vantagens não apenas no sentido de preservação como na facilidade de compartilhamento e reprodução.

O principal problema do processo de digitalizar as fotografias convencionais é a custosa tarefa de separar a região de interesse constituída pela foto da imagem digitalizada gerada pelo digitalizador. Após este processo o usuário deve ainda criar um novo arquivo para armazenar a região selecionada, com a subsequente repetição de todos estes procedimentos citados para cada imagem que se deseja digitalizar. Portanto, este processo se torna por vezes cansativo e repetitivo.

Uma das maneiras de implementar uma solução para este tipo problema é o uso de técnicas de visão computacional para detectar e separar as regiões correspondentes as fotos, provendo uma solução simples e de baixo custo. Muitas aplicações nesta área envolvem a detecção de características relevantes em uma imagem digital, como por exemplo (HSU; ABDEL-MOTTALEB; JAIN, 2002) onde é proposto um algoritmo para detecção de face em imagens coloridas em estágios de luz e fundos variados. Outra aplicação correlata é a discutida por (SOBIECKI; NEVES; THOMAZ, ), em que um algoritmo para a remoção de mensagens e selos em fotos 3x4 digitalizadas foi desenvolvido para melhorar a visualização das fotos originais. Em relação a necessidade de ajustes e detecção de fotos em imagens digitalizadas, existem diversos métodos patenteados que buscam prover estas melhorias (LUO; GRAY, 2003) (STEINBERG et al., 2009). Uma destas soluções, (GUTKOWSKI; SIEVERT, 2003) propõe um método de organização de objetos digitalizados que identifica pelo menos um deles na imagem gerada e realiza uma série de ajustes tais quais rotação, redimensionamento e posicionamento. (GOTSMAN; KEREN; ELAD, 2002) também propõe um método correlato, que utiliza visão computacional para detectar e classificar ao menos uma parte da imagem-alvo. Se tratando de patentes, estas implementações não possuem estudos detalhados de seus algoritmos ou demonstrações de resultados.

Alguns programas foram encontrados, entre eles o Autosplitter, um software de licença paga que visa separar múltiplas fotos de imagens digitalizadas, com este programa é possível ler imagens de um diretório, separar as fotos contidas e salvar. Outro software estudado foi

(15)

o ScanSpeeder que também detecta múltiplas fotos, permitindo o usuário identificar a área compreendida pela foto na imagem digitalizada, porém não realiza ajustes nas imagens obtidas. A Figura 1 demonstra a utilização do aplicativo Autosplitter para a separação das fotos em uma imagem digitalizada, se tratando de um software de licensa paga o programa insere watermarks(marcas d’água) nas fotos detectadas.

Figura 1: Processo de detecção de uma foto pelo aplicativo Autosplitter. Se tratando de um software pago, marcas d’água são inseridas nas fotos detectadas. Fonte: Autor

Outro tipo são as soluções providas por aplicativos para smartphones que utilizam dispositivos como câmeras para capturar as imagens a serem digitalizadas, como por exemplo os aplicativos CamScanner, Scanner PDF e Tiny Scanner, porém estes que acabam por desconsiderar o fator de qualidade relacionado com a imagem produzida, além de não possuir a capacidade de detectar múltiplas fotos na imagem gerada. A Figura 2 demonstra o uso do aplicativo CamScanner para obter uma imagem digitalizada, ao tirar uma foto pelo celular o aplicativo solicita que o usuário ajuste a área representada pelo objeto que deve ser utilizado, após esta etapa é possível fazer alguns modificações na imagem como melhorar o brilho e contraste, o arquivo que em seguida é salvo no formato PDF.

1.1

OBJETIVOS DO TRABALHO

1.1.1

Objetivos Gerais

O presente trabalho objetivou implementar um sistema de detecção de fotos em imagens digitalizadas para automatizar o processo de extração de fotografias nas imagens geradas por digitalizadores. O sistema é especificado para ser capaz de reconhecer uma ou mais fotos na

(16)

Figura 2: Processo de detecção de uma foto pelo aplicativo CamScanner. A área em verde é o objeto identificado e pode ser ajustada pelo usuário. Fonte: Autor

imagem digitalizada mesmo que estas estejam desalinhadas, selecionando automaticamente as áreas de interesse e determinando o número de fotos presentes na imagem. Como saída, é gerado um arquivo de imagem para cada foto detectada, e caso esta tenha sido digitalizada inclinada a saída será a foto correspondente corrigida.

1.1.2

Objetivos Específicos

Para possibilitar o desenvolvimento do sistema, foram adiquiridos um montante de fotos digitalizadas dos autores do trabalho, permitindo testes e o desenvolvimento do método. O estudo das técnicas técnicas de processamento de imagens e visão computacional forneceu o embasamento teórico necesário para compor as etapas de um sistema de visão computacional. Além da base de estudo, a biblioteca de desenvolvimento de aplicações na área de visão computacional, OpenCV, foi utilizada para prover uma melhor produtividade permitindo a utilização de algoritmos e funções relevantes ao trabalho sem a necessidade de implementação.

1.2

ESTRUTURA DA MONOGRAFIA

Este trabalho segue organizado nos seguintes capítulos: fundamentação teórica, onde são apresentados os conceitos de visão computacional, dentre outras técnicas, que foram

(17)

necessários para realizar a implementação do sistema; metodologia, onde são dispostas as etapas do processo desde a aquisição das imagens digitalizadas; resultados, onde são feitas análises sobre os resultados obtidos; e por fim, conclusão, onde são expostos os desafios e possibilidades deste trabalho.

(18)

2 FUNDAMENTAÇÃO TEÓRICA

2.1

REPRESENTAÇÃO DE IMAGENS

De acordo com (GONZALEZ; WOODS, 2008), temos que uma imagem é uma função bidimensional f (x, y) em que x e y são coordenadas espaciais (plano), e a amplitude de f em qualquer par de coordenadas (x, y) é chamada de intensidade ou nível de cinza em que quando estes valores são finitos e discretos temos uma imagem digital.(ANNADURAI, 2007) afirma que uma imagem pode ser representada como a matriz cujas linhas e colunas podem ser utilizadas para localizar um ponto da imagem e o seu valor correspondente fornece o nível de cinza naquele ponto. Outra definição relevante é o conceito de pixels, elementos que compõem uma imagem digital, cada um com localização e valor específico (FILHO; NETO, 1999). Considerando uma imagem uma matriz de dimensão MxN, a Figura 3 ilustra a representação de um pixel.

Figura 3: Representação de um pixel em uma imagem considerada como uma matriz MXN. (GONZALEZ; WOODS, 2008)

Os pixels podem se relacionar entre si em uma imagem digital de diversas maneiras, uma delas é a vizinhança que considera os pixels que estão nas proximidades de um pixel específico, de modo que um pixel p, de coordenadas (x, y) tem 4 vizinhos horizontais e verticais de coordenadas (x + 1, y), (x − 1, y), (x, y + 1) e (x, y − 1). Estes pixels formam a chamada "4-vizinhança"de p, e além deste tipo temos a vizinhança diagonal e a "8-vizinhança"que é formada pela união da "4-vizinhança"e da vizinhança diagonal, sendo que a última é representada pelos pixels que pertencem a 8-vizinhança mas não pertencem a 4-vizinhança (FILHO; NETO, 1999). A Figura 4 mostra as relações de vizinhança em relação ao pixel p sendo que (a) representa uma 4-vizinhança, (b) uma vizinhança diagonal e (c) uma 8-vizinhança (MARQUES, 2011).

(19)

(a) (b)

(c)

Figura 4: Representação das vizinhanças entre pixels (MARQUES, 2011).

2.2

PROCESSAMENTO

DE

IMAGENS

E

VISÃO

COMPUTACIONAL

Esta seção discute técnicas de processamento de imagens e visão computacional relevantes para o entendimento deste trabalho, buscando elucidar os principais conceitos e modelos relacionados com os que foram utilizados na concepção do sistema proposto.

A definição de processamento de imagens é apresentada em (GONZALEZ; WOODS, 2008) como um conjunto de processos computacionais compostos por operações elementais tais quais a redução de ruído e operações de nível médio, que envolvem extração de características de uma imagem, onde as operações de alto nível que buscam dar interpretação e significado ao conjunto de dados processado seria o campo de atuação da visão computacional. Implementações de sistemas de visão similares aos descritos costumam passar por etapas comuns inerentes ao processamento de imagens, entre elas citamos as principais: aquisição de imagens, pré-processamento, segmentação, extração de características, reconhecimento e

(20)

interpretação. A Figura 5 mostra esquematicamente o funcionamento de um típico sistema de visão computacional.

Figura 5: Esquemático de um típico sistema de visão computacional. (GONZALEZ et al., 1992)

Os sistemas de visão computacional são pautados no domínio do problema visto que sua implementação advém da resolução de algum problema e deve ser modelado para este fim. A etapa de aquisição de imagens é geralmente feita por dispositivos como câmeras e digitalizadores e provê o conjunto de trabalho do problema a ser estudado. No pré-processamento os ruídos que são inerentes a qualquer imagem são tratados visando aprimorar a qualidade da imagem para realizar os processamentos em etapas subsequentes. A etapa de segmentação visa dividir a imagem em objetos de interesse de sua composição, separando objetos que compõem a imagem do plano de fundo, por exemplo. A etapa representação e descrição busca extrair características das imagens que foram obtidas da etapa de segmentação através de descritores, que por exemplo são capazes de permitir a discriminação de dígitos que aparecem em uma imagem. Por fim, na etapa de reconhecimento e interpretação, o reconhecimento é um processo de atribuição de rótulos a objetos de acordo com suas características representadas pelos descritores. A interpretação é a atribuição de significado ao conjunto reconhecido, que pode se concretizar na validação de acesso a um sistema, por exemplo. Todas as etapas citadas requerem uma base de conhecimento nos métodos e técnicas de processamento de imagens e visão computacional (FILHO; NETO, 1999).

2.3

REALCE E SUAVIZAÇÃO DE IMAGENS

O primeiro aspecto que deve ser considerado no processo de aquisição de imagens é o fato de que variáveis como o tipo de sensor utilizado na captação e a luminosidade tendem a afetar a imagem gerada, produzindo características que não são desejáveis. Por este

(21)

motivo, sistemas que manipulam a imagem devem realizar alguns processamentos para tornar a imagem ideal para uma aplicação específica, sob este aspecto, o realce de imagens que é a etapa responsável por fazer este ajuste na imagem original, manipulando-a para produzir um resultado mais adequado. Uma das mais importantes técnicas desta etapa é a filtragem que pode ser empregada em domínio espacial e no domínio da frequência. Entende-se por domínio espacial os métodos que operam diretamente sobre a matriz de pixels e domínio da frequência os métodos que se baseiam na modificação da transformada de Fourier1da imagem, além disso, existem ainda técnicas que combinam as duas abordagens (FILHO; NETO, 1999).

As técnicas de filtragem no domínio espacial atuam diretamente sobre a matriz de pixels que é expressa pela Equação 10:

g(x, y) = T [ f (x, y)] (10)

Em que g(x, y) é a imagem processada, f (x, y) é a imagem original e T é um operador em f , definido em uma vizinhança de (x, y), que é normalmente definida como a 8-vizinhança do pixel de referência, equivalendo a uma região 3x3, na qual o pixel central é o de referência. O centro da região, denominado de sub-imagem é movido pixel a pixel, iniciando no canto superior esquerdo e aplicando a cada localidade o operador T para calcular o valor de g naquele ponto. A Figura 6 mostra uma vizinhança 3x3 ao redor de um ponto na imagem de coordenadas x, y (FILHO; NETO, 1999).

Figura 6: Vizinhança 3x3 ao redor de um ponto de uma imagem (FILHO; NETO, 1999).

1A transformada de Fourrier é utilizada na solução de grande parte dos problemas na área de processamento de

imagens, como por exemplo na filtragem e é expressa pela equação

F[x(t)] = X (ω) =

Z ∞ −∞

(22)

A suavização de imagens tem como objetivo de eliminar detalhes que não são interessantes para as etapas subsequentes do processamento. Geralmente é feito um processo de suavização da imagem para a eliminação de ruídos presentes. As técnicas de suavização mais conhecidas são as filtragens por filtros de média, mediana e o filtro gaussiano.

Na filtragem pelo filtro da média a resposta (saída) é a média dos pixels contidos na vizinhança da máscara de filtragem, resultando em um processo de perda de nitidez, ou seja, redução das transições abruptas nas intensidades, processo ideal para remoção de ruído aleatório, que consiste de transições abruptas de intensidade, porém as bordas que são características interessantes na imagem também são caracterizadas pelas mesmas transições abruptas, levando a desvantagem deste tipo de filtro também as suavizam (GONZALEZ; WOODS, 2008).

Já os filtros de mediana se tornaram populares por produzir bons resultados para filtragem de ruído aleatório causando um menor borramento de bordas em relação ao filtro de média. Na técnica de filtragem por mediana, o nível de cinza do pixel central é substituído pela mediana dos pixels situados na sua vizinhança, sendo a mediana m de um conjunto de n elementos o valor tal que metade dos n elementos situa-se abaixo de m e a outra metade acima de m. No caso de um n ímpar, a mediana é o próprio elemento central do conjunto ordenado, e para n par a mediana é calculada pela média aritmética dos dois elementos mais próximos do centro, a equação da mediana para um número de elementos ímpar e par é disposta nas Equações 11 e 12, respectivamente. M= n+ 1 2 (11) M= [ n 2+ ( n 2+ 1)] 2 (12)

A Figura 7 ilustra o emprego dos dois filtros considerados sendo que a) representa a imagem original com ruído aleatório, b) representa o resultado após a aplicação do filtro de média e c) representa o resultado após a aplicação do filtro de mediana. Nesta figura é possível perceber a clara melhoria do ruído aleatório ao utilizar o filtro de mediana (FILHO; NETO, 1999). Outro método conhecido de filtragem é o filtro gaussiano, que diminuí o ruído das imagens de acordo com uma distribuição de probabilidade gaussiana. Este método considera, no processo de atribuir a um pixel a média dos vizinhos, a quantidade de vizinhos como uma média ponderada que resulte no maior peso aos pixels mais próximos, diminuindo o peso dos pixelsmais distantes. A equação do filtro gaussiano de uma dimensão é demonstrada abaixo.

G(x) = √ 1 2πσ2e

− x2

(23)

(a) (b)

(c)

Figura 7: Comparativo entre as técnicas de filtragem por média e mediana em relação a uma imagem com ruído aleatório. Fonte: Google Images

Este tipo de filtro costuma ser utilizado para suavizar o ruído gaussiano, que produz pequenas variações na imagem e geralmente está presente na digitalização de imagens. A Figura 8 mostra o resultado da aplicação do filtro gaussiano para uma imagem ruidosa, onde a) é uma imagem com ruído gaussiano e b) é o resultado após a aplicação do filtro.

2.4

OPERAÇÕES LÓGICAS

Em processamento de imagens, as operações lógicas ocorrem de forma análoga ao previsto pela lógica booleana, onde os pixels brancos representam o valor 1 ou true e os pixels pretos representam o valor 0 ou false. Para a realização de operações lógicas são tomadas duas imagens como entrada e a saída será o resultado da operação escolhida em cada pixel,

(24)

(a) (b)

Figura 8: Resultado do uso do filtro gaussiano em uma imagem ruidosa. Fonte: opencv.org

particularmente apenas a operação not requer apenas uma imagem (MARQUES, 2011). A figura 9 ilustra o resultado das operações lógicas mais comuns tendo como partida as imagens a) e b), onde c) representa o resultado da operação de negação (not) da imagem a) e d) da imagem b). Em e) temos a operação and que atribuí o valor 1 (branco) como resultado se o pixel que está sendo analisado em a) e b) valerem 1 e 0 se ambos pixels valerem 0 (preto). Em f) é exibido o resultado da operação or que atribui 0 se em ambas imagens o pixel valer 0 e 1 se em pelo menos uma das imagens o pixel valer 1. O resultado da operação XOR é representado em g), onde um pixel assume valor 1 se e somente se uma das imagens possui valor 1. Em h) temos a junção de duas operações not e and.

Figura 9: Principais operações lógicas e seus respectivos resultados para as imagens X e Y. (MARQUES, 2011)

(25)

2.5

SEGMENTAÇÃO

Selecionar objetos ou características de imagens é um importante pré requisito para grande parte das aplicações que envolvem medidas e análises, sendo este processo denominado de segmentação (RUSS, 2011). A maioria dos algoritmos de segmentação baseia-se em duas propriedades básicas de valores de intensidade: descontinuidade e similaridade. Na abordagem da descontinuidade, a imagem é dividida com base em mudanças bruscas de intensidade, como as bordas. Já a abordagem de similaridade, é baseada na divisão de imagens em regiões que sejam semelhantes de acordo com certos critérios. Em resumo, na segmentação por descontinuidade é pressuposto que as fronteiras das regiões são satisfatoriamente diferentes entre si em relação ao fundo da imagem e a segmentação por similaridade busca uma propriedade que faça a diferença entre as regiões consideradas. Temos como exemplo de métodos da categoria de similaridade a detecção de bordas, pontos e linhas e como exemplo de métodos da categoria de similaridade a limiarização (threshold), crescimento de região e divisão e fusão de regiões. (GONZALEZ; WOODS, 2008)

2.5.1

Threshold

Uma das maneiras mais simples de dividir a imagem em regiões uniformes é o uso de histogramas e da técnica de threshold. Se dispusermos a quantidade de pixels que possuem um certo valor de cinza versus o valor em questão, estamos construindo um histograma, que quando normalizado representa a função de densidade probabilística dos valores de cinza da imagem. A Figura 10 mostra o histograma de uma imagem que possui um fundo preto e um objeto claro, onde podemos visualizar dois picos e entre eles, um vale.

Figura 10: Histograma de uma imagem com um objeto claro em um fundo escuro (PETROU; PETROU, 2010).

Supondo que gostaríamos de extrair o objeto da imagem podemos escolher um limite threshold que corresponde ao vale do histograma, representado por to e rotular os pixels que possuem valores de intensidade maiores que t0como pixels do objeto e os valores menores que

(26)

to como pixels do fundo.

Quando uma imagem não possuí um vale definido significa que existem pixels no fundo com a mesma intensidade que os pixels do objeto, estes podem estar localizados próximo as bordas do objeto. Uma maneira de resolver é utilizar dois valores de threshold em cada lado do vale, o maior deles representará o objeto, sendo que um pixel com valor de intensidade maior que o menor valor do threshold será considerado como parte do objeto se ele for vizinho de um pixel que faz parte do objeto (PETROU; PETROU, 2010). A Figura 11 ilustra o processo de limiarização (threshold), onde dada a imagem de entrada a) e seu histograma b) são aplicados dois tipos de limiarização: um com um threshold t0= 134 e outra composta por dois thresholds

de valores t0= 83 e t2= 140.

Figura 11: Aplicação da limiarização dada a imagem de entrada utilizando um e dois thresholds(PETROU; PETROU, 2010).

2.5.2

O Método de Otsu

A escolha do threshold afeta diretamente na extração de objetos do fundo da imagem. Idealmente, o histograma da imagem deveria possuir dois picos representando o fundo e o objeto e um vale, onde o threshold escolhido corresponderia a este vale (OTSU, 1975). Porém, nas imagens reais, muitas vezes pela presença de ruído, a distinção entre objeto e fundo não é clara. Na busca por encontrar de obter um threshold ótimo, que separe o objeto do fundo da imagem automaticamente. Otsu (1975) propôs um método não supervisionado para selecionar o threshold e segmentar imagens. O procedimento envolve a partir de uma imagem em tons de cinza selecionar o threshold ótimo por um critério discriminante que maximiza a separabilidade das classes em níveis de cinza. O método itera por todos os thresholds possíveis da imagem e encontra o que minimiza a soma da variância intraclasses da imagem. O cálculo desta soma é

(27)

dado por:

σW2 = Wbσb2+Wfσ2f (14)

Onde σ é a variância e Wbé a probabilidade de um pixel estar presente no fundo e Wf é a

probabilidade de um pixel pertencer ao objeto. Este cálculo é realizado para todos os thresholds possíveis, onde aquele que possuir menor variância será o selecionado para segmentar a imagem (KINOSHITA, 2004).

2.6

MORFOLOGIA MATEMÁTICA

O termo morfologia dá significado a forma e a estrutura, esta acepção também é válida no processamento de imagens, visto que este conceito é utilizado na representação descrição da forma de uma região compreendida por uma imagem. O uso das técnicas de morfologia se baseia na teoria de conjuntos e se traduz nesta área no emprego de técnicas de pré-processamento, filtragem, afinamento, dentre outras (GONZALEZ; WOODS, 2008). Estas técnicas se baseiam no amplo emprego de elementos estruturantes, subimagens que são utilizadas para a busca de propriedades de interesse em uma imagem, que para as convenções do processamento de imagens são obrigatoriamente expressos por arranjos matriciais retangulares. A definição de uma operação de uma operação no conjunto A utilizando o elemento estruturante B se dá na criação de um novo conjunto expresso pelo percorrimento de B ao longo de A, onde um membro do novo conjunto será criado se B estiver completamente contido em A (GONZALEZ; WOODS, 2008).

2.6.1

Erosão

A erosão pode ser vista como o afinamento ou encolhimento da imagem, onde objetos finos ou pequenos serão eliminados e objetos maiores terão sua área reduzida. Esta operação é uma das principais da área de morfologia matemática, largamente utilizada para a remoção de componentes da imagem, como por exemplo linhas e é definida por:

A B = z|(B)z⊆ A (15)

Onde B é o elemento estruturante, A o conjunto de entrada e z é o conjunto de todos os pontos em que B transladado por z está contido em A. A figura 12 ilustra a operação de erosão em uma imagem por dois elementos estruturantes diferentes, onde a) é a imagem original, b) e c) são elementos estruturantes de dimensões 3x3 e 5x5 que percorrem a imagem a) e produzem os resultados d) e e) respectivamente.

(28)

Figura 12: Ilustração da operação de erosão dada a imagem de entrada e os elementos estruturantes. Fonte: Autor

2.7

DETECÇÃO DE BORDAS

Os contornos dos objetos das imagens provém informações relevantes para etapas fundamentas no processamento de imagens como a descrição de objetos e segmentação (JOSHI; SIVASWAMY, 2006). As bordas são constituídas de variações nas características das imagens, geralmente no brilho, e representam a descontinuidade na função de intensidade que podem ser causadas pelo tipo do material, textura, condições de luminosidade, dentre outros. Sabendo que variações abruptas de brilho configuram as bordas, podemos definir um algoritmo de detecção de bordas como o processo de detecção destas descontinuidades. Porém, esta detecção não é tão direta, principalmente se tratando de imagens em escala de cinza, por exemplo (CHANDA; MAJUMDER, 2004).

2.7.1

O Operador Sobel

O operador Sobel é frequentemente utilizado no processamento de imagens em algoritmos que tem como intuito detectar bordas. A sua popularidade está relacionada com uma melhor performance comparado a outros detectores, além da propriedade de ser menos susceptível a ruídos presentes na imagem (NIXON, 2008). Este operador computa uma aproximação do gradiente da intensidade da imagem, onde o gradiente representa um vetor que demonstra a direção das mudanças de intensidade ou tonalidade. Para cada ponto da imagem, é retornado o vetor gradiente ou a norma deste vetor (JIN-YU; YAN; XIAN-XIANG, 2009), onde o processo envolve o cálculo da derivada dos valores de intensidade pela imagem e a busca por pontos em que a derivada é máxima, ou seja, onde as bordas teoricamente se encontram.

(29)

Na Figura 13 é demonstrado o resultado da aplicação do operador Sobel em relação a uma imagem de entrada, podemos notar que as bordas dos objetos que compõem a cena se encontram em destaque.

(a) (b)

Figura 13: Aplicação do operador sobel. Fonte: Google Images

2.7.2

O Detector de Bordas Canny

Em relação a maioria dos detectores de borda utilizando, o desempenho do detector Canny é superior, apesar da sua maior complexidade. O método utilizado pelo detector de bordas Canny baseia-se nos seguintes objetivos: baixa taxa de erro, boa localização dos pontos de borda e resposta em um único ponto de borda. O primeiro diz respeito a qualidade da detecção das bordas, onde todas estas devem ser encontradas e se aproximar ao máximo das bordas verdadeiras. O segundo objetivo prevê que a distância entre um ponto identificado como borda pelo método e o centro da borda verdadeira deve ser miníma e por fim, o terceiro objetivo define que o detector não deve identificar múltiplos pontos de borda onde apenas um realmente existe (GONZALEZ; WOODS, 2008) (CANNY, 1986). A Figura 14 exibe o resultado da aplicação do detector de bordas Canny na imagem a) que produz o resultado mostrado em b).

2.8

TRANSFORMAÇÃO GEOMÉTRICA

Sabendo que quando uma imagem é captada por uma câmera ela provê uma perspectiva diferente da realidade, em que existe a ilusão de espessura e profundidade nas imagens geradas, a forma de corrigir esta característica indesejável é aplicar um método de restauração de imagens conhecido como transformação geométrica. A transformação geométrica fornece a possibilidade de reposicionar os pixels de uma imagem, sendo utilizadas para mover, girar, alterar o tamanho (escala) e a geometria das imagens (HASEGAWA; JUNIOR, 2004). Dentro deste

(30)

(a) (b)

Figura 14: Aplicação do detector de bordas Canny. Fonte: Autor

escopo, o método mais utilizado para resolver o problema da perspectiva e outros problemas relacionados a distorção de imagens é o uso de pontos de amarração, subconjuntos de pixels cuja posição nas imagens de entrada(distorcida) e de saída (corrigida) é precisamente conhecida em que são obtidos através do conhecimento destes pontos e de equações as coordenadas corrigidas. A figura 15 ilustra estre processo de correção mostrando um quadrilátero distorcido e seu correspondente corrigido em que os vértices da figura são os pontos de amarração (GONZALEZ; WOODS, 2008).

Figura 15: Quadrilátero distorcido e seu correspondente corrigido, onde os pontos de amarração são os vértices. (GONZALEZ; WOODS, 2008)

2.9

BIBLIOTECA

DE

DESENVOLVIMENTO

DE

APLICAÇÕES

EM

VISÃO

COMPUTACIONAL

(OPENCV)

O openCV é uma biblioteca open source para desenvolvimento de aplicações relacionadas a área de visão computacional, que tem exercido um papel relevante na construção de sistemas de tempo real e na melhoria da produtividade dos usuários, fornecendo algoritmos

(31)

implementados na forma de funções. Esta biblioteca é implementada nas linguagens C e C++ e possui mais de 500 funções que cobrem áreas como processamento de imagens médicas, segurança e robótica (BRADSKI; KAEHLER, 2008).

Outra grande facilidade para o usuário é no gerenciamento da memória, visto que com a sua utilização é possível trabalhar com imagens e vídeos sem necessitar alocar e desalocar memória para as aplicações (BRAHMBHATT, 2013). Além disso, se encontram disponíveis na internet uma grande variedade de tutoriais, códigos, exemplos e aplicações junto a uma vasta comunidade de usuários para auxiliar na implementação de projetos.

2.10

TÉCNICAS DE AVALIAÇÃO

As técnicas de avaliação cumprem um importante papel na verificação de métodos e resultados. Amplamente utilizada em medicina para a área de diagnósticos médicos e na computação em inteligência artificial e áreas correlatas para a verificação do desempenho de classificadores. Dentro deste ramo de estudo, existem diversas técnicas a serem empregadas para cumprir este papel: validação cruzada, matriz de confusão, sensibilidade e especificidade, curva ROC, índice de Youden, dentre outros. Em meio a estas possibilidades, duas técnicas se destacam: sensibilidade e especificidade e o estudo da área sob a curva ROC.

2.10.1

Ground Truth

Em computação visual, um elemento importante deve ser considerado no âmbito das técnicas de avaliação, o ground truth. Este, representa um conjunto de imagens gerado por humanos ou automaticamente que expressa o resultado ideal esperado na aplicação de um método (KRIG, 2014). O ground truth é obtido pela marcação de pixels pretos em áreas que não pertencem ao objeto e pixels brancos em áreas que o pertencem. A Figura 16 mostra uma imagem exibida em a) que foi obtida de um método de segmentação e o resultado ideal esperado b), o ground truth, com esta informação é possível fazer a avaliação do método considerando a eficiência em identificar áreas que pertencem ao objeto (representadas por pixels brancos) e áreas que pertencem ao fundo (representadas por pixels pretos). Neste sentido, por exemplo, é possível calcular a quantidade de pixels pretos e brancos que foram obtidos pelo método e que correspondem com o ground truth para verificar a eficiência.

2.10.2

Sensibilidade e Especificidade

As duas técnicas principais que são abordadas nesta seção se relacionam com quatro conceitos básicos: verdadeiro positivo (VP), falso positivo (FP), verdadeiro negativo (VN),

(32)

(a) (b)

Figura 16: Imagem obtida de um processo de segmentação e o seu ground truth correspondente. Fonte: Google Images

falso negativo (FN). Particularmente, na área de imagens, temos um verdadeiro positivo quando obtemos um pixel branco na imagem gerada pelo método e este pixel corresponde a um pixel branco no ground truth, um falso positivo portanto representa a obtenção de um pixel branco onde deveria existir um preto. De modo análogo, um verdadeiro negativo é representado pela equivalência de um pixel preto na imagem obtida e no ground truth, e um falso negativo é encontrado quando há um pixel preto onde deveria haver um pixel branco.

A sensibilidade mede a porção de casos positivos classificados corretamente como positivos e a especificidade mede a porção de casos negativos classificados corretamente como negativos (BORCHARTT, 2013). Estas duas assertivas são expressas pelas seguintes equações:

Sensibilidade= V P

V P+ FN (16)

Especi f icidade= V N

V N+ FP (17)

2.10.3

Curva ROC

A curva ROC (Receiver Operating Characteristic) foi criada durante a segunda guerra mundial para verificar se a presença de um ponto no monitor significava um objeto ou um ruído (FAN; UPADHYE; WORSTER, 2006). Esta, é construída plotando-se a taxa de verdadeiro positivos (sensibilidade) contra a taxa de falso positivos (especificidade). A área sob a curva permite quantificar a exatidão do teste realizado, já que há uma proporcionalidade entre estas. Os testes com melhores especifidade e sensibilidade encontram-se no canto superior esquerdo da curva (SOARES et al., 2009). A Figura 17 mostra uma curva ROC para desempenho de um questionário

(33)

de avaliação do tratamento de uma doença.

(34)

3 MATERIAIS E MÉTODOS

3.1

AQUISIÇÃO E BASE DE DADOS

Para propiciar o desenvolvimento do sistema e a realização de testes foram feitas aquisições de fotografias reveladas em papel fotográfico de acervo próprio, que seguidamente foram digitalizadas por um digitalizador de mesa com a resolução de 300 dpi (dots per inch). As fotos foram dispostas em variadas quantidades, orientações e graus de inclinação a fim de propiciar imagens digitalizadas que abrangessem todos os casos que o sistema deve considerar no tratamento das imagens. Para fins de publicação as imagens que contém pessoas tiveram os seus rostos omitidos, porém, para o processamento e testes foram utilizadas as imagens na forma original. Ao todo foram obtidas 124 fotografias que foram dispostas em 58 imagens digitalizadas, uma das imagens que compõe a base de dados é exibida na Figura 18, sendo esta constituída de três fotos de tamanhos distintos.

(35)

3.2

DESENVOLVIMENTO DO SISTEMA

Esta seção tem como objetivo prover uma perspectiva das etapas de elaboração do sistema proposto, elucidando seus conceitos e características.

A primeira etapa realizada foi o levantamento bibliográfico de aplicações correlatas em relação à utilização de imagens digitalizadas e de soluções que utilizam os mesmos princípios com o intuito de prover a contextualização do trabalho e a discussão de pontos relevantes sobre a aplicação. Durante este processo, foram encontradas algumas patentes correlatas ao sistema desenvolvido, bem como softwares e aplicativos para smartphone, todas estas soluções foram analisadas de modo a compreender o funcionamento, modo de operação e funcionalidades.

Seguinte a esta etapa, foi realizado o desenvolvimento de um algoritmo para processamento das imagens digitalizadas da base de dados utilizando a linguagem de programação C++ e as funções da biblioteca OpenCV que são descritas na seção Funções da Biblioteca OpenCV Utilizadas. Nesta implementação objetivou-se como resultado a identificação das áreas compostas por fotos e do fundo das imagens digitalizadas. Tendo sido obtidas as imagens com as áreas de interesse detectadas, foram realizados processamentos para separação da foto do fundo seguido pela compensação de inclinação de acordo com a correção de perspectiva das imagens em relação a um retângulo.

Por fim, com o objetivo de validar o sistema desenvolvido, foram geradas 58 imagens compostas pelo ground truth com o auxílio do software para edição de imagens ImageJ para cada imagem processada, afim de comparar as duas imagens e verificar a eficiência do algoritmo em detectar as regiões de interesse, baseados nos métodos de análise de sensibilidade x especificidade e área da curva ROC. A Figura 19 mostra uma imagem do banco de dados do sistema, representada em a) e o seu respectivo ground truth gerado representado em b).

Neste processo, foram consideradas e manipuladas variáveis relevantes para esta detecção afim de verificar se os parâmetros obtidos estavam devidamente ajustados. As etapas que compõem o processo de análise do algoritmo de detecção de fotos estão compreendidas na seção Validação do sistema.

3.3

VISÃO GERAL DO SISTEMA

A Figura ?? exibe o diagrama de casos de uso do sistema. Nela, vemos o caso de uso denominado de "definir diretório de entrada", onde o usuário seleciona em qual pasta estão localizadas as imagens digitalizadas, sendo esta entrada necessária para a leitura e processamento do sistema. Um segundo caso de uso denominado de "definir diretório de saída"é utilizado para o usuário definir onde serão armazenadas as fotos que o sistema detectou a partir

(36)

(a) (b)

Figura 19: Imagem do banco de dados do sistema e o ground truth. Fonte: Autor

das imagens digitalizadas.

Figura 20: Diagrama de casos de uso do sistema. Fonte: Autor

A Figura 21 ilustra o diagrama de funcionamento do sistema, onde podemos observar as principais etapas para a realização da extração das fotos. O sistema inicia lendo as imagens digitalizadas que estão armazenadas em um diretório e prossegue realizando pré-processamentos (ajustes) nas imagens para adequá-las para a etapa de detecção da foto e do fundo. Estes pré-processamentos compreendem a conversão para escala de cinza e a filtragem utilizando o filtro gaussiano.

A etapa de detecção das fotos, a área das fotos são demarcadas com pixels brancos e o fundo com pixels pretos. Para realizar este processo, é utilizado o operador Sobel com o objetivo de destacar as bordas das fotos na imagem digitalizada. Após a detecção das bordas,

(37)

Figura 21: Diagrama de funcionamento do sistema. Fonte: Autor

é aplicada a detecção de contornos, feita pela função do OpenCV findContours e seguido pelo desenho destes contornos onde os mesmos são preenchidos pela cor branca com o auxílio da função drawContours, representando a área ocupada pela imagem. A Figura 22 demonstra uma a imagem resultante deste processo para a imagem disposta na Figura 14.

(38)

Após o processo de detecção das áreas de interesse, houve a extração desta região com a sua aproximação para um retângulo, levando em conta o formato da grande maioria de fotos existentes. Este processo é feito com o auxílio da função boundingRect, que é responsável por calcular o retângulo que delimita um conjunto de pontos. Nesta etapa é feita a operação de crop1 entre o retângulo detectado e a imagem original, onde a porção correspondente a foto é extraída. Com o objetivo de extrair as múltiplas fotos de uma imagem estes resultados são armazenados em um vetor. As Figuras 22 a) e 22 b) ilustram este processo, onde a) representa a imagem digitalizada com os retângulos correspondentes a cada parte detectada coloridos com cores diferentes para demonstrar que o processo não ocorre em iterações diferentes. Em b) temos as imagens separadas pelo processo descrito.

(a) (b)

Figura 23: Ilustração do processo de crop realizado pelo sistema. Fonte: Autor.

Finda esta etapa, as fotos detectadas são armazenadas em arquivos separados em um outro diretório, processo este que compreende a iteração do vetor e com o auxílio da função imwriteas fotos detectadas são salvas no diretório. A figura 24 demonstra o diretório com as imagens que foram detectadas da imagem proveniente da Figura 18.

Por fim as imagens identificadas tem a sua perspectiva corrigida a fim de eliminar possíveis inclinações causadas pelo posicionamento na etapa de digitalização. Nesta etapa é utilizada a função minAreaRect que encontra o retângulo rotacionado de área mínima para um dado conjunto de pontos de entrada, a função getRotationMatrix2D é utilizada em seguida para computar a matriz de rotação e seu retorno é utilizado na função warpAffine onde a transformação geométrica é realizada na imagem. Após este processo de correção há a remoção

1Operação que realiza o corte de uma imagem em relação a uma região que pode ser um círculo ou um

retângulo, por exemplo, sendo que a imagem resultante é a porção da imagem original que corresponde com esta região.

(39)

Figura 24: Imagens obtidas salvas em arquivos separados. Fonte: Autor

de bordas da imagem corrigida. Por fim, as imagens detectadas pelo algoritmo são salvas. A Figura 26 ilustra o resultado produzido pelo sistema de detecção dada uma imagem digitalizada de entrada, onde em a) temos a imagem digitalizada de entrada e b) as imagens contendo as fotos separadas e corrigidas.

(a) (b)

Figura 25: Ilustração do processo de crop realizado pelo sistema. Fonte: Autor.

3.4

FUNÇÕES DA BIBLIOTECA OPENCV UTILIZADAS

Esta seção descreve as funções da biblioteca de desenvolvimento para computação visual, OpenCV, que auxiliaram na elaboração do sistema de forma a propiciar a aplicação de alguns métodos como o de Sobel e Canny sem que fosse necessária a implementação destes algoritmos. Na Tabela 1 , temos as principais funções utilizadas e uma descrição resumida de sua utilização.

(40)

(a) (b)

Figura 26: Fotos detectadas pelo sistema dada a imagem digitalizada como entrada. Fonte: Autor

Tabela 1: Principais funções do OpenCV utilizadas no desenvolvimento do sistema. Fonte: Autor

Função do Opencv Descrição Resumida

imwrite Realiza a escrita das imagens imread Realiza a leitura das imagens

gaussianblur Suavização das imagens usando filtro gaussiano erode Operação morfológica de erosão

sobel Aplicação do detector de borda Sobel canny Aplicação do detector de borda Canny findContours Encontra contornos na imagem

drawContours Desenha os contornos detectados da imagem wrapAffine Correção de perspectiva

countNonZero Realiza a contagem de pixels brancos na imagem threshold Limiarização da imagem

boundingRect Calcula o retângulo que delimita o conjunto de pontos getRotationMatrix2D Calcula a matriz de rotação da imagem

(41)

4 RESULTADOS

Este capítulo como objetivo apresentar e discutir os resultados obtidos pelo sistema proposto bem como a análise do método desenvolvido para a detecção das imagens embasada em sua validação.

4.1

TELAS DO SISTEMA

A Figura 27 mostra a tela de entrada do sistema, onde o usuário apenas deve selecionar o diretório de entrada onde as imagens digitalizadas estão armazenadas e o diretório de saída onde ele deseja que as fotos detectadas sejam salvas. Caso a pasta de saída não exista, o sistema irá criá-la no local definido pelo usuário.

(42)

4.2

VALIDAÇÃO E ANÁLISE DO SISTEMA

O conjunto de dados considerado para a análise do sistema buscou abranger diversas entradas que não seriam ideais para o mesmo, sempre buscando verificar a sua eficiência. Neste contexto foram analisadas imagens com grande grau de inclinação, tamanhos distintos, textos presentes nas fotos, diversos tipos de borda e com cortes que não se aproximam de um retângulo exato. Esta diversidade do conjunto de dados considerado está expressa na Figura 25, onde a) representa uma imagem digitalizada em que uma foto possui texto e b) representa uma imagem digitalizada constituída de fotos inclinadas.

(a) (b)

Figura 28: Algumas imagens consideradas nos testes e suas propriedades de interesse para a análise. Fonte: Autor.

Com o objetivo de verificar e ajustar os parâmetros ideais do sistema, foi realizada uma investigação da influência destes na obtenção da detecção das fotos na imagem digitalizada. Esta abordagem levou em conta o estudo dos verdadeiro positivos, falso positivos, verdadeiro negativos e falso negativos de cada teste realizado. Buscando automatizar e padronizar os critérios de cálculo destes quatro elementos de análise foi desenvolvido um algoritmo utilizando a linguagem C++ e a biblioteca OpenCV. Este, lê um conjunto de imagens geradas pelo sistema e realiza a comparação do conjunto de imagens do ground truth, sendo este último gerado manualmente por inspeção visual e está ilustrado na Figura 29.

Para realizar a comparação são empregadas operações aritméticas nas duas imagens pixela pixel com o auxílio de funções do OpenCV. Por fim, os resultados que representam a quantidade de cada um dos quatro elementos encontrada pela etapa de comparação são escritos

(43)

Figura 29: Imagem extraída do conjunto de imagens que compõem o ground truth. Fonte: Autor

em um arquivo na extensão .csv, onde cada linha representa o par de imagens (ground truth e imagem obtida pelo método) e os valores totais para VP, VN, FP e FN. Os resultados obtidos pelo algoritmo são convertidos para uma planilha, onde são realizados os cálculos de especificidade e sensibilidade. Estes resultados são representados pela curva ROC para visualização e análise onde a área desta curva é calculada para verificar a eficiência do teste realizado.

4.2.1

Avaliação da Influência da Filtragem

A filtragem é uma importante etapa de pré-processamento, nela um dos fatores que influenciam no resultado final são as dimensões do filtro utilizado (máscaras) de modo que, quanto menor a dimensão menores detalhes serão realçados (SANCHES et al., ). Utilizando os métodos de validação descritos na seção anterior foram testados diversos tamanhos de máscaras para o filtro gaussiano. Com esta análise pode-se observar que um maior o tamanho da máscara e consequentemente uma maior suavização influenciam negativamente a detecção das fotos nas imagens, pois neste processo é necessária a detecção das bordas que também acabam por ser suavizadas, perdendo a propriedade de separação entre o objeto e fundo. A Figura 30 mostra o resultado obtido para uma máscara de tamanho 99x99.

(44)

Figura 30: Resultado da aplicação de uma máscara de tamanho 99x99 em uma das imagens do banco de dados do sistema Fonte: Autor

Outro aspecto importante a ser observado é a influência dos ruídos inerentes a imagem na separação entre o fundo e a foto, o que justifica a aplicação da filtragem como uma etapa fundamental na maioria dos sistemas que utilizam imagens. A Figura 31 mostra a imagem obtida pelo método sem a aplicação de filtro.

(45)

Figura 31: Imagem obtida sem a aplicação de filtragem Fonte: Autor

De acordo com os resultados acima apresentados, fica evidente a necessidade de definir um tamanho de máscara que possibilite obter uma melhor detecção das fotos no fundo. Através da análise da sensibilidade e especificidade representada pelos verdadeiros positivos e falso positivos foi identificado o melhor parâmetro para ser utilizado no algoritmo (máscara de tamanho 9x9), sendo exibida na Figura 32 o resultado para a aplicação desta máscara em uma das imagens do banco de dados do sistema.

(46)

Figura 32: Resultado obtido na aplicação da máscara de tamanho 9x9 em uma das imagens do banco de dados do sistema. Fonte: Autor

Além disso, foi medida a área sob a curva, obtendo-se um valor de 0,9725. A Figura 33 exibe a curva ROC resultante para a análise do filtro gaussiano de acordo com a variação de diversos tamanhos de máscara.

Figura 33: Curva ROC obtida entre a relação especificidade e sensibilidade (verdadeiro positivo e falso positivo) para testes com variação do tamanho da máscara de filtragem Fonte: Autor

(47)

Tabela 2: Simulações realizadas para diferentes tamanhos de máscara do detector Sobel. Fonte: Autor

Tamanho da Máscara (Kx e Ky) FPR VPR

Kx=Ky=1 0,043131555 0,968126115 Kx=Ky=3 0,054084136 0,975228843 Kx=Ky=5 0,059926833 0,975702576 Kx=Ky=7 0,064636989 0,976243985 Kx = 1 e Ky = 3 0,04475412 0,972115395 Kx=1 e Ky=5 0,050565117 0,97367538 Kx=1 e Ky=7 0,058698248 0,975287059 Kx=3 e Ky=1 0,045614351 0,972353278 Kx=3 e Ky=5 0,056924362 0,975588894 Kx=3 e Ky=7 0,062498535 0,976118864 Kx=5 e Ky=1 0,053063189 0,974423366 Kx=5 e Ky=3 0,057067332 0,975587902 Kx=5 e Ky=7 0,063166042 0,976139845 Kx=7 e Ky=1 0,058634867 0,975399289 Kx=7 e Ky=3 0,062735263 0,976125768 Kx=7 e Ky=5 0,063286166 0,976141126

4.2.2

Avaliação dos Detectores de Bordas

De maneira similar a análise realizada na filtragem os detectores de borda Sobel e Canny foram aplicados no algoritmo desenvolvido e tiveram suas propriedades analisadas com o objetivo de verificar qual das duas abordagens se adequa melhor ao método proposto e ao conjunto de dados.

Para o detector de bordas Sobel foram simulados diversos tamanhos de máscara, sabendo que este detector é composto por duas máscaras que correspondem aos gradientes horizontal e vertical (WANGENHEIM, 2014) foram supostos alguns valores para estas máscaras. A taxa de verdadeiro positivos e falso positivos (média do número de verdadeiro positivos e falso positivos para cada uma das 124 imagens) foi obtida. A Tabela 2 mostra todos os testes realizados e as respectivas taxas de verdadeiro positivos (VPR) e falso positivo (FPR), as máscaras são representadas pelas variáveis Kx e Ky e o melhor resultado obtido foi Kx = 1 e Ky = 3 .

A Figura 34 mostra o resultado obtido em uma das imagens do banco de dados do sistema para o melhor resultado obtido com ajuste das máscaras.

(48)

Figura 34: Resultado obtido na aplicação do detector Sobel com o ajuste de parâmetros de melhor desempenho em uma imagem do banco de dados do sistema. Fonte: Autor.

Além desta análise, a curva ROC para os testes realizados com o detector Sobel foi gerada e o cálculo de sua área obtido foi de 0,9709.

Figura 35: Curva ROC para os testes realizados com o detector Sobel. Fonte: Autor

Seguindo os mesmos princípios o detector de bordas Canny foi analisado. Este detector opera com dois valores de threshold para realizar a detecção da borda, sendo estes dois parâmetros norteadores no processo de detecção realizado (FANG; YUE; YU, 2009). Devido a este fato, para realizar a análise do detector de bordas Canny foi feita uma variação nos valores dos thresholds e foram calculadas as taxas de verdadeiro positivos e verdadeiro negativos, estes

(49)

Tabela 3: Simulações realizadas para diferentes valores de threshold do detector Canny. Fonte: Autor Valores de Threshold (L1 e L2) FPR VPR L1 =0 e L2 = 250 0,003548 0,110585 L1 = 0 e L2 = 253 0,003548 0,117568 L1 = 20 e L2 = 220 0,003548 0,117568 L1 = 70 e L2 = 120 0,000383 0,068216 L1 = 70 e L2 = 220 0,000383 0,068216 L1 = 70 e L2 = 250 0,000383 0,061233 L1 = 100 e L2 = 150 0,000122 0,024087 L1 = 100 e L2 = 200 0,000122 0,024087

valores estão representados pela Tabela 3, onde L1 e L2 representam os valores de threshold. A Figura 33 mostra o resultado obtido em uma das imagens do banco de dados do sistema para o melhor resultado obtido para os valores de threshold, nela é possível visualizar algumas descontinuidades nas bordas, que contribuíram para um menor desempenho na etapa de segmentação(detecção das fotos no fundo da imagem digitalizada) o que resulta em taxas menores do que as obtidas para o detector Sobel. Estes impasses em relação aos ajustes de parâmetros em relação a este detector são comuns visto que um dos grandes desafios da aplicação deste detector é conseguir uma filtragem e uma variação de threshold que obedeça os três princípios citados no capítulo de Fundamentação Teórica deste trabalho.

(50)

Figura 36: Resultado obtido na aplicação do detector Canny com o ajuste de parâmetros de melhor desempenho em uma imagem do banco de dados do sistema. Fonte: Autor.

De maneira análoga as análises anteriores, foi gerada a curva ROC para os testes realizados com o detector Canny. A Figura 34 exibe a curva resultante, a área obtida da curva foi de 0,9726.

(51)

4.3

EFICIÊNCIA DO SISTEMA

Para a análise da eficiência geral do sistema, foram escolhidos os melhores parâmetros obtidos na análise, filtro gaussiano de tamanho 9x9 e detector de bordas Sobel. Para o cálculo da eficiência foi considerado o número total de fotos presentes no conjunto de dados e o número de fotos que foram detectadas e separadas pelo algoritmo. Através de inspeção visual dos resultados, observou-se que das 105 fotos consideradas o algoritmo foi capaz de identificar 105 fotos. Destas 105, todas as fotos correspondem a da base de dados. As Figuras 35, 36 e 37 representam em a) a imagem de entrada e em b) o resultado obtido pelo sistema.

(a) (b)

Figura 38: Imagem de entrada e resultado obtido pelo sistema. Fonte: Autor

Em relação a correção da inclinação obteve-se um resultado não desejado que é ilustrado na Figura 41, isto ocorreu devido ao fato da imagem ter sido digitalizada de maneira incorreta, onde um pedaço da foto ficou fora do digitalizador, formando-se então uma foto com formato não retangular, o que dificultou o processo de segmentação e consequentemente resultou em um resultado final não esperado. Observando b) percebe-se que foi aplicada corretamente a correção da inclinação, porém, há uma espécie de compensação da figura para que ela se torne um retângulo, o que gera alguns pixels pretos na imagem.

Uma segunda análise da eficiência do sistema foi realizada de acordo com a detecção das fotos em relação ao fundo da imagem. Com este intuito considerou-se a média da taxa de acertos em relação a todas as imagens representada pelos verdadeiros positivos que simbolizam a capacidade do algoritmo de detectar um pixel branco no local correto determinado pelo ground truth. A Figura 42 ilustra os resultados, sendo que a taxa média de acertos foi de 98%. A taxa

(52)

(a) (b)

Figura 39: Imagem de entrada e resultado obtido pelo sistema. Fonte: Autor

média de erros que é simbolizada pelo número de falsos positivos, pixels que foram marcados como parte da foto mas que na verdade são parte do fundo, também foi calculada, sendo o valor obtido de 6,6%.

(53)

(a) (b)

Figura 40: Imagem de entrada e resultado obtido pelo sistema. Fonte: Autor

(a) (b)

Figura 41: Resultado não esperado obtido da separação e correção de inclinação de uma foto da imagem digitalizada. Fonte: Autor

(54)

5 CONCLUSÃO E TRABALHOS FUTUROS

Para a implementação do sistema de detecção e separação automático de fotos em imagens digitalizadas foi necessário o desenvolvimento de um algoritmo capaz de segmentar as fotos separando-a do fundo da imagem, deste, foi realizada uma exaustiva análise composta de testes e variações de métodos de forma a propiciar um melhor entendimento da importância das técnicas de processamento de imagens. Findas estas etapas, tem-se um sistema capaz de ler um conjunto de imagens digitalizadas de quaisquer tamanho e quantidade e separar automaticamente todas as fotos além de corrigir inclinações.

A aplicação de técnicas de análises da eficiência dos métodos utilizados foi enriquecedora tanto para a obtenção de melhores resultados bem como para a validação do sistema. O algoritmo desenvolvido para o cálculo de verdadeiro positivos, falso positivos, verdadeiro negativos e falso negativos fundamentada no ground truth complementou-se com a obtenção das curvas ROC, um relevante modelo de avaliação.

De acordo com a análise realizada, o emprego da filtragem como pré processamento configurou-se como uma etapa decisiva para a obtenção de um bom desempenho do algoritmo. Além disso, um estudo dos principais métodos de detecção de bordas (Sobel e Canny) foi realizado para verificar qual das soluções produz melhores resultados considerando o banco de dados do sistema. A eficiência do algoritmo utilizando parâmetros resultantes destas duas análises foi obtida no valor de 98%, e de acordo com o banco de dados utilizados e os casos de teste foi possível detectar e extrair todas as fotos presentes nas imagens digitalizadas.

Algumas funcionalidades podem ser incluídas ao sistema, como por exemplo a detecção de faces para automatizar o processo de rotação das fotos. Com o sistema desenvolvido espera-se a implementação de uma tela para a visualização das fotos detectadas para propiciar uma melhor experiência ao usuário, no quesito de visualização dos resultados. Além disso, existe a possibilidade de desenvolvimento de uma solução mobile utilizando o método de detecção desenvolvido.

(55)

REFERÊNCIAS

ANNADURAI, S. Fundamentals of Digital Image Processing. Pearson, 2007. ISBN 9788177584790. Disponível em:

<https://books.google.com.br/books?id=wM8QRLJXJFwC>.

BORCHARTT, T. Análise de imagens termográficas para a classificação de alterações na mama. Tese (Doutorado) — Ph. D. thesis, Universidade Federal Fluminense, Icaraí, Brasil, 2013.

BRADSKI, G.; KAEHLER, A. Learning OpenCV: Computer vision with the OpenCV library. [S.l.]: "O’Reilly Media, Inc.", 2008.

BRAHMBHATT, S. Practical OpenCV. [S.l.]: Apress, 2013. (Practical OpenCV).

CANNY, J. A computational approach to edge detection. Pattern Analysis and Machine Intelligence, IEEE Transactions on, IEEE, n. 6, p. 679–698, 1986.

CHANDA, B.; MAJUMDER, D. D. Digital image processing and analysis. [S.l.]: PHI Learning Pvt. Ltd., 2004.

FAN, J.; UPADHYE, S.; WORSTER, A. Understanding receiver operating characteristic (roc) curves. Cjem, Cambridge Univ Press, v. 8, n. 01, p. 19–20, 2006.

FANG, M.; YUE, G.; YU, Q. The study on an application of otsu method in canny operator. In: CITESEER. International Symposium on Information Processing (ISIP). [S.l.], 2009. p. 109–112.

FILHO, O. M.; NETO, H. V. Processamento digital de imagens. BRASPORT, 1999. Disponível em: <https://books.google.com.br/books?id=MAEOtwAACAAJ>.

GONZALEZ, R. C. et al. Re woods, digital image processing. Addison–Wesely Publishing Company, 1992.

GONZALEZ, R. C.; WOODS, R. E. Digital image processing. [S.l.]: Prentice hall Upper Saddle River, 2008.

GOTSMAN, C.; KEREN, D.; ELAD, M. Method and system for detecting and classifying objects in an image. Google Patents, dez. 31 2002. US Patent 6,501,857. Disponível em: <https://www.google.com/patents/US6501857>.

GUTKOWSKI, L.; SIEVERT, O. Organizing a digital image. [S.l.]: Google Patents, set. 30 2003. US Patent App. 10/677,164.

HASEGAWA, J. K.; JUNIOR, E. R. D. A. Mosaico com imagens digitais. Boletim de Ciências Geodésicas, v. 10, n. 1, 2004.

HSU, R.-L.; ABDEL-MOTTALEB, M.; JAIN, A. K. Face detection in color images. [S.l.]: IEEE, 2002. 696–706 p.

JIN-YU, Z.; YAN, C.; XIAN-XIANG, H. Edge detection of images based on improved sobel operator and genetic algorithms. In: IEEE. Image Analysis and Signal Processing, 2009. IASP 2009. International Conference on. [S.l.], 2009. p. 31–35.

(56)

JOSHI, G.; SIVASWAMY, J. A computational model for boundary detection. Computer Vision, Graphics and Image Processing, Springer, p. 172–183, 2006.

KINOSHITA, S. K. Atributos visuais para recuperação baseada em conteúdo de imagens mamográficas. Tese (Doutorado) — Universidade de São Paulo, 2004.

KRIG, S. Computer Vision Metrics: Survey, Taxonomy, and Analysis. [S.l.]: Apress, 2014. LUO, J.; GRAY, R. Method for automatically creating cropped and zoomed versions of photographic images. Google Patents, nov. 25 2003. US Patent 6,654,506. Disponível em: <https://www.google.com/patents/US6654506>.

MARQUES, O. Practical image and video processing using MATLAB. [S.l.]: John Wiley and Sons, 2011.

NIXON, M. Feature extraction & image processing. [S.l.]: Academic Press, 2008.

OTSU, N. A threshold selection method from gray-level histograms. Automatica, v. 11, n. 285-296, p. 23–27, 1975.

PERES, M. The Concise Focal Encyclopedia of Photography: From the First Photo on Paper to the Digital Revolution. Taylor & Francis, 2014. ISBN 9781136101823. Disponível em: <https://books.google.com.br/books?id=Akp5AgAAQBAJ>.

PETROU, M.; PETROU, C. Image processing: the fundamentals. [S.l.]: John Wiley & Sons, 2010.

RUSS, J. C. The Image Processing Handbook. [S.l.]: CRC Press, 2011.

SANCHES, C. H. et al. Técnicas de suavização de imagens e eliminação de ruídos.

SOARES, J. L. M. et al. Métodos diagnósticos: consulta rápida. [S.l.]: Artmed Editora, 2009.

SOBIECKI, A.; NEVES, L.; THOMAZ, C. To a better digitalization and visualization of frontal face photographs. In: proceedings of IV European Conference on Computational Mechanics, Image Processing and Visualization Symposium, id. [S.l.: s.n.]. v. 1131, p. 32. STEINBERG, E. et al. Detecting orientation of digital images using face detection information. Google Patents, jul. 21 2009. US Patent 7,565,030. Disponível em: <https://www.google.com/patents/US7565030>.

WANGENHEIM, A. Von. encontrando a linha divisória: Detecção de borda. Departamento de Informática e Estatística-Universidade Federal de Santa Catarina, 2013a. Disponível em:< http://www. inf. ufsc. br/˜ visao/bordas. pdf>. Acesso em, v. 16, 2014.

Referências

Documentos relacionados

[r]

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

The DCF model using the Free Cash Flow to the Firm (FCFF) method, estimates in the first place the Enterprise Value of the company, that represents the value of all future cash

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria

Posteriormente, em Junho de 1999, ingressei no grupo Efacec, onde fui responsável pela elaboração de projetos e propostas para a construção de Estações de Tratamento

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,