深度学习在三维点云上的应用

摘要

        最近,点云由于在计算机视觉、自动驾驶和机器人技术等许多领域的广泛应用而受到越来越多的关注。深度学习作为一种主要的人工智能技术,已经成功地用于解决各种二维视觉问题。由于使用深度神经网络处理点云所面临的独特挑战,因此点云上应用深度学习仍处于起步阶段。近来点云上深度学习变得更加受欢迎,许多方法被提出来解决这一领域的多种问题。为了促进未来的研究,本文对点云深度学习方法的最新进展进行了全面的综述。它涵盖了三维形状分类、三维目标检测与跟踪、三维点云分割三大任务。它还提供了几个公开数据集的比较结果,以及深刻的观察和启发未来的研究方向。

1. 介绍

        3D采集技术的发展,使得传感器获取的三维数据可以提供丰富的几何、形状和尺度信息。与2D图像相辅相成,3D数据为机器更好地了解周围环境提供了机会。3D数据在不同领域有很多应用,包括自动驾驶、机器人、遥感和医疗。3D数据通常可以用不同的格式表示,包括深度图像、点云、网格和体积网格。点云表示是一种常用的格式,在三维空间中保留了原始的几何信息,不进行离散化。因此,它是许多场景理解相关应用如自动驾驶和机器人的首选表示。最近,深度学习技术已经主导了许多研究领域,如计算机视觉、语音识别和自然语言处理。然而,三维点云的深度学习仍然面临着数据集规模小、三维点云的高维性和非结构化等重大挑战。在此基础上,本文重点分析了用于处理三维点云的深度学习方法。

        点云的深度学习越来越受到人们的关注,尤其是在过去的五年里。一些公开的数据集也被发布,如ModelNet、ScanObjectNN、ShapeNet、PartNet、S3DIS、ScanNet、Semantic3D、ApolloCar3D和KITTI Vision基准套件。这些数据集进一步推动了研究深度学习的3d点云,也有越来越多的方法被提出解决各种问题点云处理,包括三维形状分类,三维对象检测和跟踪、三维点云分割、三维点云注册、6自由度姿态估计和三维重建。关于3D数据深度学习的调查也很少,然而,我们的论文是第一个专门关注点云理解的深度学习方法的。现有的三维点云深度学习方法分类如图1所示。与现有文献相比,这项工作可以概括的主要贡献如下:

  1. 这是第一个调查论文——全面覆盖深度学习几个重要的点云的任务包括三维形状分类、三维对象检测和跟踪和三维点云分割。
  2. 与现有的综述不同,我们特别关注3D点云的深度学习方法,而不是所有类型的3D数据。
  3. 介绍了点云深度学习的最新进展,为读者提供了最先进的方法。
  4. 对几个公开数据集上的现有方法进行了综合比较(如表2、表3、表4、表5),并进行了简短的总结和有见地的讨论

        本文的结构如下:第2节介绍了各自任务的数据集和评估指标;第3节回顾了三维形状分类的方法;第4节对现有的3D对象检测和跟踪方法进行了综述;第5节介绍了点云分割的方法,包括语义分割、实例分割和零件分割。最后,第6节对全文进行总结。我们还提供定期更新的项目页面

2. 背景

        我们收集了大量的数据集来评估深度学习算法在不同三维点云应用中的性能。表1列出了一些用于三维形状分类、三维物体检测与跟踪、三维点云分割的典型数据集。特别地,这些数据集的属性也被总结。对于三维形状分类,有两种类型的数据集:合成数据集和真实数据集,合成数据集中的对象是完整的,没有遮挡和背景;与之相反,真实数据集中的对象被不同层次的遮挡,一些对象被背景噪声污染。对于三维物体检测与跟踪,数据集分为室内场景和室外城市场景,室内数据集中的点云要么从密集的深度地图转换而来,要么从三维网格采样而来,户外城市数据集是为自动驾驶设计的,对象在空间上很好地分离,这些点云是稀疏的;对于三维点云分割,这些数据集由不同类型的传感器获取,包括移动激光扫描器(MLS)、航空激光扫描器(ALS)、静态地面激光扫描器(TLS)、RGBD摄像机和其他三维扫描器。这些数据集可以用来开发各种挑战的算法,包括类似的干扰,形状不完整,和类不平衡等。

        针对不同的点云理解任务,提出了不同的评估指标来测试这些方法。对于三维形状分类,总体精度(OA)和平均分类精度(mAcc)是最常用的性能标准。“OA”表示所有测试实例的平均精度,“mAcc”表示所有形状类的平均精度。在三维物体检测中,平均精度(AP)是最常用的标准,它被计算为精确-召回曲线下的面积。精度和成功通常被用来评估一个三维单目标跟踪器的整体性能。平均多目标定位精度(AMOTA)和平均多目标定位精度(AMOTP)是评价三维多目标跟踪的最常用标准。对于三维点云分割,OA、平均交并(mIoU)和平均类精度(mAcc)是最常用的性能评价标准。其中,平均平均精度(mean Average Precision, mAP)也被用于三维点云的实例分割。

3. 三维形状分类

          完成该任务的方法通常先学习每个点的嵌入,然后使用聚合方法从整个点云中提取一个全局的嵌入形状。最后通过将全局嵌入输入到几个全连接的层来实现分类。根据神经网络输入的数据类型,现有的三维形状分类方法可以分为基于多视图、基于体积和基于点的方法。图2说明了几种里程碑方法:

        基于多视图的方法将非结构化点云投影到二维图像中,而基于体素的方法则将点云转换为三维体素表示。然后利用完善的2D或3D卷积网络来实现形状分类。相反,基于点的方法直接工作在原始点云上,不需要任何体素化或投影。基于点的方法不引入显式信息丢失,并且越来越流行。注意,本文主要关注基于点的方法,但为了完整性,也较少包含基于多视图和基于体素的方法。

3.1 基于多视图的方法

        这些方法首先将一个三维形状投影到多个视图中,提取视图特征,然后将这些特征融合起来进行精确的形状分类。如何将多个视图特征聚合成一个有区别的全局表示是这些方法面临的一个关键挑战。MVCNN是一个开创性的工作,它只是将多视图特性maxpools到一个全局描述符中。但是max-pooling只保留特定视图中的最大元素,从而导致信息丢失。MHBN通过协调双线性池集成局部卷积特性,生成一个紧凑的全局描述符。Yang等人首先利用关系网络来利用一组视图之间的相互关系(例如区域-区域关系和视图-视图关系),然后聚合这些视图来获得有区别的3D对象表示。此外其他一些方法也被提出来提高识别精度。与之前的方法不同,View-GCN中使用了一个有向图,将多个视图考虑为graph节点。将由局部图卷积、非局部消息传递和选择性视图采样组成的核心层应用于构造的图。将所有级别的最大汇聚节点特征串联起来,最终形成全局形状描述符。

3.2 基于体素的方法

        这些方法通常将点云体素化到三维网格中,然后在体积表示上应用三维卷积神经网络(CNN)进行形状分类。Maturana等人引入了名为VoxNet的体素网络,以实现健壮的3D对象识别。Wu等人提出了一种基于卷积深度信任的三维shapenet,用于从各种三维形状(由二元变量在体素网格上的概率分布表示)中学习点的分布。虽然已经取得了令人鼓舞的性能,但这些方法无法很好地扩展到密集的3D数据,因为计算量和内存占用是立方增长的分辨率。为此,引入了一种层次结构和紧凑的结构(如八叉树)来降低这些方法的计算和内存开销。OctNet首先使用混合网格八叉树结构对点云进行分层划分,它用几个沿规则网格的浅八叉树来表示场景。利用位串表示对八叉树结构进行了有效编码,并通过简单的算法对每个体素的特征向量进行了索引。Wang提出了一种基于十元树的CNN用于三维形状分类。将采样于最细叶八分点上的三维模型的平均法向量输入到网络中,将3D- cnn应用于三维形状表面所占据的八分点上。与基于密集输入网格的基准网络相比,OctNet对于高分辨率点云需要的内存和运行时要少得多。Le等人提出了一种混合网络PointGrid,该网络集成了点和网格表示,用于高效的点云处理。在每个嵌入的体积网格单元内采样恒定数量的点,这允许网络通过使用3D卷积来提取几何细节。Ben-Shabat等将输入点云转化为三维网格,再用3DmFV方法表示,通过传统CNN架构学习全局表示。

3.3 基于点的方法

        根据每个点的特征学习所使用的网络架构,这类方法可以分为点光滑的MLP、基于卷积的方法、基于图形的方法、基于层次数据结构的方法等典型方法。

3.3.1 点光滑的MLP

        这些方法使用多个共享的多层感知器(MLPs)对每个点独立建模,然后使用对称聚合函数聚合一个全局特征,如图3所示。典型的二维图像深度学习方法由于其固有的数据不规则性,不能直接应用于三维点云。作为一项开创性工作,PointNet直接以点云作为输入,并通过对称函数实现置换不变性。具体来说,PointNet使用几个MLP层独立地学习点态特征,并使用最大池化层提取全局特征。Deep sets通过对所有表示进行总结并应用非线性变换实现置换不变性。由于PointNet中每个点的特征都是独立学习的,因此无法获取点之间的局部结构信息。因此,Qi等提出了一种层次网络pointnet++来从每个点的邻域中捕捉精细的几何结构。作为PointNet++层次结构的核心,其集合抽象层由三层组成:采样层、分组层和基于PointNet的学习层。通过叠加多个集合抽象层次,pointnet++从局部几何结构中学习特征,并逐层抽象局部特征。

                               

        由于其简单性和较强的表示能力,许多基于点的网络被开发出来。Mo-Net的体系结构与PointNet类似,但它以有限的矩集作为输入。PATs其自身的绝对位置和相对于相邻点的相对位置表示每个点,并通过MLPs学习高维特征。在此基础上,利用GSA来获取点间的关系,并提出一种置换不变、可微、可训练的端到端GSS层来学习层次特征。pointweb基于pointnet++,利用局部邻域的上下文,通过自适应特征调整(AFA)来改进点特征。Duan等人提出了一种结构关系网络SRN,使用MLP学习不同局部结构之间的结构关系特征。Lin等人通过为PointNet学习的输入空间和函数空间构造一个查找表,加快了推理过程。在中等的机器上,ModelNet和ShapeNet数据集上的推理时间比PointNet提高了1.5 ms和32倍。SRINet首先投影一个点云来获得旋转不变表示,然后利用基于点网的主干来提取全局特征,基于图的聚合来提取局部特征。在PointASNL中,Yan等人利用自适应采样(AS)模块自适应调整最远点采样(FPS)算法所采样的点的坐标和特征,并提出了局部-非局部(L-NL)模块来捕获这些采样点的局部和长期依赖关系。

3.3.2 基于卷积的方法

        与定义在二维网格结构上的卷积核相比,三维点云的卷积核由于点云的不规则性而难以设计。根据卷积核的类型,目前的三维卷积方法可分为连续卷积法和离散卷积法,如图4所示。

                       

        三维连续卷积方法在连续空间上定义卷积核,其中相邻点的权值与相对于中心点的空间分布有关。三维卷积可以解释为一个给定子集的加权和。作为RS-CNN的核心层, RSConv需要某一特定点局部的一个子集的作为输入,卷积通过MLP学习局部子集中点之间的低级关系(欧几里得距离、相对位置等)到高级关系的映射来实现,核元素是在一个单位球中随机选择的。然后使用基于mlp的连续函数建立核元素位置与点云之间的关系。在DensePoint中,卷积被定义为具有非线性激活器的单层感知器(SLP)。特征是通过连接之前所有层的特征来学习的,以充分利用上下文信息。Thomas等人利用一组可学习的核点对三维点云提出了刚性和可变形核点卷积(KPConv)算子。ConvPoint将卷积核分为空间部分和特征部分。空间部分的位置从一个单位球随机选择,加权函数通过一个简单的MLP学习。

        一些方法也使用现有算法进行卷积。在PointConv中,卷积被定义为相对于重要抽样的连续三维卷积的蒙特卡洛估计,卷积核由一个加权函数(通过MLP层学习)和一个密度函数(通过核化密度估计和一个MLP层学习)组成,为了提高内存和计算效率,将三维卷积进一步简化为矩阵乘法和二维卷积两种运算,在相同的参数设置下,它的内存消耗可以减少大约64倍。在MCCNN中,卷积被认为是依赖于样本密度函数(用MLP实现)的蒙特卡洛估计过程,然后使用泊松磁盘采样来构建点云层次结构,该卷积算子可用于执行两种或多种采样方法之间的卷积,并可处理不同的采样密度。在SpiderCNN中,SpiderConv将卷积定义为阶跃函数与k个近邻上定义的泰勒展开式的乘积,阶跃函数通过编码局部测地线距离来获取粗糙的几何图形,泰勒展开通过在立方体顶点上插值任意值来获取固有的局部几何变化。此外,还提出了一种基于径向基函数的三维点云卷积网络PCNN。

        几种方法被提出来解决三维卷积网络所面临的旋转等变问题:Esteves等人提出了三维球面CNN来学习三维形状的旋转等变表示,它以多值球面函数作为输入,利用球谐域上的锚点参数化谱,得到局部卷积滤波器。张量场网络将点卷积运算定义为可学习的径向函数和球谐函数的乘积,这些函数局部等价于三维旋转、平移和排列。SPHNet基于PCNN,通过在体积函数卷积时加入球谐核来实现旋转不变性,为了加快计算速度,Flex-Convolution将卷积核的权值定义为k个最近邻上的标准标量积,可以使用CUDA进行加速,实验结果表明,该算法在参数较少、内存消耗较低的小数据集上具有较好的性能。

        三维离散卷积方法在规则网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量有关。Hua等将非均匀三维点云转化为均匀网格,并在每个网格上定义卷积核。所提出的3D内核为落在同一个网格中的所有点分配相同的权值。对于给定的点,同一网格上所有相邻点的平均特征由上一层计算得到。然后对所有网格的平均特征进行加权求和,得到当前层的输出。Lei等人定义了一个球面卷积核,其方法是将一个三维球面邻近区域划分为多个容量箱,并将每个箱与一个可学习的加权矩阵相关联,一个点的球面卷积核的输出由其相邻点加权激活值的均值的非线性激活决定。在GeoConv中,一个点与其相邻点之间的几何关系被明确地基于六个基底建模,沿基的每个方向的边缘特征由一个与方向相关的可学习矩阵独立加权,然后,根据给定点与其相邻点形成的角度,将这些与方向相关的特征进行聚合,对于给定的点,其在当前层的特征定义为该点与前一层相邻边缘特征的特征之和。

        PointCNN通过一个χ-conv转换(通过MLP实现)将输入点转换为一个潜在的规范顺序,然后对转换后的特征应用典型的卷积操作。Mao等人通过将点特征插值到邻近的离散卷积核权坐标,提出了一种插值卷积算子InterpConv来度量输入点云与核权坐标之间的几何关系。Zhang等人提出了一种实现旋转不变性的RIConv算子,该算子以低级旋转不变性几何特征为输入,通过简单的折边方法将卷积转化为一维。A-CNN定义了一个环形卷积,通过在查询点的每个环上对核大小的邻居数组进行循环,学习局部子集中相邻点之间的关系,为了降低三维CNN的计算和存储成本,Kumawat等人提出了一种基于三维短期傅里叶变换(3D Short Term Fourier Transform, STFT)的经校正的局部相位体积(ReLPV)块来提取三维局部邻域的相位,显著减少了参数的数量。在SFCNN中,点云被投影到具有对准球坐标的规则二十面体格上,然后通过卷积-最大池集-卷积结构对球面格的顶点及其相邻节点连接的特征进行卷积,SFCNN能抵抗旋转和扰动。

3.3.3 基于图的方法

        基于图的网络将点云中的每个点视为图的一个顶点,并根据每个点的邻居为图生成有向边,然后在空间或光谱域进行特征学习。一个典型的基于图的网络如图5所示:

                      

        基于图形的空间域方法在空间域定义运算(例如,卷积和池化),具体来说,卷积通常是通过MLP在空间邻域上实现的,而pooling则是通过将每个点的邻域的信息聚合产生新的粗化图,每个顶点上的特征通常被赋予坐标、激光强度或颜色,而每个边缘上的特征通常被赋予两个连接点之间的几何属性。作为开创性的工作,Simonovsky等人将每个点视为图的一个顶点,并通过一条有向边将每个顶点与它的所有邻居连接起来,然后利用滤波生成网络(如MLP)提出了EdgeConditioned Convolution (ECC)算法。采用Max pooling聚合邻域信息,基于VoxelGrid实现图粗化。在DGCNN中,在特征空间中构造一个图,在网络的每一层之后动态更新,作为EdgeConv的核心层,使用MLP作为每条边的特征学习函数,对每条边的邻域关联的边缘特征进行信道对称聚合。此外,LDGCNN去除了变换网络,并将DGCNN中不同层次的层次特征链接起来,以提高其性能并减小模型尺寸。还有一种端到端无监督深度自编码器网络(即FoldingNet),该网络使用向量化局部协方差矩阵和点坐标的串联作为输入。受到Inception和DGCNN的启发,Hassani和Haley提出了一种学习点和形状特征的无监督多任务自动编码器,该编码器是基于多尺度图构造的,该解码器由聚类、自监督分类和重构三个非监督任务组成,并结合多任务丢失进行训练。Liu等提出了一种基于图卷积的动态点聚类模块(DPAM),将点聚类(采样、分组、池化)过程简化为一个简单步骤,通过将聚类矩阵与点特征矩阵相乘实现,在PointNet体系结构的基础上,通过叠加多个DPAMs构建层次化学习体系结构,与pointnet++[54]的层次结构策略相比,DPAM动态地利用点之间的关系,在语义空间中聚合点。

        为了利用局部几何结构,KCNet基于核相关学习特征,具体地说,定义了一组描述局部结构几何类型的可学习点作为核,然后计算核函数与给定点的邻域之间的亲和力。在G3D中,卷积被定义为邻接矩阵多项式的一种变体,池化被定义为用一个粗化矩阵乘以拉普拉斯矩阵和顶点矩阵。ClusterNet利用严格的旋转不变量模块从每个点的k个最近邻中提取旋转不变量特征,并基于带有向连锁准则的无监督凝聚分层聚类方法构建点云的层次结构,每个子集群中的特性首先通过EdgeConv块学习,然后通过最大池进行聚合。为了解决当前数据结构化方法(如FPS和邻居点查询)耗时的问题,Xu等人提出融合基于体积和基于点的方法的优点来提高计算效率,在ModelNet分类任务上的实验表明,该 Grid-GCN 网络的计算效率平均比其他模型快5倍。

      光谱域基于图的方法将卷积定义为光谱滤波,实现为图上信号与图拉普拉斯矩阵特征向量的乘法。RGCNN通过将每个点与点云中所有其他点连接起来构建图,并在每一层更新图的拉普拉斯矩阵,为了使相邻顶点的特征更加相似,在损失函数中添加了一个图信号平滑先验。为了解决数据的不同图拓扑所带来的挑战,AGCN中的SGC-LL层利用一个可学习的距离度量来参数化图上两个顶点之间的相似性。利用高斯核和学习距离对图的邻接矩阵进行归一化。HGNN通过在超图上应用频谱卷积,构建了超边缘卷积层,上述方法作用于全图。为了利用局部结构信息,Wang等人提出了一种端到端频谱卷积网络LocalSpecGCN,用于处理局部图(由k个最近邻构造),该方法不需要离线计算图的拉普拉斯矩阵和图的粗化层次。在PointGCN中,基于点云的k个最近邻构造图,每条边使用高斯核加权,卷积滤波器定义为图谱域的切比雪夫多项式,利用全局池和多分辨率池捕获点云的全局和局部特征。Pan等人提出了在谱域k个最邻近图上应用卷积的3DTI-Net,几何变换的不变性是通过学习相对欧几里得和方向距离实现的。

3.3.4 基于分层数据结构的方法

        这些网络是基于不同的层次数据结构(如八叉树和kd-tree)构建的,在这些方法中,点特征是沿着树从叶节点到根节点分层学习的。Lei等人提出了一种使用球面卷积核引导的八叉树CNN(如3.3.2节所述),网络的每一层对应八叉树的一层,每一层应用一个球面卷积核,当前层神经元的值确定为前一层所有相关子节点的平均值,与基于八叉树的OctNet不同,Kd-Net是在每次迭代时使用多个K-d树以不同的分裂方向构建的,遵循自底向上的方法,使用MLP从其子节点的表示中计算非叶节点的表示,根节点的特征(描述整个点云)最终被提供给全连接的层来预测分类分数。注意,根据节点的分割类型,Kd-Net在每个级别上共享参数。3DContextNet使用标准的平衡K-d树来实现特征学习和聚合,在每一层,点特征首先通过基于局部线索(模拟局部区域内点之间的相互依赖)和全局上下文线索(模拟一个位置相对于所有其他位置的关系)的MLP学习,然后,使用MLP从子节点计算非叶节点的特征,并通过最大池聚合,对于分类,重复上述过程,直到到达根节点。SO-Net网络的层次结构是通过点对节点k进行最近邻搜索来构建的,具体地说利用一种改进的置换不变自组织映射(SOM)来建模点云的空间分布。通过一系列完全连通的层从标准化的点到节点坐标中学习单个点特征。在SOM中,每个节点的特征都是从与该节点相关联的点特征中提取的,然后,使用类似于PointNet的方法从节点特性中学习最后一个特性,与pointnet++相比,SOM的层次结构更高效,充分探索了点云的空间分布。

3.4 总结

        ModelNet10/40数据集是最常用的三维形状分类数据集,表2显示了不同点基网络的结果。

  • 点态MLP网络通常被用作其他类型网络学习点态特征的基本构件。
  • 作为一种标准的深度学习架构,基于卷积的网络可以在不规则的3D点云上实现卓越的性能,但是应同时关注离散和连续卷积网络。
  • 基于图形的网络由于其固有的处理不规则数据的强大能力,近年来受到越来越多的关注,然而,将基于谱域的图网络扩展到各种图结构仍然是一个挑战。

4. 三维对象检测和跟踪

        在这一节中将回顾现有的三维物体检测、三维物体跟踪和三维场景流估计的方法。

4.1 三维目标检测

        典型的三维物体检测器以场景的点云为输入,在每个被检测物体周围生成一个有向的三维包围框,如图6所示。与图像中的目标检测相似,三维目标检测方法可以分为两类:region proposal-based and single shot methods.。图7给出了几种里程碑方法

                          

4.1.1 Region Proposal-based Methods

        这些方法首先提出几个可能包含对象的区域(也称为建议),然后提取区域特征来确定每个建议的类别标签,根据它们的对象提议生成方法,这些方法可以进一步分为三类:基于多视图的方法、基于分割的方法和基于子库的方法。

        基于多视点的方法:这些方法将来自不同视图地图(例如,LiDAR前视图、鸟瞰视图(BEV)和图像)的建议性特征进行融合,以获得3D旋转方框如图8(a)所示,这些方法的计算成本通常很高。Chen等人从BEV图中生成一组高精度的三维候选框,并将其投影到多个视图(如LiDAR front view image、RGB image)的feature maps上。然后结合这些来自不同视图的区域特征来预测有方向的三维边界盒,如图8(a)所示,虽然这种方法只用300个建议框就实现了99.1%的召回和0.25的IoU,但其速度太慢不能实际应用。随后,研究人员从两个方面对多视图三维目标检测方法进行了改进:首先提出了几种有效融合不同模式信息的方法,为了生成小物体高召回率的3D方案,Ku等人提出了一种基于多模态融合的区域方案网络,他们首先使用裁剪和大小调整操作从BEV和图像视图中提取等大小的特征,然后使用elementwise mean pooling将这些特征融合。Liang等人利用连续卷积实现不同分辨率下图像与三维激光雷达特征图的有效融合。具体来说,他们对BEV空间中每个点提取最接近的对应图像特征,然后利用双线性插值将图像特征投影到BEV平面中,得到一个密集的BEV特征图,实验结果表明,密集BEV特征图比离散图像特征图和稀疏激光雷达特征图更适合于三维目标检测。Liang等人提出了一种用于端到端训练的多任务多传感器三维目标检测网络。具体来说,多个任务(例如2D目标检测、地面估计和深度完成)被用来帮助网络学习更好的特征表示,进一步利用所学的交叉模态表示法产生高精度的目标检测结果。实验结果表明,该方法在2D、3D和BEV检测任务上都取得了显著的改进,在TOR4D基准测试上优于现有的先进方法。Lu等人通过引入空间通道关注(SCA)模块探索了多尺度上下文信息,该模块捕获场景的全局和多尺度上下文,并突出了有用的特性,他们还提出了一个扩展空间非样本(ESU)模块,通过结合多尺度低层次特征来获得具有丰富空间信息的高级特征,从而生成可靠的3D对象方案,虽然可以实现更好的检测性能,但上述多视图方法需要很长的运行时间,因为它们为每个方案执行特征池。随后,Zeng等人利用前ROI pooling convolution来提高效率,具体来说,他们将大部分卷积操作置于RoI池模块的前面,因此,对所有对象建议执行一次RoI卷积,实验结果表明,该方法运行速度可达11.1 fps,比MV3D快5倍。

                                     

        基于分割的方法:这些方法首先利用现有的语义分割技术去除大部分背景点,然后在前景点上生成大量高质量的建议以节省计算量,如图8(b)所示。与多视图方法相比,这些方法具有更高的物体召回率,更适合于物体高度闭塞拥挤的复杂场景。Yang等人利用二维分割网络预测前景像素,并将其投影到点云中去除大部分背景点,然后他们对预测的前景点提出建议,并设计了一个名为PointsIoU的新标准,以减少建议的冗余性和模糊性。在之后Shi等人提出了PointRCNN框架,他们直接对三维点云进行分割,得到前景点,然后融合语义特征和局部空间特征,生成高质量的三维建议框。Jesus等人提出了利用图卷积网络(Graph Convolution Network, GCN)进行三维物体检测的开创性工作,具体介绍了两个模块,利用图卷积优化对象方案,第一个模块R-GCN利用提案中包含的所有点来实现每个提案的特性聚合,第二个模块C-GCN融合来自所有建议的每帧信息,通过利用上下文返回精确的对象框。Sourabh等将点云投影到基于图像的分割网络的输出中,并将语义预测分数附加到这些点上,将涂成的点送入现有的检测器以实现显著的性能改进。Yang等人用球形锚将每个点关联起来,然后使用每个点的语义分数来去除冗余的锚点,因此与以往的方法相比,该方法的召回率更高,计算代价更低。此外在方案中提出了PointsPool层来学习内部点的紧凑特征,并引入并行IoU分支来提高定位精度和检测性能。

        基于子库的方法:这些方法首先利用现有的二维物体检测器生成物体的二维候选区域,然后为每个二维候选区域提取一个三维截锥方案,如图8(c)所示。虽然这些方法可以有效地提出三维物体的可能位置,但逐步管道使其性能受到二维图像检测器的限制。F-PointNets是这方面的开创性工作。该算法对每个二维区域生成一个视台方案,并应用PointNet(或PointNet++)来学习每个三维视台的点云特征,用于近似的三维盒估计。在后续工作中,Zhao等人提出了一种预测一组尺度因子的Point-SENet模块,并进一步使用该模块自适应地突出有用的特征,抑制无信息量的特征。他们还将PointSIFT模块集成到网络中,用于捕获点云的方向信息,对形状缩放具有较强的鲁棒性。与F-PointNets相比,该方法在室内外数据集上都取得了显著的改进。Xu等人利用二维图像区域及其对应的截锥点对三维盒进行精确回归。为了融合图像特征和点云的全局特征,他们提出了一种直接回归盒角位置的全局融合网络。他们还提出了一种密集融合网络,用于预测每个角落的点向偏移量。Shin等首先从一幅二维图像中估算出二维边界盒和物体的三维位姿,然后提取出多个几何上可行的候选物体,这些三维候选对象被送入一个盒回归网络,以预测准确的三维对象盒。Wang等为每个二维区域生成了一组沿圆锥台轴的圆锥台序列,并应用点网提取每个圆锥台的特征,对视差层特征进行改革,生成二维特征图,然后将其送入全卷积网络进行三维盒估计。该方法在基于二维图像的方法中取得了最先进的性能,并在KITTI官方排行榜上排名第一。Johannes等首先在BEV图上获得了初步的检测结果,然后根据BEV的预测提取小点子集(也称为patch)。利用局部细化网络学习局部特征,预测高精度的三维边界盒。

4.1.2 Single Shot Methods

        这些方法使用单级网络直接预测类概率和回归物体的三维边界盒,它们不需要区域建议生成和后处理,因此,它们可以跑得很快,根据输入数据的类型,单镜头方法可以分为三类:基于斜面的方法、离散的方法和基于点的方法。

        基于斜面的方法:这些方法主要以BEV表示作为输入,Yang等人用等间距的单元离散场景的点云,并用类似的方式对反射率进行编码,从而得到一种规则的表示。利用全卷积网络(FCN)估计目标的位置和航向角,该方法运行速度为28.6帧/秒,优于大多数单镜头方法(包括VeloFCN、3D-FCN和Vote3Deep)。后来Yang等人利用高清(HD)地图提供的几何和语义先验信息,提高了的鲁棒性和检测性能。具体来说他们从高清地图上获取地面点的坐标,然后利用相对于地面的距离进行BEV表示,弥补道路坡度造成的平移方差。此外他们将二进制道路掩模与BEV表示沿着通道维度连接起来,以聚焦于移动对象。由于高清地图并不是到处都有,他们还提出了一个在线地图预测模块,以估计地图先验从单一激光雷达点云。这种mapaware方法在TOR4D和KITTI数据集上显著优于它的基线。但对不同密度点云的泛化性能较差。为了解决这个问题,Beltran等人提出了一种归一化映射,考虑不同激光雷达传感器之间的差异。归一化映射是一个与BEV映射具有相同分辨率的2D网格,它编码每个单元格中包含的最大点数。结果表明,该归一化映射显著提高了斜向检测器的泛化能力。

        离散的方法:这些方法将一个点云转换为规则的离散表示,然后应用CNN来预测对象的类别和3D盒。Li等人提出了第一种使用FCN进行三维物体检测的方法。他们将点云转换为2D点地图,并使用2D FCN来预测边界盒和对象的信任度。随后,他们将点云离散为长度、宽度、高度和通道维数的四维张量,并将基于fcn的二维检测技术扩展到三维域,用于三维物体检测。为了解决体素的稀疏性问题,Engelcke等人利用了一种以特征为中心的投票方案,为每个非空体素生成一组投票,并通过累积投票获得卷积结果,它的计算复杂度与被占据体素的数量成正比。Li等通过叠加多个稀疏的三维CNN,构建了一个三维骨干网络。该方法充分利用体素的稀疏性,节省了内存,加快了计算速度。该三维骨干网络提取了丰富的三维特征用于目标检测,而不引入沉重的计算负担。Zhou等人提出了一个基于体素的端到端可训练框架。他们将点云分割成等间距的体素,并将每个体素内的特征编码成4D张量。然后连接一个区域建议网络产生检测结果。虽然它的性能很强,但由于体素的稀疏性和三维卷积,这种方法非常缓慢。之后,Yan等利用稀疏卷积网络提高了推理效率。他们还提出了一种正弦误差角损失的方法来解决0和误差角之间的不确定性问题。Sindagi等通过早期融合图像和点云特征扩展了VoxelNet。具体来说,他们将生成的非空体素投影到图像中,并使用预先训练好的网络来提取每个投影体素的图像特征。然后,将这些图像特征与体素特征连接起来,生成精确的3D框,该方法可以有效利用多模态信息来减少误报和误报。Lang等人提出了一种名为pointcolumns的3D对象检测器。该方法利用PointNet学习以垂直列(柱)组织的点云的特征,并将学习到的特征编码为pesudo图像。然后应用二维对象检测管道来预测三维边界盒。pointpillar在平均精度(AP)方面优于大多数融合方法(包括MV3D、RoarNet和VOD)。此外,pointpillar在3D和BEV KITTI基准测试中都能以62 fps的速度运行,这使得它非常适合实际应用。He等人观察到现有单镜头探测器的逐步缩小特征图不可避免地丢失了点云的部分空间信息,受此启发,提出了一种SA-SSD检测器,利用细粒度结构信息提高定位精度。具体来说,他们首先将点云转换为张量,然后将其输入主干网络以提取多阶段特征。此外,利用带有点级监督的辅助网络来引导特征学习点云的结构。实验结果表明,在KITTI BEV检测基准中,SA-SSD在汽车类中排名第2位。

        基于点的方法:这些方法直接将原始点云作为它们的输入。3DSSD是这方面的开创性工作。在中引入了Distance-FPS(D-FPS)和Feature-FPS(F-FPS)的融合采样策略,以去除耗时的特征传播(FP)层和细化模块,然后利用候选生成层充分挖掘代表点,再将代表点送入带有三维中心标记的无锚回归头,用于预测三维对象盒。实验结果表明,3DSSD在保持25fps速度的同时,其性能优于两阶段基于点的方法PointRCNN。

4.2 三维物体跟踪

        已知目标在第一帧中的位置,目标跟踪的任务是估计其在后续帧中的状态。由于三维目标跟踪可以利用点云中丰富的几何信息,因此可望克服基于图像的目标跟踪所面临的遮挡、光照和尺度变化等缺点。受Siamese网络成功用于基于图像的目标跟踪的启发,Giancola等人提出了一种带有形状完成正则化的三维Siamese网络。具体来说,他们首先使用卡尔曼滤波器生成候选对象,然后使用形状正则化将模型和候选对象编码成一个紧凑的表示,然后利用余弦相似度在下一帧中搜索被跟踪对象的位置。该方法可作为目标跟踪的替代方法,显著优于大多数二维目标跟踪方法,包括STAPLECA和SiamFC。为了有效地搜索目标对象,Zarzar等人利用2D Siamese网络在BEV表示上生成大量粗糙的候选对象。然后,他们利用三维暹罗网络中的余弦相似度来改进候选对象。这种方法在精度(即18%)和成功率(即12%)方面显著优于。Simon等人提出了一种用于语义点云的三维目标检测和跟踪架构。他们首先通过融合二维视觉语义信息生成体素化语义点云,然后利用时间信息提高多目标跟踪的准确性和鲁棒性。此外,他们引入了一种强大且简化的评估度量(即尺度旋转转换分数(SRFs))来加速训练和推理。ComplexerYOLO实现了很好的跟踪性能,并且仍然可以实时运行。Qi等人进一步提出了点对盒(P2B)网络,它们将模板和搜索区域输入脊椎骨以获取种子,利用目标特征对搜索区域种子进行扩充,然后利用霍夫投票回归潜在目标中心。

4.3 三维场景流估计

        (这部分公式比较多,不好翻译,建议看原文)

                                  

4.4 总结

        KITTI基准是自动驾驶领域最具影响力的数据集之一,在学术界和业界都得到了广泛的应用。(图略)

  • 基于区域提案的方法是这两类中最常被研究的方法,并且在KITTI test 3D和BEV基准测试中都比单杆方法有很大的优势。
  • 现有的3D物体探测器有两个限制。首先,现有方法的远程检测能力相对较差。其次,如何充分利用图像中的纹理信息仍然是一个有待解决的问题。
  • 多任务学习是3D对象检测的未来发展方向。例如,MMF学习了一种跨模态表示,通过合并多个任务来实现最先进的检测性能。
  • 三维物体跟踪和场景流估计是新兴的研究课题,自2019年以来逐渐受到越来越多的关注。 

5. 点云分割

        三维点云分割既需要了解全局几何结构,又需要了解每个点的细粒度细节。根据分割粒度的不同,三维点云分割方法可以分为三类:语义分割(场景级)、实例分割(对象级)和零件分割(零件级)。

5.1 语义分割

        对于给定的点云,语义分割的目标是根据点的语义意义将其划分为多个子集。与三维形状分类的分类方法类似(第3节),语义分割有四种范式:基于投影的方法、基于离散的方法、基于点的方法和混合方法。投影和discretizationbased方法的第一步是将点云一个中间正则表示,如多视点、球形,permutohedral晶格和混合表示见图11。然后中间分割结果被投影回原始点云。相反,基于点的方法直接工作在不规则的点云上。几种典型的方法如图10所示。

                    

 

5.2 实例分割

        与语义分割相比,实例分割需要更精确、更精细的点推理,具有更大的挑战性。具体来说,既要区分语义意义不同的点,又要区分语义意义相同的实例。总的来说,现有的方法可以分为两类:基于proposal的方法和无proposal的方法。图13说明了几种里程碑方法。

                  

5.3 零件分割

        三维形状零件分割的难点有两方面。首先,具有相同语义标签的形状零件具有较大的几何变异和歧义。第二,具有相同语义意义的对象中部件的数量可能不同。

5.4 总结

  • 由于有了规则的数据表示,基于投影的方法和基于离散的方法都可以利用二维图像中成熟的网络架构。然而,基于投影的方法的主要局限性在于三维-二维投影造成的信息损失,而离散方法的主要瓶颈在于分辨率的提高导致计算和存储成本的立方增加。为此,基于索引结构的稀疏卷积是一种可行的解决方案,值得进一步探索。
  • 基于点的网络是最常被研究的方法。然而,点表示自然没有显式的邻域信息,大多数现有的基于点的方法求助于昂贵的邻域搜索机制(如KNN或球查询)。这本质上限制了这些方法的效率,最近提出的点-体素联合表示将是一个值得进一步研究的有趣方向。
  • 从不平衡数据中学习仍然是点云分割中一个具有挑战性的问题。虽然几种方法总体上取得了显著的成绩,但在少数民族课堂上的表现仍然有限。例如,RandLA-Net在Semantic3D的约简8子集上实现了76.0%的总体IoU,但是在hardscape类上实现了41.1%的非常低的IoU。
  • 现有的大多数方法都用于小点云(例如,有4096个点的1m×1m)。在实际应用中,深度传感器获取的点云通常规模巨大。因此,对大规模点云的有效分割问题进行深入研究是很有必要的。
  • 少量作品已经开始从动态点云学习时空信息。期望时空信息能够帮助提高后续任务的性能,如三维物体的识别、分割和完成。

备注:点云分割部分内容实在太多,但是大多数方法都与前边有所联系,因此没有详细罗列文献内容,入感兴趣可以查看原文

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 自定义注解实现操作日志

    ​ 冷静 专注 集中 努力 自定义注解实现操作日志 ​ 在梳理保全中心逻辑的过程中,有业务场景需要记录过程中某些保全的操作日志,打算使用注解加切面的方式实现,此处先做个测试Demo 1.定义操作日志注解Log Retention 表示这是一个运行时注解…...

    2024/4/28 2:38:28
  2. pring-AOP

    /*** ClassName: AopTransation* Description:自定AOP 切面类 日志打印* author dongwei_qi* date 2020年6月10日**/ Component Aspect// 标识为切面类 public class AopLog {private static final Logger log LoggerFactory.getLogger(AopLog.class);Pointcut("executio…...

    2024/4/30 1:26:05
  3. kali下安装nessus漏扫工具

    1、nessus下载 2、上传到kali 解压缩dpkg -i Nessus-8.12.0-debian6_amd64.deb 然后执行命令启动 /bin/systemctl start nessusd.service 3、web登录安装 登录方式,https://kali的IP:8834 https://192.168.124.131:8834/ 通过邮箱获取激活码 https:/…...

    2024/4/27 11:00:38
  4. 2020-10-16如何分析食品是否合格了

    是指将宰后的整只猪胴体沿脊椎中线,纵向锯(劈)成两分体的猪肉。 鲜片猪肉宰后的片猪肉,经过凉肉,但不经过冷却工艺过翟的猪肉。  冻片猪肉是指冻结工艺过程,其后腿肌肉深层中心温度不高于-15℃的猪肉…...

    2024/4/27 19:04:11
  5. laravel任务调度重复执行

    文章目录项目场景问题描述原因分析解决方案项目场景 项目场景: laravel 数据库备份时任务调度重复执行 问题描述 在任何的一个项目中数据库里面的数据都是是要定时的进行备份来以防万一服务器出现问题时数据丢失。 在laravel 项目中我使用任务调度来实现数据库定时备…...

    2024/5/4 10:53:44
  6. Windows下升级git比较简单的办法

    Windows下git升级版本 1.升级 1.打开powershell 2.输入命令git update-git-for-windows 2.遇到的问题 OpenSSL SSL_read: Connection was reset, errno 10054 解决方法: git config --global http.sslVerify "false" Failed to connect to xxxx: Tim…...

    2024/4/6 8:28:47
  7. Docker 命令查询(保存好,指不定啥时候就用到了)

    Docker 命令查询 一张图总结 Docker 的命令 container事件状态图 docker命令分布图 基本语法 Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker Daemon。 客户端命令:基本命令格式为 docker [OPT…...

    2024/4/14 21:10:38
  8. 指纹图像预处理

    指纹图像预处理是指纹识别的前提,它的好坏直接影响到指纹识别的成败,但由于指纹图像降质带来的困难,并根据指纹图像的特征提出了合理的假设,再根据假设提出了增强指纹图像对比度的算法、提取指纹有效区域的算法、根据方向信息分割图像的算法以及去除图像…...

    2024/5/6 22:34:04
  9. 多路径识别算法

    随着各省市高速公路的不断建设,基本上建成了大小规模不等的联网收费系统,在联网收费系统建设中,都面临了一个共同的问题——车辆行驶路径的识别。路径识别不仅仅涉及对每一通行车辆如何计算通行费,同时还要考虑将收入的通行费拆分…...

    2024/4/25 23:37:21
  10. 常见的反爬虫方法

    常见的反爬虫 爬虫一般分为 数据采集,处理,储存三个部分。 一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种…...

    2024/4/24 4:27:04
  11. Silicon labs BLE 开发介绍

    Silicon labs BLE 开发人员指南 介绍 该文档涵盖了各个方面的发展,并且是对使用C开发的所有运行Bluetooth堆栈的Wireless Gecko产品的所有人的重要参考。 该文档涵盖以下主题: “ 应用程序开发流程”部分讨论了应用程序开发流程和项目结构。 部分配置…...

    2024/4/6 8:28:42
  12. JAVA实现第n个素数的查找

    素数就是除了自己和1之外没有其他因数的数 判断条件可以是: 1.因数只有1和本身n 2.(1,n/2]中没有可以整除n的整数 3.(1,sqrt(n)]中没有可以整除n的整数 首先写一下输出1-n中的素数输出 方法一 import java.util.Scanner;public class 素数 {public static vo…...

    2024/4/29 4:50:49
  13. Solidia Technologies宣布有可能将混凝土转变为地球碳汇

    首席执行官Tom Schuler在Countdown全球启动仪式上发表TED演讲,分享预拌混凝土的技术应用 新泽西州皮斯卡特维--(美国商业资讯)--Solidia Technologies首席执行官Tom Schuler在TED和Future Stewards全球Countdown启动仪式上发表TED演讲,其间分享了将Solid…...

    2024/4/27 15:19:28
  14. DREP双周报9.16-10.15 | DREP公链开发持续优化,区块浏览器提升分析和统计功能

    亲爱的DREP社区成员: 9月下半月和10月上半月DREP更加关注DREP技术产品进展。 技术产品方面,DREP公链正在进行出块节点弹性增减功能的设计与开发,增加节点最高限制MaxPeers,节点总量可在2/3MaxPeers ~ MaxPeers 之间增减&#xf…...

    2024/4/28 22:00:14
  15. CDH技术向视频:PaaS、flink、kafka、Workload XM、Cloudera Machine Learning

    CDP私有云上面的PaaS服务,也即是容器化的数据体验服务,一共有五类PaaS服务:CDW、CDE、CML、CDF、COD。本视频主要展示CDW和CML两类服务。 CDW封装了Hive LLAP和Impala服务,这些服务运行在K8S之上,让你可以快速部署计算…...

    2024/5/6 18:25:05
  16. 一周的小项目总结

    一,普通用户(User) 1)注册: 注册的时候由于注册的用户分为普通用户和管理员用户,所以关联到另一张角色表,并且是用户角色权限表是通过用户表和角色表的主键构成,不能直接在用户表里…...

    2024/4/19 1:04:40
  17. leetcode-621. 任务调度器

    题目 给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态…...

    2024/4/17 20:21:01
  18. innodb行级锁

    1.SELECT … FROM 是一个快照读,通过读取数据库的一个快照,不会加任何锁,除非将隔离级别设置成了 SERIALIZABLE 。 2.SELECT … FROM … LOCK IN SHARE MODE 在所有索引扫描范围的索引记录上加上共享的next key锁;如果是唯一索引,…...

    2024/4/17 19:35:40
  19. Loadrunner 录制手机App脚本多种方法介绍

    之前写过使用Loadrunner录制APP脚本的基本流程_Loadrunner_APP测试_性能测试_脚本录制_基本操作流程,但是只能用于请求单一服务器端口适用 这次主要是写的多server服务器时,如何录制脚本(APP、浏览器脚本录制均适用) 录制多serve…...

    2024/4/6 8:28:34
  20. 如何办理gb2626,民用口罩en149标准

    防护用品质检报告一般有国标欧标美标测试,要带CNASCMA章。如手套GB10213,GB7543;防护服GB19082,EN13795,EN14126,AAMI PB70;口罩GB19083,YY0469,YY/T0969,GB2…...

    2024/4/6 6:57:30

最新文章

  1. Prometheus(普罗米修斯)安装并添加采集端(2)

    Prometheus介绍: Prometheus(普罗米修斯)基于Go语言开发,是一套开源且免费的监控系统,主要应用在容器领域的监控解决方案。 官方地址:https://prometheus.io/ 项目托管:https://github.com/pr…...

    2024/5/10 0:40:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. Linux的软链接和硬链接

    1、软链接 概念:给文件创建一个快捷方式,依赖原文件,和普通文件没有区别。 特性: 可以给存在的文件或目录创建软链接可以给不存在的文件或目录创建软链接可以跨文件系统创建软链接删除软链接不影响原文件、删除原文件会导致软链…...

    2024/5/10 0:14:06
  4. tensorflow | onnx模型转pb

    git: GitHub - onnx/onnx-tensorflow: Tensorflow Backend for ONNX 安装 onnx-tf pip install onnx-tf 命令转换 onnx->pb onnx-tf convert -i /path/to/input.onnx -o /path/to/output python 代码转换 import onnx from onnx_tf.backend import preparedef onnx2pb(…...

    2024/5/7 9:56:49
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/8 19:32:33
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/9 7:40:42
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...

    2024/5/9 2:44:26
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...

    2024/5/8 20:33:13
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...

    2024/5/9 3:15:57
  10. 【Objective-C】Objective-C汇总

    方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/9 5:40:03
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...

    2024/5/9 7:40:40
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/8 20:58:56
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...

    2024/5/9 1:35:21
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/9 4:12:16
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/9 7:40:35
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/9 19:47:07
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/9 7:40:34
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...

    2024/5/9 1:42:21
  19. --max-old-space-size=8192报错

    vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...

    2024/5/9 5:02:59
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...

    2024/5/9 4:31:45
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...

    2024/5/9 16:54:42
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...

    2024/5/8 9:51:44
  23. python django 小程序图书借阅源码

    开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图&#xff0…...

    2024/5/9 6:36:49
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/9 4:33:29
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57