点云空间学习
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
- Qi C R, Su H, Mo K, et al. Pointnet: Deep learning on point sets for 3d classification and segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 652-660.
PointNet首次基于原始点云进行深度学习,其提出了点云深度学习的三大原则: 无序性、点间联系、变换一致性。基于此, PointNet在点云上逐点运用了MLP进行变换, 并且构造了T-Net进行对抗点云的仿射变换, 最终使用max pool进行对称聚合。
缺少对局部结构的特征学习
PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
- Qi C R, Yi L, Su H, et al. Pointnet++: Deep hierarchical feature learning on point sets in a metric space[J]. Advances in neural information processing systems, 2017, 30.
PointNet没有捕捉到点的局部结构特征,限制了细粒度和复杂场景的识别、泛化能力。PointNet++则引出了一个set abstraction层对点云进行多级学习。set abstraction定义了多级多块的局部邻域结构, 其在每一个局部邻域中都使用了mini-PointNet来进行特征抽取。然而由于点云是非均匀分布的, 不同的局部邻域的密度不一样, 因此PointNet++提出了两种自适应密度的特征融合模块: Multi-scale grouping(MSG) 和 Multi-resolution grouping(MRG)。
另外由于部位分割等任务最终需要输出逐点的特征标签, 因此在set abstraction之后, Pointnet++一方面在同一级内进行反距离的插值传播, 另一方面自顶向下进行反向逐级的特征传播。在同一层内对两种传播特征进行拼接, 即得到该层的逐点特征。
PointConv
- Wu W, Qi Z, Fuxin L. Pointconv: Deep convolutional networks on 3d point clouds[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 9621-9630.
PointCNN
- Li Y, Bu R, Sun M, et al. Pointcnn: Convolution on x-transformed points[J]. Advances in neural information processing systems, 2018, 31.
KPConv
- Thomas H, Qi C R, Deschaud J E, et al. Kpconv: Flexible and deformable convolution for point clouds[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2019: 6411-6420.
PointNet-Based-Hand-Gesture-Recognition
- Mirsu R, Simion G, Caleanu C D, et al. A pointnet-based solution for 3d hand gesture recognition[J]. Sensors, 2020, 20(11): 3226.
- SCIE
工程论文, 其详细描述了如何对3D点云进行预处理, 提取手势, 最终进入PointNet进行特征提取。
PointWeb
- Zhao H, Jiang L, Fu C W, et al. Pointweb: Enhancing local neighborhood features for point cloud processing[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 5565-5573.
- MIT
Deep Hough Voting for 3D Object Detection in Point Clouds
- Qi C R, Litany O, He K, et al. Deep hough voting for 3d object detection in point clouds[C]//proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 9277-9286.
PCT: Point cloud transformer
- Guo M H, Cai J X, Liu Z N, et al. PCT: Point cloud transformer[J]. Computational Visual Media, 2021, 7(2): 187-199.
- 清华
提出了基于Transformer的PCT网络。Transformer在NLP和图像处理取得了巨大成功,其内在的置换不变性也十分适合点云学习。为了更好的捕捉点云局部信息,使用了最远点采样和最近邻搜索来加强输入的embedding处理。实验证明PCT达到了分类分割和法向估计的SOTA。
由于点云和自然语言是完全不同的数据类型,因此PCT对Transformer作出了几项调整:
- Coordinate-based input embedding:Transformer里的positional encoding 是为了区分不同位置的同一个词。然而点云没有位置顺序关系,因此PCT中将 positional encoding 和 input embedding 结合了起来,基于坐标进行编码。
- Optimized offset-attention module:是原始 self-attention 的升级模块。它把原来的attention feature换成了self-attention的输入和attention feature之间的offset。同一个物体在不同的变换下的绝对坐标完全不一样,因此相对坐标更鲁棒。
- Neighbor embedding module: 注意力机制有效捕捉全局特征,但可能忽视局部几何信息,而这在点云中很重要。句子中的每个单独的词都有基本的语义信息,但是点云中孤立的点不存在语义信息。因此使用了一个neighbor embedding 策略来进行改良,让注意力机制着重于分析点局部邻域的信息,而不是孤立的点的信息。
Point Transformer
- Zhao H, Jiang L, Jia J, et al. Point transformer[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 16259-16268.
- 港中文
self-attention是天然的一个集合操作:将位置信息作为元素属性,并且视作集合处理。而另一方面点云天然就是位置属性的集合,因此self-attention直觉上很适合点云数据。之前已经有一些工作在点云分析上使用了attention。他们在整个点云上使用全局的注意力机制,而这会带来昂贵的计算。并且他们使用了标量点积的注意力,即不同通道之间共享相同的聚合权重。
相反,Point Transformer有以下优势:
- 局部应用注意力机制,使得拥有处理百万点数的大场景的能力。
- 使用了vector attention,而这是实现高准确率的重要因素。
- 阐述了position encoding的重要性,而不是像之前的工作一样忽略的位置信息。
RS-Conv
- CVPR 2019
- 中国科学院大学,人工智能学院
相比于传统的卷积结构\(W_j * f_j\),其使用了\(W_{ij}\)来代替\(W_j\),本质上希望通过一个\(\mathcal{M}\)来学习到预先定义的关系向量\(h_{ij}\)的特征,而这个\(\mathcal{M}\)的实现就是一个point-level的MLP。\(h_{ij}\)比较常用的定义就是3D欧拉距离。
\[ \mathcal{T}\left(\mathbf{f}_{x_j}\right)=\mathbf{w}_{i j} \cdot \mathbf{f}_{x_j}=\mathcal{M}\left(\mathbf{h}_{i j}\right) \cdot \mathbf{f}_{x_j} \]
PointCMT
- Yan X, Zhan H, Zheng C, et al. Let Images Give You More: Point Cloud Cross-Modal Training for Shape Analysis[J]. arXiv preprint arXiv:2210.04208, 2022.
- 港中文
单模态的点云模型已经基本走到尽头,如何利用多模态数据(如图片)更好地提升性能呢?一种直接的思路是构建多模态的特征融合网络,但这一方面要特地构建多模态模型结构,另一方面在推理阶段往往难以获得多模态数据。启发于知识蒸馏领域,这篇论文将多模态模型问题转化为知识蒸馏的"老师与学生"问题。PointCMT的知识蒸馏框架可以移植到任意Point模型上快速构建提升。主要步骤:
- 预训练一个大型image-based编码器模型,作为老师。
- 训练图像到点云的解码器CMPG:即将image-based编码的\(D\)维特征映射成\(N \times 3\)的点云形状
- 点云模型接收上一步生成的点云作为输入进行训练,并且通过两个增强的损失函数Feature Enhancement和Classifier Enhancement加强训练。
在Feature Enhancement监督下的CMPG:本质上是一个以EMD为损失函数的映射训练
\[ \mathcal{L}_{\mathrm{EMD}}\left(\mathcal{P}, \hat{\mathcal{P}}^{i m g}\right)=\min _\phi \sum_{p \in \mathcal{P}}\|p-\phi(p)\| \]
Classifier Enhancement Loss:本质上就是迫使点云模型的输出靠近图像模型。注意图像特征依然交给点云模型进行使用,并且在训练中不对图像模型进行训练。
\[ \mathcal{L}_{\text {Classifier }}=\mathcal{D}_{K L}\left(\mathrm{Cls}^{p t s}\left(\mathcal{F}^{i m g}\right) \| \mathrm{Cls}^{p t s}\left(\mathcal{F}^{p t s}\right)\right) \]
Dual Transformer
- Han X F, Jin Y F, Cheng H X, et al. Dual transformer for point cloud analysis[J]. IEEE Transactions on Multimedia, 2022.
- 1区
- 西南大学CS
本质上是将feature level的注意力和channel level注意力融合在了一起。
PointSWD
Nguyen T, Pham Q H, Le T, et al. Point-set distances for learning representations of 3d point clouds[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 10478-10487.
VinUniversity
详细讨论了三种点云距离度量方式: Chamfer divergence ,EMD, 还有自己提的sliced Wasserstein distance。
Chamfer divergence:
\[ d_{\mathrm{CD}}(P, Q)=\frac{1}{|P|} \sum_{x \in P} \min _{y \in Q}\|x-y\|_2^2+\frac{1}{|Q|} \sum_{y \in Q} \min _{x \in P}\|x-y\|_2^2 \]
大部分之前的工作喜欢用CD距离,因为其效果还不错,且计算简单。由于min操作的存在,对于每一个点来说,CD距离只关心其最近的一个邻域点,而不是其邻域分布。因此容易造成明明两个点的邻域分布差异大,但CD距离依然很小的情况。计算代价小是CD的优势,其最多能在\(max{|P|,|Q|}\)的数量级。
EMD:
\[ d_{\mathrm{EMD}}(P, Q)=\min _{T: P \rightarrow Q} \sum_{x \in P}\|x-T(x)\|_2 \]
EMD属于一种Wasserstein distance。根据一些工作以及定理,证明EMD的效果比CD更好,EMD距离越小总能使CD距离更小,但是反过来不成立。不过EMD的计算代价会比CD昂贵很多,大致在\(max{|P|,|Q|}^3\)的数量级,即使是最快的一种近似版本也在\(max{|P|,|Q|}^2\)的数量级,依然很昂贵。因此实际上工作中还是更喜欢使用CD距离,而本文作者也基于这种考虑,研究了一种计算接近CD距离,但是效果等价于EMD的度量方式。
Sliced Wasserstein disatance:
\[ S W_p(\mu, \nu) \approx\left(\frac{1}{N} \sum_{i=1}^N W_p^p\left(\pi_{\theta_i} \sharp \mu, \pi_{\theta_i} \sharp \nu\right)\right)^{\frac{1}{p}} . \]
为了节省计算开销,可以先将度量函数投影到某一个方向上,再去计算WD距离。SWD即将所有方向的距离单独计算完之后,再取平均。另外还有根据偏差计算的自适应SWD来自动选择投影方向数量。
点云时间学习
FlowNet3D
- Liu X, Qi C R, Guibas L J. Flownet3d: Learning scene flow in 3d point clouds[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 529-537.
提出了flow embedding层,点对集合的matching cost。其先通过ball query找到邻域,然后计算邻域每个点对中心点的matching cost,并且使用max pooling进行邻域聚合。
这种聚合的坏处就是会丢失一些运动信息。
MeteorNet
- Liu X, Yan M, Bohg J. Meteornet: Deep learning on dynamic 3d point cloud sequences[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 9246-9255.
- 卡耐基梅隆
MeteorNet率先基于原始点云序列进行特征学习。由于点云的不规则性, 其不存在帧与帧之间点的一一对应, 因此也难以确定帧间点与点之间的时间联系。因此MeteorNet提出了两种聚类方法 Direct grouping和 Chained-flow grouping来进行时间聚类。
由于其需要显式的时空邻居, 这不利于提高准确率和泛化网络。
MinkowskiNet
- Choy C, Gwak J Y, Savarese S. 4d spatio-temporal convnets: Minkowski convolutional neural networks[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 3075-3084.
针对点云的稀疏性, 提出了高效的时空4D CNN。
但是既没有对时间规范化, 也不能进行时空特征聚合。计算代价昂贵。存在体素化的量化误差
CaSPR
- Rempe D, Birdal T, Zhao Y, et al. Caspr: Learning canonical spatiotemporal point cloud representations[J]. Advances in neural information processing systems, 2020, 33: 13688-13701.
- Stanford
过去有一些工作做了动态点云的时间学习, 然而这些工作有一个致命限制: 它们缺少时间连续性、鲁棒性、同类泛化性。有一些工作考虑了其中某一个方面, 但没有对这三者整体进行统一的要求。
Canonical Spatiotemporal Point Cloud Representations (CaSPR)致力于对3D形状的时空变化进行编码。
- 将输入的点云序列规范化到一个共享的4D container空间: 其先构建了坐标空间Normalized Object Coordinate Space (NOCS), 它能把同类中的一些外在属性引如位置、朝向和放缩程度给规范化。进一步的, CaSPR将NOCS扩展到4D Temporal-NOCS(T-NOCS), 额外将点云序列的持续时间归一化成一个单位时间。对于给定的点云序列, 最终规范化后会给出在时间和空间上都规范化的点云。
- 然后在规范化空间中学习连续的时空特征: 其使用了Neural Ordinary Differential Equations (Neural ODEs)。
PointLSTM: An Efficient PointLSTM for Point Clouds Based Gesture Recognition
- Min Y, Zhang Y, Chai X, et al. An efficient pointlstm for point clouds based gesture recognition[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 5761-5770.
- 中科院计算所
之前的工作从时空领域中抽取运动特征和结构特征。然而这些工作仅局限于短期模型,缺乏捕捉长期联系的能力。PointLSTM通过在点云上构建LSTM模型来学习点云序列的长期联系。然而点云数据是无序的,因此直接在没有对齐的点云序列上应用一个权重共享的LSTM层会有更新困难的问题。因此,如何在保持空间结构的前提下利用时间信息就是主要的挑战。
PointLSTM对于每帧每个点都计算隐状态, 并且对于第t帧的点, 会在第t-1帧中找到其局部邻域所有点, 并且结合它们的LSTM隐状态来更新第t帧中心点。
简化版本PointLSTM-PSS将过去t-1帧整个点云视为一个隐状态, 并且对于第t帧的每个点都会利用这个隐状态进行更新。
另外也提出了一种基于密度采样点云的方法。
PSTNet
- Fan H, Yu X, Ding Y, et al. PSTNet: Point spatio-temporal convolution on point cloud sequences[C]//International Conference on Learning Representations. 2020.
- 新加坡国立大学
在聚合时间邻域上提出了Point tube的结构, 对前后相邻帧的点进行时间聚类。另外在邻域定义的基础上, 由于点云的不规则性, 传统规则卷积无法计算连续变化的点云坐标差。因此提出了PSTConv稀疏4D卷积模块。其将卷积定义为根据偏移量计算权重的连续核函数。
SequentialPointNet: A strong parallelized point cloud sequence network for 3D action recognition
- Li X, Huang Q, Wang Z, et al. SequentialPointNet: A strong parallelized point cloud sequence network for 3D action recognition[J]. arXiv preprint arXiv:2111.08492, 2021.
- 河海大学计算机
针对人类动作在空间上复杂,在时间上简单的特性,不平等的对待空间信息和时间信息。提出了一个强并行能力的点云序列网络SequentialPointNet:一个帧内appearance编码模块,一个帧间动作编码模块。
- 为了对人体动作丰富的空间信息建模,每帧先在帧内的appearance encoding中并行处理,并且输出一个特征向量序列,描述静态的appearance在时间维度上的改变。
- 为了建模简单的时间维度上的变化,在帧间的动作编码模块中,在特征向量序列中应用了 时间上的位置编码和分层的池化策略。
- 为了更好的挖掘时空内容,聚合人体动作的多级特征。
Point4DTransformer
- Fan H, Yang Y, Kankanhalli M. Point 4D transformer networks for spatio-temporal modeling in point cloud videos[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 14204-14213.
- 新加坡国立大学/悉尼科技大学
在PSTNet的PSTConv卷积提取局部特征的基础上, 将各个局部特征连接到一个Transformer层进行权重提取。
其中位置编码使用了一维卷积来实现
PST-Transformer
- Fan H, Yang Y, Kankanhalli M. Point Spatio-Temporal Transformer Networks for Point Cloud Video Modeling[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022.
- JCR 一区
- 新加坡国立大学
相比于P4T的全局注意力搜索,和PST的局部建模能力,PST-Transformer集合了两者,进行时空邻域的建模。
首先,通过一个video-level的自注意力进行帧加权。对于frame-level,仅对一帧进行注意力计算,由于点的流动性,可能会损失较多轨迹信息。而video-level,对两个查询帧之间的所有帧进行注意力计算,更适合保留时空信息。
\[ \alpha_{p p^{\prime}}=\frac{e^{A_{p p^{\prime}}}}{\sum_{t^{\prime \prime}=1}^{L} \sum_{p^{\prime \prime} \in P_{t^{\prime \prime}}} e^{A_{p p^{\prime \prime}}}} \]
其次通过一个和PST一样的point 4D conv进行时空编码。
GeometryMotion-Net
- Liu J, Xu D. GeometryMotion-Net: A strong two-stream baseline for 3D action recognition[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2021, 31(12): 4711-4721.
- 北航计算机
- 中科院二区
GeometryMotion-Net用于在点云序列中抽取几何和运动信息,并且不依赖于任何体素化操作。主要思想是利用一个几何流和运动流组成的two-stream框架来进行动作识别。
几何流: 将所有帧点云合并成一个大点云, 再进行传统的空间点云处理, 如PointNet++。
运动流: 在所有帧之间插值计算出一个关于运动变化的虚拟帧。再在这些虚拟帧上进行空间点云处理, 得到一组特征。
双流汇聚: 将一个几何流的特征和 N 个运动流的特征拼接合并输出。
Tranquil clouds
- Prantl L, Chentanez N, Jeschke S, et al. Tranquil Clouds: Neural Networks for Learning Temporally Coherent Features in Point Clouds[C]//International Conference on Learning Representations. 2020.
- 慕尼黑工业大学
基于推土机距离Earth Mover’s Distance (EMD)提出了一个新的损失函数, 用于衡量两个点云之间的差异性:
\[ \mathcal{L}_{S}=\min _{\phi: \tilde{y} \rightarrow y} \sum_{\tilde{y}_{i} \in \tilde{Y}}\left\|\tilde{y}_{i}-\phi\left(\tilde{y}_{i}\right)\right\|_{2}^{2} \]
PointPWC-Net
- Wu W, Wang Z Y, Li Z, et al. Pointpwc-net: Cost volume on point clouds for (self-) supervised scene flow estimation[C]//European conference on computer vision. Springer, Cham, 2020: 88-107.
- Oregon State University
提出的可学习的相继两个点云的matching cost:找到\(p_t^j\)在上一帧中的邻域,并且计算邻域所有点与其的特征差和坐标差。
这种点对点的matching cost对异常点特别敏感。
SPCM-Net
- He P, Emami P, Ranka S, et al. Learning Scene Dynamics from Point Cloud Sequences[J]. International Journal of Computer Vision, 2022: 1-27.
- Q1 CCF-A
- University of Florida ,CS
主要是做序列点云的场景流估计以及预测任务。之前的场景流估计一般都是t-1帧预测t帧,两帧之间的联系。本文定义了序列多帧联系的场景流估计问题。并且基于这个问题,提出了一些序列学习的方法。
- Intra-Frame Feature Pyramid (IFFP):依照了PointPWC-Net的结构,由于不能直接对点云进行传统卷积,使用了PointConv层进行卷积处理。并且通过多次FPS采样卷积中心,构建了多个金字塔式特征。
- Inter-Frame Spatiotemporal Correlation (IFSC): 为了能找到时空联系,很自然我们希望使时间维度上的receptive field能够尽可能覆盖到整个序列。因此借鉴了传统序列模型的LSTM结构,使用了一个 recurrent cost volume 结构来保存一定的时间信息。并且针对matching cost,提出了和PointPWC以及FlowNet不同的 集合对集合的maching cost。
- Multi-scale Coarse-to-Fine Prediction: 两个帧的特征+cost volume的特征生成最低级(粗粒度)的预测点,然后通过Pointnet++的特征上采样传播逐渐生成细粒度特征。
PSTT
- Wei Y, Liu H, Xie T, et al. Spatial-Temporal Transformer for 3D Point Cloud Sequences[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2022: 1171-1180.
- 中山大学
- 不在CCF h5指数62 排计算机视觉第12
提出了Spatio-Temporal Self-Attention(STSA)模块和Resolution Embedding(RE)模块。STSA用于时空联系,RE用于聚合邻域特征,增强特征图的分辨率。
现有的基于point的时空方法要么是使用注意力机制,要么是使用RNN模型。然而,这些方法依赖于长期联系,导致信息冗余。STSA使用了自注意力来提取帧间联系。这样会使冗余程度下降,鲁棒性提高(残差+layer normalization),训练速度提升。
另外,在语义分割上面的编码器-解码器结构,在编码器降维时会造成信息丢失。RE模块使用了注意力权重来加强分辨率。
HyperPointnet
- Li X, Huang Q, Yang T, et al. Hyperpointnet for Point Cloud Sequence-Based 3D Human Action Recognition[C]//2022 IEEE International Conference on Multimedia and Expo (ICME). IEEE, 2022: 1-6.
- 河海大学
- CCF B 会议
将PointNet扩展到时间序列。作者提认为基于时空局部结构的点云序列模型会导致昂贵的计算和推理误差,因此其构造了HyperPoint的概念...本质上就是一个串行的帧内帧间编码网络。
帧内处理:通过经典的sample and group 层进行空间聚合学习,然后通过MLP进行维度变换。值得一提的是,其在每个group层,将邻域点的距离视为一个额外的特征维度。并且在group之后,使用了一个inter-feature的注意力模块CBAM来对特征进行重新整合。
帧间处理: 每帧在帧内处理之后变成了所谓的一个HyperPoint,也就是逐帧的空间编码特征而已。其强调HyperPoint的主要信息来源于其内部结构,而不是HyperPoint之间。然后,给这个HyperPoint序列增加了一个Transformer的三角位置编码,并且再使用了frame-level的Pointnet进行最后的时间特征整合。
VirtualActionNet
- Li X, Huang Q, Wang Z, et al. VirtualActionNet: A strong two-stream point cloud sequence network for human action recognition[J]. Journal of Visual Communication and Image Representation, 2022: 103641.
- 河海大学
- JCR 3区
延续HyperPoint的工作,延展到Two-Stream框架。
其中注意在空间特征中附加了一个time stamp特征,并且使用feature-level的自注意力进行特征混合。
为了补充appearance中的缺少的运动信息,构建了一个motion stream,其中用了GRU来构建时间联系。
另外,其在训练函数里添加了一个Two-Stream的相似性约束 \(M_i \log{A_i}\) ,以引导两个stream对同一个动作\(i\)的预测结果\(M_i,A_i\)一致,这在NTU 60上提高了\(\%1.9\)的准确率。
Action recognition from silhouette sequences
- Rusu R B, Bandouch J, Marton Z C, et al. Action recognition in intelligent environments using point cloud features extracted from silhouette sequences[C]//RO-MAN 2008-The 17th IEEE International Symposium on Robot and Human Interactive Communication. IEEE, 2008: 267-272.
- 慕尼黑工业大學
从图像序列构建3D点云,进而抽取特征实现动作识别。
从投影图像序列中通过marching cubes算法构建代表时空数据的三维点云。
并且通过剪枝算法来尽可能过滤掉变化不大的帧,以便对动作的速度保证不变性,其过滤效率为24.15%~91.47%:
- 对于两个相邻帧,计算每一个点与其在相邻帧的K近邻点的欧拉距离。
- 对上一步构建的距离矩阵计算Frobenius Norm矩阵范数,即得到帧距离。
- 通过人为阈值0.2对帧距离进行过滤。
最后通过PCA进行连续法线估计,并且通过法线构建形状直方图进行特征分类。
Facial action analysis
- Reale M J, Klinghoffer B, Church M, et al. Facial action unit analysis through 3d point cloud neural networks[C]//2019 14th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2019). IEEE, 2019: 1-8.
- CCF C
第一次使用了通过点云网络进行面部表情分析:PointNet、PCCN、LCPN (new) 。论文又翻译了一遍前两者的网络结构,然后综合成了第三个自己提出的网络。
ASTA3DCNNs
- Wang G, Liu H, Chen M, et al. Anchor-based spatio-temporal attention 3-D convolutional networks for dynamic 3-D point cloud sequences[J]. IEEE Transactions on Instrumentation and Measurement, 2021, 70: 1-11.
- 1区
- 上交
anchor-baesd spatio-temporal attention 3D convolutional网络,主要首先通过虚拟的anchor构建规则的邻域区域,再通过ASTA3DConv离散卷积算子进行特征聚合,本质上是一种两级两种形式的set abstraction层。
后续就是一些网络操作,注意力嵌入层构建之类的。最终在MSR Action3D上达到93.03%。
ASPNet
- Liu J, Guo J, Xu D. Apsnet: Toward adaptive point sampling for efficient 3d action recognition[J]. IEEE Transactions on Image Processing, 2022, 31: 5287-5302.
- Q1
- 北航
主要贡献 ASPNet ,用于对不同的点云视频,决定不同大小的采样密度,以提升处理效率。
ASPNet本质上是一个采样密度决定器,特征提取网络还是依靠MLP和PointNet等经典网络作为BackBone(图中BBNet)。主要结构分为两部分:
- Decision making stage:本质上是一个mini LSTM特征分类模块,分类目标是四种采样密度。注意最后max计算输出label时使用的是Gumbel-Max。
- Fine feature extraction stage:网络首先预训练好了四种密度的BBNet,然后构建了一个选择分支网络,通过DM模块输出的密度label,来选择合适密度的BBNet。
在损失函数处将计算效率FLOPs也算入损失,以引导网络选择合适的分支 \(L=L_{acc} \dot L_{eff}\)。
PointMotionNet
- Wang J, Li X, Sullivan A, et al. PointMotionNet: Point-Wise Motion Learning for Large-Scale LiDAR Point Clouds Sequences[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 4419-4428.
- CCF A
- University of Maryland
一种时空局部结构的卷积方法Point-STC,两层结构,先确定中心点\(\mathbf{p}_i^{(t)}\),然后中心点扩展出规则的代理点\(\mathcal{K}\left(\mathbf{p}_i^{(t)}\right)=\left\{\mathbf{p}_i^{(t)}-\mathbf{b}_k \in \mathbb{R}^3\right\}_{k=1}^K\),然后再通过代理点去加权邻域点。
其最后的局部抽取规则由全局权重\(h\)和邻域点关联权重\(w\) 相乘而得。
\[ \Psi_{\mathbf{p}_i^{(t)}, \mathbf{p}_j^{(t+\tau)}}\left(\mathbf{x}_j^{(t+\tau)}\right)=\sum_{\delta_k \in \mathcal{K}\left(\mathbf{p}_i^{(t)}\right)} w_k h\left(\delta_k, \mathbf{p}_j^{(t+\tau)}\right) \mathbf{x}_j^{(t+\tau)} \]
\(w\)为所有点共享的可学习权重,\(h\)为每个局部邻域独有的核函数:
\[ h\left(\delta_k, \mathbf{p}_j^{(t+\tau)}\right)=\max \left(0,1-\frac{\left\|\delta_k-\mathbf{p}_j^{(t+\tau)}\right\|_2}{\sigma}\right) \in \mathbb{R} \]
另外也使用了多层金字塔结构来帮助卷积扩大感受野。
GeometryMotion-Transformer
- Liu J, Guo J, Xu D. GeometryMotion-Transformer: An End-to-End Framework for 3D Action Recognition[J]. IEEE Transactions on Multimedia, 2022.
- 一区
- 北航
feature extraction Module(FEM)模块,核心在于构建一个motion point,用于聚合时空信息。
注意FEM里面的Motion extraction module。其同样也是在相邻帧中通过KNN寻找邻域点,但是gather方法有点不一样。其通过邻域点和中心点的 特征向量余弦相似度 和 距离 的乘积来衡量影响权重\(w_{i,j}o_{i,j}\),并最终确定一个新的motino point的坐标\(r_i\):
\[ s_{i, j}=\frac{\mathbf{g}_i^c \cdot \mathbf{g}_j^r}{\left\|\mathbf{g}_i^c\right\| \cdot\left\|\mathbf{g}_j^r\right\|}\\ \mathbf{r}_i=\sum_{j=1}^K w_{i, j} \mathbf{o}_{i, j}, \text { where } w_{i, j}=\frac{\exp \left(s_{i, j} / \tau\right)}{\sum_{j=1}^K \exp \left(s_{i, j} / \tau\right)} \]
\(r_{i,j}\)结合相似度最高的特征\(z_i\)即构成一个完整的新特征点,并进入后续的MLP等特征处理变换中。
FEM模块最终可以得到空间特征\(Q, G\)以及运动特征\(M\)。接下来的问题是怎么整合这三者,于是有了Feature fusion module(FFM)的注意力特征融合:
Continuous Body and Hand Gesture Recognition for Natural Human-Computer Interaction
- Song Y, Demirdjian D, Davis R. Continuous body and hand gesture recognition for natural human-computer interaction[J]. ACM Transactions on Interactive Intelligent Systems (TiiS), 2012, 2(1): 1-28.
- 3区
- MIT CS
值得参考其如何构建连续识别模型。连续识别模型目的在于输出一个序列中每一帧的label,而不仅仅是这个序列给同样的label。
在窗口内部,其使用高斯函数来整合相邻帧的特征向量:
\[ g(w)[n]=e^{-\frac{1}{2}\left(\alpha \frac{n}{w / 2}\right)^2} \]
在窗口外部以两级形式输出单帧label:
- local level: 即对于同一帧,在长度为K的滑动窗口经过的step里,每一次都在窗口内进行一次整合计算。并最终平均整合K次计算的local feature。
- global level: 通过指数衰减的方式平滑整合local level和随时间变化的global level:
\[ q_t\left(y_j\right)=\alpha \cdot \bar{p}_t\left(y_j\right)+(1-\alpha) \cdot q_{t-1}\left(y_{j-1}\right), where \alpha = max \bar{p}_t\left(y_j\right) \]
对于连续动作的边界判断来说,global level 变化的地方即是边界。
基于其他三维数据
DGCNN
- Wang Y, Sun Y, Liu Z, et al. Dynamic graph cnn for learning on point clouds[J]. Acm Transactions On Graphics (tog), 2019, 38(5): 1-12.
DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition
- Korban M, Li X. Ddgcn: A dynamic directed graph convolutional network for action recognition[C]//European Conference on Computer Vision. Springer, Cham, 2020: 761-776.
- University of Virginia
DDGCN认为骨架的空间层级结构和动作的时间序列结构都包含了顺序信息,然而大多数ST graph都是用了无向图结构,即无视了顺序信息,因此DDGCN提出了有向图骨架结构 Directed Spatial-Temporal Graph (DSTG) 。通过有向图中父子节点的定义,父节点的动作实际上会影响到子节点的动作,因此DDGCN在有向图的基础上定义了 bone features来表示父子节点的影响特征。
另外针对图卷积的邻域不确定性,DDGCN提出Dynamic Convolutional Sampling (DCS) 来对一个节点的邻居列表进行动态的排序,形成动态邻域关系。然而卷积核的权重是有顺序的,而邻居列表是动态变化的,可能会造成权重分配的错序。因此DDGCN使用了一个Dynamic Convolutional Weights (DCW)模块来对邻居列表和权重列表进行一个Dynamic Time Warping (DTW)距离的最小化排序,再根据这个排序进行权重分配。
SkeletonTransformer
- Plizzari C, Cannici M, Matteucci M. Skeleton-based action recognition via spatial and temporal transformer networks[J]. Computer Vision and Image Understanding, 2021, 208: 103219.
- Politecnico di Torino 意大利都灵理工大学
- 三区
空间Transformer: Spatial Self-Attention (SSA)模块,用于在骨架之间动态的建立联系,而独立于人体真实骨架结构。 时间Transformer: Temporal Self-Attention (TSA)模块用于学习关节在时间上的变化。
值得注意的是, 其空间时间的Transformer不是串行计算, 而是使用Two-Stream方法分为两条管线独立运算。最终再对两个管线输出特征进行拼接处理。
3DV
- Wang Y, Xiao Y, Xiong F, et al. 3dv: 3d dynamic voxel for action recognition in depth video[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 511-520.
- 华中科技大学
3DV通过对点云视频进行体素化, 提取出3D动态体素的表示。
体素化的问题: 体素是是计算消耗巨大的过程, 时间和空间距离相同不太可取, 时间戳本身会影响效果。
Histogram of motion trajectory feature
- Li D, Jahan H, Huang X, et al. Human action recognition method based on historical point cloud trajectory characteristics[J]. The Visual Computer, 2022, 38(8): 2971-2979.
- 四川大学 CS
- 中科院JCR 3区
时间金字塔:即逐层分割时间序列,二分、四分......解释上一方面可以有助于识别不同长度的动作特征,另一方面,时间的片段化也能强化顺序信息。
分割四肢:通过kinect的骨骼坐标定位四肢点云并分割。
3D网格划分点云:将点云空间划分为 \(W \times H \times d\) 的网格空间以形成3D直方图。每个网格内的点云数量归一化到\([y_{min},y_{max}]\)。
\[ \mathrm{HOMT}_{w i, h i, d i}=y_{\min }+\frac{\left(y_{\max }-y_{\min }\right)\left(num_{w i, h i, d i}-\operatorname{Min}(n u m)\right)}{\operatorname{Max}(\text { num })-\operatorname{Min}(\text { num })} \]
最终以3D直方图特征\(HOMT \in \mathbb{R}^{t \times w \times h \times d}\)作为特征描述子,再通过支持向量机进行特征分类。
最终在UTD-MHAD上的分类结果到90.23%,不如SOTA 91.13%,声称效率更高。
3D RANs
- Cai J, Hu J. 3D RANs: 3D residual attention networks for action recognition[J]. The Visual Computer, 2020, 36(6): 1261-1270.
- 中山大学
Fine-grained
- Zhu Y, Liu G. Fine-grained action recognition using multi-view attentions[J]. The Visual Computer, 2020, 36(9): 1771-1781.
- 南京信息工程大学
基础设施
点云分类综述
点云特征:
无序性:点云数据则是无序点的集合。使用不同的设备和位置获取采集目标,会得到排列顺序千差万别的点云数据。当采用不同顺序读入 n 个点云时,其组合方式就有 n!种。对不同位置点云进行卷积算,结果会受点云的输入顺序的影响。通过对称函数、构造卷积算子或利用图与树的结构为解决点云的无序性做出贡献。
稀疏性:通过不同方式获取到物体的点云数据在密度、点数以及点间距离都具有一定的差别。三维点云的不规则结构会导致某些区域的过采样和欠采样。因此不同密度的点云的处理是研究点云分类策略的重点之一。在网络中嵌入密度模块的方法可以在一定程度上解决点云密度不均的问题。
非结构化:无结构的点云数据直接输入到神经卷积网络模型中往往比较困难。早期有体素方法或者多视图方法。但是会增加大量的数据计算。近年有图卷积神经网络处理非结构化数据。如有基于Reeb图卷积神经网络聚合点云特征。
数据集:
- ModelNet:3D CAD模型
- ScanNet:RGBD视频,室内场景
- ISPRS:城市目标,三维建筑
- 2019 Data FusionContest Dataset:城市场景
基于体素网格:
将环境状态表示为三维网格,借鉴二维图像的相似性。
- VoxNet:集成了体积网格和3D卷积网络
- 3D Shapenets:将点云特征表示为体素网格的二进制概率分布,卷积共享权值环节参数过剩。
- OctNet、OCNN等:优化体素结构,使用灵活的八叉树结构。
体素网格存在丢失重要信息,存储和计算开销大,适用性不高等弊端。
基于多视角:
多个视角对点云投影,使用CNN对投影的2D影像进行加工。
- MVCNN:多视图CNN,将3D渲染成传统图像。将多个视图的特征信息通过卷积层和池化层整合成单一的3D描述符。最后进入全连接层计算。
- Qi在MVCNN基础上改进:通过变化仰角和方位角增强训练数据、引入三维滤波捕捉多尺度信息。
- GVCNN:对不同视图的视觉描述符分组,学习组间特征生成组级别的描述符,再加权获得3D描述符。
在相机设置位置与角度时容易出现遮挡情况,视图不能得到有效处理将直接影响训练结果。3D 到 2D 的转换过程中会造成点云信息的丢失。
基于原始点云:
MLP
- PointNet:通过MLP学习单个点的特征,利用对称函数编码全局信息解决无序性问题。利用空间变换网络STNs解决点云旋转不变性问题。对输入点云进行几何变换和特征变换,采用最大池化聚合点特征解决置换不变性问题。
缺陷在于只捕捉到单个点和全局点,没有有效的局部特征信息,且没有点的邻近关系。导致对细粒度效果较差。
- PointNet++:引入多层次结构。每一层分为采样层、分组层、特征提取层。解决了局部点云特征的问题,点间联系依然没有充分学习。
- Momenet:对点云坐标使用多项式函数提高训练能力,高时效低消耗
- So-Net:利用自组织特征映射SOFM分析点云分布,实现置换不变性网络。结构简单、训练速度快。分类效果良好。
- SRN、PointWeb:学习点间局部联系。
- PointASNL:自适应采样AS减弱噪声和异常。局部-非局部模块L-NL提供准确稳定的特征信息。
- BPS:针对无序性、提出点集概念。将输入点归一化,对一组点随机采样构成点集单元。
CNN
- PointCNN:避免点云输入顺序对卷积操作的影响。X-变换卷积算子将数据转换为顺序无关的特征。分类中使用膨胀卷积思想。证实了局部结构对点云的重要性。但变换算子仍效果不够好。
- RSCNN:基于几何关系,几何关系编码卷子算子RS-Conv。有良好的目标识别功能。
- DANCE-NET:密度感知卷积模块。
GCN
- GCN:提取图数据特征,在半监督分类任务中效果良好。
- ECC:将点云视作图结构的顶点,聚合顶点信息转换为图结构,但是需要大量计算,不理想。
- LDGCNN、PointGNN、PointVGG
注意力机制
具有固定排列、不依赖于点间联系的特性。
- GAPNet:在MLP层中嵌入图注意力机制学习局域点云语义。GAPLayer和注意力层可以嵌入到其他模型中以提取局部几何特征。
- 清华PCT:将点云编码至高维特征空间,经过四层注意力层(自注意力、offset注意力)获取局部几何信息。
deep metric learning a survey
- Kaya M, Bilge H Ş. Deep metric learning: A survey[J]. Symmetry, 2019, 11(9): 1066.
- 土耳其的錫爾特大學
- 2区
度量学习概述。传统的度量学习需要采用各种核方法来将数据转换到一个特征空间中,然后进行合适的距离度量。传统方式的缺点很明显,对于很多数据我们难以找到一个合适的变换方法来进行特征降维,另一方面对于多样化的相似度计算也难以囊括:如文本语义相似度。借助于深度学习强大的抽象能力,近期的度量学习研究基本都是受Siamese和Triplet的深度度量网络启发,使用深度学习来代替传统的手工构造核函数。
深度度量学习Pipeline难点主要分为两部分:
- 样本选择/数据集分割
虽然最朴实的数据集分割方式是随机比例划分,但是在度量学习中,一方面由于我们的正样本对\(X\)、\(X+\)通常有限,而相对的负样本对\(X\)、\(X-\)会多很多,那么对于三元组合\(X\)、\(X+\)、\(X-\)中,\(X+\)会重复很多很多次,容易导致一定程度上的过拟合。
另一方面,如果组合所有可能的情况去训练的话会有\(O(n_{sample}^3)\)的组合数量级,这在时间上是难以接受的。
而且,有些输入的pair的区分价值很小,会导致浪费计算效率,而寻找区分价值大的pair也能使网络在有限的训练中得到最好的测试效果。因此,业界提出了hard 、semi-hard、easy三个层次的数据划分。以同类的距离为标志,hard处于同类距离以内,但其实是不同类数据,semi-hard和easy则以同类范围以外的一个margin作为边界划分。
- 损失函数设计
由于度量网络和普通的识别网络任务目标不同,其希望把所有同类的距离尽可能弄小,然后所有异类的距离尽可能弄大,因此单纯的使用交叉熵之类的多分类损失函数不可行。这一部分已经有比较充足的发展:
Human motion analysis metric
- Coskun H, Tan D J, Conjeti S, et al. Human motion analysis with deep metric learning[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 667-683.
- 慕尼黑工业大学
- ECCV
讲述如何衡量动作序列的差异,以便于实现动作相似度衡量和分析。传统的人体动作度量方法有 L2距离误差度量,以及Dynamic Time Warping (DTW)距离度量。然而传统的方法首先需要对齐两个动作序列,而这本身就是一件很难计算的事。
因此现在的度量学习基本都是基于深度学习来做,通常会构建一个深度学习网络学习一个将动作序列数据映射到一个低维embedding的一个映射,然后在这个低维空间上进行标准的L2距离衡量:
\[ d(f(X), f(Y))=\|f(X)-f(Y)\|^2 \]
所以关键在于怎么构建这个神经网络以学习到判别性的映射。比较主流的方案是参考孪生神经网络,构造pair型的输入以及特殊的判别损失函数:
\[ \mathcal{L}_{\text {contrastive }}=(r) \frac{1}{2} d+(1-r) \frac{1}{2}\left[\max \left(0, \alpha_{\text {margin }}-d\right)\right]^2 \]
其中\(d\)为上面的L2距离计算,\(\alpha\)则是一个需要寻找的超参数,判别损失优化后的版本是Triplet:
\[ \mathcal{L}_{\text {triplet }}=\max \left(0,\left\|f(X)-f\left(X^{+}\right)\right\|^2-\left\|f(X)-f\left(X^{-}\right)\right\|^2+\alpha_{\text {margin }}\right) \]
另外为了避开\(\alpha\)这个超参数,这篇论文提出了Neighbourhood Components Analysis(NCA)方法来改造损失函数。
\[ \mathcal{L}_{\mathrm{NCA}}=\frac{\exp \left(-\left\|f(X)-f\left(X^{+}\right)\right\|^2\right)}{\sum_{X-\epsilon C} \exp \left(-\left\|f(X)-f\left(X^{-}\right)\right\|^2\right)} \]
NCA本质上是一种邻居投票方法。首先计算\(X_i\)的邻居\(X_j\)的分布概率\(p_{ij}\)为: \[ \mathcal{L}_{\mathrm{NCA}}=\frac{\exp \left(-\left\|f(X_i)-f\left( X_j \right)\right\|^2\right)}{\sum_{X_k \epsilon C} \exp \left(-\left\|f(X_i)-f\left(X_k \right)\right\|^2\right)}\] 有了\(p_{ij}\)之后,我们可以在邻域内采样,例如假如采样到\(X_j\),那就认为当前的\(X_i\)的标签是\(y_j\)。而当\(y_j=y_i\)时,那么这种采样投票就是正确的,因此最终的采样投票正确概率为: \[p_i=\sum_{j \in C}p_ij\] 其中C为所有投票正确的邻居,进而整个网络的目标就是让所有的\(p_i\)尽可能的大,即: \[p_i=\sum_{i=1}^n \sum_{j \in C}p_ij\]
最后result的衡量方式使用false positive rate(FPR)。
Transformer
- Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
RNN,LSTM,GNU是处理序列模型的几种最优方法。然而循环神经网络中总是沿着词元位置进行计算,这种顺序性阻碍了训练的并行化,这也严重影响了内存对batch的限制程度。因此Transformer完全依赖Self-Attention来抽取输入和输出的全局关系。并且能有更好的并行化。
External Attention
- Guo M H, Liu Z N, Mu T J, et al. Beyond self-attention: External attention using two linear layers for visual tasks[J]. arXiv preprint arXiv:2105.02358, 2021.
- 清华
自注意力机制在同一个样本内, 任意一个部位的特征都可以聚合所有位置的特征进行加权输出。但是自注意力拥有二次复杂度, 并且不能计算多个样本之间的潜在联系。
External-Attention(EAT) 希望在学习某个数据集时, 能够找到多个样本之间的潜在联系。其通过保持一定的key memory, 以找到跨越所有样本的最具有辨识性的特征。这种思想类似于sparse coding 和 dictionary learning。并且由于key memory设计的很小, 因此EAT计算上具有O(n)的复杂度, 比起自注意力高效很多。
Vision Transformer (ViT)
- Dosovitskiy A, Beyer L, Kolesnikov A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale[C]//International Conference on Learning Representations. 2020.
第一篇CV上的Transformer:
- patch embedding: 为了仿照NLP的输入结构,将图像划分为多个patches,并且展平为一维序列。由于Transformer层的输入长度固定为D,因此原patches组成的特征序列长度为N,通过线性层将长度映射成D。
- position embeddings:由于2D的position embeddings没有体现出优越性,因此还是使用了标准的1D可学习的position embeddings。
- Hybrid Architecture: patches的特征可以通过CNN来进行提取。
\[ \begin{aligned} \mathbf{z}_{0} &=\left[\mathbf{x}_{\text {class }} ; \mathbf{x}_{p}^{1} \mathbf{E} ; \mathbf{x}_{p}^{2} \mathbf{E} ; \cdots ; \mathbf{x}_{p}^{N} \mathbf{E}\right]+\mathbf{E}_{p o s}, & & \mathbf{E} \in \mathbb{R}^{\left(P^{2} \cdot C\right) \times D}, \mathbf{E}_{p o s} \in \mathbb{R}^{(N+1) \times D} \\ \mathbf{z}_{\ell}^{\prime} &=\operatorname{MSA}\left(\operatorname{LN}\left(\mathbf{z}_{\ell-1}\right)\right)+\mathbf{z}_{\ell-1}, & & \ell=1 \ldots L \\ \mathbf{z}_{\ell} &=\operatorname{MLP}\left(\operatorname{LN}\left(\mathbf{z}_{\ell}^{\prime}\right)\right)+\mathbf{z}_{\ell}^{\prime}, & & \ell=1 \ldots L \\ \mathbf{y} &=\operatorname{LN}\left(\mathbf{z}_{L}^{0}\right) & & \end{aligned} \]
分辨率单一,计算效率低。 class token是什么?
Swim Transformer
- Liu Z, Lin Y, Cao Y, et al. Swin transformer: Hierarchical vision transformer using shifted windows[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 10012-10022.
在ViT中,自注意力是全局计算的,但是图片分辨率比起句子往往较大,因此带来了计算效率低的问题。locality一直是视觉里的重要建模方式,因此这篇文章将图片切分为不重合的local window,并且在local window内部进行注意力计算。为了让window之间有信息交换,在相邻两层使用不同的window划分。
金字塔层次化Transformer。
Layer Normalization
- Ba J L, Kiros J R, Hinton G E. Layer normalization[J]. arXiv preprint arXiv:1607.06450, 2016.
Pre Layer Normalization
- Xiong R, Yang Y, He D, et al. On layer normalization in the transformer architecture[C]//International Conference on Machine Learning. PMLR, 2020: 10524-10533.
本文分析了Transformer模型的初始化warmup问题,将layer normalization从原本的残差后移到了残差前,从实验和理论证明了pre-LN不需要warmup,并且收敛更好。
LocalViT
- Li Y, Zhang K, Cao J, et al. Localvit: Bringing locality to vision transformers[J]. arXiv preprint arXiv:2104.05707, 2021.
- 苏黎世联邦理工
在Transformer的FeedForward层中添加inverted residual block以及 depth-wise 卷积来增加local能力。
FeedForward层可以有助于增加Transformer结构的泛化能力。
MobileNet
- Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv:1704.04861, 2017.
Depth wise 卷积:将原来的多输入通道+多输出通道卷积拆分为 逐通道卷积+1D卷积通道变换,极大节省计算量。其计算量从\(D_K \times D_K \times M \times N \times D_F \times D_F\)变为\(D_K \times D_K \times M \times D_F \times D_F+M \times N \times D_F \times D_F\),论文模型在ImageNet上参数量大约缩小为1/10,准确率下降1%。
ResNet
- He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
位置编码
- T5编码 Raffel C, Shazeer N, Roberts A, et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J]. arXiv preprint arXiv:1910.10683, 2019.
- Ke G, He D, Liu T Y. Rethinking Positional Encoding in Language Pre-training[C]//International Conference on Learning Representations. 2020.
- 相对位置编码基础 Shaw P, Uszkoreit J, Vaswani A. Self-Attention with Relative Position Representations[C]//Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers). 2018: 464-468.
- 训练式编码 Gehring J, Auli M, Grangier D, et al. Convolutional sequence to sequence learning[C]//International Conference on Machine Learning. PMLR, 2017: 1243-1252.
训练优化
Goyal P, Dollár P, Girshick R, et al. Accurate, large minibatch sgd: Training imagenet in 1 hour[J]. arXiv preprint arXiv:1706.02677, 2017.
Smith L N. Cyclical learning rates for training neural networks[C]//2017 IEEE winter conference on applications of computer vision (WACV). IEEE, 2017: 464-472.
传统的方法中认为学习率应该是一个单调缓慢减少的数,然而这篇文章指出在一个周期范围变化的学习率可以有更好的效果。其循环变化方式可以有三角式、余弦式,线性式等。
原理:通常造成loss下降困难的地方是 鞍点 而不是简单的 极小点,在鞍点附近梯度极小,导致更新缓慢。此时就可以通过增大学习率来跳出鞍点。
确定循环周期:实验表明半周期设置为2~10个epoch*iterations比较好。(按iteration迭代,而不是按epoch迭代)。最好使用3个以上的epoch来代替一个常量学习率下的epoch。
确定学习率上下界:所谓LR test,运行几个单独的epoch,同时线性增大学习率,观察准确率的变化,找到第一个增加点,和波动之前的最后一个点。
- Loshchilov I, Hutter F. Sgdr: Stochastic gradient descent with warm restarts[J]. arXiv preprint arXiv:1608.03983, 2016.
实验表明,使用warm restart的学习率更新方法,收敛速度比寻常方法可以快2~4倍。其提出了余弦退火学习率调度器:
\[ \eta_{t}=\eta_{\min }^{i}+\frac{1}{2}\left(\eta_{\max }^{i}-\eta_{\min }^{i}\right)\left(1+\cos \left(\frac{T_{\text {cur }}}{T_{i}} \pi\right)\right), \]
论文使用参数\(T_o=10\),\(T_{mult}=2\)。
Can attention enable MLPs to catch up with CNNs
- Guo M H, Liu Z N, Mu T J, et al. Can attention enable MLPs to catch up with CNNs?[J]. Computational Visual Media, 2021, 7(3): 283-288.
比较了几个新兴的MLP,CNN,Transformer模型,总结了以下几个共同点:
- 通过将图片划分为Patch,可以更好地捕捉局部结构。
- 注意力中的辅助结构也可以考虑应用在非注意力模型上,比如Multi-Head
- Residual 结构对于所有模型都很重要
- 局部计算的CNN会导致归纳偏差(Inductive Bias),而一维卷积和全域计算结构可以减少归纳偏差。
Action recognition Based on A Bag of 3D Points
- Li W, Zhang Z, Liu Z. Action recognition based on a bag of 3d points[C]//2010 IEEE computer society conference on computer vision and pattern recognition-workshops. IEEE, 2010: 9-14.
- CVPRW
- University of Wollongong
第一,其提出可以用整个点云bag来表示动作序列。并且点出每一帧之间,点的个数可能不同,并且点之间没有对应关系。更进一步,其假设一个点云帧是一个 混合高斯模型,可以通过一系列的混合高斯分布来描述:
\[ p(x \mid \omega)=\prod_{i=1}^{m} \sum_{t=1}^{Q} \pi_{t}^{\omega} g\left(q_{i}, \mu_{t}^{\omega}, \Sigma_{t}^{\omega}\right) \]
另外,由于点的数量太多容易造成noise和计算问题,需要对点进行采样。在2D的经验里,人体的边缘轮廓是最重要的形状信息。进而在3D中,提出了一种点云的投影采样法:通过将点云投影到三个正交2D面,再在2D上进行轮廓采样。
DPDist: Comparing Point Clouds Using Deep Point Cloud Distance
- Urbach D, Ben-Shabat Y, Lindenbaum M. DPDist: Comparing point clouds using deep point cloud distance[C]//European Conference on Computer Vision. Springer, Cham, 2020: 545-560.
- 澳大利亚国立大学
本文提出了一种衡量点云距离的深度学习方法,不同于传统方法,其衡量的是点云A到点云B的surface representation的距离。介绍了几种传统点云距离度量方法,以及新的基于深度学习的改进方法。
Hausdorff distance 距离:点到点距离\(d(x,y)\),点到点云距离\(D(x,S)\),点云到点云距离\(D_H(S_A,S_B)\)。
\[ \begin{aligned} d(x, y) &=\|x-y\|_{2} \\ D(x, S) &=\min _{y \in S} d(x, y) \\ \mathcal{D}_{H}\left(S_{A}, S_{B}\right)&=\max \left\{\max _{a \in S_{A}} D\left(a, S_{B}\right), \max _{b \in S_{B}} D\left(b, S_{A}\right)\right\} \end{aligned} \]
Chamfer distance:相比于Hausdorff距离,Chamfer取平均距离而不是取最大距离。
\[ \mathcal{D}_{C D}\left(S_{A}, S_{B}\right)=\frac{1}{N_{A}} \sum_{a \in S_{A}} \min _{y \in S_{B}} d(a, y)^{2}+\frac{1}{N_{B}} \sum_{b \in S_{B}} \min _{y \in S_{A}} d(b, y)^{2} \]
Earth Mover's Distance : 在点云B中确定一种离点云A最近的映射关系,再累加欧拉距离。
\[ \mathcal{D}_{E M D}\left(S_{A}, S_{B}\right)=\min _{\xi: S_{A} \rightarrow S_{B}} \sum_{a \in S_{A}}\|a-\xi(a)\|_{2} \]
Siamese Neural Network & Triplet Network
- Bromley J, Guyon I, LeCun Y, et al. Signature verification using a" siamese" time delay neural network[J]. Advances in neural information processing systems, 1993, 6.
孪生神经网络,用于衡量两个小样本输入的相似程度。在输入数据属于训练数据集的情况下,通常我们可以通过数据识别分类来比较两个数据。然而对于小样本数据,其数据量根本不够成为训练数据集,甚至这个数据可能只有一份,此时则无法通过训练识别来进行分类。
为了能够度量训练集以外的输入数据相似性,孪生神经网络在训练特征提取网络的基础上,还增加了同类相近、异类排斥的结构,以便于强调网络的数据匹配能力。其将一对输入\(X_1,X_2\)给到同一个神经网络提取特征向量\(F_1,F_2\),并计算两个特征向量的相似度。如果是同类别的输入对,则期望相似度输出为1,如果是不同类别的输入对则期望输出0。
损失函数Contrastive Loss:\(D_W\)为输入对的特征向量的距离度量,\(Y\)指明输入对是同类还是异类。即通过\(Y\)可以选择启用损失函数里的同类损失部分或者异类损失部分。同类距离需要尽可能的小,异类距离需要尽可能的大。
\[ D_{w}(X_{1}, X_{2}) = ||G(X_{1}) - G(X_{2})|| \\ \mathcal{L} = (1-Y)\frac{1}{2}(D_W)^2+(Y)\frac{1}{2}\{max(0, m-D_W)\}^2 \]
在孪生网络中每一对输入要么是同类的,要么是异类的,即同类和异类的训练需要分PASS进行。而在Triplet三生网络中则将输入进行扩展,一组输入包含三个数据,既有同类,又有异类,进而可以将训练过程放在一个PASS完成。
同样,其损失函数三元组损失也改造成了一个PASS的形式:其本质上衡量了\((d_+,d_-)\)与\((0,1)\)的向量距离。
\[ d_{+} = \frac{e^{\Vert Net(x)-Net(x^{+})\Vert _2}}{e^{\Vert Net(x)-Net(x^{+})\Vert _2}+e^{\Vert Net(x)-Net(x^{-})\Vert _2}} \\ Loss(d_{+},d_{-}) = \Vert (d_{+} , d_{-}-1)\Vert _2^2 = const\cdot d_+^2 \\ \]
Action density based frame sampling for human action recognition in videos
- Lin J, Mu Z, Zhao T, et al. Action density based frame sampling for human action recognition in videos[J]. Journal of Visual Communication and Image Representation, 2023, 90: 103740.
- 西安交大 JVCIR 一区
视频帧采样优化的论文。主要想法在于把视频分为 信息密度大的clip和信息密度小的clip,并且分别处理采样。整个流程分为三个环节:帧打分、区间划分、区间采样。
Action density determination:即给原始视频的每一帧进行密度分数评估:
\[ \left\{\begin{array}{l} D_n=\sqrt{\sum\left|E(x, y)+I_{\text {fout }}(x, y)\right|^2} \\ E(x, y)=\left\{\begin{array}{cl} \alpha \cdot I_{\text {fout }}(x, y), & \left(I_{\text {bout }}(x, y)=1\right) \\ 0, & (Else) \end{array}\right. \end{array}\right. \]
其中\(I_{\text {fout }}(x, y)\)为\((x,y)\)的像素在相邻帧之中的距离大小。\(I_{\text {bout }}(x, y)\)为图像前景和背景的距离大小。
Focused-clips division mechanism: 有了每一帧的打分之后,即可以划定一个分数阈值,来将原始视频区分为高密度clip和低密度clip。本文选择了分数Top K的平均分数作为阈值,然后评估所有的连续帧。高于阈值的连续帧作为高密度clip,低于阈值的连续帧则作为低密度clip (注意高密度低密度都不止有一组,整个视频被阈值切割成了多个clip片段), 这样采样时可以选择高密度的clip采样频率更高,低密度的采样频率更低。
Reinforcement learning based frame sampling (RLFS) mechanism: 强化学习采样法。本质即惩罚采样连续的帧,鼓励间断性采样。
SCSampler: Sampling Salient Clips from Video for Efficient Action Recognition
- Korbar B, Tran D, Torresani L. Scsampler: Sampling salient clips from video for efficient action recognition[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 6232-6242.
- ICCV FacebookAI
核心是对于视频提供一个帧评分采样器 SCsampler。论文希望通过优化采样后,可以节省长视频中大量无关内容的计算,并且提升准确率。
SCsampler的实现在于如何给每一帧进行saliency score的评分计算,论文给出了两种实现思路: - 朴素思路是计算classification score,即计算每一帧对输出label的帮助程度/相关性,论文通过预训练一个针对每一帧的分类网络\(h\)来实现,saliency score即\(h\)对所有label最大的一个预测概率。 - 论文优化后的方法是希望通过 打分映射\(s\) 和 定制loss 来训练可学习的打分环节。 \[ \ell\left(\phi_n^{(i)}, \phi_n^{(j)}\right)=\max \left(-z_n^{(i, j)}\left[s\left(\phi_n^{(i)}\right)-s\left(\phi_n^{(j)}\right)+\eta\right], 0\right) \] 这个loss使用从原视频中采样出的clips对\(v_n^i,v_n^j\)来比较计算,其中如果\(v_n^i\)对label预测的概率比\(v_n^j\)大,那么\(z_n^{(i, j)}\)为 1 ,否则是-1。 这个loss本质上在鼓励saliency score的打分映射\(s\)对两个clip的评分差距接近classification score。
实验效果来看,对于视频,第一种朴素思路比第二种效果好很多。对于音频,第二种稍微好一点点。