论文:F-cooper | Proceedings of the 4th ACM/IEEE Symposium on Edge Computing
前人的工作
卷积特征图
在目标检测领域,目前流行是使用CNN网络提取特征。首先将原始数据作为输入送入带有filter的卷积层,每个filter产生一个特征图。生成的特征图会递归作为下一层的输入。
特征融合
由于CNN网络生成的特征图可解释性较差,在使用特征图时,需要确保处理一致性的问题。即将其他代理生成的特征图转换为自己所用时,需要付出一定的运行成本。
融合特点
FPN与RCNN的成功说明了融合不同层生成的特征图检测目标是可行的。同时要保证所有提取出来的特征图都是以相同的格式和数据类型获得的。接下来,由于从3D点云中提取的特征图也包含位置数据,所以只要不同的自动驾驶汽车之间存在单一的重叠点,我们就可以对不同的自动驾驶汽车的特征图进行融合。在融合的过程中,需要调整融合算法来适应等距位置对齐的问题。具体来说就是让每辆车发送其GPS和IMU数据,以便进行点云融合的转换计算,也就是说,将发送者看到的视图转换为接收者看到的视图。
压缩与传输
不同车辆由于传感器的不同获取的原始数据有可能不同,而将原始数据使用CNN网络处理,多余的数据将被过滤,只留下对于目标检测有用的信息。同时,数据量也将大量减少。对于一个典型的LiDAR传感器来说,每一帧LiDAR包含大约100,000个点,约为4MB。如此庞大的数据量对于任何现有的无线网络基础设施来说都是一个严重的负担。与大量的原始LiDAR数据形成鲜明对比的是,在使用压缩技术后,CNN生成的特征大小可以低至200 Kb。通过无损压缩,数据大小的优势可以进一步增强。加上稀疏矩阵的特性,可以实现不超过1MB的特征数据压缩
一般和内在属性
所有的自动驾驶汽车都必须根据传感器产生的数据做出决定。原始数据由车辆上的物理传感器生成,然后转发到车载计算设备。然后,原始数据通过基于CNN的深度学习网络进行处理,最终做出驾驶决策。
由于到目前为止几乎所有已知的自动驾驶车辆都使用基于CNN的网络,因此特征提取是通用的,在融合前不需要进一步处理。
论文概述
相互联系的自动驾驶汽车CAV可以为提升道路安全提供一种新的解决方案,单车传感器受限于视野和范围的限制,往往无法为自动驾驶提供足够的安全保障,搭配边缘计算的多代理数据融合技术可以实现更好的情况感知,并且特征级的数据融合可以在低带宽的情况下实现实时的数据分析,这可以缓解数据融合中存在的数据量过大与计算性能要求较高的困境。
自动驾驶汽车边缘计算系统由三层组成:车辆、边缘和云。每辆自动驾驶汽车都配备了车载边缘设备,这些设备集成了自动驾驶所需的功能模块,包括定位、感知、路径规划、车辆控制等。自动驾驶汽车可以与路边的边缘服务器通信,并最终通过无线网络到达云端。正是在这里,数据被融合和处理,以进一步扩大每个车辆的感知范围;超出视线范围和视野范围。
本篇论文提出的基于特征的合作感知框架是端到端的特征级数据融合,并且提出两个不同的融合方案:voxel特征融合、空间特征融合。二者的检测性能都要强于单源目标检测。虽然空间特征融合数据可以动态调整压缩大小,比体素特征融合数据更小,但后者能够在原始数据级融合的水平上改进检测,每种策略都有其独到的优势。
voxel特征融合(VFF)
将点云数据分割为一个一个的voxel,每个voxel至少含有1给点,至多含有35个点,再通过VoxelNet的VFE层生成voxel特征(128维)。即所有的非空voxel都通过一系列完整的连接层转换为一个长度为128的固定大小向量(特征图)。
为了使得计算和内存使用更加高效,作者将非空voxel的特征都保存到一个哈希表中,其中voxel的坐标被用作哈希键。对于自动驾驶的实际场景,一般会保存几千个voxel,这样的计算开销是可以接受的。
在VFF中,将两辆车的voxel特征进行融合。虽然两辆车位于不同的物理位置,但它们共享相同的校准3D空间,不同的偏移量表示每辆车在3D校准空间中的相对物理位置。最终使用element-wise maxout方案(从两个特征的特征向量中每个维度只取最大值)来融合同一位置上的特征。这种方法可以提取明显的特征,同时抑制3D空间中不利于检测的特征,从而实现更小的数据量。此外,由于maxout是一个简单的浮点运算,它没有引入额外的参数。
但是在现实中,即使出现了voxel间微小的偏差也会使得检测结果明显的不匹配。
空间特征融合(SFF)
与VFF不同的是,通过对每辆车的体素特征进行预处理,得到空间特征。然后将两个源空间特征进行融合,并将融合后的空间特征转发到RPN中进行区域建议和目标检测。
通过特征学习网络生成激光雷达框架的空间特征图,其输出是一个稀疏张量,尺寸为128×10×400×352.为了融合所有voxel特征,通过三层三维卷积层处理后大小为64×2×400×352,将其重塑为128×400×352后再发送给RPN。在SFF中检测范围要比特征图大小要大。然后,在不重叠区域保留原有特征的情况下,对重叠区域进行融合。SFF也采用maxout来融合重叠的空间特征。最终在RPN上找出目标区域。
融合特征进行目标检测
为了检测车辆,将合成的特征映射提供给区域建议网络(RPN)来提出目标建议。然后利用损失函数对网络进行训练。
RPN网络
经过RPN网络后,可以得到一个由损失函数产生的两个输出:一个预测得分p,以及建议区域P参数化表示
损失函数
设G为中心的box
$$
\Delta x=\frac{G_x-P_x}{P_d},
\Delta y=\frac{G_y-P_y}{P_d},
\Delta z=\frac{G_z-P_z}{P_h}\quad(P_d=\sqrt{(P_l)^2+(P_w)^2});\
\Delta l=\log{\frac{G_l}{P_l}},
\Delta w=\log{\frac{G_w}{P_w}},
\Delta h=\log{\frac{G_h}{P_h}},
\Delta\theta=G_\theta-P_\theta;
$$
损失函数:
$$
L=\alpha\frac{1}{N_{neg}}\sum^{N_{neg}}{i=1}L{cls}(p_{neg}^i,0)+\beta\frac{1}{N_{neg}}\sum^{N_{pos}}{i=1}L{cls}(p_{pos}^i,1)+\frac{1}{N_{neg}}\sum^{N_{neg}}{i=1}L{reg}(p^i,G^i)
$$
p为预测锚点,G为ground truth,对于分类损失和SmoothL1损失使用二元交叉熵损失
实验结果
由于KITTI数据是单车记录的,作者通过使用同一记录的不同时间段来模拟两辆车生成的数据。
实验表明VFF在精度上与原始数据融合相似,但是SFF对于近距离的检测表现比VFF更好。同时,VFF对于车辆位置的偏差并不如SFF那么敏感。而且对于小目标的检测而言,其更依赖于位置距离的影响,并且小目标的特征容易在提取时被过滤导致缺失。因此,需要一种新的提取特征方法来像外科手术一般提取特征,避免检测冲突。