当前位置: 首页 > news >正文

做传奇网站重庆触摸屏_电子商务网站建设

做传奇网站,重庆触摸屏_电子商务网站建设,在网站底部给网站地图做链接,wordpress后台密码破解目录 前言0. 简述1. 算法动机开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》#xff0c;链接。记录下个人学习笔记#xff0c;仅供自己参考 本次课程我们来学习下课程第四章——基于环视Cam… 目录 前言0. 简述1. 算法动机开创性思路2. 主体结构3. 损失函数4. 性能对比总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》链接。记录下个人学习笔记仅供自己参考 本次课程我们来学习下课程第四章——基于环视Camera的BEV感知算法一起去学习下 BEVDistill 感知算法 课程大纲可以看下面的思维导图 0. 简述 本次课程是我们 BEV 算法讲解部分最后一个论文框架我们这篇文章来看一下能不能用一个不一样的视角去构造 BEV 特征 我们还是从以下四个方面展开算法动机开创性思路、主体结构、损失函数以及性能对比 1. 算法动机开创性思路 我们本节课程要学习的算法叫 BEVDistill我们在讲解 BEVDistill 算法之前我们先复习一下图像是怎么生成 BEV 特征的点云是怎么生成 BEV 特征的那我们在这里以 BEVFusion 的框架为例如下图所示 BEVFusion 本身包含 Camera Stream 图像输入和 LiDAR Stream 点云输入它们可以分别得到 Camera BEV Feature 利用图像特征去构造的一个 BEV 空间特征LiDAR BEV Feature 利用点云特征去构造的一个 BEV 空间特征 输入图像怎么处理呢用 Camera Stream 专门处理图像网络的利用图像编码器 Encoder 可以得到图像特征然后通过 2D 到 3D 的一个转换图像特征可以从 2D 映射到 3D 然后再投影到 BEV 空间通过这样的方式可以得到所谓的 Camera BEV Feature 那点云是怎么处理的呢点云其实是 LiDAR Stream它是用来专门处理点云数据的我们输入的 Point Clouds 点云数据通过 3D Backbone 主干网络之后我们可以得到 3D 的点云特征我们可以把这个点云特征拍扁到 BEV 上得到这个点云的 BEV 特征 那我们到这里有什么呢我们有了图像的 BEV 特征有了点云的 BEV 特征下一步呢是做融合利用这个融合模块可以得到混合特征那混合特征就可以拿去做预测。此外 BEVFusion 作者为了实现每个模态的一个独立检测功能额外加入了两个 Detection Head可以分别输出相机检测结果的和点云检测结果也就是说我们利用单一的相机数据可以有个预测结果利用单一的点云数据也可以有个预测结果 那我们这里也可以发现像 BEVFusion 这种做法存在两种 BEV 特征一种呢我们叫 Camera BEV Feature图像的 BEV 特征那另外一种叫 LiDAR BEV Feature点云的 BEV 特征那这两种 BEV 特征它各有什么特性呢Camera BEV Feature 和 LiDAR BEV Feature 它们都有什么特点呢 那它们的特点呢我们其实要从纯视觉方案和融合方案的思路出发那我们一般认为纯视觉方案成本比较低因为相机相对而言还是比较便宜的另外纯视觉方案可能对于偏远距离的目标比较有优势其实也很好理解因为远距离的目标很多时候前端的点云采集设备它只能采集到少量的点因此很难用来做检测那么相比图像纯视觉方案而言呢点云最显著的优势是提供了 3D 的空间信息因为它额外提供了深度维度有了更精准的位置信息BEVFusion 在这里是通过自适应融合的方法融合了点云和图像特征来做后续检测任务所以属于融合处理的方案 那我们思考一个问题有没有一种可能能够同时利用相机和点云的优势在预测阶段可以不用依赖于点云信息呢。那也就是说我们训练的时候相机和点云是同时训练的那测试的时候呢我们把 LiDAR Stream 扔掉利用 Camera Stream 去做推理 那其实这种思路以前也有很多研究人员尝试过核心思想是利用 LiDAR 模态也就是点云模态提供的几何语义去增强图像检测器的一个性能那我们检测器的核心呢是图像图像是核心我们的点云数据如何提供更好的辅助信息可以帮助图像取得更好的性能呢这是我们需要去思考的 那上面的左图是一种方案我们刚讲过一般而言我们说点云的优势其实在于包含了 3D 空间的信息那么像这种 3D 空间信息可以转换为一种深度监督它是用于监督的。从图中我们可以看到点云是作为 Ground Truth 存在的用来监督 2D 图像深度预测得准不准那比如说 2D 有一个深度预测结果我们通过 2D 深度预测结果与原本的点云 GT 两个做比对来判断 2D 图像深度预测得是否准确 那我们这个思路是什么意思呢输入点云可以投影到多视角图像上通过相机参数可以获得深度监督图那这个监督图和 2D 框架预测出的深度可以进行损失函数的计算它用于监督 2D 深度估计网络从而促使我们 2D 深度估计得更准2D 深度如果估计得更准了那从 2D 到 3D 空间特征的转换构造也会更准从而我们构造的 3D 特征空间也会更好从而 BEV 特征空间也会更好那我们检测如果是基于 BEV 空间去做的检测检测结果也会更好 那所以我们左图呢是一种方式那这个方式中我们点云提供的辅助信息是什么呢是深度辅助监督通过点云提供的比较准确的深度监督值呢为我们 2D 的深度估计网络提供更好的一个可学习的信息 另外一种思路我们想一下点云还能为图像做什么呢我们知道上面左图中点云是提供 Depth那右图中点云是提供什么呢另外一种我们叫蒸馏蒸馏这个词呢是叫 Distillation那 BEVDistill 其实也是蒸馏这个词的缩写把前面拿过来再添上个 BEV组合成的 BEVDistill 也就是我们本篇文章的缩写 那我们说的 BEVDistill 从字面意思上来讲呢也就包含两层意思前面一层呢是 BEV我们在什么上面做的 Distill 呢在 BEV 上面做的 Distill那什么叫 Distill 呢它是一种蒸馏那可能这个词不是特别好理解我们举一个通俗的例子那我们大家都知道蒸馏水是用蒸馏的方法去除我们纯净水中的一些不挥发的杂质那我们最终可以得到一个冷凝水我们可以把它当作一个叫浓缩精华的一个过程我们在深度网络当中讲的蒸馏呢其实偏向于这个概念是一种浓缩精华的过程 普通的水经过蒸馏它之后的精华是蒸馏水那网络蒸馏之后的精华是什么我们从网络能得到什么呢是知识是学习得到的知识那比如 BEV 网络学习到的是 BEV 空间的知识那比如 2D 检测网络它学习到的是 2D 目标的知识那比如像车辆检测网络它学到的是车辆的通用结构行人检测网络它学习到的是行人的通用结构那像这个知识呢它是一种可迁移的知识 那比如我们输入点云数据可以得到点云特征输入图像数据可以得到图像 BEV 特征通常情况下我们认为点云的 BEV 特征由于 3D 信息是更丰富的所以它在空间定位上比图像而言要更好。那么蒸馏框架可以以点云特征为参考促使图像 BEV 特征向点云 BEV 特征进行学习那这就是一个跨模态知识迁移的过程促使 2D 分支是模仿 3D 分支那模仿的好我们认为学的好模仿的差呢我们认为你这个学习没有学习到精准你这个知识迁移的就不太够 那 OK 我们大家再思考一个问题那我们这里 BEV 空间的作用是什么我们为什么要在 BEV 空间上去做这个蒸馏的操作呢那我们在这里说的 BEV 空间是给点云空间图像空间提供了一个共享的 BEV 表示来自不同模态的特征可以自然的去对齐的而不会损失太多的信息也就是说我们提供的这个 BEV 空间是点云和图像的一个共有空间我们在这个共有空间上去做对齐而不是我随便以一个 2D 场景或者 3D 场景去做额外的对比 那所以上面的左图点云为图像提供的是什么呢其实提供的是 Depth是一个深度值那我们说右图提供的是什么辅助信息呢其实是一种深度特征的监督我们 LiDAR 有一个 BEV FeatureCamera 有一个 BEV Feature我促使 Camera BEV Feature 去向 LiDAR BEV Feature 去学习提供的其实是一个 Feature 层面的监督信息 以上是 BEVDistill 的一个思路动机那我们接下来看一看它的主体结构是什么 2. 主体结构 BEVDistill 网络框图如下所示 BEVDistll 整体设计流程总结如下 输入3D Points 以及 Camera images步骤 1LiDAR Stream步骤 2Camera Stream步骤 3Distillation输出检测结果 那首先老套路我们从输入输出看起输入呢我们在 BEV 空间促使图像和点云去做特征的对齐那么输入呢一个是点云输入一个是图像输入那输出呢对于 3D 检测任务而言它也自然是 3D 检测结果 我们点云输入通过 体素化、3D Backbone、Encoder 我们可以得到 LiDAR BEV Feature也就是图中蓝色的部分那同时通过 Decoder 可以得到 3D 检测结果。那我们多视角图像输入呢通过 2D Backbone、Encoder 可以得到 2D 空间去构造的 BEV Feature然后我们再经过 Decoder 可以得到图像 BEV 的 3D 检测结果 那 BEVDistill 作者所阐述的蒸馏也就是知识迁移的核心在哪呢一个是 Dense Feature Disillation另一个是 Sparse Instance Distillation一个叫密集的特征蒸馏一个叫稀疏实例蒸馏那我们可以发现其实作者这里加了很多限定词 我们先看第一个特征蒸馏特征蒸馏那顾名思义迁移的知识是什么呢显然是特征哪里的特征呢BEV 的特征那为什么说是 Dense 的特征呢那也就是为什么说这是密集的它其实呢是针对 BEV 空间而言的因为是对 BEV 空间每个位置去做的一一对齐所以是一种密集对齐 我们再看第二个叫实例蒸馏那这种迁移的知识是什么呢其实是一个个的目标实例那也就是说我们不仅仅呢要做到特征层面的对齐同时呢还需要做到预测结果的对齐那对于实例而言实例显然是稀疏的因为不可能空间所有位置全都密密麻麻的盘满了目标 所以这里流程其实很清晰输入点云通过点云处理网络我们可以得到点云 BEV 和点云的预测结果输入图像通过图像处理网络我们可以得到图像 BEV 和图像的预测结果那我们对齐在哪里做的呢我们做的是 BEV 特征和预测结果分别进行的对齐 OK我们接下来呢详细看一下 BEVDistill 这个网络具体是怎么做那我们首先看上面的部分也就是点云的处理流程如下图所示 LiDAR Stream 整体设计流程总结如下 输入3D Points步骤 13D Backbone步骤 2DETR Encoder 生成 BEV Feature步骤 3DETR Decoder输入检测结果 输入原始的点云数据通过体素化的处理通过 3D Backbone 然后再通过 DETR Encoder 提取特征可以得到 BEV Feature然后我们再用一个 Decoder 可以得到我们基于点云的检测结果那大家可以看到 BEVDisitll 中的点云处理模块都是我们之前讲过的一些小模块的组合。那比如说我们把前面这个体素的骨干网络换成基于 Pillar 的或者说基于点的比如 PointNet、PointNet 等等可不可以呢那肯定是可以的我们只要能生成这个 BEV Feature 前面怎么操作我们是不太关心的 那我们再来有了 BEV Feature 我们一定要用 DETR Decoder 吗它是必要的吗那肯定也不是我们有了 BEV Feature 我们可以直接连上一个 Detection Head 卷积也好全连接也好等等我们可以直接预测 3D 结果的无非是 DETR Decoder 可能在某个数据集下在某个场景下它表现的性能更好一点我们说点云模块我们主要关注两个重点内容一个呢是 BEV Feature利用输入点云得到的 BEV 特征另一个呢是我们说的检测结果是输入点云我们得到的检测结果 那么接下来再来看一下图像处理流程是怎么样做的如下图所示 Camera Stream 整体设计流程总结如下 输入Camera images步骤 12D Backbone步骤 2DETR Encoder 生成 BEV Feature步骤 3DETR Decoder输入检测结果 图像处理流程我们在前面的章节包括第三章第四章也一直在讲输入图像我们怎么处理图像编码网络 2D Backbone 可以得到图像特征那这个 Backbone 可以有什么呢我们说过 2D Backbone 它包括 ResNet、Swin Transformer 等等都是可以的 我们最终的目标是一致的是得到什么呢可以得到 BEV Feature我们得到了这个很重要的东西之后呢引入了后续的 Decoder 可以得到检测结果那同样这里的 2D Backbone 可以换吗可以随便换后面的解码头可以换吗可以随便换你只要能实现这个功能就可以了 我换好的 2D Backbone 能得到 BEV Feature 那就是一个好的 2D Backbone我换好的 Decoder 可以得到检测结果那就是一个好的 Detection Head所以说图处理流程和点云处理流程一样我们重点关注两个事情一个呢是 BEV Feature 也就是我们通过图像处理后所重构出来的 BEV 特征空间另外一个呢是图像的检测结果 我们为什么要关注这两个事情呢我们上面说的两个核心的模块其实都与 BEVDistill 的核心内容有关也就是与蒸馏相关我们来看下蒸馏部分的整体设计如下图所示 Distillation 整体设计流程总结如下 输入 1BEV Feature输入 2双流检测结果步骤 1Dense Feature Distillation步骤 2Sparse Instance Distillation 那作为图像的两块图像的 BEV Feature 和图像的检测结果与点云的 BEV Feature 和点云的检测结果两块是需要去学习的我们说点云的 BEV 它是作为老师图像的 BEV 作为学生学生向老师学习把老师的知识如果全都学到了我们就认为学的很好图像已经完全掌握了点云的本领同样点云的检测结果如果作为老师图像的检测结果如果作为学生学生向老师学习那两个学习模块是怎么做的呢我们接着往下看 3. 损失函数 那对于两个学习模块作者其实呢主要还是靠两个损失函数来控制的一个呢叫 Feature loss 特征损失我们度量特征差异一般怎么做呢两个特征点云的 BEV Feature 和图像的 BEV Feature 我们想度量两种特征的差异一般怎么做我们一般直接做差就好了比如使用 L1 损失或者使用 L2 损失那现在大家思考一个问题我们如果直接做差其他什么都不管会不会有什么问题那肯定是存在问题的 问题主要来源于模特表征之间的一个差异我们知道图像其实算是一个密集性的表征比如图像的特征网格之上可能每个位置都是有值的而点云的特征网格可能某些位置是没有值的我们说图像是密集型表征前景和背景一般都有值而点云是稀疏表征它只有当目标产生反射值的时候才会有值 那所以简单讲图像是表征了很多的背景而点云呢对于背景表征是比较少的所以我们如果将两张 Feature Map 直接做差是不太合理的那所以作者基于这个问题就思考说那我们能不能只计算前景区域就可以了我们把前景区域的权重提高把背景区域的权重降低从而我们促使两个 Feature Map 在前景区域只要趋于一致就可以了从而不用学习无关背景作者在 Feature loss 这里设置的时候引入了前景的权重对前景区域也就是目标的区域去进行保留对非目标的区域权重是进行了相应的降低的 上面是我们说的 Feature loss 特征层面的损失函数特征蒸馏部分是这么做的我们再看第二部分也就是实例蒸馏 实例蒸馏同样的也是引入了一个损失函数叫 Instance loss 实例损失那么这一部分我们再思考一个问题是不是说 teacher 网络的预测结果和 student 网络的预测结果是不是越接近越好是不是说学生的预测一定要和老师的预测一样呢那显然也不是的老师也是有犯错的时候的老师的预测结果中也包含很多的误检那所以说并不是所有来自老师的预测都应该被视为有价值的一个线索可能有一些预测结果偏移量很高旋转角很大等等它是有一些本身质量不太高的预测结果的 那我们希望学生在学习的时候呢取其精华去其糟粕我们希望它学习到好的预测而不要学习到这些差的预测那这个思路是不是又回到我们前面说的 Feature loss 的思路了 我们希望呢在 Feature 学的时候学前景不要学背景我们希望在 Instance 学的时候呢学好不要学坏的那一个很直接的方法是什么呢乘上权重我们给好的预测结果权重比较高给坏的预测结果权重比较低所以作者在文章中引出了一个叫预测结果质量的一个评价标准和我们的 GT 真实框 IoU 高的我们认为这是一个预测它有一个比较高的评价得分或者说权重得分那和 GT 真实框 IoU 比较低的它有一个比较低的权重质量得分用这个质量得分作为权重去控制损失函数的大小 那比如我们这里有一个很好的预测结果我们认为学生应该同时预测出这个好结果损失函数里面对于这个结果我们就设一个很高的值那相反比如老师预测结果很坏学生是可以忽略这种结果的那这个权重可以给的稍微低一点 所以总结一下 BEVDistill 分为两路有一条是点云支路另外一条是图像支路是分别得到 BEV Feature 和预测结果的然后再利用特征损失和实例损失引导学生向老师学习 4. 性能对比 OK我们最后来看一下实验结果总体性能如下表所示 那 BEVDistill 的训练原作者的说法训练设置是 8 张 A10024 个 epochbatch 等于 1。那我们上表给的是在 nuScenes 测试集上的一个结果L 是纯 LiDAR 的方法也就是我们输入是只有点云数据的C 是纯 Camera 的方法也就是输入是只有纯图像数据的纯视觉方案LC 它就属于融合类的方案像 BEVFusion因为它输入是既有点云数据也有图像数据的 那大家想一下我们刚讲过 BEVDistill 其实是有两条支路的有一条支路是输入点云有一条支路是输入图像它是同时使用了点云和图像作为输入的那作者为什么把它归为 C 类呢那这个 C 其实就是 Camera-only 是纯视觉方案那作者为什么把它归为纯视觉方案呢 那这里其实是因为点云支路它只是作为监督信息提供到图像支路的它并不参与推理的过程它提供的是一个比较好的辅助特征那比如比较好的 Feature 或者比较好的预测结果是作为一种辅助信息帮助纯视觉方案学得更好而不是说我们最后的推理过程也要使用点云数据那所以它这种监督其实和我们通常理解的深度值监督类似我们平常更多讨论的可能是一些 Depth 的监督我们 Box 的监督等等而像这种监督其实是一种特征层面的监督和预测集合层面的监督 那我们看 BEVDistill 和纯视觉方案相比性能还是不错的NDS 提高到了 59.4 我们还是具体看一下消融实验表 3 是两个蒸馏模块的性能比较前面是 BEV Feature 层面的后面是结果层面的那 BEV Feature 层面如果我们只引入这个 BEV Feature提升在 2.4 左右那我们如果只引入后面的预测结果提升在 1.6 左右两个同时使用呢是提高到了 45.7所以说无论是 BEV 的特征层面的蒸馏还是后面 instance 预测集合层面的蒸馏两个都是有必要的 那表 4 是和其他的蒸馏方法的对比看出来提升还是比较明显提升其实是在于以前的做法是对全局特征做的而 BEVDistill 其实是偏向对前景去做重建的目标更集中更好一点那我们既然说前景权重是很重要的所以表 5 中作者也给出了一系列前景权重的计算方法是使用 Center 做呢还是使用 Heatmap 做呢用预测结果做呢还是用 GT 做呢那这里作者也给出了很多种方案从实验结果看呢 GT-Heatmap 更好一点的 表 6 这里还给出了损失函数的对比我们的检测头呢一般是包含两个支路的前面 cls 是分类支路后面的 reg 是回归支路回归的是我们的坐标位置还有中心点还有尺寸等等啊那这里作者对分类损失进行了测试主要测试 CE 交叉熵损失和 infoNCE 对比损失对比损失可以使得正样本对之间互信息量最大负样本对之间互信息量最小 那表 7 是对特征对齐而言的2D 和 3D BEV Feature 对齐而言那也就是说 BEV 空间中同一位置的 2D 和 3D 的 BEV 特征应该趋于一致那怎么去度量这种一致呢作者这里也选取了三种不同方式进行实验对比 那我们也能看到作者做的实验是非常丰富的他对我们的主干网络也有一个讨论如表 8 所示我们是使用 BEVFormer 呢还是用 BEVFormer-T 呢这个 T 代表了引入多帧的时序信息 另外作者还有讨论我们的 Backbone 用 ResNet 好还是 MobileNet 好另外还把 BEVFormer 换成 BEVDet可以看到就是这么多对比那作者的方案性能还是不错的对于不同的框架不同的网络不同的 Detector 而言 BEVDistill 的性能还是都有所提升的 此外作者还做了 Waymo 数据集表 11 和表 12 也是针对不同的数据集那表 11 是做了 Waymo那表 12 是给出了 nuScenes 详细的指标这些指标是我们第三章节中中所提到的一些误差指标和一些准确率指标 除了一些指标的结果之外作者这里还给了可视化的结果如上图所示图中蓝色的是检测结果橙色的是 GT 我们叫 Ground Truth是真值橙色蓝色同时包围的一个目标是一个好的预测结果因为相当于是我们在 GT 中标注了这个目标我们的检测结果也检测出了这个目标那就是一个好的结果。有蓝色的没有橙色的属于误检也就是我们检测出来了但是实际上那个位置并没有物体有橙色没有蓝色属于漏检也就是说我们在 GT 当中标注的可是我们却没有检测出来。我们也能看到在远距离区域有橙色框但却没有蓝色框那就说明 BEVDistill 在远距离情况下会产生一些漏检的结果 那我们这个分析也是基于作者在论文中去给的示例的一些分析那实际远距离情况像 BEVDistill 能做到什么样还是需要再讨论的 OK本节内容呢是和大家一起学习了一下一个不太一样的 BEV 工作叫 BEVDistill那这个工作其实比较灵活,大家在实验中也能看到我们的主干网络、Detector 等等都是可以更换的它其实提供的是一种核心的思路是针对着 Feature 层面的对齐和预测目标层面的对齐像这种思路其实也是在现在的跨模态研究中比较通用的一种思路了 总结 本次课程我们学习了一个不太一样的 BEV 感知算法叫 BEVDistillBEVDistill 有 LiDAR 和 Camera 两条支路分别得到 BEV Feature 和预测结果然后再利用特征损失和实例损失去引导图像支路像点云支路去学习考虑到点云模态和图像模态之间的差异性我们在计算损失的时候是不能直接做差的需要分别乘上相应的权重。本身 BEVDistill 中的各个模块是可以替换的它提供的是一种核心的思路是对特征层面和预测结果层面的对齐。 OK以上就是 BEVDistll 的全部内容了这也是我们整个 BEV 感知课程中讲解的最后一个论文框架了下节我们一起去分析下 BEVFormer 的相关代码敬请期待 下载链接 论文下载链接【提取码6463】数据集下载链接【提取码data】 参考 Chen et al. Bevdistill: Cross-modal bev distillation for multi-view 3d object detection
http://www.zqtcl.cn/news/775092/

相关文章:

  • 网站都需要备案吗安徽建设通网站
  • 外包公司 网站建设 深圳电子商务公司设计网站建设
  • 怎么添加网站背景音乐定制建站
  • 西安网站建设和推广公司php企业网站开发实训报告
  • 市网站制作番禺绿叶居
  • 网站漂浮物怎么做电子商务网站开发实训体会
  • 电商网站建设定制济南网站建设及推广
  • 网站标签化wordpress 输出评论内容 函数
  • 明星个人网站设计汕头网络推广公司
  • 深圳有哪些做网站公司好武夷山建设局网站
  • 怎么设立网站赚广告费一个网站可以做多少关键字
  • 网站刚建好怎么做能让百度收录成都定制网站建
  • thinkphp网站开发技术做电脑租赁网站
  • 网站设计评语中午版wordpress
  • 邢台企业手机网站建设汕头网站制作后缀
  • 微网站后台内容设置做网站语言排名2018
  • 嘉兴网站制作网站建设外贸营销推广平台有哪些
  • 网站开发集广州高端网站定制开发价格
  • 网站开发培训成都网站建设 报价单 doc
  • 苏州哪里有做淘宝网站的WordPress模板博客主题
  • 网站做中转做任务 网站
  • 深圳住房建设局网站网站的建设教程
  • 6免费建站的网站在线建筑设计
  • 哪些网站做任务可以赚钱的建设厅网站如何查询企业信息
  • 深圳网站设计+建设首选深圳市服装网站建设需求分析报告
  • 肥城网站制作浙江省建设厅信息港官网
  • 手机网站建设进度南宁企业网站设计
  • 建设学校网站方案大淘客网站上的推广怎么做
  • 哪个网站可以免费学设计南阳网站建设页面
  • 外贸公司建网站一般多少钱南京网站建设小程