物体检测算法"/>
自动驾驶环境感知之激光雷达物体检测算法
前言:视觉感知包括二维和三维视觉感知,其最终目的是为了获取三维世界坐标系下感兴趣的目标和场景的信息。单目相机下,需要几何约束或者海量数据来学习,以此来推测三维信息。双目相机下,可基于立体视觉原理来计算目标的深度信息,但在光照条件比较差或者纹理信息比较少的区域,很难找到匹配特征,因此深度估计效果会比较差,而且深度估计的精度会随着距离的增加会显著降低。相比于视觉系统间接推测三维信息,激光雷达可直接获取物体和场景的三维信息,因此激光雷达对于视觉传感器来说是一个很好的补充。
1. 激光雷达基础
(1)激光探测与测距系统(Light Detection And Ranging, LiDAR)
- 激光波长
- 905nm:需要限制功率,以保证对人眼没有损伤
- 1550nm:对人眼没有损伤,探测距离更远,但是成本高
- 测距原理
- 单脉冲飞行时间法(ToF):测出发射脉冲到接收脉冲所需的时间,再结合光速计算距离
- 调频连续波(FMCW):与毫米波类似,在后续毫米波雷达章节介绍
- 结构光法:在激光SLAM中有过详细介绍
- 硬件结构
- 机械旋转式:包含多个发射接收模块,需要人工调教。因此成本高,量产困难。另外,实际中当车身发生震动颠簸时会对机械转动模块产生较大影响,故很难满足车规级要求。
- 半固态(MEMS):采用微电子的机械系统来驱动激光雷达中的微小悬镜,然后将激光束反射到不同方向,这样可减少发射接收模块数量,从而降低生产成本,是目前自动驾驶系统中较为常见的量产方案。
- 全固态(FLASH):它没有空间扫描过程,也没有悬镜去反射激光束。是短时间内发射激光束,同时覆盖大面积的区域,但目前技术还不是很成熟。
- 考虑到整个生产成本、量产难度、车规级要求以及技术成熟度,目前半固态式激光雷达是比较有前景的。
(2)为什么要使用激光雷达——传感器之间的互补性
- 摄像头
- 优点:能够提取丰富的纹理和颜色信息,适用于目标的检测和分类,以及语义信息的提取
- 缺点:3D信息的感知能力比较弱,且受光照条件影响比较大
- 激光雷达
- 优点:能够精确感知目标的3D信息,且不受光照影响
- 缺点:成本较高,量产难度大,受天气影响较大
(3)不同级别自动驾驶系统的需求
-
L2级(自适应巡航 + 车道保持)
可以采用纯视觉系统来进行简单的目标检测和距离估计,因为此时驾驶主体是驾驶员本身,驾驶员需要时刻保持对车辆的掌控和周围环境的观察,自动驾驶系统只是起到辅助的作用。 -
L3级(拥堵辅助,领航辅助)
至少需要配备前向的激光雷达,来对车辆行进方向的运动或静止障碍物进行精确的距离估计 -
L4级(RoboTaxi)
在特定场景下,车辆可完全自主行驶,不需要驾驶员接管。需要多个激光雷达提供360°视场,以及需要一定的系统冗余性,当一个激光雷达失效时,其他激光雷达还能继续完成感知任务。
2. 点云数据库
(1)三种数据库比较
(2)WOD上的基准测试结果
- 基准算法:PointPillar物体检测算法
- 性能指标
- 输出3D框与ground truth的3D框进行对比
- 忽略高度信息,在俯视图(BEV)上将输出2D框与ground truth投影的2D框进行对比(大小、朝向等)
- Average Percision(AP),APH(AP with Heading)——带朝向的AP
- LEVEL_1/LEVEL_2(将数据分为两种 不同难度进行对比)
- 检测结果
- 远距离目标检测准确率较低
- 行人的检测准确率较低
- 不同城市的数据之间存在较大差异,算法的适应性不佳
- 增加训练数据可以显著地提高检测准确率
3. 基于激光雷达的物体检测算法概述
(1)大致流程
- 输入
- 点:X,Y,Z和反射强度R
- 点云:多个点的集合(它是无序的,非结构化的数据)
- 输出
- 目标的类别和置信度
- 目标的边框(Bounding Box):中心点3D坐标,长宽高,旋转角度
- 目标的其他信息:速度,加速度等
- 点云表示方法
- 点视图(Point View, PV):原始点云集合
- 俯视图(Brid’e Eye View, BEV):将点云量化为3D网格,将3D网格在高度方向上进行压缩可得到2D网格
- 前视图(Range View, RV):将点云投影到图像平面
- 多视图融合:俯视图+点视图,俯视图+前视图
(2)基于不同视图的激光雷达物体检测算法
- 点视图:PointNet/PointNet++,Point-RCNN,3D SSD
- 俯视图:VoxelNet,SECOND,PIXOR,AFDet
- 前视图:LaserNet,RangeDet
- 多视图融合
- 俯视图+点视图:PointPillar,SIENet,PV-CNN
- 俯视图+前视图:MV3D,RSN
4. 基于点视图的激光雷达物体检测
(1)PointNet
- 论文:QI et al, PointNet. Deep learning on point sets for 3d classification and segmentation, 2017.
- 核心思路:点云特征提取
- MLP(多个全连接层)提取点特征:n个点,特征由3维提升到1024维
- MaxPooling得到全局特征:1024维
- 可端到端学习,对点云进行分类/语义分割
- 拓展到物体检测:可先对点云进行聚类,然后使用PointNet对每一个聚类进行分类,即Clustering得到候选 + PointNet分类(经过clustering后,每个类别不一定都包含n个点。对于没有n个点的类别,需要进行上采样,对于超过n个点的类别,需要进行下采样,最终目的是使得每个类别都包含n个点)
- 大致流程:
输入n个点,每个点是由(X,Y,Z)坐标组成。首先,进行一个input transform空间变换,将不同朝向的物体归一化到一个统一的视角下(统一坐标系),使得不同物体的点云处于同一坐标系下。然后,通过MLP对点云进行点特征提取(由 n × 3 n \times 3 n×3转换为 n × 1024 n \times 1024 n×1024)。接着,通过MaxPooling进行全局特征提取(在n个点维度上进行Max Pooling,由 n × 1024 n \times 1024 n×1024转换成 1 × 1024 1 \times 1024 1×1024)。最后,通过MLP对1024大小的一维向量进行分类,获取点云分类结果。
(2)PointNet++
-
论文:Qi et al, PointNet++. Deep hierachical feature learning on point sets in a metric space, 2017.
-
它是在物体检测方向进行扩展:Clustering + PointNet
- 用聚类的方式来产生多个候选点集,每个候选点集采用PointNet来提取特征
- 上述过程重复多次:上一层的点集经过全局特征提取后看作下一层的点(Set Abstraction, SA)。也就是说,每个候选点集可以表示成一个特征向量,因此可将每个候选点集看成一个新的点,它有一个与之对应的特征向量。所以,多个候选点集可看成由多个点组成的新点云,它与原始点云在形式上是一样的。然后,再用上述过程对新点云进行相同处理,如此可重复多次。
- 点特经过多次聚类+PointNet特征提取后,会得到比较稀疏的点云,每个点特征具有较大的感受野,包含周围环境的上下文信息。因此,每个点可以看作物体的候选,实现对物体分类和检测的目的。
- PointNet++最后对得到的稀疏点云再经过PointNet进行场景的全局分类,同时将稀疏点云恢复到原始点云,进行点云分割。
(3)PointNet和PointNet++中存在的问题
- 无法利用视觉领域成熟的检测框架,比如:Faster R-CNN,YOLO等
- Clustering部分的计算复杂度较高,而且难以并行处理
- 两个改进方法:Point R-CNN,3D SSD
(4)Point R-CNN
论文:Shi et al. PointRCNN. 3D Object Proposal Generation and Detection from Point Cloud, 2018.
-
核心思想:点处理(第一步) + Faster R-CNN(后三步)
- 通过PointNet++提取点特征,同时进行前景分割,以区分物体点和背景点
- 每个前景点生成一个3D候选框
- 对每个候选框内的点进行ROI Pooling,得到固定大小的特征向量。
- 最后与Faster RCNN一样,进行一系列的特征提取,如对bounding box进行分类,并修正其位置和大小
-
运行速度瓶颈 (Point R-CNN中的前景分割是怎么实现的)
- Point R-CNN是通过前景分割来代替聚类,在一定程度上可减少聚类所带来的计算量。但在进行前景分割时,需要通过PointNet++将点集特征经过上采样映射回原始点云(因为聚类生成的点集无法很好地覆盖所有物体),这一部分是比较耗时的。
- 在ROI Pooling中需要全局搜索属于每个物体候选框中的点
(5)3D SSD
- 论文:Yang et al., 3dssd:Point-based 3d single stage object detector, 2020
3D SSD相对于Point R-CNN而言,做出了如下改进:
-
提高聚类质量
- PointNet++是考虑点与点之间的空间距离(几何特征)进行聚类,3D SSD是同时考虑点与点之间在几何与特征空间上的相似度来进行聚类。
- 此时,聚类可以更好地覆盖场景中的物体,可直接以聚类的输出作为物体候选,而不用再上采样到原始点云。
-
避免重复计算
- 高质量的聚类算法输出每个cluster的中心和邻域点,无需再上采样到原始点云。
-
提高了聚类质量后,可确定聚类中的点属于哪个类别。因此,可避免在ROI Pooling阶段全局搜索场景中的所有点来确定其中每个点属于哪个物体候选框。
5. 基于俯视图的激光雷达物体检测
(1)VoxelNet
-
论文:Zhou and Tuzel, Voxelnet: End-to-end learning for point cloud based 3d object detection, 2018.
-
大致内容:特征学习网络(Feature Learning Network)、3D卷积网络(Convolutional Middle Layers)、区域候选网络(Region Proposal Network)
-
特征学习网络
- Grouping & Sampling:将输入点云在三维空间中进行量化,具体操作为:将三维空间划分为三维网格,每个网格中会分配到相应数量的点,然后通过上采样与下采样操作,来统一每个网格中的点数量。
- Voxel Feature Encoding(VFE):先通过全连接层对每个网格中的点进行特征提取,然后对提取到的每个点特征进行Mean Pooling获取特征均值,最后将每个点特征与特征均值进行concat拼接,得到新的点特征,由此得到的特征既包含该点自身的特征,也包含该网格的整体特征(具有一定的邻域信息)。
- Stacked VFE:重复多次VFE操作
-
3D卷积网络
经过stacked VFE特征提取后,得到一个四维的Tensor。然后,采用3D卷积网络提取三维空间特征,并将高度压缩到一维,最终得到一个类似于二维图像表示形式的三维Tensor。
- 区域候选网络
在经过上述3D卷积网络后,得到类似于二维图像的特征,因此可采用类似于二维图像物体检测网络来进行处理。下面是通过类似于U-Net结构的网络进行特征提取,然后分别使用分类和回归Head进行处理。
(2)VoxelNet中存在的问题
- 数据表示低效,存在大量空白区域
- KITTI数据库一般生成5K-8K个Voxel,只有0.5%的Voxel是非空的
- 改进方法:SECOND(采用稀疏卷积,避免空白区域的无效计算)
- 三维卷积计算量巨大
- 改进方法:PIXOR(将3D网格通过手工设计的方式压缩到2D)
(3)SECOND(Sparsely Embedded Convolutional Detection)
- 论文:Yan et al., Second: Sparsely embedded convolutional detection, Sensors, 2018.
- 大致结构
- 使用稀疏卷积避免无效计算:
将VoxelNet中的3D卷积转换为稀疏卷积,相应的输入由稠密的网格表示形式转化为稀疏的结构,即只保留非空的网格特征,同时记录每个非空网格的索引位置,其余模块与VoxelNet类似。
- 稀疏卷积操作:首先,网格数据上是由稠密表示转换为稀疏表示。其次,卷积操作只在非空网格上进行卷积操作,如下图所示:
(4)PIXOR(Oriented 3D object detection from Pixel-wise neural network predictions)
-
论文:Yang et al., Pixor. Real-time 3d object detection from point clouds, CVPR, 2018.
-
核心思想:通过手工设计高度维度的特征,将高度维度变成特征通道,从而将3D卷积变成2D卷积,可以使用2D卷积来提取特征。其中,手工设计包括Occupancy和Intensity两个方面的内容。
- Occupancy:对于 L × W × H L \times W \times H L×W×H的网格,将高度维度划分成 H H H个格子,若当前高度格子内有点,则该高度格子参数为1,否则为0。
- Intensity:对于 L × W × H L \times W \times H L×W×H的网格,将高度 H H H上所有点的反射强度进行平均,将 H H H维压缩成1维。
- Total:将Occupancy和Intensity特征合并起来,由此将三维网格转换成 L × W × ( H + 1 ) L \times W \times (H+1) L×W×(H+1)格式的图像(图像大小: L × W L \times W L×W,通道数: H + 1 H+1 H+1)
6. 俯视图与点视图的比较
(1)俯视图
- 优点:输入结构化数据,网络结构简单,可以通过标准的卷积操作得到最终的检测结果
- 缺点:对量化参数敏感:粗网格导致较大的信息损失,细网格导致较大的计算量和内存使用量
(2)点视图
- 优点:没有量化损失,数据比较紧致
- 缺点:输入非结构化数据,网络结构复杂,并行处理困难,提取邻域特征困难
(3)检测结果比较
算法 | VoxelNet | SECOND | PIXOR | Point RCNN | 3D SSD |
---|---|---|---|---|---|
点云表示 | 俯视图 | 俯视图 | 俯视图 | 点视图 | 点视图 |
车辆准确率(AP) | 79% | 83% | 80% | 87% | 89% |
行人准确率(AP) | 41% | 45% | 46% | 50% | |
速度(FPS) | 2 | 26 | 28 | 10 | 25 |
7. 基于前视图的激光雷达物体检测
(1)前视图的生成
方位角(Azimuth): θ = a t a n 2 ( y , x ) \theta = atan2(y,x) θ=atan2(y,x)
仰角(Elevation): ϕ = a r c s i n ( z / x 2 + y 2 + z 2 ) \phi = arcsin(z/\sqrt{x^2+y^2+z^2}) ϕ=arcsin(z/x2+y2+z2 )
对(r,c)进行如下形式的量化,将三维笛卡尔坐标系中的(x,y,z)转换到圆柱坐标系(r,c)的量化网格中,由此得到的图像即为前视图。
r = ⌊ θ / Δ θ ⌋ c = ⌊ ϕ / Δ ϕ ⌋ r = \lfloor \theta/\Delta \theta \rfloor \ \ \ \ \ \ c = \lfloor \phi / \Delta \phi \rfloor r=⌊θ/Δθ⌋ c=⌊ϕ/Δϕ⌋
- 垂直方向(Elevation)
根据激光雷达的线束(Laser beams)确定,如64线的激光雷达对应64个离散的仰角
- 水平方向(Azimuth)
根据激光雷达的水平分辨率确定,假设水平分辨率为0.2°,则激光雷达扫描360°的视场就会产生1800个离散的方位角
- 根据仰角和方位角可确定前视图(上述确定的分辨率为 1800 × 64 1800 \times 64 1800×64),前视图中的像素值是对应的点特性,如点深度、反射强度等。由于每个网格最多只有一条激光线通过,因此每个网格最多只包含一个点
(2)前视图的特点
- 优点
- 前视图的网格结构相比俯视图的网格结构而言,表示更为紧致,而且没有量化损失
- 每个像素上理论上都会有数据
- 缺点
- 前视图类似于一种图像结构,故和图像一样,会因透视问题而造成不同距离的物体尺度差别很大(由于俯视图和点视图是基于三维的世界坐标系,因此物体大小不随物体位置而发生变化)
- 前视图是一个二维图像,物体的三维信息(如深度特征)是嵌入在二维图像的某一个特征channel中的,因此在提取二维特征时不一定会保留三维信息(如深度特征)。也就是说,2D特征与3D物体信息存在不一致性。
(3)LaserNet
- 论文:Meyer et al., LaserNet: An Efficient Probabilistic 3D Object Detector for Autonomous Driving, 2019.
- 大致流程
输入数据为多通道的前视图图像(如多通道中含有深度、反射强度、高度等信息),然后通过金字塔网络提取多尺度特征。基于得到的特征,在不同Head层进行bbox预测,bbox角点分布以及点的分类。
另外,在细节上使用NMS操作来对稠密输出去冗余,利用bbox的角点信息对bbox参数进行聚类。
(3)RangeDet
- 论文:Fan et al., RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection, 2021.
- RangeDet的引出
- 前视图中不同距离的物体尺度差别比较大,俯视图中所有物体大小与距离无关
- 前视图中提取到的特征是一个二维特征,与物体检测所需的三维特征存在不一致性,即在前视图中采用标准卷积是无法提取丰富的三维信息的。
- 基于以上两点原因,直接在前视图上采用标准卷积操作得到的效果比较差,RangeDet分别提出Meta-Kernel和Range Conditioned Pyramid Assignment来进行优化
- 大致流程
首先,输入多通道的前视图,然后通过BasicBlock进行卷积操作。接着,通过Meta-Kernel从前视图中提取三维信息。再通过Pyramid结构的Backbone提取多尺度特征。最后,将不同大小的物体分配到相应尺度的特征上,并且在对应的标准检测头上输出bbox。
Meta-Kernel
- 标准卷积操作是平移不变的,即在不同位置的卷积kernel是一样的,无法有效利用前视图中不同位置包含的几何信息
- Meta-Kernel与传统卷积最大的区别在于如何获取卷积核的权重。首先提取卷积中心点和邻域点的几何信息,并由此计算卷积核。它的卷积核是依赖于数据的,并且是根据位置而变化。
- Meta-Kernel可增强物体边缘信息的提取。
- 具体过程:例如,下图是在前视图上进行 3 × 3 3 \times 3 3×3的卷积,红点为卷积中心点。对于该中心点,首先要在前视图上找到其邻域点,然后将这些邻域点变换到对应的三维空间中,再计算出这些邻域点在三维空间中与中心点的相对位置 ( x i − x j , y i − y j , z i − z j ) (x_i-x_j,y_i-y_j,z_i-z_j) (xi−xj,yi−yj,zi−zj),然后输入到MLP中提取卷积操作中每个点的权重值。最后,将这些权重作用于卷积核中对应点的特征上,再将卷积核中邻域点的所有加权特征进行concat拼接,并且通过 1 × 1 1 \times 1 1×1进行整合,得到的就是Meta-Kernel的输出。
Range Conditioned Pyramid:如何将不同大小的物体分配到金字塔的不同层级上
- 传统做法:物体按照大小被分配到不同Pyramid层级上进行处理
- 存在问题:同一Pyramid层的物体可能距离完全不同,因此点云特征差别很大
- 解决办法:将0-80m的距离分为[0, 15),[15, 30),[30, 80]三个区间,每个区间中的物体由一个金字塔层级负责处理——按照距离来划分物体的层级归属,而不是按照物体大小来划分
- Range Conditioned Pyramid提高了对不同距离的适应性
8. 基于多视图融合的激光雷达物体检测
8.1 不同视图间的互补性
如下表所示,自动驾驶中结构化数据和3D信息保持这两个信息比较重要,因此提出了基于俯视图+点视图和基于俯视图+前视图的多视图融合方法。
优点 | 点视图 | 俯视图 | 前视图 |
---|---|---|---|
数据紧致性 | 强 | 弱 | 强 |
结构化数据 | 弱 | 强 | 强 |
量化损失 | 无 | 有 | 损失较少 |
3D卷积 | 无 | 有 | 无 |
邻域特征提取 | 可有 | 有 | 可有 |
3D信息保持 | 强 | 强 | 较强 |
8.2 俯视图 + 点视图
(1)基本思路
-
俯视图:在较低分辨率的Voxel上使用卷积较快地提取邻域特征或者生成物体候选
-
点视图:由于特征提取步骤是在较低分辨率上进行的,因此不可避免地会产生量化损失。于是在原始点云上提取点特征,为提升速度忽略空白区域,保持空间分辨率
-
融合:最后,将Voxel特征与点特征进行融合
-
代表性方法:PointPillar、PV-CNN、SIENet
(2)PointPillar
- 论文:Lang et al., PointPillars: Fast Encoders for Object Detection from Point Clouds, 2019.
- Pillar特征提取:先在点视图上提取点特征,然后基于提取到的点特征在俯视图上进行Voxel量化,得到 H × W × C H\times W \times C H×W×C的类似于图像结构的特征
- backbone:采用Feature Pyramid Network进一步提取多分辨率特征
- Head:采用SSD检测头输出物体类别及bounding box
Pillar特征提取详细介绍
- 获取Pillar
- 首先,对X-Y平面进行网格量化,一个网格 = 一个Pillar(其中得到的大部分Pillar均为空)
- 每个点用9维特征表示:x, y, z点的三维坐标,r表示点的反射强度,xc, yc, zc表示每个点相对于Pillar中所有点的平均值的偏差,xp, yp表示每个点相对于该Pillar的中心在x和y方向上的偏差
- Pillar表示为一个三维的Tensor形式(P, N, D),其中D = 9,P = 非空Pillar数量,N = Pillar中的点数
- 获取点特征
- 通过PointNet对Pillar提取点特征(将D维升到C维):(P, N, D) ==> (P, N, C)
- 对Pillar中的N个点进行MaxPooling操作,提取Pillar的全局特征:(P, N, C) ==> (P, C)
- 将非空Pillar映射回X-Y平面:(P, C) + 非空Pillar的索引 ==> (H, W, C)
backbone详细介绍
前面提取到的Pillar特征是一个二维图像形式,因此可采用经典的Feature Pyramid Network对其进行处理:经过一系列下采样 + 上采样 + skip连接,最后进行concat拼接,然后采用类似于SSD中的方式,基于anchor的方式回归出每个bbox的大小、位置、角度以及类别,输出最终检测到的三维物体。
Anchor的设计
- 图像(透视图):物体大小和长宽比随物体位置不同变化较大,因此需要设计不同大小和长宽比的anchor,常用的有1:1,1:2,2:1
- 点云(俯视图):同类物体大小和长宽比基本不变,因此需要针对不同类别设计anchor,如针对车辆、行人等设计专属anchor
PointPillar中的损失函数
-
3D物体框的表示:(x, y, z, w, l, h, θ \theta θ), θ \theta θ为物体框在x-y平面上的旋转
- 物体回归损失(Smooth L1 Loss)
Δ x = x g t − x a d a Δ y = y g t − y a d a Δ z = z g t − z a h a Δ w = l o g w g t w a Δ l = l o g l g t l a Δ h = l o g h g t h a Δ θ = s i n ( θ g t − θ a ) d a = ( w a ) 2 + ( l a ) 2 L l o c = ∑ b ∈ { x , y , z , w , l , h , θ } S m o o t h L 1 ( Δ b ) Δ 中引入 s i n 是为了忽略掉 g t 和 b b o x 朝向相反时的情况 \Delta x = \frac{x^{gt}-x^a}{d^a} \ \ \ \ \ \ \Delta y = \frac{y^{gt}-y^a}{d^a} \ \ \ \ \ \ \Delta z = \frac{z^{gt}-z^a}{h^a} \\ \Delta w = log \frac{w^{gt}}{w^a} \ \ \ \ \ \ \Delta l = log \frac{l^{gt}}{l^a} \ \ \ \ \ \ \Delta h = log \frac{h^{gt}}{h^a} \\ \Delta \theta = sin(\theta^{gt} - \theta^a) \ \ \ \ \ \ d^a = \sqrt{(w^a)^2+(l^a)^2} \\ \mathcal{L}_{loc} = \sum_{b \in \{ x,y,z,w,l,h,\theta \}}SmoothL_1(\Delta b) \\ \Delta中引入sin是为了忽略掉gt 和 bbox朝向相反时的情况 Δx=daxgt−xa Δy=daygt−ya Δz=hazgt−zaΔw=logwawgt Δl=loglalgt Δh=loghahgtΔθ=sin(θgt−θa) da=(wa)2+(la)2 Lloc=b∈{x,y,z,w,l,h,θ}∑SmoothL1(Δb)Δ中引入sin是为了忽略掉gt和bbox朝向相反时的情况
-
物体分类损失(Focal Loss),针对于正样本(实际上正样本和负样本都需要进行计算的),loss公式如下所示:
L c l s = − α a ( 1 − p a ) γ l o g p a p a 为网络在 a n c h o r 上的类别预测输出 , α = 0.25 , γ = 2 \mathcal{L}_{cls} = -\alpha_a(1-p^a)^{\gamma}log \ p^a \\ p^a为网络在anchor上的类别预测输出, \alpha = 0.25,\gamma=2 Lcls=−αa(1−pa)γlog papa为网络在anchor上的类别预测输出,α=0.25,γ=2 -
最终的损失函数
L = 1 N p o s ( β l o c L l o c + β c l s L c l s + β d i r L d i r ) β l o c = 2 , β c l s = 1 , β d i r = 0.2 \mathcal{L} = \frac{1}{N_{pos}}(\beta_{loc}\mathcal{L}_{loc} + \beta_{cls}\mathcal{L}_{cls} + \beta_{dir}\mathcal{L}_{dir}) \\ \beta_{loc} = 2,\beta_{cls}=1,\beta_{dir}=0.2 L=Npos1(βlocLloc+βclsLcls+βdirLdir)βloc=2,βcls=1,βdir=0.2
其中, L d i r \mathcal{L}_{dir} Ldir是针对bbox的朝向所引入的损失函数。由于前面的 Δ θ \Delta \theta Δθ在计算时引入sin使得0°和180°得到的结果都是0, L d i r \mathcal{L}_{dir} Ldir实质上是进行0-1二分类,用以区分bbox是0°还是180°。
8.3 基于俯视图 + 前视图的激光雷达物体检测
(1)基本思路
- 融合俯视图和前视图下的特征
- 尽量避免空白区域的无效计算
(2)MV3D
- 论文:Chen, et al., Multi-view 3d object detection network for autonomous driving, 2017.
- 从俯视图的BEV网格中生成3D物体候选,再转换为不同视图(俯视图、前视图)下的候选
- 对不同视图下的候选框进行ROI Pooling操作
- 在候选框层级上融合不同视图的特征
更多推荐
自动驾驶环境感知之激光雷达物体检测算法
发布评论