旷视AI复杂场景的交通标志检测
交通标志本身种类众多,大小不定,并且在交通复杂的十字路口场景下,由于光照、天气等因素的影响,使其被精确检测变得更加困难。提高上述场景下交通标志检测准确度,将有助于降低十字路口交通事故发生的概率。
提供真实场景的道路图片,部分图片给出了交通标志的标注结果,所有交通标志共计 5 个类别,分别为红灯、直行标志、向左转弯标志、禁止驶入和禁止临时停车。
数据示例如下:
初赛1/177,复赛1/12
框架
megengine
算法方案
网络框架
atss + resnext101_32x8d
训练阶段
mosaic增强
随机选择四张图片,对图片进行随机平移10%,尺度缩放(0.5,2.0),shear 0.1,最后将四张图片进行组合。
mixup增强
随机选取两张图进行叠加,我们最终选用的比例是0.5 * 原图+0.5 * 新图片,同时其进行缩放(0.5,2.0)。
下图为mosaic+mixup示例图:
图片尺寸
最终提交版本输入图片尺寸为(1500,2100)多尺度训练(最终提交版本未采用)
起初我们将短边设为(1024, 1056, 1088, 1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408),随机选取短边后,长边按比例缩放,并使长边长度小于1800,从而进行多尺度训练,取得了很好的效果。不过后期的mosaic和mixup在增强时对图片进行了缩放,实则隐含了多尺度训练,且效果优于上述方法,所以我们最终去掉了多尺度训练。数据增强
mosaic增强
随机选择四张图片,对图片进行随机平移10%,尺度缩放(0.5,2.0),shear 0.1,最后将四张图片进行组合。
mixup增强
随机选取两张图进行叠加,我们最终选用的比例是0.5 * 原图+0.5 * 新图片,同时其进行缩放(0.5,2.0)。
随机水平翻转
直接对图片进行翻转,会导致第三个类别“arr_l”(左转线)和右转线混淆,故我们添加了class-aware的翻转,遇到有“arr_l”类的图片则不进行翻转。
基于Albumentations库的各种增强(最终提交版本未采用)
我们尝试了ShiftScaleRotate(验证集+0.5)、CLANE(验证集+1.0)、RandomBrightnessContrast等,但组合起来测试集提点欠佳,所以最后没用。
gridmask增强(最终提交版本未采用)
生成一个和原图相同分辨率的mask(每个grid上全为0或全为1),然后将该mask与原图相乘得到一个图像。提点欠佳,所以没采用。
类别平衡采样(最终提交版本未采用)
使用类别平衡采样后,效果不是很好,这可能是因为数据集本身没有严重的类别不均衡。下面是我们统计的每个类别在图片中出现的频率。
多尺度测试
多尺度测试图片尺寸
最后提交版本(2100,2700),(2100,2800),(2400,3200),如果继续增加尺度,map还会继续提高。
topk—nms
对上述三个尺度生成的结果先进行nms,再将得到的结果框与剩下所有框进行topk—nms(保留与当前结果框iou大于0.85的topk的框,把这些框的坐标进行融合),参数设置vote_thresh=0.85, k=5。
网络结构
加上增强后,backbone从res50到res101再到resx101有稳定涨点。
我们还在backbone部分尝试了dcn和gcnet,验证集收效甚微,最终没有采用。
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















