1.一种水面无人船实时目标检测计算方法,其特征在于该方法包括以下步骤:步骤1:获取基础数据,其中包括水面物体的类别、数量、物体的位置描述和物体状态描述;
步骤2:数据清洗以及样本预处理;
步骤3:设计训练SSD网络;
①对VGG网络进行一部分删减,主干网络每一层统一修改为原来的二分之一;主干网络中去掉卷积3,4,5层的中间层,去掉最后一层的全连接层;
然后利用处理后的SSD网络计算目标的位置,类别和置信度,其中目标的位置指的是目标物体框在图片中的位置,主要有四个参数x,y,w,h,分别表示目标物体框的左上角坐标,以及物体框的高度和宽度;
②根据标注信息设置不同提取框的特征层的aspect_ratio;
③生成用于训练的lmdb格式;
④设置总体的损失函数;
⑤送入样本进行训练,使用Caffe-SSD进行训练,得到训练模型;
⑥将测试图片送入训练好的模型,通过非极大值抑制算法得到物体的位置,类别和置信度;
步骤4:设计训练Faster-RCNN网络,采用Faster-RCNN网络得到目标物体框的位置,类别和置信度;
步骤5:融合得到目标准确位置
采用基于轮廓的卡尔曼滤波算法,对步骤3和步骤4输出的结果进行融合,得到更为准确的目标位置;具体是:采用SSD网络输出的结果作为预测值,Faster-RCNN网络输出的结果作为观测值;系统的状态表示为X=[lx,ly,rx,ry,Δlx,Δly,Δrx,Δry]:其中元素lx,ly,rx,ry分别表示预测框的左上角和右下角坐标;Δlx,Δly,Δrx,Δry为两帧图像之间像素点的移动值;
则系统状态方程表示为:
由于没有控制量,所以B=0,假设噪声为高斯白噪声,服从标准正态分布,则有;
X′(k)=AX(k-1)+W(k-1)其中A为状态转移矩阵,W(k-1)为输入噪声先验协方差表示为:
P′(k)=AP(k-1)A′+Q
当k=1时,P(0)设置为:
Q是系统过程的协方差,设置为:
接下来计算卡尔曼增益:
其中
H为状态到观测的转换矩阵
得到卡尔曼增益后,那么最优系统状态应为:X(k)=X′(k)+Kg(k)(Z(k)-HX′(k))其中z(k)是观测值
接下来更新X(k)的协方差,更新公式为:P(k)=(I-Kg(k)H)P′(k)通过卡尔曼滤波算法融合了两种结果,不断更新得到当前目标位置的准确信息,即目标检测框的x,y,w,h。
2.根据权利要求1所述的一种水面无人船实时目标检测计算方法,其特征在于:步骤2中采用的数据是开源的Singapore Maritime Dataset,从中选取了100000张图片,其中
60000张图片用来做训练集,30000张图片用来做验证集,剩下的1000张图片用于做测试集,所有的图片统一调整到300*300的大小,并且按照VOC数据的格式生成标注文件。
3.根据权利要求1所述的一种水面无人船实时目标检测计算方法,其特征在于:所述的损失函数表达式为:其中,c,l,g,x分别表示属于某个类别的概率,预测框,真实框,以及预测框与真实框匹配的标记;N表示与标注框匹配的数量;Lloc(x,l,g)为定位损失函数;Lconf(x,c)表示分类损失函数,α表示权重。