• Nenhum resultado encontrado

Sistema Automático de Classificação de Alvos ISSF

N/A
N/A
Protected

Academic year: 2021

Share "Sistema Automático de Classificação de Alvos ISSF"

Copied!
91
0
0

Texto

(1)

Faculdade de Engenharia da Universidade do Porto

Sistema Automático de Classificação de Alvos ISSF

Tiago Miguel Portugal Nunes Moreira

Dissertação realizada no âmbito do

Mestrado Integrado em Engenharia Eletrotécnica e de Computadores

Major Automação

Orientador: Armando Luís Sousa Araújo (Prof. Dr.)

(2)

(3)

iii

Resumo

Este documento descreve o trabalho realizado na construção de um sistema de visão computacional capaz de detetar e classificar alvos usados em campeonatos internacionais de tiro desportivo, obedecendo as normas da International Shooting Sport Federation (ISSF).

É apresentada de forma sucinta a pesquisa efetuada sobre os sistemas de classificação já existentes, assim como todas as escolhas de hardware e software para este sistema. O sistema usa como hardware uma webcam, um computador portátil e um suporte de alvos. Todo o algoritmo foi escrito em C++ usando as bibliotecas de OpenCV.

Ao longo do documento serão descritas todas as etapas que permitiram o desenvolvimento do sistema, algoritmos usados na deteção, segmentação e análise das diferentes partes de um alvo.

Neste documento ainda é feita a análise ao desempenho do algoritmo assim como a precisão da classificação comparada com outros métodos.

Palavras-chave: Alvo, C++, Deteção de objetos, Deteção de orifícios, ISSF, OpenCV, Processamento de Imagem.

(4)
(5)

v

Abstract

This document describes the work carried out for implementing a computer based vision system capable of detecting and classifying 10-meter pistol and rifle ISSF targets.

Research already done on these kind of systems, as well as its associated hardware and software components, is presented.

Proposed system uses a webcam and a laptop computer being all supporting software in C ++.

This work presents all steps involved in its development, namely used algorithms for contour detection, segmentation and analysis of the different parts of a target.

Finally, Author presents a performance comparison between developed software and results associated to a commercial target classification system as well as manual measurements.

Keywords: C ++, Hole Detection, Image Processing, ISSF, Target, Object Detection, OpenCV.

(6)
(7)

vii

Agradecimentos

Gostaria de agradecer ao meu orientador Prof. Doutor Armando Luís Sousa Araújo pelo apoio demonstrado, assim como, pela confiança depositada em mim para a realização deste projeto. Um obrigado ao Sr. Armando Calheiros por mostrar interesse e por contribuir com ideias para o constante melhoramento do projeto.

Fica também um agradecimento aos meus amigos dentro e fora da universidade pelo companheirismo e amizade ao longo destes anos.

Quero agradecer a minha irmã pela revisão ortográfica da dissertação e ao meu cunhado por me ajudar a fazer os suportes de madeira.

Por último, um especial obrigado aos meus pais pelo apoio incondicional, pelo incentivo, confiança e pelo investimento, proporcionando este percurso de aprendizagem e grau de formação.

(8)
(9)

ix

“Scientists study the world as it is Engineers create the world that has never been”

(10)
(11)

xi

Índice

Resumo ... iii

Abstract ... v

Agradecimentos ... vii

Índice ... xi

Lista de figuras ... xiv

Lista de tabelas ...xvii

Abreviaturas e Símbolos ... xviii

Capítulo 1 ... 1

Introdução ... 1 1.1 - Contexto ... 1 1.2 - Motivação ... 2 1.3 - Objetivos ... 3

Capítulo 2 ... 5

Revisão bibliográfica ... 5

2.1 - Sistemas de classificação eletrónicos ... 5

2.1.1 - Sistemas baseados em Triangulação do Som ... 5

2.1.2 - Sistemas baseados na medição por Laser ... 7

2.1.3 - Sistemas de medição baseados em visão ... 9

2.2 - OpenCV ... 10 2.2.1 - Dilatação e Erosão ... 11 2.2.2 - Threshold ... 12 2.2.3 - Transformada de Hough ... 12 2.2.4 - Procura de Contornos ... 13 2.2.5 - Centro de Massa ... 14

2.3 - Modelo pinhole da câmara e calibração ... 14

2.3.1 - Modelo pinhole ... 15

2.3.2 - Geometria de Projeção Básica ... 16

2.3.3 - Distorção da Lente ... 17

2.4 - Conclusão ... 18

Capítulo 3 ... 19

Sistema Automático de Deteção e Classificação de Impactos ... 19

3.1 - Alvos ... 19

3.1 - Hardware ... 21

3.1.1 - Câmara ... 21

3.1.2 - Computador ... 22

3.1.3 - Suportes de madeira ... 22

3.1.4 - Focos luz LED ... 23

3.2 - Software ... 24

3.2.1 - OpenCV ... 24

3.2.2 - Visual Studio ... 24

(12)

3.2.4 - SQLite ... 25

Capítulo 4 ... 27

Algoritmo desenvolvido ... 27

4.1 - Descrição dos processos associados ao algoritmo desenvolvido ... 27

4.1.1 - Inicialização das variáveis ... 28

4.1.2 - Leitura da imagem ... 28

4.1.3 - Conversão BGR para HSV ... 29

4.1.4 - Correção dos parâmetros intrínsecos da câmara ... 29

4.1.5 - Corretor de Escala ... 31

4.1.6 - Threshold Automático ... 32

4.1.7 - Deteção dos Impactos ... 33

4.1.8 - Deteção dos anéis na parte branca do alvo ... 36

4.1.9 - Correção da Perspetiva ... 36

4.1.10 - Deteção dos anéis na parte preta do alvo ... 37

4.1.11 - Cálculo do Centro do Alvo ... 39

4.1.12 - Cálculo das Distâncias e Pontuação ... 40

4.1.13 - Apresentação dos Resultados ... 41

4.2 - Conclusão ... 42

Capítulo 5 ... 43

Front-End ... 43 5.1 - Descrição do Front-End ... 43 5.1.1 - Login ... 44 5.1.2 - Janela Inicial ... 44 5.1.3 - Configurações ... 44 5.1.4 - Exportar ... 45

5.1.5 - P10 Banca, C10 Banca e Ccart Banca ... 46

5.1.6 - P10 Ficheiro, C10 Ficheiro e Ccart ... 46

5.2 - Conclusão ... 47

Capítulo 6 ... 49

Demonstração de resultados ... 49

6.1 - Efeitos da luz ... 49

6.2 - Alvos dobrados ... 50

6.3 - Não Uniformidade dos orifícios e deteção do seu centro ... 51

6.3.1 - Orifício deformado ... 51

6.4 - Deteção do centro do alvo ... 52

6.5 - Interferências na imagem obtida pela câmara ... 52

6.6 - Comparação das pontuações (Algoritmo vs Manual) ... 53

6.6.1 - C10 ... 53

6.6.2 - P10 ... 54

6.6.3 - Ccart ... 54

6.7 - Comparação das pontuações (Algoritmo vs Máquina Certificada) ... 55

6.7.1 - P10 ... 55

6.8 - Tempos de execução ... 56

6.9 - Conclusão ... 56

Capítulo 7 ... 59

Conclusão e Trabalho Futuro ... 59

7.1 - Conclusão ... 59

7.2 - Trabalho Futuro ... 59

Capítulo 8 ... 61

(13)

xiii

Capítulo 9 ... 65

Anexos ... 65

(14)

Lista de figuras

Figura 1 - Sistema de triangulação usado pela HEX Systems. ... 6

Figura 2 - Sistema usado pela Silver Mountain Targets. ... 6

Figura 3 - Sistema 4k187 da MEGAlink. ... 7

Figura 4 - Sistema a laser usado pela SIUS. ... 8

Figura 5 – Esquema do sistema usado pela MEYTON. ... 8

Figura 6 - Sistema Black Magic. ... 8

Figura 7 - Sistema ESA-SQ17. ... 9

Figura 8 - Sistema da Elite Score. ... 9

Figura 9 - Exemplo de elementos estruturantes. ... 11

Figura 10 - Exemplo de uma dilatação. ... 11

Figura 11 - Exemplo de uma erosão. ... 12

Figura 12 - Os 5 tipos de threshold simples existentes [46]. ... 12

Figura 13 - Circulo original [21]. ... 13

Figura 14 – Funcionamento da transformada de Hough para círculos [21]. ... 13

Figura 15 - Exemplo do uso da função findcountours(). ... 14

Figura 16 - Modelo de câmara pinhole. ... 15

Figura 17 - Modelo pinhole simplificado. ... 16

Figura 18 - Distorção radial. ... 17

Figura 19 - Distorção tangencial. ... 18

Figura 20 - Exemplo de um alvo Pistola 10 metros (P10). ... 20

Figura 21 – Exemplo de um alvo Carabina 10 metros (C10). ... 20

Figura 22 - Diâmetro dos anéis e tolerâncias relativas aos alvos P10. ... 20

Figura 23 - Diâmetro dos anéis e tolerâncias relativas aos alvos C10. ... 20

Figura 24 - Exemplo de régua para medição manual de alvos P10. ... 21

Figura 25 – Suporte para alvos C10 ... 23

(15)

xv

Figura 27 – Representação do espaço de cores HSV. ... 23

Figura 28 - Foco LED utilizado na iluminação dos alvos. ... 24

Figura 29 – Diagrama sequencial dos processos implementados do algoritmo final. ... 28

Figura 30 - Imagem padrão usada na calibração dos parâmetros intrínsecos. ... 29

Figura 31 - Matriz dos coeficientes de distorção. ... 29

Figura 32 - Matriz dos parâmetros intrínsecos. ... 30

Figura 33 - Imagem distorcida. ... 30

Figura 34 - Imagem sem distorção. ... 30

Figura 35 - Separação dos planos H, S e V. ... 31

Figura 36 - Threshold do plano S. ... 32

Figura 37 - Exemplo gráfico do threshold automático. ... 33

Figura 38 - Método do Centro de Massa. ... 34

Figura 39 - Método Min. Retângulo Corrigido. ... 34

Figura 40 - Método Min. Retângulo. ... 34

Figura 41 - Diferença entre Min. Retângulo e Min. Retângulo Corrigido. ... 35

Figura 42 - Método Min. Circulo. ... 35

Figura 43 - Método Min. Retângulo e Elipse com Rotação. ... 35

Figura 44 - Método Min. Triângulo. ... 35

Figura 45 - Método Min. Dist. do Contorno ao Centro e Min. Dist. do Contorno de Hull ao Centro. ... 36

Figura 46 - Contornos dos anéis 1, 2 e 3 ... 36

Figura 47 - Antes da correção da perspetiva. ... 37

Figura 48 - Depois da correção da perspetiva... 37

Figura 49 - Representação dos contornos para os anéis validos do alvo. ... 38

Figura 50 - Deteção do Centro do alvo. ... 39

Figura 51 - Gráfico dos pesos para o cálculo da média ponderada... 41

Figura 52 - Representação digital do alvo e do local do impacto. ... 41

Figura 53 - Apresentação dos resultados na consola do IDE. ... 41

Figura 54 - Estrutura do Front-end. ... 43

(16)

Figura 56 - Janela Principal. ... 44

Figura 57 - Janela de Configuração do Front End. ... 45

Figura 58 - Janela para usada para exportar dados. ... 45

Figura 59 - Janela para classificar alvos P10 metros em banca. ... 46

Figura 60 - Contornos detetados com 1 foco lateral... 50

Figura 61 - Contornos detetados com 2 focos laterais. ... 50

Figura 62 - Batente com inclinação usados no suporte. ... 50

Figura 63 - Alvo não totalmente apoiado no suporte. ... 51

Figura 64 - Alvo bem apoiado no suporte. ... 51

Figura 65 - Orifício com defeito 1... 51

Figura 66 - Orifício com defeito 2... 51

Figura 67 - Orifício com defeito 3... 51

Figura 68 - Centro detetado 1. ... 52

Figura 69 - Centro detetado 2. ... 52

Figura 70 - Gráfico dos Desvios para C10. ... 53

Figura 71 - Gráfico dos Desvios para P10. ... 54

Figura 72 - Gráfico dos Desvios para Ccart. ... 55

(17)

xvii

Lista de tabelas

Tabela 1 - Possíveis escolhas de câmaras que cumprem os critérios estabelecidos [29] e

[30]. ... 22

Tabela 2 - Escalas obtidas pelo processo 4.1.5. ... 38

Tabela 3 - Calculo das escalas para as diferentes possibilidades. ... 38

Tabela 4 - Tabela de frequência. ... 40

Tabela 5 - Pontuações e desvios C10. ... 66

Tabela 6 - Tempos de execução do algoritmo para alvos C10. ... 66

Tabela 7 - Pontuações e desvios P10... 66

Tabela 8 - Tempos de execução do algoritmo para alvos P10. ... 66

Tabela 9 - Pontuações e desvios Ccart. ... 66

(18)

Abreviaturas e Símbolos

2D Duas Dimensões

3D Três dimensões

BGR Blue, Green, Red C10 Carabina 10 metros Ccart Carabina Cano Articulado CPU Central Processing Unit CSV Comma-Separated Values FPS Frame Per Second

GPU Graphics Processing Unit

ISSF International Shooting Sport Federation LED Light Emitting Diode

P10 Pistola 10 metros

Px Pixel

RAM Random Access Memory ROI Region of Interest

TV Television

TXT Ficheiro de texto HSV Hue, saturation, value

(19)

Capítulo 1

Introdução

Neste capítulo é apresentado o contexto em que a dissertação se insere, a motivação e interesse que justificam a realização deste projeto assim como os objetivos.

1.1 - Contexto

Os maiores avanços tecnológicos feitos pelo homem estão muitas vezes ligados a tempos de conflitos, sendo a evolução das armas um bom exemplo.

Com a descoberta da pólvora no século IX abriram-se as portas para a criação das primeiras armas de fogo. Inicialmente, foram produzidas na china recorrendo a canas de bambu sendo estas capazes de projetar pedras. Mais tarde, no seculo XIII, surgiram os canhões de madeira com cintas de ferro como reforço, pelas mãos dos Árabes. Apenas um século depois, apareceram os primeiros canhões de bronze. Estes eram mais potentes, eficientes e seguros. As primeiras armas de fogo compactas apareceram no século XV mas o seu recarregamento era demorado e difícil, foi então que no século XVIII surgiram os cartuchos com a bala e pólvora unificados. Até aos dias de hoje, muitas melhorias foram feitas nas armas de fogo, ficando estas mais leves, fiáveis, potentes e precisas [1].

As armas de fogo não são usadas unicamente com o fim bélico, elas também são usadas para treino, segurança pessoal, caça recreativa e desporto.

Nos jogos olímpicos, a modalidade de tiro ao alvo foi introduzida em 1896 onde o número de eventos atualmente é de 15 (9 para os homens e 6 para as senhoras) [2].

Em 1907 foi criada a ISSF, federação que estabelece as regras técnicas para orientar o tiro desportivo e tem como objetivo conseguir uniformidade na condução da modalidade em todo o mundo, de forma a promover o desenvolvimento deste desporto [3].

(20)

Introdução 2

No caso do tiro desportivo, tanto no treino como em prova, atribuir uma classificação aos impactos nos alvos é imperativo. Nos inícios desta modalidade todos os impactos eram medidos manualmente. Atualmente, com a evolução tecnológica existente, já muitos locais de treino têm sistemas automáticos de classificação. Existem vários métodos atuais para classificar os impactos, mas por norma, estes sistemas são demasiado dispendiosos para serem usados a nível de clube (2500€ por sistema [5]).

O método mais utilizado é baseado em triangulação do sinal sonoro do impacto do projétil no alvo [4].

Outro dos métodos utilizados é baseado em medições adquiridas através se lasers infravermelhos [38].

Recentemente, tem-se vindo a estudar a possibilidade de usar sistemas de visão por computador de forma a calcular o centro do impacto dos projéteis. Nestes sistemas, normalmente utiliza-se uma câmara fotográfica, e o processamento de imagem calcula o centro do impacto de modo a atribuir uma classificação [6].

Os primeiros passos dados no processamento digital de imagem ocorreram nos anos 50, quando James J. Gibson desenvolveu um algoritmo de reconhecimento de padrões em imagens a duas dimensões (2D). Nos anos 60, Larry Roberts escreveu a sua tese de doutoramento sobre a possibilidade de extrair informação geométrica de três dimensões (3D) em imagens a 2D. No decorrer dos anos 80 deu-se um grande desenvolvimento devido a novas teorias e conceitos, o que originou que nos anos 90 muitas empresas tivessem capacidade de oferecer produtos capazes de realizar operações automatizadas devido à informação recebida por um sistema de visão computorizado [7], [8].

1.2 - Motivação

Dos 5 sentidos existentes no corpo humano a visão é a mais importante, e por essa razão as imagens têm um papel importante na perceção humana. Ao contrário do corpo humano, que é limitado à banda do espetro visível da radiação, os computadores equipados com determinado hardware conseguem cobrir todo o espetro eletromagnético.

O processamento digital de imagem teve uma enorme evolução nos últimos 30 anos, este sub-ramo do processamento digital de sinais tem as mais variadas aplicações, desde imagens de satélite para meteorologia, processamento de imagens médicas, inspeção de defeitos na indústria de manufatura, segurança, defesa, biometria e até a veículos autónomos.

Com um leque tão vasto de aplicações e devido à precisão necessária para cumprir os requisitos do projeto o desafio não podia ser maior.

Desta forma colocar-se-ão em prática os conhecimentos e capacidades adquiridas ao longo da formação académica na FEUP e, ao mesmo tempo, lançam-se as bases para a utilização, pelos Atletas e Clubes, de um sistema classificativo de baixo custo.

(21)

Objetivos 3

1.3 - Objetivos

O objetivo final deste trabalho, consiste em desenvolver um sistema, baseado em visão por computador, capaz de classificar os impactos dos disparos, em alvos de papel de provas de tiro ISSF nas disciplinas de 10 metros: pistola 10 metros (P10) e carabina 10 metros (C10) [3].

O sistema deverá classificar todos os alvos de uma competição (às decimas), um a um, gravando numa base de dados toda a informação relevante, para eventual consulta posterior. Globalmente, o sistema, tanto a nível de software como de hardware deverá ser uma solução de baixo custo comparativamente às soluções existentes no mercado, e de fácil utilização.

(22)
(23)

Capítulo 2

Revisão bibliográfica

A revisão bibliográfica permitiu adquirir e reforçar o conhecimento necessário para a realização da dissertação.

Neste capítulo é apresentada a informação relevante recolhida ao longo da dissertação. Essa informação contém a pesquisa efetuada sobre os sistemas comercializados e usados atualmente para a classificação de alvos de forma automática, assim como outros sistemas que não são comercializados mas que utilizam uma tecnologia semelhante à utilizada no sistema desenvolvido nesta dissertação. Assim apresentam-se de seguida sistemas eletrónicos de classificação, as principais funções utilizadas e a modelação da câmara.

2.1 - Sistemas de classificação eletrónicos

De forma a tornar o tiro desportivo mais atrativo, para o público, e de modo a que as pontuações sejam conhecidas por todos os envolvidos em tempo real, surgiram recentemente sistemas eletrónicos de classificação de alvos. Estes sistemas têm como a sua principal valência permitirem que o tiro desportivo seja mais espetacular atraindo assim um número crescente de espetadores. Assim apresentam-se de seguida os sistemas de classificação automática mais conhecidos.

2.1.1 - Sistemas baseados em Triangulação do Som

A deteção do centro do impacto baseada no som do projétil aquando da sua passagem no alvo é um dos sistemas mais utilizados. Estes sistemas são sempre em tempo real, ou seja, atribuem uma pontuação num curto espaço de tempo após o disparo. Assim, existem algumas empresas a comercializar sistemas de classificação de alvos baseados neste princípio.

A HEX Systems é uma empresa fundada em 2009, que comercializa um alvo eletrónico (HEXTA - 002). Este alvo eletrónico é usado em provas de longa distância [10].

(24)

Revisão bibliográfica 6

A atribuição de pontuação é feita através de triangulação sonora. Deste modo, o sistema usa 8 sensores acústicos numa câmara de som. Esta câmara de som é tapada na frente com uma pelicula de borracha, de forma a diminuir erros, devido a interferências exteriores. Nas laterais dessa câmara estão colocados os sensores acústicos. As ondas sonoras devidas à passagem do projétil são captadas pelos sensores acústicos e trianguladas para cálculo da pontuação [9].

Figura 1 - Sistema de triangulação usado pela HEX Systems.

A Figura 1 ilustra o exposto. Este sistema apresenta erros de distâncias desde de 16mm a 440mm [10].

A empresa Silver Mountain targets comercializa um sistema do mesmo género, mas que usa apenas 4 sensores acústicos montados numa placa de metal [11]. A Figura 2 apresenta um esquema do sistema usado pela Silver Mountain Targets.

Figura 2 - Sistema usado pela Silver Mountain Targets.

A MEGAlink é uma empresa fundada em 1991, esta produz vários alvos eletrónicos com aprovação da ISSF (2 fases de três possíveis). O modelo recomendado pela MEGAlink para alvos de 10 metros é o 4K187. Neste modelo é usada uma membrana de plástico ou papel para selar a frente da camara de som. A análise e classificação é realizada com recurso a sensores acústicos, estes detetam o local em que o projétil passou pela membrana [44]. Na Figura 3 é possível visualizar o alvo eletrónico em questão.

(25)

Sistemas de classificação eletrónicos 7

Figura 3 - Sistema 4k187 da MEGAlink.

A SIUS, comercializava o sistema S10, este utilizava 3 ou mais sensores acústicos de modo a ser possível realizar a triangulação das ondas sonoras e assim obter a posição do impacto [39]. Este sistema foi descontinuado para modalidades de pequena distância. Atualmente comercializa o sistema hibrido HS10. Neste sistema, para impactos próximos do centro do alvo, a classificação é realizada com recurso a dois lasers. No entanto, para impactos mais distantes do centro, a classificação dos impactos continua a ser realizada através da triangulação das ondas sonoras como no modelo descontinuado [40].

Existem mais algumas empresas a comercializar sistemas de classificação baseados em triangulação do som, tais como: SPIETH, HARING, a Kongsberg, etc. No entanto, conseguir informação detalhada sobre o seu funcionamento é difícil, uma vez que estas empresas não as disponibilizam.

Concluindo, em todos os sistemas de classificação de alvos através do som, são usados os mesmos princípios com apenas algumas alterações, tais como o número de sensores usados, o uso ou não de uma câmara de som e os periféricos associados ao sistema. Estes periféricos permitem mostrar os resultados da classificação numa televisão, num tablet ou mesmo na internet.

2.1.2 - Sistemas baseados na medição por Laser

Todos os sistemas de medição por laser classificam em tempo real.

A SIUS comercializa o LS10 LASERSCORE (para modalidades de 10 metros), tem a provação da ISSF (todas as 3 fases) e é capaz de realizar medições de centésimas de milímetro [38]. Este sistema usa 3 sensores laser de infravermelhos que detetam o projétil e medem a distância entre este e o sensor. A precisão é tão grande, que até é possível detetar o calibre do projétil.

(26)

Revisão bibliográfica 8

Após esta medição é feita a triangulação para se poder determinar a pontuação. A Figura 4 apresenta um esquema simples do sistema usado pela SIUS [12].

Figura 4 - Sistema a laser usado pela SIUS.

É de salientar que este foi o sistema usado nos jogos olímpicos do Brasil e que é a única empresa que tem os seus sistemas totalmente aprovados pela ISSF.

A EMPRESA MEYTON comercializa o Black Magic. O Black Magic é um sistema que usa lasers para realizar a classificação dos alvos. Este sistema usa lasers e sensores (em lados opostos) que criam uma matriz de luz. Quando um projétil passa por essa matriz, interrompe pelo menos dois feixes de luz o que permite saber o local por onde o projétil passou. A Figura 5 apresenta o esquema de princípio deste sistema [13], já a Figura 6 apresenta o produto comercializado.

Figura 5 – Esquema do sistema usado pela

MEYTON.

(27)

Sistemas de classificação eletrónicos 9

2.1.3 - Sistemas de medição baseados em visão

Normalmente, os sistemas de medição baseados em visão classificam os alvos sem ser em tempo real. Nestes sistemas são usados alvos de papel para registar a pontuação e só posteriormente é que estes alvos são classificados. No entanto existem empresas que comercializam estes sistemas de medição em tempo real, tal como, a INTARSO e a Elite Score. A empresa INTARSO comercializa um sistema baseado em visão (ESA-SQ17) para alvos de 10 metros. Este sistema usa um rolo de papel que avança após ser detetado um impacto (obrigatório em campeonatos internacionais da ISSF), permitindo assim que cada orifício do impacto dos projéteis seja analisado com recurso a um sistema de visão. A resolução deste sistema é da ordem dos 0.1mm. [14]. Na Figura 7 é possível visualizar o sistema em causa.

Figura 7 - Sistema ESA-SQ17.

A Elite Score comercializa um sistema para classificar impactos de pistola 10 metros e carabina 10 metros. Este sistema usa um rolo de plástico que fica por trás de uma mascara. O impacto ao passar pelo orifício da mascara vai furar o plástico, permitindo assim a sua classificação. A empresa afirma que o seu sistema consegue ter uma precisão de 0.1 milímetros. No entanto, este sistema ainda não tem aprovação pela ISSF em nenhuma das três fases possíveis [43]. Na Figura 8 é possível visualizar o sistema em causa.

Figura 8 - Sistema da Elite Score.

(28)

Revisão bibliográfica 10

A ORION é uma empresa que comercializa software de classificação. Os alvos têm de ser previamente digitalizados num scanner, e são posteriormente analisados pelo programa. O erro máximo associado à classificação é de 0.125mm para carabina 10 metros e 0.4mm para a pistola 10 metros [37].

O TargetScan é um software disponível para iphone e android, este software utiliza a câmara integrada no dispositivo para tirar uma fotografia ao alvo e o classificar. Este software ainda é capaz de registar e monitorizar o progresso do atirador.

Existem mais sistemas de classificação baseados em visão tais como o EasyScore e o RM IV, mas as empresas que os fabricam não disponibilizam detalhes sobre os seus produtos.

Recentemente têm sido feitos mais estudos em sistemas de classificação de alvos usando visão por computador.

Em [15], Ali Faizan apresenta o uso de um sistema de visão para classificar alvos. Este sistema, embora tenha uma elevada percentagem de alvos com a pontuação determinada corretamente, não realiza a classificação da pontuação às décimas, hoje em dia obrigatória em provas ISSF.

Em [16] Rudzinski Jacek, descreve um sistema de classificação de alvos usando imagens obtidas através de uma câmara. Os seus resultados parecem satisfatórios. No entanto estes são comparados com os resultados obtidos por métodos manuais, não usando qualquer dos processos automáticos aprovados pela ISSF (máquina de classificação RIKA, por exemplo).

Em 2014, Cardim Guilherme apresentou um artigo relativo a classificação de alvos usando um sistema de visão por computador. O sistema usa uma câmara, a 4 metros do alvo, e permite classificar os impactos, mas, de novo, sem classificação realizada às décimas [17].

Em 2015, Courtney Richard Pitcher realizou a sua dissertação sobre a análise de técnicas de visão por computador para classificar alvos de carabina 50 metros. No entanto a deteção de impactos não era o suficientemente para conseguir a resolução necessária. Com classificações sem décimas obteve diferenças máximas de ±1 ponto. Com classificações usando décimas obteve diferenças máximas de ±1,5 pontos [18].

2.2 - OpenCV

O OpenCV é uma biblioteca de funções open source usada em sistemas de visão por computador. Pode ser usada em Linux, Windows ou Mac OS X.

A Biblioteca de funções OpenCV foi criada de forma a ser computacionalmente eficiente, com foco em aplicações de tempo real. Esta é constituída por mais 500 funções, permite o uso de processadores multi-core e pode ser encontrada nas mais variadas aplicações como por exemplo: calibração de câmaras, sistemas inspeção na indústria da manufatura, sistemas de alarme, remoção de ruido em imagens, etc [45].

A biblioteca OpenCV, providencia um conjunto de ferramentas básicas que permite resolver problemas em sistemas de visão por computador.

(29)

OpenCV 11

De seguida são apresentadas as principais funções de OpenCV usadas no algoritmo desenvolvido.

2.2.1 - Dilatação e Erosão

O OpenCV contem um conjunto de ferramentas que permite realizar transformações morfológicas de forma rápida.

As transformações morfológicas básicas são a erosão e a dilatação. Estas são usadas para remover ruido, isolar ou juntar elementos e também permitem intensificar transições ou orifícios numa imagem [45].

Tanto a dilatação como a erosão são uma convolução de uma imagem com um elemento estruturante normalmente denominado por kernel. O kernel é um elemento estruturante sob a forma de uma matriz e que pode representar uma estrutura circular, retangular, em cruz, etc. A Figura 9 contem alguns elementos estruturantes normalmente utilizados, sendo que o quadrado a azul representa o centro computacional desse elemento.

Figura 9 - Exemplo de elementos estruturantes.

A dilatação numa imagem a preto e branco expande as regiões mais brilhantes. Um exemplo desta operação pode ser visualizada na Figura 10, onde na esquerda temos a imagem original e na direita a imagem dilatada.

Figura 10 - Exemplo de uma dilatação.

A erosão numa imagem a preto e branco faz com que as áreas mais brilhantes diminuam de área. Esta operação pode ser visualizada na Figura 11, onde na esquerda temos a imagem original e na direita a imagem erodida.

(30)

Revisão bibliográfica 12

Figura 11 - Exemplo de uma erosão.

2.2.2 - Threshold

O threshold é o método de segmentação mais simples que existe. Com o threshold é possível separar regiões de uma imagem que tenham diferentes níveis de intensidade.

Este método permite rejeitar todos os pixéis que estão abaixo ou acima de algum limiar, mantendo os restantes [45]. Existem 5 tipos de threshold: Binary, Binary inverted, Truncate, threshold to zero e threshold to zero inverted. Um exemplo dos diferentes tipos de threshold pode ser visto na Figura 12.

Figura 12 - Os 5 tipos de threshold simples existentes [46].

2.2.3 - Transformada de Hough

A transformada de Hough é o método normalmente utilizado para encontrar linhas, círculos, ou outras formas simples numa imagem. No Caso deste projeto a deteção de círculos é a mais importante.

O algoritmo Hough Circle implementado nas bibliotecas de OpenCV é muito usado no processamento digital de imagem para detetar objetos circulares.

(31)

OpenCV 13

(𝑥 − 𝑎)2+ (𝑦 − 𝑏)2= 𝑟2

Onde a e b são as coordenadas do centro do circulo e r é o raio do circulo.

Sendo o raio r conhecido, o algoritmo Hough Circle desenha vários círculos com metade do raio conhecido e por todo o contorno desejado. O local (x,y) por onde passar mais circunferências é escolhido como o centro do círculo. Na

Figura 14 podemos visualizar o funcionamento da transformada de Hough, com 4 pontos (a branco) escolhidos da

Figura 13 resulta o centro (vermelho) na Figura 14.

Figura 13 - Circulo original [21]. Figura 14 – Funcionamento da transformada de

Hough para círculos [21].

Embora este algoritmo funcione muito bem para detetar círculos quase perfeitos, no caso de formas imperfeitas, este método funciona muito mal, resultando em vários centros detetados quando só havia um impacto ou então nem detetava nenhum centro. O mesmo foi evidenciado por Courtney Richard Pitcher na sua dissertação [18].

Por estas razoes, esta transformada não foi utilizada para detetar formas circulares no algoritmo.

2.2.4 - Procura de Contornos

Os contornos são uma ferramenta útil pois permitem analisar a forma de um objeto detetado ou até mesmo reconhecer objetos numa imagem.

Um contorno é uma curva contínua situada na parte exterior de um objeto. Este objeto distingue-se do fundo da imagem e normalmente tem a mesma cor ou intensidade por ele todo.

(32)

Revisão bibliográfica 14

Figura 15 - Exemplo do uso da função findcountours().

2.2.5 - Centro de Massa

O objetivo deste algoritmo é calcular o centro de massa de um objeto numa imagem. Para se poder calcular as coordenadas do centro de massa é necessário calcular todos os pixels que são 1 em x e todos os pixels que são 1 em y, para tal usamos as seguintes funções respetivamente.

𝑠𝑢𝑚𝑥= ∑∑𝑥𝐼(𝑥, 𝑦) 𝑒 𝑠𝑢𝑚𝑦= ∑∑𝑦𝐼(𝑥, 𝑦)

Para se calcular as somas enunciadas em cima, é usado o momento de uma imagem binaria. Em matemática, o momento é uma medida quantitativa especifica e pode ser usada em várias situações. O uso do momento em objetos binários foi proposto por Hu em 1961 [19].

O momento de uma imagem binaria é descrito pela seguinte função [20]:

𝑀𝑖𝑗= ∑𝑥∑𝑦𝑥𝑖𝑦𝑗𝐼(𝑥, 𝑦)

I(x,y) é a intensidade de cada pixel (0 ou 1), i e j servem para indicar a ordem do momento, x e y são as coordenadas dos pixels da matriz M.

As coordenadas do centro de massa são obtidas usando a seguinte função.

𝑀𝑐𝑥𝑦= ( 𝑠𝑢𝑚𝑥 𝑀00 ,𝑠𝑢𝑚y 𝑀00 ) = (𝑀10 𝑀00 ,𝑀01 𝑀00 )

2.3 - Modelo pinhole da câmara e calibração

Os modelos de câmaras são funções que permitem mapear um mundo 3D num mundo 2D. Existem muitos modelos de câmaras e de complexidade variável tais como Thin Lens, thick Lens, Full Lens, Pinhole Camera, etc.

(33)

Modelo pinhole da câmara e calibração 15

O padrão de representação de algoritmos gráficos no computador é equivalente ao modelo pinhole. Este modelo é uma idealização do modelo Thin Lens, onde a lente é vista apenas como um ponto infinitesimal.

2.3.1 - Modelo pinhole

O modelo pinhole permite-nos compreender como é que uma câmara consegue captar a luz refletida pelos objetos. Este modelo propõem a existência de uma barreira opaca entre o sensor da câmara e o mundo a ser captado por esta. Esta barreira tem um pequeno orifício denominado por pin-hole, que deixa passar a luz refletida dos objetos a captar para o sensor da câmara.

No entanto, uma câmara pin-hole pura não é frequentemente utilizada, pois esta não consegue captar muita luz num curto tempo de exposição. Dessa forma, foram adicionadas lentes para permitir que mais luz fosse captada num curto espaço de tempo. A adição de uma lente neste tipo de câmaras introduz distorção.

Para remover a distorção provocada pela adição da lente é necessário realizar uma calibração da câmara. Esta calibração também permite relacionar diretamente uma medida da imagem captada (pixels) com uma medida do mundo físico (metros).

A Figura 16 ilustra o exposto, onde f é a distância focal, Z é a distância da câmara ao objeto, X é o tamanho do objeto e x é o tamanho do objeto no plano de imagem.

Figura 16 - Modelo de câmara pinhole.

Pelo conceito dos triângulos semelhantes obtemos a seguinte formula:

−𝑥 𝑓= 𝑋 𝑍 𝑜𝑢 − 𝑥 = 𝑓 ∗ ( 𝑋 𝑍)

De forma a tornar o modelo mais simples matematicamente, o plano de imagem e o plano pinhole são trocados. A principal diferença é que agora a imagem captada não aparece com uma rotação de 180 graus.

(34)

Revisão bibliográfica 16

Com esta alteração, a luz viaja do objeto para o centro da projeção, passando pelo plano de imagem.

Pela Figura 17 podemos visualizar que o ponto 𝑄⃗ = (𝑋, 𝑌, 𝑍) é projetado no plano de imagem originando o ponto 𝑞 = (𝑥, 𝑦, 𝑓). Esta projeção ocorre segundo a reta que vai do ponto Q até ao centro de projeção.

Figura 17 - Modelo pinhole simplificado.

O ponto de interseção entre o plano de imagem e o eixo ótico é denominado por ponto principal. Devido à dificuldade em colocar o centro do sensor ótico exatamente onde está o ponto principal, são introduzidas duas novas variáveis, Cx e Cy. Estas variáveis permitem ajustar o centro da imagem.

A seguinte fórmula resume o exposto, onde Xscreen e Yscreen são as coordenadas da imagem obtida e fx e fy são as distâncias focais para cada eixo.

𝑥𝑠𝑐𝑟𝑒𝑒𝑛= 𝑓𝑥( 𝑋 𝑍) + 𝑐𝑥 𝑦𝑠𝑐𝑟𝑒𝑒𝑛= 𝑓𝑦( 𝑋 𝑍) + 𝑐𝑦

2.3.2 - Geometria de Projeção Básica

Os parâmetros intrínsecos são a distância focal, o centro da imagem, o fator de escala e os coeficientes de distorção da lente [25]. Estes parâmetros dependem exclusivamente das características físicas da câmara tais como, a geometria interna da lente e do tipo de lente [26].

Relativamente aos parâmetros extrínsecos, estes dependem da posição e da orientação do referencial de coordenadas da câmara relativamente a um outro sistema de coordenadas

(35)

Modelo pinhole da câmara e calibração 17

(alvo) [26]. Devido à possibilidade do plano da câmara estar paralelo com o plano do alvo, os parâmetros extrínsecos não são relevantes.

A relação que permite mapear os pontos 𝑄(𝑋𝑖𝑌𝑖𝑍𝑖) do mundo real em coordenadas (𝑥𝑖𝑦𝑖) é denominada por transformação de projeção. Esta transformação corrige os parâmetros intrínsecos e pode ser resumida pela seguinte fórmula:

𝑞 = 𝑀𝑄, Onde 𝑞 = [ 𝑥 𝑦 𝑤 ], 𝑀 = [ 𝑓𝑥 0 𝑐𝑥 0 𝑓𝑥 𝑐𝑦 0 0 1 ], 𝑄 = [ 𝑋 𝑌 𝑍 ]

2.3.3 - Distorção da Lente

O modelo ideal pinhole não permite que muita luz seja captada pelo sensor ótico. Para diminuir este defeito, são usadas lentes que permitem aumentar a quantidade de luz captada. A inserção de uma lente no modelo origina distorção na imagem captada e esta distorção ocorre pela impossibilidade de construir lentes perfeitas. As principais distorções associadas ao uso de uma lente são a distorção radial e a distorção tangencial.

A distorção radial é zero no centro ótico e aumenta com a distância a este. Esta distorção normalmente é pequena e pode ser caracterizada com poucos termos da serie de Taylor. Para câmaras comuns, normalmente utilizam-se os dois primeiros termos da serie de Taylor, para câmaras com mais distorção usa-se mais um termo. A Figura 18 ilustra o exposto.

Figura 18 - Distorção radial.

Esta distorção é corrigida com o uso das seguintes fórmulas, onde r são os coeficientes que caracterizam a distorção:

𝑥𝑐𝑜𝑟𝑟𝑖𝑔𝑖𝑑𝑜= 𝑥(1 + 𝑘1𝑟2+ 𝑘2𝑟4+ 𝑘3𝑟6) 𝑦𝑐𝑜𝑟𝑟𝑖𝑔𝑖𝑑𝑜= 𝑥(1 + 𝑘1𝑟2+ 𝑘2𝑟4+ 𝑘3𝑟6)

(36)

Revisão bibliográfica 18

A distorção tangencial ocorre devido ao plano da lente não estar perfeitamente paralelo com o plano da imagem. Esta distorção é caracterizada por dois parâmetros, p1 e p2. A Figura 19 ilustra o exposto.

Figura 19 - Distorção tangencial.

A distorção tangencial pode ser corrigida usando a seguintes fórmulas:

𝑥𝑐𝑜𝑟𝑟𝑖𝑔𝑖𝑑𝑜= 𝑥 + [2𝑝1𝑦 + 𝑝2(𝑟2+ 2𝑥2)] 𝑦𝑐𝑜𝑟𝑟𝑖𝑔𝑖𝑑𝑜= 𝑦 + [𝑝1(𝑟2+ 2𝑦2) + 2𝑝2𝑥]

Concluindo, existem mais distorções que podem ocorrer em sistemas de captação de imagens. No entanto, a distorção radial e a distorção tangencial são as mais importantes. Estas normalmente são expostas numa matriz denominada por matriz dos coeficientes de distorção, de dimensões 5*1 [𝑘1, 𝑘2, 𝑝1, 𝑝2, 𝑘3].

2.4 - Conclusão

Neste capítulo foram expostos os principais sistemas de classificação de alvos, assim como as suas tecnologias.

No final do capítulo, foi apresentado o modelo matemático que define a relação de pixels da imagem obtida com as distâncias no mundo real.

(37)

Alvos 19

Capítulo 3

Sistema Automático de Deteção e

Classificação de Impactos

O projeto de um sistema de deteção e classificação automático baseado em visão, necessita de um conjunto de ferramentas para que possa ser planeado e executado. Podemos dividir estas ferramentas em duas partes distintas: o hardware e o software. Por outro lado, nesta aplicação concreta os impactos a pontuar estão em alvos bem definidos, regulamentados pela ISSF.

Assim, este capítulo esta dividido em três partes: 1. A descrição dos alvos a pontuar.

2. A escolha do material físico (hardware) utilizado, assim como a justificação da sua escolha.

3. Finalmente, a escolha a nível de software e ferramentas computacionais utilizadas. Deste modo começa-se por apresentar os alvos utilizados seguindo com o hardware e terminando com o software utilizado.

3.1 - Alvos

Nesta dissertação os alvos a classificar são alvos de carabina 10 metros (C10) e pistola 10 metros (P10). Estes alvos estão de acordo com as normas da ISSF, identidade que regulamenta estas provas desportivas.

A classificação dos impactos deve ser realizada às décimas, isto é, desde 1.0 até 10.9 pontos.

Foram escolhidos, para testar o algoritmo, os alvos oficiais de carabina 10 metros (C10) e pistola 10 metros (P10).

(38)

Sistema Automático de Deteção e Classificação de Impactos 20

A Figura 20 e a Figura 21 apresentam, respetivamente, os alvos de pistola 10 metros e de carabina 10 metros.

Figura 20 - Exemplo de um alvo Pistola 10 metros

(P10).

Figura 21 – Exemplo de um alvo Carabina 10

metros (C10).

Como podemos observar da Figura 20 e da Figura 21, os alvos estão divididos em diferentes zonas de pontuação, pelos chamados anéis de pontuação. Para alvos de papel os diâmetros e tolerâncias destes anéis estão especificados na Figura 22 e na Figura 23, retiradas do manual da ISSF [3].

Figura 22 - Diâmetro dos anéis e tolerâncias relativas aos alvos P10.

Figura 23 - Diâmetro dos anéis e tolerâncias relativas aos alvos C10.

É de notar que as medidas dos diâmetros são feitas pela parte exterior dos anéis. Para se calcular a resolução mínima necessária foi adotado o seguinte raciocínio:

Para o alvo P10, o primeiro anel tem 155.5mm de diâmetro sendo seu raio de 77.75mm. A sua pontuação varia desde 1.0 a 10.9, ou seja, 100 valores diferentes de pontuação. Concluímos

(39)

Hardware 21

assim que o alvo tem de ser dividido no mínimo em 200 partes. Assim sendo para este tipo de alvo, é necessário uma câmara com uma resolução mínima de 200*200 pixels onde cada um corresponde a 0.7775mm do alvo.

Para o alvo C10, o primeiro anel tem um diâmetro de 45.5mm e portanto, seguindo o raciocínio anterior, este alvo tem de ser dividido em 200 partes. Com a resolução mínima de 200*200 pixels corresponde a 0.2275mm no alvo.

No entanto, a câmara nunca vai estar a captar exclusivamente os 10 anéis do alvo. Portanto, terá de ser considerado um número superior de pixels. Por outro lado, pelo teorema da amostragem precisamos, pelo menos, o dobro destes pixéis. Assim, considerou-se usar pelo menos 3 pixels por décima. Deste modo a câmara a usar deve ter no mínimo uma resolução de 600*600 pixels.

No caso de não haver nenhum dispositivo eletrónico de classificação dos alvos de papel, estas são efetuadas utilizando dispositivos mecânicos específicos (réguas de medição) [28].

A Figura 24 ilustra para um alvo P10 a técnica de medida usada. A pontuação sem décimas é feita por inspeção visual. Para obter a primeira casa decimal, a régua é colocada no orifício provocado pelo impacto. O centro da régua é alinhado com o centro do alvo. De seguida, o valor da primeira casa decimal é obtido pelo traço da régua mais próximo de um anel de pontuação do alvo. No exemplo ilustrado na Figura 24 a pontuação é 10.5.

Figura 24 - Exemplo de régua para medição manual de alvos P10.

3.1 - Hardware

3.1.1 - Câmara

A qualidade da imagem é um dos pontos mais importantes neste projeto, portanto uma boa escolha da câmara a ser utilizada é crucial.

Realizada uma pesquisa sobre webcams, foram selecionadas as que tinham mais de 720p e a possibilidade de focagem automática. A Tabela 1 apresenta as duas opções mais interessantes.

(40)

Sistema Automático de Deteção e Classificação de Impactos 22

Tabela 1 - Possíveis escolhas de câmaras que cumprem os critérios estabelecidos [29] e [30].

NOME FORMATO DA IMAGEM LARGURA EM PIXELS ALTURA EM PIXELS DISTÂNCIA MÍNIMA DE FOCAGEM (METROS)

MICROSOFT LIFECAM STUDIO 16:9 1920p 1080p 0.1m a 10m

LOGITECH HD PRO C920 16:9 1920p 1080p 0.04m a 0.5m

Das duas, a câmara escolhida foi a Logitech HD Pro C920 já que era a que permitia um ponto de focagem menor, essencial para poder aproximar a câmara do alvo mais pequeno (C10).

3.1.2 - Computador

O sistema desenvolvido usa imagens captadas em alta definição. Portanto, foi estabelecido o requisito mínimo de 2Gb de memória RAM.

Pelo facto de as operações entre matrizes serem realizadas pela unidade de processamento central (CPU) e não pela unidade de processamento gráfico (GPU), estipulou-se como requisito mínimo, um CPU com pelo menos 2Ghz.

Neste caso o computador em que foi criado e testado todo o sistema foi um ASUS X550L com 8Gb de memória de acesso aleatório (RAM) e com um CPU Intel Core i7 4510U [31].

3.1.3 - Suportes de madeira

De modo a que a câmara esteja sempre a mesma distância e paralela ao alvo a pontuar, foram feitos dois suportes de madeira. Um para o alvo C10 e outro para o alvo P10, já que a área a adquirir é diferente. A Figura 25 e a Figura 26 apresentam os suportes desenvolvidos já com a câmara aplicada.

(41)

Hardware 23

Figura 25 – Suporte para alvos C10 Figura 26 – Suporte para alvos P10

Note-se que os suportes possuem batentes, que para além de centrarem o alvo com a câmara, tentam também manter o mesmo o mais plano possível na base do suporte.

A cor da base foi escolhida tendo em conta a cor do papel dos alvos (amarela), a cor da impressão dos alvos (preta). Segundo o cone representativo do espaço de cores em HSV, a cor oposta ao amarelo é o azul e a cor oposta a estas duas é o preto, tal como podemos ver na Figura 27.

Figura 27 – Representação do espaço de cores HSV.

3.1.4 - Focos luz LED

Neste sistema de aquisição de imagem o controlo da iluminação é essencial. Uma boa qualidade de iluminação permite reduzir a complexidade de processos de análise de imagem necessários à extração da informação pertinentes [32] e [33].

Como tal foram utilizados dois projetores Light Emitting Diode (LED), de 10w cada. Este foram colocados ao lado do suporte de madeira já apresentados. A Figura 28 apresenta o exposto.

(42)

Sistema Automático de Deteção e Classificação de Impactos 24

Figura 28 - Foco LED utilizado na iluminação dos alvos.

3.2 - Software

Este ponto apresenta os programas de software e as bibliotecas usadas no sistema.

3.2.1 - OpenCV

Hoje em dia existe um conjunto de bibliotecas de funções open source de fácil acesso. As principais bibliotecas de funções são: CImg, MAGICK++, BOOST C++ Libraries, VIPS e OpenCV. Devido ao contacto prévio com as bibliotecas OpenCV e pelo vasto suporte existente na internet, estas foram as escolhidas para uso neste projeto.

As bibliotecas OpenCV podem ser usadas de forma gratuita tanto para fins académicos como para comercias. Estas são compatíveis com muitas plataformas (Android, Windows, Linux, etc.) e podem ser usadas tanto por C/C++, Java como Python e Visual Basic.

3.2.2 - Visual Studio

Para ambiente de desenvolvimento em C++, IDE, utilizou-se o Visual Studio.

Este IDE permite a criação, edição e teste de aplicações, de modo intuitivo. Na escolha desta plataforma foi considerado o ser disponibilizada gratuitamente aos alunos da UP o seu rápido tempo de compilação do código e os seus mecanismos de análise de erros.

3.2.3 - QT

Para a construção de uma interface gráfica, com o utilizador, foi escolhido o framework multiplataforma para desenvolvimento de interfaces gráficas, Open Source QT. Este utiliza uma programação orientada a objetos e um conjunto de ferramentas que permite a criação de botões, caixas e janelas de forma simples e rápida.

(43)

Software 25

3.2.4 - SQLite

Como vimos no ponto 1.3,1.3 - o sistema deve possuir uma base de dados onde é guardada toda a informação relevante de uma competição. Assim a base de dados escolhida foi o SQLITE. Esta escolha foi realizada pelo facto de que a sua licença permite que as bases de dados sejam utilizadas gratuitamente tanto para fins académicos como para fins comerciais. Por outro lado não necessita nem de um servidor nem de uma configuração prévia.

(44)
(45)

Capítulo 4

Algoritmo desenvolvido

Neste capítulo apresenta-se o algoritmo desenvolvido, os processos associados e as funções utilizadas em cada processo, desde a aquisição da imagem até a atribuição da pontuação.

O algoritmo foi escrito usando a língua de programação C++.

O capítulo inicia apresentando um diagrama de fluxo do algoritmo, continua com a descrição dos processos desenvolvidos e termina com a demostração de resultados.

4.1 - Descrição dos processos associados ao algoritmo

desenvolvido

A Figura 29 apresenta o diagrama de fluxo dos processos associados ao algoritmo desenvolvido nesta dissertação.

(46)

Algoritmo desenvolvido 28

Figura 29 – Diagrama sequencial dos processos implementados do algoritmo final.

Note-se que para alguns dos processos apresentados no diagrama de fluxo da Figura 29, nomeadamente, corretor de escala, threshold automático, deteção de impactos, deteção de contornos parte branca e deteção de contorno na parte preta do alvo, existe uma função comum a todos designada por eliminação de falsos positivos. Esta serve para eliminar ruido por erosão e dilatação e remover contornos indesejados.

É de notar também que, embora o programa tenha sido originalmente desenvolvido para alvos P10 E C10, foi adicionado, já no final do projeto, a opção para alvos de carabina de cano articulado (Ccart).

Os principais processos e respetivas funções são assim apresentados de seguida.

4.1.1 - Inicialização das variáveis

Neste primeiro processo são adicionadas todas as bibliotecas necessárias para a correta interpretação do compilador assim como iniciadas todas as variáveis globais.

4.1.2 - Leitura da imagem

A imagem a ser lida corresponde a um frame retirado da webcam em tempo real. Inicializadas as variáveis o algoritmo altera e define as propriedades da câmara para a sua

Inicio

Inicialização das

variáveis

Leitura da Imagem

Conversão BGR

para HSV

Correção dos

parâmetros

intrínsecos da

camara

Corretor de Escala

Threshold

Automático

Deteção dos

Impactos

Deteção dos anéis

na parte branca do

alvo

Correção da

Perspetiva

Deteção dos anéis

na parte preta do

alvo

Cálculo do Centro

do Alvo

Cálculo das

Distancias e

Pontuação

Apresentação dos

Resultados

Fim

(47)

Descrição dos processos associados ao algoritmo desenvolvido 29

resolução máxima (1920*1080p). Ajusta também o frame per second (FPS) e a distância focal ideal para cada alvo determinado anteriormente de forma experimental.

Definidas as propriedades da câmara avança-se com aquisição da imagem respetiva.

4.1.3 - Conversão BGR para HSV

Do processo anterior temos uma imagem com o espaço de cores em azul, verde, vermelho (BGR) (espaço de cores que o OpenCV utiliza por definição [41]). Este espaço de cores não é o ideal para o melhor tratamento do alvo. Assim a imagem é convertida para HSV já que este espaço para além de representar a cor, também representa a saturação e o brilho.

4.1.4 - Correção dos parâmetros intrínsecos da câmara

Normalmente, as câmaras são afetadas de distorção e, por essa razão é necessário proceder a uma calibração. Esta calibração permite que as distâncias no mundo real tenham uma relação direta com o número de pixels captados pela câmara [34].

Para se realizar a calibração é necessário uma imagem padrão. A Figura 30 apresenta a imagem padrão usada para a calibração da câmara.

Figura 30 - Imagem padrão usada na calibração dos parâmetros intrínsecos.

É de notar que, quanto mais fotografias se utilizar, melhor será a calibração. Neste caso, foram utilizadas 20 fotografias da imagem padrão, em vários pontos do raio de ação da câmara. Usando o algoritmo do OpenCV para efetuar a calibração de câmaras, foram obtidas duas matrizes: A, matriz dos coeficientes de distorção de dimensão [5*1], e a matriz dos parâmetros intrínsecos, [P] que é de dimensão [3*3]. A Figura 31 e a Figura 32 apresentam as matrizes obtidas para a distância focal ideal dos alvos P10.

[3.02013𝑒 − 02 −5.88394𝑒 − 02 0 0 −3.15243𝑒 − 02]

(48)

Algoritmo desenvolvido 30 [ 1.47142𝑒 + 03 0 9.59500𝑒 + 02 0 1.47142𝑒 + 03 5.39500𝑒 + 02 0 0 1 ]

Figura 32 - Matriz dos parâmetros intrínsecos.

As duas matrizes obtidas são posteriormente utilizadas pela função undistort() que transforma a imagem captada originalmente na imagem com a distorção corrigida. A Figura 33 e a Figura 34 ilustram os resultados deste processo. Nas mesmas podemos ver que a distorção provocada por parâmetros intrínsecos nesta câmara é muito pouca, quase impercetível.

Figura 33 - Imagem distorcida.

Figura 34 - Imagem sem distorção.

Assim, dado a haver pouca distorção e também devido à distorção que existe ser em zonas onde não interfere com a zona de pontuação, optou-se por não incluir esta parte do algoritmo no algoritmo final, dado que a sua inclusão aumentava o tempo de processamento.

(49)

Descrição dos processos associados ao algoritmo desenvolvido 31

4.1.5 - Corretor de Escala

Tal como o nome do processo indica, esta parte do algoritmo irá servir para no fim comparar e corrigir, se necessário, o valor de escala que daqui resultou com o valor de escala obtido por um outro método descrito no processo 4.1.10.

No início do processo é utilizada a imagem previamente guardada em HSV (No processo 4.1.3 - Conversão BGR para HSV). Nesta imagem é escolhida uma Region of Interest (ROI) associada ao centro da mesma de forma a não ser necessário eliminar demasiados contornos que sejam falsos positivos. De seguida a imagem é divida nos 3 planos, ou seja, é separada a matriz que guarda a imagem HSV em três matrizes. Cada uma delas guarda, respetivamente, os valores de H, de S e V. A Figura 35 ilustra o exposto.

Figura 35 - Separação dos planos H, S e V.

Após esta separação, e usando apenas a matriz S, calculou-se a média dos valores de S e cria-se um vetor que guarda os desvios dos valores de S em relação ao valor da média.

Com os valores da média e dos desvios, determina-se um threshold, que após aplicado permite obter a imagem apresentada de seguida.

(50)

Algoritmo desenvolvido 32

Figura 36 - Threshold do plano S.

Após este resultado procuram-se todos os contornos da imagem, eliminando todos os que são falsos positivos, ficando apenas o contorno que separa a parte preta do alvo da parte branca.

Por análise, retira-se a altura e a largura do contorno (em pixels). Da Figura 23 sabe-se que este contorno tem um diâmetro de 30.5mm correspondente ao anel 4. Assim é possível obter um fator de escala pixel/mm.

De seguida utiliza-se uma nova ROI de modo a englobar toda a área do alvo. Para o alvo C10 utiliza-se (1.8 ∗ (30.5𝑚𝑚)). Esta nova ROI é usada como imagem original nos próximos processos.

Note-se que podendo existir impactos sobre o anel 4 estes alteram significativamente o valor de escala. Consequentemente a pontuação a atribuir é mais tarde corrigido com valores obtidos no processo 4.1.10.

4.1.6 - Threshold Automático

Este processo vai realizar uma série de operações na imagem obtida no processo 4.1.5 tais como: Dividir a imagem em pequenos ROI’s, dividir esses ROI’s nos planos H, S e V e, com a média e com valores do vetor de desvio do plano V, calcular o threshold.

Tal é necessário para detetar os contornos dos anéis de pontuação. A análise dos valores obtidos, permitiu separar os ROI pertencentes à parte preta do alvo (quadrados a vermelho na Figura 37), os que pertencem à parte branca do alvo (quadrados a verde na Figura 37), os que estão fora do alvo (quadrados a branco na Figura 37) e os que estão numa transição entre a parte preta e a parte branca do alvo ou entre qualquer parte do alvo e do orifício causado pelo impacto do projétil (quadrados a preto na Figura 37).

(51)

Descrição dos processos associados ao algoritmo desenvolvido 33

Figura 37 - Exemplo gráfico do threshold automático.

Feita a separação dos ROI’s nos 4 grupos apresentados (brancos, verdes, vermelhos e pretos), calcula-se a média dos threshold’s individuais desses ROI’s. Deste modo obtemos os valores de threshold que vão ser usados pelos processos 4.1.8 e 4.1.10.

4.1.7 - Deteção dos Impactos

A determinação do valor de threshold associada ao impacto do projétil é realizada sabendo que a cor deste é azul. Assim tal permite determinar o contorno do orifício do projétil eliminando os falsos positivos.

Teoricamente, o impacto provocado por um projétil com 4.5mm de diâmetro resultaria num orifício cujos os bordos fossem circulares com o mesmo diâmetro. Na prática tal não acontece. Assim é necessário utilizar mais que método para o cálculo do mesmo.

A deteção do centro do impacto começou por usar a transformada de hough para círculos e o template match [35]. Como os resultados obtidos não foram os esperados decidiu-se fazer a análise e deteção usando as propriedades dos contornos [36]. Com esta metodologia obtiveram-se melhores resultados.

Foram implementados seis métodos para calcular o centro do impacto: Centro de Massa; Mínimo Retângulo Corrigido; Mínimo Retângulo; Mínimo Circulo; Mínimo Retângulo e Elipse com Rotação; Mínimo Triângulo.

Foram também implementados mais dois métodos, que apenas serão usados no processo de cálculo de distâncias ao centro, são eles: Mínima distância do Contorno ao Centro; Mínima Distância do Contorno de Hull ao Centro.

(52)

Algoritmo desenvolvido 34

Centro de Massa:

O método centro de massa calcula as coordenadas do centro de massa do contorno através do momento da imagem. Na Figura 38 pode observar-se o resultado deste método (contornos a vermelho e respetivo centro obtido)

Figura 38 - Método do Centro de Massa.

Min. Retângulo Corrigido:

Com este método é possível obter melhores resultados em impactos cuja deformação resulte num orifício mais estreito e comprido. Basicamente, o método obtém a altura e a largura do retângulo (mínimo retângulo em que cabe o contorno). Caso a altura seja maior que a largura o método atribui o valor do centro da seguinte forma.

𝐶𝑒𝑛𝑡𝑟𝑜𝑥𝑦= (𝑉1 𝑥+ 𝑎𝑙𝑡𝑢𝑟𝑎

2 , 𝑉1 𝑦+ 𝑎𝑙𝑡𝑢𝑟𝑎

2 ) ,

caso a largura seja maior que a altura então o centro é calculado da forma seguinte.

𝐶𝑒𝑛𝑡𝑟𝑜𝑥𝑦= 𝑉1 𝑥+ 𝑙𝑎𝑟𝑔𝑢𝑟𝑎

2 , 𝑉1 𝑦+

𝑙𝑎𝑟𝑔𝑢𝑟𝑎

2

A Figura 39 ilustra o exposto.

Figura 39 - Método Min. Retângulo Corrigido.

Min. Retângulo:

Tal como no método anterior, é criado o menor retângulo capaz de conter o contorno do orifício. Através da análise desse retângulo é calculado o centro usando a fórmula seguinte.

𝐶𝑒𝑛𝑡𝑟𝑜𝑥𝑦= (𝑉1 𝑥+ 𝑙𝑎𝑟𝑔𝑢𝑟𝑎

2 , 𝑉1 𝑦+

𝑎𝑙𝑡𝑢𝑟𝑎

2 )

Os resultados obtidos podem ser vistos na Figura

40. Figura 40 - Método Min.

(53)

Descrição dos processos associados ao algoritmo desenvolvido 35

Min. Retângulo vs Min. Retângulo corrigido:

O impacto representado na Figura 41 permite visualizar a diferença entre os estes dois métodos. O centro do método Min. Retângulo está representado a amarelo e o centro do método Min. Retângulo Corrigido está representado a vermelho. Como podemos visualizar na figura, o ponto a vermelho está mais próximo do verdadeiro centro do impacto.

Figura 41 - Diferença entre Min. Retângulo e Min. Retângulo

Corrigido.

Min. Circulo:

Com este método o centro do orifício é obtido desenhando o menor círculo em que cabe o contorno. De seguida esse círculo é analisado obtendo-se o seu centro. A Figura 42 apresenta o resultado obtido.

Figura 42 - Método Min. Circulo. Min. Retângulo e Elipse com Rotação:

Como quinto método é usada a menor elipse que consegue conter o contorno. De seguida é feita a análise a essa elipse para obter o seu centro, que corresponderá ao centro do orifício. É de notar que o centro da elipse é sempre igual ao do retângulo e, por essa razão, o cálculo do centro do retângulo não é

necessário. A Figura 43 ilustra o resultado obtido. Figura 43 - Método Min. Retângulo e Elipse com Rotação.

Min. Triângulo:

À semelhança dos métodos anteriores este usa o menor triângulo possível que é capaz de conter o contorno do orifício. De seguida é calculado o centro do triângulo pela seguinte fórmula.

𝐶𝑒𝑛𝑡𝑟𝑜𝑥𝑦= (

𝑎𝑥+𝑏𝑥+𝑐𝑥

3 ,

𝑎𝑦𝑏𝑦𝑐𝑦

3 )

A Figura 44 expõe o resultado obtido.

Figura 44 - Método Min. Triângulo.

(54)

Algoritmo desenvolvido 36

Min. Dist. do Contorno ao Centro. Min. Dist. do Contorno de Hull ao Centro. Neste dois métodos não é calculado o centro do orifício. Neste processo é apenas encontrado o contorno de Hull que permite remover grande parte das imperfeições existentes com o contorno original (contorno original a verde e contorno de hull a vermelho, na figura ao lado). Da Figura 45 podemos observar o contorno original a verde e o contorno de Hull a vermelho.

Figura 45 - Método Min. Dist. do Contorno ao Centro e Min. Dist. do Contorno de Hull ao Centro.

4.1.8 - Deteção dos anéis na parte branca do alvo

Este processo inicia-se aplicando os valores de threshold obtidos no processo 4.1.6 à imagem original que torna possível a deteção dos anéis.

Eliminados os contornos assinalados como falsos positivos, restam 3 contornos que correspondem ao anel 1, 2 e 3 do alvo tal como se pode ver na seguinte figura:

Figura 46 - Contornos dos anéis 1, 2 e 3

4.1.9 - Correção da Perspetiva

Este processo serve para corrigir a distorção causada quando o plano da câmara não está paralelo com o plano do alvo. Este tipo de distorção não ocorre no caso inicialmente proposto (câmara no suporte em madeira e colocada corretamente), apenas poderá ocorrer no caso de ser feita a análise de fotos tiradas sem suporte, por exemplo com o telemóvel.

(55)

Descrição dos processos associados ao algoritmo desenvolvido 37

O algoritmo consiste em analisar o maior contorno dos contornos obtidos no processo anterior (Deteção dos anéis na parte branca do alvo) e verificar se esse contorno é uma circunferência ou uma elipse. Caso seja uma elipse, transforma essa elipse num círculo. Devido à robustez de todo o algoritmo, foi observado que se o contorno for uma elipse, mas próxima de uma circunferência, não é necessário fazer essa transformação.

Figura 47 - Antes da correção da perspetiva. Figura 48 - Depois da correção da perspetiva.

A Figura 47 e a Figura 48 ilustram o exposto. Na primeira foi provocada uma deformação exagerada. O resultado obtido com a análise da mesma com o algoritmo de correção resulta na Figura 48.

Nesta podemos ver que os anéis do alvo são já uma circunferência ao invés de uma elipse como na figura anterior.

4.1.10 - Deteção dos anéis na parte preta do alvo

Neste processo o algoritmo começa por fazer um threshold com os valores obtidos no processo 4.1.6 e de seguida procura pelos contornos. Após eliminar os contornos que não pertencem aos contornos dos anéis, elimina também os contornos interiores dos anéis e os contornos que estejam muito próximos ou mesmo em contacto com o orifício do impacto. Resulta assim uma imagem com os contornos dos anéis (contorno da parte exterior dos anéis). O resultado obtido pode ser observado na Figura 49.

(56)

Algoritmo desenvolvido 38

Figura 49 - Representação dos contornos para os anéis validos do alvo.

Nesta figura podemos ver que todos os anéis do alvo estão rodeados pelo seu contorno com a exceção do contorno 6 e 7 já que estes estão em contacto com o orifício do impacto provocado pelo projétil. Note-se que a zona 9 e 10 também não tem contornos mas apenas porque tal não é usado na deteção do centro.

É de salientar que neste processo se recalcula as escalas de pixel/mm. Tal é feito usando os três maiores contornos (contornos exteriores dos anéis) da parte preta do alvo tendo sido retirados previamente os contornos que estejam muito próximos, ou mesmo em contacto com o orifício do impacto. Esta parte do algoritmo garante que apenas são considerados para efeitos de cálculo os contornos sem defeitos, resultando num valor mais preciso para as escalas. O valor de escala obtido no processo 4.1.5 - (ver Tabela 2) é agora usado para confirmar qual o valor a escolher de entre os três valores de escalas obtidos (ver Tabela 3).

Tabela 2 - Escalas obtidas pelo processo 4.1.5.

Escalas obtidas pelo processo 4.1.5 - Corretor de Escala

Escala em X: 19.0163 px/mm

Escala em Y: 18.9508 px/mm

Tabela 3 - Calculo das escalas para as diferentes possibilidades.

Escalas obtidas por análise do maior contorno válido dentro da parte preta do alvo Se diâmetro igual a 30.5 Escala em X: 19.0492 px/mm Escala em Y: 18.9836 px/mm Se diâmetro igual a 25.5 Escala em X: 22.7843 px/mm Escala em Y: 22.7059 px/mm

Referências

Documentos relacionados

Plantio: Março (sementes), outubro e novembro (estacas) Característica botânica: Planta subarbustiva, perene.. Os ramos são

O fato da contagem total de hemócitos no experimento com o agroquímico Talcord não ter sido diferente significativamente entre o controle e os dois tratamentos onde os

Inicialmente, destacamos os principais pontos de convergência: • O papel tático e operacional exercido pela área de TI dos Câmpus é claramente identificável, tanto nos

Antes de caminhar efetivamente ao encontro de métodos e mecanismos que nos levem a solucionar os problemas de ajustamento e inclusão dos jovens oriundos das “tribos” juvenis urbanas

Após a colheita, normalmente é necessário aguar- dar alguns dias, cerca de 10 a 15 dias dependendo da cultivar e das condições meteorológicas, para que a pele dos tubérculos continue

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

After selecting the participants, we applied a standardized questionnaire which had been previously tested by the research group, and collected data on socioeconomic

De acordo com SUKHIANI e colaboradores (1996), JERRAM & DEWEY (1999b) e MAYHEW e colaboradores (2004), cães que realizam cirurgia descompressiva podem reapresentar os