Professional Documents
Culture Documents
LuisEnriqueOrtizFernandez DISSERT
LuisEnriqueOrtizFernandez DISSERT
LuisEnriqueOrtizFernandez DISSERT
C ENTRO DE T ECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
MECATRÔNICA
A minha tia, Teresa, por sempre me ajudar e apoiar a alcançar meus sonhos.
A Viviana, por seu amor, paciência, compreensão e apoio, mesmo nos momentos mais
difíceis.
In the artificial vision are used several devices like MS Kinect v1 / v2, the stereo
cameras PG Bumblebee XB3 and Stereolabs ZED, among others. Because they are all
devices that estimate depth data, they may contain errors. In this work, we present the
design and implementation of a generic method for estimating the RMS error in depth
data provided by any device, capable of generating data of type RGB-D, that is, an image
and a depth map Same time. To verify the method was built an embedded system based
on the NVIDIA Jetson TK1 and three sensors, the two versions of MS Kinect and the
ZED stereo camera. At the moment of the data collection, the mathematical models of
the RMS error were established for each device and, at the end, an analysis was made of
the accuracy of each one.
Keywords: Computer vision, 3D sensors, depth map, RMS error, embedded system.
Sumário
Sumário i
Lista de Tabelas iv
1 Introdução 1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Contribuições e aplicações . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Fundamentação Teórica 5
2.1 Imagens: Formação e modelo matemático . . . . . . . . . . . . . . . . . 5
2.2 Geometria do sistema de aquisição da imagem . . . . . . . . . . . . . . . 6
2.2.1 Transformação projetiva e o modelo Pinhole . . . . . . . . . . . 6
2.3 Processamento de imagens: Detecção de cantos . . . . . . . . . . . . . . 8
2.4 Visão estereoscópica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Disparidade e profundidade . . . . . . . . . . . . . . . . . . . . 11
2.4.2 Nuvens de pontos 3D . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Análise do erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Exatidão e precisão . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Erro absoluto, relativo e RMS . . . . . . . . . . . . . . . . . . . 15
2.6 Ajuste de curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.1 Regressão por mínimos quadrados . . . . . . . . . . . . . . . . . 16
2.6.2 Análise do melhor ajuste . . . . . . . . . . . . . . . . . . . . . . 17
3 Trabalhos relacionados 19
3.1 Análise e comparação dos sensores 3D . . . . . . . . . . . . . . . . . . . 19
3.1.1 Sensores RGB-D . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Sensores que usam visão estéreo . . . . . . . . . . . . . . . . . . 20
3.1.3 Comparação entre sensores . . . . . . . . . . . . . . . . . . . . . 20
3.2 Metodologias de estimação do erro . . . . . . . . . . . . . . . . . . . . . 21
3.3 Aplicações usando dados de profundidade e visão 3D . . . . . . . . . . . 22
i
4 Problema 24
4.1 Formalismo matemático do problema . . . . . . . . . . . . . . . . . . . 24
4.1.1 Captura de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Padrão e detecção de cantos . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Registro e alinhamento de nuvens de pontos . . . . . . . . . . . . 26
4.1.4 Estimativa do erro RMS e modelagem matemática . . . . . . . . 27
4.2 Método proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Implementação 30
5.1 Captura: Imagem RGB e mapa de profundidade . . . . . . . . . . . . . . 30
5.2 Processamento 2D: Detecção de cantos . . . . . . . . . . . . . . . . . . 31
5.3 Processamento 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3.1 Projeção 2D a 3D de cantos . . . . . . . . . . . . . . . . . . . . 32
5.3.2 Registro e alinhamento . . . . . . . . . . . . . . . . . . . . . . . 33
5.4 Estimação do erro RMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5 Modelagem matemática do erro RMS . . . . . . . . . . . . . . . . . . . 35
5.6 Sistema embarcado para testar o método . . . . . . . . . . . . . . . . . . 36
5.6.1 Placa NVIDIA Jetson TK1 . . . . . . . . . . . . . . . . . . . . . 36
5.6.2 Câmera Stereo ZED . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6.3 Sensor RGB-D (luz estruturada) MS Kinect v1 . . . . . . . . . . 37
5.6.4 Sensor RGB-D (time-of-flight) MS Kinect v2 . . . . . . . . . . . 38
6 Experimentos e Resultados 41
6.1 Determinação do erro RMS: Câmera ZED . . . . . . . . . . . . . . . . . 41
6.1.1 Cálculo do erro . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Determinação do erro RMS: Comparação entre sensores . . . . . . . . . 43
6.2.1 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Análise do tempo de processamento . . . . . . . . . . . . . . . . . . . . 52
7 Conclusão 54
Referências bibliográficas 57
A Informações adicionais 61
Lista de Figuras
iii
Lista de Tabelas
6.1 Análise numérica do ajuste para os dados de erro RMS da câmera ZED. . 47
6.2 Média e variância das curvas do erro RMS na câmera ZED. . . . . . . . . 48
6.3 Coeficientes e análise numérica das curvas ajustadas. . . . . . . . . . . . 50
6.4 Média e variância de cada curva de erro RMS. . . . . . . . . . . . . . . . 50
6.5 Tempo de processamento para os dispositivos 3D. . . . . . . . . . . . . . 53
iv
Lista de Símbolos e Abreviaturas
RGB-D: Red-Green-Blue-Depth
v
Capítulo 1
Introdução
Sistemas de visão artificial procuram simular a visão humana mediante o uso de dis-
positivos, tais como: câmeras estéreo e sensores RGB-D (Red-Green-Blue-Depth) que
capturam dados (2D ou 3D) do ambiente. Estes dados são geralmente processados através
de técnicas de visão computacional, fazendo com que sistemas artificiais embarcados em
robôs, por exemplo, possam perceber o ambiente e responder autonomamente a determi-
nadas situações. Uma etapa normalmente incluída no processamento dos dados refere-se
ao uso de métodos para geração de modelos 3D a partir de imagens 2D, determinando
assim, a profundidade dos objetos em uma cena.
Existem vários dispositivos, com seus softwares associados, que podem ser usados
para determinar a profundidade de objetos, como o MS Kinect v1/v21 , Asus Xtion Pro2 ,
PrimeSense Carmine3 , as câmeras estéreo PG Bumblebee XB34 , Stereolabs ZED5 , Mi-
noru 3D6 , entre outros. Como todos são dispositivos que estimam medidas de profun-
didade, é normal que tais estimações da profundidade contenham um certo erro, as-
sociado ou não ao tipo de dispositivo que esteja sendo usado. Dos trabalhos existen-
tes (Zhao e Nandhakumar 1996, Blostein e Huang 1987, Chang e Chatterjee 1992, Xiong
e Matthies 1997) e a partir de testes que realizamos em laboratório, é possível noticiar que,
no caso das câmeras estéreo, os erros são causados pelo uso de lentes com alta distorção,
disposição inadequada das câmeras, captura de imagens com baixa resolução, problemas
de iluminação e calibração com alto erro de reprojeção. Conforme estudos encontrados
na literatura a respeito (Yang e Wang 1996, Maimone e Fuchs 2012, Sansoni et al. 2000),
no MS Kinect e outros dispositivos semelhantes, os erros aparecem principalmente de-
vido à baixa taxa de captura e de resolução. Isso deve-se principalmente ao fato de os
mesmos terem sido projetados para entretenimento, e não para desenvolvimento de apli-
cações científicas e/ou tarefas de alta precisão. Mas, nota-se que, apesar das limitações,
os dispositivos acima citados têm servido de base para muitos projetos de pesquisa em vi-
são computacional e robótica (Kuzuhara et al. 2015, Galna et al. 2014, Cloix et al. 2016),
principalmente por causa do baixo custo e precisão relativamente aceitáveis.
1 https://developer.microsoft.com/en-us/windows/kinect/
2 https://www.asus.com/3D-Sensor/
3 http://openni.ru/rd1-08-specifications/index.html
4 https://www.ptgrey.com/stereo-vision-cameras-systems
5 https://www.stereolabs.com/
6 http://www.minoru3d.com/
CAPÍTULO 1. INTRODUÇÃO 2
Um dos problemas que foi identificado em relação aos dispositivos acima é a carência
de dados confiáveis de seu erro. Isto é, justamente por serem dispositivos ainda recentes,
há uma carência de métricas para mensurar a raiz do valor quadrático médio do erro, tam-
bém denominado de erro RMS, inerente à determinação da profundidade que os sensores
conseguem retornar.
Assim, por não haver encontrado na literatura trabalhos a respeito, propomos neste
trabalho um método genérico para a estimação do erro RMS nos dados de profundidade
que sejam fornecidos por qualquer dispositivo capaz de gerar uma imagem e um mapa de
profundidade ao mesmo tempo. Além disso, introduzimos também uma metodologia para
obtenção do modelo matemático para o erro RMS fornecido pelos sensores MS Kinect v1,
v2 e da câmera ZED, visando determinar melhor sua precisão.
1.1 Motivação
A motivação para este trabalho decorre da necessidade de um método de avaliação do
erro associado ao uso de dispositivos de captura 3D, existentes em qualquer laboratório
de visão computacional ou robótica.
Em várias aplicações, o erro inerente ao sensor 3D usado é raramente considerado.
Isso acontece devido ao fato de que as aplicações desenvolvidas usando este critério são
do tipo não crítico. Ou seja, seu mal funcionamento não compromete a vida de nenhum
ser vivo e/ou não causa danos materiais com custo significativo. Todavia, em várias outras
aplicações, é necessário desenvolver uma aplicação com reduzida margem de falhas. Para
isso, o erro associado ao sensor 3D certamente deve ser considerado.
A partir de pesquisas que realizamos na literatura a respeito, noticiamos que têm sido
realizadas análises de erros, mas apenas para sensores 3D especificamente usado nas apli-
cações vistas. Esse tipo de análise não é a mais adequada por várias razões; a mais impor-
tante delas é que, o tempo de desenvolvimento aumenta a partir do momento em que se
usa mais de um sensor. Observada essa necessidade, propomos um método genérico para
analisar o erro RMS em dados de profundidade fornecidos por qualquer dispositivo 3D,
seja existente no mercado ou até mesmo construído de forma artesanal em laboratório.
Como restrição do método, é necessário, apenas que o dispositivo forneça uma imagem
de intensidade (RGB) e um mapa de profundidade com padrão conhecido, que pode ser
obtido pelo uso de uma biblioteca de software (SDK) que geralmente é fornecida com o
dispositivo, ou que pode ser calculado por algum método de reconstrução do tipo Shape
from X (Trucco e Verri 1998). Com o método proposto, pode-se conseguir informações
valiosas para melhorar o desempenho do aplicativo e reduzir ao máximo as falhas do
sistema de visão computacional.
1.2 Metodologia
Para a determinação do erro RMS (Root Mean Squared) nos sensores 3D (estéreo e
RGB-D) é necessário o uso de uma imagem e de um mapa de profundidade. Ambos de-
vem ser de um padrão formado por um ou vários tabuleiros de xadrez (em duas ou três
CAPÍTULO 1. INTRODUÇÃO 3
dimensões). Se o dispositivo for do tipo estéreo, a imagem deverá ser a fornecida pela
pela câmera esquerda. Após a detecção de estruturas do tipo canto no padrão, equações
de reprojeção e um mapa de profundidade são usados para criar duas nuvens de pontos.
Uma das nuvens contém as coordenadas reais dos cantos detectados e outra contém as co-
ordenadas ideais para cada canto, dadas pelo SDK do dispositivo ou calculada. Depois do
registro e alinhamento dessas duas nuvens de pontos usando o método de decomposição
por valores singulares (ou SVD) é realizado o cálculo do erro RMS. Usamos um sistema
embarcado baseado na placa NVIDIA Jetson TK1 7 para implementar o algoritmo para o
método e testamos o mesmo com três sensores RBG-D: MS Kinect v1, MS Kinect v2 e a
câmera estéreo ZED.
O embasamento teórico necessário para o desenvolvimento do trabalho envolve ele-
mentos da Matemática e técnicas Visão Computacional, tais como formação de imagens e
mapas de profundidade; detecção de cantos, matrizes de transformação para conversão de
sistemas de coordenadas, formação e registro de nuvens de pontos, cálculo do erro RMS
e ajuste de curvas.
genharia e segurança pública podem contar com esta abordagem para obter informações
do erro RMS.
Fundamentação Teórica
Neste capítulo são tratados os aspectos teóricos mais relevantes para entender o pro-
blema em foco (determinação do erro RMS de sensores 3D), incluindo o processo de
formação da imagem e seu modelo matemático, a geometria básica associada às câme-
ras, os modelos de câmeras e seus parâmetros, além das equações de projeção para a
conversão entre sistemas de coordenadas. São descritos, também, os algoritmos para de-
tecção de cantos, a teoria básica sobre visão estéreo, e o processo de geração de mapas
de profundidade e suas relações com as nuvens de pontos. Por fim, apresentamos a teoria
mais relevante do tratamento de dados e análise do erro, além de técnicas para o ajuste de
curvas usando o método de regressão polinomial por mínimos quadrados.
f (x) = { fR , fG , fB } (2.1)
Uma parte importante do processo de formação é a conversão da representação de
imagem de uma função contínua para uma função discreta. A ferramenta matemática
usada para descrever as imagens como amostras em pontos discretas é a função delta.
Uma propriedade útil da função δ(x) é da filtragem representada na Equação 2.2, onde
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 6
Figura 2.1: Modelo Pinhole: Projeção ideal de um objeto 3D em uma imagem 2D.
Parâmetros extrínsecos
Os parâmetros extrínsecos representam a posição relativa da câmera (Xc ,Yc , Zc ) em
relação ao sistema de coordenadas de mundo (Xw ,Yw , Zw ). Neste sistema de coorde-
nadas, a câmera pode estar rotacionada, R = [r11 , r12 , r13 , ..., r31 , r32 , r33 ], e possuir um
deslocamento t = [tx ,ty ,tz ]. Estes dois tipos de transformações estão representadas na
Equação 2.6.
Xc r11 r12 r13 tx Xw
Yc r21 r22 r23 ty Yw
(2.6)
Zc = r31 r32 r33 tz Zw
1 0 0 0 1 1
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 8
Parâmetros intrínsecos
Os parâmetros intrínsecos de uma câmera podem ser encontrados por meio do pro-
cesso de calibração ou da informação do fabricante.
Juntando as equações 2.3 e 2.6 pode-se obter a Equação 2.7, conhecida como a trans-
formação projetiva que relaciona os parâmetros intrínsecos e extrínsecos de uma câmera,
e que ajuda a converter um ponto que está em um sistema de coordenadas de pixel em
outro que esteja em coordenadas de mundo.
� r11 r12 r13 tx Xw
xi fx 0 Cx 0
y�i = 0 fy Cy 0 r21 r22 r23 ty Yw (2.7)
�
r31 r32 r33 tz Zw
zi 0 0 1 0
0 0 0 1 1
xiund = xi (1 + K1 r2 + K2 r4 + K3 r6 )
(2.8)
yiund = yi (1 + K1 r2 + K2 r4 + K3 r6 )
As distorções tangenciais podem ser caracterizadas usando os coeficientes dos lentes
p1 e p2 na Equação 2.9.
SUSAN (Smallest Univalue Segment Assimilating Nucleus) (Smith e Brady 1997), FAST
(Features from Accelerated Segment Test) (Trajković e Hedley 1998), etc.
Nesta seção, o foco é analisar a proposta de Geiger et al. (2012), na qual é apresentado
um algoritmo que extrai cantos com precisão sub-pixel, e sendo eficiente em distâncias
grandes. Para localizar os cantos numa imagem I (Figura 2.2a), calcula-se a probabili-
dade para cada pixel, usando dois protótipos de cantos diferentes (n × n): um para cantos
alinhados com os eixos (Figura 2.2b) e outro para cantos que são rotacionados a 45◦ (Fi-
gura 2.2c). Cada protótipo é composto por quatro máscaras (kernels) de filtros [A, B,C, D],
realizando-se a operação de convolução dos mesmos com a imagem de entrada I.
Formalmente, a formulação do método é dada como a seguir. Seja fXi a resposta ao
filtro com kernel X e do protótipo i para um pixel particular. A probabilidade de ocorrer
um canto c neste pixel é definida tomando o valor máximo sobre todas as combinações de
protótipos e movimentos, o que é dado pela Equação 2.10:
onde NI é a vizinhança de (11 × 11) pixeis ao redor do pixel candidato a canto. Os pixeis
vizinhos são automaticamente ponderados pela magnitude do gradiente. Este problema
pode ser resolvido usando a solução dada pela Equação 2.12.
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 10
Figura 2.2: Detecção de cantos. A imagem de entrada I (a) é filtrada usando os protótipos
de canto (b) e (c), logo é aplicada uma supressão na probabilidade de canto resultante C
(d), depois são verificados os cantos por sua distribuição de gradiente (e) e, finalmente
são obtidos os melhores cantos (f).
� �−1
c= ∑ (gpgTp ) ∑ (gpgTp )p (2.12)
p∈NI p∈NI
Seja o conjunto de candidatos a canto X = {c1 , .., cN } e seja Y = {y1 , .., yN } o conjunto
correspondente de rótulos. A expressão, y ∈ {℘}∪N2 representa uma detecção de valores
abertos (℘) ou a linha/coluna (N2 ) dentro do tabuleiro de xadrez. Para os tabuleiros de
xadrez presentes na imagem, é recuperado um Y para cada X. Para isso, é necessário
minimizar a função de energia dada pela Equação 2.13:
mede o quão bem dois cantos vizinhos i e j são capazes de prever um terceiro, o k,
ponderada pelo número de cantos explicitados, conforme a Equação 2.14.
� ci + ck − 2c j �2
Eestrutura (X, Y) = |{y|y �= ℘}| max (2.14)
(i, j,k)∈τ � ci − ck �2
Nesta equação, τ denota o conjunto de todos os triplos (grupo de três cantos), fila e
coluna da configuração atual do tabuleiro de xadrez induzido por Y . No total, tem-se
|τ| = m(n − 2) + n(m − 2), sendo m e n o número de linhas e colunas respectivamente.
O conjunto de estados Y pode ser exponencialmente grande em N, e a procura de
cantos usando força bruta pode ser exaustiva e complexa. Em vez disso, empregamos um
esquema de otimização discreta simples. Dado um canto semente, procura-se seus vizi-
nhos mais próximos na direção de suas bordas e1 e e2 , produzindo uma hipótese de xadrez
inicial de (2 × 2) com um valor de energia associado E(X,Y ). Para otimizar E(X,Y ), são
realizados movimentos em Y , que expandem qualquer uma das bordas de xadrez por uma
única linha ou coluna. O procedimento acima resolve o problema de detecção dos cantos
a nível subpixel, com o gradiente ortogonal.
B − (xil − xir ) B fB
= ⇒ Z= (2.16)
Z− f Z xil − xir
O algoritmo de Arun et al. (1987) é importante no presente trabalho por estimar uma
transformação para alinhar duas nuvens de pontos, minimizando as distâncias entre as
correspondências, segue a explicação do algoritmo usando a Figura 2.4:
� � �
• Com as nuvens de pontos pi e pi , calcular os centroides p, p e obter qi e qi (distan-
cia entre de cada ponto de uma nuvem e seu centroide), para 1 ≤ i ≤ n, usando as
equações 2.17, 2.18 e 2.19, onde R e T são a matriz de rotação (3x3) e o vetor de
translação (3x1) iniciais, e Ni é o vetor de ruído.
1 n
p= ∑ pi
n i=1
⇒ qi = pi − p (2.17)
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 14
�
pi = Rpi + T + Ni onde i = 1, 2, ..n (2.18)
1 n �
∑ pi
� � � �
p = ⇒ qi = pi − p (2.19)
n i=1
• Calcular a matriz H de tamanho (3x3) usando a Equação 2.20.
n
�t
H = ∑ qi qi (2.20)
i=1
• Encontrar SVD de H. SVD é a fatoração de uma matriz real ou complexa.
H = UAV t (2.21)
• Calcular X = VU t .
�
• Calcular o determinante de X, det(x). Se este for igual a (+1), então R = X onde,
� �
R é a matriz de rotação com o valor mínimo quadrado para chegar de pi a pi .
� � �
• Calcular, T = p − R p.
O algoritmo para estimar a transformação rígida pode ser usado em qualquer conjunto
de dados com tamanho de no mínimo três pontos. Quando há mais de três pontos obtém-
se uma solução de mínimos quadrados, na qual o erro quadrático ∑2 da distância entre os
pontos dos dois conjuntos de dados é minimizado (Equação 2.22). Aqui, o operador � .. �
é a distância euclidiana entre os dois vetores.
n
2
∑ = ∑ � pi − (R pi + T ) �2
� � �
(2.22)
i=1
e = ve − vr (2.23)
Em uma medida direta, fornecida por um dispositivo; ou indireta, obtida através de
uma fórmula, há vários tipos de erros, entre os mais importantes: absoluto, relativo e
RMS.
ea = |ve − vr | (2.24)
Por outro lado, o erro relativo é a divisão entre o erro absoluto e o valor real (Equa-
ção 2.25). Se o valor for multiplicado por 100, o erro percentual é obtido. O erro relativo
não tem unidades.
|ve − vr |
er = × 100%, se vr �= 0 (2.25)
vr
Em geral, o erro médio quadrático ou RMS é uma medida que representa o desvio
padrão das diferenças entre os valores estimados e os valores reais observados. Estas
diferenças individuais são chamadas de resíduos. O erro RMS é uma boa medida de
exatidão, pois mede a diferença entre dois conjuntos de dados e amplifica os grandes
resíduos. A Equação 2.26 mostra como calcular o erro RMS, onde vir é o valor real para a
observação de ordem i até n e vie é o valor estimado correspondente. Os resíduos podem
ser positivos ou negativos dependendo se o valor estimado for inferior ou superior ao valor
real observado (Taylor 1997).
�
∑ni=1 (vie − vir )2
eRMS = (2.26)
n
Os dados obtidos experimentalmente, geralmente, tem erro significativo, por este mo-
tivo, é de particular interesse estudar a regressão por mínimos quadrados.
a0 = ȳ − a1 x̄ (2.28)
e = y − a0 − a1 x (2.29)
Em muitos casos, os dados obtidos a partir de testes experimentais não são lineares,
por isso é necessário ajustá-los a uma função que não seja um polinômio de primeiro grau.
Às vezes, é conveniente assumir que os dados têm uma relação exponencial. Por isso, a
função de aproximação deve ter a forma da Equação 2.30.
y = α1 eβ1 x . (2.30)
É possível encontrar equações normais para uma função exponencial, semelhante ao
processo desenvolvido para uma linha reta. Tais equações não-lineares são mais difíceis
de resolver do que equações lineares. Por isso, um método usado quando há a suspeita
de que os dados têm uma relação exponencial é calcular o logaritmo da equação lineal
aproximada, ficando a Equação 2.31. Nesta equação, ln α1 é a intersecção (m) entre o
eixo ln y e o eixo x, e β1 é a inclinação (δ) da reta (ver Figura 2.5).
ln y = ln α1 + β1 x (2.31)
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 17
α1 = ln y1 − β1 x1 (2.33)
As equações 2.32 e 2.33 permitem calcular o valor estimado de α1 e β1 isto é, os co-
eficientes da função de regressão para um conjunto de dados. No entanto, essas fórmulas
não dizem o quão preciso as estimativas são, ou seja, o quanto os estimadores α1 e β1
variam de amostra para amostra para um tamanho especifico. Para isto foram concebidos
os chamados limites de confiança que servem para dar um conjunto plausível de valores
que as estimativas podem ter se um experimento for repetido várias vezes.
• Soma de Quadrados devido ao Erro (SSE): Esta é uma medida da diferença entre os
dados e um modelo de ajuste. Na Equação 2.34, yi é o valor de dados observados,
ŷi é o valor previsto do ajuste e wi é a ponderação aplicada a cada ponto de dados.
n
SSE = ∑ wi (yi − ŷi )2 (2.34)
i=1
CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA 18
• R-quadrado: mede o quão bem sucedido é o ajuste para explicar a variação dos
dados. Na Equação 2.35, ȳi é a média dos dados observados.
Trabalhos relacionados
Com o surgimento dos sensores 3D, as análises de seu desempenho tem sido um tó-
pico de pesquisa amplamente estudado devido as constantes inovações tecnológicas que
melhoram sua exatidão e precisão. Neste capítulo, analisamos os trabalhos da literatura
segundo os aspectos mais relevantes para o presente trabalho. Para isso, a informação
pesquisada será disposta em três seções. Na secção 3.1 junta-se os trabalhos que fazem
uma comparação ou análise individual entre sensores que usam tecnologias RGB-D (com
luz infravermelha ou time − o f − f light) e visão estéreo. São definidas, também, as prin-
cipais vantagens e desvantagens entre eles. Na seção 3.2 apresenta-se as metodologias
existentes para avaliar e quantificar o erro nos dados fornecidos por alguns dos disposi-
tivos anteriormente mencionados. Finalmente, na seção 3.3 pode-se ver a importância
da exatidão e precisão dos sensores 3D em algumas aplicações da medicina, pecuária,
robótica, etc.
Na literatura existem outras abordagens para determinação do erro nos dados de pro-
fundidade de sensores 3D, como os métodos estatísticos (Chang et al. 1994), geométri-
cos e probabilísticos (Blostein e Huang 1987), empíricos (Kytö et al. 2011, Hussmann
et al. 2008), entre outros. A Tabela 3.1 apresentada uma síntese dos métodos existentes,
incluindo o método proposto neste trabalho que usa o erro RMS, diferentemente dos de-
mais. Note que a contribuição a mais deste trabalho é justamente permitir que a mesma
métrica (erro RMS) possa ser usada em todos os dispositivos.
Tabela 3.1: Comparação das diferentes metodologias e técnicas usadas para estimação do
erro, precisão ou confidência nos dados de profundidade fornecidos por sensores 3D.
Capítulo 4
Problema
A partir de uma análise da teoria e dos trabalhos expostos nos Capítulos 2 e 3, nota-
se que os erros na estimação de profundidade produzidos por sensores 3D são causados
principalmente devido ao uso de lentes com alta distorção, má calibração, forma e ilumi-
nação do objeto capturado, entre outros. A partir dessa constatação, surge a necessidade
de determinar que erro é esse para poder melhor tratá-lo nas aplicações onde seu trata-
mento é essencial. Por exemplo, o procedimento de determinação do erro é essencial em
aplicações de robótica probabilística, tal como na localização de veículos aéreos autôno-
mos (UAV - Unmanned Aerial Vehicle), onde é essencial que se tenha valores corretos de
profundidade principalmente para o pouso.
Também, os dados de profundidade do ambiente são aspectos prioritários para a aero-
nave não bater nos objetos naturais ou artificiais presentes no ambiente. Outra aplicação
é a reconstrução 3D, pois nela busca-se gerar objetos com medidas próximas das reais e
com o menor erro possível. Nesta perspectiva, neste Capítulo 4 é feita uma apresentação
do problema de estimação do erro, de forma genérica, fechando com a obtenção de um
modelo matemático do erro RMS para determinar quão exatos são realmente os sensores
usados em visão computacional e robótica.
Notadamente, este problema da estimação do erro RMS, em qualquer sensor 3D, su-
põe algumas dificuldades (ou passos para ser realizado) tais como: a captura de imagens
RGB que devem estar alinhadas com o mapa de profundidade; a detecção de cantos para
o alcance do sensor analisado; o registro e alinhamento das nuvens de pontos usando as
CAPÍTULO 4. PROBLEMA 25
Figura 4.1: Relação entre uma imagem RGB e seu mapa de profundidade
Antes de calcular o erro RMS, as nuvens de pontos ideal e estimada devem ser re-
gistradas e alinhadas. Inicialmente, a primeira está representada em um sistema de coor-
denadas mundo e a segunda no sistema de câmera. O objetivo é encontrar as posições e
orientações das nuvens de pontos em uma estrutura de coordenadas globais, de modo que
ambas nuvens tenham o mesmo f rame de referencia. O fluxograma básico do algoritmo
para realizar o registro entre nuvens de pontos pode ser visualizado na Figura 4.3. Em
nosso caso, as duas nuvens têm índices ou correspondências conhecidas, têm o mesmo
CAPÍTULO 4. PROBLEMA 27
número de pontos, e cada ponto em uma nuvem tem seu correspondente na outra. Então o
objetivo final é obter uma matriz de transformação rígida (4 × 4) que representa a rotação
e translação de uma nuvem com respeito a outra.
Fornecer:
-Nuvem estimada (obtida com o sensor 3D)
-Nuvem ideal (obtida por medição direta).
Estabelecer correspondências
de forma manual.
• Capturar, com o sensor que se deseja testar, uma imagem RGB (sem distorções) de
um padrão 3D (um tabuleiro de xadrez) e obter seu mapa de profundidade;
• Detectar os cantos internos do padrão 3D e encontrar suas coordenadas (u p� , v p� )
i i
em pixels. Fazendo uso dessas coordenadas, pesquisar no interior do mapa o valor
de profundidade correspondente;
• Encontrar as coordenadas (Xc p� ,Y c p� , Zc p� ) de cada canto usando as equações de
i i i
projeção 2D-3D. Em outras palavras, deve-se converter as coordenadas imagem de
cada canto em coordenadas câmera;
• Criar uma nuvem de pontos com as coordenadas ideais (em milímetros)
(Xc pi ,Y c pi , Zc pi ) de cada canto no padrão 3D;
• Utilizar as coordenadas (Xc p� ,Y c p� , Zc p� ) para formar uma nuvem de pontos com
i i i
coordenadas reais (em mm).
• Registar e alinhar (os sistemas de coordenadas câmera e mundo) as nuvens pontos
reais e ideais e encontrar a matriz de transformação;
• Calcular a diferença entre as coordenadas ideais e reais de cada canto e obter o valor
de erro RMS global;
• Depois de realizar as etapas mencionadas anteriormente para diferentes distâncias
entre o sensor e o padrão, é possível encontrar o modelo matemático do erro RMS
para cada sensor testado, usando técnicas de ajuste de curvas.
Na Figura 4.5 é mostrado um diagrama geral com cada processo do método proposto.
No capítulo seguinte, é descrito como foi implementado cada um destes processos.
CAPÍTULO 4. PROBLEMA 29
Início
–Configuração Sensor
Captura –Padrão:
-Imagem RGB
-Mapa de Profundidade
Stop
Figura 4.5: Diagrama do método proposto para estimação do erro RMS nos dados de
profundidade de sensores 3D.
Capítulo 5
Implementação
(a) (b)
Figura 5.1: Exemplo de uma imagem RGB do padrão (a) e seu mapa de profundidade (b)
correspondente para análise do erro RMS.
No caso das câmeras estéreo, a captura é realizada pela câmera de referência para o
cálculo de profundidade. Estabelecemos esta câmera como sendo aquela que está à es-
querda com o propósito de que a imagem e o mapa de profundidade fiquem coerentes.
Quanto aos sensores RGB-D, a maioria (exceto o MS Kinect v2) já realiza o alinhamento,
não sendo ele foco do presente trabalho, uma vez que o escopo do mesmo é avaliar o
dispositivo de forma global, ou seja, os algoritmos e hardware que os fabricantes e de-
senvolvedores usam para o cálculo de dados de profundidade. Então, as entradas de nosso
método são imagens, mapas de profundidade já alinhados e sem distorções, e com os pa-
râmetros intrínsecos e extrínsecos do dispositivo testado.
Figura 5.2: Detecção e ordenamento dos cantos nos três planos do padrão.
5.3 Processamento 3D
Para conseguir uma análise em (X,Y, Z) do erro RMS nos dados de profundidade é
preciso levar as coordenadas dos cantos obtidos de forma “ideal” e real a um espaço 3D.
gura 5.3b.
Os cantos estimados (que são obtidos através do dispositivo testado Figura 5.3c) com
as coordenadas em pixeis (u p� , v p� ), as coordenadas (Xc p� ,Y c p� , Zc p� ) são obtidas com a
i i i i i
Equação 4.1. Depois da reprojeção 2D-3D, de cada canto, pode-se criar uma nuvem de
pontos real como da Figura 5.3d usando o Algoritmo 3.
(a) (b)
(c) (d)
Figura 5.3: Determinação dos cantos ideais e reais. Obtenção das coordenadas ideais (a)
e reais (c) dos cantos do padrão e sua representação em 3D (b) e (d), respectivamente.
Figura 5.4: Resultado do registro das nuvens de pontos ideal (preta) e estimada (verme-
lha).
CAPÍTULO 5. IMPLEMENTAÇÃO 35
�
u � −Cx
pi
v p
� −Cy
3 pi ← Zc p� , i Zc p� , Zc p� ;
fx i fy i i
�
4 (Xc p� ,Y c p� , Zc p� ) ← pi ;
i i i
5 fim
6 retorna (Xc p� ,Y c p� , Zc p� );
i i i
valores intermediários e que pode ser a entrada de outro sistema (robótico, deep learning,
controle, etc.). Como será demonstrado no Capítulo 6, estes dados seguem uma tendência
de tipo exponencial, por isso sua regressão é feita usando a Equação 4.3 e implementada
com o Algoritmo 5.
Em geral, o Algoritmo 6 apresentado no Apêndice A contem todas as etapas do mé-
todo proposto e pode ser usado para encontrar o erro RMS nos dados de profundidade de
um sensor 3D, capaz de fornecer uma imagem RGB e um mapa de profundidade de um
tabuleiro de xadrez 3D. Além de obter a função que relaciona o erro eRMS com a profun-
didade (ou distância padrão-sensor) Z j . Observe que o algoritmo é genérico e pode ser
usado em dados provenientes de qualquer dispositivo. A única restrição é o uso de um
padrão 3D (ou um similarmente construído) a partir do qual o algoritmo irá calcular os
pontos 3D, a fim de formar as nuvens de pontos.
Algoritmo 5: Algoritmo para obter o modelo matemático que relaciona o erro RMS
com a profundidade fornecida pelo sensor 3D.
Entrada: erroRMS : Erro RMS a uma distância Z j ;
Z j : Distância padrão-sensor
Saída: f (Z j ): erroRMS em função de Z j
1 para j = 0 : 1 : Z j faça
2 f (Z j ) ← aebZ j ;
3 fim
4 retorna f (Z j );
• Tegra K1 SOC:
– GPU com 192 CUDA Cores
– CPU Quad-Core ARM�Cortex
R TM -A15
• Memória de 2 GB x 16;
• Memória eMMC de 16 GB 4,51;
CAPÍTULO 5. IMPLEMENTAÇÃO 37
Figura 5.5: Diagrama do sistema embarcado para testar o método para a estimativa do
erro RMS em dados de profundidade
Dimensões:
Tamanho e peso 175x30x33 mm
Peso: 159 g
2208x1242 (15 fps)
Imagem individual 1920x1080 (30 fps)
e resolução de profundidade (px) 1280x720 (60 fps)
672x376 (100 fps)
Alcance: 0,7-20 m
Profundidade Formato: 32 bits
Linha de base: 120 mm
Campo de visão: 110 ◦
Lentes
f /2,0 abertura
Tamanho: 1/3”
Sensores Formato: 16:9
Tamanho do Pixel: 2-u px
USB 3,0 (5 V / 380 mA)
Conectividade
0◦ C to +45◦ C
Windows ou Linux
SDK-Requisitos Dual-core 2,3 GHz
do sistema 4 GB RAM
Nvidia GPU
(a)
(b)
Figura 5.6: Câmera ZED: (a) aspecto físico e (b) dimensões em milímetros.
(a) (b)
MS Kinect v1 MS Kinect v2
Modelo 1414 1520
RGB: 640x480 (30 fps) 1920x1080 (30 fps)
Resolução Profundidade: 640x480 512x424
IR: 640x480 512x424
57◦ H 70◦ H
Campo de visão
43◦ V 60◦ V
Alcance de
0,4 - 3,5 m 0,4 - 4,5 m
Profundidade
Dimensões: 27,9cmx6,3cmx3,8cm 24,9cmx6,6cmx6,7cm
Aspectos Físicos Peso: 1,36 kg 1,4 kg
◦
Temperatura: 5 a 35 C 5 a 35◦ C
Dados: USB 2 USB 3
Conexão e Energia
12 V - 1,08 A 12 V - 2,67 A
Acompanhamento Pessoas: 2 6
Corporal Juntas: 20 25
Tabela 5.3: Parâmetros intrínsecos e coeficientes de distorção radial de cada sensor 3D.
Capítulo 6
Experimentos e Resultados
Figura 6.1: Processo dos experimentos para determinação do erro RMS na câmera ZED,
usando um padrão com dois planos.
Figura 6.7. Este processo é repetido colocando o padrão a várias distâncias de cada sensor
(até 3 m), como mostra-se na Figura 6.8. As imagens são capturadas com as resoluções
máximas de cada dispositivo utilizado, o MS Kinect v1 “640×480 px”, o MS kinect v2
“512×424 px” e a câmera ZED “2208×1242 px”. Com o uso destas resoluções é possível
(a)
(b)
(c)
(d)
Figura 6.3: Resultados dos processos para determinar o erro RMS na câmera ZED, para
uma distância Z j = 8m, nas resoluções (a) “2208×1242 px”, (b) “1920×1080 px”, (c)
“1280×720 px” e (d) “672×376 px”
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 45
avaliar cada dispositivo em suas capacidades máximas. Os três sensores são testados no
mesmo local, fechado e com luz artificial, para obter bons dados de profundidade dos
sensores RGB-D, já que eles são mais sensíveis à luz natural.
0.35
Valores de erro RMS
Curva Ajustada
Limites de previsão
0.3
0.25
0.2
Erro RMS (m)
0.15
0.1
0.05
-0.05
0 5 10 15
Profundidade (m)
(a)
0.35
Valores de erro RMS
Curva Ajustada
Limites de previsão
0.3
0.25
0.2
Erro RMS (m)
0.15
0.1
0.05
-0.05
0 5 10 15
Profundidade (m)
(b)
0.45
Valores de erro RMS
Curva Ajustada
0.4 Limites de previsão
0.35
0.3
0.25
Erro RMS (m)
0.2
0.15
0.1
0.05
-0.05
0 5 10 15
Profundidade (m)
(c)
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 46
0.18
Valores de erro RMS
Curva Ajustada
0.16 Limites de previsão
0.14
0.12
0.1
Erro RMS (m)
0.08
0.06
0.04
0.02
-0.02
0 1 2 3 4 5 6 7 8 9
Profundidade (m)
(d)
Figura 6.4: Curvas ajustadas para o erro RMS nos dados de profundidade da câmera
ZED, para as resoluções (a) “2208×1242 px” (b) “1920×1080 px” (c) “1280×720 px”
e (d) “672×376 px”. As linhas pontilhadas representam os limites de previsão de dados
com até 95% de confiança. Cada um dos dados de erro RMS tem uma cor específica
de acordo com a distância Z j . Na distância menor os dados têm uma cor azulada e, no
oposto, uma cor amarelada.
4.5
(2208x1242 px)
(1920x1080 px)
4 (1280x720 px)
(672x376 px)
3.5
3
Erro RMS (m)
2.5
1.5
0.5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Profundidade (m)
Figura 6.5: Erro RMS para cada resolução da câmera ZED, de 1 até 20m.
Em cada teste, são realizadas cento e uma medições de profundidade (devido ao nú-
mero de cantos internos) do padrão 3D . Assim, é possível garantir um cálculo confiável
do valor do erro RMS.
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 47
Coeficientes
(Limites
Resolução (px) SSE R-quadrado RMSE
de confiança
com 95%)
a=0,01805
(0,0084; 0,0276)
“2208×1242” 0,0026 0,9688 0,0172
b=0,1746
(0,1306; 0,2187)
a=0,0106
(0,0043; 0,0170)
“1920×1080” 0,0031 0,9604 0,0177
b=0,2215
(0,1762; 0,2669)
a=0,0184
(0,0104; 0,0265)
“1280×720” 0,0044 0,9649 0,0211
b=0,2106
(0,1764; 0,2449)
a=0,0115
(0,0068; 0,0161)
“672×376” 0,0004 0,9759 0,0077
b=0,2986
(0,2446; 0,3526)
Tabela 6.1: Análise numérica do ajuste para os dados de erro RMS da câmera ZED.
101
(2208x1242 px)
(1920x1080 px)
(1280x720 px)
(672x376 px)
100
Erro RMS (m)
10-1
10-2
0 2 4 6 8 10 12 14 16 18 20
Profundidade (m)
Figura 6.6: Erro RMS em escala logarítmica para cada resolução da câmera ZED, de 1
até 20m.
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 48
Tabela 6.2: Média e variância das curvas do erro RMS na câmera ZED.
Figura 6.8: Processo de captura de dados para determinação do erro RMS no MS Kinect
v1, v2 e a câmera ZED.
6.2.1 Resultados
Os resultados da captura e representação 3D dos cantos são mostrados na Figura 6.9,
mostra-se a imagem RGB, o mapa de profundidade e o registro das nuvens de pontos
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 49
(ideal e real) para uma distância Z j = 3. Pode-se ver que os dados capturados com a
câmera ZED são menos ruidosos se comparado ao MS Kinect v1 e v2, Figura 6.9a e
Figura 6.9b respectivamente. Igualmente aos resultados da Subseção 6.1.1, a maior re-
solução da câmera ZED permite uma melhor representação dos cantos no espaço 3D
(Figura 6.9c). Isto é refletido diretamente na diminuição do erro RMS.
(a)
(b)
(c)
Figura 6.9: Resultados da captura até a representação 3D dos cantos para uma distância
Z j = 3m, usando os sensores (a) MS Kinect v1, (b) v2 e (c) câmera ZED.
0, 98. A Tabela 6.3 lista os coeficientes a e b para a Equação 4.3, além dos valores SSE,
R-quadrado, RMSE que determinam a qualidade do ajuste.
Coeficientes
Sensor (Limites de SSE R-quadrado RMSE
confiança com 95%)
a=0,002002
(0,000984; 0,00302)
MS Kinect v1 1,144e-05 0,9825 0,001513
b=0,9603
(0,7695; 1,151)
a=0,001224
(-0,008982; 0,01143)
MS Kinect v2 3.562e-06 0,9903 0,001887
b=1,074
(-1,847; 3,995)
a=0,003049
(0,0022; 0,003898)
Stereolabs ZED 1,829e-06 0,9866 0,0006762
b=0,6242
(0,513; 0,7353)
Comparando as três curvas apresentadas na Figuras 6.11 e 6.12, pode-se ver que
a amplitude do erro RMS em “Kinect v2 (512×424 px)” é menor do que em “ZED
(2208×1242 px)” e “Kinect v1 (640×480 px)” até 2 m. A partir dos 3 m, o erro RMS
da ZED é menor que do os dois kinects, devido ao fato de seu mapa de profundidade ser
de melhor resolução em comparação com outros dispositivos. Enquanto a curva do erro
do Kinect v1 a partir de 1,3 m mantém um aumento de amplitude maior do que as outras
curvas. No caso do MS Kinect v1 e v2 o aumento do erro é rápido quando a distância for
maior que 3 m, pois os dois sensores deixam de fornecer dados de profundidade quando
estão a grandes distâncias.
Na Tabela 6.4 mostra-se a média e os valores de variância para as curvas de erro RMS
da Figura 6.11. Esses valores representam o comportamento do erro global nos três eixos
de coordenadas (X,Y, Z) para cada sensor 3D.
0.035
Valores de erro RMS
Dados Excluídos
Curva Ajustada
0.03
0.025
Erro RMS (m)
0.02
0.015
0.01
0.005
0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Profundidade (m)
(a)
0.035
Valores de erro RMS
Dados Excluídos
Curva Ajustada
0.03
0.025
Erro RMS (m)
0.02
0.015
0.01
0.005
0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Profundidade (m)
(b)
0.024
Valores de erro RMS
Dados Excluídos
0.022 Curva Ajustada
0.02
0.018
0.016
Erro RMS (m)
0.014
0.012
0.01
0.008
0.006
0.004
0.5 1 1.5 2 2.5 3
Profundidade (m)
(c)
Figura 6.10: Curvas ajustadas para os valores de erro RMS do (a) MS Kinect v1, (b) MS
Kinect v2 e (c) Stereolabs ZED.
CAPÍTULO 6. EXPERIMENTOS E RESULTADOS 52
0.03
Erro RMS (m)
0.02
0.01
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3
Profundidade (m)
Figura 6.11: Curvas do erro RMS para MS Kinect v1/v2 e Stereolabs ZED de 1 até 3m.
-1
10
Kinect v2 (512x424 px)
Kinect v1 (640x480 px)
ZED (2208x1242 px)
Erro RMS (m)
10-2
10-3
0 0.5 1 1.5 2 2.5 3
Profundidade (m)
Figura 6.12: Curvas do erro RMS em escala logarítmica para MS Kinect v1/v2 e Stereo-
labs ZED de 1 até 3m.
média entre os tempos individuais de cada captura. Como pode-se ver na Tabela 6.5, o
tempo mínimo é obtido quando a menor resolução de um dispositivo é usada.
Conclusão
Nesta dissertação, propomos um método genérico para a estimação do erro RMS nos
dados de profundidade fornecidos por qualquer dispositivo capaz de capturar uma imagem
RGB e gerar um mapa de profundidade de uma mesma cena, ao mesmo tempo. Uma série
de cantos extraídos de um tabuleiro de xadrez são usadas para encontrar uma nuvem de
pontos estimada que é comparada com outra nuvem chamada de ideal, representando os
valores verdadeiros (ground truth). Usando inicialmente um procedimento de registro
3D, a estimação do erro RMS é realizada depois.
Após obtidos os valores de erro RMS para várias distâncias entre um padrão e o sensor
testado, é realizado um ajuste de curva a fim de adquirir a relação matemática entre o erro
e a profundidade. Esse tipo de abordagem é extremamente importante em aplicações
que dependem do erro do dispositivo para ter melhor desempenho como, por exemplo,
os métodos 3D em computação gráfica, realidade virtual e robótica probabilística (para
mapeamento e SLAM visual).
O método propõe que um padrão multiplano seja usado para estimar o erro do sensor
3D. A construção do tabuleiro constitui um desafio à parte, uma vez que para obter re-
sultados mais precisos do erro RMS é preciso que o padrão tenha planos completamente
ortogonais e sua superfície seja complemente lisa. A principal vantagem de usar um ta-
buleiro de xadrez está na sua capacidade de quantificar os erros na resolução espacial e de
profundidade. Nos experimentos, os valores mais confiáveis do erro RMS foram obtidos
usando padrões de dois e três planos, pois o erro é analisado de forma separada e em dois
e três eixos respectivamente. Os testes foram realizados com o uso de padrões do tipo
tabuleiros de xadrez por serem de fácil construção, custo reduzido e, seus cantos são bem
definidos facilitando detecção a longas distâncias.
Para verificar e validar o método desenvolvido foi construído um sistema embarcado
baseado na placa NVIDIA Jetson TK1 e usados sensores 3D (Ortiz et al. 2016). Com este
sistema, foram obtidas as curvas de erro RMS do MS Kinect v1, v2 e a câmera Stereolabs
ZED, e realizada uma comparação entre eles. Nesta plataforma foram programados os
algoritmos dos processos do método proposto. O algoritmo é genérico e pode ser progra-
mado em qualquer placa de desenvolvimento ou computador.
Nos testes, foram usadas imagens RGB retificadas (sem distorção) e dispositivos con-
figurados a sua melhor configuração para que forneçam dados de profundidade de alta
qualidade. O problema da calibração dos sensores 3D não é abordado neste trabalho, pois
existe uma ampla quantidade de informação sobre como realizar este processo de forma
CAPÍTULO 7. CONCLUSÃO 55
A partir dos experimentos feitos, nota-se que o método proposto é eficaz, propiciando
estimar de forma correta o erro RMS nos dados de profundidade. Assim, este trabalho de-
verá se tornar uma contribuição importante para outros trabalhos futuros que necessitem,
como parâmetro útil, da exatidão dos dados de profundidade fornecidos pelos sensores
3D.
Referências Bibliográficas
Aguilar, J.J., F. Torres e M.A. Lope (1996), ‘Stereo vision for 3D measurement: accuracy
analysis, calibration and industrial applications’, Measurement 18(4), 193–200.
Ballard, Dana Harry e Christopher M. Brown (1982), Computer Vision, 1sta edição, Pren-
tice Hall Professional Technical Reference.
Beltran, Diana e Luis Basañez (2014), ‘A Comparison between Active and Passive 3D
Vision Sensors: BumblebeeXB3 and Microsoft Kinect’, pp. 725–734.
Bradski, Gary (2000), ‘The OpenCV Library’, Dr. Dobbs J. Softw. Tools Prof. Program
1, 1–6.
Choo, Benjamin, Michael Landau, Michael DeVore e Peter A. Beling (2014), ‘Statistical
Analysis-Based Error Models for the Microsoft KinectTM Depth Sensor’, Sensors
14(9), 17430.
Cloix, Séverine, Guido Bologna, Viviana Weiss, Thierry Pun e David Hasler (2016),
‘Low-power depth-based descending stair detection for smart assistive devices’, EU-
RASIP Journal on Image and Video Processing 2016(1), 33.
57
REFERÊNCIAS BIBLIOGRÁFICAS 58
Cyganek, Boguslaw e J. Paul Siebert (2009), 2D and 3D Vision Formation, John Wiley &
Sons, Ltd, pp. 15–94.
Foix, S., G. Alenya e C. Torras (2011), ‘Lock-in Time-of-Flight (ToF) Cameras: A Sur-
vey’, IEEE Sensors Journal 11(9), 1917–1926.
Galna, Brook, Gillian Barry, Dan Jackson, Dadirayi Mhiripiri, Patrick Olivier e Lynn Ro-
chester (2014), ‘Accuracy of the Microsoft Kinect sensor for measuring movement
in people with Parkinson’s disease’, Gait & Posture 39(4), 1062–1068.
Geiger, A., F. Moosmann, Ö. Car e B. Schuster (2012), Automatic camera and range
sensor calibration using a single shot, em ‘2012 IEEE International Conference on
Robotics and Automation’, pp. 3936–3943.
Harris, Chris e Mike Stephens (1988), ‘A combined corner and edge detector.’,
15(50), 10–5244.
Kazmi, Wajahat, Sergi Foix, Guillem Alenyà e Hans Jørgen Andersen (2014), ‘Indoor
and outdoor depth imaging of leaves with time-of-flight and stereo vision sensors:
Analysis and comparison’, {ISPRS} Journal of Photogrammetry and Remote Sen-
sing 88, 128–146.
Kolb, Andreas, Erhardt Barth, Reinhard Koch e Rasmus Larsen (2009), ‘Time-of-Flight
Sensors in Computer Graphics’, Eurographics State of the Art Reports pp. 119–134.
REFERÊNCIAS BIBLIOGRÁFICAS 59
Kuzuhara, Yukako, Kensuke Kawamura, Rena Yoshitoshi, Toru Tamaki, Shun Sugai, Mai
Ikegami, Yuzo Kurokawa, Taketo Obitsu, Miki Okita, Toshihisa Sugino e Taisuke
Yasuda (2015), ‘A preliminarily study for predicting body weight and milk proper-
ties in lactating Holstein cows using a three-dimensional camera system’, Computers
and Electronics in Agriculture 111, 186–193.
Kytö, Mikko, Mikko Nuutinen e Pirkko Oittinen (2011), ‘Method for measuring stereo
camera depth accuracy based on stereoscopic vision’, Proc. SPIE 7864, 78640I–
78640I–9.
Li, Billy Y.L., Mingliang Xue, Ajmal Mian, Wanquan Liu e Aneesh Krishna (2016),
‘Robust RGB-D face recognition using Kinect sensor’, Neurocomputing .
Liu, Z., L. Zhou, H. Leung e H. P. H. Shum (2016), ‘Kinect Posture Reconstruction Based
on a Local Mixture of Gaussian Process Models’, IEEE Transactions on Visualiza-
tion and Computer Graphics 22(11), 2437–2450.
Luo, P.F. e S.S. Liou (1998), ‘Measurement of curved surface by stereo vision and error
analysis’, Optics and Lasers in Engineering 30(6), 471–486.
Marr, David Courtnay (2010), Vision: A Computational Investigation into the Human
Representation and Processing of Visual Information, Oxford University Press.
Qin, Shuxin, Xiaoyang Zhu, Yiping Yang e Yongshi Jiang (2014), ‘Real-time Hand Ges-
ture Recognition from Depth Images Using Convex Shape Decomposition Method’,
Journal of Signal Processing Systems 74(1), 47–58.
Samir, M., E. Golkar e A. A. A. Rahni (2015), Comparison between the Kinect V1 and
Kinect V2 for respiratory motion tracking, em ‘IEEE International Conference on
Signal and Image Processing Applications (ICSIPA)’, pp. 150–155.
REFERÊNCIAS BIBLIOGRÁFICAS 60
Shi, Jianbo e C. Tomasi (1994), Good features to track, em ‘Proceedings of IEEE Confe-
rence on Computer Vision and Pattern Recognition’, pp. 593–600.
Smith, Stephen M. e J. Michael Brady (1997), ‘SUSAN-A New Approach to Low Level
Image Processing’, International Journal of Computer Vision 23(1), 45–78.
Song, Xibin, Fan Zhong, Yanke Wang e Xueying Qin (2014), ‘Estimation of Kinect depth
confidence through self-training’, The Visual Computer 30(6), 855–865.
Taylor, J.R. (1997), Introduction To Error Analysis: The Study of Uncertainties in Physi-
cal Measurements, A series of books in physics, University Science Books.
Trajković, Miroslav e Mark Hedley (1998), ‘Fast corner detection’, Image and Vision
Computing 16(2), 75–87.
Trucco, E. e A. Verri (1998), Introductory Techniques for 3-D Computer Vision, Prentice
Hall.
Wan, Dingrui e Jie Zhou (2008), ‘Stereo vision using two {PTZ} cameras’, Computer
Vision and Image Understanding 112(2), 184–194.
Wei, Q., J. Shan, H. Cheng, Z. Yu, B. Lijuan e Z. Haimei (2016), A method of 3D human-
motion capture and reconstruction based on depth information, em ‘2016 IEEE In-
ternational Conference on Mechatronics and Automation’, pp. 187–192.
Xiong, Yalin e L. Matthies (1997), Error analysis of a real-time stereo system, em ‘Pro-
ceedings of IEEE Computer Society Conference on Computer Vision and Pattern
Recognition’, pp. 1087–1093.
Yang, L., L. Zhang, H. Dong, A. Alelaiwi e A. E. Saddik (2015), ‘Evaluating and Im-
proving the Depth Accuracy of Kinect for Windows v2’, IEEE Sensors Journal
15(8), 4275–4285.
Yang, Zaiming e Y.F. Wang (1996), ‘Error analysis of 3D shape construction from struc-
tured lighting’, Pattern Recognition 29(2), 189–206.
Zhang, Z. (2012), ‘Microsoft Kinect Sensor and Its Effect’, IEEE MultiMedia 19(2), 4–
10.
Informações adicionais
�
u � −Cx
pi
v p
� −Cy
13 pi ← Zc p� , i Zc p� , Zc p� ;
fx i fy i i
�
14 (Xc p� ,Y c p� , Zc p� ) ← pi ;
i i i
15 fim
APÊNDICE A. INFORMAÇÕES ADICIONAIS 62