发明内容
本发明要解决的技术问题是针对上述现有技术的不足,而提供一种基于摄像机标定及深度学习算法的船舶身份识别***,该基于摄像机标定及深度学习算法的船舶身份识别***集成CCTV和AIS基站等设备,采用基于摄像机标定的AIS融合算法,获取船舶的AIS静态信息,相较于传统海事监管,自动化程度高、抓拍准确且信息全面。对于未开AIS船舶,为识别其身份,采用深度学习算法提取船舶的VGG16特征,建立船舶特征数据库,按最小余弦距离检索出相似性最大的船舶,识别出船舶身份信息。
为解决上述技术问题,本发明采用的技术方案是:
一种基于摄像机标定及深度学习算法的船舶身份识别***,包括如下步骤。
步骤1,建立船舶检测器,包括如下步骤。
步骤11,确定YOLO模型的网络结构:YOLO模型网络结构包括输入层、隐含层和输出层。其中,输入层为视频帧图像,输出层为视频帧图像中是否含有船舶以及船舶在其中的像素位置。
步骤12,训练YOLO模型:首先设定YOLO模型中的batch size及网络输入大小。然后,收集CCTV视频数据,抽取视频帧中含有船舶的图像进行样本标注,形成数据集样本。采用数据集对步骤11确定的YOLO模型网络结构进行训练,确定连接权值。训练完成的YOLO模型,称为船舶检测器。
步骤2,船舶检测:采用步骤1建立的船舶检测器对实时视频流中的每一帧图像进行船舶检测,判断当前视频帧中是否含有船舶以及检测出船舶在视频帧图像中的像素位置。
步骤3,船舶跟踪:设计KCF多目标***,对步骤2中检测出的船舶目标进行跟踪。
步骤4,获取船舶AIS像素坐标:标定相机的内参和外参。接入AIS信号,获取船舶实时的经纬度及身份信息,通过四个坐标系的转换关系,并结合相机的内参和外参,将船舶的经纬度坐标转换为视频帧图像中的船舶AIS像素坐标。
步骤5,匹配船舶位置:将步骤4中获取的船舶AIS像素坐标和步骤3中检测出船舶在视频帧图像中的像素位置进行匹配。
步骤6,船舶身份识别:当步骤5中匹配成功时,则直接利用步骤4获取的船舶身份信息。当未匹配成功,则认为跟踪船舶是未开AIS船舶,利用深度学习方法识别船舶身份。采用深度学习识别船舶身份的方法,包括如下步骤:
步骤61、建立船舶特征数据集:采集各种类型船舶的全景图片,提取VGG16特征进行训练,建立船舶特征数据集。
步骤62,深度学习识别船舶身份:对于未开AIS船舶的图片,提取该船舶的VGG16特征,并采用最小余弦距离在步骤61中建立的船舶特征数据集中进行检索,得到未开AIS船舶的身份信息。
步骤61中,船舶特征数据集的建立方法,包括如下步骤:
步骤61A)、确定VGG16模型的网络结构:VGG16模型网络结构包括VGG16输入层、VGG16 隐含层和VGG16输出层。其中,VGG16输入层为船舶的全景图片,VGG16输出层为VGG16特征。 VGG16输入层、VGG16隐含层和VGG16输出层中各节点之间采用损失函数L进行连接,损失函数L的计算公式为:
式中,L为损失函数,yi为像素真实值,y′i为网络对该位置像素的预测值,n为像素总数。
步骤61B)、预训练VGG16模型:为了减少VGG模型网络的过拟合并增强数据量,人为采集12000张含有船舶的照片,随机裁剪成大小为224*224的图片,并随机对裁剪后的图像进行-20到20°的中心旋转和随机RGB色差调整,生成若干样本,作为VGG16输入层,将船舶身份制作成标签,对VGG16网络进行训练,网络收敛后即得到VGG16特征提取网络。
步骤5,匹配船舶位置时,匹配方法采用全局最优算法,也即按照全局距离E最小原则进行匹配:
式中(ui,vi)表示视频检测到船舶在图像中的坐标位置,(u′j,v′j)表示经纬度转换到图像坐标系的位置,dis表示欧式距离。N表示视频跟踪船舶数,M表示AIS转换到画面个数。
步骤3中,船舶跟踪时,先在CCTV视频画面中划定检测区,一旦在检测区中出现步骤2 检测出的船舶,即将检测框赋给KCF多目标***对该船舶进行目标跟踪,并判断是否为新目标。若为新目标,则分配一个新的KCF***对该目标框进行跟踪。若非新目标,则继续当前***跟踪的结果。
步骤3中,采用判断iou方法判断检测船舶是否为新目标,具体判断方法为:先计算交并比,当前一帧与当前帧目标检测的交并比大于0.3,则认为是非新目标,跟踪框位置为船舶当前时刻的位置。否则,则为新的船舶目标。
步骤3中,采用尺度池方法进行KCF多目标***的设计,对目标远近变化带来的跟踪框大小进行自适应调节。
步骤4中,计算从世界坐标系转图像坐标系时,引入径向和切向畸变矫正。
径向畸变矫正公式为:
u′=u(1+k1r2+k2r4+k3r6)
v′=v(1+k1r2+k2r4+k3r6)
式中,u′和v′为畸变矫正后的像素坐标,u和v分别为矫正前像素坐标,k1、k2和k3为径向畸变矫正系数,r是像素点与距离中心距离。
切向畸变矫正公式为:
u′=u+[2p1v+p2(r2+2u2)]
v′=v+[p1(r2+2v2)+2p2u]
式中,u′和v′为畸变矫正后的像素坐标,u和v分别为矫正前像素坐标,p1和p2为切向畸变矫正系数,r是像素点与距离中心距离。
步骤4中,图像坐标与相机坐标下的转换关系如下:
式中,xc、yc和zc是相机坐标系下的坐标,u、v是图像坐标系下的坐标,dx、dy分别是图像x、y方向上单位毫米像素个数,h是相机安装高度,θ是相机的俯仰角,u0和v0是图像中心点像素位置,f表示相机焦距。
本发明具有如下有益效果:采用摄像机标定技术将AIS的经纬度及静态信息映射到图像中,再和图像检测跟踪的结果融合,与传统船舶身份融合技术相比,船舶身份识别准确性大大提高且更加直观。另外,采用深度学习技术提取船舶的深度特征建立数据库,对未开AIS 船舶利用深度特征库进行检索,相较于传统特征检索,大大提高了检索成功率。
具体实施方式
下面结合附图和具体较佳实施方式对本发明作进一步详细的说明。
本发明的描述中,需要理解的是,术语“左侧”、“右侧”、“上部”、“下部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,“第一”、“第二”等并不表示零部件的重要程度,因此不能理解为对本发明的限制。本实施例中采用的具体尺寸只是为了举例说明技术方案,并不限制本发明的保护范围。
如图1和图2所示,一种基于摄像机标定及深度学习算法的船舶身份识别***,包括如下步骤。
步骤1,建立船舶检测器,包括如下步骤:
步骤11,确定YOLO模型的网络结构:YOLO模型网络结构包括输入层、隐含层和输出层。其中,输入层为视频帧图像,输出层为视频帧图像中是否含有船舶以及船舶在其中的像素位置。此处采用YOLO模型,对目标网络的检测效果好。
步骤12,训练YOLO模型:首先设定YOLO模型中的batch size及网络输入大小。然后,收集CCTV视频数据,抽取视频帧中含有船舶的图像进行样本标注,形成数据集样本。采用数据集对步骤11确定的YOLO模型网络结构进行训练,确定连接权值。训练完成的YOLO模型,称为船舶检测器。
步骤2,船舶检测:采用步骤1建立的船舶检测器对实时视频流中的每一帧图像进行船舶检测,判断当前视频帧中是否含有船舶以及检测出船舶在视频帧图像中的像素位置。
步骤3,船舶跟踪:设计KCF多目标***,对步骤2中检测出的船舶目标进行跟踪。
上述KCF为现有技术,该算法为单目标跟踪,在本发明中,通过计算预测框和检测框的交并比实现目标之间的关联,从而实现多目标跟踪,进而实现了实时画面的多目标跟踪。
本步骤的跟踪是为了当画面中有多个目标或新目标出现时,***能将前后帧检测到的目标一一对应起来。如果没有跟踪,将会出现重复抓拍等现象。如图3所示,由于设置船舶跟踪,船舶的id才不会发生交替。
另外,本步骤3中的目标跟踪关联是为了将AIS与图像跟踪船舶的结果融合,若融合成功则船舶身份信息即得到;对于融合不成功的情况,采用步骤6的身份识别来得到船舶身份。
上述船舶跟踪时,先在CCTV视频画面中划定检测区,一旦在检测区中出现步骤2检测出的船舶,即将检测框赋给KCF多目标***对该船舶进行目标跟踪,并优选采用iou方法判断是否为新目标。若为新目标,则分配一个新的KCF***对该目标框进行跟踪。若非新目标,则继续当前***跟踪的结果。
上述iou方法判断检测船舶是否为新目标,具体优选判断方法为:先计算交并比,当前一帧与当前帧目标检测的交并比大于0.3,则认为是非新目标,跟踪框位置为船舶当前时刻的位置。否则,则为新的船舶目标。
步骤4,获取船舶AIS像素坐标:
步骤41、标定相机内参。
相机内参包括焦距、x/y方向单位长度像素数、图像中心位置。
具体标定方法,包括如下步骤:
步骤41A)、计算场角:将相机调整至合适位置,采用3D定位的方法,根据传感器尺寸、比例及焦距计算出视场角,公式为:
θ1=2arctan(w/2f)
θ2=2arctan(h/2f)
上式中,θ1是水平视场角,θ2是垂直视场角,w和h是CMOS的宽和高,f为相机焦距。
步骤41B)、视频画面偏转:将视频画面中心对准某一参照物,按照下面公式旋转一定偏转角转动到相应位置。画面中心对准选定点即相机焦距、传感器尺寸为正确值。
上式中,P是水平偏转角,T是垂直偏转角,w0是图像宽度中心,h0是图像高度中心,θ1和θ2分别是相机的水平视场角和垂直视场角。x、y表示需要居中的图像坐标位置。
步骤42、标定相机外参。
在测量得到相机内参后,使用DGPS测量相机安装位置经纬度及相机安装高度,水面上选取参考点并测量其经纬度,按照坐标转换关系得到参考点映射到CCTV画面中,根据画面中物体的实际位置和映射位置调整相机的水平、俯仰、旋转角,使得实际位置和映射位置一致即得到相机的外参
步骤43,获取船舶AIS像素坐标:接入AIS信号,获取船舶实时的经纬度及身份信息,通过四个坐标系的转换关系,并结合相机的内参和外参,将船舶的经纬度坐标转换为视频帧图像中的船舶AIS像素坐标。
然后接入AIS信号,获取船舶实时的经纬度及身份信息,通过四个坐标系的转换关系,并结合相机的内参和外参,将船舶的经纬度坐标转换为视频帧图像中的船舶AIS像素坐标。
图像坐标与相机坐标下的转换关系如下:
式中,xc、yc和zc是相机坐标系下的坐标,u、v是图像坐标系下的坐标,dx、dy分别是图像x、y方向上单位毫米像素个数,h是相机安装高度,θ是相机的俯仰角,u0和v0是图像中心点像素位置,f表示相机焦距,对1920*1080分辨率图像而言,u0=960,v0=540。
另外,计算从世界坐标系转图像坐标系时,引入径向和切向畸变矫正。
径向畸变矫正公式为:
u′=u(1+k1r2+k2r4+k3r6)
v′=v(1+k1r2+k2r4+k3r6)
式中,u′和v′为畸变矫正后的像素坐标,u和v分别为矫正前像素坐标,k1、k2和k3为径向畸变矫正系数,r是像素点与距离中心距离。
切向畸变矫正公式为:
u′=u+[2p1v+p2(r2+2u2)]
v′=v+[p1(r2+2v2)+2p2u]
式中,u′和v′为畸变矫正后的像素坐标,u和v分别为矫正前像素坐标,p1和p2为切向畸变矫正系数,r是像素点与距离中心距离。上述畸变矫正可以视觉上更近似真实场景,也减小了坐标转换误差。
步骤5,匹配船舶位置:将步骤4中获取的船舶AIS像素坐标和步骤3中检测出船舶在视频帧图像中的像素位置进行匹配。
进一步,匹配船舶位置时,匹配方法优选采用全局最优算法,也即按照全局距离E最小原则进行匹配:
式中(ui,vi)表示视频检测到船舶在图像中的坐标位置,(u′j,v′j)表示经纬度转换到图像坐标系的位置,dis表示欧式距离。N表示视频跟踪船舶数,M表示AIS转换到画面个数。
步骤6,船舶身份识别:当步骤5中匹配成功时,则直接利用步骤4获取的船舶身份信息。当未匹配成功,则认为跟踪船舶是未开AIS船舶,利用深度学习方法识别船舶身份。
上述采用深度学习识别船舶身份的方法,优选包括如下步骤:
步骤61、建立船舶特征数据集:采集各种类型船舶的全景图片,提取VGG16特征进行训练,建立船舶特征数据集。
步骤61中,船舶特征数据集的建立方法,包括如下步骤:
步骤61A)、确定VGG16模型的网络结构:VGG16模型网络结构包括VGG16输入层、VGG16 隐含层和VGG16输出层。其中,VGG16输入层为船舶的全景图片,VGG16输出层为VGG16特征。VGG16输入层、VGG16隐含层和VGG16输出层中各节点之间采用损失函数L进行连接,损失函数L的计算公式为:
式中,L为损失函数,yi为像素真实值,y′i为网络对该位置像素的预测值,n为像素总数。
步骤61B)、预训练VGG16模型:为了减少VGG模型网络的过拟合并增强数据量,人为采集12000张含有船舶的照片,随机裁剪成大小为224*224的图片,并随机对裁剪后的图像进行-20到20°的中心旋转和随机RGB色差调整,生成若干样本,作为VGG16输入层。将船舶身份制作成标签,对VGG16网络进行训练,网络收敛后即得到VGG16特征提取网络。
步骤62,深度学习识别船舶身份:对于未开AIS船舶的图片,提取该船舶的VGG16特征,并采用最小余弦距离在步骤61中建立的船舶特征数据集中进行检索,得到未开AIS船舶的身份信息。
上述“最小余弦距离”是数学里通用定义,和欧式距离类似,指的是当前船舶特征向量与船舶数据库特征向量的最小距离,遍历数据库中船舶特征向量与当前船舶的余弦距离,距离最小代表该船舶和数据库中已有船舶相似程度最高。好处是实现简单并能够衡量不同长度向量的相似度。
本发明,采用摄像机标定技术将AIS的经纬度及静态信息映射到图像中,再和图像检测跟踪的结果融合,与传统船舶身份融合技术相比,船舶身份识别准确性大大提高且更加直观。另外,采用深度学习技术提取船舶的深度特征建立数据库,对未开AIS船舶利用深度特征库进行检索,相较于传统特征检索,大大提高了检索成功率。
因为水面背景不固定、受光照雨雾影响,传统船舶检测抓拍的成功率较低,改用基于 YOLO的船舶检测以及KCF跟踪算法,大大提高了船舶检测跟踪的成功率。具体分析如下:
1、传统的AIS及雷达不够直观,采用本***相机标定算法可以实现船舶身份叠加在视频中的效果,如图4所示,其中横框为跟踪框、经纬度转化为圆圈区域、上方显示船名。
2、对于没有开启AIS船舶,无法通过相机标定算法实现视频检测的船舶与船舶身份信息的融合,本发明通过提前建立船舶特征数据库(用VGG16特征代替传统的surf和lbp等特征),提取船舶图像的VGG16特征数据与特征数据库进行比对,实现了离线的船舶身份识别。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。