CN117132890A - 一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 - Google Patents
一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 Download PDFInfo
- Publication number
- CN117132890A CN117132890A CN202311069140.XA CN202311069140A CN117132890A CN 117132890 A CN117132890 A CN 117132890A CN 202311069140 A CN202311069140 A CN 202311069140A CN 117132890 A CN117132890 A CN 117132890A
- Authority
- CN
- China
- Prior art keywords
- remote sensing
- target detection
- sensing image
- model
- edge computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 160
- 238000013138 pruning Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000002787 reinforcement Effects 0.000 claims abstract description 17
- 238000010276 construction Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000012549 training Methods 0.000 claims description 22
- 230000006835 compression Effects 0.000 claims description 13
- 238000007906 compression Methods 0.000 claims description 13
- 238000013139 quantization Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 10
- 102100030148 Integrator complex subunit 8 Human genes 0.000 claims description 9
- 101710092891 Integrator complex subunit 8 Proteins 0.000 claims description 9
- 238000007726 management method Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 7
- 230000001629 suppression Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000004044 response Effects 0.000 abstract description 3
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012014 frustrated Lewis pair Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明公开一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统,包括:边缘集群搭建模块,利用Kubernetes容器编排和管理平台搭建边缘计算集群环境;轻量化遥感图像目标检测模型构建模块,在YOLOv5的基础上,基于强化学习的自动化模型剪枝方法,构建轻量化遥感图像目标检测模型;遥感图像目标检测模型推理引擎模块,使用TensorRT生成模型序列化引擎;遥感图像目标检测模型镜像模块,将应用程序及其依赖项构建容器镜像,并将镜像部署在Kubernetes边缘计算集群;遥感图像目标检测模型运行模块,利用Kubernetes边缘计算集群提供的命令执行目标检测。本发明的方案,能在边缘计算集群进行遥感图像目标检测,降低数据传输和处理延迟,提高部署和运行效率,支持快速响应和实时决策。
Description
技术领域
本发明涉及遥感图像智能解译、边缘智能、云边协同技术领域,尤其涉及一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统。
背景技术
遥感图像目标检测是指在遥感图像中检测是否存在建筑、道路、船舶等感兴趣的目标,以及目标的种类、位置、数量等信息,在战场环境评估、军事目标侦察、检查国境安全等军事领域,以及交通检测、农业环境监测、勘探资源、城市规划等民用领域已得到广泛应用。
近年来,深度学习因其具备强大的复杂非线性特征表示能力,成功应用于众多领域。基于深度学习的方法具有更高的检测精度,已经成为当前目标检测领域的主流算法。然而,已有基于深度学习的遥感图像目标检测方法大多采用更大、更深的深度神经网络,以增强非线性拟合能力,导致参数量和计算量大,对计算、存储等资源提出了更高的要求,通常需要依赖强大算力。
近年来,随着互联网和传感器技术的发展,终端设备和边缘设备数量及其产生的数据不断增加,边缘计算能够在靠近数据源头的一侧进行数据处理,具有响应速度快、实时性较高、传输带宽压力小、数据隐私性高等优势,成为云计算的重要补充。
发明内容
为了解决上述问题,本发明提供了一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,包括:
使用边缘集群搭建模块,搭建利用Kubernetes容器编排和管理平台的边缘计算集群环境,所述边缘计算集群环境包括服务器节点(主节点)和边缘计算节点(工作节点);
使用轻量化遥感图像目标检测模型构建模块,构建以YOLOv5为基础,基于强化学习的自动化模型剪枝方法,构建、训练轻量化遥感图像目标检测模型;
使用遥感图像目标检测模型推理引擎模块,生成序列化引擎,将轻量化遥感图像目标检测模型利用TensorRT转化为可在边缘计算集群环境执行的格式;
使用遥感图像目标检测模型镜像模块,根据可在边缘计算集群环境中执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境;
使用遥感图像目标检测模型运行模块,对待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
进一步地,服务器节点基于AMD64架构的计算机构建,边缘计算节点基于ARM64架构的计算机构建。
进一步地,构建以YOLOv5为基础,基于强化学习的自动化模型剪枝算法,压缩获得轻量化遥感图像目标检测模型,具体为:
获取遥感图像作为原始数据集,对原始数据集进行划分,划分后的数据集包括训练集和验证集;
以单阶段目标检测算法YOLOv5s为基础,使用训练集训练YOLOv5s网络模型,直到YOLOv5s网络模型收敛,得到训练后的YOLOv5s网络模型;
使用训练后的YOLOv5s网络模型在验证集进行推理,对于YOLOv5s网络模型对同一目标产生的置信度不同且重叠的检测框,使用非极大值抑制NMS处理检测结果,根据交并比和置信度阈值过滤冗余的检测框,并基于准确率、召回率、mAP评估模型精度;
基于强化学习的自动化模型剪枝方法,使用强化学习方法搜索训练后的YOLOv5s网络模型各层的最优剪枝率,并使用基于L1范数的通道剪枝去除冗余通道,剪枝后的模型记为YOLOv5s-pruned,使用训练集对YOLOv5s-pruned进行微调,以恢复模型精度,得到最终的轻量化遥感图像目标检测模型;
针对两种不同的场景采用两种不同的剪枝策略:对于资源受限场景,在保证满足目标压缩率的前提下,尽可能地提高模型精度;对于精度要求较高的场景,在保证精度的情况尽可能地压缩模型。
进一步地,使用TensorRT将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境中执行的格式,并生成轻量化遥感图像目标检测模型的序列化引擎具体为:
使用torch.onnx.export函数将torch模型转为ONNX模型;
创建Builder构建器;
构建Logger日志记录器;
构建网络主体Network的计算图,使用OnnxParser创建一个ONNX解析器填充网络,将ONNX模型解析到TensorRT的网络中,使用NetworkDefinitionCreationFlag.EXPLICIT_BATCH标记作为Network的构建参数;
通过Builder.create_builder_config设置网络参数,使用max_workspace_size指定最大可用显存,可以使用set_flag开启INT8模型量化,或可以使用set_flag开启FP16模型量化,对于INT8模型量化,需要继承trt.IInt8EntropyCalibrator2实现calibrator校准器;
使用builder.build_engine构建引擎,并通过engine.serialize()序列化引擎;
在服务器节点使用轻量化遥感图像目标检测模型进行推理,在边缘计算节点使用TensorRT生成轻量化遥感图像目标检测模型的FP16或INT8模型量化序列化引擎进行推理。
进一步地,根据可在边缘计算集群环境中执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境,具体为:
根据服务器节点和边缘计算节点的特性,向基础镜像中安装目标检测的相关环境,在镜像内创建工作目录,拷贝模型项目和序列化引擎文件到工作目录;
根据Dockerfile生成docker镜像,本地运行docker镜像,生成docker容器,进入容器内部执行遥感图像目标检测模型,测试镜像的可用性;
推送镜像到远程仓库,测试成功后,登录远程仓库,使用相关命令打上镜像标签,将新生成的镜像推送到远程仓库;
编写YAML文件,在文件中指明关键信息,包括:Pod类型、应用名称、镜像名称、副本数量、Kubernetes调度策略,在服务器节点执行YAML文件;
Kubectl将YAML文件发送到API Server,API Server对YAML文件进行验证,并将Deployment对象存储在etcd中;
Kubernetes的Controller Manager组件监控API Server的Deployment对象,并根据YAML文件中的副本数和Pod模板创建指定数量的Pod对象;
采用Kubernetes默认调度器,Scheduler根据Pod资源需求和边缘计算节点资源可用情况进行匹配,选择最优的边缘计算节点进行调度,当Pod对象被调度到边缘计算节点上时,Kubelet根据Pod的定义创建一个对应的容器,并在边缘计算节点上运行该容器,Kubelet定期检查容器运行状态,并与API Server通信,将调度的边缘计算节点信息保存到etcd且确保Pod对象的实际状态与期望状态相匹配。
进一步地,遥感图像目标检测模型运行模块的工作流程为:
在服务器节点输入命令,运行Pod内的目标检测代码,执行遥感图像目标检测任务;
加载模型,检验输入模型中图片大小是否为32的倍数,如果不是则调整为32的倍数并返回;
遍历文件夹中所有图片存入dataset中;
获取遥感图像目标类别信息,设置对应目标检测边界框颜色属性;
遥感图像目标检测前向推理,并进行非极大值抑制NMS处理;
对待测遥感图像进行目标检测,设置保存目标边界框坐标的文件路径,利用annotator.box_label把检测结果和置信值及边界框绘制于遥感图像并保存,并显示运行时间、被处理的图片大小、检测到的类别数量和检测到的类别等信息。
本发明还提出一种基于Kubernetes边缘计算集群的遥感图像目标检测系统,用于实现上述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,包括:
边缘集群搭建模块,用于利用Kubernetes容器编排和管理平台搭建边缘计算集群环境;
轻量化遥感图像目标检测模型构建模块,用于将在YOLOv5单阶段目标检测算法的基础上,基于强化学习的自动化模型剪枝,构建、训练轻量化遥感图像目标检测模型;
遥感图像目标检测模型推理引擎模块,用于使用TensorRT将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境执行的格式,生成序列化引擎;
遥感图像目标检测模型镜像模块,用于根据可在边缘计算集群环境执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境;
遥感图像目标检测模型运行模块,用于将待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
本发明提供的技术方案带来的有益效果是:
本发明提出一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统。包括:边缘集群搭建模块,利用Kubernetes容器编排和管理平台搭建边缘计算集群环境,有效利用边缘节点的计算、存储等资源;轻量化遥感图像目标检测模型构建模块,在经典单阶段目标检测算法YOLOv5的基础上,基于强化学习的自动化模型剪枝方法,构建、训练轻量化遥感图像目标检测模型,减少检测模型参数量和计算量,降低对计算、存储资源的需求;遥感图像目标检测模型推理引擎模块,使用TensorRT生成遥感图像目标检测模型符合设备硬件特性的序列化引擎,加速模型推理过程;遥感图像目标检测模型镜像模块,利用容器化技术,将应用程序及其依赖项构建容器镜像,将生成的镜像部署在Kubernetes集群,简化模型的部署和管理;遥感图像目标检测模型运行模块,对于给定的遥感图像利用Kubernetes提供的检测命令执行目标检测,完成边缘计算集群环境遥感图像目标检测。使用本发明的方案,能够在边缘计算集群进行遥感图像目标检测,简化基于深度学习的遥感图像目标检测网络模型的部署和管理,降低数据传输和处理延迟,提高处理效率和实时性,满足快速响应和实时决策的需求。
附图说明
图1是本发明实施例一种基于Kubernetes边缘计算集群的遥感图像目标检测方法框图;
图2是本发明实施例基础遥感图像目标检测算法YOLOv5s网络结构图;
图3是本发明实施例基于强化学习的模型剪枝算法框架图;
图4是本发明实施例基于Kubernetes的边缘计算集群架构图;
图5是本发明实施例Kubernetes边缘计算集群遥感图像目标检测模型部署流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地描述。
本发明实施例一种基于Kubernetes边缘计算集群的遥感图像目标检测方法框图如图1,包括:
(1)边缘集群搭建模块,利用Kubernetes容器编排和管理平台搭建边缘计算集群环境,包括服务器节点(主节点)和边缘计算节点(工作节点)。
准备多个AMD64架构和ARM64架构的计算机作为节点,服务器节点基于AMD64架构,边缘计算节点基于ARM64架构,组成异构边缘计算集群。
配置边缘计算集群环境中计算机基础环境,使得所有计算机能够互相访问,关闭Swap分区以及主机防火墙,设置时间同步。
所有计算机安装相同版本的docker,根据官网要求,分别在服务器节点和边缘计算节点安装各自需要的Kubernetes组件。
创建Kubernetes集群,初始化服务器节点,服务器节点执行令牌生成命令,边缘计算节点执行服务器节点生成的令牌命令加入Kubernetes集群。
(2)轻量化遥感图像目标检测模型构建模块,在YOLOv5的基础上,基于强化学习的自动化模型剪枝方法,构建、训练轻量化遥感图像目标检测模型。
以经典单阶段目标检测器YOLOv5s为基础,YOLOv5s由Backbone、Neck和Detector三个部分组成,网络结构图如图2所示。
所述Backbone部分负责提取特征,共包含串联设置的10层,第一层为一个普通的卷积层(CBL),其卷积核大小为6×6,步长为2;随后是连续四个串联的CBL+C3模块,其中C3模块分别含有1、2、3、1个Bottleneck1模块;最后一层是一个改进的空间金字塔池化层SPPF。所述CBL模块由Conv+BN+SiLU三个模块组成。所述C3模块由两个分支组成,第一个分支为一个1×1的卷积层,第二个分支为一个1×1的卷积层以及多个Bottleneck1串联组成,输入分别经过两个分支提取特征,随后将两个分支的结果叠加并经过一个1×1的卷积层作为最终的输出。所述Bottleneck1首先是一个1×1的卷积层,然后是一个3×3的卷积层,最后通过残差结构与初始输入相加。所述SPPF将输入首先由一个1×1的卷积层得到一个特征,随后将该特征分别经过5×5、9×9、13×13的池化层得到三个不同尺度的特征,最后将得到的四个不同尺度的特征融合后输入到一个1×1的卷积层中并得到最终的输出特征图。
所述Neck部分使用PAN结构,PAN结构在自顶向下的特征金字塔结构的基础上增加了自底向上的结构,能够保留更多的浅层特征,提升特征提取能力,该部分最终得到三个不同尺度的特征图,分别为浅层特征、中层特征、深层特征。所述自顶向下部分共得到三个不同层次的特征图,首先将BackBone部分的输出由一个大小为1×1、步长为1的卷积层得到第一个输出特征图,大小为32×32×512;将该特征经过2倍上采样与BackBone部分对应尺度的特征图进行融合,再经由一个C3模块和一个卷积层得到第二个输出特征,大小为64×64×256;随后再进行2倍上采样,并与BackBone中对应的尺度的特征图融合,经由一个C3模块得到第三个输出特征图,大小为128×128×256;所述自底向上部分首先将自顶向下部分的第三个输出作为最终输出的浅层特征,大小为128×128×256;随后将该浅层特征经过一个大小为3、步长为2的卷积层,并与自顶向下部分的第二个输出特征图进行融合,再经过一个C3模块得到最终的中层特征,大小为64×64×512;随后将该特征经由一个步长为2的卷积层进行降维,并与自顶向下部分的第一个输出特征进行融合,最后再经由一个C3模块得到最终的深层特征,大小为32×32×1024。
所述Detector部分由三个卷积核大小为1×1、步长为2的卷积层组成,分别对三个不同尺度的特征进行预测,得到最终的预测结果。
使用DOTAv2.0官方发布的数据处理工具,设置subsize=1024、gap=200参数进行遥感图像切割,将数据集中图像按1024×1024大小进行分割,包含交叠区域的像素个数为200,以此为基础构建数据集,划分为训练集和验证集。
使用训练集训练基础YOLOv5s网络模型,直到YOLOv5s网络模型收敛,得到训练后的YOLOv5s网络模型。
使用训练后的YOLOv5s网络模型在验证集进行推理,得到目标检测结果,训练后的YOLOv5s网络模型对同一目标可能产生多个置信度不同且重叠的检测框,使用非极大值抑制NMS处理目标检测结果,根据交并比和置信度阈值过滤冗余的检测框,并基于准确率、召回率、mAP(Mean Average Precision)评估目标检测精度。
基于强化学习的自动化剪枝方法对训练后的YOLOv5s网络模型进行剪枝,将模型剪枝建模为强化学习过程,将深度神经网络本身作为环境,模型各层的剪枝率作为动作,以剪枝后的精度、计算量、参数量等参数构建奖励函数,作为环境的反馈,通过强化学习的方法训练智能体生成各层最优的剪枝率。
所述强化学习建模,包括状态空间、动作空间、智能体三个部分。
以约束计算量为例,所述状态空间可由神经网络各层的10个特征构成,表达式如下:
st=(lt,n,c,h,w,stride,FLOPs[t],reduced,rest,at-1)
其中,st为层状态空间,lt为层索引,n为输入通道数,c为输出通道数,h为输入特征图高度,w为输入特征图宽度,stride为该层步长,FLOPs[t]为该层计算量,reduced为已经剪掉的计算量,rest为剩余的计算量,at-1为上一层剪枝率。
所述动作空间即剪枝率的搜索空间,采用连续的动作空间a∈(0,1],以实现更细粒度和更精确的压缩。
所述智能体使用深度确定性策略梯度(DDPG)以实现对连续的动作空间进行控制,并在训练的过程中给动作添加噪声,以实现更好的搜索。
具体剪枝方法如图3所示,采用分层剪枝的方法,对于每一层首先生成该层的状态参数St,智能体根据该状态信息提供一个剪枝率,根据该剪枝率对该层做剪枝,剪枝方法使用基于L1范数的通道剪枝,然后将智能体移动到下一层,当所有层都完成剪枝后,使用验证集对网络进行评估,生成相应的奖励回馈给智能体,不断重复此步骤直至满足终止条件,以训练智能体不断搜索各层最优剪枝率。
针对两种不同的场景,采用两种不同的搜索策略:针对星载、无人机等边缘侧计算、存储资源受限场景,使用保证目标压缩率的压缩策略;针对精度要求较高的场景,使用保证精度的压缩策略。
所述保证压缩比的压缩策略,能够保证实现给定的目标压缩比的前提下尽可能保证精度。通过控制动作空间来实现目标压缩比,以压缩计算量为例,要求剪枝后的模型计算量低于某个值,则当剪枝到每一层时,首先判断该层得到的剪枝率能否满足要求,即将剩下的层都采用最大的剪枝率进行剪枝,然后计算剪枝后的的计算量,若剪枝后的计算量不能满足目标计算量,则说明该层剪枝率不满足要求,增大该层剪枝率,直至满足要求。通过设置与精度相关的奖励函数,以在训练过程不断激励智能体往精度更高的方向优化。奖励函数如下:
rerr=-Error
其中,rerr表示优化精度的奖励,-Error表示相较于初始模型的精度误差,所述保证精度的压缩策略,能够在保证精度的前提下尽可能压缩模型。通过设置奖励函数,在奖励函数中提供对精度的激励,并且在奖励函数中放入计算量、参数量,以为降低模型的参数量、计算量提供激励。奖励函数如下:
rFLOPs=-Error*log(FLOPs)
rParam=-Error*log(Param)
其中,rFLOPs表示优化精度与计算量的奖励,FLOPs表示剪枝后的计算量,rParam表示优化精度与参数量的奖励,Param表示剪枝后的参数量,使用训练集数据对剪枝后的模型YOLOv5-pruned进行微调,恢复模型检测精度,得到最终的轻量化遥感图像目标检测模型。
(3)遥感图像目标检测模型推理引擎模块,使用TensorRT生成序列化引擎,将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境执行的格式。
TensorRT为了AI模型可交互性,需要先将torch模型转为和环境、平台无关的开放神经网络交换格式ONNX,使用torch.onnx.export函数将torch模型转为ONNX模型。
创建Builder构建器,Builder是模型搭建的入口,网络的TensorRT内部表示及可执行程序引擎都由该对象的成员方法生成。
构建Logger日志记录器,Logger用于管理日志,可以在此选择引擎构建步骤需要记录的信息。
构建网络主体Network的计算图,为将ONNX模型解析到TensorRT的网络中,使用OnnxParser创建一个ONNX解析器来填充网络,为适应网络中的新算子、新结构,使用NetworkDefinitionCreationFlag.EXPLICIT_BATCH标记作为Network的构建参数。
通过Builder.create_builder_config设置网络参数,使用max_workspace_size指定最大可用显存,可以使用set_flag(trt.BuilderFlag.INT8)开启INT8模型量化,或可以使用set_flag(trt.BuilderFlag.FP16)开启FP16模型量化,对于INT8模型量化,需要继承trt.IInt8EntropyCalibrator2实现calibrator校准器。
构建和序列化引擎,使用builder.build_engine构建引擎,并通过engine.serialize()序列化引擎。
使用TensorRT生成符合设备硬件特性的序列化引擎,在服务器节点使用轻量化遥感图像目标检测模型进行推理,在边缘计算节点使用TensorRT生成轻量化遥感图像目标检测模型的FP16或INT8模型量化序列化引擎进行推理。
(4)遥感图像目标检测模型镜像模块,根据可在边缘计算集群环境中执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境。
编写Dockerfile文件,具体步骤为:根据计算机架构和显卡的特性,向基础镜像中安装目标检测的相关环境,在镜像内创建工作目录,拷贝模型项目和由步骤(3)生成的符合设备硬件特性的序列化引擎文件到工作目录。
根据Dockerfile生成docker镜像,本地运行docker镜像,生成docker容器,进入容器内部执行遥感图像目标检测模型,测试镜像的可用性。
推送镜像到远程仓库,测试成功后,登录远程仓库,使用相关命令打上镜像标签,将新生成的镜像推送到远程仓库。
编写YAML文件,在文件中指明包括Pod类型、应用名称、镜像名称、副本数量、Kubernetes调度策略等关键信息,在服务器节点执行YAML文件。
Kubectl将YAML文件发送到API Server,API Server对YAML文件进行验证,并将Deployment对象存储在etcd中,方便在后续的更新和删除操作中API Server能从etcd读取Deployment对象并进行操作。
Kubernetes的Controller Manager组件监控API Server的Deployment对象,并根据YAML文件中的副本数和Pod模板创建指定数量的Pod对象。
图4是本发明实施例基于Kubernetes的边缘计算集群架构示意图,描述了一个主节点和二个工作节点的边缘计算集群架构。主节点(服务器节点)为Kubernetes集群的控制节点,负责管理和监控整个集群,包含API Server、Kubectl、Controller-manager、Scheduler、etcd组件。其中,API Server提供Kubernetes API,用于与集群进行交互,Controller Manager负责管理集群中的控制器如副本集、服务等,Scheduler负责将Pod调度到集群中的节点上,etcd负责分布式键值存储,用于存储集群的状态信息。边缘计算节点为Kubernetes集群中的工作节点,用于运行容器化应用程序,包含Kubelet、ContainerRuntime、Kube-proxy组件。其中,Kubelet负责管理节点上的容器和Pod,并与主节点通信,Container Runtime负责运行容器如Docker等,Kube-proxy负责pod的网络代理与负载均衡。工作节点的Pod是Kubernetes中最小的可部署单元,包含一个或多个容器,Pod是运行在工作节点上的实际应用程序实例,本发明中为目标检测模型。Kubernetes集群的模型部署参照步骤4。
采用Kubernetes默认调度器,Scheduler根据Pod资源需求和边缘计算节点资源可用情况进行匹配,选择最优的边缘计算节点进行调度,当Pod对象被调度到边缘计算节点上时,Kubelet根据Pod的定义创建一个对应的容器,并在边缘计算节点上运行该容器,Kubelet定期检查容器运行状态,并与API Server通信,将调度的节点信息保存到etcd且确保Pod对象的实际状态与期望状态相匹配。图5是本发明实施例Kubernetes边缘计算集群遥感图像目标检测模型部署流程图。
(5)遥感图像目标检测模型运行模块,对于待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
在服务器节点输入命令,运行Pod内的目标检测代码,执行遥感图像目标检测任务;
提取输出文件夹、输入文件夹信息,判断提取文件后缀名是否符合要求,不符合则提示文件后缀名不在IMG_FORMATS列表中,判断预测结果保存路径是否存在,不存在则新建;
获取推理使用的设备,检测使用的框架(PyTorch/TensorRT),根据使用的框架加载模型,检验输入模型中图片大小是否为32的倍数,如果不是则调整为32的倍数并返回;
遍历文件夹中所有图片存入dataset中;
获取遥感图像目标类别信息,设置对应目标检测边界框颜色属性;
遥感图像目标检测前向推理,并进行非极大值抑制NMS处理;
对给定的遥感图像进行目标检测,设置保存目标边界框坐标的文件路径,利用annotator.box_label把标签(检测结果和置信值)及边界框绘制于遥感图像并保存,平台显示运行时间、被处理的图片大小、检测到的类别数量和检测到的类别等信息。
本实施例还包括一种基于Kubernetes边缘计算集群的遥感图像目标检测系统,用于实现上述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,包括:
边缘集群搭建模块,用于利用Kubernetes容器编排和管理平台搭建边缘计算集群环境;
轻量化遥感图像目标检测模型构建模块,用于在YOLOv5基础上,基于强化学习的模型剪枝,构建、训练轻量化遥感图像目标检测模型;
遥感图像目标检测模型推理引擎模块,用于使用TensorRT将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境执行的格式,生成序列化引擎;
遥感图像目标检测模型镜像模块,用于根据可在边缘计算集群环境执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境;
遥感图像目标检测模型运行模块,用于将待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,包括如下步骤:
使用边缘集群搭建模块,搭建利用Kubernetes容器编排和管理平台的边缘计算集群环境,所述边缘计算集群环境包括服务器节点和边缘计算节点;
使用轻量化遥感图像目标检测模型构建模块,构建以YOLOv5为基础,基于强化学习的自动化模型剪枝算法,压缩获得轻量化遥感图像目标检测模型;
使用遥感图像目标检测模型推理引擎模块,生成序列化引擎,将轻量化遥感图像目标检测模型利用TensorRT转化为可在边缘计算集群环境执行的格式;
使用遥感图像目标检测模型镜像模块,根据可在边缘计算集群环境中执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境;
使用遥感图像目标检测模型运行模块,对待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
2.根据权利要求1所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,服务器节点基于AMD64架构的计算机构建,边缘计算节点基于ARM64架构的计算机构建。
3.根据权利要求1所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,构建以YOLOv5为基础,基于强化学习的自动化模型剪枝算法,压缩获得轻量化遥感图像目标检测模型,具体为:
获取遥感图像作为原始数据集,对原始数据集进行划分,划分后的数据集包括训练集和验证集;
以单阶段目标检测算法YOLOv5s为基础,使用训练集训练YOLOv5s网络模型,直到YOLOv5s网络模型收敛,得到训练后的YOLOv5s网络模型;
使用训练后的YOLOv5s网络模型在验证集进行推理,对于YOLOv5s网络模型对同一目标产生的置信度不同且重叠的检测框,使用非极大值抑制NMS处理检测结果,根据交并比和置信度阈值过滤冗余的检测框,并基于准确率、召回率、mAP评估模型精度;
基于强化学习的自动化模型剪枝方法,使用强化学习方法搜索训练后的YOLOv5s网络模型各层的最优剪枝率,并使用基于L1范数的通道剪枝去除冗余通道,剪枝后的模型记为YOLOv5s-pruned,使用训练集对YOLOv5s-pruned进行微调,以恢复模型精度,得到最终的轻量化遥感图像目标检测模型;
针对两种不同的场景采用两种不同的剪枝策略:对于资源受限场景,在保证满足目标压缩率的前提下,尽可能地提高模型精度;对于精度要求较高的场景,在保证精度的情况尽可能地压缩模型。
4.根据权利要求1所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,使用TensorRT将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境中执行的格式,并生成轻量化遥感图像目标检测模型的序列化引擎具体为:
使用torch.onnx.export函数将torch模型转为ONNX模型;
创建Builder构建器;
构建Logger日志记录器;
构建网络主体Network的计算图,使用OnnxParser创建一个ONNX解析器填充网络,将ONNX模型解析到TensorRT的网络中,使用NetworkDefiniti onCreationFlag.EXPLICIT_BATCH标记作为Network的构建参数;
通过Builder.create_builder_config设置网络参数,使用max_workspace_size指定最大可用显存,可以使用set_flag开启INT8模型量化,或可以使用set_flag开启FP16模型量化,对于INT8模型量化,需要继承trt.IInt8EntropyCalibrator2实现calibrator校准器;
使用builder.build_engine构建引擎,并通过engine.serialize()序列化引擎;
在服务器节点使用轻量化遥感图像目标检测模型进行推理,在边缘计算节点使用TensorRT生成轻量化遥感图像目标检测模型的FP16或INT8模型量化序列化引擎进行推理。
5.根据权利要求1所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,根据可在边缘计算集群环境中执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境,具体为:
根据服务器节点和边缘计算节点的特性,向基础镜像中安装目标检测的相关环境,在镜像内创建工作目录,拷贝模型项目和序列化引擎文件到工作目录;
根据Dockerfile生成docker镜像,本地运行docker镜像,生成docker容器,进入容器内部执行遥感图像目标检测模型,测试镜像的可用性;
推送镜像到远程仓库,测试成功后,登录远程仓库,使用相关命令打上镜像标签,将新生成的镜像推送到远程仓库;
编写YAML文件,在文件中指明关键信息,包括:Pod类型、应用名称、镜像名称、副本数量、Kubernetes调度策略,在服务器节点执行YAML文件;
Kubectl将YAML文件发送到API Server,API Server对YAML文件进行验证,并将Deployment对象存储在etcd中;
Kubernetes的Controller Manager组件监控API Server的Deployment对象,并根据YAML文件中的副本数和Pod模板创建指定数量的Pod对象;
采用Kubernetes默认调度器,Scheduler根据Pod资源需求和边缘计算节点资源可用情况进行匹配,选择最优的边缘计算节点进行调度,当Pod对象被调度到边缘计算节点上时,Kubelet根据Pod的定义创建一个对应的容器,并在边缘计算节点上运行该容器,Kubelet定期检查容器运行状态,并与API Server通信,将调度的边缘计算节点信息保存到etcd且确保Pod对象的实际状态与期望状态相匹配。
6.根据权利要求5所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,遥感图像目标检测模型运行模块的工作流程为:
在服务器节点输入命令,运行Pod内的目标检测代码,执行遥感图像目标检测任务;
加载模型,检验输入模型中图片大小是否为32的倍数,如果不是则调整为32的倍数并返回;
遍历文件夹中所有图片存入dataset中;
获取遥感图像目标类别信息,设置对应目标检测边界框颜色属性;
遥感图像目标检测前向推理,并进行非极大值抑制NMS处理;
对待测遥感图像进行目标检测,设置保存目标边界框坐标的文件路径,利用annotator.box_label把检测结果和置信值及边界框绘制于遥感图像并保存,并显示运行时间、被处理的图片大小、检测到的类别数量和检测到的类别等信息。
7.一种基于Kubernetes边缘计算集群的遥感图像目标检测系统,用于实现如权利要求1-6任一项所述的一种基于Kubernetes边缘计算集群的遥感图像目标检测方法,其特征在于,所述系统包括:
边缘集群搭建模块,用于利用Kubernetes容器编排和管理平台搭建边缘计算集群环境;
轻量化遥感图像目标检测模型构建模块,用于将在单阶段目标检测算法YOLOv5的基础上,基于强化学习的自动化模型剪枝,构建、训练轻量化遥感图像目标检测模型;
遥感图像目标检测模型推理引擎模块,用于使用TensorRT将轻量化遥感图像目标检测模型转化为可在边缘计算集群环境执行的格式,生成序列化引擎;
遥感图像目标检测模型镜像模块,用于根据可在边缘计算集群环境执行的轻量化遥感图像目标检测模型和序列化引擎,利用容器化技术构建容器镜像,将生成的镜像部署在边缘计算集群环境;
遥感图像目标检测模型运行模块,用于将待检测的遥感图像利用边缘计算集群环境提供的检测命令执行目标检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311069140.XA CN117132890A (zh) | 2023-08-23 | 2023-08-23 | 一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311069140.XA CN117132890A (zh) | 2023-08-23 | 2023-08-23 | 一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117132890A true CN117132890A (zh) | 2023-11-28 |
Family
ID=88862224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311069140.XA Pending CN117132890A (zh) | 2023-08-23 | 2023-08-23 | 一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117132890A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539439A (zh) * | 2024-01-09 | 2024-02-09 | 北京腾达泰源科技有限公司 | 轻量实时应用开发方法、装置、设备及存储介质 |
CN118071847A (zh) * | 2024-04-18 | 2024-05-24 | 中国地质大学(武汉) | 适用于天通卫星的遥感监测数据压缩方法及装置 |
-
2023
- 2023-08-23 CN CN202311069140.XA patent/CN117132890A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539439A (zh) * | 2024-01-09 | 2024-02-09 | 北京腾达泰源科技有限公司 | 轻量实时应用开发方法、装置、设备及存储介质 |
CN117539439B (zh) * | 2024-01-09 | 2024-04-09 | 北京腾达泰源科技有限公司 | 轻量实时应用开发方法、装置、设备及存储介质 |
CN118071847A (zh) * | 2024-04-18 | 2024-05-24 | 中国地质大学(武汉) | 适用于天通卫星的遥感监测数据压缩方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111247532B (zh) | 利用多任务学习进行特征提取 | |
KR102141324B1 (ko) | 콘볼루션 뉴럴 네트워크의 고속 계산 | |
US20190188573A1 (en) | Training of artificial neural networks using safe mutations based on output gradients | |
US11907675B2 (en) | Generating training datasets for training neural networks | |
CN110023964B (zh) | 训练和/或使用神经网络模型来生成光谱图像的中间输出 | |
CN112232426B (zh) | 目标检测模型的训练方法、装置、设备及可读存储介质 | |
US11379718B2 (en) | Ground truth quality for machine learning models | |
JP2023533907A (ja) | 自己注意ベースのニューラルネットワークを使用した画像処理 | |
CN117132890A (zh) | 一种基于Kubernetes边缘计算集群的遥感图像目标检测方法和系统 | |
Matsubara et al. | Split computing for complex object detectors: Challenges and preliminary results | |
CN110874634A (zh) | 神经网络的优化方法及装置、设备和存储介质 | |
CN116047934B (zh) | 一种无人机集群的实时仿真方法、系统以及电子设备 | |
CN112036563A (zh) | 使用起源数据的深度学习模型洞察 | |
Sanchez et al. | An approach based on feature models and quality criteria for adapting component-based systems | |
US20190005169A1 (en) | Dynamic Design of Complex System-of-Systems for Planning and Adaptation to Unplanned Scenarios | |
US11977993B2 (en) | Data source correlation techniques for machine learning and convolutional neural models | |
Cowen et al. | Lsalsa: accelerated source separation via learned sparse coding | |
Ferguson et al. | A standardized representation of convolutional neural networks for reliable deployment of machine learning models in the manufacturing industry | |
KR102561799B1 (ko) | 디바이스에서 딥러닝 모델의 레이턴시를 예측하는 방법 및 시스템 | |
CN116384516A (zh) | 一种基于集成学习的代价敏感云边协同方法 | |
WO2021208808A1 (en) | Cooperative neural networks with spatial containment constraints | |
CN114898184A (zh) | 模型训练方法、数据处理方法、装置及电子设备 | |
WO2021211134A1 (en) | A neural network system for distributed boosting for a programmable logic controller with a plurality of processing units | |
CN113657453B (zh) | 基于生成对抗网络和深度学习的有害网站的检测方法 | |
US20240127153A1 (en) | Systems and methods for automated risk assessment in machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |