本文主要是介绍论文阅读【MM-PCQA: Multi-Modal Learning for No-reference Point Cloud Quality Assessment】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
论文阅读
MM-PCQA: Multi-Modal Learning for No-reference Point Cloud Quality Assessment
- 论文阅读
- 摘要
- Ⅰ引言
- Ⅱ 相关工作
- Ⅲ 原理
- A.准备工作
- B.点云特征提取
- 1.生成子模型
- 2.特征提取
- C.图像特征提取
- D.对称跨模态注意
- E.质量回归和损失函数
- Ⅳ 实验结果
- 参考
作者:Zicheng Zhang, Wei Sun, Xiongkuo Min, Member, IEEE, Quan Zhou, Jun He, Qiyuan Wang, and Guangtao Zhai, Senior Member, IEEE
来源:IJCAI2023
论文:paper
代码:code
摘要
- 之前的工作:使用
单模态信息
进行PCQA- 从
二维投影
中提取- 优:投影图片包含丰富的纹理和语义信息
- 缺:高度依赖视点
- 从
三维点云
中提取- 优:三维点云对几何畸变更为敏感,对视点不变性
- 缺:没有纹理和语义信息
- 从
- 现在的工作:提出了一种新的
多模式无参考点云质量评估(NR-PCQA)度量
- 将点云分成子模型来表示局部几何失真(基于点)
- 将点云渲染成二维图像投影进行纹理特征提取(基于图像)
- 采用对称跨模态注意融合多模态质量感知信息
Ⅰ引言
-
为什么采用多模态?
答:如下图所示,不同类型的失真对不同模态的视觉感知是不同的。点云模态
对结构失真和几何下采样更为敏感,而无法识别纹理噪声;图像模态
对颜色量化和颜色噪声引起的纹理失真更为敏感。
-
主要贡献:
-
提出了一种新的NR-PCQA (MM-PCQA)多模态学习框架,以交互地使用来自点云和图像模态的信息
-
为了保留局部模式的平滑度和粗糙度等信息,本文建议将点云分成子模型,而不是采样点作为点云编码器的输入。
-
为了更好地融合多模态特征,本文使用跨模态关注来建模,从两个模态中提取的质量感知特征之间的相互关系。
-
实验结果:
PLCC SRCC KRCC SJTU 0.92 0.91 0.78 WPC 0.83 0.83 0.64
-
Ⅱ 相关工作
- Quality Assessment for Point Cloud
- Multi-modal Learning for Point Cloud
Ⅲ 原理
原理:首先将点云分割成子模型,放入点云编码器
θ P \theta_{P} θP中。投影图像直接由彩色点云渲染,并放入图像编码器
θ I \theta_{I} θI中。随后,在对称交叉模态注意(Symmetric Cross-Modality Attention)的帮助下,优化了质量感知编码器特征。最后,通过质量回归将特征拼接解码为最终质量分数。
A.准备工作
点云
: P = { g ( i ) , c ( i ) } i = 1 N P=\{{g_{(i)},c_{(i)}\}}_{i=1}^N P={g(i),c(i)}i=1N, 其中: g ( i ) ∈ R 1 ✕ 3 g_{(i)}∈\Bbb{R}^{1✕3} g(i)∈R1✕3为几何坐标, c ( i ) ∈ R 1 ✕ 3 c_{(i)}∈\Bbb{R}^{1✕3} c(i)∈R1✕3为RGB颜色信息, N N N为点数
模态
:
P ^ \hat{P} P^: 对原始几何坐标进行归一化得到点云模态,不含颜色信息
I I I: 对彩色点云 P P P绘制成二维投影生成图像模态
B.点云特征提取
为了避免下采样带来的几何误差,并保持局部图案的平滑性和粗糙度,本文提出将点云分割成多个局部子模型来表示几何结构特征。
1.生成子模型
具体而言:
-
给定一个归一化点云 P ^ \hat{P} P^,采用最远点采样(FPS)来获得 N δ N_{\delta} Nδ个锚点(anchor points) { δ m } m = 1 N δ \{\delta_{m}\}_{m=1}^{N_{\delta}} {δm}m=1Nδ
-
对于每个锚点 δ m \delta_{m} δm,利用K近邻算法找到 N s N_{s} Ns个近邻点,从而形成一个子模型:
S = { K N N k = N s ( δ m ) } m = 1 N δ \begin{align}S=\{KNN_{k=N_{s}}(\delta_{m})\}_{m=1}^{N_{\delta}}\end{align} S={KNNk=Ns(δm)}m=1Nδ【注:】 N δ ✕ N s > N N_{\delta}✕N_{s} > N Nδ✕Ns>N 确保子模型覆盖原始点云中足够多的点。
-
子模型生成过程如下图
2.特征提取
-
从 N δ N_{\delta} Nδ个子模型中随机选择 N p N_{p} Np个子模型用于几何特征提取;
-
使用点云特征编码器 θ P \theta_{P} θP将选择的子模型映射到质量感知嵌入空间:
F P = { θ P ( S l ) } l = 1 N P F ~ P = 1 N P ∑ t = 1 N P F P l \begin{align} F_{P}=\{\theta_{P}(S_{l})\}_{l=1}^{N_{P}}\\ \tilde{F}_{P}=\frac{1}{{N_{P}}}\displaystyle\sum_{t=1}^{N_{P}} {F}_{P}^ l \end{align} FP={θP(Sl)}l=1NPF~P=NP1t=1∑NPFPl其中: F P l ∈ R 1 ✕ C P F_{P}^l∈\Bbb{R}^{1✕C_{P}} FPl∈R1✕CP表示第l个子模型的质量嵌入(quality-aware embedding), C P C_{P} CP表示点云编码器 θ P ( ⋅ ) \theta_{P}(·) θP(⋅)输出通道的数量, F ~ P l ∈ R 1 ✕ C P \tilde{F}_{P}^l∈\Bbb{R}^{1✕C_{P}} F~Pl∈R1✕CP表示平均池化后的结果。
C.图像特征提取
-
投影图像由随机视点的彩色点云渲染得到,保持固定的观看距离来保持纹理一致性。由于不同尺度上的纹理视觉质量是不同的,因此本文提出2D CNN 主干网络,利用多尺度质量感知特征,更好地模拟人类对纹理质量的感知。
-
假设二维CNN主干有 j 层,分层特征可以描述为:
θ I ( x ) = { α 1 ( x ) ⊕ α 2 ( x ) ⋅ ⋅ ⋅ ⊕ α j ( x ) a l p h a k ( x ) = G P A ( L k ( x ) ) , k ∈ { 1 , . . . , j } \begin{align} \theta_{I}(x)=\{\alpha_{1}(x)\oplus \alpha_{2}(x)···\oplus \alpha_{j}(x)\\ alpha_{k}(x)=GPA(L_{k}(x)),k∈\{1,...,j\} \end{align} θI(x)={α1(x)⊕α2(x)⋅⋅⋅⊕αj(x)alphak(x)=GPA(Lk(x)),k∈{1,...,j}其中: θ I ( ⋅ ) \theta_{I}(·) θI(⋅)表示分层图像编码器, ⊕ ( ⋅ ) \oplus(·) ⊕(⋅)表示级联操作,**GPA(·)**表示全局平均池化操作, L k ( x ) L_{k}(x) Lk(x)表示第k层的全局平均池化操作, α k ( x ) \alpha_{k}(x) αk(x)表示从 L k ( x ) L_{k}(x) Lk(x)平均池化特征
-
然后,使用分层图像编码器 θ I ( ⋅ ) \theta_{I}(·) θI(⋅)将二维图像嵌入到质量感知空间中:
F I = { θ I ( I t ) } t = 1 N I , F ~ I = 1 N I ∑ t = 1 N I F I t \begin{align}F_{I}=\{\theta_{I}(I_{t})\}_{t=1}^{N_{I}},\tilde{F}_{I}=\frac{1}{N_{I}}\displaystyle\sum_{t=1}^{N_{I}} {F}_{I}^ t\end{align} FI={θI(It)}t=1NI,F~I=NI1t=1∑NIFIt
其中: F I l ∈ R 1 ✕ C I F_{I}^l∈\Bbb{R}^{1✕C_{I}} FIl∈R1✕CI表示第 t 个投影图像 I t I_{t} It的质量嵌入(quality-aware embedding), C I C_{I} CI表示二维图像编码器 θ I ( ⋅ ) \theta_{I}(·) θI(⋅)输出通道的数量, F ~ I l ∈ R 1 ✕ C I \tilde{F}_{I}^l∈\Bbb{R}^{1✕C_{I}} F~Il∈R1✕CI表示平均池化后的结果。
D.对称跨模态注意
-
对称跨模态注意模块是为了研究点云和图像视觉质量特征之间的相互作用,用线性投影将 F P l ∈ R 1 ✕ C P F_{P}^l∈\Bbb{R}^{1✕C_{P}} FPl∈R1✕CP和 F I l ∈ R 1 ✕ C I F_{I}^l∈\Bbb{R}^{1✕C_{I}} FIl∈R1✕CI调整到同一维度:
F ^ P = W P F ~ P , F ^ I = W I F ~ I \begin{align}\hat{F}_{P}=W_{P}\tilde{F}_{P}, \hat{F}_{I}=W_{I}\tilde{F}_{I}\end{align} F^P=WPF~P,F^I=WIF~I
其中: F ^ P ∈ R 1 ✕ C ′ \hat{F}_{P}∈\Bbb{R}^{1✕C'} F^P∈R1✕C′, F ^ I ∈ R 1 ✕ C ′ \hat{F}_{I}∈\Bbb{R}^{1✕C'} F^I∈R1✕C′表示调整后的特征, W P , W I W_{P},W_{I} WP,WI表示可学习的线性映射, C ′ C' C′表示调整后的通道数量。 -
为了更好的探索模态之间的区别,加入了多头注意力模块:
Γ ( Q , K , V ) = ( h 1 ⊕ h 2 ⋅ ⋅ ⋅ ⊕ h n ) h μ = β ( Q W μ Q , K W μ K , V W μ V ) ∣ μ = 1 n β ( Q , K , V ) = s o f t m a x ( Q K T / d ) V \begin{align} \Gamma(Q,K,V)=(h_{1}\oplus h_{2}···\oplus h_{n})\\ h_{\mu}=\beta(QW_{\mu}^Q,KW_{\mu}^K,VW_{\mu}^V)|_{\mu=1}^n\\ \beta(Q,K,V)= softmax(QK^T/\sqrt d)V \end{align} Γ(Q,K,V)=(h1⊕h2⋅⋅⋅⊕hn)hμ=β(QWμQ,KWμK,VWμV)∣μ=1nβ(Q,K,V)=softmax(QKT/d)V其中: Γ ( ⋅ ) \Gamma(·) Γ(⋅)表示多头注意力操作, β ( ⋅ ) \beta(·) β(⋅)表示注意力函数, h μ h_{\mu} hμ表示第 μ \mu μ个头, W , W Q , W K , W V W,W_{Q},W_{K},W_{V} W,WQ,WK,WV表示可学习的线性映射。
如图所示,双方模态进行交互学习,最终的质量嵌入可以通过对称跨模态注意模块获得的模态内特征和引导的多模态特征进行串联:
F ^ Q = F ^ P ⊕ F ^ I ⊕ Ψ ( F ^ P , F ^ I ) \begin{align}\hat{F}_{Q}=\hat{F}_{P}\oplus \hat{F}_{I}\oplus \Psi(\hat{F}_{P},\hat{F}_{I})\end{align} F^Q=F^P⊕F^I⊕Ψ(F^P,F^I)
其中: Ψ ( ⋅ ) \Psi(·) Ψ(⋅)表示对称跨模态注意操作, F ^ Q \hat{F}_{Q} F^Q表示最终的质量特征。
E.质量回归和损失函数
-
损失函数:
-
均方误差: L M S E = 1 n ∑ η = 1 n ( q η − q η ′ ) 2 L_{MSE}=\frac{1}{n}\displaystyle\sum_{\eta=1}^{n} (q_{\eta} - q'_{\eta})^2 LMSE=n1η=1∑n(qη−qη′)2
其中: q η q_{\eta} qη表示预测质量, q η ′ q'_{\eta} qη′表示标签,n是mini-batch的大小。 -
秩误差:
L r a n k i j = m a x ( 0 , ∣ q i − q j ∣ − e ( q i − q j ) ⋅ ( q i ′ − q j ′ ) e ( q i − q j ) = { 1 , q i ≥ q j − 1 , q i < q j \begin{align} L_{rank}^{ij}=max(0,|q_{i} - q_{j}| - e(q_{i} - q_{j})·(q'_{i} - q'_{j})\\ e(q_{i} - q_{j})= \begin{cases} 1 , & { q_{i}≥q_{j}} \\ -1, & {q_{i}<q_{j}} \end{cases} \end{align} Lrankij=max(0,∣qi−qj∣−e(qi−qj)⋅(qi′−qj′)e(qi−qj)={1,−1,qi≥qjqi<qj其中:i,j是两个点云的相关索引,,秩误差可以表示为:
L r a n k i j = 1 n 2 ∑ i = 1 n ∑ j = 1 n L r a n k i j \begin{align} L_{rank}^ij=\frac{1}{n^2}\displaystyle\sum_{i=1}^{n}\displaystyle\sum_{j=1}^{n} L_{rank}^{ij} \end{align} Lrankij=n21i=1∑nj=1∑nLrankij
【当点云的质量标签接近时,秩损失能更好地帮助模型区分质量差异】
+ 最终的损失函数是两个损失函数的加权和:
L o s s = λ 1 L M S E + λ 2 L r a n k \begin{align} Loss=\lambda_{1}L_{MSE}+\lambda_{2}L_{rank} \end{align} Loss=λ1LMSE+λ2Lrank -
Ⅳ 实验结果
- 数据库:SJTU, WPC
- 实验设置:使用Adam优化器,权值衰减为1e-4,初始学习率设为5e-5。默认情况下,模型训练了50个epoch。我们设置点云子模型尺寸Ns为2048,设置 N δ = N / N s + 1 N_{\delta}= N/Ns + 1 Nδ=N/Ns+1 。将分辨率为1920×1080×3的投影图像随机裁剪成分辨率为224×224×3的图像块作为输入。实验过程中,每个点云随机选取6个子模型和4张投影图像。使用PointNet++作为点云编码器,使用分层ResNet50作为图像编码器,其中ResNet50使用ImageNet数据库上的预训练模型进行初始化。多头注意力模块采用8个头部,前馈维度设置为2048。lse和Lrank的权值 λ 1 \lambda_{1} λ1和 λ 2 \lambda_{2} λ2均设为1。
- 实验结果
消融实验:
参考
[1] Zhang Z, Sun W, Min X, et al. MM-PCQA: Multi-Modal Learning for No-reference Point Cloud Quality Assessment[J]. arXiv preprint arXiv:2209.00244, 2022.
这篇关于论文阅读【MM-PCQA: Multi-Modal Learning for No-reference Point Cloud Quality Assessment】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!