标注猿的第54篇原创
一个用数据视角看AI世界的标注猿
上一篇文章我们从“环境感知”数据的采集设备上进行了详细说明,已经了解了相应设备采集的数据及采集前中要对设备进行的标定工作。感兴趣的小伙伴可以查看一下上一篇文章。自动驾驶采标系列二:车载感知与车载传感器标定(内附标注猿专属定制新年礼品)
本文会从基于图像的目标检测技术和相关的标注方法上进行讲解。
-
基于2D图像的目标检测
-
基于3D图像的目标检测
-
基于2D图像的标注方法
一.基于2D图像的目标检测算法
目前基于2D图像的目标检测算法可以分为两大类:
-
基于候选框的R-CNN系列算法:首先产生目标候选框,然后对目标候选框做分类和归类。
该算法分为三部分:
针对这个问题,Fast R-CNN将整张图像输入特征提取网络,增加了一个RoI(Rgion of Interest,兴趣区域)池化层,将特征提取网络的输出和兴趣区域作为输入,输出连接后的各个兴趣区域抽取的特征,避免重复的特征计算过程。
同时Fast R-CNN使用softmax去代替SVM进行多分类的预测,从而实现了端到端的训练。
-
R-CNN
-
采用选择搜索算法生成了类别独立的候选区域,这些候选区包含了最终定位的结果。
-
提取候选区域的特征,利用在大型目标分类数据集ImageNet上预训练的AlexNet网络,在Pascal Voc数据集进行了微调。
-
利用一系列SVM分类器对候选区域进行分类识别,并产生置信度分数,由于候选区域很多,因此针对每个类,通过计算IoU指标,采用非极大性抑制,以最高分的区域为基础,提出掉那些重叠位置的区域,从而减少了分类识别的开销,同时用边框回归进行目标框的修正。
-
-
Fast R-CNN
R-CNN颠覆了传统的目标检测方案,使得检测精度得到了大幅度提升,但是依然存在一些缺点:
-
得到目标候选框后,需要对每个目标候选框剪切出相应区域的图片,然后输入AlexNet网络中提取特征,其中涉及大量的硬盘读写问题,同时针对这些目标候选框通常有大幅度的重叠,独立抽取特征会导致大量的重复计算,大大增加了检测时间。
-
-
Faster R-CNN
尽管Fast R-CNN对于R-CNN的性能瓶颈(特征提取部分)做了改进,但是使用选择搜索方法产生兴趣区域建议阶段只能在CPU上运行,难以满足目标检测的实时性要求,因此Faster R-CNN在Fast R-CNN的基础上,提出了使用卷积神经网络生成兴趣区域建议,从而提升目标检测效率。
-
-
基于YOLO、SSD等其他算法:仅使用一个卷积网络预测不同目标的类别和位置,不使用两个阶段的方法。
-
YOLO
是一种基于神队神经网络的对象识别和定位算法,其最大特点是运行速度快,可以支持实施系统。
-
YOLOv1
是将整张图片作为特征提取网络的输入,但是不同于Fast R-CNN,其将特征提取网络的输出层划分为网格,在每个网格内执行BBox(物体的二维检测框,通常使用中心点二维坐标,物体长宽参数来表示)回归预测和物体分类任务。
其特点是执行速度快,且通用性强。
-
YOLOv2
相对于YOLOv1,在保持处理速度的基础上,从预测更准确、速度更快、识别对象更多三个方面进行了改进。
-
借鉴了VGG网络中使用多个小卷积核代替大卷积核的思想,并且使用1*1卷积核代替全连接层,使得特征图每个位置共享参数,参数数量更少,计算速度更快。
-
YOLOv2将dropout替换成了效果更好的批标准化(Batch Normalization),在每个卷积层计算之前利用批标准化进行批归一化。
为了使网络可以适应输入分辨率差异,在训练过程每经过10个batch就会随机选择一种分辨率输入,利用图像插值对图像进行缩放,从而达到适应不同分辨率的效果。
-
在进行BBox预测时摒弃了锚点的概念,从直接预测目标相对网格区域的偏移量到预测AnchorBox的修正量,有了先验长宽比的约束,可以减少很多不规则的目标定位。
-
-
YOLOv3
在基础的特征提取网络上进行了改进,在加深网络的同时引入了RestNet中的残差思想,从而使得特征提取能力更强,在此基础上还提取了多尺度的特征使得网络可以适应不同尺寸物体的特征提取;
在损失函数上,取消了对于分类概率的联合分布softmax,而是采用了logistic函数,因为有一些数据集中的目标存在多标签,而softmax函数会让各个标签相互抑制。
-
YOLOv4
使用了多种数据增强技术的组合,对于单一图片,除经典的几何畸变与光照畸变外,还使用了图像遮挡(Random Erase、Cutout、MixUp等)技术。
-
-
SDD
提出了一种针对多个类别的单阶段检测器,比YOLO的单阶段检测器更快,检测精度与两阶段Faster R-CNN相同。
其核心是使用应用于要素图的小卷积滤波器来预测固定的一组默认边界框的类别得分和框偏移。
为了达到较高的检测精度,根据不同尺度的特征映射生成不同尺度的预测,并通过纵横比明确地分开预测。这些特征使得即使再低分辨率输入图像上也能实现简单的端到端训练和高精度,从而进一步提高速度和精度之间的权衡。
-
上述的目标检测方法的检测结果都是2D的,只识别出物体在图像上的二维位置和尺寸。而现实场景是三维空间,还需要获得障碍物与自身较为精确的距离信息、长宽高尺寸信息、朝向信息、偏向角等指标。
二.基于3D图像的目标检测算法:
-
RGB-D
RGB-D在R-CNN的基础上通过对每个像素点计算水平视差、高度、相对于中立倾斜角计算得到深度信息,并将深度信息编码为具有三个通道的2D彩色图像。
在特征提取阶段,利用预训练好的2D卷积神经网络进行特征提取,最后使用SVM进行分类,从而产生了2.5D的目标建议框(包含每个像素的视差、高度、倾斜角)
-
Deep Sliding Shapes
生成深度信息的方式是TSDF(Truncated Signd Distanc Function,截断有符号距离函数)方法,与RGB-D相比,其能够在3D中自然地编码几何形状,从而保留空间局部性,使得卷积神经网络能够从原始数据中学习得到具有辨别力的特征。
-
在检测模块设计了Deep Sliding Shapes检测器,它将RGB-D图像中的3D体积场景作为输入,以3D的形式运行滑动窗口,直接对每个3D窗口进行分类并输出3D对象边界框。
-
利用从几何形状学习物体性的3D区域提议网络(RPN)以及联合的对象识别网络(ORN)提取3D的几何特征和2D的颜色特征。为检测尺度不同的目标物体,RPN网络设计成为多尺度3D RPN,以提取不同尺度的3D区域建议。
-
-
Stereo R-CNN
不同于一般的基于RGB-D的3D目标检测算法,Stereo R-CNN将左右目RGB图像直接作为输入,而不显式的生成深度图(Depth Map),极大的缩短了目标检测的延时。在目标检测模块,该方法充分利用了立体图像中的稀疏、密集。语义和几何信息,并扩展了Faster R-CNN以用于立体图像输入,同时检测和关联左右图像中的对象。
其在立体声区域提议网络之后添加额外的分支来预测稀疏关键点、视点和对象维度,这些关键点与2D左右框组合以计算粗略的3D对象边界框,然后使用左右RoI的基于区域的光度对准来恢复精准的3D边界框。
三.基于2D图像的标注方法
-
车道线标注:
-
车道线类别
-
-
无车道线
-
虚线
-
双虚线
-
双实线
-
虚实线
-
锯齿实线
-
左侧低路沿(路沿高度在0-0.1M之间)
-
左侧中路沿(0.1-0.3M)
-
左侧高路沿(0.3M+,隔离栏属于高路沿)
-
右侧低路沿(路沿高度在0-0.1M之间)
-
右侧中路沿(0.1-0.3M)
-
右侧高路沿(0.3M+,隔离栏属于高路沿)
-
其他
-
-
车道线属性
-
主车道左侧车道线
-
主车道右侧车道线
-
邻车道左侧车道线
-
邻车道右侧车道线
-
其他车道左侧车道线
-
其他车道右侧车道线
-
压线
-
网格线左
-
网格线右
-
岔道口左
-
岔道口右
-
其他
-
-
车道线遮挡属性
-
无遮挡
-
轻微遮挡(低于30%)
-
一般遮挡(30%-70%)
-
严重遮挡(70%+)
-
其他
-
-
-
2D拉框标注:
-
标注类型
-
-
行人:无论什么姿势,不区分年龄、身体姿态、朝向。
-
二轮车骑行者:骑行者是指骑车(自行车、电动车、摩托车)的人,人和车标记为一个整体,包括头盔。
-
自行车:两轮自行车。
-
摩托车:两轮的电动车,摩托车,
-
三轮车:快递车、人力三轮车、电动三轮车、有3个轮子的机动摩托车,3 个轮子的老年代步车等体型较小的车辆。
-
三轮车骑行者:骑行者与三轮车标注为一个整体。
-
面包车:一般三排座位,包含MPV、房车等。
-
巴士:公交车、客车,不区分大小。如大巴(如公交)、大型客车、中型客车。车里的人不需要标。
-
厢式货车:车后部分为封闭形式,车厢方方正正,车体和箱体是一体的(注意:后面是集装箱的不是箱式货车,是挂车)。货柜车,也是集装箱车。
-
罐式货车:混凝土搅拌车,石油、天然气运送车,洒水车。
-
工程车:装载机,压路机,道路维护车,拖车,吊车,道路施工车等
-
轿车:指家用常见的汽车、SUV、跑车、四轮电动车等,一般两排座位。
-
特种车辆:消防车,警车,救护车,校车,旅游观光车、巡逻车。
-
其他可移动物:滑板,滑板,平衡车,小推车,婴儿车,轮椅。
-
交通杆
-
拦截路障:(施工过程挡路的栅栏,铁牌)
-
墩子:(石头或者铁的)
-
停车牌
-
雪糕筒
-
路、障碍物
-
-
-
可行驶区域标注标注类型
-
标注类型
-
当前可行驶区域
-
当前不可行驶的路面区域
-
缓冲区
-
停止线
-
隔离带
-
步行道
-
人行横道
-
-
-
像素级语义分割
-
标注类型
-
路面:交规中规定可车车辆行驶的区域(包含减速带,自行车道)。
-
车辆:机动车、四轮车等道路上行驶的交通工具。
-
行人:人类、包括骑行者,各种姿势、体态的人。
-
不可跨越障碍物:围栏等直接接触路面的不可跨越的障碍物。
-
可跨越障碍物:;边道等低矮障碍物,专指水泥或者石砖制成的结构。
-
其他障碍物:墙体、建筑物、树木等其他一般障碍物,非在行驶区域的障碍物。
-
轻便车辆:摩托车、电瓶车、自行车、三轮车等等两轮、三轮轻便交通工具。
-
绿植:灌木(高和低灌木)、绿化带等(路沿和绿植分开。如果路沿被盖住,那么只标绿植。以人眼为标准判断路沿绿植是否分开)。
-
草皮:地板草,或者泥土地(边道树木下面的泥土)等。
-
车道线:实线,虚线,双线,等车道线。
-
人形横道:斑马线上的白线部分。
-
地面标识:箭头,菱形,文字等地面标志。
-
停止线:垂直于车辆行驶方向的车道线。
-
路边沿:路沿凸起部分的一条,不包括里面的边道。
-
路边界线:道路边界上的白线。
-
减速带:高出路面的减速带。
-
轮档:停车场的轮档。
-
交通锥:交通锥。
-
车位线:停车场的车位线。
-
导流带:导流线。
-
垃圾桶:方形的柜子,垃圾桶等。
-
小物体:消防栓,纸箱,小狗等小物体。
-
忽略区域:不确定区域,例如成像设备导致的图片边界拖影等不确定区域,拖影,不确定区域等。
-
-
关于自动驾驶2D图像的数据标注还有非常多的类型,例如:车牌标注、行人标注、车辆分类、车库牌标注、车辆遮挡属性标注、车辆角度标注、车辆关键点标注、车辆及接地点标注、路杆标注、交通牌标注、地库墙体标注、防撞条标注、红绿灯标注等等。
以上就是本文基于图像的目标检测技术及标注方法的介绍。有感兴趣的小伙伴也可以看《基于5G的智能驾驶技术与应用》一书,是北邮的网络与交换国家重点实验室组编,非常适合小伙伴做基础理解和行业了解为主的学习。
-----------------------完---------------------
公众号:AI数据标注猿
知乎:AI数据标注猿
优快云:AI数据标注猿
-----------------------完---------------------