[0027] 下面结合具体实施例对本发明做进一步的分析。
[0028] 本实验将一组采集的舰船目标图像划分为训练集和测试集。如图1所示,在基于YOLO V3的旋转目标检测任务中的具体步骤如下:
[0029] 步骤(1)、训练集数据预处理。
[0030] 利用图像标注工具对图像中待检测的目标进行标注,获取到图像中目标的中心点坐标(x,y)、目标的宽w和高h,目标的角度信息angle。根据设置的切割步长step和目标的高度h,确定目标切割为子目标的个数n;根据目标的中心点坐标和目标的宽及高计算出目标的四个顶点的坐标(x1,y1),(x2,y2),(x3,y3),(x4,y4);根据子目标的个数n得到相邻子目标的间隔(dcx,dcy);根据间隔大小和顶点位置得到第i个子目标的中心点坐标(xi,yi),其中0<i<n;根据子目标的中心点坐标,并以目标的宽度w作为子目标的宽度来确定切割的子目标的位置信息;根据子目标的位置信息对目标进行切割,获取密集子目标。
[0031] 其中:n=h/step+1
[0032] h_vec=[h·cos(angle)/2,h·sin(angle)/2]
[0033] w_vec=[w/2·cos(3π/2+angle),w/2·sin(3π/2+angle)]
[0034]
[0035] dcx=(x3‑x1)/n
[0036] dcy=(y3‑y1)/n
[0037] xi=x1+dcx·(0.5+i)
[0038] yi=x1+dcx·(0.5+i)
[0039] 步骤(2)、使用YOLO V3算法对预处理后的训练集进行训练。
[0040] 根据密集子目标的标注框的高度和宽度,利用K‑近邻聚类方法对子目标的标注框进行聚类后分为9类,获取9类框的大小,以此来设置YOLO V3锚点框参数。提取密集子目标的中心点信息、高度、宽度,放入YOLO V3进行训练,训练直到损失函数不再降低,获取权重文件。
[0041] 步骤(3)、使用YOLO V3对测试集进行预测。
[0042] 利用步骤(2)中得到的权重文件,对测试集图像进行测试。对于每一张图片进行预测后,获取所有预测的子目标的中心点坐标(xc*,yc*),高度h*,宽度w*。
[0043] 步骤(4)、预测子目标数据的后处理。
[0044] 根据步骤(3)中每一幅图片中所有预测的子目标的中心点进行多项式拟合,得到中心点坐标的函数关系,由函数获取到拟合直线的角度angle_θ;根据所有预测的子目标的中心点坐标取最大坐标(xc*max,yc*max)最小坐标(xc*min,yc*min)和的平均值为预测目标的中心点坐标(xc,yc);根据所有预测的子目标的中心点坐标取最大坐标(xc*max,yc*max)最小坐标(xc*min,yc*min)利用勾股定理计算出预测目标的高度;根据获取到的所有预测的子目标的宽度w*的平均值w*mean,利用角度angle_θ,并根据三角函数求出目标宽度wc。由此获得预测目标的中心点(xc,yc),高度hc,宽度wc,角度angle_θ信息,根据信息在预测图片中画出预测框完成预测。
[0045] 其中:xc=(xc*max+xc*min)/2
[0046] yc=(yc*max+yc*min)/2
[0047]
[0048] wc=max(w*meangcos(angle_θ),w*meangsin(angle_θ))。
[0049] 上述实施例并非是对于本发明的限制,本发明并非仅限于上述实施例,只要符合本发明要求,均属于本发明的保护范围。