姜 科,王忠康
(杭州应用声学研究所,浙江 杭州 310018)
近年来船舶行业不断发展、海上船舶数量不断增加,船舶的自动化程度越来越高、航行条件也相对改善,但是在水面能见度低、渔船船型小不易被发现等情况下仍然容易发生碰撞事故。成像声纳系统通常以前视模式用于检测和躲避海面和海底的障碍物。然而,很多的避障声纳系统仅对航行前方的环境进行成像,并不对障碍物进行检测、识别。因此,通过成像声纳图像自动检测与跟踪海面障碍物对潜艇、AUV的安全浮出水面,港口监测等具有重要意义[1]。对进港船只进行观测时,在水面可见度低的情况下,光学观测并不适用,因此需要声学探测,并对潜在的危险进行预警,尤其是小型快速移动目标的检测和定位问题,传统的成像声纳更加关注的是水下目标的探测,少有针对水面移动目标进行自动检测定位,因此本文使用成像声纳对水面运动目标检测方法进行研究。
当前仅有少量公开文献针对港口监测的水面目标检测方法,而且这些方法主要应用于被动声纳的目标检测[2-3]。在对主动声纳系统探测上,有研究人员对气泡动力学和后向散射进行研究,并对舰船尾迹结构进行试验和分析,实现水面舰船的检测[4-5]。也有研究人员使用主动声纳的图像来实现自动船只的检测[6-7],这些方法主要适用于港口监测的静态配置,且只适用于单目标的检测。
文献[8]提出了一种针对水中线状目标的检测方法,可应用于多目标的检测,并与背景消减法、帧间差分法[9]、高斯建模法进行了实验对比,实验表明文献所提算法较传统方法,检测性能更优。但是该方法算法复杂程度较高,不利于目标检测的实时性实现。文献[10]把M序列调制信号作为成像声纳的发射信号,通过测量回波信号的多普勒信息,实现水下多个目标的快速检测与定位,该方法能有效地检测到多个运动目标,包括鱼群、干扰等,但是并未考虑水面运动目标的情形。文献[1]根据水面船只产生的尾流离船只越远其尾迹越大这一特点来确定船只所在位置,从而实现水面船只目标的检测与位置确定,但是不同的成像声纳尾迹检测能力不同,得到的声纳图像不一定具有上述特征,进而导致该算法失效。
本文在文献[10]中水面目标快速提取方法基础上考虑尾迹影响,兼顾文献[1]中尾迹形状特征不具有共性,使得位置估计值远远偏离真实位置的问题,提出了基于成像声纳的水面小型移动目标检测方法。
M序列模糊度图类似于图钉状,具有良好的抗混响能力和时频分辨率,本文将M序列调制信号作为成像声纳的发射信号,并采用脉冲对法[11]实现目标相对于成像声纳的径向速度估计;通过估计得到的径向速度信息初步判断被检测目标的运动状态。
水面目标在快速移动的过程中,回波信号中带有多普勒频移信息,通过估计回波信号的频率来判断被检测目标是否为运动目标。另外由于螺旋桨高速的旋转,导致船只尾部产生大量的气泡,船只在移动的过程中会产生较长的尾迹如图1中方框标记部分所示,从图中可以看出,目标左侧能量强度高,右侧强度低(尾迹),因此我们可以利用上述尾迹特征,减小尾迹产生的定位误差。
通过观察图1分析可得水面小船行驶过后,水面会产生明显的尾迹。通过能量检测目标,尾迹对应的像素点也会被检测为目标的一部分,进而导致估计目标位置出现严重的偏差。由于尾迹产生的回波强度相比于运动目标回波强度较弱,且包含尾迹的目标像素点集在平面中的跨度较大,根据上述两个特征对此类运动目标进行单独处理,通过剔除部分尾迹像素点以减小定位误差。
图1 水面运动目标产生的尾迹Fig.1 The wake of a moving target on the water surface
定义目标像素点集合的跨度信息如图2所示。假设图中每一个方框表示一个像素点,其中黑色填充和灰色填充的像素点为一个目标的像素点集,记为{(xi,yi)|i∈1,2,…,M},其中像素点A为目标最左侧的像素点,即min(xi),i∈1,2,…,M;B为y值最小的像素点,即min(yi),i∈1,2,…,M;C点即是x值最大(max(xi),i∈1,2,…,M),也是y值最大的像素点(max(yi),i∈1,2,…,M),于是得到:
图2 目标跨度定义Fig.2 Define of the target span
x方向上的跨度L1=max(xi)-min(xi),i∈1,2,…,M;
y方向上的跨度L2=max(yi)-min(yi),i∈1,2,…,M。
脉冲对法对速度估计的基本思路是对信号做自相关处理,通过估计信号的相位信息,进而得到信号的频率,最后计算出多普勒速度。下面对脉冲对方法进行简要介绍。
假设目标回波信号经过基带解调和低通滤波之后得到z(n),该信号由一个多普勒频移信号和加性复高斯白噪声序列{θ1(n)+jθ2(n)}组成,即:
z(n)={A(n)+jB(n)}ej2πf0n+{θ1(n)+jθ2(n)}
(1)
式(1)中,f0是信号的频率,n表示采样点的索引值,{A(n)+jB(n)}表示信号的幅度,此处假设采样频率为1 Hz。A(n)、B(n)、θ1(n)和θ2(n)都是均值为零、相互独立、不相关的高斯序列,且噪声序列的方差为σ2。PP法,通过滞后m个样本对N个样本数据分段,对频率估计的计算方法如式(2)所示:
(2)
式(2)中,Sm是复观测数据z(n)延迟m个采样点后的自相关函数。
(3)
令w(n)=1通过多普勒频率和速度之间的关系:
fd=2vfc/(c-v)
(4)
(5)
雷达信号处理中二维恒虚警检测通常为距离和多普勒维,但是在本研究中,二维恒虚警为距离和方位维。如图3所示,本文使用十字形窗进行恒虚警检测,在两个方向分别做一次一维恒虚警检测,然后把两次恒虚警检测的结果做逻辑与操作,即只有当两个方向上都被检测到的单元才能被判定为目标像素。其中距离维上使用OS-CFAR检测,在方位维做CA-CFAR检测。
图3 十字型参考窗示意图Fig.3 Cross reference window
本文将成像声纳图像做恒虚警检测,获取图像中可能是目标的像素点,通过聚类分析[12]将检测到的目标像素点进行聚类,把每一个聚类当做是一个目标,在此基础上融合目标回波的多普勒信息,以及每一个聚类中像素点的扩跨度信息,提取出水面快速移动的目标。水面运动目标具体检测步骤如下:
步骤1 用常规波束形成算法对阵元接收到的信号分段作频域波束形成,然后再恢复到时域波束。
步骤2 使用上述二维恒虚警检测算法,对波束形成能量求和后的数据做处理,检测出可能是目标像素点,而且对成像视野中的目标个数并不确定,因此使用聚类分析法(本文采用dbscan算法)对检测到的目标像素进行聚类的同时,也实现了目标个数的估计,每个聚类表示一个目标。
步骤3 根据步骤2检测到含有目标像素点,然后找到步骤1中对应位置波束形成后的时域波束数据,使用脉冲对法对波束数据作速度估计,计算得到每个目标像素点对应的速度。
步骤4 设定一个速度阈值,若某一目标区域计算得到的速度值均值大于阈值,则认为该区域检测到的目标为动目标。
步骤5 对每个聚类、检测后的运动目标,分别计算其x方向上和y方向上的跨度L1和L2,当其中任意一维跨度超出设定的阈值,则判定该运动目标为水面移动目标。
步骤6 对于检测的到水面运动目标,目标像素点按照能量强度进行从大到小排序,选取其中能量值排名前15%的像素点,若取得像素点的个数为N,每个像素点对应的坐标为(xj,yj),j=1,2,…,N。假设目标的等效坐标中心为(x0,y0),建立目标函数f(x0,y0),该函数的意义是计算(x0,y0)的坐标点到各个目标像素点对应坐标之间的距离之和,使得f(x0,y0)最小时,对应的坐标作为该目标的等效中心点。其数学表达式如下:
(6)
上述目标函数的计算可以使用标准粒子群优化算法来实现,此时获取的目标的位置信息消除了部分尾迹的影响,减少了水面移动目标定位误差。
步骤6中所述的标准粒子群优化算法,通过产生一群随机的粒子,每个粒子包含位置信息和速度信息,通过迭代计算找到目标函数的最优解。在每一次的迭代中,粒子通过跟踪两个“极值”p和g来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置:
vi=vi+c1×rand()×(pi-zi)+
c2×rand()×(gi-zi)
(7)
zi=zi+vi
(8)
式(7)、式(8)中,i=1,2,…,M,M表示粒子个数;vi表示粒子的速度;rand()表示介于(0~1)之间的随机数;zi表示粒子的当前位置;c1、c2表示学习因子;p和g分别表示粒子群的局部和全局最优位置;设定|vi|≤Vmax。
实际使用时,设置粒子坐标值为对应二维坐标值zi=(xi,yi),算法的具体步骤如下:
1)初始化一群微粒(群体规模为M),包括随机位置和速度;
2)评价每个微粒的适应度;
3)对每个粒子,将其适应值与其经过的最优位置p作比较,如果较好,则将其作为当前的最优位置p;
4)对每个粒子,将其适应值与其经过的最优位置g作比较,如果较好,则将其作为当前的最优位置g;
5)根据式(7)、式(8)更新每个粒子速度和位置;
6)未达到终止条件则转第2)步。
迭代终止条件根据具体问题一般选为最大迭代次数G或粒子群迄今为止搜索到的最优位置满足预定最小适应阈值。
由于成像声纳的分辨率较低,每一帧图像的像素点数目不多,对于单个目标的像素点总数也并不会很高,设置粒子群的粒子个数为25,因此使用标准的粒子群优化算法并不会消耗大量的计算资源,满足实时性要求。
对2.1节所述步骤1至步骤4进行仿真验证。假设声纳探测视野中同时存在运动目标和静目标,某一时刻运动目标相对于基阵的径向速为2 m/s,方位10°,距离80 m,静止目标的方位20°,距离112 m。声纳接收基阵阵元数64,阵元间距6 mm,角度扫描范围-60°~60°,预成波束数225个。在图4(a)中可观察到两个目标,恒虚警检测后提取出这两个目标,如图4(b)所示;另外观察图4(c)可以清晰地看到一个峰,该峰所在位置与图4(b)中左下角的目标相对应,由此利用径向速度信息可将动目标提取出来,检测结果如图4(d)所示。
图4 联合径向速度动目标检测仿真结果Fig.4 Simulation results of the moving target detection method combined radial velocity
试验时将成像声纳固定安装于静止的实验平台,等效于港口监测环境。实验现场,距离500 m范围内,水面可见目标,示意图如图5所示。
图5 实验现场环境示意图Fig.5 Schematic diagram of test site environment
使用成像声纳进行探测,波束开角120°范围内成像的结果如图6所示,图中用方框标记部分为水面可见目标,与实际观测相符合,其他亮点所对应的目标在水下,可能是暗礁也可能是鱼。
图6 单帧成像结果Fig.6 Single frame imaging
对任意一帧含有运动目标的数据执行步骤1至步骤4得到恒虚警检测结果。含有目标区域的局部放大图,如图7(a)所示;速度估计平面包含运动目标区域的局部放大图,如图7(b)所示。观察可得:恒虚警检测结果中运动目标区域,用圆圈标记,对应于速度平面中的区域可以看到一个亮点,该亮点表示其速度值比周围区域大很多,从而说明该速度大的区域对应左图中的目标是动目标。
图7 单帧恒虚警检测结果和速度平面Fig.7 One frame detected result by CFAR and velocity plane
对湖上实验采集的单水面运动目标数据进行处理,并使用圆圈标记出每一帧检测到的运动目标,检测结果如图8所示,实验结果表明,使用上述方法可以有效地将运动目标提取出来。观察多帧的成像结果发现,存在较多的虚警,包含了一部分水下的运动目标。本文所述的运动目标检测方法在仿真条件下,拥有较好的动目标检测效果,但是在使用实验数据验证时,受到实际环境的影响,会将静止目标检测为运动目标,而同一个目标检测结果受多种因素的干扰,检测结果并不稳定。
图8 单水面运动目标前4个步骤检测结果Fig.8 Test results of the first 4 steps of single-surface moving targets
根据本文的算法对水面移动船只进行检测与定位,若执行到步骤5,直接对同一聚类的像素点进行处理,计算等效坐标中心,得到结果如图9左侧图片所示。增加步骤6后的实验结果如图9右侧所示。图中方框所标记的是计算得到的等效坐标中心位置,对应的目标的坐标值如表1所示,表中目标1表示成像视野中位于左侧的目标,目标2表示位于右侧的目标。
图9 增加步骤6前后估计结果对比Fig.9 Comparison of estimation results before and after adding step 6
表1 图9中目标的坐标值Tab.1 The coordinates of the target in Fig.9
续表1
对比分析可得,对聚类后的像素点集不做任何处理,定位得到的坐标点远远偏离目标的实际位置;使用本文方法,检测定位的结果更加准确,更加接近目标实际位置。
本文提出了基于成像声纳的水面小型移动目标检测方法。该方法将成像声纳图像作恒虚警检测,获取图像中可能是目标的像素点,通过聚类分析将检测到的目标像素点进行聚类,每一个聚类是一个目标,在此基础上融合目标回波的多普勒信息,确定运动目标,通过仿真与实验数据验证该方法的有效性。最后计算每一个运动目标聚类中像素点的扩跨度信息,提取出水面快速移动的目标,只取回波能量高的部分像素点进行目标位置计算,从而提高成像声纳水面目标定位准确性。仿真实验结果表明,该方法通过取出部分尾迹像素点,大大减小了定位误差,提高了成像声纳水面目标定位准确性。
该算法在水纹环境良好,目标速度大于2 kn的条件下,适用于长度小于50 m的移动船只,比如小型游艇、皮划艇等小型目标的检测。另外该算法能够提高水面运动目标的定位精度,但缺少尾流大小、目标个数、多目标之间的运动状态对目标检测的影响实验数据,因此后续可进行有关试验,作更深入的研究,以提升该算法的性能。