基于YOLO V5的无人机航拍图像河流排污口检测方法及系统
文献发布时间:2023-06-19 09:44:49
技术领域
本公开属于无人机航拍图像目标检测领域,尤其涉及基于YOLO V5的无人机航拍图像河流排污口检测方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
生活污水处理厂、工业废水处理厂和混合废污水处理厂是现代排污口的重要组成部分。其中,生活污水和工业废水是造成河流污染的重要原因,入河的排污口数量多、分布广、变化快,隐蔽性强。使用传统方式排查排污口较为困难,花费大、遗漏多、周期长。无人机的建造、使用成本低,机动性强,起降容易,安全风险系数小,可以实现高分辨率影像的采集,可以用于河流排污口的影像采集和排查。
发明人在研究中发现,目前的无人机航拍图像河流排污口的识别主要依靠专家经验,经过专业的甄别培训的判图人员对图像进行标注,在图像中根据图像信息确定排污口的位置。但是,无人机航拍图像相比于普通图像,其分辨率高达7952×5304,排污口与整幅图像对比占不到0.01%,并且排污口的种类和形态较多,背景的语义信息非常丰富,干扰的信息较多。人为的判断依赖专业人员的技术水平,容易造成漏检、误检等问题,会增加现场工作人员的核查工作量。同时,无人机的拍摄图像的数量有几万幅,使用人工检测图像中的排污口,耗时又费力。
发明内容
为克服上述现有技术的不足,本公开提供了基于YOLO V5的无人机航拍图像河流排污口检测方法,完成在复杂背景信息下的小目标的识别任务。
为实现上述目的,本公开的一个或多个实施例提供了如下技术方案:
第一方面,公开了基于YOLO V5的无人机航拍图像河流排污口检测方法,包括:
建立无人机航拍河流排污口图像数据集;
对建立的数据集进行预处理,建立训练集和测试集;
构建YOLO V5模型,使用训练集训练YOLO V5模型,在训练和检测时,对切分后的图像再次进行切分,用以增大目标大小在图像中的占比,将输入网络的图像大小修改为最后切割的图像大小,对某种排污口较少的数据随机翻转进行数据增强;
使用测试集测试训练好的YOLO V5模型的性能,然后将模型用于无人机航拍排污口图像的识别。
进一步的技术方案,建立的数据集进行预处理,包括对高分辨率图像的分块,对分块后的图像进行排污口标注,对标注后的图像再次进行裁剪。
进一步的技术方案,图像数据集包含两类排污口:排污坝和排污管,在标注过程中,选取排污口目标,并输入选取目标的标签,然后,将标注好的信息存入指定的文件夹中,文件中存有被标注的排污口的类别。
进一步的技术方案,构建的YOLO V5模型,包括输入端、特征提取部分、Neck部分和Head部分;
所述输入端对图像进行数据增强处理、自适应锚框计算及自适应图片缩放处理;
所述特征提取部分用于对输入图像进行切片操作,再经过卷积操作,获得特征图;
Neck部分对特征图进行分类和分割;
Head部分用于得到不同尺度的预测结果。
进一步的技术方案,Neck部分采用特征金字塔网络FPN和PAN网络,特征金字塔网络由自上而下和自下而上两个部分组成,其中,自上而下的网络用于提取航拍图像的特征,自下而上的部分用于融合不同尺度的特征信息;
PAN网络和FPN网络共同使用,创建自下而上的增强路径,用于缩短信息路径,利用存储的精确定位信号,底层基础信息向高层传播以进行分类和分割。
进一步的技术方案,Head部分中,使用加权非极大抑制,在剔除锚框的过程中,将锚框的置信度作为权值,得到新的矩形框,把该矩形作为最终预测的矩形框,再将较低分数的锚框剔除。
进一步的技术方案,根据不同的需求进行选择不同大小的YOLO V5模型。
第二方面,公开了基于YOLO V5的无人机航拍图像河流排污口检测系统,包括:
数据集建立及处理模块,用于建立无人机航拍河流排污口图像数据集;对建立的数据集进行预处理,建立训练集和测试集;
排污口图像模块,用于构建YOLO V5模型,使用训练集训练YOLO V5模型,在训练和检测时,对切分后的图像再次进行切分,用以增大目标大小在图像中的占比,将输入网络的图像大小修改为最后切割的图像大小,对某种排污口较少的数据随机翻转进行数据增强;
使用测试集测试训练好的YOLO V5模型的性能,然后将模型用于无人机航拍排污口图像的识别。
以上一个或多个技术方案存在以下有益效果:
本公开技术方案解决了传统的目标检测方法中,对无人机航拍图像排污口这类小目标的检测精度较低的问题。辅助人工检测航拍图像河流排污口,提高排污口的检测精度。
本公开技术方案经过多次切割图像,并使用YOLO V5模型,以适应航拍河流图像排污口小目标检测,提高了目标检测的精度。
本公开技术方案对图片的两次分分块,将原本是小目标检测任务转变为较大目标的检测任务。使用YOLO V5也避免了复杂背景信息对目标检测精度的影响,得到更优的目标检测结果。
本公开技术方案的模型共有四种,对应不同程度的需求。并且最小的模型大小只有27M,在部署时降低部署成本,有利于模型的快速部署。
本公开技术方案在单个图像(bench大小为1)上,YOLO V5的运行时间最短在20毫秒内。而YOLO V5实现默认批处理推理(bench大小为36),并将批处理时间除以批处理中的图像数量,单一图片的推理时间能够达到7ms,也就是140FPS,这是目前目标检测领域的State-of-art。
本公开技术方案使用Pytorch框架实现,易于用户的扩展和应用,在无人机航拍排污口排查具有一定的实际应用价值。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例子YOLO V5模型的简略图;
图2为本公开实施例子航拍河流排污口目标检测结果图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
深度学习是图像目标检测的重要方法之一。目前,目标检测的方法一般分为Onestage和Two stage方法。其中,One stage方法包括SSD、RetinaNet、YOLO系列等;Two stage方法包括RCNN、Fast-RCNN、Faster-RCNN等等。现有的目标检测数据集包括VOC、COCO、ImageNet等数据集,这些数据集中的目标尺度较大,无论使用One stage和Two stage方法都有较好的效果。无人机航拍图像排污口的目标尺度很小,但是背景信息比较丰富。综合考虑之下,本公开技术方案采用基于YOLO V5的无人机航拍图像河流排污口检测方法,完成在复杂背景信息下的小目标的识别任务。
整体技术构思:
本公开技术方案使用无人机对河流排污口图像进行采集;对图像中的排污口进行标注,裁剪,建立排污口图像的训练集与测试集。由于排污口的图像背景较为复杂,目标大小占比图片只有不到0.01%,复杂的背景信息对目标的干扰较大,因此选择One stage系列的YOLO V5模型,从而减少背景信息对识别的影响。YOLO系列的模型对小目标的检测效果较差,因此在训练和检测部分,对切分后的图像再次进行切分,用以增大目标大小在图像中的占比。除此之外,对某种排污口较少的数据进行了随机翻转的数据增强。预处理后,使用训练集对YOLO V5模型进行训练,在测试集上对模型进行评估;然后将训练好的YOLO V5模型用于航拍图像河流排污口的检测。本发明对航拍图像排污口进行了准确的检测,实用性强,可以克服背景信息对识别的影响,且综合了速度快,模型小的各种特点,得到较好的目标检测平均精度。
实施例一
本实施例公开了基于YOLO V5的无人机航拍图像河流排污口检测方法,采用的技术步骤如下:
步骤1:利用无人机航拍河流,通过专家筛选拍摄图像中包含排污口或疑似排污口的图像,建立无人机航拍河流排污口图像数据集。
步骤2:对建立的数据集进行预处理,包括对高分辨率图像的分块,专家对分块后的图像进行排污口标注,对标注后的图像再次进行裁剪,建立模型的训练集和测试集。
步骤21:本发明中,无人机航拍的河流排污口图像为高分辨率图像,为了方便专家对图像进行矩形框标注,以及提高模型的训练效率,因此,对高分辨率图像进行分块处理。设高分辨图像的大小为W×H,划分数量使用如下公式计算:
Num
Num
上式中Num
步骤22:在步骤21的基础上,得到了分块后的图像。采用工具labelImg对分块后的图像进行标注。在步骤1建立的数据集中包含两类排污口:排污坝和排污管。在标注过程中,专家利用labelImg工具选取排污口目标,并输入选取目标的标签。然后,labelImg会将标注好的信息存入指定的文件夹中,格式为XML格式。XML文件中存有被标注的排污口的类别,标注框左上角X和Y的坐标和标注框右下角X和Y的坐标。
步骤23:在进行了步骤22的图像切割后,排污口的尺度相比于切割后的图像还是较小,图像占比不到1%。因此,对标注后的图像进行二次切割,使用滑块重叠切割的方法进行切割,切割后图像的大小为600×600。此时,排污口的目标占比较大,将小目标的检测转化为较大目标的检测。
步骤3:构建YOLO V5模型。在该模型中,对CSPDarkNet53进行改进,变为CSP*_X,进一步加强网络对图像的特征提取能力。并且使用更好的回归损失函数与改进后的非极大抑制,得到更高的目标检测精度。YOLO V5模型图如图1所示。模型的规格选择s,是最轻量的也是最小的模型。模型的主要部分由输入部分,特征提取部分,Neck部分和输出部分组成。
步骤31:在输入端的部分,加入了Moasic数据增强、自适应锚框计算、自适应的图片缩放。Moasic数据增强是根据Cutmix演化而来,将四幅图像重组为一幅新的图像,并且在重组过程中,图片的长宽随机,并且会随机加入图像随机翻转,随机缩放、随机排布等操作。Moasic数据增强对小目标的检测效果有一定的增强作用。在YOLO V4中,锚框的计算需要单独使用K-means聚类算法进行单独计算,而且只有在训练前确定。但是在YOLO V5中,锚框计算被集成在了模型中,在训练不同部分时,自适应不同的锚框进行训练。因为输入的图像大小有可能不同,所以使用resize操作改变图片大小,将输入图像变为固定大小。但是有可能输入图像长宽比例不均,导致resize后的图像填充的灰色部分较多,会增加推理速度。因此设计自适应图片缩放,填充的灰色部分为自适应的比例大小,加快模型的推理速度。
步骤32:在特征提取部分,YOLO V5模型加入Focus结构,对输入图像进行切片操作,再经过一次32个卷积核的卷积操作,最终得到304×304×12的特征图。其后的网络结构,对传统的DarkNet53进行改进,加入CSP结构,在DarkNet53的Residual Block外再加入一个卷积分支,新的网络结构可以加强特征提取的能力。在网络的最后加入SPP(SpatialPyramid Pooling)网络,通过不同大小的卷积核,将卷积后的结果进行融合,扩大网络的感受野。
步骤33:Neck部分采用特征金字塔网络(Feature pyramid Networks,FPN)和PAN(Path Aggregation Network)网络。特征金字塔网络由自上而下和自下而上两个部分组成。其中,自上而下的网络用于提取航拍图像的特征,自下而上的部分用于融合不同尺度的特征信息。PAN网络主要和FPN网络共同使用,可以创建自下而上的增强路径,用于缩短信息路径,利用low-level特征层中存储的精确定位信号,底层基础信息向高层传播以帮助更好地进行分类和分割。
步骤34:Head得到三种不同尺度的预测结果。以输入图像大小为608×608为例。预测结果大小分别为19×19×255,38×38×255,76×76×255。不同大小的结果用于预测不同大小的目标。在目标检测的后处理过程中,针对很多目标锚框筛选,通常需要进行非极大抑制(Non-Maximum Suppression,NMS)操作。非极大抑制就是筛选不同置信度下的锚框,抑制分数比较低的锚框。在YOLO V5中,使用加权NMS,在剔除锚框的过程中,将锚框的置信度作为权值,得到新的矩形框,把该矩形作为最终预测的矩形框,再将较低分数的锚框剔除。损失函数使用CIOU-LOSS损失函数,其公式为:
其中,IOU为交并比,C表示封闭A和B的最小区域,|C/(A∪B)|表示C中没有覆盖A和B的面积占C总面积的面积。
总损失函数为
L=GIOU_Loss+L
YOLO V5的模型大小分为四种,分别为s、m、l、x。分别适用于不同的需求。
步骤4:使用训练集训练YOLO V5模型,将输入网络的图像大小修改为最后切割的图像大小。
步骤41:在训练过程中,交并比IOU>0.7的部分,认为是前景目标;当IOU<0.3时,我们认为是背景目标。其损失函数如步骤34所示,其中GIOU_Loss为回归锚框的loss,L
最后,模型的优化算法采用Adam方法,学习率设置为0.001。通过对训练集数据的训练,得到排污口检测模型,用于辅助完成排污口的推理任务。
步骤5:使用测试集测试训练好的YOLO V5模型的性能,然后将模型用于无人机航拍排污口图像的识别,并输出识别结果。
本实例中涉及的排污口航拍图像训练集和测试集统计表
表1河流排污口航拍图像数据集统计表
为了对排污口目标检测结果进行评估,本发明采用精度(Precision)和召回率(Rcall)指标,其计算公式如下:
式中TP(True Positive)表示正确检测的排污口数量,FP(False Positive)表示错误检测排污口数量,FN(False Negative)表示未检测到的排污口数量。
根据精度和召回率,可以得到P-R曲线,其下方面积即为AP(Average Precision),每种类型排污口都对应得到一个AP值,进而,可以计算两种类型排污口目标检测的平均精度mAP(mean Average Precision),衡量本发明检测算法的精度。
图2为排污口的检测图,本发明与传统的Two Stage算法中的Faster RCNN的比较,结果如表2所示。
表2本发明方法与传统Faster RCNN方法检测结果比较
从表中可以看出,较传统的Faster RCNN,本发明提出的方法在排污坝、排污管检测精度分别提高了20.74%和14.2%,平均精度提高了19.6%,本发明提出的方法具有一定的优势。
实施例二
本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例子一中的具体步骤。
实施例三
本实施例的目的是提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行上述实施例子一中的具体步骤。
实施例四
本实施例的目的是提供基于YOLO V5的无人机航拍图像河流排污口检测系统,包括:
数据集建立及处理模块,用于建立无人机航拍河流排污口图像数据集;对建立的数据集进行预处理,建立训练集和测试集;
排污口图像模块,用于构建YOLO V5模型,使用训练集训练YOLO V5模型,将输入网络的图像大小修改为最后切割的图像大小,使用测试集测试训练好的YOLO V5模型的性能,然后将模型用于无人机航拍排污口图像的识别。
以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本公开中的任一方法。
本领域技术人员应该明白,上述本公开的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本公开不限制于任何特定的硬件和软件的结合。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
- 基于YOLO V5的无人机航拍图像河流排污口检测方法及系统
- 一种基于高清图像的河流排污口检测方法及系统