掌桥专利:专业的专利平台
掌桥专利
首页

一种高效率的单幅遥感影像目标检测方法及系统

文献发布时间:2023-06-19 10:38:35


一种高效率的单幅遥感影像目标检测方法及系统

技术领域

本发明涉及遥感影像处理技术领域,具体地涉及高效率的单幅遥感影像目标检测方法及系统。

背景技术

基于深度学习的目标检测技术,国内外的研究已经非常成熟;在遥感影像的处理方面,有若干应用案例,如飞机、舰船、车辆或建筑物等目标的检测。但是遥感影像具有单幅影像的像素巨大的特点,以目前的单节点GPU部署解译方式,解译的耗时很长。以一个2000平方千米的县城为例,解译其1米分辨率的影像,选取性能较高的“NVIDIA Tesla P100”型号GPU,需要耗时10分钟,难以为用户接受。

对于需要加快遥感影像的解译速度,最常规的做法就是增加GPU的计算节点,提高集群的计算吞吐量。但是用户最常见的需求,是在单位时间内尽可能快速地将单幅影像解译出来。一味的增加GPU计算节点,而无法将所有的GPU计算力在单位时间内集中于一幅影像,并不能加快集群的响应速率。

发明内容

本发明要解决的技术问题,在于提供一种高效率的单幅遥感影像目标检测方法及系统,提高遥感影像的解译速度。

本发明是这样实现的:一种高效率的单幅遥感影像目标检测方法,包括以下步骤:

S10、获取遥感影像,将其作为原图;

S20、将所述原图裁剪成多个子图;

S30、创建树形链表,记录所述原图与各子图的对应关系;

S40、采用解译模型对各子图进行目标检测,得到每个子图的解译结果;

S50、按照所述树形链表记录的所述对应关系,将解译结果进行拼接,完成遥感影像目标检测。

进一步地,所述步骤S20,采用滑动窗口算法将所述原图裁剪成多张子图,具体包括:

S21、创建裁剪图框A,作为滑动窗口;

S22、采用所述滑动窗口在所述原图上按照设定步长s逐行滑动,设定每行的滑动窗口之间偏移量p,在所述原图上裁剪出k个子图,其中第i行第j个子图表示为子图B[i,j],所述滑动窗口的长与宽分别表示为l与w,s=x*l,p=x*w,x取值为0.5-0.8。

进一步地,所述步骤S30后还包括步骤S31:

预设指定像素,所述指定像素的长与宽分别为m与n;

如果所述l≤m且所述w≤n,则进入步骤S40;如果所述l>m或所述w>n,则创建截剪图框A

进一步地,所述步骤S40后还包括步骤S41:

采用NMS算法对全部子图的解译结果进行去重操作。

进一步地,所述步骤S20具体为:利用流程调度器将所述原图裁剪成多个子图;

所述步骤S30具体为:流程调度器创建树形链表,记录所述原图与各子图的对应关系;

还包括步骤S301、流程调度器向资源调度器发送解译请求;

步骤S302、资源调度器基于接收的所述解译请求,向资源管理器查询各GPU计算节点的剩余算力,并返回给流程调度器;

步骤S303、流程调度器基于所述剩余算力,将剪裁的所述子图发送给多个的解译执行器进行解译;

所述步骤S40具体为:解译执行器采用解译模型对各子图进行目标检测,得到每个子图的解译结果;

所述步骤S50具体为:流程调度器按照所述树形链表记录的所述对应关系,将全部解译结果进行拼接,完成遥感影像目标检测。

一种高效率的单幅遥感影像目标检测系统,包括:

流程调度器,用于获取遥感影像,将其作为原图;

所述流程调度器还用于将所述原图裁剪成多个子图;

所述流程调度器还用于创建树形链表,记录所述原图与各子图的对应关系;

解译执行器,用于采用解译模型对各子图进行目标检测,得到每个子图的解译结果;

所述流程调度器还用于按照所述树形链表记录的所述对应关系,将解译结果进行拼接,完成遥感影像目标检测。

进一步地,所述流程调度器还用于采用滑动窗口算法将所述原图裁剪成多个子图,具体包括:

裁剪图框创建模块,用于创建裁剪图框A,作为滑动窗口;

滑动窗口截图模块,用于采用所述滑动窗口在所述原图上按照设定步长s逐行滑动,设定每行的滑动窗口之间偏移量p,在所述原图上裁剪出k个子图,其中第i行第j个子图表示为子图B[i,j],所述滑动窗口的长与宽分别表示为l与w,s=x*l,p=x*w,x取值为0.5-0.8。

进一步地,还包括:

指定像素设置模块,用于预设指定像素,所述指定像素的长与宽分别为m与n;

递归判断模块,用于如果所述l≤m且所述w≤n,则进入所述流程调度器进行模块,如果所述l>m或所述w>n,则创建截剪图框A

进一步地,还包括:

去重模块,用于采用NMS算法对全部子图的解译结果进行去重操作。

进一步地,还包括:

所述流程调度器还用于向资源调度器发送解译请求;

资源调度器,用于基于接收的所述解译请求,向资源管理器查询各GPU计算节点的剩余算力,并返回给流程调度器;

所述流程调度器还用于基于所述剩余算力,将剪裁的所述子图发送给多个的所述解译执行器进行解译。

本发明的优点在于:1、将遥感影像作为原图,裁剪成多个子图进行解译,将每个子图的目标检测的解译结果进行拼接,完成遥感影像目标检测,提高遥感影像解译速度。2、利用滑动窗口算法将原图裁剪成多个子图,防止边界漏检的问题,每个子图都用对应的解译模型进行目标检测,实现将多个GPU计算力在单位时间内集中于一幅遥感影像,再结合NMS算法合并子图的解译结果,提高单幅遥感影像的目标检测的速度。3、对滑动窗口采用递归方法进一步细分,生成更小的子图,提高检测目标的精度。4、设计由“资源管理器”、“资源调度器”、“解译执行器”、“流程调度器”四个组件组成的GPU资源管理框架,有效调用GPU计算节点,提高遥感影像的解译稳定性。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是本发明的高效率的单幅遥感影像目标检测方法的流程图。

图2是本发明的高效率的单幅遥感影像目标检测系统的结构框图。

图3是本发明中滑动窗口的状态示意图。

图4是本发明中NMS算法的状态示意图。

具体实施方式

本发明实施例通过提供一种高效率的单幅遥感影像目标检测方法及系统,解决了现有技术中单幅遥感影像解译速度慢的技术问题,实现了提高解译速度的技术效果。

本发明实施例中的技术方案为解决上述问题,总体思路如下:影像分块解译,将所有的GPU计算力在单位时间内集中于一幅遥感影像,加快GPU集群的响应速率,采用“裁剪原图、分布解译、结果拼接”的方法来完成单幅遥感影像的解译,提高对单幅遥感影像的目标检测速度。同时设计GPU资源管理框架,配合影像分块解译,有效调用GPU计算节点,提高遥感影像的解译稳定性。

为了更好地理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

参阅图1到图4,本发明的高效率的单幅遥感影像目标检测方法及系统的优选实施例。

本发明的高效率的单幅遥感影像目标检测方法,包括以下步骤:

S10、获取遥感影像,作为原图;

S20、将所述原图裁剪成多个子图;

所述步骤S20,采用滑动窗口算法将所述原图裁剪成多张子图,具体包括:

S21、创建裁剪图框A,作为滑动窗口;

S22、采用所述滑动窗口在所述原图上按照设定步长s逐行滑动,设定每行的滑动窗口之间偏移量p,在所述原图上裁剪出k个子图,其中第i行第j个子图表示为子图B[i,j],所述滑动窗口的长与宽分别表示为l与w;s<l,p

S30、创建树形链表,记录所述原图与各子图的对应关系;即所述树形链表的根节点存储所述原图,所述树形链表的叶子节点存储各个子图;利用树形链表存储子图在原图中的位置关系。

所述步骤S30后还包括步骤S31:

预设指定像素,所述指定像素的长与宽分别为m与n;

如果所述l≤m且所述w≤n,则进入步骤S40;如果所述l>m或所述w>n,则创建截剪图框A

S40、采用解译模型对各子图进行目标检测,得到每个子图的解译结果;解译模型与子图一一对应;所述解译模型是用TensorRT部署训练好的解译模型。具体解译模型可以使用yolt、retinanet、R3net等模型,都可以用TensorRT部署,从而达到解译效果。实现将多个GPU计算力在单位时间内集中于一幅遥感影像。根据达到指定像素要求的子图的数量,安排同样数量的解译模型进行目标检测的解译处理。当解译模型的数量不足时,就分批次地,先对一部分达到指定像素要求的子图进行解译处理,然后再对另一部分的子图进行解译处理。或者由于滑动窗口都是在原图中裁减出k个子图,就安排有k个解译模型,k个达到指定像素要求的子图为一组,k个解译模型就按顺序对每组的子图进行解译处理。

所述步骤S40后还包括步骤S41:

采用NMS算法对全部子图的解译结果进行去重操作。NMS(non maximumsuppression),中文名非极大值抑制,在很多计算机视觉任务中都有广泛应用,如:边缘检测、目标检测等。

S50、按照所述树形链表记录的所述对应关系,将解译结果进行拼接,完成遥感影像目标检测。树形链表存储原图与子图的对应关系,所以由子图的解译结果就能按照对应关系确认原图的解译结果,即检测出单幅遥感影像中的目标位置。

其中所述步骤S20具体为:利用流程调度器将所述原图裁剪成多个子图;

所述步骤S30具体为:流程调度器创建树形链表,记录所述原图与各子图的对应关系;

还包括步骤S301、流程调度器向资源调度器发送解译请求;

步骤S302、资源调度器基于接收的所述解译请求,向资源管理器查询各GPU计算节点的剩余算力,并返回给流程调度器;

步骤S303、流程调度器基于所述剩余算力,将剪裁的所述子图发送给多个的解译执行器进行解译;

所述步骤S40具体为:解译执行器采用解译模型对各子图进行目标检测,得到每个子图的解译结果;

所述步骤S50具体为:流程调度器按照所述树形链表记录的所述对应关系,将全部解译结果进行拼接,完成遥感影像目标检测。

一种高效率的单幅遥感影像目标检测系统,包括:

流程调度器,用于获取遥感影像,将其作为原图;

所述流程调度器还用于将所述原图裁剪成多个子图;

所述流程调度器还用于采用滑动窗口算法将所述原图裁剪成多个子图,具体包括:

裁剪图框创建模块,用于创建裁剪图框A,作为滑动窗口;

滑动窗口截图模块,用于采用所述滑动窗口在所述原图上按照设定步长s逐行滑动,设定每行的滑动窗口之间偏移量p,在所述原图上裁剪出k个子图,其中第i行第j个子图表示为子图B[i,j],所述滑动窗口的长与宽分别表示为l与w;s<l,p

所述流程调度器还用于创建树形链表,记录所述原图与各子图的对应关系;即所述树形链表的根节点存储所述原图,所述树形链表的叶子节点存储各个子图;利用树形链表存储子图在原图中的位置关系。

还包括:

指定像素设置模块,用于预设指定像素,所述指定像素的长与宽分别为m与n;

递归判断模块,用于如果所述l≤m且所述w≤n,则进入所述流程调度器进行模块,如果所述l>m或所述w>n,则创建截剪图框A

所述流程调度器还用于向资源调度器发送解译请求;

资源调度器,用于基于接收的所述解译请求,向资源管理器查询各GPU计算节点的剩余算力,并返回给流程调度器;

所述流程调度器还用于基于所述剩余算力,将剪裁的所述子图发送给多个的所述解译执行器进行解译。

解译执行器,用于采用解译模型对各子图进行目标检测,得到每个子图的解译结果;所述解译模型是用TensorRT部署训练好的解译模型。具体解译模型可以使用yolt、retinanet、R3net等模型,都可以用TensorRT部署,从而达到解译效果。实现将多个GPU计算力在单位时间内集中于一幅遥感影像。根据达到指定像素要求的子图的数量,安排同样数量的解译模型进行目标检测的解译处理。当解译模型的数量不足时,就分批次地,先对一部分达到指定像素要求的子图进行解译处理,然后再对另一部分的子图进行解译处理。或者由于滑动窗口都是在原图中裁减出k个子图,就安排有k个解译模型,k个达到指定像素要求的子图为一组,k个解译模型就按顺序对每组的子图进行解译处理。

去重模块,用于采用NMS算法对全部子图的解译结果进行去重操作。NMS(nonmaximum suppression),中文名非极大值抑制,在很多计算机视觉任务中都有广泛应用,如:边缘检测、目标检测等。

所述流程调度器还用于按照所述树形链表记录的所述对应关系,将解译结果进行拼接,完成遥感影像目标检测。树形链表存储原图与子图的对应关系,所以由子图的解译结果就能按照对应关系确认原图的解译结果,即检测出单幅遥感影像中的目标位置。

如图2所示,第一CPU计算节点,具有流程调度器。“流程调度器”:单个节点部署(或者两个节点互为主备),运行具体的影像分块裁的方法,控制程序运行的流程。

GPU计算节点,具有解译执行器。“解译执行器”:在每个GPU计算节点上部署,用TensorRT部署训练好的解译模型,接收流程调度器的调度命令,执行具体的影像处理方法。

GPU计算节点还具有资源管理器,用于监控和管理GPU计算节点的剩余显卡算力、显存以及是否处于正常工作状态。每个GPU计算节点部署一个“资源管理器”,“资源管理器”是这个GPU计算节点的代理。

GPU计算节点有多个。

第二CPU计算节点,具有资源调度器,用于接收所述资源管理器发出的GPU计算节点的使用情况,还用于接收所述流程调度器的资源申请请求,并为其指定所述资源管理器。“资源调度器”:单个节点部署(或者两个节点互为主备)。负责整个集群的GPU资源管理和分配,是一个全局的资源管理系统。“资源管理器”会以心跳的方式向“资源调度器”汇报每个GPU计算节点的使用情况。接收“流程调度器”的资源申请请求,并为其指定当前集群中最优的“资源管理器”。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

相关技术
  • 一种高效率的单幅遥感影像目标检测方法及系统
  • 一种遥感影像的目标检测方法及系统
技术分类

06120112623209