Controlo Visual de Posição de Embarcação Autónoma
Full text
CONTROLO VISUAL DE POSIÇÃO DE EMBARCAÇÃO AUTÓNOMA MAURÍCIO MIGUEL DE OLIVEIRA GUEDES DISSERTAÇÃO DE MESTRADO APRESENTADA À FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO EM MESTRADO INTEGRADO EM ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES M 2015
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Controlo Visual de Posição de Embarcação Autónoma Maurício Miguel de Oliveira Guedes MESTRADO INTEGRADO EM ENGENHARIA ELETROTÉCNICA E DE COMPUTADORES Orientador: Prof. Dr. Aníbal Castilho Coimbra de Matos 30 de Julho de 2015
c Maurício Guedes, 2014
Resumo A vídeo-vigilância em cenas dinâmicas é atualmente um dos tópicos mais ativos no mundo da computação visual. A monitorização e vigilância de embarcações é deveras importante para a segurança e defesa marítima, proteção do ambiente e controlo de fronteiras marítimas. No entanto, a grande maioria dos sistemas desenvolvidos utiliza sistemas de visão conjugados com radares, AIS ou VTS. Nesta dissertação será apresentado um modelo de um detetor automático de embarcações com vista a criar um registo de todas as ocorrências marítimas com o propósito de criar um controlador de tráfego marítimo autónomo. O detetor foi desenvolvido através de métodos de reconhecimento de padrões, originalmente desenvolvidos no campo da visão computacional. Primeiramente, é feito um treino de um classificador binário a partir de imagens de embarcações e de planos de fundo. O classificador utiliza características simples que são calculadas extremamente rápido. Para a deteção, este classificador percorre a imagem em várias direções e dimensões e tem uma estrutura em cascata o qual rejeita a maior parte dos planos de fundo nas etapas iniciais, levando a uma execução mais rápida. Antes da execução do detetor, é aplicado um corte na imagem através da deteção da linha do horizonte, retendo apenas a parte da imagem abaixo da linha. Durante a aplicação do detetor, são registadas todas as embarcações detetadas, as quais sofrem uma posterior validação através de um mapa temporal adaptativo, que regista as ocorrências passadas. É apresentada também uma modelização para transformação de coordenadas 2D do plano da imagem para coordenadas 3D no referencial do mundo, podendo desta forma obter informações posicionais das embarcações detetadas, com recurso a sensores de GPS e IMU instalados no sistema de aquisição de imagem. i
ii
Abstract Visual-surveillance in dynamic scenes is, currently, one of the most active research topics in the computer-vision field. Vessel monitoring and surveillance is important to the maritime safety and security, environment protection and maritime border control. However, a vast majority of existing systems combines visual systems with radar, AIS or VTS. In this dissertation, we will present a model of an automatic vessel detetor for the purpose of ship traffic management.This vessel detetor method uses pattern recognition methods, originally developed in the computer vision field. First, we train a binary classifier from image samples of vessels and background. The classifier uses simple features that are calculated very fast. For the detection, the detetor is slided along the image, in various directions and scales. The classifier has a cascade structure wich rejects most of the background in the early stages, leading to faster execution. Before running the detector, the image is croped after the detection of the horizon line, retrieving only the part of the image below the horizon line. During the execution of the detector, all detected vessel are registered and validated using an adaptative time map that records past occurrences in detetion. We present also a model for converting 2D coordinates, in the image plane, into 3D coordinates on the world coordinate system, with the possibility of retrieving positional information about the detected vessels, by means of GPS and IMU sensors installed on the vision system. iii
iv
Agradecimentos Gostaria de expressar a minha profunda e sincera gratidão aos meus pais pelos valores que me incutiram, pelo incentivo e apoio desde sempre, para que me tornasse uma pessoa melhor e mais sábia e por todo os esforços que fizeram para que eu hoje pudesse ser quem sou. A vós, o meu muito Obrigado! Ao meu tio, Nuno Guedes, por me ter apoiado desde sempre e me ter demonstrado a essência de ser um engenheiro, Obrigado! Aos restantes membros da minha família, que sempre me apoiaram e me incentivaram a seguir em frente na conquista de novos desafios, na perseverança e sempre com uma atitude positiva, Obrigado! À minha namorada, Matilde, que se mostrou sempre disponível em contribuir para que eu chegasse tão longe, que esteve sempre ao meu lado, me apoiou e motivou, Obrigado! Aos meus companheiros e amigos que, direta ou indiretamente, me acompanharam e ajudaram neste caminho. Obrigado por todos os momentos que passámos. Por fim, gostaria de agradecer ao meu orientador Prof. Dr. Aníbal Castilho Coimbra de Matos pela oportunidade que me proporcionou ao realizar este projeto, por todo o conhecimento transmitido em todo o meu percurso académico e pela disponibilidade, compreensão e incentivo demonstrados no decorrer desta dissertação. A todos Muito Obrigado, Maurício Miguel de Oliveira Guedes v
xii LISTA DE FIGURAS 5.7 Teste de funcionamento da estação de aquisição e aquisição do sinal de GPS. . . 37 6.1 Aplicação do limiar por método de Otsu. ...................... 40 6.2 Aplicação do detetor de pixeis de fronteira Canny ................. 40 6.3 Fotogramas analisados e linhas detetadas após transformada de Hough. ..... 40 6.4 Limiarização por método de Otsu à esquerda e transformada de Hough à direita. 41 6.5 Limiar por método de Otsu à esquerda e transformada de Hough à direita após limiar adaptativo. .................................. 41 6.6 Validação da linha em análise, a amarelo, e linha do horizonte, após validação, a verde. ........................................ 42 6.7 Região de interesse retirada da imagem original. ................. 42 6.8 Caraterísticas Haar utilizadas. ........................... 43 6.9 Áreas da soma de imagens integrais. . . . . . . . . . . . . . . . . . . . . . . . . 44 6.10 Cálculo da área sombreada de uma imagem integral. ............... 45 6.11 As primeiras 3 etapas de um classificador em cascata. Cada etapa contém várias árvores de classificação simples que utilizam as características Haar e um limiar "thr"e retornam ∑h(x), determinado através do percurso pelas árvores. ..... 47 6.12 Exemplos positivos de embarcações. ........................ 49 6.13 Marcação de uma embarcação num exemplo positivo. ............... 49 6.14 Alguns exemplos negativos utilizados. ....................... 50 6.15 Treino de um classificador com 16 etapas (6.15a) e de um classificador com 20 etapas (6.15b)..................................... 51 6.16 Última de 20 etapas de um classificador com taxa de falsos positivos = 0,4, utilizando para isso 43 classificadores fracos. ..................... 52 6.17 Classificador em cascata com 16 etapas. ...................... 53 6.18 Classificador em cascata com 18 etapas. ...................... 54 6.19 Classificador em cascata com 20 etapas. ...................... 54 6.20 Gráfico de deteções com um classificador em cascata com 16 etapas para o vídeo 00127.MTS com 3 embarcações. .......................... 54 6.21 Gráfico de deteções com um classificador em cascata com 18 etapas para o vídeo 00127.MTS com 3 embarcações. .......................... 54 6.22 Gráfico de deteções com um classificador em cascata com 20 etapas para o vídeo 00127.MTS com 3 embarcações. .......................... 54 6.23 Gráfico de deteções com um classificador em cascata com 24 etapas para o vídeo 00127.MTS com 3 embarcações. .......................... 55 6.24 Gráfico de deteções com um classificador em cascata com 20 etapas e imagens equalizadas, para o vídeo 00127.MTS com 3 embarcações. ............ 56 6.25 Gráfico de deteções com um classificador em cascata com 24 etapas e imagens equalizadas, para o vídeo 00127.MTS com 3 embarcações. ............ 56 6.26 Deteção e Validação em execução. ......................... 57 6.27 Mapa temporal. ................................... 57 6.28 Exemplo de uma deteção errada descartada pelo mapa temporal. ........ 58
Lista de Tabelas 6.1 Tabela de comparação entre os classificadores treinados, para 200 fotogramas. .55 6.2 Tabela de comparação entre os classificadores treinados, com imagens equalizadas, para 200 fotogramas. ............................. 55 xiii
xiv LISTA DE TABELAS
Abreviaturas e Símbolos 2D Bidimensional (2 Dimensional) 3D Tridimensional (3 Dimensional) AIS Sistema Automático de Identificação (Automatic Identification System) FPGA Arranjo de Portas Programável em Campo(Field-Programmable Gate Array) I2CCircuito Inter-Integrado (Inter-Integrated Circuit) IMU Unidade de Medição Inercial (Inercial Measuring Unit) GPS Sistema de Posicionamento Global (Global Positioning System) PTZ Panorâmica-Inclinação-Zoom (Pan-Tilt-Zoom) PWM Modulação por Largura de Impulso (Pulse-Width Modulation) RTSP Protocolo de Fluxo em Tempo Real (Real Time Streaming Protocol) UAV Veículo Aéreo Não Tripulado (Unmanned Aerial Vehicle) UDP Protocolo de Datagramas do Utilizador (User Datagram Protocol) UGV Veículo Terrestre Não Tripulado (Unmanned Ground Vehicle) USB Universal Serial Bus USV Veículo de Superfície Não Tripulado (Unmanned Surface Vehicle) UUV Veículo Submarino Não Tripulado (Unmanned Underwater Vehicle) VTS Serviço de Tráfico Marítimo (Vessel Traffic Service) WGS 84 Sistema Geodésico Mundial 1984 (World Geodetic System 1984) xv
Capítulo 1 Introdução Este projeto tem como objetivo a deteção, monitorização e seguimento de embarcações autónomas aquáticas em ambiente marítimo não exclusivo, através de um sistema de visão computacional, de forma a obter informações respeitantes às mesmas, como distância, posição no mundo, velocidade, trajetória e dimensão. Este documento apresenta todo o trabalho efetuado para a unidade curricular Dissertação, no âmbito do Mestrado Integrado de Engenharia Eletrotécnica e de Computadores da Faculdade de Engenharia da Universidade do Porto. Desta forma, terá apresentada a Motivação ( 1.1) para a elaboração da respetiva dissertação, seguida dos Objetivos ( 1.2) alvo deste projeto e, por fim, a respetiva Estrutura ( 1.3) do presente documento. 1.1 Motivação A utilização de veículos não tripulados cada vez mais proporciona um amplo leque de vantagens, seja na redução de risco em tarefas perigosas para os humanos, redução de custos de desenvolvimento e operabilidade, acesso a áreas remotas, assim como melhor eficiência energética, dada a ausência presencial de um controlador humano. Desta forma, torna-se muito interessante a incorporação deste tipo de veículos em diversos sistemas atuais. Esta simbiose pode já ser observada em aplicações militares de alto nível, como é o caso dos veículos aéreos não tripulados, bem como em explorações marítimas profundas e ultra-profundas e até mesmo em explorações espaciais. Assim, e enfatizando os veículos autónomos, torna-se imperativo determinar e controlar a posição destes veículos de forma a maximizar a sua fiabilidade aquando da sua incorporação em espaços não exclusivos. Através de uma combinação de informações externas ao veículo com dados de bordo, é possível fazer correções e modificações aos seus algoritmos de controlo que permitam garantir o correto funcionamento deste em qualquer situação. Da mesma forma, é também possível fazer uma gestão do tráfego destes veículos através do planeamento e controlo em tempo real das movimentações dos mesmos, assegurando a segurança da circulação e maximização da eficiência dos veículos, tanto energética como na tomada de decisões de trajetória. 1
2Introdução Esta dissertação abordará estes temas respeitante a embarcações marítimas e combinará um sistema de visão estacionário com informações de bordo da embarcação, esperando criar um sistema fiável e útil, num futuro breve, para controlo da posição de embarcações autónomas em espaços não exclusivos e limitados. 1.2 Objectivos Os objetivos propostos para esta dissertação são: 1. Estudo da relação entre um ponto no espaço 3D e a sua respetiva projeção 2D; 2. Estudo da função de projeção de coordenadas 2D num sistema de coordenadas 3D; 3. Estudo e desenvolvimento dos algoritmos de visão para processamento de imagem; 4. Estudo e desenvolvimento do algoritmo de deteção da linha do horizonte; 5. Estudo e desenvolvimento do algoritmo de visão para deteção de embarcações; 6. Implementação, teste e validação dos algoritmos desenvolvidos, em vídeos; 7. Comparação dos vários detetores desenvolvidos; 8. Desenvolvimento do algoritmo de validação das embarcações detetadas na imagem; 9. Desenvolvimento de uma estação de aquisição e transmissão de dados de imagem e dados posicionais. 1.3 Estrutura do Documento Além da introdução, este documento encontra-se dividido em mais 6 capítulos. No capítulo 2, é descrito o estado da arte relativo às tecnologias atualmente existentes na área dos veículos não tripulados e dos sistemas de visão existentes, acoplados ou não. No capítulo 3, são apresentados a problemática desta dissertação e a solução adotada para a sua resolução, incluindo a arquitetura funcional do sistema desenvolvido e a explicação dos princípios associados à sua elaboração. No capítulo 4são apresentados a modelização da solução e os conceitos teóricos fundamentais para a transformação do referencial 2D da câmara para o referencial 3D do mundo. No capítulo 5é apresentado o trabalho efetuado na aquisição dos dados de visão utilizados nesta dissertação, assim como dados posicionais do módulo GPS, e apresentado um pequeno protótipo de uma estação de aquisição, meramente como prova de conceito. No capítulo 6é apresentado o sub-sistema responsável pelo processamento dos dados de visão adquiridos pelo módulo de aquisição. Tem descritos os vários sub-sistemas integrantes e explicação do seu funcionamento.
1.3 Estrutura do Documento 3 No capítulo 7são presentes as conclusões retiradas da elaboração da presente dissertação e incluída uma análise de potenciais trabalhos futuros no âmbito desta dissertação. Por último, estão presentes os anexos e referências bibliográficas.
4Introdução
Capítulo 2 Estado da Arte Atualmente, os sistemas de vídeo-vigilância têm sido extensamente utilizados para monitorizar e seguir veículos, tanto em terra ([10], [11]), como no mar ([12], [13]), e em ambientes aeroespaciais [14], assim como pessoas em ambientes dinâmicos ([15], [16]). No entanto, o ambiente marítimo representa um desafio para a vídeo-vigilância automática devido à complexidade do ambiente observado; alterações na luminosidade graduais ou súbitas (por exemplo nuvens), alterações no movimento (por exemplo movimentos intencionais ou não-intencionais da câmara), objetos de fundo com alta frequência (por exemplo, ondas e chuva) e reflexos são alguns dos exemplos que contribuem para este desafio. 2.1 Veículos não tripulados O destaque da aplicabilidade de veículos não tripulados é evidenciado na sua utilização em ambientes hostis ou de reduzida acessibilidade. Dado não ser necessária a presença humana a bordo, as dimensões dos veículos poderão ser reduzidas, a sua eficácia energética é, desde logo, melhorada e a carga possível de transportar poderá ser também aumentada. Atualmente, podemos encontrar vários exemplos destas aplicações em situações reais e concretas, desde explorações espaciais de curto ou longo alcance [17], explorações marítimas profundas e ultra-profundas [18], desarme de minas ou dispositivos explosivos [19], entre muitos outros. Em comum, estas situações apresentam um perigo muito elevado para a atuação por parte de um humano. Através da utilização de veículos não tripulados, o risco passa a ser inexistente. Podemos dividir os veículos não tripulados em 2 grupos distintos: pilotados remotamente, onde o controlo do veículo é conseguido por meio de um piloto numa estação remota, ou autónomos, no qual o veículo é capaz de observar o meio envolvente e navegar autonomamente. Nesta dissertação, discutir-se-á sobre os veículos autónomos. Como tal, a diversidade de aplicações possíveis para veículos autónomos levou à criação de vários tipos de veículos, cada qual pré-concebido para atuações em certos tipos de ambientes. Temos, então, os UAV’s para atuarem no ar, UGV’s para atuarem em terra, USV’s para atuações à superfície em meios aquáticos, UUV’s utilizados em ambientes sub-aquáticos e veículos espaciais 5
12 Estado da Arte Figura 2.8: Ilustração do sistema de radar TerraSAR-X. Figura 2.9: Aquisição de imagem por um sistema visual infravermelho (figura retirada de [5]) Uma outra abordagem à deteção de embarcações em vídeos de ambientes marítimos é apresentada por R. Wijnhoven [39]. Esta abordagem é baseada no Histograma de Gradientes Orientados [40]. Dado que a computação das características de deteção necessita de uma elevada capacidade computacional, o desempenho em tempo-real só é conseguido com recurso a aceleração do hardware com componentes programáveis como FPGAs. Em conclusão, a análise da literatura demonstra uma série de críticas relacionadas com a utilização de câmaras PTZ, capazes de efetuar panorâmicas, assim como a presença de objetos alvo de dimensão variada, reflexos e rastos de embarcações na superfície da água e a presença de
2.4 Trabalhos relacionados 13 embarcações aparentemente imóveis, ancoradas ao largo da costa ou em alto mar. Esta dissertação visa abordar todas estas questões e os problemas encontrados.
14 Estado da Arte
Capítulo 3 Abordagem ao problema Neste capítulo é apresentada a problemática da presente dissertação e a abordagem adotada para a sua resolução. Será descrita a formulação do problema, onde será explicada a origem desta problemática, seguida da solução proposta e de uma breve descrição. 3.1 Formulação do Problema A navegação de embarcações autónomas é, regra geral, controlada, independentemente, pela própria embarcação, seguindo comandos estabelecidos pré-navegação ou em tempo real por um controlador humano e recorrendo a sensores de bordo para a análise do ambiente envolvente e consequente tomada de decisões de rota. Desta forma, cada embarcação é independente de outras embarcações, no sentido que desconhecem a mútua existência dentro do mesmo espaço de manobra assim como desconhecem a orientação dessas mesmas embarcações. Esta falta de informação pode ter consequências desastrosas se o ambiente de navegação estiver sobre-lotado e o espaço de manobra de cada embarcação for limitado. Por outro lado, estas embarcações são dependentes, unicamente, dos sensores de bordo, com os quais baseiam todas as suas decisões, colocando um problema relativamente ao desconhecimento da validade das informações dos sensores; a aquisição dos dados dos sensores de bordo, por exemplo GPS, carecem de uma validação e são aceites como fiáveis pela embarcação. Não se dispondo de uma forma de comparar as leituras dos sensores de bordo com dados obtidos por terceiros foi encontrado aqui um problema que necessitava ser solucionado. Surge a necessidade de monitorizar e controlar estas embarcações, cuja navegação toma lugar em ambiente não exclusivo, de forma a tornar a sua navegação mais robusta e de forma a validar os dados posicionais da mesma, podendo ser criado um registo das posições de todas as embarcações para implementação de um controlador de tráfego autónomo. Esta dissertação apresenta, então, uma solução para o problema em questão. 15
16 Abordagem ao problema 3.2 Solução Proposta A solução proposta é a utilização de um sistema de visão monocular autónomo, divisível em 2 subsistemas - estação de aquisição e estação de processamento - capaz de detetar, monitorizar e acompanhar as movimentações das embarcações autónomas, criando um registo de toda a atividade costeira, acessível às embarcações, podendo estas efetuar uma validação aos seus dados posicionais e estabelecer a melhor rota com as informações de tráfego disponibilizadas. A solução deste problema resolve também o problema de vigilância costeira, pois o sistema desenvolvido é polivalente no que toca ao tipo de embarcações detetadas. Este sistema poderá ser instalado em qualquer ponto da zona costeira; várias estações de aquisição são instaladas ao longo da costa e são responsáveis por adquirir e transmitir os dados visuais para uma estação de processamento central que efetua uma análise destes dados, e cria um registo posicional das embarcações detetadas. Figura 3.1: Ilustração da solução proposta. 3.2.1 Arquitectura funcional da solução É, então, necessário compreender os pontos chave do modelo proposto e identificar os sistemas integrantes. Conforme se pode observar pela figura 3.2, o sistema global é dividido em 2 sub-sistemas: estação de aquisição e estação de processamento. 3.2.2 Descrição do Sistema Após instalação da estação de aquisição num ponto de vantagem de observação, esta é responsável por recolher e enviar os dados de visão adquiridos pela câmara e as informações dos dispositivos IMU eGPS para a estação de processamento central, através de uma rede de área local. De modo a oferecer a possibilidade de portabilidade da estação de aquisição, o módulo GPS permitirá obter as coordenadas da estação de aquisição no mundo, assim como a altitude face ao nível médio do mar. Através do sensor IMU é possível obter a orientação da câmara, relativamente aos 3 graus de liberdade de rotação, para estimação das coordenadas das embarcações detetadas no mundo. Por sua vez, a estação de processamento interpreta os dados recebidos. Primeiramente, executa o processamento dos dados de visão recolhidos pela câmara; este processamento consiste na
3.3 Síntese 17 Figura 3.2: Arquitetura funcional da solução proposta deteção da linha do horizonte, na imagem recebida, seguida da segmentação da região de interesse e aplicação do algoritmo de deteção de embarcações baseado num classificador em cascata com características Haar; de seguida efetua uma validação das deteções efetuadas e recebe e interpreta as informações dos dispositivos IMU eGPS fornecidas pela estação de aquisição; ultimamente, somando os resultados da anterior validação e da interpretação dos dados posicionais, faz o registo das embarcações detetadas com a sua posição no mundo, velocidade e orientação. 3.3 Síntese O sistema desenvolvido partiu da necessidade de se monitorizar e controlar o tráfego marítimo autónomo de forma a poder ser implementado, no futuro, um ambiente estável e robusto que permita navegação de embarcações autónomas em espaços de navegação não exclusivos e que permita que esta seja segura e fiável. Deste modo, o desenvolvimento do sistema adotado apoia-se em vários critérios de escolha, positivos e negativos. A implementação deste sistema permite a existência de várias estações de aquisição, instaladas em pontos de observação diferentes, ligadas a uma estação de processamento central; esta centralização permite maior capacidade de processamento, uma vez que pode ser dimensionada de forma a poder gerir os dados de várias estações de aquisição, e torna a manutenção e a identificação e correção de erros mais fácil. A modularidade desta solução oferece algum nível de redundância na aquisição de imagem, pois em caso de avaria ou defeito de uma estação de aquisição, outra estação na vizinhança pode ficar encarregue de observar a zona da estação defeituosa. No entanto, a transmissão dos dados de imagem é alvo de atrasos temporais quando comparada com um processamento local; também todo o processamento dos dados de visão se apoia numa única estação de processamento que, em caso de falha, condiciona todo o sistema.
18 Abordagem ao problema Contudo, devido a restrições no acesso a embarcações autónomas para uma implementação correta desta abordagem, foi considerado que seriam alvo de deteção todo o tipo de embarcações, de forma a permitir testar o programa desenvolvido. Caso contrário, seria muito difícil obter cenários com embarcações autónomas, tanto para desenvolvimento do detetor de embarcações como para efeitos de teste e validação. No entanto, é seguro afirmar que este programa seria facilmente adaptado para incluir embarcações autónomas nos critérios de deteção. Em suma, a solução desenvolvida foi ponderada após um balanço de todos os pontos positivos e negativos e foi escolhida como a de mais fácil implementação e sem exigência de recursos mais exigentes, como a utilização de radar ou VTS.
Capítulo 4 Modelização da Solução Proposta 4.1 Geometria Projetiva A geometria projetiva serve como um framework para multi-visão 3D e para computação gráfica 3D. É utilizada para modelizar o processo de formação de imagem e gerar imagens sintéticas, ou reconstruir objetos 3D a partir de múltiplas imagens. Para modelizar retas, planos ou pontos num espaço 3D é utilizada normalmente a geometria Euclidiana. No entanto, a desvantagem da geometria Euclidiana é o facto de pontos no infinito não podem ser modelados e são considerados um caso especial. Este caso especial pode muito bem ser ilustrado através de um desenho em perspetiva de duas retas. Em perspetiva, duas retas paralelas, como por exemplo os carris de um caminho de ferro, encontram-se no infinito no ponto de fuga (figura 4.1). No entanto, a interseção das retas paralelas no infinito não é facilmente modelado pela geometria Euclidiana. Uma segunda desvantagem da geometria Euclidiana é que projetar um ponto 3D num plano de imagem requer uma operação de escalamento da perspetiva. Como o fator de escalamento é um parâmetro, a operação de escalamento da perspetiva exige uma divisão que se torna uma operação não-linear. Assim, decidiu-se evitar o uso da geometria Euclidiana. Figura 4.1: Duas retas paralelas intersetam-se no infinito, no ponto de fuga (figura retirada de [6]). 19
20 Modelização da Solução Proposta A geometria projetiva é, então, um framework bastante atraente para contornar as desvantagens supra descritas da geometria Euclidiana. Num espaço Euclidiano, um ponto definido em três dimensões é representado por um vetor de três elementos (X,Y,Z)T; no espaço projetivo, este mesmo ponto é definido através de um vetor de 4 elementos (X1,X2,X3,X4)Ttal que: X=X1 X4,Y=X2 X4,Z=X3 X4,(4.1) onde X46=0. Regra geral, as coordenadas (X,Y,Z)Te(X1,X2,X3,X4)Tsão designadas coordenadas não homogéneas e coordenadas homogéneas, respetivamente. Generalizando, o mapeamento a partir de um ponto no espaço Euclidiano n-dimensional para um espaço projetivo (n+1)-dimensional pode ser escrito como: Espaço Euclidiano z }| { (X1,X2,...,Xn)T→ Espaço Projetivo z }| { (λX1,λX2,...,λXn)T,(4.2) onde λ6=0 corresponde a um parâmetro de escalamento livre. Este parâmetro é normalmente denominado fator de escalamento homogéneo. Utilizando o framework de geometria projetiva apresentado, é apresentado, de seguida, o modelo da câmara pin-hole. 4.2 Modelo de uma Câmara pin-hole Nesta secção é descrito o processo de aquisição de imagem, conhecido como o modelo da câmara pin-hole, o qual é empregue nesta dissertação. Mais especificamente, será discutido o modelo que integra os parâmetros extrínsecos e intrínsecos da câmara, tais como a distância focal e a distorção da lente; seguidamente, é estendido o modelo da câmara simples para integrar parâmetros extrínsecos e intrínsecos da câmara correspondendo à posição e orientação da câmara. 4.2.1 Parâmetros Intrínsecos da Câmara O modelo da câmara pin-hole define a relação geométrica entre um ponto 3D e a sua projeção 2D correspondente no plano da imagem. Quando o modelo da câmara pin-hole é utilizado, este mapeamento geométrico, de 3D para 2D, é chamado de projeção em perspetiva. Designa-se o centro da projeção em perspetiva (o ponto no qual todos as retas se intersetam) como o centro ótico ou o centro da câmara e a linha perpendicular ao plano da imagem e passando pelo centro ótico como o eixo ótico (ver figura 4.2). Adicionalmente, o ponto de interseção do plano da imagem com o eixo ótico é chamado de ponto principal. O modelo de projeção em perspetiva de uma câmara pin-hole é, então, descrito de seguida.
4.2 Modelo de uma Câmara pin-hole 21 4.2.1.1 Projeção em Perspectiva através de coordenadas homogéneas Considere-se uma câmara com o eixo ótico colinear com o eixo Zcam e o centro ótico localizado na origem de um referencial 3D (figura 4.2). Figura 4.2: O modelo ideal de uma câmara pin-hole descreve a relação entre um ponto 3D (X,Y,Z)Te a sua respetiva projeção 2D (U,V)Tno plano da imagem. A projeção de um ponto 3D do mundo (X,Y,Z)Tno plano da imagem no pixel com localização (u,v)Tpode ser escrita como: u=X f Z e v=Y f Z,(4.3) onde fé a distância focal. Para evitar tal operação de divisão não linear, a equação anterior pode ser reformulada através do framework da geometria projetiva, como: (λu,λv,λ)T= (X f,Y f,Z)T.(4.4)
28 Modelização da Solução Proposta Desta forma, obtêm-se todos os parâmetros necessários para calcular a posição de qualquer ponto no espaço 3D, com recurso às fórmulas apresentadas anteriormente. 4.3 Aquisição A aquisição dos dados de visão e dados posicionais da câmara é feita na estação de aquisição. Os dados de visão são adquiridos com recurso a uma câmara PTZ (figura 4.8), de forma a permitir efetuar panorâmicas laterais e verticais das zonas de observação. De forma a minimizar os atrasos temporais na transmissão dos dados de visão, a câmara comunicará com a estação de processamento através de uma rede de área local e utilizando o protocolo RTSP; este protocolo permite que o cliente (neste caso a estação de processamento) controle fluxos de multimédia em tempo real do servidor. RTSP permite que o cliente envie pedidos ao servidor controlando a reprodução de multimédia mas não trata da comunicação ele mesmo; esta é feita sob o protocolo TCP-IP. Figura 4.8: Exemplo de uma câmara PTZ (figura retirada de [7]). Os dados posicionais da estação de aquisição são adquiridos com recurso a um módulo GPS e um módulo IMU, montados na própria estação. Estes dados são transmitidos através da mesma rede de área local mas sob o protocolo UDP. Com os dados obtidos pelo módulo GPS, é possível determinar a posição da estação de aquisição no mundo, em termos de altura em relação ao nível médio do mar, coordenadas no referencial mundo e a etiqueta temporal. Através do módulo inercial, retiram-se os parâmetros extrínsecos da câmara, tais como as orientações nos 3 eixos de rotação, transversal, longitudinal e vertical (figura 4.9).
4.4 Processamento 29 Figura 4.9: Eixos de rotação da câmara. 4.4 Processamento O processamento dos dados recebidos da estação de aquisição é efetuado na estação de processamento. Esta estação é uma plataforma de receção dos dados enviados pelas estações de aquisição e subsequente tratamento e interpretação dos mesmos para extração das informações relevantes relativas às embarcações detetadas. 4.4.1 Entrada de Vídeo ou Stream A aquisição dos dados de visão para análise tem duas abordagens: via vídeo pré-gravado ou por aquisição em tempo-real via câmara da estação de aquisição; serve a primeira, maioritariamente, para testes e análise do software desenvolvido de forma a permitir avaliar a eficácia e a consistência dos algoritmos desenvolvidos e compreender de que forma cada alteração ao código destes afeta o resultado final pois tem-se que os objetos de teste (as imagens retiradas do vídeo em análise) serão iguais entre testes; a aquisição em tempo-real via câmara da estação de aquisição será para execuções em tempo-real e implementação em cenário real, sendo a aquisição de imagem realizada no momento imediatamente anterior ao seu processamento. A aquisição de imagem é, então, efetuada dentro de um ciclo while infinito no qual é, inicialmente, aberto o ficheiro vídeo a ser processado ou é acedido ao endereço da câmara que envia fotogramas em tempo-real (streaming); segue-se um segundo ciclo while, o qual se inicia com a captura de um fotograma da sequência de vídeo ou do fluxo da câmara, retendo uma imagem de 8 bits e 3 canais (RGB), seguida da execução dos algoritmos de processamento do fotograma capturado. Este segundo ciclo é repetido até se extrair o último fotograma da sequência de vídeo, após o qual retorna ao primeiro ciclo while e repete todas as operações anteriores, retomando o vídeo desde o início; no caso de estar a ser efetuada a captura de fotogramas via stream da câmara de aquisição, esta só será interrompida com o término do programa.
30 Modelização da Solução Proposta A arquitetura funcional deste algoritmo pode ser observada na figura 4.10. Após a aquisição do fotograma para processamento, este é redimensionado para uma dimensão pré-definida, menor que a original, de forma a reduzir a carga computacional necessária para um processamento eficaz. Figura 4.10: Diagrama do algoritmo de aquisição de imagem. Após a aquisição da imagem e do seu redimensionamento, são aplicados vários algoritmos. De forma a reduzir a carga computacional imposta, é aplicado um algoritmo de deteção da linha do horizonte de forma a eliminar partes da imagens irrelevantes para o detetor de embarcações, isto é, descartar as áreas da imagem acima da linha do horizonte, onde não serão encontradas embarcações. Seguidamente é aplicado o detetor à imagem recortada e todas as deteções são registadas. Este registo é apenas um vetor de retângulos, no qual cada um é um indicador de uma embarcação detetada. Cada retângulo devolvido pelo detetor tem um ponto inicial associado, seguido da largura e altura do respetivo retângulo; desta forma, é possível saber-se em que ponto da imagem se detetou a embarcação (figura 4.11). 4.5 Pós-Processamento Após a deteção positiva de embarcações pelo sub-sistema anterior procede-se então, ao pósprocessamento dos dados de visão e ao cálculo da posição no mundo das embarcações. Para
4.6 Registo e Tratamento da Informação 31 Figura 4.11: Deteção de 2 "embarcações" numa imagem, como dois retângulos, e respetivas coordenadas e dimensões. tal, no sub-sistema de tratamento de dados, os objetos detetados pelo algoritmo de deteção são submetidos a uma análise e validação. Esta validação é feita recorrendo ao histórico de deteções anteriores; o histórico de deteções é implementado através de um mapa temporal adaptativo que evidencia as deteções ocorridas previamente com um grau de probabilidade de sucesso associado. Nesta etapa, o sub-sistema de mudança de referencial recebe os dados posicionais da estação de aquisição, via protocolo UDP, e com base nas informações recebidas calcula as posições das embarcações detetadas no referencial do mundo. 4.6 Registo e Tratamento da Informação Uma vez validadas as deteções obtidas, é atualizado o registo que contém todas as embarcações detetadas até à altura, diferenciadas por um código identificador único, juntamente com as informações posicionais calculadas das embarcações. Este registo é o propósito máximo desta dissertação e, através deste modelo, é de consulta pública às entidades que pretendam informações de tráfego marítimo na zona supervisionada pelo sistema, sejam embarcações em navegação, autónomas ou não, assim como utilizadores terceiros que pretendam conhecer o ambiente de navegação alvo desta supervisão. 4.7 Biblioteca OpenCv A biblioteca OpenCV (Open Source Computer Vision) é uma biblioteca de funções de programação preparada, maioritariamente, para visão computacional em tempo-real. É, como indica o nome, uma biblioteca de código aberto que permite a sua utilização e modificação pelo público geral, tendo sido, por isso, a escolha para o desenvolvimento desta dissertação.
32 Modelização da Solução Proposta
Capítulo 5 Aquisição dos Dados de Visão e Posicionais Neste capítulo é apresentado o trabalho efetuado na aquisição dos dados de visão e dos dados posicionais assim como é apresentado um pequeno protótipo de uma estação de aquisição, apenas para prova de conceito. 5.1 Aquisição de Vídeos Com vista a obter cenários para teste do detetor de embarcações desenvolvido, foram adquiridos diversos vídeos, filmados na zona costeira no ponto mais alto encontrado. Para isso foi utilizada uma câmara FullHD 1080, ilustrada na figura 5.1. Figura 5.1: Câmara utilizada na aquisição dos vídeos de teste. Os vídeos foram gravados em duas condições climatéricas diferentes, céu limpo e enublado, de forma a colocar um desafio maior na deteção da linha do horizonte. Alguns exemplos de imagens captadas podem ser observados na figura 5.2. 33
34 Aquisição dos Dados de Visão e Posicionais Figura 5.2: Exemplos de imagens captadas em diversos vídeos. 5.2 Estação de Aquisição Como prova de conceito e também para testes em ambiente real, foi desenvolvido um pequeno protótipo de uma estação de aquisição composta por um módulo Arduino, um módulo GPS, uma câmara USB e um servo-motor (figura 5.3). Figura 5.3: Protótipo de uma estação de aquisição.
5.2 Estação de Aquisição 35 Este protótipo visava aferir a qualidade de funcionamento do programa em tempo-real, intercalando o processamento de imagem com a leitura da porta-série e leitura dos dados do GPS, assim como a movimentação da câmara. Foi apenas utilizado para testar o programa desenvolvido em tempo-real, sendo que todos os testes dos algoritmos de visão foram efetuados sobre os vídeos capturados com a câmara descrita na secção anterior. 5.2.1 Módulo Arduino e Comunicação Para comunicar com a estação de processamento, neste caso um computador pessoal, foi utilizado um Arduino Uno ligado por USB ao computador. Para comunicar com a estação e com os módulos a si ligados, foram adaptados algoritmos fornecidos pela entidade Adafruit [48] com vista a poder interagir com os módulos exteriores e comunicar com a estação de processamento. Na estação de processamento é controlado o fluxo de informação com o Arduino, isto é, o Arduino fica à "escuta" da porta-série e apenas envia comunicações (no caso do GPS) ou efetua atuações (no caso do servo-motor) quando um pedido é efetuado do lado da estação, em funcionamento estilo pooling. 5.2.2 Aquisição do Sinal do GPS O sinal GPS é obtido com recurso ao módulo Adafruit Ultimate GPS Breakout (figura 5.4). Após a instalação das bibliotecas open source próprias deste módulo, a extração do sinal torna-se banal. No Arduino, após interrupções de 1 em 1 milissegundos, é executada a rotina de interrupções ISR; nesta rotina o Arduino verifica se existem novos dados posicionais do GPS e, em caso afirmativo, regista as leituras do módulo de GPS através de uma ligação série por software (Rx,Tx). Estas leituras são efetuadas de 10 em 10 segundos pelo módulo GPS. Seguidamente, o Arduino continua à "escuta"da porta-série, ligada à estação de processamento, até que lhe seja feito um pedido de envio das informações do sinal de GPS. No caso de não ser feito um pedido de envio da informação antes dos 10 segundos de intervalo de leitura do GPS, as informações anteriores são substituídas pelas mais recentes. Na figura 5.5 observam-se algumas medições obtidas através deste sistema, ao mesmo tempo que o restante programa executava o detetor de embarcações (parte das coordenadas foram pixelizadas por razões de segurança). 5.2.3 Rotação do sistema de aquisição Foi também implementado um sistema de rotação da câmara com recurso a um servo-motor digital, controlado por PWM (figura 5.6) por impossibilidade de obter uma câmara PTZ para testes. Mais uma vez, a implementação do controlador deste servo-motor no Arduino é relativamente simples recorrendo às bibliotecas próprias para o efeito. Através de comandos na estação de processamento, é possível controlar se o servo-motor roda para a esquerda ou para a direita. Este módulo funcionou bastante bem, no entanto não é o mais indicado para esta situação específica pois possui um passo angular demasiado alto.
36 Aquisição dos Dados de Visão e Posicionais Figura 5.4: Módulo de GPS implementado na estação de aquisição (figura retirada de [8]). Figura 5.5: Módulo de GPS implementado na estação de aquisição. Figura 5.6: Servo-motor utilizado na estação de aquisição para variação da pose da câmara (figura retirada de [9]).
5.3 Discussão de Resultados e Conclusão 37 5.3 Discussão de Resultados e Conclusão Este protótipo serviu para testar se o conjunto estação de aquisição e estação de processamento funcionariam nas condições esperadas. É seguro, com base nos resultados apresentados na figura 5.5 e na figura 5.7 afirmar que a conjugação é possível e funcional. Pode observar-se pela figura 5.7 que o programa executa todo o código corretamente, obtendo o fluxo de vídeo da câmara USB ao mesmo tempo que efetua deteções e obtém as leituras do módulo GPS. Figura 5.7: Teste de funcionamento da estação de aquisição e aquisição do sinal de GPS. Neste caso em específico, é possível observar pela janela da linha de comandos, que o detetor e o mapa temporal estão ativos (enabled) e que o Arduino devolveu a leitura das coordenadas (41,19XX , -8.60XX). Como seria de esperar, temos presentes vários falsos positivos, descartados pelo mapa temporal. Para concluir, o sistema de aquisição funcionou na perfeição e como seria esperado, faltando apenas a implementação do sensor IMU por protocolo I2C.
44 Processamento de Imagem características podem ser, facilmente, redimensionadas aumentando ou diminuindo o tamanho do grupo de pixeis a analisar permitindo que estas características sejam utilizadas para detetar objetos de qualquer dimensão. Para o cálculo das características de uma imagem é utilizada uma representação intermédia da imagem em análise, denominada imagem integral [34]. A imagem integral é uma matriz cujos valores são a soma dos valores de intensidade dos pixeis diretamente à esquerda e acima de um pixel na posição (x,y), inclusive. Assim, se A[x,y] representar a imagem original e AI[x,y] representar a imagem integral, então esta é calculada como demonstrado na equação 6.1 e ilustrado na figura 6.9a. AI[x,y] = ∑ x0≤x,y0≤y A(x0,y0)(6.1) As características inclinadas 45 graus, como a característica de linha na figura 6.8 (3), tal como apresentado por Lienhart e Maydt, requerem uma outra representação intermédia denominada imagem integral rodada [49]. A imagem integral rodada é calculada através da soma dos valores de intensidade dos pixeis que estão a 45 graus à esquerda e acima do valor de xe abaixo do valor de y. Se A[x,y] representar a imagem original e AR[x,y] representar a imagem integral rodada, então, a imagem integral é calculada como apresentado na equação 6.2 e ilustrado na figura 6.9b. AR[x,y] = ∑ x0≤x,y0≤x−|y−y0| A(x0,y0)(6.2) (a) Área somada de uma imagem integral. (b) Área somada de uma imagem integral rodada. Figura 6.9: Áreas da soma de imagens integrais. São necessários apenas 2 passos para calcular ambas as imagens integrais, um para cada matriz. Recorrendo à matriz apropriada e através da diferença entre 6 a 8 elementos, que formam 2 ou 3 áreas retangulares conectadas, uma caraterística de qualquer dimensão pode ser calculada; assim, calcular uma característica é extremamente rápido e eficiente e o cálculo de características de dimensões variadas exige o mesmo tempo de processamento que uma característica de dois ou três pixeis. Isto significa que a deteção de embarcações de várias dimensões impõe a mesma carga computacional e exige o mesmo tempo que a deteção de embarcações da mesma dimensão dado
6.2 Classificador em cascata com características Haar 45 que o dimensionamento não requer esforço adicional [34]. Apesar da capacidade de processamento da estação de processamento ser elevada, esta abordagem torna possível adaptar o sistema de aquisição e processamento num só, sendo possível efetuar um processamento local e tornar este sistema portátil. O cálculo de uma determinada área de uma característica pode ser facilmente obtida através da equação 6.3, onde os pontos A,B,C,Dpertencem à imagem integral I, como ilustrado na figura 6.10. Soma =I(C)+I(A)−I(B)−I(D)(6.3) Figura 6.10: Cálculo da área sombreada de uma imagem integral. 6.2.2 AdaBoost As características Haar são um classificador fraco, tomam uma decisão um pouco melhor que pelo acaso (0.5 de probabilidade). O algortimo Gentle AdaBoost descrito em [50] combina múltiplas características Haar criando um classificador forte. Este algoritmo é uma variante da robusta técnica amplificada de aprendizagem [51] e é utilizado para escolher um conjunto de árvores de classificação e regressão (CART’s) para alcançar uma taxa de deteção e taxa de erro estipuladas. O algoritmo Gentle AdaBoost combina CART’s onde as características são a entrada (x),y∈ [−1;1]é a classificação da característica (cuja polaridade indica se é positiva (isto é, se contém o objeto alvo) ou negativa (não contém o objeto alvo) e a saída é a probabilidade: fm(x) = Pw(y=1|x)−Pw(y=−1|x)(6.4) A aprendizagem é baseada em Nexemplos de treino ponderados (x1,y1),...,(xN,yN); segue-se o algoritmo de treino, onde Né o número de amostras, Mé o número de classificadores fracos: 1. Inicializar os pesos wicom 1/N,i=1,2,...,Ne o classificador F(x) = 0;
46 Processamento de Imagem 2. Para m=1,2,...,M: (a) Ajustar a função de regressão da árvore de decisão fm(x) através dos mínimos quadrados ponderados de yiaxicom pesos wi; (b) Atualizar F(x) = F(x)+ fm(x); (c) Atualizar wi=wie−yifm(x)e normalizar tal que: N ∑ m=1 wi=1.(6.5) São adicionados classificadores fracos até que o classificador atinja as taxas de deteção e de falsos positivos estipuladas. 3. O classificador resultante é sign[F(x)] onde: F(x) = M ∑ m=1 fm(x).(6.6) 6.2.3 Classificadores em Cascata O desempenho de um único classificador não é adequado para uma correta classificação de objetos, dado que produz uma taxa de sucesso alta, por exemplo 0,995, mas também uma alta taxa de erro, por exemplo 0,5. No entanto, a taxa de sucesso é consideravelmente superior à taxa de erro. Para uma construção de um classificador robusto, vários classificadores fracos são dispostos em cascata, isto é, como uma árvore de decisão degenerada; em cada etapa da cascata, é tomada a decisão se a sub-imagem em análise contém o objeto alvo ou não; a sub-janela que é validada pela última etapa é classificada como um objeto no final. Esta computação reduz ambas as taxas, dado que a taxa de sucesso é perto de 1 a sua multiplicação resulta num resultado perto de 1 enquanto que a multiplicação das taxas de erro reduzidas se aproxima de 0. Além disso, isto acelera todo o processo de classificação dado que grandes partes da imagem que não contêm dados relevantes são descartadas rapidamente nas primeiras etapas, como por exemplo mar homogéneo, enquanto que as sub-janelas mais difíceis, por exemplo rastos de embarcações ou rebentação das ondas , são classificadas como não sendo embarcações nas etapas seguintes. Uma cascata eficaz é facilmente aprendida por um método iterativo simples; para cada etapa, a função classificadora h(x)é aprendida até ser alcançada a desejada taxa de sucesso. O processo continua e a etapa seguinte usa os exemplos positivos corretamente classificados (sub-imagens que contêm embarcações) e os exemplos negativos (sub-imagens sem embarcações contidas) erroneamente classificados até à data. Estes exemplos negativos são partes de imagens aleatórias geradas a partir do conjunto de exemplos negativos fornecidos que são aprovados pelas etapas anteriores e são, desta forma, erroneamente classificados. Na figura 6.11 observa-se um exemplo de um classificador em cascata para deteção de um objeto em imagens 2D.
6.2 Classificador em cascata com características Haar 47 Figura 6.11: As primeiras 3 etapas de um classificador em cascata. Cada etapa contém várias árvores de classificação simples que utilizam as características Haar e um limiar "thr"e retornam ∑h(x), determinado através do percurso pelas árvores.
48 Processamento de Imagem A taxa de falsos positivos da cascata final é: F= K ∏ i=1 fi,(6.7) onde Ké o número de etapas, fié a taxa de falsos positivos do classificador da etapa i. A taxa de deteção é dada por: D= K ∏ i=1 di,(6.8) onde dié a taxa de deteção do classificador da etapa i. Assim, um classificador com 20 etapas, di=d=0.995 e fi=f=0.5 resulta numa taxa de deteção teórica D≈0.9 e numa taxa de erro F≈9.5×10−7. 6.3 Treino do Calssificador O treino do classificador foi realizado recorrendo a funções disponibilizadas pela biblioteca OpenCV. Assim, apenas foi necessário fazer a preparação dos dados de entrada para o algoritmo de treino. Os dados necessários foram as imagens positivas, isto é, imagens nas quais estão presentes embarcações que se queriam detetar e imagens negativas, nas quais não está presente qualquer tipo de embarcação e são encaradas como imagens de fundo. Dada a abordagem desta dissertação, optou-se por treinar o classificador com o máximo de positivos possível, nos quais as embarcações são de diversos tipos, em diferentes poses e em condições variadas. Foram utilizadas 431 imagens positivas e 1990 imagens negativas. 6.3.1 Positivos Os exemplos positivos obtidos para o treino do classificador foram manualmente obtidos através de pesquisas de imagens na web, assim como extraídos manualmente de vídeos obtidos também através de pesquisas online. No entanto, estes exemplos são de dimensões e resoluções diversas; como tal, foi necessário cortar os exemplos positivos de forma a que estes contivessem a maior área possível da embarcação e a menor área possível de fundo. Efetuar esta operação manualmente, em programas de edição de imagem, demoraria demasiado tempo, pelo que se recorreu a uma marcação das embarcações nos exemplos positivos. Esta marcação foi realizada através de um programa de marcação de imagens, facilmente obtido na internet. Após a marcação manual de todas as embarcações em cada exemplo positivo, é gerado um vetor, com a localização das embarcações marcadas em cada imagem, que será posteriormente utilizado no treino do classificador. Na figura 6.12 estão presentes alguns exemplos positivos. A figura 6.13 mostra um exemplo da marcação de uma embarcação num dos exemplos positivos.
6.3 Treino do Calssificador 49 Figura 6.12: Exemplos positivos de embarcações. Figura 6.13: Marcação de uma embarcação num exemplo positivo.
50 Processamento de Imagem Finalmente, é gerado o vetor de exemplos positivos utilizado no treino do classificador através da função opencv_createsamples disponibilizada, também, pela biblioteca OpenCV. A função é responsável por converter os exemplos positivos (pós-marcação) para níveis de cinza e redimensioná-los para 40×20 pixeis. No framework proposto por [34], a dimensão aconselhada será 20×20 pixeis, a qual foi adaptada para o valor utilizado de 40×20 pixeis para acomodar as dimensões mais frequentes das embarcações nos exemplos positivos que, regra geral, serão sempre mais compridas que altas. Este vetor será o responsável por indicar ao algoritmo de treino as coordenadas dos exemplos positivos em cada imagem marcada para posterior processamento. 6.3.2 Negativos Os exemplos negativos foram maioritariamente extraídos de vídeos obtidos por pesquisa online, nomeadamente de vídeos de paisagens e mar aberto sem embarcações. A opção foi retirar o máximo de imagens de fundo o mais semelhantes possível às condições onde seria expectável observar embarcações, isto é, mar aberto em condições meteorológicas diversas, zonas de rebentação do mar, zonas costeiras com ou sem edifícios e rastos de embarcações. Todos os exemplos negativos, provenientes de vídeos, foram redimensionados para 1280 ×720 pixeis e convertidos para escala de cinza enquanto que outras imagens foram redimensionadas para uma altura de 720 pixeis. De seguida foi criado um ficheiro de texto contendo o nome de todos os exemplos negativos que foi passado como argumento ao algoritmo de treino servindo de apontador para os exemplos negativos. Na figura 6.14 observam-se alguns exemplos negativos. Figura 6.14: Alguns exemplos negativos utilizados.
6.3 Treino do Calssificador 51 6.3.3 Aprendizagem O processo de aprendizagem foi realizado recorrendo à função opencv_traincascade cujos parâmetros de entrada foram o vetor de exemplos positivos, o ficheiro de texto apontador para os exemplos negativos, a taxa de sucesso, a taxa de falsos positivos, a dimensão dos exemplos de treino (40 ×20) pixeis, entre outros. Foram realizados diversos treinos, resultando em diversos classificadores, variando, por exemplo, o número de exemplos positivos ou utilizando imagens após equalização mas principalmente aumentando o número de etapas entre 16 e 24. Os resultados e comparações entre cada classificador podem ser observados no sub-capítulo 6.4. (a) Início de treino com 16 etapas. (b) Última de 20 etapas de treino. Figura 6.15: Treino de um classificador com 16 etapas (6.15a) e de um classificador com 20 etapas (6.15b). Em ambos os cenários, foi utilizado o vetor com 431 exemplos positivos, dos quais 90%, ou seja 387, foram admitidos como o número de exemplos positivos; isto deve-se ao facto de, no caso de serem mal identificados alguns exemplos positivos como negativos, ser possível utilizar na mesma 387 exemplos positivos indo buscar um exemplo positivo ainda não utilizado no treino. Foram utilizados 1990 exemplos negativos e em ambos os casos admitidas taxas de sucesso de 0,995 e taxas de falsos positivos de 0,5. Observa-se, também, que na última de 20 etapas foram utilizadas 17 características para se atingir a taxa de falsos positivos estipulada (0.453266 <0.5). Como será demonstrado no sub-capítulo 6.4, os melhores resultados foram obtidos utilizando um classificador com 20 etapas e taxa de falsos positivos de 0,4; de forma a obter esta taxa de falsos positivos, o treino deste classificador necessitou de calcular mais características (figura 6.16)
52 Processamento de Imagem Figura 6.16: Última de 20 etapas de um classificador com taxa de falsos positivos = 0,4, utilizando para isso 43 classificadores fracos.
6.4 Resultados da Deteção 53 6.4 Resultados da Deteção Após o treino dos vários classificadores, foi então implementado o algoritmo de deteção de embarcações, com recurso a mais uma função da biblioteca OpenCV,detectMultiScale(); esta faz um registo de todas as deteções num vetor de retângulos, no qual cada retângulo, guardado no vetor com as suas coordenadas na imagem analisada, é uma deteção. Daí se obtêm os resultados ilustrados nas figuras 6.17,6.18 e6.19, respetivamente para classificadores com 16, 18 e 20 etapas. É possível observar-se que com o aumento do número de etapas, o número de falsos positivos é diminuído, mantendo-se o número de positivos corretamente detetados. A não deteção das embarcações mais longínquas nas figuras 6.17a,6.18a e6.19a é devido ao facto da linha de horizonte ser detetada e a imagem ser cortada; isto seria facilmente resolvido elevando o plano da câmara, o que não foi possível na altura de aquisição dos vídeos em análise. Em relação às figuras 6.17b, 6.18b e6.19b, as embarcações mais longínquas não são detetadas devido ao seu pequeno porte e elevada distância à plataforma de aquisição, assim como devido à compressão das imagens a analisar, reduzindo drasticamente a informação nelas contida. Finalmente, nas imagens 6.17c,6.18c e 6.19c são detetadas todas as embarcações, embora a embarcação mais à direita não seja totalmente detetada, devido sobretudo à falta de exemplos positivos de navios. Foi também treinado um classificador com 24 etapas que ficou sobre-ajustado, não sendo capaz de efetuar nenhuma deteção. Desta forma, como o classificador em cascata com 20 etapas apresentou resultados ótimos, foi tomada a decisão de o considerar como o mais fidedigno. Relativamente aos tempos de processamento, com a execução de todos os algoritmos implementados, o computador utilizado nesta dissertação conseguiu fazer uma leitura média de 4 frames/s, sendo que, em imagens onde a linha do horizonte era detetada e a imagem posteriormente cortada, se chegou a obter 10 frames/s; no entanto, em imagens onde, na totalidade da mesma, era aplicado o detetor obteve-se, por vezes, 2 frames/s, limitando o desempenho em tempo-real deste sistema. (a) (b) (c) Figura 6.17: Classificador em cascata com 16 etapas. A utilização de um classificador com 20 etapas traduziu-se em resultados mais favoráveis e mais fidedignos. Como termo de comparação, foram aplicados ao mesmo vídeo, os 4 classificadores acima documentados e efetuada uma comparação, como se pode observar nos gráficos das figuras 6.20,6.21,6.22 e6.23. O vídeo utilizado para a comparação é o das figuras 6.17c,6.18c e 6.19c e tem presentes, na totalidade dos fotogramas analisados, as mesmas 3 embarcações.
60 Conclusões 7.2 Desenvolvimentos Futuros Com vista a dar continuidade a este projeto e torná-lo completo e eficaz, são apontados alguns desenvolvimentos futuros interessantes: •Treino de um novo classificador com exemplos positivos de, apenas, embarcações autónomas, para que a deteção seja parcial; •Implementação do módulo IMU, leitura das suas medições através do módulo Arduino e estimação da orientação da câmara; •Projeção de um ponto 2D do plano da imagem, referente a uma embarcação, no plano 3D do referencial Mundo; •Comparação dos dados posicionais 3D calculados com dados obtidos por medição nas embarcações detetadas, para efeitos de cálculo do erro associado. •Executar o programa desenvolvido em hardware acelerado observando a melhoria nos tempos de deteção.
Referências [1] C-Enduro. Asv c-enduro, 2015. Retrieved June 25, 2015, from Planet Ocean Ltd website:http://planet-ocean.co.uk/wp/?page_id=3167. [2] Fast. Feup autonomous sailboat, 2015. Retrieved June 25, 2015, from FEUP website:http: //paginas.fe.up.pt/~jca/fast/media.html. [3] C-Worker. Asv c-worker, 2015. Retrieved June 25, 2015, from Unmanned Systems Technology website:http://www.unmannedsystemstechnology.com/2014/02/ asv-launch-revolutionary-oil-field-services-unmanned-surface-vehicle/ asv-c-worker-unmanned-surface-vehicle/. [4] ASV C-Enduro. Asv c-enduro, 2015. Retrieved June 25, 2015, from ThinkDefense website:http://www.thinkdefence.co.uk/2013/07/ autonomous-surface-vehicles-research-contract/. [5] Coast Guard Compass. Coast guard cutter bertholf with suspect vessel, 2015. Retrieved June 26, 2015, from Coast Guard Compass website:http://coastguard.dodlive.mil/2011/05/ from-the-bridge-of-the-bertholf-eastern-pacific-counter-drug-arena/ junior/. [6] user Bo47. Railroad tracks, 2013. Retrieved June 27, 2015, from Just Walked By website:http://www.justwalkedby.com/2013/09/28/railroad-tracks/. [7] Tech CCTV. Pelco ps20 scanner indoor/outdoor up to 35lb 120vac, 2014. Retrieved June 27, 2015, from TechCCTV website:http://techcctv.com/pelcoptz.htm. [8] Adafruit. Adafruit ultimate gps breakout - 66 channel w/10 hz updates, 2014. Retrieved June 27, 2015, from Adafruit website:https://www.adafruit.com/products/746. [9] Addictive-Hobby. Ek2-0508 e-sky digital servo, 2009. Retrieved June 27, 2015, from Adafruit website:http://www.addictive-hobby.com/product_info.php? products_id=1373&osCsid=05b86218fbebcdc7e1c7f9a4415a05ab. [10] F. Moutarde, A. Bargeton, A. Herbin, e L. Chanussot. Robust on-vehicle real-time visual detection of american and european speed limit signs, with a modular traffic signs recognition system. Em Intelligent Vehicles Symposium, 2007 IEEE, páginas 1122–1126, June 2007. doi:10.1109/IVS.2007.4290268. [11] NguanSoon Chong, YauHee Kho, e MouLingDennis Wong. Visual detection in omnidirectional view sensors. Signal, Image and Video Processing, 9(4):923–940, 2015. URL: http: //dx.doi.org/10.1007/s11760-013-0528-0, doi:10.1007/s11760-013-0528-0. 61
62 REFERÊNCIAS [12] M.T. Chan e C. Weed. Vessel detection in video with dynamic maritime background. Em Applied Imagery Pattern Recognition Workshop (AIPR), 2012 IEEE, páginas 1–5, Oct 2012. doi:10.1109/AIPR.2012.6528222. [13] P. Ramona, L. Nicolas, G. Mercier, H. Guillaume, e R. Garello. Ship detection in sar medium resolution imagery for maritime surveillance: Algorithm validation using ais data. Em Geoscience and Remote Sensing Symposium (IGARSS), 2014 IEEE International, páginas 3690–3693, July 2014. doi:10.1109/IGARSS.2014.6947284. [14] B. Ristic. Detecting anomalies from a multitarget tracking output. Aerospace and Electronic Systems, IEEE Transactions on, 50(1):798–803, January 2014. doi:10.1109/TAES.2013.130377. [15] C. Ruz, C. Pieringer, B. Peralta, I. Lillo, P. Espinace, R. Gonzalez, B. Wendt, D. Mery, e A. Soto. Visual recognition to access and analyze people density and flow patterns in indoor environments. Em Applications of Computer Vision (WACV), 2015 IEEE Winter Conference on, páginas 1–8, Jan 2015. doi:10.1109/WACV.2015.8. [16] I. Bouchrika e M.S. Nixon. People detection and recognition using gait for automated visual surveillance. Em Crime and Security, 2006. The Institution of Engineering and Technology Conference on, páginas 576–581, June 2006. [17] Q.L. Willard, A.M. Bartlett, L.S. Harrington, e J.C. McKay. A systems approach to autonomous space exploration. Em Systems and Information Engineering Design Symposium, 2007. SIEDS 2007. IEEE, páginas 1–5, April 2007. doi:10.1109/SIEDS.2007.4374008. [18] S. Wood, T. Allen, S. Kuhn, e J. Caldwell. The development of an autonomous underwater powered glider for deep-sea biological, chemical and physical oceanography. Em OCEANS 2007 - Europe, páginas 1–6, June 2007. doi:10.1109/OCEANSE.2007.4302217. [19] A. El-Shenawy. The construction of autonomous electric vehicle for land mine detection and localization. Em Innovative Engineering Systems (ICIES), 2012 First International Conference on, páginas 91–96, Dec 2012. doi:10.1109/ICIES.2012.6530851. [20] A. Subramanian, Xiaojin Gong, J.N. Riggins, D.J. Stilwell, e C.L. Wyatt. Shoreline mapping using an omni-directional camera for autonomous surface vehicle applications. Em OCEANS 2006, páginas 1–6, Sept 2006. doi:10.1109/OCEANS.2006.306906. [21] C. Kitts, P. Mahacek, T. Adamek, e I. Mas. Experiments in the control and application of automated surface vessel fleets. Em OCEANS 2011, páginas 1–7, Sept 2011. [22] J. Crook. Deep-sea technology [robotics subsea]. Engineering Technology, 5(1):36–39, Jan 2010. [23] Y. Lizunkova, T. Hassel, J. Klotz, A. Wolyniec, e F.-W. Bach. Development of filler wire for underwater welding as a repair tool for adaptation on auv. Em OCEANS 2009 - EUROPE, páginas 1–6, May 2009. doi:10.1109/OCEANSE.2009.5278190. [24] G. Ferri, A. Manzi, F. Fornai, F. Ciuchi, e C. Laschi. The hydronet asv, a smallsized autonomous catamaran for real-time monitoring of water quality: From design to missions at sea. Oceanic Engineering, IEEE Journal of, PP(99):1–17, 2014. doi:10.1109/JOE.2014.2359361.
REFERÊNCIAS 63 [25] ASV. C-worker, 2014. Retrieved June 25, 2015, from ASVGlobal website:http://www. asvglobal.com/oil-and-gas/c-worker. [26] S. Maresca, M. Greco, F. Gini, R. Grasso, S. Coraluppi, e J. Horstmann. Vessel detection and classification: An integrated maritime surveillance system in the tyrrhenian sea. Em Cognitive Information Processing (CIP), 2010 2nd International Workshop on, páginas 40– 45, June 2010. doi:10.1109/CIP.2010.5604209. [27] S. Chaojian, X. Kaiyu, P. Jing, e R. Lei. Architecture of vision enhancement system for maritime search and rescue. páginas 12–17, 2008. URL: http://www.scopus.com/inward/record.url?eid=2-s2.0-62949112187& partnerID=40&md5=9f1b410377c573a2b3eb73005cf5248c. [28] National Aeronautics And Space Administration. Ultraviolet waves, 2010. Science Mission Directorate. (2010). Retrieved July 18, 2014, from Mission:Science website:http: //missionscience.nasa.gov/ems/10_ultravioletwaves.html. [29] Domenico Bloisi e Luca Iocchi. Argos – a video surveillance system for boat traffic monitoring in venice, 2009. [30] K.D. Ward e R. Tough. Modelling radar sea clutter in littoral environments. Em Radar, 2008 International Conference on, páginas 82–87, Sept 2008. doi:10.1109/RADAR.2008.4653896. [31] Zhengqiang Jiang, D.Q. Huynh, W. Moran, e S. Challa. Combining background subtraction and temporal persistency in pedestrian detection from static videos. Em Image Processing (ICIP), 2013 20th IEEE International Conference on, páginas 4141–4145, Sept 2013. doi:10.1109/ICIP.2013.6738853. [32] Wencai Zou, Yao Lu, Mukai Chen, e Feng Lv. Rapid face detection in static video using background subtraction. Em Computational Intelligence and Security (CIS), 2014 Tenth International Conference on, páginas 252–255, Nov 2014. doi:10.1109/CIS.2014.146. [33] O. Barnich e M. Van Droogenbroeck. Vibe: A universal background subtraction algorithm for video sequences. Image Processing, IEEE Transactions on, 20(6):1709–1724, June 2011. doi:10.1109/TIP.2010.2101613. [34] Paul Viola e Michael Jones. Robust real-time object detection. Em International Journal of Computer Vision, 2001. [35] V. Ablavsky. Background models for tracking objects in water. Em Image Processing, 2003. ICIP 2003. Proceedings. 2003 International Conference on, volume 3, páginas III–125–8 vol.2, Sept 2003. doi:10.1109/ICIP.2003.1247197. [36] S. Brusch, S. Lehner, T. Fritz, M. Soccorsi, A. Soloviev, e B. van Schie. Ship surveillance with terrasar-x. Geoscience and Remote Sensing, IEEE Transactions on, 49(3):1092–1103, March 2011. doi:10.1109/TGRS.2010.2071879. [37] B.J. Rhodes, N.A. Bomberger, M. Seibert, e A.M. Waxman. Seecoast: Automated port scene understanding facilitated by normalcy learning. Em Military Communications Conference, 2006. MILCOM 2006. IEEE, páginas 1–7, Oct 2006. doi:10.1109/MILCOM.2006.302306. [38] Jonathan Guinet Nuno Pires e Elodie Dusch. Asv : An innovative automatic system for maritime surveillance. 2010.
64 REFERÊNCIAS [39] Rob Wijnhoven, Kris van Rens, Egbert G. T. Jaspers, e Peter H. N. de With. Online Learning for Ship Detection in Maritime Surveillance. Em Thirty-first Symposium on Information Theory in the Benelux, páginas 73–80, Maio 2010. URL: http://vca.ele.tue.nl/ publications/data/Wijnhoven2010a.pdf. [40] N. Dalal e B. Triggs. Histograms of oriented gradients for human detection. Em Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, volume 1, páginas 886–893 vol. 1, June 2005. doi:10.1109/CVPR.2005.177. [41] Y.M. Wang, Y. Li, e J.B. Zheng. A camera calibration technique based on opencv. Em Information Sciences and Interaction Sciences (ICIS), 2010 3rd International Conference on, páginas 403–406, June 2010. doi:10.1109/ICICIS.2010.5534797. [42] Byoung-Kwang Kim, Soon-Wook Chung, Moon-Kyu Song, e Woo-Jin Song. Correcting radial lens distortion with advanced outlier elimination. Em Audio Language and Image Processing (ICALIP), 2010 International Conference on, páginas 1693–1699, Nov 2010. doi:10.1109/ICALIP.2010.5685158. [43] Zhengyou Zhang. A flexible new technique for camera calibration. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 22(11):1330–1334, Nov 2000. doi:10.1109/34.888718. [44] C.X. Guo e S.I. Roumeliotis. Imu-rgbd camera 3d pose estimation and extrinsic calibration: Observability analysis and consistency improvement. Em Robotics and Automation (ICRA), 2013 IEEE International Conference on, páginas 2935–2942, May 2013. doi:10.1109/ICRA.2013.6630984. [45] F.M. Mirzaei e S.I. Roumeliotis. A kalman filter-based algorithm for imu-camera calibration: Observability analysis and performance evaluation. Robotics, IEEE Transactions on, 24(5):1143–1156, Oct 2008. doi:10.1109/TRO.2008.2004486. [46] J. Kellyt e G. Sukhatme. Visual-inertial simultaneous localization, mapping and sensor- to-sensor self-calibration. Em Computational Intelligence in Robotics and Automation (CIRA), 2009 IEEE International Symposium on, páginas 360–368, Dec 2009. doi:10.1109/CIRA.2009.5423178. [47] S. Weiss, M.W. Achtelik, S. Lynen, M. Chli, e R. Siegwart. Real-time onboard visual-inertial state estimation and self-calibration of mavs in unknown environments. Em Robotics and Automation (ICRA), 2012 IEEE International Conference on, páginas 957–964, May 2012. doi:10.1109/ICRA.2012.6225147. [48] Adafruit. Arduino wiring, 2015. Arduino Wiring. Retrieved June 28, 2015, from Adafruit website:https://learn.adafruit.com/adafruit-ultimate-gps/ arduino-wiring. [49] Rainer Lienhart e Jochen Maydt. An extended set of haar-like features for rapid objection detection. IEEE ICIP, página 2002. [50] Jerome Friedman, Trevor Hastie, e Robert Tibshirani. Additive logistic regression: a statistical view of boosting. Annals of Statistics, 28:2000, 1998. [51] Yoav Freund e Robert E. Schapire. Experiments with a new boosting algorithm, 1996.