惠普Z系列算法大赛核心解题思路和技巧快来Get!
集结超千名数据科学家报名参加惠普Z系列算法大赛火热进行中
在这里,切磋交流,彰显技术实力在这里,快速学习,提升算法技能 在这里,创意无限,解锁极智镜界
合Z之力 解锁极智境界
「惠普Z系列算法大赛」报名倒计时
扫码报名参赛↓
【赛题简介】
本次惠普Z系列算法大赛主要聚焦在卫星/无人机遥感场景,大赛官方将提供场景数据,由参赛者检测道路车辆,在本地完成“带角度信息的目标检测”并调试算法,在线提交结果。
【算法简介】
本次为大家带来的解题思路,是利用YOLOv3目标检测方法,在融合DRBox算法思想的基础上完成对各类旋转车辆目标的定位与分类。
1.1 YOLOv3算法简介
随着目标检测方法各种不同思想的融会贯通,YOLO系列检测算法经历了从YOLOv1到YOLOv2,再到如今YOLOv3的迭代过程。YOLOv1是Joseph Redmon等人于2015年提出的单阶段目标检测算法。其将输入图片划分为S×S个网格,每个网格负责预测中心点落到该处的目标。具体来说,整个网络最后输出(B×5+C)个S×S的特征图,其中B表示每个网络会预测B个边框,每个边框包括5个预测值,分别是x, y, w, h和confidence;C则表示B个边框共享的C类目标概率。在当时的实时检测算法中,YOLOv1的检测效果是最好的。然而,其最大的缺点在于检测精度明显较低。考虑到YOLOv1的检测精度较差,Joseph Redmon等人于2017年提出了更新的YOLOv2检测算法。YOLOv2重点解决了召回率和定位精度方面的误差,相较于YOLOv1进行了以下一些改进:提高了分类网络训练的图像分辨率;引入了Faster R-CNN中anchor box的思想;对网络结构的设计进行了改进;输出层使用卷积层替代YOLO的全连接层等,从而在识别精度、定位精度和检测速度等方面都有大大提升。图1-1 YOLOv3与其他方法在COCO上的性能比较
YOLOv3则是在YOLOv2的基础上,吸收SSD中多层检测、FPN特征金字塔以及ResNet更好的基础网络等思想提出的更精准的检测方法。其在COCO上的性能如图1-1所示。相比于YOLOv2,YOLOv3从以下几个方面进行了改进:1)采用多标签分类来替代之前的多交叉熵分类:每个候选框采用多标签的方式进行分类,即采用二值交叉熵来进行候选框类别的学习。当预测的目标类别较复杂,且存在重叠情况时,这种分类方式十分有效;2)采用多尺度特征进行预测:借鉴SSD和FPN的思想,YOLOv3在三个不同尺度的特征图上进行预测,分别为scale1(13×13)、scale2(26×26)和scale3(52×52)。同时,在scale2和scale3上,采用高层特征上采样后和低层特征进行融合后的特征进行预测;3)设置更多、更有效的先验框:YOLOv3延续了YOLOv2利用聚类统计的方式来获取先验框宽高的设置,由于预测层数的变多,YOLOv3总共设置了9个尺度的先验框,并且平均分布于每个尺度的预测层上(即对于每个尺度的预测层,其每个特征点对应3个先验框,13×13对应较大的3个,52×52对应较小的3个,26×26对应余下的3个);4)利用更强大的特征提取网络:YOLOv3结合ResNet和NIN的思想,提出了更加高效的backbone,名为darknet-53。Darknet-53在保留相对较低计算量的同时,分类精度可媲美ResNet-101,甚至ResNet-152。在YOLOv3后,出现了少量基于该框架的一些检测方法,分别如下:1)GIoU(CVPR 2019):在目前大多数目标检测算法中,常常采用L2、L1或者Smooth L1 Loss的方式来进行边框调整的训练,然而在评测的时候却利用IoU来判断是否检测到目标。这两种方式显然存在不一致性,即无法用上述度量来决定IoU的好坏。针对这一问题,GIoU提出了一种更加普适的度量,直接利用GIoU进行损失的计算和梯度反传,从而使得目标检测精度更高。
2)Gaussian YOLOv3(ICCV 2019):参考KL Loss,Gaussian YOLOv3在YOLOv3的基础上,采用高斯模型来预测边框。即对于每个预测框来说,从之前的(
图1-2 DRBox(基于SSD)算法示意图
DRBox采用定向框来克服遥感图像中水平检测框的困难。定向框是一个带有angle参数的矩形,用于定义其方向。其需要五个参数来回归其位置,大小和方向。与水平检测框相比,定向框更紧密地围绕了目标的轮廓,比水平框包含更少的背景像素,因此目标和背景之间的分类更容易。
详细可参考:
(DRBox)
https://github.com/liulei01/DRBo
(DRBoxv2)
https://github.com/ZongxuPan/DrBox-v2-tensorflow
1.3 推荐思路
传统的YOLOv3采用无旋转矩形框的方式来检测目标,与之相关的操作也基本保持这个特性,例如先验框的设定,训练过程中匹配先验框的机制以及NMS过程中IoU的计算等。而在旋转矩形建模下,其最大的不同在于额外引入了旋转角θ。因此,上述相关的操作过程要根据进行调整。1.3.1 先验框设置
在原始的YOLOv3中,主要包含以下一些先验框。这里以基础网络为darknet-53,网络输入大小为416×416举例说明。1)scale1(13×13):在该尺度特征图上,每个点对应3个不同大小的先验框,分别是[116,90],[156,198]和[373,326],如图3-3所示。图3-3 scale1(13×13)传统矩形先验框示例图
图3-4 scale2(26×26)传统矩形先验框示例图
先验框放大4倍显示
图3-5 scale3(52×52)传统矩形先验框示例图
先验框放大8倍显示
在保持每个尺度上先验框大小不变的情况下,我们为每个先验框增加了旋转角度,旋转角度以30°的间隔从0°开始变化到330°。每个尺度带旋转角度的先验框分别如图3-6、3-7和3-8所示。图3-6 scale1(13×13)旋转矩形先验框示例图
图3-7 scale2(26×26)旋转矩形先验框示例图
先验框放大4倍显示
图3-8 scale3(52×52)旋转矩形先验框示例图
先验框放大8倍显示
1.3.2 先验框与目标框匹配
YOLOv3在匹配的过程中,首先初始化每个尺度的先验框为背景区域,即令Objectness的ground-truth为0;然后对于每个目标框,找到与其最佳匹配的先验框,令其Objectness的ground-truth为1,同时根据先验框的分类和边框回归偏置值进行梯度反传,之后不断迭代优化。在传统矩形先验框下,一般采用IoU的度量来获取每个目标的最佳匹配。IoU定义如下:1.3.3 先验框与目标框匹配
在原始传统矩形框检测下,YOLOv3会在三个尺度上进行预测,假设尺度表示为其中,
在加入旋转角度后,网络预测的边框偏移量变成(
其中,
1.3.4 NMS过程
在NMS中,预测旋转框之间的度量采用与匹配过程中类似的ArIoU形式。由于在实际预测过程中,同一位置一般仅包含一个目标,因此对于角度相差180°的预测框也因同样抑制。故而在这个过程的度量,一般忽略目标头和尾的朝向。忽略朝向后的度量如下所示:了解算法指南后
是否跃跃欲试
展示你的算法创意?
快来参加惠普Z系列算法大赛
和数据科学家们一起竞技吧!
【任务时间】
大赛日程报名及模型提交
9月29日-11月24日
成绩评审
11月25日-12月7日
结果公布
12月8日
【任务奖励】
丰厚奖金等你来拿
10万元奖金池
将由组委会评选出的6支优秀参赛团队瓜分
一等奖1名 奖金3万元
二等奖2名 奖金2万元
三等奖3名 奖金1万元
扫码报名参赛↓