FACULDADE DE
ENGENHARIA DA
UNIVERSIDADE DO
PORTO
Reconhecimento de Objetos Baseado
em Visão Artificial
André Filipe Morais Duarte
Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Orientador: Pedro Gomes da Costa
c
Resumo
A competição de futebol robótico tem vindo a evoluir ao longo dos anos incentivando aos participantes a criação de sistemas cada vez mais complexos e capazes de resolver uma maior variedade de problemas.
Esta dissertação tem como objetivo a deteção e reconhecimento da bola de futebol por parte do guarda-redes tendo em conta que a bola de futebol pode ser de qualquer cor.
Os desafios que existem na deteção e reconhecimento de um objeto são muito variados como a falta de luminosidade, a própria velocidade de aquisição pois estando um objeto em movimento é necessário utilizar-se sistema com maior velocidade de aquisição de forma a permitir o acompa-nhamento do trajeto do objeto...
Para combater esses problemas inicialmente separou-se o problema da deteção da bola em dois casos sendo eles: a bola estar em contacto com o chão e o outro caso seria a bola não estar em contacto com o chão.
Para o caso da bola não estar em contacto com o chão separou-se a imagem de profundidade em clusters fornecendo assim uma segmentação da imagem baseada na distância, prosseguindo posteriormente para o reconhecimento dos objetos nos clusters.
Para o caso da bola em contacto com o chão realizou-se a segmentação do plano do chão o que permitiu isolar a bola do resto do ambiente seguida pela aplicação da técnica da segmentação por profundidade, avançando posteriormente para a fase de reconhecimento dos objetos nas diferentes imagens.
Na fase de reconhecimento considera-se que cada objeto das diferentes imagens são candidatos a ser uma bola de futebol. Recorrendo às características de uma bola de futebol o sistema é capaz de avaliar a presença no campo de visão do robô da bola de futebol.
Verificou-se que com o movimento rápido da bola que nem sempre é possível avaliar a pre-sença da bola de futebol pois esta fica bastante deformada em algumas aquisições das imagens. Assim para combater estes erros de deteção desenvolveu-se um filtro de Kalman que oferece uma melhor estimativa da continuidade do movimento do objeto que se está a identificar ao longo do tempo.
Abstract
The robotic football competition has evolved over the years to encourage participants to deve-lop systems increasingly complex and able to address a wider variety of problems.
This thesis aims at detection and recognition of the soccer ball from the goalkeeper taking into account that the ball can be any color.
The challenges that exist in the detection and recognition of an object are varied from the lack of lighting, the speed acquisition, for instance if the object is in fast motion is needed to use a system with greater acquisition rate in order to track the path of the object, ...
It was initially separated the problem of the ball detection in two cases being: the ball is in contact with the ground floor and the other case the ball isn’t in contact with the ground floor.
The case which the ball does not come in contact with the floor the depth image is separa-ted into clusters thus providing a segmentation of the image based on the distance, subsequently proceeding to the recognition of objects in the clusters.
In the next case which the ball is in contact with the floor, the removal of the ground plane was essential to isolate the ball from the rest of the objects. The resulting image was followed by the application of the depth segmentation already explained, subsequently advancing to the recognition phase of the different clusters.
In the recognition phase it is considered that each one of the different objects are candidates for being a soccer ball. Using the characteristics of a soccer ball the system is able to evaluate the presence of such object in the robot line of sight.
It was found that the rapid movement of the ball that isn’t always possible to evaluate the presence of the soccer ball because the motion of the ball can deformed the ball in some image acquisitions. Thus to combat these detection errors it was developed a Kalman filter that provides a best estimation of the object movement.
Agradecimentos
Queria começar por agradecer à minha família por tudo o que me proporcionaram ao longo dos anos, deixar também uma palavra especial para os meus pais e irmã que sempre me apoiaram e me fizeram sempre seguir os melhores caminhos. O que sempre desejei foi deixar-vos orgulhosos e acho que vou conseguindo, pois vocês também são o meu orgulho.
Agradecer ao meu orientador, Pedro Costa, e coorientador, José Lima, por me terem acei-tado para o desenvolvimento deste projeto e agradecer também todo o tempo dispensado para o acompanhamento que foi realizado ao longo do semestre de forma a incentivar-me a obter mais e melhores resultados. Uma palavra de agradecimento também pelo apoio e a disponibilidade do Doutor Andry Pinto que sempre se mostrou disponível para ajudar nos momentos de maior stress durante o desenvolvimento da dissertação.
Agradecer ao Doutor Cândido Duarte que me proporcionou uma das melhores experiências ao longo da minha formação, um estágio e a participação num projeto para a Infineon e a oportunidade de integrar um núcleo de estudantes que permitiu o meu melhor desenvolvimento como engenheiro e como pessoa.
Agradecer também ao Engenheiro Pedro Costa da Infineon por acreditar e apoiar sempre o meu trabalho e por me transmitir a sua experiência de engenheiro adquirida ao longo dos seus anos de trabalho.
Por fim, mas não os menos importantes, aos meus amigos de sempre e de faculdade deixo uma palavra de agradecimento por me terem acompanhado ao longo destes anos sem vocês não seria o mesmo.
“Faz por ser bom rapaz”
Conteúdo
1 Introdução 1 1.1 Enquadramento . . . 1 1.2 Motivação e Objetivos . . . 1 1.3 Estrutura da Dissertação . . . 2 2 Revisão Bibliográfica 3 2.1 Introdução . . . 3 2.2 Sensores RGB-D . . . 3 2.2.1 Microsoft Kinect 1.0 . . . 42.3 Técnicas de Deteção e Reconhecimento de Objetos . . . 5
2.3.1 Hough Voting . . . 5
2.3.2 Scale-Invariant Feature Transform . . . 6
2.3.3 Speeded Up Robust Feature . . . 7
2.3.4 Normal Aligned Radial Feature . . . 8
2.3.5 Geometric Hashing . . . 10
2.3.6 Random Sample Consensus . . . 10
2.3.7 Iterative Closest Point . . . 11
2.3.8 Point Feature Histograms . . . 12
2.3.9 Fast Point Feature Histograms . . . 13
2.3.10 Viewpoint Feature Histograms . . . 14
2.3.11 Feature Matching . . . 15 3 Algoritmo de Deteção 17 3.1 Bolas Aéreas . . . 17 3.1.1 Clustering. . . 17 3.1.2 K-Means Clustering . . . 17 3.1.3 Resultados . . . 17 3.2 Bolas Não-Aéreas . . . 19
3.2.1 Segmentação do Campo baseado em cor . . . 19
3.2.1.1 RGB . . . 19 3.2.1.2 HSV . . . 20 3.2.1.3 YUV . . . 21 3.2.1.4 Resultados . . . 22 3.2.2 Ground Plane . . . 23 3.2.2.1 Transformações . . . 23
xii CONTEÚDO 3.2.4 Resultados . . . 25 3.3 Conclusões . . . 26 4 Algoritmo de Reconhecimento 29 4.1 Resultados . . . 32 4.2 Conclusões . . . 33 5 Filtro de Kalman 35 5.1 Modelo para Bola Aérea . . . 36
5.2 Modelo para Bola Não-Aérea . . . 37
5.3 Resultados . . . 38 5.4 Conclusões . . . 39 6 Conclusões 41 6.1 Conclusões Gerais . . . 41 6.2 Desenvolvimentos Futuros . . . 42 Bibliografia 43
Lista de Figuras
2.1 Microsoft Kinect 1.0. [1] . . . 4
2.2 Diagrama de blocos do algoritmo proposto em [3]. . . 5
2.3 Resultados da aplicação do algoritmo proposto por [3] onde a cena foi adquirida a partir de uma câmara Kinect e conseguiram a deteção de dois modelos na imagem (Coelho e o Robô). . . 6
2.4 Exemplo de Deteção utilizando SIFT. [4] . . . 7
2.5 Os pontos de interesse detetados na imagem da esquerda (imagem de treino) são comparados com os pontos da imagem da direita (imagem adquirida pelo sistema). [6] . . . 8
2.6 Identificação das bordas dos objetos. [7] . . . 9
2.7 Identificação dos pontos de interesse para o descritor NARF. [7]. . . 9
2.8 Exemplo do cálculo do descritor NARF (à direita) sobre um ponto de interesse (à esquerda). [7] . . . 10
2.9 Comparação do método RANSAC com o método dos mínimos quadrados. [10] . . 11
2.10 Iterações do algoritmo ICP. [14] . . . 12
2.11 Definição do referencial uvw em ps. Os ângulos α,φ e θ descrevem as diferenças entre as normais nse nt. [6] . . . 13
2.12 Esquema da vizinhança do ponto pq. Onde o método FPFH é influenciado por 5 vizinhos. [6] . . . 14
2.13 Componente de observação do algoritmo VFH. [6] . . . 15
3.1 Imagem de profundidade com bola aérea. . . 18
3.2 Clusteringda imagem de profundidade da figura3.1. . . 18
3.3 Representação geométrica do espaço de cores RGB. [17] . . . 20
3.4 Representação geométrica do espaço de cores HSV. [19] . . . 21
3.5 Representação das componentes UV do espaço de cores YUV. [16] . . . 22
3.6 Conversão e threshold da imagem RGB. . . 23
3.7 Esquema definido para obter as coordenadas reais a partir da posição dos diferen-tes pixéis da imagem. . . 24
3.8 Segmentação do plano do chão. . . 25
3.9 Imagem de profundidade com bola não-aérea. . . 25
3.10 Clustering da imagem de profundidade da figura3.9. . . 26
3.11 Algoritmo do Sistema. . . 27
xiv LISTA DE FIGURAS
5.1 O filtro de Kalman guarda os estados estimados do sistema e a incerteza dessa es-timação. A estimativa é atualizada recorrendo ao modelo transitório e às medidas obtidas. ˆxk|k−1 corresponde à estimação do estado do sistema no tempo k antes do das medidas em yk tenham importância assim o valor de Pk|k−1corresponde à
incerteza da estimação. [23] . . . 36
5.2 Resultado do Filtro de Kalman na deteção da Bola Aérea e Não Aérea. . . 38
Lista de Tabelas
2.1 Kinect 1.0 Especificações. [2] . . . 4
4.1 Funções que modelam as características da bola. . . 30
5.1 Erro médio da posição real da bola em comparação com a posição retornada pelo filtro de Kalman. . . 39
Abreviaturas e Símbolos
3D Tridimensional
DoG Difference of Gaussian
FLANN Fast Library for Approximate Nearest Neighbors FPFH Fast Point Feature Histograms
ICP Iterative Closest Point
NARF Normal Aligned Radial Feature PCL Point Cloud Library
PFH Point Feature Histograms RANSAC Random Sample Consensus RGB Red-Green-Blue
RGB-D Red-Green-Blue-Depth
SIFT Scale-Invariant Feature Transform SURF Speeded Up Robust Feature VFH Viewpoint Feature Histograms
Capítulo 1
Introdução
1.1
Enquadramento
A evolução da tecnologia dos últimos anos tem permitido o aparecimento de sensores que possibilitam novos e melhorados métodos de interpretação do ambiente. Este facto é relevante para diversas áreas principalmente para a robótica, pois permitiu a criação e desenvolvimento de algoritmos que permitem perceber o mundo que nos rodeia.
No entanto estes algoritmos são normalmente computacionalmente pesados tornando-os inviá-veis para sistemas robóticos baseados em visão artificial que requerem a extração de informação do mundo que os rodeia em tempo-real.
Desta forma o desenvolvimento e criação de algoritmos cada vez mais rápidos e eficientes têm sido um desafio para a comunidade científica.
1.2
Motivação e Objetivos
O objetivo desta dissertação passa pelo desenvolvimento de um sistema de deteção e reconhe-cimento de objetos com recurso a sensores RGB-D, mais propriamente, realizar o reconhereconhe-cimento da bola de futebol num jogo de futebol robótico, que seja computacionalmente eficiente e ao mesmo tempo robusto a interferências do exterior assim como a luminosidade.
A motivação deste projeto é principalmente integrar todo o conhecimento adquirido na equipa de futebol robótico da FEUP (RoboSoccer-5DPO) e conseguir uma boa prestação numa futura competição de futebol robótico. Pois cada vez mais as competições estão mais competitivas e desafiantes o que incentiva estudantes a procurar novas alternativas que apresentem melhores re-sultados de forma a melhorar os seus sistemas.
2 Introdução
1.3
Estrutura da Dissertação
A dissertação está dividida em seis capítulos, no capítulo2é apresentado a revisão bibliográ-fica, que consiste na análise de algoritmos já abordados que permitiram a resolução de problemas similares à dissertação.
No capítulo 3 é abordado o sistema de deteção que tem como objetivo a segmentação da imagem e identificar os diferentes objetos da imagem para serem posteriormente reconhecidos.
O sistema de reconhecimento da bola de futebol é especificado no capítulo4onde é especifi-cado o algoritmo desenvolvido de forma a identificar os diferentes objetos como sendo uma bola de futebol.
No capítulo 5é descrito a implementação e a incorporação do filtro de Kalman no sistema desenvolvido.
Por último apresenta-se as conclusões que foram possíveis retirar aquando a finalização do trabalho realizado.
Capítulo 2
Revisão Bibliográfica
2.1
Introdução
Neste capítulo aborda-se o estado da arte que identifica métodos e problemas que advém da tentativa do reconhecimento e identificação de objetos recorrendo a sensores RGB-D.
2.2
Sensores RGB-D
Os sensores RGB-D desde que foram introduzidos ao público com sucesso em meados de 2010 por parte da Microsoft Kinect despertou um elevado interesse por parte de várias áreas de estudo na utilização destes sensores.
Os motivos são variados como por exemplo são sistemas económicos em comparação com outras tecnologias como por exemplo câmaras baseadas na tecnologia Time-of-Fligth.
Um sensor RGB-D é um sistema que incorpora vários componentes essenciais como: • Câmara RGB que permite captar o mundo à sua volta como uma câmara fotográfica. • Sensor de profundidade que permite ao sistema obter a distância que cada objeto está da
câmara.
Como o interesse por esta tecnologia tem vindo a aumentar o mercado destes sensores acompa-nhou esta mesma tendência apresentando aos consumidores uma maior variedade de sensores com cada vez melhores câmaras e diferentes funcionalidades por preços acessíveis.
Apresenta-se na próxima secção as propriedades do sistema de aquisição utilizado no projeto de forma a identificar as características e limitações do aparelho utilizado.
4 Revisão Bibliográfica
2.2.1 Microsoft Kinect 1.0
A Microsoft Kinect foi a primeira a ter grande sucesso no lançamento desta tecnologia, com a Kinect 1.0 (Figura2.1). Na tabela2.1apresenta-se as especificações da Kinect 1.0.
Figura 2.1: Microsoft Kinect 1.0. [1]
Consumo Energético 2.25W
Distância de Utilização Desde 0.5m até 4.5m Campo de Visualização 57 oHorizontal 43oVertical Sensor RGB Depth 2 * Microfone Profundidade do tamanho da imagem VGA (640x480) : 30 fps
Resolução espacial 3 mm
Resolução de profundidade 1 cm
Interface USB
Ambiente de Operação Interior Dimensões 24.9 x 6.6 x 6.7 cm
Preço 147,09 (Amazon)
2.3 Técnicas de Deteção e Reconhecimento de Objetos 5
2.3
Técnicas de Deteção e Reconhecimento de Objetos
De forma a conseguir detetar e reconhecer objetos numa imagem foram desenvolvidos ao longo dos anos vários algoritmos com o objetivo de resolver uma variedade de problemas.
Nas próximas secções aborda-se alguns desses algoritmos onde especifica-se o seu princípio matemático e também as vantagens e desvantagens da sua utilização.
2.3.1 Hough Voting
A transformada de Hough é uma das técnicas mais populares no universo da visão artificial, esta técnica foi inicialmente introduzida à comunidade científica como uma ferramenta capaz de detetar linhas numa imagem bidimensional e que posteriormente foi evoluindo permitindo a dete-ção de círculos e elipses numa imagem.
Este algoritmo a partir da utilização de pontos de interesse de uma imagem assim como can-tos, bordas, etc. dos objetos gerar um esquema de votação que acumula os parâmetros dos ob-jetos presentes na imagem e ao aplicar-se um determinado threshold aos picos deste acumulador consegue-se determinar a presença de um determinado objeto.
A extensão deste pensamento para um ambiente tridimensional é muito direto permitindo a deteção de planos numa dada nuvem de pontos. No entanto para o algoritmo ser capaz de lidar com as rotações e translações do objeto no espaço de estados de Hough resulta num elevado custo computacional (i.e. O(M*N3), onde M é o número de pontos da nuvem de pontos e N é o número de intervalos de quantificação).
De forma a evitar este facto foi proposto por F. Tombari e L.Stefano em [3] uma nova abor-dagem ao algoritmo da transformada de Hough aplicada a um ambiente tridimensional. Um dia-grama de blocos é apresentado na figura2.2onde explica o funcionamento do algoritmo proposto. No início é necessário efetuar a aquisição da cena e a extração de pontos de interesse usando um detetor que se adeque à cena em análise. Posteriormente usa-se um descritor 3D de forma a aumentar a informação contida em cada ponto de interesse detetado, dada esta lista de pontos e a informação neles contida realiza-se um matching dos objetos que se pretende detetar com os presentes na imagem.
6 Revisão Bibliográfica
usando um descritor SURF2.3.3para a extração de pontos de interesse e um descritor SHOT para a projeção no espaço 3D do mapa de distâncias da cena. Para a determinação da pose do objeto foi utilizado o método RANSAC2.3.6.
Figura 2.3: Resultados da aplicação do algoritmo proposto por [3] onde a cena foi adquirida a partir de uma câmara Kinect e conseguiram a deteção de dois modelos na imagem (Coelho e o Robô).
2.3.2 Scale-Invariant Feature Transform
O método Scale-Invariant Feature Transform mais conhecido por SIFT [4] é uma técnica de reconhecimento de objetos bastante utilizada em computação visual.
Para poder ser utilizado esta técnica é necessário existir um treino prévio onde se extraem as características dos objetos que não variam com a escala, rotações ou projeções no espaço 3D. Esta técnica tem a vantagem de conseguir combater os efeitos de diferenças na iluminação.
A eficácia deste algoritmo está dependente da qualidade das características que se extraem previamente e do facto de estas serem invariantes às transformações que a imagem esteja sujeita.
A extração das diferentes características é realizada iterativamente, onde primeiro aplica-se uma função gaussiana na direção horizontal a todas as linhas de pixéis e na seguinte operação na vertical em todas as colunas. Utiliza-se também uma pirâmide de imagens onde se realiza uma
2.3 Técnicas de Deteção e Reconhecimento de Objetos 7
progressiva interpolação bilinear com o objetivo de suavizar a imagem, sendo que a função gaus-siana é aplicada a todas as camadas de modo a que cada uma seja comparada às suas adjacentes, de forma a conseguir determinar os máximos e mínimos. Na figura2.4apresenta-se um exemplo da deteção realizada pelo método SIFT. O resultado desta análise é um conjunto de vetores que representam as características do objeto.
g(x) =√ 1 2 ∗ π ∗ σe
−x3
2σ 2 (2.1)
Figura 2.4: Exemplo de Deteção utilizando SIFT. [4]
2.3.3 Speeded Up Robust Feature
O método Speeded Up Robust Feature (SURF) [5] é um algoritmo de reconhecimento de objetos que utiliza um principio de extração prévia de pontos de interesse de um objeto recorrendo à analise da distribuição de intensidade de cores do objeto e estima características na região destes pontos utilizando um sistema de reconhecimento 2D.
8 Revisão Bibliográfica
Este método é vantajoso ao SIFT pelo facto de ser mais robusto às transformações que a ima-gem pode sofrer e ao mesmo tempo consegue-se aumentar a performance da deteção nas imagens. Na figura2.5demonstra-se a utilidade deste algoritmo no reconhecimento de pontos de inte-resse de uma garrafa de cerveja impressa numa caneca. Estes pontos de inteinte-resse serão posterior-mente utilizados para identificar na base de dados os objetos que apresentam pontos de interesse similares.
Figura 2.5: Os pontos de interesse detetados na imagem da esquerda (imagem de treino) são comparados com os pontos da imagem da direita (imagem adquirida pelo sistema). [6]
O problema deste algoritmo é a utilização de um detetor de pontos de interesse 2D que não é capaz de distinguir se o que está a ser detetado é mesmo o objeto real ou está incorporado noutro objeto de diferentes dimensões, ou seja, neste caso na figura2.5 é detetado a garrafa de cerveja mas não é esse objeto que está a ser observado mas sim uma caneca com a garrafa de cerveja impressa.
2.3.4 Normal Aligned Radial Feature
O algoritmo Normal Aligned Radial Feature (NARF) é uma técnica de reconhecimento de pontos de interesse a partir de uma imagem RGB onde a distância de cada pixel corresponde à intensidade da cor no espectro de luz visível, ou seja, objetos mais próximos são violeta e objetos mais distantes são vermelhos.
Após a aquisição da imagem de distância RGB é necessário identificar os pontos de interesse do descritor que se localizam nas bordas dos objetos. As bordas de um objeto podem ser divididas em três tipos:
• As bordas reais do objeto que estão localizadas nas pontas de cada objeto. • As bordas provocadas pela sombra dos objetos.
• Veil Points são pontos interpolados das bordas anteriores que surgem num scan de um sensor LIDAR.
Ao eliminar-se as bordas que não interessam e identificando as reais bordas dos objetos consegue-se obter a figura2.6.
2.3 Técnicas de Deteção e Reconhecimento de Objetos 9
Figura 2.6: Identificação das bordas dos objetos. [7]
Posteriormente à extração das bordas dos objetos pode-se identificar os pontos de interesse da imagem, normalmente os pontos próximos dos cantos dos objetos são considerados bons pontos de interesse como pode-se verificar na figura2.7.
Figura 2.7: Identificação dos pontos de interesse para o descritor NARF. [7].
Para esta identificação o algoritmo trata de analisar cada borda atribuindo-lhe um determinado valor conforme a alteração da superfície ao seu redor. Posteriormente analisa-se a estabilidade do ponto, isto é, verifica-se se os pontos vizinhos a um determinado ponto são muito diferentes o que indica que a superfície altera-se muito nessa região logo o ponto é instável e um mau ponto de interesse.
Depois de aplicar todos os passos indicados é altura de se calcular o descritor NARF, este des-critor transporta a informação sobre a superfície à volta de um dado ponto de interesse identificado
10 Revisão Bibliográfica
se altera, ou seja, quanto maior a alteração da superfície e mais próximo do centro maior será o valor final.
Figura 2.8: Exemplo do cálculo do descritor NARF (à direita) sobre um ponto de interesse (à esquerda). [7]
O resultado final do algoritmo é um descritor do objeto que é não invariante a rotações em torno da normal, que poderá ser comparado com os descritores dos objetos que se adquiriu anteriormente e que estão guardados em memória e proceder ao reconhecimento do objeto.
2.3.5 Geometric Hashing
O método Geometric Hashing é uma técnica baseada em modelos pré-existentes capaz de reconhecer objetos mesmo se estes são sujeitos a rotações, translações e/ou operações de escala.
Esta técnica através de pontos característicos dos objetos da cena comparar com a hash table construída previamente onde verifica se estes conjuntos de pontos se assemelham a algum modelo de objeto que se encontra na memória [9].
2.3.6 Random Sample Consensus
O algoritmo Random Sample Consensus (RANSAC [10]), é um algoritmo que através de um dado conjunto de dados extraí parâmetros do modelo matemático que definem as características dos objetos.
Estes parâmetros são obtidos iterativamente onde por cada iteração melhora-se os parâmetros obtidos até então. Esta técnica promoveu uma evolução ao método dos mínimos quadrados pois consegue evitar o efeito dos Outliers que muitas vezes danificam as estimativas dos parâmetros. Na figura2.9apresenta-se uma comparação do método dos mínimos quadrados com esta técnica.
Este método tem a desvantagem de poder ser lento variando conforme a presença de elevado número de Outliers e de parâmetros dos objetos. Este algoritmo é usado no reconhecimento de objetos utilizando a técnica de feature matching como proposto em [11].
2.3 Técnicas de Deteção e Reconhecimento de Objetos 11
Figura 2.9: Comparação do método RANSAC com o método dos mínimos quadrados. [10] 2.3.7 Iterative Closest Point
A técnica Iterative Closest Point tem sido intensamente explorada desde o seu nascimento em 1992 [12] onde os investigadores tentam aumentar a rapidez do algoritmo, aumentar a robustez e descobrindo novas aplicações para este algoritmo.
O principal objetivo deste método é a partir de várias amostras obtidas do mesmo objeto/ambiente uni-las da melhor forma [13] ou seja sobrepô-las de forma a minimizar o erro2.3das translações e
12 Revisão Bibliográfica
Figura 2.10: Iterações do algoritmo ICP. [14]
De forma a diversificar a utilização deste algotitmo existem vários métodos que permitem obter outros efeitos na utilização deste algoritmo como por exemplo: aumentar a velocidade do algoritmo recorrendo a K-d trees, evitar os mínimos locais removendo Outliers, usando processos estocásticos, entre outras hipóteses que vão variando conforme as necessidades.
Este algoritmo tem sido cada vez mais usado em aplicações como por exemplo Robôs de Busca e Salvamento, na inspeção de centrais de energia, na monitorização da linha costeira ou até numa área que está a ter maior relevância no mercado nos dias que correm que é a condução autónoma [12].
2.3.8 Point Feature Histograms
A técnica Point Feature Histograms (PFH) foi proposto por Rusu [6] em 2010. Esta técnica trata-se de um descritor de superfície para cada ponto de uma nuvem de pontos, a estimação de tal descritor requer o cálculo das normais as superfícies com o intuito de descrever as propriedades geométricas de cada ponto.
O primeiro passo da estimação é procurar os k vizinhos do ponto em questão (p). Por cada par de pontos (ps,pt) é calculado três ângulos α,φ e θ que representam a relação entre cada ponto
2.3 Técnicas de Deteção e Reconhecimento de Objetos 13 as expressões2.4. u= ns (2.4a) v= u ∗ pt− ps kpt− psk2 (2.4b) w= u ∗ v (2.4c)
Onde kpt− psk2 representa a distância entre ps e pt. α,φ e θ são definidos como mostra a
figura2.11utilizando as equações2.5.
Figura 2.11: Definição do referencial uvw em ps. Os ângulos α,φ e θ descrevem as diferenças
entre as normais nse nt. [6] α = v ∗ nt (2.5a) φ = u ∗ pt − ps kpt− psk2 (2.5b) θ = arctan(w · nt, u · nt) (2.5c)
No final divide-se as medidas de distância em q barras de igual tamanho criando um histo-grama tridimensional com o total de q3 pontos. No entanto a utilização desta técnica em todos os pontos de uma nuvem de pontos iria demorar cerca de O(n*k2) [15] o que é insuportável para aplicações de tempo-real.
2.3.9 Fast Point Feature Histograms
O método Fast Point Feature Histograms (FPFH) é um descritor de superfície com base no descritor PFH (2.3.8) onde a maior diferença regista-se no tempo de execução que é reduzido de O(n*k2) para O(n*k) [15] para uma nuvem de pontos com n pontos. Permitindo desta forma
14 Revisão Bibliográfica
do ponto é usado a equação2.6.
FPFH(pq) = SPFH(pq) + 1 k k
∑
t=1 1 wk · SPFH(pk) (2.6)Onde wkrepresenta a distância entre o ponto em análise (pq) e o ponto vizinho (pk). Mostra-se
também na figura2.12uma representação gráfica da implementação deste método.
Figura 2.12: Esquema da vizinhança do ponto pq. Onde o método FPFH é influenciado por 5
vizinhos. [6]
2.3.10 Viewpoint Feature Histograms
Esta técnica foi desenvolvida de forma a complementar o algoritmo FPFH (2.3.9) pois para além de identificar e reconhecer o objeto é necessário também a extração da sua pose, ou seja, a sua localização no espaço de acordo com um dado referencial. De modo a responder a este problema foi desenvolvido o método Viewpoint Feature Histograms (VFH) que agrupa o método FPFH (2.3.9) com um histograma de observação (na figura 2.13 apresenta-se um esquema da representação dos vetores que compõem o histograma).
Este histograma é composto pela distribuição dos ângulos entre todas as superfícies e o vetor localizado no centro de massa do objeto (de forma a evitar invâriações de escala). Este método foi posto à prova por investigadores onde obtiveram uma exatidão de 98% [15].
2.3 Técnicas de Deteção e Reconhecimento de Objetos 15
Figura 2.13: Componente de observação do algoritmo VFH. [6] 2.3.11 Feature Matching
O algoritmo de Feature Matching é responsável pela ligação entre o que se está a detetar e a informação que foi adquirida na fase de treino. A partir da decomposição dos histogramas em vetores de pontos de interesse pode-se aplicar a diferença entre eles recorrendo à norma Euclidiana (2.7) e verificar qual dos modelos de objetos têm menor erro de matching com o objeto que se observa da cena. d(~a,~b) = ~a −~b = s m
∑
i=1 (ai− bi)2 (2.7)No entanto esta norma dá mais valor aos pontos de valor aproximado a zero para contrapor este facto recorre-se à norma Chi-square pois normaliza os valores do histograma, onde pode ser calculado pela equação2.8.
dChi(~a,~b) = s m
∑
i=1 (ai− bi)2 ai+ bi (2.8) Foi comparado as diferente métricas dentro do contexto do FPFH (2.6) no entanto os resultadosCapítulo 3
Algoritmo de Deteção
Neste capítulo apresenta-se as técnicas utilizadas para efetuar a deteção da bola de futebol. Observa-se que durante um jogo de futebol a bola pode estar presente no chão ou no ar e estes dois casos apresentam propriedades diferentes que podem ser vantajosas para o projeto.
Desse modo decidiu-se seguir essa filosofia e detetar a bola em dois diferentes casos, nas sec-ções seguintes apresenta-se os processos utilizados para conseguir eficazmente realizar a deteção da bola de futebol.
3.1
Bolas Aéreas
3.1.1 ClusteringDe forma a separar os diferentes objetos na imagem de profundidade optou-se por separar a imagem em diferentes clusters aplicando a técnica de K-Means Clustering que é brevemente explicado de seguida.
3.1.2 K-Means Clustering
O algoritmo K-Means Clustering é um algoritmo de quantificação de um vetor e tem como objetivo separar todas as observações e agrupa-las num número definido de cluster onde um ponto pertence a um dado grupo de pontos minimizando a soma dos quadrados (3.1) desse mesmo clus-ter. argsmin k
∑
i=1xεS∑
i kx − µik2 (3.1) 3.1.3 Resultados18 Algoritmo de Deteção
facto comprovar que se trata do objeto que se quer identificar, este assunto de reconhecimento é tratado no capitulo5.
Figura 3.1: Imagem de profundidade com bola aérea.
(a) Cluster 1. (b) Cluster 2.
(c) Cluster 3. (d) Cluster 4.
(e) Cluster 5.
3.2 Bolas Não-Aéreas 19
3.2
Bolas Não-Aéreas
Para a deteção de bolas que não são aéreas não é vantajoso usar a técnica usada nas bolas aéreas sem nenhum pré-processamento pois é necessário um maior número de clusters de forma a obter resultados similares às bolas aérea.
Este aumento do número de clusters irá prejudicar o tempo computacional que é necessário evitar pois irá reduzir o tempo de reação por parte do guarda redes, aumentando as hipóteses de sofrer golo.
Assim foi adotado uma técnica que nos forneceu resultados similares como nas bolas aéreas, o que nos permite usar o mesmo sistema de reconhecimento para verificar a existência da bola de futebol.
3.2.1 Segmentação do Campo baseado em cor
Recorreu-se à segmentação baseada em cor para identificar o campo de futebol pois este irá ser sempre verde independentemente dos robôs, bola ou outros elementos externos.
Assim é necessário converter a imagem que a Kinect nos fornece que utiliza o esquema de cores RGB dificultando a identificação dos pontos "verdes".
Este esquema de cor (RGB) é altamente afetado pela luminosidade da cena dificultando a escolha de valores para realizar um threshold que consiga eficientemente separar a cor que se pretende identificar.
Nas seguintes secções é explicado as vantagens e desvantagens dos esquemas de cores que merecem maior atenção para este projeto pois oferecem melhores hipóteses de sucesso.
3.2.1.1 RGB
O espaço de cor RGB é utilizado pela grande maioria das câmaras digitais na aquisição de imagens do mundo que nos rodeia pois é também como os seres humanos veem o mundo, ou seja, numa combinação de três cores que habitualmente chamam-se primárias que são Vermelho (Red-R),Verde (Green-G) e Azul (Blue-B).
20 Algoritmo de Deteção
Figura 3.3: Representação geométrica do espaço de cores RGB. [17] As regras de colometria são:
• Qualquer cor pode ser criada a partir de uma combinação única destas três componentes. • Se duas cores são equivalentes estas manter-se-ão equivalentes após uma multiplicação ou
divisão das três componentes pelo mesmo número.
• A iluminação da mistura das diferentes cores é igual à soma da luminância de cada cor separadamente.
Sendo assim este espaço de estados é o mais indicado para apresentação de cor pelas razões indicadas anteriormente no entanto não é uma representação útil para segmentação porque existe uma elevada correlação entre as diferentes componentes do espaço de cores, ou seja, se a intensi-dade alterar as três componentes vão sentir essas variações. [18]
3.2.1.2 HSV
O espaço de cor HSV (Hue-Saturation-Value) é uma das variações do sistema HSI (hue-saturation-intensity)existem ouras variações como a representação HSL (Hue-Saturation-Lightness), HSB (Hue-Saturation-Brightness).
Este sistema separa a informação da cor de uma imagem da sua intensidade, onde a informação da cor é representada pelos valores de Hue e Saturation enquanto que a intensidade indica o brilho, ou seja, a quantidade de luz da cena de uma imagem é descrita na última componente [18].
A componente Hue indica a cor básica dos objetos baseando-se no comprimento de onda dominante da distribuição espectral de luz visível. A Saturação é a medida da pureza da cor, ou seja, significa a quantidade de luz branca misturada com a componente Hue.
O espaço de cor do sistema HSV pode ser descrito na figura3.4. Desta forma a componente Hueé considerada como um ângulo entre a linha da referência e o ponto da cor no espaço RGB, variando assim entre os 0oe os 360o. A componente Saturation representa a distância radial desde o centro do cilindro, ou seja, quanto mais perto do centro a cor será mais clara. Value é a altura do cilindro que indica a intensidade dessa cor. Para a utilização deste espaço de cores é necessário efetuar os cálculos que estão indicados na equação 3.2 que permitem a mudança do espaço de
3.2 Bolas Não-Aéreas 21
cores de RGB para HSV.
Figura 3.4: Representação geométrica do espaço de cores HSV. [19]
H= 60(G−B) S i f V = R 180 +60(B−R)S i f V = G 240 +60(R−G)S i f V = B S=255(V −min(R,G,B))V V = max(R, G, B) i f H< 0 then H = H + 360 (3.2)
Este espaço de cor apresenta várias propriedades que são boas para a realização de segmentação de objetos baseando-se em cor pois consegue-se de certa forma combater os efeitos da iluminação e sombras [18]. No entanto existem singularidades próximas do eixo do cilindro onde não se pode simplesmente analisar o canal da cor, Hue, para a distinção das várias cores o que conduz a que as restantes componentes do sistema também contribuam para a atribuição da cor.
22 Algoritmo de Deteção
A representação do espaço de cor YUV é diferente das restantes pois só as componentes UV transportam informação da cor e a componente Y informa quantidade de luminosidade da imagem, desta forma representa-se na figura3a representação das componentes UV. Para executar
Figura 3.5: Representação das componentes UV do espaço de cores YUV. [16]
a conversão do espaço de cores RGB para o espaço de cores YUV é necessário efetuar os cálculos indicados em3.3, sabendo que os valores das componentes RGB vão desde 0 até 1 e no resultado final Y está também no intervalo de 0 a 1, a componente U desde -0.436 até +0.436 e a componente V encaixa no intervalo de -0.615 até +0.615.
Y U V = 0.299 0.587 0.114 −0.147 −0.289 0.436 0.615 −0.515 −0.100 ∗ R G B (3.3) 3.2.1.4 Resultados
Para o presente projeto preferiu-se usar o espaço de cores YUV pois permite utilizar valores de threshold mais curtos em comparação do espaço de cores HSV e desta forma evitar a presença de outros elementos da imagem que possam interferir com o resultado que se quer atingir.
O resultado que se obteve pode ser observado na figura 3.6 onde na imagem da esquerda apresenta-se a imagem RGB (3.6a) e à direita a sua transformação no espaço YUV (3.6b). Por último apresenta-se na última figura (3.6c) a segmentação do relvado, ou seja, da cor verde.
3.2 Bolas Não-Aéreas 23
(a) Imagem RGB. (b) Imagem YUV.
(c) Imagem YUV segmentada.
Figura 3.6: Conversão e threshold da imagem RGB.
3.2.2 Ground Plane
Após obter-se os pontos que pertencem ao plano do chão pode-se calcular os parâmetros deste plano de modo a eliminar o chão e aplicar-se a mesma técnica que foi utilizada na deteção de bolas aéreas.
3.2.2.1 Transformações
Para ser possível calcular os parâmetros do plano correspondente ao chão é necessário para os pontos que foram selecionados da imagem RGB obter a sua correspondente profundidade.
Para isso é necessário efetuar o mapeamento dos pixéis da imagem RGB para a imagem da profundidade usando os parâmetros da calibração realizar operações de translação e rotação de forma a obter os pixéis correspondentes na imagem de profundidade [21].
24 Algoritmo de Deteção
imagem (altura e largura respetivamente). Na figura3.7 apresenta-se o esquema que foi possível extrair as equações3.4para determinar as coordenadas do ponto no mundo real [21].
f = h 2∗tan(432) ou f = w 2∗tan(572) xw= zw∗xfv yw= zw∗yfv (3.4)
Figura 3.7: Esquema definido para obter as coordenadas reais a partir da posição dos diferentes pixéis da imagem.
3.2.2.2 RANSAC
Para efetuar o cálculo do plano do chão recorreu-se à técnica RANSAC já brevemente exposta em2.3.6que é uma técnica que aproxima uma série de pontos a um modelo matemático específico, que neste caso é utilizado o modelo matemático de um plano3.5.
ax+ by + cz + d = 0 (3.5)
Após obter a equação do plano é obtida a componente da profundidade de cada ponto da imagem e é calculado a distância desses pontos ao plano calculado anteriormente. Através da equação3.6é possível calcular essa distância D ao plano para um ponto genérico (x0, y0, z0).
D=ax0√+ by0+ cz0+ d
a2+ b2+ c2 (3.6)
3.2.2.3 Resultados
Devido à presença de ruído na imagem da profundidade foi considerado que os pontos perten-cem ao plano do chão caso estejam dentro de um intervalo definido. Este intervalo foi otimizado ao longo de uma série de testes resultando na segmentação apresentada na figura3.8.
3.2 Bolas Não-Aéreas 25
(a) Imagem de profundidade original. (b) Imagem com plano do chão a verde.
Figura 3.8: Segmentação do plano do chão.
3.2.3 Clustering
Após a remoção do plano do chão observou-se que existem pequenos pontos que podem con-duzir à deformação dos objetos conduzindo à falha do algoritmo de reconhecimento que irá ser detalhado em4.
De forma a reduzir esse fenómeno foram realizadas operações morfológicas [22], aberturas e fechos, à imagem de forma a remover certos erros de medição e ruídos indesejáveis e proceder à realização da técnica abordada em3.1.2.
3.2.4 Resultados
Com esta abordagem obteve-se os resultados apresentados na figura 3.9 onde conseguiu-se separar as componentes que não interessam para a aplicação e realizar a segmentação da imagem de profundidade apresentada na figura3.10.
26 Algoritmo de Deteção
(a) Cluster 1. (b) Cluster 2.
(c) Cluster 3. (d) Cluster 4.
(e) Cluster 5.
Figura 3.10: Clustering da imagem de profundidade da figura3.9.
3.3
Conclusões
Em suma observou-se que os métodos utilizados neste capítulo são capazes de segmentar a imagem de profundidade permitindo observar a presença da bola num dos clusters obtidos.
Concluiu-se também que o número de clusters utilizados pode ser variado, o que no entanto afetará o tempo de processamento. A opção pelos cinco clusters foi tomada devido ao facto de ter um tempo de processamento reduzido (∼30ms) e ao mesmo tempo permitir a uma boa segmentação para o sistema de reconhecimento.
No entanto a remoção dos pontos pertencentes ao plano do chão atrasa um pouco o sistema demorando cerca de ∼80ms, que poderá no futuro ser otimizado caso se revele um obstáculo para o rendimento do guarda-redes.
De uma forma geral apresenta-se na figura3.11o estado do programa até esta fase do docu-mento.
3.3 Conclusões 27
Compute Ground Plane
Begin While(1) BallDetected = FindAerialBall(depthImage); Get RGB and Depth Images Control = False; BallDetected == True? Clustering BallRecognition BallDetected = FindGroundBall(depthImage, rgbImage); Control = True; Remove Ground Plane Get RGB and Depth Images True False False AND Control == True
Capítulo 4
Algoritmo de Reconhecimento
Neste capítulo aborda-se o processo de reconhecimento que é realizado após a segmentação realizada usando as técnicas especificadas no capítulo anterior.
Para o desenvolvimento de um algoritmo capaz de identificar a presença da bola de futebol recorreu-se à análise das suas propriedades geometricas.
As características que apresentavam melhores resultados às condições que se está a impor ao sistema foram: a área, perímetro, circularidade e o raio do objeto em análise.
Assim para conseguir criar um modelo o mais dinâmico possível e que identifique o valor esperado de acordo com a distância do objeto para as características consideradas. Foi necessário efetuar uma série de aquisições pois verifica-se que os objetos variam as suas dimensões numa imagem captada por uma câmara digital de acordo com a sua distância à câmara, ou seja, quando mais longe mais pequeno parece o objeto e quanto mais perto maior parece o mesmo objeto.
Apresenta-se na figura 4.2 o gráfico resultante das diferentes aproximações polinomiais às características consideradas da bola de futebol.
Para esse efeito utilizou-se a bola apresentada na figura 4.1 para efetuar todas as medições efetuadas durante os testes.
30 Algoritmo de Reconhecimento
Figura 4.2: Gráfico das variações das diferentes características com a distância à Kinect. Na tabela4.1apresenta-se as funções que modelam cada característica que se obteve do gráfico apresentado anteriormente.
Área y = -132,89x3+ 1788,6x2- 8096,5x + 13057 Perímetro y = -2,6906x3+ 42,524x2- 235,36x + 548,86
Raio y = 1,9974x2 - 21,011x + 69,476 Tabela 4.1: Funções que modelam as características da bola.
Apresenta-se na figura4.3o sistema de reconhecimento que foi desenvolvido para o reconhe-cimento da bola de futebol.
Observar-se nesta figura que a aplicação trata inicialmente de remover os objetos que ultrapas-sam os limites máximos e mínimos das características geométricas consideradas para o reconhe-cimento da bola de futebol que são: área, perímetro, circularidade e raio.
Estes limites foram encontrados experimentalmente tendo em conta as limitações do equipa-mento usado, ou seja, o sensor de distância é capaz de retornar resultados consistentes dentro de uma gama de distância.
Após esta primeira etapa é obtido dos restantes objetos a sua distância à câmara, utilizando uma máscara 3x3 de forma a evitar ruido que possa surgir num dos pixéis do objeto.
Recorrendo às funções que foram calculadas anteriormente e que indicam o valor esperado para as características medidas. Verifica-se cada uma delas a fim de saber se estão dentro de um limite de erro que foi definido experimentalmente.
Algoritmo de Reconhecimento 31
No final considera-se que o objeto que passe em todas estas etapas é classificado como sendo a bola de futebol que se pretende identificar.
Min < Area < Max Circularity > Min Begin Detect Object Features Min < Radius < Max Min < Perimeter < Max Get Object Distance Ball Detected Get Expected Object Features Expected Perimeter - µ < Perimeter < Expected Perimeter + µ
Expected Radius - α < Radius < Expected Radius + α Expected Area - Ω < Area <
Expected Area + Ω
False
32 Algoritmo de Reconhecimento
4.1
Resultados
Na figura4.4apresenta-se alguns resultados obtidos da deteção e reconhecimento da bola de futebol, onde nas imagens se indica a localização da bola com um ponto vermelho.
(a) Resultado Bola Aérea 1. (b) Resultado Bola Aérea 2.
(c) Resultado Bola Aérea 3. (d) Resultado Bola Não-Aérea 1.
(e) Resultado Bola Não-Aérea 2. (f) Resultado Bola Não-Aérea 3.
4.2 Conclusões 33
4.2
Conclusões
Em resumo observa-se que o algoritmo utilizado permitiu o reconhecimento da bola de futebol através da análise das suas características. O tempo total de processamento (incluindo segmen-tação) fixou-se nos ∼120ms, no pior dos casos (i.e. não existe bola aérea), o que também se revelou ser suficiente para o acompanhamento do movimento da bola embora exista espaço para melhoramento.
Capítulo 5
Filtro de Kalman
Observou-se que o reconhecimento e a correta localização da bola nem sempre é possível em todos os frames adquiridos devido ao movimento da bola que dá origem a fenómenos que dificultam a identificação do objeto como sendo a bola de futebol na imagem obtida da cena.
Desta forma foi introduzido no sistema um Filtro de Kalman tridimensional que permite prever onde a bola vai estar no seguinte frame tendo em conta os estados anteriores do objeto.
O Filtro de Kalman funciona num processo de duas etapas, a etapa de previsão e a etapa de atualização. Na etapa de previsão5.1o filtro baseia a sua saída com os dados obtidos em tempos anteriores recorrendo ao modelo do sistema que se define inicialmente e também à matriz que modela o ruido esperado do processo.
Previsão
Predicted (”a priori”) state estimate: ˆxk|k−1= Fkˆxk−1|k−1+ Bkuk
Predicted (”a priori”) estimate covariance: Pk|k−1= FkPk−1|k−1FTk+ Qk
(5.1)
Onde a variável Fk é o modelo de transição de estado que é aplicado ao estado anterior do
objeto(xk−1), Bké a matriz que modela o controlo realizado sobre o sistema, a matriz Qké a matriz
que modela o erro da medição dos sensores utilizados, uk é a matriz de controlo definida pelo
utilizador e por fim a variável Pk é a matriz da covariância do erro de estado.
36 Filtro de Kalman Actualização
Innovation or measurement residual: ˜yk= zk− Hkˆxk|k−1
Innovation (or residual) covariance: Sk= HkPk|k−1HTk + Rk
Optimal Kalman gain: Kk= Pk|k−1HTkS −1 k
Updated (”a posteriori”) state estimate: ˆxk|k=ˆxk|k−1+ Kk˜yk
Updated (”a posteriori”) estimate covariance: Pk|k= (I − KkHk)Pk|k−1
(5.2)
Figura 5.1: O filtro de Kalman guarda os estados estimados do sistema e a incerteza dessa esti-mação. A estimativa é atualizada recorrendo ao modelo transitório e às medidas obtidas. ˆxk|k−1 corresponde à estimação do estado do sistema no tempo k antes do das medidas em yk tenham
importância assim o valor de Pk|k−1corresponde à incerteza da estimação. [23]
Para o sistema que se definiu neste trabalho foi necessária a criação de dois filtros, ou seja, um para cada caso definido. Nas próximas secções aborda-se os modelos definidos para cada caso.
5.1
Modelo para Bola Aérea
Para o caso da bola aérea considerou-se o modelo de aceleração constante pois verifica-se que estando a bola em queda temos sempre presente a aceleração da gravidade.
O estado da bola de futebol ao longo do tempo apresenta-se na equação5.3 onde temos que (x, y, z) é a posição no espaço da bola, ( ˙x, ˙y,˙z) é a velocidade da bola nos três eixos e por fim ( ¨x, ¨y,¨z) é a aceleração nos mesmos eixos da bola onde o valor de ¨z irá ser sempre igual à aceleração da gravidade pois a bola estando em queda este valor é constante.
X= h
x y z x˙ y˙ ˙z x¨ y¨ ¨z iT
5.2 Modelo para Bola Não-Aérea 37
O cálculo do próximo estado da bola pode ser calculado pela equação5.4tendo em conta que não há controlo do sistema temos que o valor da matriz B é igual a zero.
Xk+1= A · Xk+ B · uk (5.4)
Assim a equação5.4fica igual à equação5.5.
Xk+1= 1 0 0 ∆t 0 0 12∆t2 0 0 0 1 0 0 ∆t 0 0 12∆t2 0 0 0 1 0 0 ∆t 0 0 12∆t2 0 0 0 1 0 0 ∆t 0 0 0 0 0 0 1 0 0 ∆t 0 0 0 0 0 0 1 0 0 ∆t 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 · Xk (5.5)
O cálculo da posição do objeto pode ser calculado no final pela equação5.6.
Y = 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 · X (5.6)
5.2
Modelo para Bola Não-Aérea
No segundo caso considerou-se o modelo de velocidade constante pois estando a bola em contacto com o chão proveniente de um remate a velocidade irá manter-se-á constante pois a velocidade que a bola pode perder graças ao atrito do chão, distância percorrida, etc. pode ser desprezável neste contexto.
X = h
x y z x˙ y˙ ˙z iT
38 Filtro de Kalman
Desta forma a equação5.8é equivalente à equação5.9.
Xk+1= 1 0 0 ∆t 0 0 0 1 0 0 ∆t 0 0 0 1 0 0 ∆t 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 · x y z ˙ x ˙ y ˙z k (5.9)
Em suma o cálculo da posição do objeto pode ser calculado no final pela equação5.10.
Y = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 · X (5.10)
5.3
Resultados
Na figura5.2 e 5.3 apresenta-se o resultado da aplicação do filtro de Kalman (linha de cor verde) e as deteções efetuadas pelos anteriores algoritmos (pontos vermelhos).
Observa-se que conseguimos efetuar previsões da posição da bola quando não conseguimos efetuar a deteção da bola recorrendo aos algoritmos abordados no capítulo4.
(a) Resultado Kalman Bola Não Aérea 1. (b) Resultado Kalman Bola Não Aérea 2.
(c) Resultado Kalman Bola Não Aérea 3. (d) Resultado Kalman Bola Aérea 1.
5.4 Conclusões 39
(a) Resultado Kalman Bola Aérea 2. (b) Resultado Kalman Bola Aérea 3.
Figura 5.3: Resultado do Filtro de Kalman na deteção da Bola Aérea.
Na tabela 5.1 apresenta-se o erro médio obtido da diferença da posição real da bola com a posição retornada pelo filtro de Kalman. Pode-se concluir que o modelo definido para o caso da bola não-aérea apresenta melhores resultados do que o caso da bola aérea.
Número de Pixeis Kalman Bola Aérea 1 12.3241 Kalman Bola Aérea 2 15.0333 Kalman Bola Aérea 3 13.684 Kalman Bola Não-Aérea 1 3.2083 Kalman Bola Não-Aérea 2 3.6056 Kalman Bola Não-Aérea 3 6.2111
Tabela 5.1: Erro médio da posição real da bola em comparação com a posição retornada pelo filtro de Kalman.
5.4
Conclusões
Capítulo 6
Conclusões
Apresenta-se neste último capítulo da dissertação as conclusões a que se chegou no final da elaboração deste projeto assim como a apresentação de propostas para o melhoramento deste tra-balho.
6.1
Conclusões Gerais
Em suma observou-se que a separação do problema da deteção e reconhecimento da bola de futebol em dois casos, bola aérea e bola não aérea, foi uma boa opção pois apresentam problemas diferentes o que permitiu aumentar a velocidade do algoritmo.
O caso da bola aérea é bastante interessante pois verifica-se que enquanto esta está no ar encontra-se desconectada de qualquer elemento da imagem o que permite segmentar rapidamente a imagem por profundidade e efetuar o devido reconhecimento três vezes mais rápido do que para o caso da bola não aérea.
Para o caso seguinte (bola não aérea) verifica-se que esta encontra-se conexa ao chão o que dificulta a segmentação por profundidade pois na criação dos diferentes clusters o algoritmo trata o chão e a bola como sendo o mesmo objeto o que não é verdadeiro. Assim foi necessário efetuar a eliminação dos pontos que correspondem ao plano do chão o que atrasa bastante o algoritmo no entanto não torna esta opção inviável.
Foi inserido o filtro de Kalman pois era necessário preencher as falhas do algoritmo de de-teção e reconhecimento pois não é garantido que este consiga detetar a bola em todos os frames adquiridos. Este filtro consegue prever a posição da bola de uma forma eficaz de acordo com o modelo de sistema inserido. O desafio maior que se observou é a modelação do ruido de processo
42 Conclusões
6.2
Desenvolvimentos Futuros
Esta dissertação é uma confirmação da utilidade dos sensores RGB-D no futebol robótico, futuramente prevê-se que este algoritmo seja melhorado de modo a detetar e reconhecer a bola de uma forma mais rápida e eficaz.
Para desenvolvimentos futuros propõem-se a melhoria do algoritmo de reconhecimento da bola de futebol que tenha como objetivo de contornar os efeitos provocados na imagem de profun-didade pelo movimento rápido da bola.
A utilização de um sensor de profundidade com melhor qualidade também seria uma mais-valia pois desta forma conseguia-se obter resultados mais precisos da bola de futebol evitando algum do ruído que surge na imagem.
Bibliografia
[1] Kinect hardware. Accessed on: 10-06-2015. [Online]. Available: http://www.extremetech. com/wp-content/uploads/2011/11/kinect-for-windows.jpg
[2] Kinect specifications. Accessed on: 10-06-2015. [Online]. Available:http://www.microsoft. com/en-us/kinectforwindows/meetkinect/features.aspx
[3] F. Tombari and L. D. Stefano, “Hough Voting for 3D Object Recognition under Occlusion and Clutter,” IPSJ Transactions on Computer Vision and Applications, vol. 4, pp. 20–29, 2012.
[4] D. Lowe, “Object Recognition fromLocal Scale-Invariant Features,” IEEE International Conference on Computer Vision, 1999.
[5] H. Bay, T. Tuytelaars, and L. Van Gool, “SURF: Speeded up robust features,” Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 3951 LNCS, pp. 404–417, 2006.
[6] R. B. Rusu, “Semantic 3D Object Maps for Everyday Manipulation in Human Living Envi-ronments,” pp. 1–4, 2010.
[7] Narf algorithm. Accessed on: 10-06-2015. [Online]. Availa-ble: http://robotica.unileon.es/mediawiki/index.php/PCL/OpenNI_tutorial_4:_3D_object_ recognition_(descriptors)#NARF
[8] L. Qiang and L. Feng, “RGB-D sensor based mobile robot SLAM in indoor environment,” Control and Decision . . ., pp. 3848–3852, 2014.
[9] J. a. Batista, “Sistema de Reconhecimento de Objetos para Demonstrador de Condução Ro-bótica Autónoma,” p. 60, 2011.
[10] M. a. Fischler and R. C. Bolles, “Random Sample Consensus: A Paradigm for Model Fitting with,” Communications of the ACM, vol. 24, pp. 381–395, 1981.
ob-44 BIBLIOGRAFIA
[12] E. T. H. Zurich, “APPLIED REGISTRATION FOR ROBOTICS Methodology and Tools for ICP-like Algorithms,” no. 21159, 2013.
[13] W. Guo, T. Du, X. Zhu, and T. Hu, “Kinect-Based Real-Time Rgb-D Image Fusion Method,” ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Infor-mation Sciences, vol. XXXIX-B3, no. September, pp. 275–279, 2012.
[14] Icp hardware. Accessed on: 10-06-2015. [Online]. Available: https://taylorwang.files. wordpress.com/2012/04/icp.jpg
[15] J. Marcel, “Object Detection and Recognition with Microsoft Kinect,” 2012.
[16] Yuv color scheme. Accessed on: 10-06-2015. [Online]. Available: http://upload.wikimedia. org/wikipedia/commons/6/6e/YUV-UV_Scaled_Y0.5_70_percent.png
[17] Rgb color scheme. Accessed on: 10-06-2015. [Online]. Available: http://drmoron.org/ images/is-black-a-color/color-cube.png
[18] G. Q. Shamik Sural and S. Pramanik, “segmentation and histogram generation using the hsv color space for image retrieval,” pp. 589–592, 2002.
[19] Hsv color scheme. Accessed on: 10-06-2015. [Online]. Available: http://i.stack.imgur.com/ D5J3v.png
[20] Z. Q. Z. Qu and J. W. J. Wang, “A color YUV image edge detection method based on histo-gram equalization transformation,” Natural Computation (ICNC), 2010 Sixth International Conference on, vol. 7, no. Icnc, pp. 3546–3549, 2010.
[21] A. Sousa, “Arquitecturas de Sistemas Robóticos e Localização em Tempo Real Através Vi-são,” p. 225, 2003.
[22] R. M. Haralick, S. R. Sternberg, and X. Zhuang, “Image Analysis Using Mathematical Morphology,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, no. 4, pp. 532–550, 1987.
[23] Kalman filter concept. Accessed on: 10-06-2015. [Online]. Available: http://en.wikipedia. org/wiki/Kalman_filter#/media/File:Basic_concept_of_Kalman_filtering.svg