船舶是海上交通运输的载体,精准识别船舶目标,对于海洋监管具有重要意义。港口环境复杂,提高船舶识别精度[1],是保障港口平稳运行的基础。目标识别是计算机视觉领域的研究内容,港口停泊船舶识别是海船调度的重要部分。港口船舶识别时,利用摄像头采集港口图像,港口范围较大[2],摄像头采集的港口图像具有数据量大的特点。海量的港口图像数据,为港口停泊船舶的识别增加了难度。如何处理海量港口大数据,提升港口停泊船舶识别的实时性[3],是目标识别领域的研究难点。云计算技术是常见的大数据分析技术,利用云计算框架,处理海量港口大数据,通过云计算技术具有的分布式处理性能,提升海量数据的处理性能。
目前已经有众多学者针对船舶目标识别进行研究。孙嘉赤等[4]将级联卷积神经网络应用于船舶目标识别中,该方法构建了近岸船舶识别框架,选取级联卷积神经网络粗定位船舶位置,利用斜框旋转回归器,依据极大值抑制方法,获取最终船舶目标识别结果。该方法虽然可以识别船舶,但是存在识别精度低的缺陷,对于部分复杂环境下的船舶无法识别。关欣等[5]利用低秩双线性池化注意力网络识别船舶目标,该方法针对多模态船舶图像融合质量较低的问题,利用所构建网络降低识别网络规模,提升识别效果。该方法虽然可以利用融合后的图像提升识别精度,但是存在运算过程过于复杂,影响识别实时性的问题。针对以上船舶识别中存在的问题,研究基于大数据分析的港口停泊船舶识别方法。利用大数据分析技术识别港口停泊船舶,提升港口停泊船舶的识别性能。
1 港口停泊船舶识别方法 1.1 基于Hadoop的港口停泊船舶识别选取Hadoop集群处理海量港口图像,识别港口停泊船舶。Hadoop集群是一种分布式处理的云计算框架,适用于海量大数据运算中。基于Hadoop的港口停泊船舶识别的总体结构图如图1所示。Hadoop采用主从框架进行港口停泊船舶识别的分布式计算和存储,采用Google的MapReduce算法,将提交的港口停泊船舶识别任务划分为多个子任务,将各个子任务划分至Hadoop集群的各个节点中,进行分布式的并行计算。Hadoop中设置了分布式文件系统,管理不同节点处理子任务过程中的数据存储。用户通过分布式文件系统,将Hadoop转移到所需的设备中,构建Hadoop集群。用户无需关注底层,即可实现应用开发。便于用户管理、计算和存储海量资源,提升处理海量港口图像大数据的实时性需求。
![]() |
图 1 Hadoop的港口停泊舰船识别结构图 Fig. 1 Structure diagram of port berth ship identification in Hadoop |
Hadoop技术包含多个后台程序,利用负责不同功能的后台程序,组成完整的Hadoop体系。利用Hadoop体系中的数据处理模块中的数据分析平台,运行图像分割和图像识别算法,输出港口停泊船舶识别结果。Hadoop体系中的各部分运行程序如下:
1)NameNode是分布式文件系统中的主要程序。利用NameNode将港口图像数据划分为数据库,将数据传送至节点中,管理I/O和内存。NameNode所在的服务器,并不执行计算机任务,不存储数据库内容,具有较强的即时响应性能。通过以上设置,保障Hadoop集群在服务器无法响应时,保持正常运转状态。
1)DataNode属于后台程序,在Hadoop集群的从服务器上运行。NameNode分配的数据块,利用DataNode存储至本地文件系统中。客户端运行港口停泊船舶识别应用时,利用NameNode提示客户端的应用,数据读写的DataNode利用客户端应用,实施DataNode的通信与读写。
3)分布式文件系统的状态利用Secondary NameNode监控,该程序属于后台程序,运行于Hadoop集群的主服务器中,仅具有通信功能,不具有数据接收功能。利用该程序定期保存分布式文件系统中的元数据,同时具有备用NameNode的功能。
4)利用JobTracker程序关联Hadoop集群与应用程序。用户在Hadoop集群上,提交港口停泊船舶识别任务后,利用该程序决定文件处理顺序,将任务分配至不同节点中。完成任务分配后,需要监控任务实施情况。任务执行失败后,利用该程序将任务划分至其他节点,继续执行该任务。
5)在Hadoop集群中的Slaver节点上,运行TaskTracker程序。该程序与JobTracker程序具有较高的交互性能,利用JobTracker组织MapReduce的工作。利用每个TaskTracker程序,分别管理各自所需执行的任务。
1.2 基于Top-hat分水岭分割的港口图像分割利用Hadoop体系的数据分析平台,运行Top-hat分水岭分割方法分割港口图像。港口背景复杂,船舶目标与背景的颜色纹理差别较小,采用分水岭分割方法分割,容易出现过分割情况。选取Top-hat方法对分水岭分割算法进行优化,解决过分割的问题。分水岭分割方法指将港口图像中的像素灰度级,由高至低排序,再从低至高进行淹没处理,选取先进先出的队列结构,标记图像中每个局部极小值,确定港口图像的分水岭位置。计算各分水岭位置的梯度函数,依据港口图像实际情况,设置阈值,实现图像分割。港口图像分割的梯度函数表达式如下:
$ \begin{split} G\left( {x,y} \right) =& {\rm{grad}}\left( {f\left( {x,y} \right)} \right) = \\ & {\left\{ {{{\left[ {f\left( {x,y} \right) - f\left( {x - 1,y} \right)} \right]}^2} + {{\left[ {f\left( {x,y} \right) - f\left( {x,y - 1} \right)} \right]}^2}} \right\}^{\frac{1}{2}}} \text{,} \end{split} $ | (1) |
式中,
将Top-hat变换引入分水岭分割算法中,选取结构元素处理港口图像目标中的船舶目标点与背景点之间的灰度差,提升港口图像对比度,改善图像过分割情况,提取港口停泊船舶轮廓,完成港口图像分离。为了避免过分割情况,阈值化处理港口梯度图像的表达式如下:
$ G\left( {x,y} \right) = \max \left( {{\rm{grad}}\left( {f\left( {x,y} \right)} \right),T} \right)\text{,} $ | (2) |
式中,
通过所设置的阈值,改善港口图像的过分割情况,获取港口图像的适量区域,升序排列处理该区域内的边缘点灰度。从低至高淹没图像,获取精准的图像分水岭,利用Top-hat对港口分水岭图像进行开运算处理。选取结构元素
$ G \circ b = \left( {G\Theta b} \right) \oplus b\text{。} $ | (3) |
式中,
通过式(3)的开运算处理,获取光滑的港口二值图像,完成港口图像分割。
1.3 卷积神经网络的港口停泊船舶识别将分割后的港口图像,输入卷积神经网络中,利用卷积神经网络检测港口停泊船舶。卷积神经网络具有较高的特征提取性能,广泛应用于图像处理中。卷积神经网络基于神经网络方法而来,神经网络输出层的计算公式如下:
$ X_j^l = f\left( {\sum\limits_{i = 1}^d {X_i^{l - 1}} w_{ij}^l + b_j^l} \right)\text{。} $ | (4) |
式中:
卷积神经网络通过池化操作,降低网络中的神经元数量,提升网络的平移不变性,稳健性高。卷积神经网络设置了权值共享结构,降低模型运算参数,提升模型的泛化性。将分割后的港口图像输入卷积神经网络,利用卷积神经网络识别港口停泊船舶的结构图如图2所示。通过图2可以看出,卷积神经网络主要包括输入层、卷积层、下采样层全连接层以及softmax分类器层。卷积神经网络中的子采样层又称为池化层。网络的池化函数选取相邻区域的总体统计特征,取代相应位置的输出。输入的港口图像存在平移情况时,通过池化处理实现近似不变,提升网络识别效率。
![]() |
图 2 卷积神经网络结构图 Fig. 2 Convolutional neural network structure diagram |
卷积神经网络输出层的表达式如下:
$ X_j^l = f\left[ {B_j^lC\left( {X_j^{l - 1}} \right) + b_j^l} \right]\text{。} $ | (5) |
式中:
为了验证所研究基于大数据分析的港口停泊船舶的识别性能,选取某海事局监管的某港口的监控图像作为实验对象。该港口共设置35个摄像头,24小时监控港口停泊船舶,港口图像呈现典型的大数据特征。选取某时段共31天的港口监控数据构建港口图像数据集,数据集大小为2.6TB,数据集的数据量过大,采用普通的图像处理技术容易出现船舶漏识别情况。本文方法采用大数据分析技术中的Hadoop体系,利用分布式运算技术并行处理海量数据,提升船舶识别性能。
随机选取港口图像数据集中的一幅图像,采用主观方式验证本文方法的船舶识别性能。原始港口图像如图3所示。
![]() |
图 3 原始港口图像 Fig. 3 Original port image |
采用本文方法对图3的原始港口图像分割处理,港口图像分割结果如图4所示。由图4可知,采用本文方法可以实现港口图像数据的有效分割。采用本文方法对港口图像进行分割后,将原始港口图像转化为二值数据,为港口图像中的停泊船舶识别提供可靠的依据。
![]() |
图 4 港口图像分割结果 Fig. 4 Port image segmentation results |
采用本文方法,在Hadoop体系中运行卷积神经网络算法,识别港口停泊船舶结果如图5所示。由图5可知,本文方法可以在Hadoop体系中运行卷积神经网络算法,实现港口停泊船舶的有效识别。进一步分析图5的识别结果,本文方法对于港口图像中的全部目标,均实现了精准的识别。
![]() |
图 5 港口停泊船舶识别结果 Fig. 5 Results of berth ship identification in port |
为了进一步验证本文方法的港口停泊舰船识别性能,采用定量测试方法,测试采用本文方法识别港口停泊的不同类型舰船的识别结果,如表1所示。由表1可以看出,采用本文方法可以利用大数据分析技术,识别港口停泊船舶。本文方法充分利用大数据分析技术,采用分布式计算方法,并行处理海量港口图像,识别港口图像中停泊的船舶。采用本文方法识别港口停泊船舶,平均每帧港口图像的识别时间低于40 ms。采用本文方法不仅可以有效识别港口停泊船舶,同时具有较高的识别实时性,在短时间内即可快速处理海量港口图像,适用于港口管理等实际应用中。
![]() |
表 1 港口停泊船舶量化识别结果 Tab.1 Quantitative recognition results of berth ships in port |
港口图像具有背景复杂、数据量大的特点,需要高效的数据处理方法,提升图像处理效率。选取大数据分析技术中的Hadoop云计算框架,采用分布式处理架构处理港口图像,利用卷积神经网络输出港口停泊舰船识别结果。通过实验验证表明,该方法可以高效处理海量港口图像,精准识别港口图像中的停泊舰船目标,提升舰船识别效率。所研究方法不仅具有较高的识别性能,并且具有较高的识别实时性,适用于海量港口图像处理中。
[1] |
赵龙飞, 姜晓轶, 孙苗, 等. 面向海运统计的AIS大数据挖掘分析研究[J]. 海洋科学, 2021, 45(12): 55-64. ZHAO Longfei, JIANG Xiaoyi, SUN Miao, et al. AIS big data mining for maritime statistics[J]. Marine Sciences, 2021, 45(12): 55-64. |
[2] |
付哲泉, 李尚生, 李相平, 等. 基于高效可扩展改进残差结构神经网络的舰船目标识别技术[J]. 电子与信息学报, 2020, 42(12): 3005-3012. |
[3] |
马啸, 邵利民, 卢惠民, 等. 一种基于视觉感知的舰船目标智能化识别方法[J]. 电讯技术, 2020, 60(10): 1133-1141. MA Xiao, SHAO Limin, LU Huimin, et al. An Intelligent Ship Targets Recognition Method Based on Visual Perception[J]. Telecommunication Engineering, 2020, 60(10): 1133-1141. |
[4] |
孙嘉赤, 邹焕新, 邓志鹏, 等. 基于级联卷积神经网络的港口多方向舰船检测与分类[J]. 系统工程与电子技术, 2020, 42(9): 1903-1910. |
[5] |
关欣, 国佳恩, 衣晓. 基于低秩双线性池化注意力网络的舰船目标识别[J]. 系统工程与电子技术, 2023, 45(5): 1305-1314. GUAN Xin, GUO Jiaen, YI Xiao. Ship target recognition based on low rank bilinear pooling attention network[J]. Systems Engineering and Electronics, 2023, 45(5): 1305-1314. |