• Nenhum resultado encontrado

Sistema de visão estéreo para identificação de obstáculos

N/A
N/A
Protected

Academic year: 2021

Share "Sistema de visão estéreo para identificação de obstáculos"

Copied!
116
0
0

Texto

(1)

F

ACULDADE DE

E

NGENHARIA DA

U

NIVERSIDADE DO

P

ORTO

Sistema de Visão Estéreo para Deteção

de Obstáculos

José Luís Dias Espassandim

Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Orientador: Rui Esteves Araújo

Co-orientador: António Lopes

(2)
(3)

Resumo

Nos tempos que correm, os grandes fabricantes automóveis e outras grandes empresas como a Google estão a trabalhar no sentido de colocar em circulação veículos autónomos nas ruas de todo o mundo. Para isto, o veículo autónomo tem de ter a capacidade para se deslocar tendo em conta os utilizadores da rodovia e respeitando as regras de circulação. Para além disso, é necessário ter em atenção o aparecimento inesperado de obstáculos, peões, alterações de contexto e/ou condições de aderência ao piso.

Neste projeto de dissertação, o sistema desenvolvido baseia-se no conceito de estereoscopia. Por outras palavras, duas câmaras captam uma cena que se encontra diante delas e processa-a. Desta forma, o sistema de visão que mais se assemelha ao par de câmaras já referido são os olhos humanos. Se o ser humano dependesse apenas de um olho não teria noção de profundidade. É nesta medida que são precisas duas câmaras. Através do ângulo que o par de câmaras faz com os obstáculos que captura, é possível determinar a distância a que os mesmos se encontram.

Por isso, é apresentado um sistema de deteção de obstáculos por deteção estéreo. Este sis-tema é composto por duas câmaras situadas na parte dianteira do veículo que capturam a estrada. O processo de deteção baseia-se no cálculo de um mapa de disparidades. O conceito de dispa-ridade é essencial no contexto do problema, já que vai traduzir a diferença de intensidade, entre dois pontos diferentes, correspondentes a um ponto da cena. Este mapa é calculado através do custo de correspondência entre píxels da imagem esquerda e direita. Para o cálculo destes custos são implementados dois métodos: método local (blocos de referências) e um métodos semi-global (procuram características especificas de vizinhanças). Previamente à deteção pro-priamente dita, é necessário uma análise dos custos calculados e filtrar o mapa de disparidades, de forma a reduzir os erros da correspondência devido a ruído, por exemplo.

A deteção de obstáculos é feita através da análise dos histogramas vertical e horizontal do mapa de disparidades. Por outras palavras, no histograma vertical, as linhas verticais correspon-dem ao obstáculo, enquanto que no histograma horizontal, as linhas horizontais corresponderão, de igual forma, a um obstáculo. Desta forma, detetando as linhas dos histogramas (através da transformada de Hough), é possível retirar a altura e comprimento do obstáculo, bem como a sua posição na estrada (absoluta e relativa ao par de câmaras).

Os resultados obtidos permitiram verificar que o método semi-global tem um melhor desem-penho, em relação ao método por blocos. Com o primeiro, os mapas de disparidades calculados permitem obter histogramas capazes de uma deteção de obstáculos satisfatória. O peso compu-tacional do código implementado também foi avaliado. As diferenças de complexidade de cada algoritmo, refletem-se no peso computacional dos mesmos.

(4)
(5)

Abstract

Nowadays, the most influential automotive industries and other big companies such as Goo-gle have been putting efforts in order to launch autonomous vehicles into our streets. In order to that safely, a autonomous vehicle has to be capable of moving from point A to point B paying attention to every pedestrian and vehicle, baring in mind that road rules must be obeyed. More-over, obstacles may appear unexpectedly or road adhesion could be altered.

Therefore, in order to fulfill the main purpose of this project, two stereo matching methods were addressed so that the two of them could be compared. The first algorithm was a local block matching and the second one was a semi-global matching. After the disparity map calculation, two histograms from the map were calculated: a vertical and a horizontal histogram. In both histograms the lines are detected through the Hough transform. There are three different lines that need to be addressed: vertical lines of the vertical histogram providing the height of the obstacle, horizontal lines of the horizontal histogram allowing the calculation of the width of the obstacle and a diagonal line in the vertical histogram that represents the road where the vehicle is moving. Through line detection the system is able to calculate the intersection between the vertical lines and the road line. This intersection will locate the car on the road.

Regarding the two algorithms adressed in this document, the semi-global matching method showed better performance than the block matching. The first method disparity map rendered the captured scene with much more quality than the latter. However, a reference must be made to the CPU usage. In this matter, the semi-global algorithm, due to its greater complexity, requires a larger percentage of the total CPU usage per frame.

(6)
(7)

Agradecimentos

Em primeiro lugar queria agradecer à minha família, por me proporcionar oportunidades de ter uma boa educação, nos estudos e como pessoa. À minha mãe pela motivação extra, ao meu pai por manter o meu espírito crítico no ativo, à minha irmã por ser um apoio incondicional e aos meus avós pela preocupação diária.

À minha namorada pela paciência e por estar ao meu lado nos momentos mais críticos dos últimos três meses.

Aos meus amigos e parceiros de trabalho da 101 pela boa disposição constante e pelos momentos de descontração diários. Eles sabem quem são.

Ao Diogo Ribeiro Sousa pela amizade e companhia constante ao longo dos últimos cinco anos.

Aos amigos do futebol semanal no Falcão.

Ao meu orientador Professor Rui Esteves Araújo pela motivação dada e disponibilidade demonstrada.

E a todos os meus amigos que estiveram na minha vida nestes últimos cinco anos, que de alguma forma me ajudaram no caminho até aqui.

José Espassandim

(8)
(9)

“You can’t let your failures define you. You have to let your failures teach you.”

Barack Obama

(10)
(11)

Conteúdo

1 Introdução 1 1.1 Contexto . . . 1 1.2 Motivação . . . 4 1.3 Objetivos . . . 6 1.4 Estrutura do documento . . . 7 2 Estado da Arte 9 2.1 Introdução . . . 9

2.2 Automação e níveis de automação dos veículos . . . 10

2.3 Imagem e câmara . . . 12

2.4 Visão estéreo . . . 13

2.4.1 Calibração da câmara . . . 18

2.5 Correspondência estéreo . . . 20

2.5.1 Métodos de correspondência locais . . . 20

2.5.2 Métodos de correspondência globais . . . 24

2.6 Mapeamento do ambiente e deteção de obstáculos . . . 25

2.7 Implementação de hardware em tempo real . . . 28

2.8 Sistemas de condução autónomos . . . 32

2.9 Sistemas semi-autónomos . . . 36

3 Fundamentação teórica 37 3.1 Introdução . . . 37

3.2 Mapa de disparidades . . . 38

3.3 Abordagem . . . 39

3.3.1 Correspondência por blocos . . . 40

3.3.2 Correspondência Semi-global . . . 41

3.3.3 Análise de histograma de disparidades . . . 47

4 Resultados e discussão 51 4.1 Introdução . . . 51 4.2 Resultados . . . 53 4.2.1 Correspondência estéreo . . . 54 4.2.2 Deteção de obstáculos . . . 59 ix

(12)

4.3 Peso computacional . . . 69

5 Conclusões e Trabalho Futuro 77

A Anexos 83

A.1 Ferramentas/Linha de trabalho . . . 83

B Anexos 87

B.1 Correspondência por blocos . . . 87 B.2 Correspondência semi-global . . . 91

(13)

Lista de Figuras

1.1 Abordagem aos desafios sociais dos veículos autónomos segundo o relatório da

ERTRAC . . . 6

1.2 Fluxo de um sistema de deteção de obstáculos por visão estéreo . . . 6

2.1 Modelo Pinhole de uma câmara . . . 13

2.2 Visão estéreo do ser humano . . . 14

2.3 Projeção do ponto do espaço . . . 15

2.4 Geometria epipolar . . . 15

2.5 Interseção do epipólos com o ponto X 3D da cena . . . 16

2.6 Geometria convergente da câmara . . . 16

2.7 Imagens capturadas por visão estéreo não retificadas . . . 17

2.8 Imagens retificadas com a correspondência do ponto marcado . . . 18

2.9 Geometria da projeção da visão estéreo . . . 18

2.10 Calibração 2D através de um padrão chessboard . . . 19

2.11 Correspondência por características hierarquicamente . . . 23

2.12 Imagens disparidade-espaço para programação dinâmica e cálculo dos caminhos mínimos . . . 24

2.13 Sistema do carro autónomo - algoritmo Scene Flow Segmentation . . . 28

2.14 NVIDIA Jetson TK1 . . . 31

2.15 Nvidia Jetson TX1 . . . 31

2.16 Waymo - Carro autónomo da Google . . . 33

2.17 Câmaras frontais do carro da Tesla . . . 34

2.18 Sistema da Tesla . . . 35

2.19 Câmaras traseiras laterais . . . 35

2.20 Câmaras laterais frontais . . . 36

2.21 Câmara traseira . . . 36

3.1 Correspondência estéreo por blocos . . . 40

3.2 Métrica SAD com diferentes janelas . . . 41

3.3 Correspondência estéreo semi-global . . . 42

3.4 Agregação de custos com variação de P1e P2constante . . . 44

3.5 Agregação de custos com variação de P2e P1constante . . . 45

(14)

3.6 Suavização da imagem através do operador de mínimos quadrados pesados,

al-terando o parâmetro λ . . . 46

3.7 Suavização de cantos da imagem através da alteração do parâmetro σ . . . 46

3.8 Análise de disparidades: a) Mapa de disparidades de janela 6x6 b) Histograma de disparidades vertical c) Histograma de disparidades horizontal . . . 48

3.9 Deteção de retas pela Transformada de Hough . . . 50

3.10 Exemplo de deteção de linhas por transformada de Hough . . . 50

4.1 Linha de trabalho para de criação do código . . . 51

4.2 Configuração das câmaras no carro para a aquisição de imagens . . . 52

4.3 Conversão do espaço de cores . . . 53

4.4 Imagem capturada e ground truth correspondente . . . 54

4.5 Imagem capturada da câmara esquerda e o mapa de disparidade correspondente, com um bloco de referência 5x5 . . . 56

4.6 Aumento da largura da linha epipolar . . . 57

4.7 Diferenças de contrastes e luminosidades . . . 58

4.8 Fragilidades do método semi-global - imagem capturada pela câmara da es-querda (a cores) e mapa de disparidades correspondente . . . 59

4.9 Segmentação do histograma de disparidades horizontal . . . 60

4.10 Segmentação do histograma de disparidades vertical . . . 60

4.11 Comparação entre correspondência por blocos e semi-global para a deteção do plano da estrada . . . 61

4.12 Mapa de disparidades e histogramas vertical e horizontal correspondentes . . . 62

4.13 Deteção de obstáculos através do histograma vertical . . . 62

4.14 Deteção de obstáculos através do histograma vertical e remoção de linhas inválidas 63 4.15 Comparação entre correspondência por blocos e semi-global para a deteção de obstáculos . . . 64

4.16 Mapas de disparidades e respetivos histogramas verticais . . . 65

4.17 Histograma horizontal e remoção das linhas inválidas . . . 66

4.18 Mapas de disparidades e respetivos histogramas horizontais . . . 67

4.19 Comparação de histogramas para os dois métodos de correspondência . . . 68

4.20 Comparação de métodos de correspondência em valores absolutos - Semi-global VS por blocos . . . 69

4.21 Total do CPU utilizado para cada método de correspondência. . . 70

4.22 Peso computacional das tarefas de filtragem para os dois métodos de correspon-dência . . . 71

4.23 Peso computacional das tarefas de correspondência para os dois métodos . . . . 72

4.24 Evolução temporal da percentagem de uso do CPU . . . 73

4.25 Evolução temporal da percentagem de uso do CPU, com redimensionamento do par de imagens para metade . . . 73

4.26 Influência do redimensionamento no cálculo do mapa de disparidades . . . 75

A.1 Fluxo de etapas para a geração do mapa de disparidades . . . 83

(15)

LISTA DE FIGURAS xiii

A.3 Fluxo de etapas para a deteção de obstáculos a partir do mapa de disparidades . 85 A.4 Operações de segmentação . . . 86 B.1 Mapas de disparidades resultantes para diferentes blocos de referência . . . 90 B.2 Mapas de disparidades resultantes para diferentes larguras de linha epipolar . . 91 B.3 Mapas de disparidades resultantes para diferentes larguras de linha epipolar . . 92

(16)
(17)

Lista de Tabelas

2.1 Capacidades dos sistemas por nível e quem atua . . . 10

2.2 Níveis de automação para veículos rodoviários . . . 11

2.3 Métodos locais e globais de correspondência estéreo . . . 21

2.4 Métricas de correspondência . . . 25

2.5 Características da família de placas da Texas Instruments TDA3x e TDA2x . . . 31

2.6 Produtos NVIDIA . . . 31

2.7 Especificações dos produtos NVIDIA placa de desenvolvimento NVIDIA Jetson TX1e o SoC NVIDIA Jetson TK1 . . . 32

4.1 Variação do erro de mínimos quadrados e de píxels errados através da variação dos parâmetros λ e σ da filtragem . . . 56

4.2 Variação de λ . . . 56

4.3 Variação de σ . . . 56

4.4 Deteção da estrada através de correspondência por blocos . . . 61

4.5 Deteção da estrada através de correspondência semi-global . . . 61

4.6 Tempos de execução do programa de deteção de linhas do histograma . . . 70

4.7 Tempo de execução dos métodos de correspondência para diferentes redimensi-onamentos (em segundos) . . . 74

B.1 Erro de mínimos quadrados e percentagem de píxels mal correspondidos, com bloco de referência 5x5 . . . 87

B.2 Erro de mínimos quadrados e percentagem de píxels mal correspondidos, com bloco de referência 9x9 . . . 88

B.3 Erro de mínimos quadrados e percentagem de píxels mal correspondidos, com bloco de referência 11x11 . . . 88

B.4 Média do erro de mínimos quadrados e de percentagem de píxels mal corres-pondidos . . . 89

B.5 Erro de mínimos quadrados e percentagem de píxels mal correspondidos, com bloco de referência 55x55 . . . 89

B.6 Erro de mínimos quadrados e percentagem de píxels mal correspondidos, com bloco de referência 75x75 . . . 89

(18)
(19)

Abreviaturas e Símbolos

ARM Advanced RISC Machine

BM Block Matching CPU Central Processing Unit

CUDA Compute Unified Device Architecture DSP Digital Signal Processor

ERTRAC European Road Transport Research Advisory Council EVE Embedded Vision Engine

FPGA Field-programable Gate Array GPS Global Positionig System GPU Graphics Processing Unit LIDAR Light Detection and Ranging MSE Mean Squared Error

NCC Normalized Cross Correlation OBD On-Board Diagnostic

OpenCV Open Source Computer Vision Library RADAR Radio Detection And Ranging

RAM Random Access Memory

RISC Reduced Instruction Set Computer SAD Sum of Absolute Differences SAE Society of Automotive Engineers SGM Semi-global Matching

SoC System-on-Chip

SSD Sum of Squared Differences TI Texas Intruments

WCET Worst-case Execution Time

(20)
(21)

Capítulo 1

Introdução

1.1

Contexto

Nos tempos que correm, os grandes fabricantes automóveis e outras grandes empresas como a Google estão a trabalhar no sentido de colocar em circulação veículos autónomos [1] nas ruas de todo o mundo. Para isto, o veículo autónomo tem de ter a capacidade para se deslocar tendo em conta os utilizadores da rodovia e respeitando as regras de circulação. Para além disso, é necessário ter em atenção o aparecimento inesperado de obstáculos, peões, alterações de contexto e/ou condições de aderência ao piso.

Neste contexto introdutório, um automóvel é entendido como um sistema crítico, para o qual é necessário desenvolver algoritmos e sensores capazes de, em tempo real, desenvolver um con-junto de ações que permitam a condução autónoma. Por outras palavras, o veículo tem de ser capaz de estar ciente do ambiente que o rodeia em tempo real e ser capaz de atuar/reagir dentro de um espaço de tempo muito reduzido.

Este território de perceção por parte de um veículo em ambiente real é um desafio sem uma solução definida. O relatório executado sobre o novo paradigma dos carros autónomos [2] define que um veículo autónomo tem de ser capaz de se deslocar entre dois pontos, sem qualquer tipo de intervenção manual por parte do utilizador. Através de uma combinação de sensores e sistemas de localização, aliados à visão computacional e a inteligência artificial os veículos têm de ser capazes de encontrar o melhor caminho, sendo este o mais rápido, mais seguro e é mais eficiente ao nível energético. Isto só é possível se houver uma noção clara do ambiente envolvente, de modo a que o veículo atue em conformidade com o mesmo.

1. Vantagens

(22)

A possível massificação dos carros autónomos e introdução dos mesmos no quotidiano mundial podem trazer algumas vantagens. Essas vantagens prendem-se no facto da tarefa de condução rotineira, sujeita ao desgaste e às variantes comportamentais do condutor, seja substituída por um conjunto de sensores e sistemas inteligentes, que atuam em con-junto no veículo, independentes de input manual. Isto resulta em menos erros cometidos, em comparação com condutores humanos. Algumas das possíveis vantagens já foram estudadas e descritas [2] e são apresentadas nesta secção.

(a) Diminuição das vítimas mortais em acidentes rodoviários

Os acidentes rodoviários são causados, em norma, por erros dos condutores. Por outras palavras, desconhecimento das estradas, falha no cumprimentos das regras da estrada, distrações ou fadiga tendem a ser as grandes causas dos acidentes. No entanto, através de veículos autónomos, estes acidentes tendem a diminuir devido à aplicação das leis rodoviárias e da interpretação do ambiente que rodeia o veículo a nível computacional. Pensa-se que esta alteração, baseando a condução nos recursos computacionais do veículo, irá permitir que a falha humana não seja a causa dos acidentes.

(b) Aumento da eficiência energética

Este tipo de veículos têm a capacidade de calcular os melhores trajetos e prever certas condições das trajetórias rodoviárias. Consequentemente, há a diminuição do consumo de combustíveis tendo em conta que o veículo move-se na estrada de uma forma mais eficiente.

(c) Mudanças ao nível do tráfego rodoviário

Com a capacidade de antecipar as condições do trânsito, os veículos serão capazes de recalcular as suas rotas, tendo um impacto significativo no tráfego.

(d) Aplicações Militares

A indústria militar, ao longo da história mundial, tem sido inovadora no que diz respeito à criação de novas tecnologias. Os veículos autónomos têm nesta indústria um grande conjunto de aplicações. Pode-se inserir neste conjunto os drones, em missões de reconhecimento e vigia, ou veículos autónomos terrestres, em missões de resgate, em que o acesso é humanamente impossível ou demasiado perigoso. 2. Desvantagens

Apesar das melhorias significativas que um veículo autónomo poderá trazer à qualidade de vida da população em geral, muitas questões ainda são levantadas, pondo em causa a sua aceitação. No geral à relutância no que diz respeito ao não controlo do veículo ou,

(23)

1.1 Contexto 3

por outro lado, à partilha das ruas e estradas com veículos completamente autónomos. Os obstáculos para o enraizamento mais profundo desta tecnologia vão ainda mais além da questão da aceitação.

(a) Tecnologia

Existem alguns obstáculos no que diz respeito às tecnologias usadas nos veículos autónomos, não apenas ao nível da sua implementação, mas também ao nível da interação que o utilizador irá ter dentro do veículo com essas mesmas tecnologias. Por isso, um dos grandes desafios é ter tecnologias preparadas para a natureza volá-til do sistema rodoviário. O contexto da cena altera-se em tempo real, o que obriga as tecnologias estarem preparadas para todas as situações, nevoeiro, chuva ou neve, por exemplo. Também devem ser referidas situações de emergência em que o hu-mano, no interior do veículo, deverá intervir. Essa intervenção e interação com as tecnologias ainda não está definida.

(b) Custo

O problema do custo deve-se à utilização, do que são neste momento, tecnologias de ponta: tecnologias que foram desenvolvidas recentemente, que tornará o veículo autónomo um produto de alto custo.

(c) Legislação

No que toca a veículos autónomos, a legislação sob a qual devem ser regulados terá ainda de ser definida. Ao nível da condução, um carro autónomo circulará entre dois pontos sem condutor, o que leva à dificuldade de atribuir responsabilidades em caso de acidente e, consequentemente, dificuldades na aplicação das regras dos seguros. Para além disso, o veículo, como já foi referido, vai ser um grande gerador de in-formação, que na sua maioria vai ser relativa ao indivíduo que se deslocará através do veículo autónomo. Nesta medida, terá que haver medidas de proteção de dados, como por exemplo o histórico de rotas percorridas. Por outras palavras, terão quer ser tomadas providências de forma a assegurar a privacidade de quem vai no interior do veículo, supondo que o utilizador não poderá controlar os dados gerados.

Os veículos autónomos poderão ter a capacidade de revolucionar não só a indústria automó-vel, mas a indústria dos transportes em geral. As melhorias na qualidade de vida das populações poderão ser significativas, quando o veículo autónomo for um produto massificado e em que as normas que os regem estejam bem clarificadas. No entanto, nos tempos que correm, os veícu-los autónomos ainda têm que encarar alguns obstácuveícu-los tecnológicos, bem como um vazio de legislação.

(24)

Gestão de Big data

O tema dos veículos autónomos traz em si englobado a questão da big data. O funciona-mento do veículo baseia-se na interligação de sensores que simultaneamente e em tempo real, recolhem e gerem informação para ser processada. Isto designa-se de sensor fusion e é daí que provém a grande geração de dados. Por outras palavras, o veículo autónomo gera uma grande quantidade de dados provenientes de diversas fontes [3]: localização GPS, todo o tipo de sen-sores (LIDAR e/ou RADAR, por exemplo) e câmaras. Por isso, o veículo processa milhares de gigabytesde informação por dia [4], de forma a gerar mapas, atuar no movimento do veículo e comunicar com os ocupantes do mesmo. Em último caso, também na comunicação com outros veículos, de forma a tomar a decisão mais adequada [5].

Os dados pertinentes deverão ser recolhidos e processados devidamente para gerar infor-mação útil para o veículo, ou seja, inforinfor-mação que permita ao veículo funcionar devidamente. Neste grupo de dados encontram-se, por um lado, por exemplo, os dados provenientes da ligação OBD, como velocidade do veículo, direção ou problemas mecânicos e, por outro, informações provenientes de câmaras e sensores como o LIDAR e o RADAR. Assim, pode-se assumir que, processando esta informação, o veículo consegue-se localizar, detetar obstáculos e atuar na sua trajetória [3].

No entanto, pode-se enumerar duas possíveis consequências desta grande quantidade de informação. Uma delas é o armazenamento: é essencial o veículo decidir que dados são neces-sários, de forma a armazena-los e processa-los e os que não são importantes. É neste âmbito que poderá entrar o conceito de cloud. Deste modo, e através da ligação à Internet, o veículo poderá armazenar grande parte da informação não necessária em servidores, ou seja online, fora do veículo, podendo então reduzir substancialmente a sua necessidade de armazenamento. Con-sequentemente, com esta disponibilização dos dados online, traz o segundo problema, que é a invasão da privacidade. A informação na dita cloud, permite que seja recolhida facilmente, sem ter em conta a segurança devida, como encriptação de dados [3].

1.2

Motivação

A visão computacional é uma das capacidades essenciais no que diz respeito aos sistema de Inteligência Artificial e é usado na aquisição de informações específicas de ambientes, seja através de vídeo ou de imagens estáticas. Sistemas de visão são usados em diversas áreas como robótica, sensorização, realidade virtual e/ou automação industrial.

Tendo em conta que veículos de condução autónoma ainda estão em processo de desen-volvimento, as construtoras automóveis desenvolvem essencialmente sistemas para integrar os

(25)

1.2 Motivação 5

seus modelos topo de gama, que auxiliam o condutor, transmitindo-lhe informações vitais para a condução. Neste aspeto, enquadram-se sistemas como a deteção de obstáculos ou a deteção de sinais de trânsito, por exemplo [6].

De notar que a área da visão é objeto de grande estudo, visto que é muito complexa, prin-cipalmente no que diz respeito ao poder computacional necessário para o processamento em tempo real.

Outro aspeto que deve ser tido em conta é o papel social que estes sistemas podem vir a ter. Como foi referido na secção 1.1, veículos autónomos trazem diversas vantagens nesse âmbito. Exemplo são a diminuição do uso de combustíveis fósseis e a segurança rodoviária. Outros aspetos importantes estão relacionados com a constante modernização das cidades (smart cities) [7] e o consequente fluxo de informação e de dados relativos aos veículos, aos condutores e autoridades responsáveis. Através destes tipos de sistemas é possível chegar a uma nova era no que diz respeito aos transportes, quer individuais, quer coletivos. Um senão, no que toca a tudo isto, são os entraves legais e políticos ainda existentes, bem como as zonas e cidades onde poderão ser testados veículos autónomos.

Analisando numa perspetiva mais económica, a Europa tem a indústria automóvel que mais investe na investigação e desenvolvimento no setor segundo o relatório da ERTRAC [7]. Este relatório também prevê que em 2030, haja um grande investimento (cerca de 71 milhões de euros) na indústria dos veículos autónomos. Este investimento tem a capacidade de traduzir-se em novos empregos em toda a cadeia de valor da indústria automóvel e, como já referido na Secção 1.1, melhorias à eficiência e produtividade, já que vão haver melhores sistemas de transporte e menos perdas de tempo em trânsito.

Tudo isto deverá resultar num aumento da competitividade económica e da qualidade de vida das sociedades. Na Figura 1.1, presente no relatório da ERTRAC [7], pode-se verificar a transversalidade das áreas de investigação e de intervenção, no que diz respeito ao progresso dos veículos autónomos, e o consequente impacto nas sociedades.

(26)

Figura 1.1: Abordagem aos desafios sociais dos veículos autónomos segundo o relatório da ERTRAC [7]

1.3

Objetivos

Este trabalho de dissertação pretende-se desenvolver um sistema de de deteção de obstáculos para um veículo elétrico a partir de um sistema de visão estéreo. O objetivo central é o de identificar e estimar a distância de obstáculos estáticos ou móveis através de um sistema de visão estéreo.

Neste sentido, foram estudados e implementados algoritmos de visão que permitem extra-polar a localização dos obstáculos em relação ao sistema. Este terá como aplicação sistemas autónomos com capacidade de evitar colisões. Na Figura 1.2 situa-se o projeto de dissertação, no fluxo global de um sistema mais complexo.

(27)

1.4 Estrutura do documento 7

O trabalho de dissertação enquadra-se no processamento de imagens de câmaras estéreos adquiridas, gerando um mapa de disparidades capaz traduzir de forma realista o ambiente, per-mitindo, posteriormente, a deteção dos obstáculos propriamente ditos. Nesta medida, podem ser definidas duas fases principais de trabalho: o cálculo de disparidades e a deteção de obstáculos.

1.4

Estrutura do documento

O presente documento descreve o trabalho realizado e os resultados obtidos ao longo do projeto de dissertação. É composto por cinco capítulos de forma a contextualizar o problema em mãos, realizar um levantamento do estado da arte, descrever a solução implementada, apresentar os resultados obtidos e as conclusões alcançadas.

No presente capítulo, apresenta-se o contexto do problema, no que diz respeito à integra-ção dos veículos autónomos no mundo atual. Para além disso, é apresentada a motivaintegra-ção e os objetivos para a dissertação.

No segundo capítulo, é feita uma revisão bibliográfica em termos das bases teóricas e mate-máticas do tema em causa, bem como algumas possíveis implementações.

No terceiro capítulo, realiza-se uma descrição teórica e matemática da solução proposta para a resolução do problema em causa.

No quarto capítulo são apresentados os resultados obtidos, bem como uma análise dos mes-mos.

No quinto e último capítulo, são apresentadas as conclusões alcançadas, incluindo ainda algumas propostas de trabalho futuro.

(28)
(29)

Capítulo 2

Estado da Arte

Neste capítulo pretende-se mostrar a base do processamento da visão estéreo, juntamente com alguns dos fundamentos matemáticos e teóricos, bem como alguns modos de implementa-ção dos mesmos. Para além disso, alguns dos usos deste tipo de sistema de visão são também descritos, no que diz respeito à sua aplicação e uso em veículos específicos de certas marcas. Dessa forma, procura-se estabelecer um conjunto de requisitos que permitam caracterizar o pro-blema a estudar em dissertação e perspetivar os trabalhos a desenvolver para a sua realização.

2.1

Introdução

Os veículos que circulam nas estradas mundiais atualmente não são todos iguais no que toca à automação do veículo. Segundo o estudo da ERTRAC [7] pode-se distinguir vários níveis de automação, que dizem respeito à interferência do condutor na condução e na monitorização do ambiente. Alguns dos sistemas já fazem parte do mercado automóvel e são base para o de-senvolvimento de sistemas avançados de condução que, no futuro, deverão chegar à automação completa.

No âmbito dos sistemas autónomos de auxílio à condução encontra-se uma funcionalidade que é a deteção de obstáculos. A deteção de obstáculos é um dos principais sistemas que com-põem um veículo autónomo, já que ter uma perceção correta do ambiente dinâmico que rodeia o veículo, detetando qualquer obstáculo, é algo core para ter um sistema fidedigno. Nos últi-mos anos, o estudo desta área tem aumentado, tendo havido progressos no que diz respeito aos algoritmos utilizados. Um algoritmo pode ser considerado fidedigno e preciso se der origem a uma saída em tempo real, a uma tesselação do espaço estável e confiável, estimando o estado do objeto detetado de forma robusta, independente das condições de luz e metereológicas. É neste âmbito que a visão estéreo é englobada, ou seja, é um processo capaz de detetar obstáculos,

(30)

pesando, embora, alguns problemas ao nível do processamento de imagem, como refere [8]. O conceito de tesselação será abordado neste capítulo.

Por isso, para que um sistema deste tipo seja viável, é necessário ter em conta as câmaras usadas e os seus modelos respetivos, os processos geométricos de processamento de imagem implementados e os algoritmos de mapeamento do ambiente que as câmaras captam.

2.2

Automação e níveis de automação dos veículos

Segundo a norma internacional SAE J3016, que é a base do relatório da ERTRAC [7], fornece uma taxonomia comum e definições para condução autónoma de veículos, com o intuito de simplificar a comunicação, no que toca ao enquadramento nos âmbitos técnicos e políticos.

Pode-se diferenciar seis níveis de de condução autónoma, onde a grande fronteira se encontra na transição entre os níveis 2 e 3. No nível 2 o condutor humano tem um papel determinante na tarefa de condução do veículo, enquanto que no nível 3, um sistema autónomo de condução executa totalmente a tarefa de condução do veículo, pedindo ao condutor que intervenha em situação de emergência ou anomalia, como ser verificado na Tabela 2.2.

Os níveis da Tabela 2.2, publicada na norma [9] e no relatório [7] têm um papel descritivo das funcionalidades esperadas e não de normalização, nem técnico ou legal. O grande objetivo destes níveis é a divisão do "mercado"e a introdução dos produtos/sistemas no mesmo.

Na Tabela 2.1, estão descritas as capacidades mínimas dos sistemas de cada nível. Cada veículo pode ter diferentes características de condução autónoma e a níveis diferentes.

Tabela 2.1: Capacidades dos sistemas por nível e quem atua [9]

Nível Atuar na direção e aceleração

Monitorização do ambiente

Intervenção na tarefa dinâmica de condução

Capacidade do sistema (modos de condução)

0 Condutor humano Condutor humano Condutor humano Nenhuma

1 Condutor humano

e sistema Condutor humano Condutor humano

Alguns modos de condução

2 Sistema Condutor humano Condutor humano Alguns modos

de condução

3 Sistema Sistema Condutor humano Alguns modos

de condução

4 Sistema Sistema Sistema Alguns modos

de condução

5 Sistema Sistema Sistema Todos os modos

(31)

2.2 Automação e níveis de automação dos veículos 11

Tabela 2.2: Níveis de automação para veículos rodoviários segundo [9]

Nível Nome Definição

O condutor humano monitoriza o ambiente de condução 0 Sem automação

O condutor tem controlo a tempo inteiro da tarefa da condução, apesar do sistema dar avisos

1 Assistência na condução

Tarefas como direcionar o veículo ou acelerar são executadas por um assistente de condução, enquanto o condutor realiza o resto das tarefas inerentes à condução

2 Automação parcial

As duas tarefas de direcionar e acelerar o veículo são feitas por assistentes de condução,

enquanto que o condutor realiza as restantes tarefas inerentes à condução

Um sistema autónomo monitoriza o ambiente e atua no veículo 3 Automação condicional

Um sistema autónomo controla toda a dinâmica da condução e espera que o condutor intervenha no caso de lhe ser pedido.

4 Nível de automação elevado

Um sistema autónomo controla toda a dinâmica

da condução independentemente do condutor responder de forma apropriada quando lhe é pedido pelo sistema 5 Automação completa

Um sistema autónomo controla toda a dinâmica de condução, em qualquer tipo de via e sob quaisquer condições ambientais.

Para além de definir os níveis de automação dos veículos, é importante enquadrar alguns conceitos, de forma a garantir uma melhor compreensão do que cada nível atinge, segundo a SAE [9]:

1. Sistema refere-se ao sistema de assistência ao condutor, combinação de sistemas ou siste-mas autónomos de condução. Daqui estão excluídos avisos e sistesiste-mas com intervenções momentâneas, ou seja, sistemas em que o condutor ainda tem um papel no que diz respeito a essas intervenções.

2. Tarefa de condução inclui aspetos operacionais e de planeamento da condução. Os as-petos operacionais envolvem atuar na direção, travar, acelerar e monitorizar o veículo e a estrada, enquanto que os táticos referem-se à determinação de situações como mudar de faixa, usar sinais e responder a eventos exteriores e interiores.

(32)

3. Modo de condução é o estabelecimento de um cenário de condução com requisitos carac-terísticos da tarefa de condução em função do planeamento, tal como entradas em auto-estradas, condução a alta velocidade, condução em tráfego congestionado e/ou condução nas proximidades de uma zona escolar.

4. Pedido de intervenção refere-se a uma notificação dada pelo sistema de condução auto-matizado a um condutor humano, para que ele inicie ou recomece a tarefa de condução.

2.3

Imagem e câmara

A formação da imagem ocorre quando um sensor regista a radiação que interage com um objeto físico [10]. Uma imagem é criada pela projeção de uma imagem tridimensional num plano bidimensional [11][12]. De uma forma geral para modelar esta transformação, um centro de projeção é usado, de forma a que o ponto no espaço tridimensional seja ligado a um ponto fixo. Este modelo é designado por modelo de câmara pinhole.

Modelo Pinhole

O Modelo Pinhole é um modelo ideal que assume a lente de uma câmara como muito fina, enquanto a sua abertura tende para zero [13]. Por outras palavras, a abertura da câmara é mo-delada por um ponto infinitesimal, em que a lente não existe. Por isso, as distorções que são introduzidas pela lente não são tidas em conta no modelo. Em conclusão, a validação do modelo em causa vai ser apenas dependente da qualidade da câmara em questão.

De uma forma geral, é necessário ter em conta que um ponto e um plano, irão corresponder ao centro da câmara e ao plano da imagem. Assim é possível mapear objetos tridimensionais, fazendo a interceção do plano da imagem e a reta que liga o centro da câmara e o objeto em causa (Figura 2.1) [14].

Por isso, segundo [15] o centro de projeção é apenas o mapeamento do espaço 3D em 2D usando a câmara, a imagem e as coordenadas do ambiente (X ,Y, Z). Os pontos da imagem (x, y) podem ser representados através da matriz de projeção seguinte:

   x y f   =    1 0 0 0 0 1 0 0 0 0 1 0          X Y Z 1       (2.1)

(33)

2.4 Visão estéreo 13

Figura 2.1: Modelo Pinhole de uma câmara

com f sendo a distância de focagem. Estes pontos são então mapeados no plano coordenado da imagem através da multiplicação pela matriz seguinte:

K=    f s cx 0 a f cy 0 0 1    (2.2)

sendo cxe cyo centro da projeção em pixels, a a relação de aspeto (relação de tamanho entre

a largura e comprimento do pixel) e s a inclinação. Na maioria das aplicações, tomam-se os valores de a e s como 1 e 0, respetivamente.

Finalmente, é necessário uma projeção de modo a transformar as coordenadas do ambiente nas coordenadas da câmara. Essa transformação pode ser feita através da equação seguinte:

      Xc Yc Zc 1       = " R t 0 1 #       Xw Yw Zw 1       (2.3)

As matrizes R e t, da Equação 2.3 traduzem a matriz rotação e a matriz de transformação de um ponto da cena real, para o respetivo ponto no plano da câmara.

2.4

Visão estéreo

A estereoscopia é a ciência da perceção da profundidade usando os dois olhos. Tendo em conta que o ser humano tem uma visão binocular que é focada num certo ponto, os eixos óticos dos olhos convergem para esse ponto, formando um ângulo paralático φ , que se pode verificar

(34)

na Figura 2.2. Quanto mais perto tiver esse objeto, maior será o ângulo paralático. O cérebro aprendeu a associar distância com a ângulo φ correspondente dando a quem observa, uma im-pressão visual e mental que o objeto está próximo ou não. Estes são os conceitos básicos da perceção de profundidade.

Figura 2.2: Visão estéreo do ser humano

Por isso, este sistema de visão pode ser reproduzido com duas câmaras, que vão funcionar em substituição dos olhos.

Construção da imagem

O número de câmaras (duas ou mais), em conjunto com as suas posições e orientações, ou seja a geometria da imagem, são, segundo [16], essenciais para determinar a disparidade da correspondências entre imagens.

A disparidade, segundo [17], corresponde à diferença entre os dois pontos. Por outra pala-vras, um ponto do espaço é projetado em duas localizações diferentes, mas numa mesma linha horizontal da imagem de cada câmara. Como se pode verificar na Figura seguinte 2.3, a dispari-dade vai corresponder à diferença entre x e x0.

Em [15] são referidas duas técnicas relativas à construção da imagem propriamente dita que devem ser tidas em conta, a geometria epipolar e a retificação de imagem.

Para [16] pode-se distinguir dois tipos de geometria de imagem, tendo por base a geometria epipolar. Uma delas é designada de geometria convergente, enquanto que a segunda é designada de geometria de eixos paralelos.

(35)

2.4 Visão estéreo 15

Figura 2.3: Projeção do ponto do espaço

Geometria epipolar

Como primeira análise, é necessário ter o conceito de geometria epipolar presente. Segundo [18] esta geometria representa a geometria intrínseca da projeção entre duas visões, indepen-dente da cena e depenindepen-dente dos parâmetros internos da câmara, da sua posição e orientação.

A geometria epipolar entre duas visões é essencialmente a geometria da interseção dos pla-nos da imagem com os plapla-nos que contêm a linha que une os centros das câmaras (nível das câmaras - Figura 2.4), sendo que esta linha funciona como eixo dos planos.

Figura 2.4: Geometria epipolar segundo [18]

O plano epipolar é determinado pelo plano do nível da câmara e interseta o plano da imagem nos pontos e, os epipólos. Tendo em conta que o ponto X 3D varia, o plano epipolar roda segundo o eixo do nível das câmaras. Este ponto X é unido através da linha l e l0com os epipólos e e e0 (Figura 2.5).

(36)

Figura 2.5: Interseção do epipólos com o ponto X 3D da cena segundo [18]

Geometria convergente

Neste caso, é tido em conta um ponto fixo, para onde as câmaras estão orientadas, de forma a que os seus eixos óticos, ou seja, a linha de captura das câmaras, convirjam para esse ponto, designado de ponto de fixação. A disparidade do ponto em causa depende da sua localização em relação ao ponto de fixação. A variação do sinal da disparidade pode ser analisada na Figura 2.6, em que os pontos

1. Disparidade positiva 2. Ponto de fixação 3. Disparidade negativa

Figura 2.6: Geometria convergente da câmara

As câmaras estão direcionadas para um ponto que poderá ser no infinito ou no cruzamento das direções óticas das câmaras, que é o ponto de fixação (ponto 2 da Figura 2.6). Este ponto serve de referência para analisar o sinal da disparidade, ou seja, a disparidade é positiva (ponto 1 da Figura 2.6) se o plano correspondente ao ponto em análise estiver mais longe que o ponto de fixação. Caso contrário, se o ponto em análise estiver mais perto das câmaras que o ponto de fixação, então a disparidade é negativa (ponto 3 da Figura 2.6).

(37)

2.4 Visão estéreo 17

Geometria de eixos paralelos

Neste tipo de geometria, o ponto de fixação encontra-se no infinito, sendo que a dispari-dade dos pontos têm sempre os mesmo sinal. Nesta medida, a procura de correspondência de disparidades é restrita a um lado apenas, em comparação à geometria descrita em 2.4.

Geometria convencional

Neste sistema, as câmaras têm os eixos respetivos paralelos. Para além disso, esses eixos são perpendiculares à linha que liga os centros dos eixos e o plano da imagem é paralelo. Reconstrução da imagem

Segundo [15], de forma a simplificar o processo de cálculos geométricos e a sua computação seria conveniente ter um processo de retificação da imagem. Nesta retificação, é executada uma transformação dos pontos geométricos para um dos planos da imagem (Figura 2.7). Por outras palavras, os pontos geométricos , como por exemplo, as linhas epipolares da Figura 2.4, sofrem uma transformação de forma a ficarem paralelos e colineares a um dos planos da imagem. Este processo traduz-se numa simplificação da computação porque as correspondências estéreo são feitas a uma dimensão, reduzindo a correspondência de disparidades a uma busca horizontal nas imagens retificadas (Figura 2.8).

De outra forma, segundo [17], a reconstrução é um problema que consiste na determinação de uma estrutura a três dimensões, através de um mapa de disparidades e conhecendo a geometria da câmara.

Figura 2.7: Imagens capturadas por visão estéreo não retificadas

Triangulação

De forma a resolver o problema da retificação/reconstrução da imagem, que pode ser de-finido pela Figura 2.3, pode ser usada a triangulação. Esta nada mais é do que o cálculo do

(38)

Figura 2.8: Imagens retificadas com a correspondência do ponto marcado

ponto no plano das câmaras, através da disparidade calculada e da posição da câmara, usando a semelhança de triângulos. O cálculo é executado através da Equação 2.4.

Nas Figuras 2.3 e 2.9, a profundidade do ponto do espaço P, capturada por duas câmaras com centros óticos OLe OR, é definida pela interceção entre os raios com origem nos centro

óticos e as imagens respetivas. Definindo a distância entre os centros como T e a distância de focagem f , a profundidade pode ser então calculada através da semelhança de triângulos.

Z = fT

d (2.4)

Onde d é a disparidade x − x0, convertida para unidade métricas.

Deste modo, o ponto Z = P(x, y, z) pode ser traduzido da seguinte maneira:

P(x, y, z) = (xpT d , ypT d , f T d ) T (2.5) Na equação 2.5, o ponto p = (xpl, ypl) corresponde à projeção do ponto do espaço no frame

da esquerda.

Figura 2.9: Geometria da projeção da visão estéreo

2.4.1 Calibração da câmara

A calibração da câmara é algo essencial e necessário no que diz respeito à visão estéreo. Só com a realização deste processo é possível ter medidas precisas e aplicações fidedignas no âmbito do reconhecimento e deteção de objetos e movimento. Nesta medida, a área da calibração na estereoscopia tem sido objeto de estudo profundo.

(39)

2.4 Visão estéreo 19

É nesta fase que são determinadas as geometrias internas e externas da câmara. Considera-se que a geometria interna será as propriedades intrínsecas da câmara como o alcance da focagem, a distorção da lente ou o centro ótico, enquanto que a geometria externa será as propriedades extrínsecas da câmara como posições relativas e orientação de cada câmara. As técnicas usadas podem ser divididas em dois tipos [19]: auto calibração e calibração baseada em objetos.

Auto calibração

Na auto calibração, uma câmara move-se pela cena em questão que é desconhecida. A câ-mara é então calibrada através da diferença entre pontos ou linhas detetadas pelas duas imagens estéreo. Com estas medidas, é possível calcular os parâmetros respetivos da câmara e as suas constantes.

Calibração baseada em objetos

Neste processo, uma câmara observa um objeto com qualquer geometria e com dimensões conhecidas. Estas dimensões são comparadas com as que a câmara captou, retirando daí os parâmetros de calibração. São necessários, normalmente, dois ou três planos ortogonais entre si ou, então, um plano com uma translação conhecida [20]. Este tipo de calibração é bastante eficaz, mas pode ser caro e consumindo bastante tempo, já que requer a preparação prévia do ambiente em causa.

Figura 2.10: Calibração 2D através de um padrão chessboard [21]

A calibração 2D é feita, por exemplo, através de um plano padrão conhecido (padrão ches-sboard da Figura 2.10), movendo-o para diferentes posições. As medidas obtidas são usadas para calcular os parâmetros da câmara através da homografia (semelhança) entre os pontos da imagem e os pontos conhecidos do padrão.

(40)

2.5

Correspondência estéreo

As disparidades estéreos podem ser determinadas por diversos métodos, em que todos eles tentam fazer a correspondência entre dois píxels em imagens diferentes [17].

Pode-se definir dois tipos de restrições: restrições locais, que englobam o píxel e a sua vi-zinhança (número reduzido de píxels) e restrições globais, que se referem a restrições da linha horizontal de pesquisa ou à imagem completa. Os métodos locais, segundo [17], podem ser muito eficientes, mas sensíveis a regiões ambíguas na imagem como regiões obstruídas ou re-giões com uma textura uniforme. Por outro lado, os métodos globais podem ser menos sensíveis ao problemas referidos acima dos métodos locais. Estes métodos ajudam à correspondência local.

Segundo [15], normalmente, os algoritmos de correspondência estéreo são associados a ja-nelas de custo. Nesta perspetiva, a janela é centrada no píxel escolhido calculando um custo. Assim, é possível procurar, na outra imagem, qual o píxel que tem o custo associado mais pró-ximo.

Na Tabela 2.3, estão apresentados alguns dos métodos, locais e globais, referidos por [17]. No entanto, é conveniente fazer uma descrição mais elaborada dos métodos, no que diz respeito a alguns aspetos de implementação e às suas vantagens e desvantagens.

2.5.1 Métodos de correspondência locais Correspondência por blocos

Como já descrito na Tabela 2.3, este método procura comparar pequenas vizinhanças em torno de um ponto, através de restrições, que, por exemplo, podem ser geométricas. Para além disso, é importante salientar as três classes de métricas usadas para a correspondência por blocos.

1. Correlação

Nesta classe, pode-se referir o método de correlação cruzada normalizada NCC (Normali-zed Cross Correlation). Este é um método estatístico para a determinação da similaridade entre as imagens. É executada uma normalização da média e da variância, fazendo com que a haja uma desvantagem no que diz respeito a ganhos relativos às intensidades nas imagens capturadas.

2. Diferença de intensidades

Neste âmbito podem ser referidas dois métodos derivados da correlação, referida na alínea acima: a soma da diferença dos quadrados SSD (Sum of Squared Differences) e a soma absoluta das diferenças SAD (Sum of Absolute Differences), que permitem a eliminação

(41)

2.5 Correspondência estéreo 21

Tabela 2.3: Métodos locais e globais de correspondência estéreo

Abordagem Descrição

Métodos Locais

Correspondência por blocos

O método procura estimar a disparidade num ponto da imagem, comparando uma região reduzida em torno desse ponto, com uma série de outras regiões reduzidas extraídas da outra imagem. Otimização baseada

gradiente

Procura determinar disparidades locais entre duas imagens, relacionando o movimento e o brilho da imagem, através de uma equação diferencial. Correspondências de características Limita as regiões através de características

relativamente viáveis como arestas ou curvas, Métodos Globais

Programação Dinâmica

Uma função custo global é calculada, através de restrições, mais especificamente no que diz respeito a restrições na geometria epipolar. Deste modo é calculado o caminho de custo mínimo na imagem de disparidades.

Curvas intrínsecas

É usada uma representação diferente da

linha de pesquisa, designada de curvas intrínsecas. Este mapeamento é invariante à translação, ou seja, à disparidade, resultando,

num caso ideal, à procura da correspondência na mesma curva. Grafos Uma aplicação da programação dinâmica,

mas que calcula o máximo fluxo do caminho.

dos ganhos nas intensidades, já mencionados. Para além da eliminação dos ganhos, a menor complexidade computacional também é uma vantagem.

3. Métricas de ordenação

Aqui a vizinhança é ordenada em relação ao píxel central. Os resultados traduzem não uma ordenação de intensidades, mas sim uma ordenação de intensidades relativa. Como a magnitude dos valores é comprimida, este tipo de métodos alcança uma menor sensibili-dade a outliers.

Métodos baseados em gradiente

Este método tem o intuito de relacionar movimento e brilho como referido na Tabela 2.3. Esta relação está descrita através de uma equação diferencial e assume-se que o brilho da

(42)

ima-gem num dado ponto da cena é constante nas duas imagens. Assim a translação horizontal desse ponto, de uma imagem para uma outra, é traduzido pela seguinte equação diferencial:

(5xE)v + Et = 0, (2.6)

onde 5xEtraduz a componente horizontal do gradiente da imagem e Et a derivada da

com-ponente temporal, ou seja, a diferença de intensidades entre as imagens estéreos. Para além disso, v corresponde à translação entre as duas imagens.

Com isto apenas o gradiente na direção da translação pode ser calculado de uma forma precisa. Por isso, e assumindo que a disparidade varia suavemente numa janela pequena de píxels, essa mesma disparidade pode ser estimada através do cálculo dos mínimos quadrados, em cada píxel numa janela de n píxels:

v = (ATA)−1ATb (2.7) em que A =       5Ex(p1) 5Ex(p2) .. . 5Ex(pnxn)       e b =       Et(p1) Et(p2) .. . Et(pnxn)       (2.8)

Por outras palavras, procura-se minimizar as distâncias de correspondência, minimizando o gradiente numa dada direção de varrimento das imagens. Para isso, são calculados os mínimos quadrados na direção de varrimento v.

Correspondência de características (features) da imagem

Os métodos apresentados acima, segundo [17], são sensíveis a descontinuidades na pro-fundidade, já que a região usada para a correspondência, numa descontinuidade, pode conter pontos com diferentes profundidades. Para além disso, também são sensíveis a regiões de tex-tura uniforme em imagens. De forma a fazer face a estes problemas, a correspondência por características procura limitar as regiões através de características da cena, como arestas ou curvas, como já referido na Tabela 2.3. No entanto, existe também uma limitação neste método no que diz respeito aos pontos de densidade, para a estimação da profundidade.

Tendo este problema em conta, foram utilizadas dois tipos de abordagem: uma correspon-dência de características hierarquicamente e corresponcorrespon-dência por segmentação. Na primeira abordagem, são exploradas quatro tipo de características de forma hierárquica:

(43)

2.5 Correspondência estéreo 23

2. Arestas; 3. Vértices; 4. Linhas.

Deste modo, é possível numa primeira fase construir relações entre as características ex-traídas, nomeadamente arestas: relações estruturais (interligações) e perceptuais (paralelismos, colinearidade e proximidade). Estas características são armazenadas num grafo relacional. As-sim é possível comparar os dois grafos das duas imagens estéreos. Para haver correspondência entre superfícies tem de haver correspondência entre as arestas da imagem e, sucessivamente, entre as linhas.

(a) Superfícies hipotéticas (b) Grafo hierárquico

Figura 2.11: Correspondência por características hierarquicamente segundo [17] Na segunda abordagem, é necessário haver uma segmentação das imagens e de seguida fazer correspondência entre as regiões segmentadas. Para além deste método ser sensível a descontinuidades de profundidade, há grande probabilidade dos planos segmentados estarem inclinados e não de frente e paralelos ao plano da câmara. Por isso, as relações entre segmentos das duas imagens são modelados por transformações afim como

" x2 y2 # = A " x1 y1 # + d (2.9) onde A= " 1 + dxx dxy dyx 1 + dyy # e d= " dx dy # (2.10) em que (x1, y1) e (x2, y2) são as coordenadas dos pontos correspondentes às imagens da

esquerda e da direita, respetivamente. O vetor d define a translação do segmento entre frames e a matriz A a rotação e as transformações ao nível da escala. A segmentação e os parâmetros afim são calculados iterativamente.

(44)

2.5.2 Métodos de correspondência globais

Os autores da Tabela 2.3 realçam três métodos [17]. O primeiro é a programação dinâmica. Este método matemático tem como característica reduzir a complexidade computacional do pro-cesso de correspondência através da decomposição em subproblemas mais pequenos e simples. Nesta abordagem é aplicada uma função custo à imagem como um todo, dando então um custo a cada caminho de disparidades possível. Desta maneira, é possível calcular recursivamente o custo ótimo através dos custos parciais dos caminhos. Estes caminhos são calculados numa ima-gem disparidade-espaço. Existem duas formas de construir esta imaima-gem. A primeira é definir como eixos as linhas de pesquisa da imagem esquerda e da direita, em que o método calcula o custo mínimo entre o canto inferior esquerdo e o canto superior direito da imagem disparidade-espaço. Numa abordagem alternativa, tem-se que como eixos a linha de pesquisa da imagem da esquerda e a gama de disparidades. Com isto, o cálculo do custo mínimo é feito a partir da primeira coluna, até à última.

(a) Imagem disparidade-espaço com as linhas de pesquisa da direita e da esquerda nos eixos

(b) Imagem disparidade-espaço com a linha de pes-quisa da esquerda e a gama de disparidades

Figura 2.12: Imagens disparidade-espaço para programação dinâmica e cálculo dos caminhos mínimos

Um outro método descrito por [17] é o método das curvas intrínsecas que está referido e descrito na Tabela 2.3. Uma curva intrínseca é uma representação em vetor dos descritores de uma imagem definidos pela aplicação de operadores de arestas e/ou cantos às linhas de pesquisa da imagem. Pode-se então definir a curva intrínseca C como um conjunto de operadores de tamanho N, p1, p2, ..., pNno espaço ℜN

(45)

2.6 Mapeamento do ambiente e deteção de obstáculos 25

Um exemplo de uma curva intrínseca será um gráfico que terá como eixos as intensidades dos píxeis da linha de pesquisa e as suas respetivas derivadas. Este mapeamento é invariante à translação, ou seja, à disparidade. Este método resume-se então à comparação entre curvas intrínsecas das imagens. Por outro lado, a existência de ruído e as diferenças de perspetivas entre imagens, dificulta este tipo de correspondência.

As grandes limitações da programação dinâmica para a correspondência estéreo devem-se à sua incapacidade de ter em conta restrições horizontais e verticais. Para fazer face a essas limita-ções são utilizadas correspondências tendo em conta cortes dos grafos. Um grafo G = (V, E) é definido pelo número de vértices V e o números de arestas E. Os vértices vão ser escolhidos con-soante a seleção da representação do método de correspondência, como por exemplo, as imagens de disparidade-espaço referidas no início desta secção. Este tipo de representação é vantajosa no que toca a encontrar o máximo fluxo do grafo. Os eixos dos grafos irão corresponder aos eixos horizontal e vertical da imagem e à gama de disparidades.

Cada aresta tem uma capacidade de fluxo associada que é definida por uma função de custo, definida pelos vértices adjacentes. Um corte vai ser um limite imposto que separa o início do grafo do seu fim, criando dois subconjuntos. O corte da capacidade mínima, maximiza o fluxo no caminho do grafo.

Todos estes métodos podem ter como base certas métricas de correspondência, ou seja, al-goritmos estatísticos, aplicados à vizinhança do píxel, de forma a encontrar a melhor correspon-dência. Na Tabela 2.4 é possível analisar algumas da métricas referidas por [17].

Tabela 2.4: Métricas de correspondência Métrica de correspondência Definição Correlação Cruzada Normalizada (NCC) ∑u,v(I1(u,v)− ¯I1).(I2(u+d,v)− ¯I2)

∑u,v(I1(u,v))− ¯I1)2.(I2(u+d,v)− ¯I2)2

Soma das diferenças Quadradas (SSD) ∑u,v(I1(u, v) − I2(u + d, v))2

SSD Normalizada ∑u,v(I1(u,v)− ¯I1)

∑u,v(I1(u,v))− ¯I1)2

−∑u,v(I2(u+d,v)− ¯I2)

(I2(u+d,v)− ¯I2)2

Soma de Diferenças Absolutas (SAD) ∑u,v

I1(u, v) − I2(u + d, v)

Ordenação ∑u,v(I10(u, v) − I20(u + d, v))

Censos ∑u,vHAMMING(I10(u, v), I20(u + d, v))

2.6

Mapeamento do ambiente e deteção de obstáculos

Após o tratamento das duas imagens captadas, é necessário avançar para a análise da cena propriamente dita, de forma a detetar os obstáculos que poderão surgir. Neste âmbito surge o conceito de tesselação [22]. De notar que a tesselação é a divisão do espaço bidimensional

(46)

-plano - tendo em conta unidades de divisão simples, de forma a que não haja espaço entre elas e a soma das diferentes superfícies seccionadas, seja igual à superfície total.

Cada sistema de deteção de obstáculos realça um tipo específico de tesselação ou de estra-tégia de aglomeração (clustering). Dois dos modelos passíveis de serem implementados são os seguintes:

1. Probabilistic Occupancy Map 2. Scene Flow Segmentation Probabilistic occupancy map

Neste modelo, o ambiente é representado por uma grelha de células contendo uma variável aleatória Xi, cujo estado de cada célula pode ser definido como livre, ocupado ou indefinido (não

mapeado) [23].

O objetivo é processar a distribuição de probabilidades associadas ao estado da grelha, tendo em conta o estado da variável aleatória e as medidas z realizadas num instante específico t. Considerando m como a variável aleatória de uma célula genérica, a sua ocupação é determinada pela função densidade de probabilidade dadas as medidas zt:

p(m|z1, ..., zt) (2.12)

Assumindo uma ocupação da grelha em 2D e o ambiente estático, pode ser definida uma probabilidade condicional, calculada recursivamente pela fórmula de Bayes, atualizando o es-tado das células em cada instante definido (Equação 2.14). Para além disso, transforma-se a função densidade de probabilidade num função logarítmica. Portanto, tendo em conta [24]:

p(mx,y|zt) = 1 − [el

(t)

x,y]−1 (2.13)

com

lx,y(t)= lx,y(t−1)+ log

p(mx,y|zt)

1 − p(mx,y|zt)

− p(mx,y) 1 − p(mx,y)

(2.14) Este método traz vantagens no que diz respeito à simplicidade da construção da representa-ção do ambiente, com a precisão suficiente. Existe também modelos mais detalhados deste tipo de representações probabilísticas que mostram uma representação dos mapas probabilísticos em conjunto com as projeções nas coordenadas reais. Neste caso, é criado um mapa de disparidades que representa as medidas processadas pelo algoritmo para estimar a ocupação nas células do mapa de grelha. A estimação nas coordenadas reais do ambiente do mapa de disparidades é

(47)

2.6 Mapeamento do ambiente e deteção de obstáculos 27

realizada através da Equação 2.15. Nesta equação é tido em conta o modelo da câmara, com parâmetros intrínsecos e extrínsecos específicos.

pk= P−1(mk) = baseline d ·    (u − u0) (v − v0).ffuv fu    (2.15)

A equação acima mk = (u, v, d)T é uma combinação das coordenadas (u, v) da imagem e da

disparidade processada pelas câmaras d. Para além disso, pk= (x, y, z)T será a localização nas

coordenadas do ambiente real da célula mk.

Desta maneira, cada célula tem para si uma possibilidade de ocupação D(i, j), tendo em conta o ambiente envolvente.

D(i, j) =

M

k=1

Li j(mk) (2.16)

Na equação 2.16, Li jcorresponde à possibilidade de ocupação da célula (i, j), dada a medida mk

e M será o número total de medidas.

Após o cálculo através dos modelos, é necessário organizar as medidas resultantes nos ma-pas. Pode-se fazer referência a três tipos de mapas:

1. Grelha cartesiana. O ambiente é representado por uma grelha cartesiana de dimensões fixas e mapeada linearmente.

2. Grelha coluna/disparidade. As células de coluna/disparidade correspondem à discreti-zação dos valores de u e de d.

3. Grelha polar. O critério de mapeamento é representado pela discretização dos valores (u, z), onde u corresponde ao valor coluna da imagem no espaço e z é a profundidade no sistema de coordenadas do mundo real.

No seguimento destas abordagens, foi criado o conceito de stixel, por [25]. Segundo Badino [25], um stixel é um cluster que vai servir de unidade de representação do ambiente real. Desta maneira, o obstáculo será representado por uma combinação desses clusters.

Scene flow segmentation

Esta abordagem, também designada de fluxo ótico, é baseada na correlação temporal para estimar o movimento entre dois frames, capturados pelo sistema estéreo em instantes diferentes. Os primeiros algoritmos desenvolvidos apresentaram problemas no que diz respeito à resposta em tempo-real, já que os algoritmos não a garantiam. Por isso, o mais recente desenvolvimento

(48)

deste método foi no sentido de fazer face a esse problema e é designado por scene flow estima-tion, descrito por [26].

Neste algoritmo, os pontos de interesse são detetados através de duas imagens estéreo conse-cutivas e retificadas. O resultado dos valores da disparidade permitem a descrição tridimensional para cada ponto detetado. Tendo em conta que a posição da câmara pode variar, é necessário que o piso seja detetado de modo a obter uma descrição com significado do ambiente envolvente.

Cada ponto é seguido ao longo do tempo e o fluxo da cena é calculado através da aproxima-ção às diferenças, de forma a obter derivadas. A covariância associada é obtida pela propagaaproxima-ção linear do erro.

Figura 2.13: Sistema do carro autónomo de [27] para algoritmo de Scene Flow Segmentation

Na Figura 2.13 pode-se verificar que foi tida em conta a posição da câmara, devidamente colocada para capturar o piso.

2.7

Implementação de hardware em tempo real

Introdução

Existem diversas aplicações que requerem o processamento de imagem em tempo real. De uma maneira geral, os computadores com arquitetura de processamento série, não conseguem

(49)

2.7 Implementação de hardware em tempo real 29

atingir os requisitos de tempo. Este problema, como referido por [28], é eficazmente resolvido através de processamento dedicado. Esta necessidade de ter um processamento dedicado é ainda mais acentuada quando estão em causa veículos autónomos. Por isso, o hardware influencia sig-nificativamente a velocidade de processamento dos sistemas de visão estéreos. Estas melhorias de processamento devem-se principalmente à capacidade de processamento em paralelo.

Por outro lado, no que toca ao processamento estéreo, a implementação em hardware de algoritmos globais é bastante complexa. Este tipo de algoritmos são de natureza iterativa, re-querendo muito tempo e poder computacional, fazendo com que a sua implementação não seja feita em paralelo No entanto, métodos locais podem beneficiar com o processamento paralelo. Estes métodos são significativamente mais simples no que toca aos cálculos e por isso, é com-pensatório ter processamento em paralelo. Assim, é possível reduzir os tempos de execução dos algoritmos. Tendo tudo isto em conta, a fase de desenvolvimento e escolha de hardware toma um papel muito importante em sistemas de visão estéreos.

Segundo a NVIDIA [29], devido à crescente complexidade dos problemas, quer a nível ma-temático, quer ao nível das limitações temporais, basear o processamento num core único, im-plicava o não cumprimento dos requisitos e um consumo elevado de potência. Associado à per-formance do sistema está o conceito de Tempos de execução do pior caso WCET (Worst-case execution time). É na resposta a estes problemas que foi introduzido o conceito de multi-core. O processamento em vários cores, paralelamente ou em série, trouxe vantagens na performance das aplicações em causa e permitiu uma melhor gestão do consumo de potência [30].

Para escolher a unidade de processamento mais adequada deve-se focar em características como âmbito da aplicação a que se destina, a relação potência/performance dos cores, os elemen-tos de processamento, o modelo de memória usado e os periféricos integrados ou aceleradores dos mesmos [30].

As características acima referidas têm o intuito de especificar a arquitetura de processador a usar, bem como o modelo da memória em questão. Por outro lado, especifica também a interface hardware-softwarea usar e, indiretamente, o que é ainda necessário para completar a unidade de processamento, como periféricos adicionais [30].

Numa outra perspetiva, pode-se considerar a graphics processing unit (GPU). Neste caso, utiliza-se esta unidade em conjunto com um CPU, de forma a acelerar o processamento [31]. Deste modo, o processamento do código fica à responsabilidade de duas unidades.

Tudo isto pode ser integrado num sistema único, um SoC (System-on-Chip). Desta maneira, e num espaço reduzido, consegue-se ter uma unidade de processamento, composta por proces-sadores, GPU e periféricos.

Por isso, e no âmbito dos sistemas de visão em carros autónomos em tempo real, as carac-terísticas da unidade de processamento escolhida são de extrema relevância, já que o

(50)

processa-mento é regido por tempos muito reduzidos. O não cumpriprocessa-mentos destes requisitos temporais, pode ditar consequências severas no que diz respeito à sinistralidade rodoviária, na medida em que um veículo autónomo, poderá depender em grande parte de um sistema de visão para a sua movimentação e orientação na estrada.

Texas Instruments

A Texas Instruments oferece uma gama de dispositivos capazes de cumprir os requisitos necessários, para um sistema de deteção de obstáculos de tempo real, principalmente no que diz respeito ao poder de processamento e à integração com outros sistemas. Pode-se referir duas famílias de placas de desenvolvimento (System-on-Chip), como a TDA2x e TDA3x. Estas placas vêm preparadas para ter diversos inputs vídeos em simultâneo, já que são produzidas com intuito de serem utilizadas para o processamento dedicado dos vários sistemas de visão de um veículo. De notar que para tal, é necessário ter em conta as interfaces câmaras-placa existentes. Uma das soluções passaria pelo uso de um FPD-Link III with Power-Over-Coax. Desta forma, esta ligação servirá como desserializador para ligações entre o que captura a imagem e o processa-mento vídeo propriamente dito.

Na Tabela 2.5 seguinte podem ser analisadas algumas das características das duas famílias de placas que foram referidas acima. De notar que as características presentes na Tabela 2.5 são essenciais no que diz respeito ao processamento de visão, como as unidades de processa-mento e o hardware (processadores), bem como unidades específicas para uma aceleração do processamento da visão, como a unidade EVE (Embedded Vision Engine).

Pela Tabela 2.5 é possível concluir-se que estes módulos de desenvolvimento da Texas Ins-trumentspode ser implementada uma solução viável, cumprindo os requisitos necessários, in-cluindo o processamento em tempo-real. Para além de permitirem múltiplos inputs de vídeo, a sua composição multicore sustenta o cumprimentos dos requisitos temporais.

NVIDIA

A NVIDIA tem sido uma empresa na vanguarda do desenvolvimento de supercomputadores que têm como característica base a grande capacidade de processamento gráfico. Nesta me-dida, tem feito grandes avanços no que diz respeito ao desenvolvimento de tecnologias para o processamento de imagem e sua implementação em veículos autónomos e não autónomos.

A NVIDIA tem uma gama de produtos que podem ser uma solução no âmbito dos veículos autónomos que estão presentes na Tabela 2.6:

Referências

Documentos relacionados

No contexto em que a Arte é trabalhada como recurso didático-pedagógico na Educação Matemática (ZALESKI FILHO, 2013), pode-se conceber Performance matemática (PM) como

O software abrirá uma área de trabalho, para a montagem do sistema a ser simulado, cuja plataforma está baseada em um sistema de coordenadas cartesianas sistema a ser simulado,

Foram desenvolvidas duas formulações, uma utilizando um adoçante natural (stévia) e outra utilizando um adoçante artificial (sucralose) e foram realizadas análises

IV - criar uma base institucional que facilite o processo de reconhecimento de estudos realizados no exterior. 2° Por proposta da Congregação das Unidades

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Percentual de intervalos RR adjacentes com diferença de duração maior que 50ms Pós-Menopausa Qualidade de Vida Risco Cardiovascular Raiz quadrada da média do quadrado das

riáveis visuais para construção da legenda e sua aplicação no mapa devem ressaltar as relações de diversidade visual existentes entre os dados, isto é, devem-se exaltar