本发明涉及水下目标检测,特别指一种基于yolo框架的水下目标检测方法及系统。
背景技术:
1、目标检测也叫目标提取,是一种基于目标几何和统计特征的图像分割技术,它将目标的分割和识别合二为一。虽然现在已有一些目标检测模型,但这些目标检测模型多为针对陆地上的目标的检测,且运行该目标检测模型需要占用较多的计算资源;而针对水下目标的检测场景,由于水下环境复杂,成像条件差强人意,若直接应用传统的目标检测模型将导致目标检测精度低下,且运行于水下的探测设备往往算力(计算资源/运行资源)有限,难以满足目标检测模型实时检测需求。
2、因此,如何提供一种基于yolo框架的水下目标检测方法及系统,实现提升水下目标检测的精度以及实时性,成为一个亟待解决的技术问题。
技术实现思路
1、本发明要解决的技术问题,在于提供一种基于yolo框架的水下目标检测方法及系统,实现提升水下目标检测的精度以及实时性。
2、第一方面,本发明提供了一种基于yolo框架的水下目标检测方法,包括如下步骤:
3、步骤s1、获取大量的水下图像,对各所述水下图像进行预处理以及标注后,基于各所述水下图像构建图像数据集;
4、步骤s2、将所述图像数据集划分为训练集和验证集并存储至指定的文件路径,基于所述训练集和验证集分别创建对应的第一yaml文件和第二yaml文件;
5、步骤s3、基于yolo框架创建一水下目标检测模型,通过所述第一yaml文件读取训练集对水下目标检测模型进行训练,通过所述第二yaml文件读取验证集对水下目标检测模型进行验证;
6、步骤s4、将待检测图像输入训练后的所述水下目标检测模型进行目标检测,输出目标标注图像。
7、进一步的,所述步骤s1具体为:
8、获取大量的水下图像,对各所述水下图像进行剪裁以统一尺寸后,再对各所述水下图像进行至少包括平移、旋转以及形变的预处理,以扩充所述水下图像的样本量,通过labe lme脚本使用矩形标注框对各所述水下图像中的水下目标进行标注,通过txt标签文件记录所述矩形标注框的顶点坐标以及水下目标的种类;
9、基于标注后的各所述水下图像以及对应的txt标签文件构建图像数据集。
10、进一步的,所述步骤s2具体为:
11、将所述图像数据集按7:3的比例划分为训练集和验证集并存储至指定的文件路径,基于所述训练集和验证集分别创建对应的第一yaml文件和第二yaml文件;
12、所述第一yaml文件用于从文件路径读取训练集,并指明所述训练集中包含的水下目标的种类数量以及种类名称;
13、所述第二yaml文件用于从文件路径读取验证集,并指明所述验证集中包含的水下目标的种类数量以及种类名称。
14、进一步的,所述步骤s3具体为:
15、基于yolo框架创建一端到端的水下目标检测模型,通过所述第一yaml文件读取训练集对水下目标检测模型进行训练,训练过程中不断优化所述水下目标检测模型的损失函数,直至训练收敛;
16、通过所述第二yaml文件读取验证集对水下目标检测模型进行验证,判断所述水下目标检测模型的检测精度是否满足预设的检测标准,若是,则结束训练;若否,则扩充所述训练集继续训练。
17、进一步的,所述步骤s4具体为:
18、将待检测图像输入训练后的所述水下目标检测模型进行目标检测,输出携带矩形标注框以及txt标签文件的目标标注图像,记录所述待检测图像检测过程中的检测用时以及水下目标检测模型的模型参数。
19、第二方面,本发明提供了一种基于yolo框架的水下目标检测系统,包括如下模块:
20、图像数据集构建模块,用于获取大量的水下图像,对各所述水下图像进行预处理以及标注后,基于各所述水下图像构建图像数据集;
21、图像数据集划分模块,用于将所述图像数据集划分为训练集和验证集并存储至指定的文件路径,基于所述训练集和验证集分别创建对应的第一yaml文件和第二yaml文件;
22、水下目标检测模型训练模块,用于基于yolo框架创建一水下目标检测模型,通过所述第一yaml文件读取训练集对水下目标检测模型进行训练,通过所述第二yaml文件读取验证集对水下目标检测模型进行验证;
23、目标检测模块,用于将待检测图像输入训练后的所述水下目标检测模型进行目标检测,输出目标标注图像。
24、进一步的,所述图像数据集构建模块具体用于:
25、获取大量的水下图像,对各所述水下图像进行剪裁以统一尺寸后,再对各所述水下图像进行至少包括平移、旋转以及形变的预处理,以扩充所述水下图像的样本量,通过labe lme脚本使用矩形标注框对各所述水下图像中的水下目标进行标注,通过txt标签文件记录所述矩形标注框的顶点坐标以及水下目标的种类;
26、基于标注后的各所述水下图像以及对应的txt标签文件构建图像数据集。
27、进一步的,所述图像数据集划分模块具体用于:
28、将所述图像数据集按7:3的比例划分为训练集和验证集并存储至指定的文件路径,基于所述训练集和验证集分别创建对应的第一yaml文件和第二yaml文件;
29、所述第一yam l文件用于从文件路径读取训练集,并指明所述训练集中包含的水下目标的种类数量以及种类名称;
30、所述第二yam l文件用于从文件路径读取验证集,并指明所述验证集中包含的水下目标的种类数量以及种类名称。
31、进一步的,所述水下目标检测模型训练模块具体用于:
32、基于yolo框架创建一端到端的水下目标检测模型,通过所述第一yaml文件读取训练集对水下目标检测模型进行训练,训练过程中不断优化所述水下目标检测模型的损失函数,直至训练收敛;
33、通过所述第二yam l文件读取验证集对水下目标检测模型进行验证,判断所述水下目标检测模型的检测精度是否满足预设的检测标准,若是,则结束训练;若否,则扩充所述训练集继续训练。
34、进一步的,所述目标检测模块具体用于:
35、将待检测图像输入训练后的所述水下目标检测模型进行目标检测,输出携带矩形标注框以及txt标签文件的目标标注图像,记录所述待检测图像检测过程中的检测用时以及水下目标检测模型的模型参数。
36、本发明的优点在于:
37、1、通过获取大量的水下图像,对各水下图像进行预处理以及标注后,基于各水下图像构建图像数据集,接着将图像数据集划分为训练集和验证集并存储至指定的文件路径,基于训练集和验证集分别创建对应的第一yaml文件和第二yaml文件;接着通过第一yaml文件读取训练集对基于yolo框架创建的水下目标检测模型进行训练,通过第二yaml文件读取验证集对水下目标检测模型进行验证,最后将待检测图像输入训练后的水下目标检测模型进行目标检测,输出目标标注图像;即通过预处理以及标注后的水下图像对水下目标检测模型进行训练,且训练过程中不断优化水下目标检测模型的损失函数,有效提升水下目标检测模型对水下目标的识别准确性;而水下目标检测模型是基于yolo框架创建的端到端的模型,具有精简的网络结构,使其能更好的部署和运行在算力有限的探测设备上,减轻水下目标检测是的计算量,最终极大的提升了水下目标检测的精度以及实时性。
38、2、通过对各水下图像进行剪裁以统一尺寸,便于后续水下目标检测模型的训练,通过对水下图像进行平移、旋转以及形变的预处理扩充训练的样本量,有效提升水下目标检测模型的泛化能力。
39、3、通过创建用于从文件路径读取训练集,并指明训练集中包含的水下目标的种类数量以及种类名称的第一yaml文件,创建用于从文件路径读取验证集,并指明验证集中包含的水下目标的种类数量以及种类名称的第二yaml文件,后续通过第一yaml文件和第二yaml文件可快速获取训练集和验证集以对水下目标检测模型进行训练和验证,极大的提升了水下目标检测模型的训练速度。
40、4、通过记录待检测图像检测过程中的检测用时以及水下目标检测模型的模型参数,便于后续对水下目标检测模型进行进一步优化,进而持续提升水下目标检测的精度。
1.一种基于yolo框架的水下目标检测方法,其特征在于:包括如下步骤:
2.如权利要求1所述的一种基于yolo框架的水下目标检测方法,其特征在于:所述步骤s1具体为:
3.如权利要求1所述的一种基于yolo框架的水下目标检测方法,其特征在于:所述步骤s2具体为:
4.如权利要求1所述的一种基于yolo框架的水下目标检测方法,其特征在于:所述步骤s3具体为:
5.如权利要求1所述的一种基于yolo框架的水下目标检测方法,其特征在于:所述步骤s4具体为:
6.一种基于yolo框架的水下目标检测系统,其特征在于:包括如下模块:
7.如权利要求6所述的一种基于yolo框架的水下目标检测系统,其特征在于:所述图像数据集构建模块具体用于:
8.如权利要求6所述的一种基于yolo框架的水下目标检测系统,其特征在于:所述图像数据集划分模块具体用于:
9.如权利要求6所述的一种基于yolo框架的水下目标检测系统,其特征在于:所述水下目标检测模型训练模块具体用于:
10.如权利要求6所述的一种基于yolo框架的水下目标检测系统,其特征在于:所述目标检测模块具体用于: