本文来源:佐思汽车研究
【资料图】
奔驰早在2015年就开始打造自己的训练测试数据集,2016年第一阶段正式完工,是所有车企中最早自建训练测试数据集的,也是最早且唯一具备全景语义分割的数据集,技术实力不逊于Waymo。Cityscape分三期,第一期是2016年4月完工,论文为:《The Cityscapes Dataset for Semantic Urban Scene Understanding》,第二期是2019年5月,追加全景语义分割,论文为《Panoptic Segmentation》,此论文为原Facebook AI研究院与海德堡大学合作,第三期是2020年8月,追加3D版,论文为:《Cityscapes 3D: Dataset and Benchmark for 9 DoF Vehicle Detection》。
奔驰的Cityscape数据集是全球唯一没有激光雷达的数据集,因为奔驰是立体双目拥趸,奔驰数据采集车的传感器只有一对立体双目摄像头,立体双目可以看做一种特殊的激光雷达,能够以物理测量级的精度获得3D信息,可以提供真值。
Cityscapes采集自德国及附近国家的50个城市,包括了春夏秋三个季节的街区场景。研究人员认为雨雪等极端天气需要特殊的处理方法和数据集进行研究,因此在Cityscapes数据集中没有采集此类数据。数据采集使用的是1/3英寸CMOS 2MP sensors (OnSemi安森美AR0331),帧率为17的卷帘相机,包括左目和右目,基线距离22cm,采集的是色彩深度为16位的HDR图像。这里奔驰的论文似乎犯了一个错误,AR0331是300万像素而非200万像素,考虑到2016年,奔驰用的应该是AR0231,是230万像素。而从Cityscape的数据格式看,实际像素是2048*1024,大约210万像素。
Cityscape最早推出语义分割数据集,与传统的Bounding Box矩形框不同,这种方式与人类感知的图像级理解完全不同,它是割裂的,矩形框会有大量重叠,智能驾驶目前因为算力和成熟度问题,还是以Bounding Box矩形框为主,这种方式安全性很差。语义分割(semantic segmentation)是以目标物体的外形为边界,识别图像中存在的内容以及位置(通过查找属于它的所有像素),分为标准语义分割(standard semantic segmentation)也称为全像素语义分割,它是将每个像素分类为属于对象类的过程;实例感知语义分割(instance aware semantic segmentation)是标准语义分割或全像素语义分割的子类型,它将每个像素分类为属于对象类以及该类的实体ID。
语义分割包含三个内容:一是对目标分类、二是找到目标所分布的位置、三是理解图像的语义。
数据集有选自27个城市的5000张图像进行了pixel-level像素级的语义和实例标注,可用于训练语义分割网络,这5000张中的每一张都取自于对应的一个包含30帧的视频序列的第20帧,剩余23个城市的20000张图像进行了粗略标注,这20000张图像是每间隔20s或汽车行驶20m采集一张得到的。精标一张数据平均1.5小时,粗标一张数据7分钟。不同的标注人员对选出来的30张数据进行重复标注,像素一致性达96%,去除可标注为unclear的类别后,像素一致性达98%。
语义分割的分类达到33类,是全球所有数据集中分类最多的,排名第二的nuScenes是23类。不过Cityscape在验证和测试数据集上只有19个分类。
Cityscape的分类和像素密度。
Cityscape的基线对比,第二列为标注即真值,第三列是谷歌的深度试验室DeepLab,论文为《Weakly- and semi-supervised learning of a DCNN for semantic image segmentation》,这是2015年文章了,第四列是Adelaide大学的《Efficient piecewise training of deep structured models for semantic segmentation》,第五列是普林斯顿大学的《 Multi-scale context aggregation by dilated convolutions》。
Cityscape语义分割示例
目前最顶尖的单目三目智能驾驶也无法识别天空,但语义分割需要识别道路和天空,如上图,还要识别树木。根据语义分割找出可行驶空间,立体双目非常适合语义分割,因为立体双目是3D的,它可以检测高度变化预知路沿和树木,通过这些辅助信息使得语义分割难度大大降低,这或许是奔驰的独门秘籍,而单目或三目的难度极高。
目前智能驾驶一般都使用CNN网络,语义分割一般使用FCN网络。
在传统的CNN网络中,在最后的卷积层之后会连接上若干个全连接层,将卷积层产生的特征图(feature map)映射成为一个固定长度的特征向量。一般的CNN结构适用于图像级别的分类和回归任务,因为它们最后都期望得到输入图像的分类的概率。
FCN即全连接,FCN是对图像进行像素级的分类(也就是每个像素点都进行分类),从而解决了语义级别的图像分割问题。与上面介绍的经典CNN在卷积层使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的特征图(feature map)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后奇偶在上采样的特征图进行像素的分类。
Cityscape目前分4个测试,分别是:pixel-level像素级、instance-level实例级、panoptic semantic labeling和3Dvehicle detection。全景分割实际就是实例分割加语义分割。全景(panoptic) - 对视野内所有物体进行描述”including everything visible in one view”, 全景分割 - 图片内的每个像素都必须分配semantic label 和 instance ID.如上图(d)。相同label和相同id的像素属于相同object;忽略 stuff labels 的 instance ID。
像素级测试,前几名差距不大,第一名是美团,第二名是联想的LeapAI,第三名是MYBank-AIoT。instance-level实例级第一名是北大HRI实验室。
全景分割引入了新的指标,PQ即全景质量。
我们分别计算每个类别的PQ并平均计算各个类别的平均值,这使得PQ对类别不平衡不敏感。对于每个类别,唯一匹配将预测的和真实注释分割分为三组:真阳性true positives(TP)、假阳性false positives(FP)和假阴性false negatives(FN),分别代表匹配的分割段、不匹配的预测分段和不匹配的真实注释。
panoptic semantic测试方面则是谷歌研究院的Panoptic-DeepLab第一,论文为:《Panoptic-DeepLab:A Simple, Strong, and Fast Baseline for Bottom-Up Panoptic Segmentation》。
全景分割目前有两条路线:
一条是Top-down方式,早期多用,基本上可以认为在Mask-RCNN的基础上接一个语义分割的头部,但这种方式会造成语义分割和实例分割之间的冲突(因为一个像素点可能被实例分割成一类,但语义分割又变成了另一类),为解决此问题,就需要通过某种设定的方式来融合语义分割的score + 实例分割的score 。
另一条是最近兴起的bottom-up路线,先生成语义分割的信息,然后根据语义分割以及其他信息将语义分割的同类、同实例的像素点归并到一起,效果又快又好。
谷歌的全景分割架构
2020年7月,奔驰推出3D Cityscape,目前这个数据集上科大讯飞一直是第一。
和其他主打3D检测的数据集最大不同,奔驰没有用激光雷达,只有一对立体双目,奔驰对此做了辩解。
常见的激光雷达与摄像头数据集的缺陷,就是数据不同步,造成上图这种错误,第一张图是Lyft的L5数据集,第二张图是大众和福特合资的Argo的Argoverse。
第一张图是nuScenes的,忽略了姿态偏转从而导致错误,第二张图是奔驰的,不会犯错。
奔驰Cityscape的标注流程
奔驰用立体双目做出鸟瞰图的效果
立体双目是奔驰特色,任何时候都不会忘记,用了立体双目鸟瞰效果就是好。
这种老式的铰接式公交车德国还能见得到,因为前后角度不同,因此有两个分列的3D Box。
左边的自行车集在一起,没办法画出3D Box,因此就忽略掉。
上表为每张图像3D Box标注框的数量对比,百度的阿波罗数据集做得不错,密度较高,但是没有电动车和自行车。
科大讯飞团队用单目模拟立体双目做3D检测,目前在Cityscape上排名第一,在nuScenes上也是第一,相当厉害。论文为:《FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection》。
FCOS3D的网络架构
Backbone:使用resnet101,固定第一层的卷积参数从而减少显存消耗。
FPN:生成特征层 P3-P7,每个特征层用于检测不同尺度的目标。
Detection Head:包含4个共享参数的卷积层和small heads用于不同的targets预测;回归分支需要较高的解耦程度,即每个子targets都设置一个heads,所有回归的目标如上图所示。
声明:本文仅代表作者个人观点。
- End -