深度学习实战(十九)——做户外汽车识别可采用的方法

     这个是从一篇报道户外汽车识别比赛(Nexar 挑战赛)结果的新闻里摘抄下来的,里面有一些获奖者分享的他们的模型介绍,整理下来以备日后使用

       

                                                                                   图一 识别效果

                             

                                                                图二 比赛使用各模型的比例以及得分

大多数参赛者使用更快的RCNN作为他们的模型,其得分范围从0.5到0.77。但是明显的获胜者是Deformable R-FCN,平均得分为0.8。

                              

                                                                          图三  比赛结果


方法分享-1:

“我使用具有soft-NMS的Deformable R-FCN参加了这次挑战。使用了从ImageNet上用ResNet-50预训练的一个单模型。

核心要点:

1. Deformable Convnets和R-FCN功能强大,在ImageNet和COCO上获得了最先进的性能。我都不需要使用集成。如果我使用集成,和ResNet-101一起,加上更多trick,性能可以更好。

2. 水平翻转训练图像效果很好。我将所有训练数据水平翻转。这已经是一个非常普遍的数据增强/扩充方法了。

3. 小尺寸锚点。查看训练数据,我看到很多小的边界框,于是决定添加更多的小尺寸锚点。结果证明这样做效果很好。

4. 多尺度测试。这一般会带来大约2%的性能提升。我在720训练,在(600,720,1000)测试,获得了性能提升。


方法分享-2:

本质上我的源代码组成如下:

1)基于Faster-RCNN的Deformable ConvNets,代码(https://github.com/msracver/Deformable-ConvNets)。我进行了一些小的修改,包括读取Nexar数据集的适配器,禁用非最大抑制阶段的选项,以及能够运行多个预测的小脚本。

2)一些用于准备数据集扩充和转换结果的实用程序脚本。

3)实施定制的灵活非最大抑制阶段(non maximum suppression stage)。

核心要点

我决定使用Faster-RCNN或R-FCN的Deformable ConvNets修改。

由于比赛时可以修改/标注训练数据集,我首先检查了训练数据的改进情况。

标签的规模和性质都不适合用手工进行重新打标签。

我将训练数据集分为两个,在每个上都训练了R-FCN模型。

我比较了两个分开数据集预测与原始标签预测的结果,发现了训练集中缺少的边界框。

几乎在所有情况下,我发现这都是标签缺失导致的。

我按照缺失的边界框数量对训练集中的图像进行排序,并重新标记了其中15-20%边界框缺失最多的图像,最坏情况下图像中有多达8辆车没有边界框。

由于模型生成的边界框相当准确,所以我只需要选择将哪些预测边界框添加到训练数据集中,所以过程还是相对较快。

我决定使用Faster-RCNN,因为经过一个快速测试,它比R-FCN实现了稍微更好的结果。

我计划尝试这篇论文(https://arxiv.org/abs/1704.04503)中描述的Soft NMS方法

我扩展了Soft NMS的原始概念,不仅调整置信区间,还要调整边界框的位置。

我在NMS阶段之前检查了Faster-RCNN的结果,发现它经常产生一些具有相似置信区间和位置的封闭边界框。

只保留置信区间最上层结果,抛弃其他所有的结果,听起来有点浪费,尤其是当结合使用多个模型或测试时间扩充以后。

所以,我的 Flexible NMS方法如下:

1)对于置信度最高的边界框,将其与iou> 0.8的所有其他类似框组合,框的位置作为具有置信度权重的边界框位置的加权平均值。

2)对于组合框的置信度,我使用conf = sum(最多N个边界框)/ N

。这对组合多个结果特别有用,我还想惩罚那些只有单个网络找到的一个结果(相比更多网络/边界框预测的置信度更高的结果)。

我使用N == 4 ×预测数的组合。

3)对于与当前框重叠的所有其他框,我按照原始 Soft NMS文章中的所述调整了置信度。

总体来说,这种方法让我从单个模型、默认NMS得分~0.72–0.73,增加到0.77-0.78,后面是使用 Flexible NMS从2个不同模型组合大约6个预测的结果。

我最终提交的结果,训练了3个Faster RCNN模型,对于所有图像的每个预测,翻转和±20%调整大小。

我将所有结果结合,禁用原始NMS,并通过Flexible NMS进行后处理。

摘自:

22岁复旦学生拿下世界深度学习竞赛冠军:50层ResNet网络

发布了150 篇原创文章 · 获赞 200 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/qq_37764129/article/details/102056139