【每日一网】Day26:YOLT简单理解

YOLT

算法背景

这篇文章做的只卫星图的目标检测,在yolov2的基础上做改进得到YOLT,因为卫星图的目标检测和常见的目标检测场景区别比较大,卫星图的尺寸本身就很大,其次是目标尺寸非常小且常常聚集在一起,因此YOLT算法整体上是解决卫星图这种特殊场景里的目标检测,对于通用目标检测算法中小目标的检测也有一定的借鉴意义,同时这篇文章也列举了一些在实际项目中对效果提升有所帮助的点,也值得借鉴

小目标检测难点

在这里插入图片描述
一、卫星图目标的尺寸、方向多样,因为卫星图是从空中拍摄的,所以角度不固定,像船、汽车的方向都可能和常规目标检测算法中的差别较大,因此检测难度大。解决方案是对数据做尺度变换、旋转等数据增强操作。
二、小目标的检测难度大。解决方案包括:1、修改网络结构,使得从输入图像到最后特征的stride等于16,而不是YOLO v2中的32,如果stride等于32,那么输入图像中的32x32区域在最后输出特征中等价于一个点,假如一个目标在输入图像中的像素区域小于32x32,那么就难以检测出来,修改成stride等于16后,就有利于检测出大小在32x32到16x16的目标。2、沿用YOLO v2中的passthrough layer,融合不同尺度的特征(52x52和26x26大小的特征),这种特征融合做法在目前大部分通用目标检测算法中被用来提升对小目标的检测效果。3、不同scale的检测模型融合,主要是因为待检测目标的尺度差异较大,比如飞机和机场,因此采用不同尺度的输入训练检测模型,通过融合检测结果得到最终输出。
三、卫星图尺寸太大,超过一般检测模型的最大输入尺寸要求,而一般采用对输入图像进行降采样后再检测的算法效果不好。解决方案包括:1、将原输入图像切块,然后分别输入模型进行检测。2、不同scale的检测模型融合。

直接检测缺陷

在这里插入图片描述
上图是关于用两种不同类型图像作为输入时模型的预测结果对比,模型是基于标准的YOLO v2进行训练的。左边是直接将原图缩小到416x416大小,结果模型一个汽车目标都没有检测出来。右边是从原图中裁剪出416x416大小的区域然后作为模型的输入,结果模型可以将部分汽车目标检测出来,但是效果依然不算很好。从这个实验可以看出直接将原图缩小并作为模型的输入是不合适的,这也是后面再训练和测试阶段都采用裁剪方式的原因,同时也能增加训练数据量。同时因为右图的检测效果不好很大程度上是因为目标的像素点少于32这个界限,所以后续对网络结构做了修改,提升了模型对小目标的检测效果。

网络结构

在这里插入图片描述
图中是YOLT的网络结构,网络结构与YOLOv2相比最大的修改是最后输出特征尺寸只到26x26(针对416x416的输入图像而言,因此stride等于16,YOLO v2等目标检测算法中stride一般等于16),这样就能有效提高对小目标的检测效果。

滑动裁剪

在这里插入图片描述
如图是关于测试模型时对输入图像的处理,最上面的是原始的输入图像,前面提到过卫星图的原始尺寸很大,难以直接作为模型的输入,因此这里通过滑窗方式裁剪指定尺寸(比如416*416)的图像作为模型的输入(文中将裁剪后的图像称为chip),而且相邻chip会有15%区域的重叠,如图所示,目的是保证原图的每个区域都能被完整检测到,虽然这样有可能带来一些重复检测,但可以通过NMS算法去除。因此一张卫星图会裁剪出成百上千的指定尺寸图像,这些图像经过检测后将检测结果合并在一起就得到最终的检测结果。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值