点云质量评估方法及执行步骤
点云质量评价 Point Cloud Quality Assessment
分类
- 全参考
- 半参考
- 无参考
评价指标
- p2point:对每个点云
a
a
a 中的点
a
i
a_i
ai,去找到失真的点云
b
b
b 中距离
a
i
a_i
ai 最近的那个点
b
i
b_i
bi 来作为对应的点来比较
- 优点:效率高
- 缺点:精准度有限,不允许平面之间的滑动
- p2plane:求源点云中的点 p i p_i pi 到目标点云中 q i q_i qi 组成的曲面的距离,需要提供每个点的法向量
- PSNR_yuv
- 点云投影成图像,进行图像质量评估(感知质量)
Predicting the Perceptual Quality of Point Cloud: A 3D-to-2D Projection-Based Exploration,将点云向六个垂直图像的平面投影,然后用图像评价指标评价图像质量:the weighted peak signal-to-noise ratio (PSNR), structural similarity (SSIM), feature similarity (FSIM) and natural image quality evaluator (NIQE)
- FR-PCQA
- NR-PCQA
p2plane
E
(
R
,
t
)
=
∑
i
=
1
N
(
(
R
p
i
+
t
−
q
i
)
T
n
i
)
2
E(R,t)=\sum^{N}_{i=1}{((Rp_i + t - q_i)^T n_i)^2}
E(R,t)=i=1∑N((Rpi+t−qi)Tni)2
其中,源点云(通常是旋转的)
P
=
{
p
1
,
⋯
,
p
N
p
,
p
i
∈
R
3
}
P=\{p_1,\cdots, p_{N_{p}}, p_i\in R^3 \}
P={p1,⋯,pNp,pi∈R3};目标点云(参考点云,通常固定)
Q
=
{
q
1
,
⋯
,
q
N
1
,
q
i
∈
R
3
}
Q=\{q_1,\cdots,q_{N_{1}},q_i \in R^3 \}
Q={q1,⋯,qN1,qi∈R3},每个
q
i
q_i
qi 点的法向量为
n
i
n_i
ni 。
上式没有解析解,可采用最小二乘法。因为旋转矩阵 R R R 有9个元素,但要满足 R R T = I RR^T=I RRT=I, ∣ R ∣ = 1 \vert R\vert=1 ∣R∣=1 的约束,故 R R R 不能随便选。此时可以采用欧拉角的方式描述旋转矩阵。
α
\alpha
α 是绕 x 轴旋转的角度,
β
\beta
β 是绕 y轴旋转角度,
γ
\gamma
γ 是绕 z轴的角度,则有每个轴对应的旋转矩阵:
R
x
(
α
)
=
[
1
0
0
0
cos
α
−
sin
α
0
sin
α
cos
α
]
,
R
y
(
β
)
=
[
1
0
0
0
cos
β
−
sin
β
0
sin
β
cos
β
]
,
R
z
(
γ
)
=
[
1
0
0
0
cos
γ
−
sin
γ
0
sin
γ
cos
γ
]
R_x(\alpha)=\begin{bmatrix} 1&0&0\\ 0&\cos\alpha &-\sin\alpha \\ 0&\sin\alpha &\cos\alpha \\ \end{bmatrix}, R_y(\beta)=\begin{bmatrix} 1&0&0\\ 0&\cos\beta &-\sin\beta \\ 0&\sin\beta &\cos\beta \\ \end{bmatrix}, R_z(\gamma)=\begin{bmatrix} 1&0&0\\ 0&\cos\gamma &-\sin\gamma \\ 0&\sin\gamma &\cos\gamma \\ \end{bmatrix}
Rx(α)=
1000cosαsinα0−sinαcosα
,Ry(β)=
1000cosβsinβ0−sinβcosβ
,Rz(γ)=
1000cosγsinγ0−sinγcosγ
故旋转矩阵可计算得到:
R
=
R
z
(
γ
)
R
x
(
α
)
R
y
(
β
)
=
[
1
0
0
0
cos
γ
−
sin
γ
0
sin
γ
cos
γ
]
[
1
0
0
0
cos
α
−
sin
α
0
sin
α
cos
α
]
[
1
0
0
0
cos
β
−
sin
β
0
sin
β
cos
β
]
=
[
r
11
r
12
r
13
r
21
r
22
r
23
r
31
r
32
r
33
]
R=R_z(\gamma)R_x(\alpha)R_y(\beta)= \begin{bmatrix} 1&0&0\\ 0&\cos\gamma &-\sin\gamma \\ 0&\sin\gamma &\cos\gamma \\ \end{bmatrix} \begin{bmatrix} 1&0&0\\ 0&\cos\alpha &-\sin\alpha \\ 0&\sin\alpha &\cos\alpha \\ \end{bmatrix} \begin{bmatrix} 1&0&0\\ 0&\cos\beta &-\sin\beta \\ 0&\sin\beta &\cos\beta \\ \end{bmatrix} \\ =\begin{bmatrix} r_{11}&r_{12}&r_{13}\\ r_{21}&r_{22}&r_{23}\\ r_{31}&r_{32}&r_{33}\\ \end{bmatrix}
R=Rz(γ)Rx(α)Ry(β)=
1000cosγsinγ0−sinγcosγ
1000cosαsinα0−sinαcosα
1000cosβsinβ0−sinβcosβ
=
r11r21r31r12r22r32r13r23r33
这样的
R
R
R 矩阵是个非线性矩阵,不能采用最小二乘法,而采用高斯牛顿或列文伯格的方法,计算复杂。最终,采用近似的方法:
α
,
β
,
γ
→
0
cos
θ
≈
1
,
sin
θ
≈
θ
,
θ
2
≈
0
,
i
f
θ
≈
0
\alpha,\beta,\gamma \rightarrow 0 \\ \cos{\theta}\approx1, \sin{\theta}\approx\theta, \theta^2\approx0,if\ \theta\approx0
α,β,γ→0cosθ≈1,sinθ≈θ,θ2≈0,if θ≈0
则有
R
≈
[
1
α
β
−
γ
α
γ
+
β
γ
α
β
γ
+
1
β
γ
−
α
−
β
α
1
]
≈
[
1
−
γ
β
γ
1
−
α
−
β
α
1
]
R\approx \begin{bmatrix} 1&\alpha \beta-\gamma&\alpha\gamma+\beta \\ \gamma&\alpha\beta\gamma+1&\beta\gamma-\alpha \\ -\beta&\alpha&1 \\ \end{bmatrix}\approx \begin{bmatrix} 1&-\gamma&\beta\\ \gamma&1&-\alpha \\ -\beta&\alpha&1 \\ \end{bmatrix}
R≈
1γ−βαβ−γαβγ+1ααγ+ββγ−α1
≈
1γ−β−γ1αβ−α1
…
最后通过最小二乘法解得线性方程,从而得到
[
R
,
t
]
\begin{bmatrix} R,t \end{bmatrix}
[R,t].
评价步骤
- 数据预处理:
- 对源点云中的点在目标点云中寻找最近邻居
- 移除距离大的点, ∣ ∣ p i − q i ∣ ∣ \vert\vert p_i-q_i\vert\vert ∣∣pi−qi∣∣ 超过阈值
- 计算 R , t R, t R,t
- 验证
- 评估迭代的收敛性: E ( R , t ) ↓ E(R,t)\downarrow E(R,t)↓, Δ R , Δ t ↓ \Delta R, \Delta t \downarrow ΔR,Δt↓
- 迭代未终止: P ← R P + t P\leftarrow RP+t P←RP+t,重复1-3步,直至迭代成功
loading…