0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于yolo算法进行改进的高效卫星图像目标检测算法

nlfO_thejiangme 来源:未知 作者:李倩 2018-06-01 16:35 次阅读

卫星图像是十分重要的资源,可以通过它计量国土资源,检测地面情况并且能高瞻远瞩的记录地表发生的变化。但由于卫星图像十分巨大而且其中的物体相对较小,利用卫星图像进行目标检测是充满挑战的工作,本文主要讲解了一篇基于yolo算法进行改进的高效卫星图像目标检测算法,主要针对高分辨率输入和密集小物体进行了优化。

在大面积的图像中识别出一系列小物体是卫星图像处理的主要任务之一。近年来基于深度学习的目标检测算法有了很大的效率提升,但基于卫星图像的处理还存在这一系列问题。为了解决这一系列调整,研究人员在YOLO的基础上提出了一种两阶段的算法架构,不仅可以适应多尺度的检测,同时达到了F1>0.8的结果,最后还探究了分辨率和物体大小对于检测的影响,并发现只需要五个像素的大小就可以实现目标检测。文章主要从深度学习对于卫星图像目标检测的缺陷出发,提出了改进的细粒度的目标检测网络结构。同时为了解决检测不变性的问题进行了大量的数据增强。

1. 卫星图像目标检测存在的问题

高分辨率的卫星图像和相对较小的图内物体使得卫星图像处理目前主要面临以下四个方面的挑战:

空间范围较小:在卫星图像中,感兴趣的物体相对尺寸都很小而且常常聚拢在一起,与ImageNet数据集中大范围的显著物体大不相同。同时物体的分辨率主要由地面采样距离决定,它定义了每个像素对应的物理长度。通常情况下卫星运行的高度是350km左右,最清晰的商用卫星图像可以达到30cm的GSD(每个像素对应30cm),而普通的数字卫星影响只能达到3-4m的分辨率了。所以对于车辆、船只这样的小物体来说可能只有10多个像素来描述;

卫星图像中的物体具有各个方位的朝向,而ImageNet数据集中大多是竖直方向的,需要检测器具有旋转不变性;

训练数据的缺乏,对于卫星图像缺乏高质量的训练数据,虽然SpaceNet已经进行了一系列有益的工作,但还需要进一步改进;

极高的图像分辨率,与通常输入的小图片不同,卫星图像动辄上亿像素,简单的将采样方法对于卫星图像处理无法适用。

在过去的几年里深度学习早已成为目标检测的重要工具,但却还有一系列问题有待优化。比如像鸟群一样的密集小物体检测是目前需要解决的挑战。这主要是由于卷积神经网络中一系列降采样操作造成的,如果目标仅仅包含很少的像素数目,这种方法会造成很大的问题。例如在yolo中降采样因子是32同时返回13*13的预测栅格,这意味着如果一个某个物体的像素少于32个就会引起严重的问题。

研究人员为了解决这个问题对YOLO的网络架构进行了改造,加密了最后预测输出的栅格数量,从而提高了网络对于细粒度特征的检测结果以及区分不同物体的能力,改善了对于小物体和密集物体群的检测。

同时目标检测算法对于不常见的的比例或新的图像分布缺乏一定的泛化能力。由于物体可能的方向和尺寸比例各不相同,算法有限的比例变化对于特殊目标的检测就会失效。为了解决这一问题,研究人员对数据进行了旋转和HSV的随机增强,是算法对于不同传感器、大气条件和光照条件具有更强的鲁棒性。

目前先进的目标检测算法都是对整幅图像进行处理的,但对于上亿像素的卫星图像来说,很难有硬件显卡内存可以满足如此大的需求。为了解决对于多尺度目标的高速检测,研究人员提出了利用区域图像作为输入,利用多尺度检测其来进性检测的方法。在实际过程中,大概200m尺度的图像片作为输入,并利用一定的上采样进行处理。

下图中对比了原始图像和其中的图像片输入网络后的结果。全尺寸的网络几乎无法得到任何结果(下采样后图片分辨率损失),而图像片(像素数小于32)得到的结果也不尽如人意。

2. 算法与网络架构

首先研究人员们对算法架构进行了改造,将网络结构改成了22层和16的降采样因子,416*416的像素输入后能得到26*26的输出栅格,通过这样的技术来优化网络对于小物体、密集排布的检测效果。更密集的预测栅格对于停车场车辆和码头船只的检测十分重要。同时为了提高小物体的保真度,引入了一个直通层将最后52*52的直通层和最后一个卷基层进行组合,使得检测器可以通过拓展特组图发现更多细粒度的特征。

卷积网络中的神经元都使用批量归一化和LeakyRelu激活,最后一层使用线性激活函数。最后输出的结果N=Nboxes*(Nclass+5),每一个bbox包含四个坐标和一个包含物体的概率,以及属于每类物体的概率。

3. 训练数据

由于在卫星图像处理中,主要关注飞机、轮船、建筑平面、汽车和机场,它们的尺度各不相同。研究人员训练了两个不同尺度的检测器来进行目标检测。

- 汽车数据集使用了COWC数据集,基于15cm的GSD尺度。为了与目前商用卫星图像的30cm尺度一致,利用高斯核对图像进性了处理,并在30cmGSD的尺度上为每辆车标注3m的边框,共13303个样本;

- 建筑平面基于SpaceNet的数据在30cmGSD尺度下标注了221336个样本;

- 飞机利用八张GigitalGlobe的图片标注了230个样本;

- 船只利用三张GigitalGlobe的图片标注了556个样本;

- 机场利用37张图片作为训练样本,其中包含机场跑道,并进行4比例的降采样。

训练过程中使用了NVIDIA Titan X GPU,学习率0.001,权重衰减0.0005,动量0.9。

4. 测试

为了对测试图像的结果,研究人员们使用智能图像分割将原始图像按照15%的重叠率切分成一系列子图,并按照如下的格式进行位置标注:

ImageName|row_column_height_width.ext

将每一张图像送入模型后,得到的结果再更具上面的位置标记恢复到完整的图像中显示。

最终的检测结果如下图所示:

街区内测车辆检测结果

飞机和轮船的检测结果

目前一分钟可以处理30平方千米的图像,对于机场这样的大尺度对象来说可以除了6000平方公里。未来如果用16GPU集群可以实现实时的卫星图像目标检测。

同时研究人员还探索了分辨率随检测准确率的关系,发现分辨率越高图像的准确率越高

想上手尝试一下的小伙伴,github上有docker封装好的代码,上手即用:

https://github.com/CosmiQ/yolt

最后再来欣赏几幅检测后的漂亮的卫星图像:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4599

    浏览量

    92615
  • 卫星
    +关注

    关注

    18

    文章

    1699

    浏览量

    66880
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

原文标题:You Only Look Twice:揭秘高速卫星图像目标检测系统

文章出处:【微信号:thejiangmen,微信公众号:将门创投】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人脸检测算法及新的快速算法

    人脸检测算法及新的快速算法人脸识别设备凭借着便捷的应用,以及更加新潮的技术,俘获了不少人的好感。于是,它的应用也在日益的变得更加的广泛。由中国电子学会主办的全国图形图像技术应用大会,行业专家将介绍
    发表于 09-26 15:13

    PowerPC小目标检测算法怎么实现?

    目标检测系统的任务是根据探测器获取的图像序列实时地把小目标从噪声中检测出来,它的实现是目标识别
    发表于 08-09 07:07

    基于YOLOX目标检测算法改进

    系统的关键任务之一,其主要的功能是检测前方道路上出现的目标的空间位置和目标类别。传统目标检测算法依赖于手工设计好的特征来对
    发表于 03-06 13:55

    基于像素分类的运动目标检测算法

    针对复杂环境下运动目标检测提出一种基于像素分类的运动目标检测算法。该算法通过亮度归一化对图像序列
    发表于 04-10 08:51 4次下载

    医学图像边缘检测算法的研究

    边缘检测是医学图像处理中非常重要的一个环节,通过对几种经典边缘检测算法的分析,提出了一种基于Canny算子的改进算法。该
    发表于 07-05 16:50 15次下载

    基于Canny检测算法实现的目标跟踪

    为了设计一种实时高效、稳定可靠的图像目标跟踪系统平台,避免因图像边缘提取效果差而引起跟踪失败,采用自适应Canny边缘检测算法。该自适应
    发表于 03-05 16:14 38次下载
    基于Canny<b class='flag-5'>检测算法</b>实现的<b class='flag-5'>目标</b>跟踪

    基于Surendra改进的运动目标检测算法

    提出了一种基于Surendra改进的运动目标检测算法,通过对背景更新系数的改进,获取稳定准确的背景,再将背景帧与含运动区域的图像帧用差分运算
    发表于 08-07 19:02 31次下载

    改进的ViBe运动目标检测算法_刘春

    改进的ViBe运动目标检测算法_刘春
    发表于 03-19 11:41 0次下载

    如何使用Zynq SoC硬件加速实现改进TINY YOLO实时车辆检测算法

    数这一特点,提出硬件并行加速的改进算法,称为浓缩小型深度网络( Xerantic- TINY YOLO,X- TINY YOLO)车辆检测算法
    发表于 07-06 10:58 28次下载
    如何使用Zynq SoC硬件加速实现<b class='flag-5'>改进</b>TINY <b class='flag-5'>YOLO</b>实时车辆<b class='flag-5'>检测</b>的<b class='flag-5'>算法</b>

    基于深度学习YOLO系列算法图像检测

    目前,基于深度学习算法的一系列目标检测算法大致可以分为两大流派: 两步走(two-stage)算法:先产生候选区域然后再进行CNN分类(RC
    的头像 发表于 11-27 10:15 3479次阅读

    基于深度学习的目标检测算法

    整体框架 目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】
    的头像 发表于 04-30 10:22 1w次阅读
    基于深度学习的<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    基于改进YOLOv3的行人车辆目标检测算法

    针对YOIO3( you only look once version3)对中小目标检测效果不理想的问题,提出改进算法DX-YOLO( de
    发表于 05-31 11:12 1次下载

    基于改进YOLOv2的遥感图像目标检测技术

    传统遥感图像目标检测方法的时间复杂度高且精准率低,如何快速准确地检测遥感图像中的特定目标成为当前
    发表于 06-16 15:28 11次下载

    一种改进的高光谱图像CEM目标检测算法

    广泛应用于高光谱目标检测中。本文在分析CEM算法的推导过程后,发现图像像元的选择,可以改善自相关系数,因此提出一种改进的CEM
    发表于 03-05 15:47 1337次阅读
    一种<b class='flag-5'>改进</b>的高光谱<b class='flag-5'>图像</b>CEM<b class='flag-5'>目标</b><b class='flag-5'>检测算法</b>

    浅谈红外弱小目标检测算法

    红外单帧弱小目标检测算法主要通过图像预处理突出小目标同时抑制背景噪声干扰,之后采用阈值分割提取疑似目标,最后根据特征信息
    的头像 发表于 08-04 17:20 5932次阅读