发明内容
针对现有技术的不足,本发明提供一种水下图像识别跟踪系统及方法。针对水下图像的特点,通过训练CNN网络,能够实现水下图像的识别和跟踪功能。
为解决上述技术问题,本发明所采取的技术方案是:
一方面,本发明提供一种水下图像识别跟踪系统,包括包括仿射变换模块、候选框生成模块、跟踪模块、训练模块;
所述仿射变换模块用于接收水下视频图像序列,并对所接收的水下视频图像序列中的图像进行仿射变换,根据上一帧图像中标记出的仿射框而在当前帧上标记出当前帧中的仿射框;所述仿射变换模块在标记出各视频图像帧中的所述仿射框时,采用仿射变换表示各个图像帧中的目标的几何变形;
所述候选框生成模块,基于所述仿射框,利用随机游走模型将仿射变换,形成M个候选框;
所述跟踪模块,将所述M个候选框所确定的候选图像区域输入到深度卷积神经元网络,对深度卷积神经元网络进行训练,通过深度卷积神经元网络,分别进行卷积操作、激活操作、池化操作获得M个得分,其中M为大于1的整数,并将得分最高的候选框确定为所要识别的对象,以及在当前帧中划出该候选框作为被识别跟踪的对象;
所述训练模块用于对深度卷积神经元网络进行训练,从预定训练集中选择两个对象区域-标签对输入到所述深度卷积神经元网络;其中,所述两个对象区域-标签对包括:在光照充足的环境下拍摄的无噪声真值图像,以及在光照不足的环境下拍摄的含噪声训练图像;将所述含噪声训练图像用作初始图像以利用所述深度卷积神经元网络重建图像,将重建图像与所述无噪声真值图像进行比较以获得训练误差,以及将所述训练误差迭代反向传播经过所述深度卷积神经元网络以修正所述深度卷积神经元网络的参数,直至所述训练误差满足收敛条件。
另一方面,本发明还提供一种水下图像识别跟踪方法,采用上述的一种水下图像识别跟踪系统实现,该方法包括以下步骤:
步骤1:接收水下视频图像序列,对图像进行预处理,在对所述每一幅图像进行直方图均衡化之后,进行缩放、旋转、平移、剪裁中的一个或多个操作;
步骤2:对所接收的水下视频图像序列中的图像进行仿射变换,以在当前的图像帧上标记出仿射框;
步骤2.1:根据上一帧图像中标记出的仿射框而在当前帧上标记出当前帧中的仿射框;
步骤2.2:在标记出各视频图像帧中的所述仿射框时,采用仿射变换表示各个图像帧中的目标的几何变形。
步骤3:基于步骤2中所述仿射框,利用随机游走模型将仿射变换形成M个候选框;
步骤3.1:基于当前图像帧中的仿射框随机生成多维向量u;
步骤3.2:对随机生成的向量u进行标准化处理;
步骤3.3:将上一帧的仿射变换与通过随机生成的向量u进行标准化处理得到的向量之和确定为所述当前帧中的仿射变换;
步骤3.4:对下一帧进行步骤1,重复步骤1-3直到产生M个候选框。
所述多维向量u为6维向量。
步骤4:将M个候选框所确定的候选图像区域输入到深度卷积神经元网络从而获得M个得分,设计损失函数;
步骤4.1:将M个候选框所确定的候选图像区域输入到深度卷积神经元网络;
所述深度卷积神经元网络包括相互级联的卷积层、激活层、池化层和全连接层;
步骤4.2:对深度卷积神经元网络进行训练,通过所述深度卷积神经元网络,分别进行卷积操作、激活操作、池化操作获得所述M个得分。
所述深度卷积神经元网络的损失函数为:
其中,α为学习率;
tc表示是类别标签;
i表示正在计算损失的回归框的序号;
p表示类别属于目标或是背景的概率;其中Lc(p,tc)=-logptc是类别tc的对数损失;
ui=(r1,r2,r3,r4,r5,r6)为真实目标区域的仿射参数元组;
(r1,r2,r3,r4,r5,r6)为真实目标区域的仿射变换固定结构的六个分量的值;
(r1*,r2*,r3*,r4*,r5*,r6*)为预测到目标区域的仿射变换固定结构的六个分量的值;
其中x为实数。
所述对深度卷积神经元网络进行训练具体包括:
步骤S1:从预定训练集中选择两个对象区域-标签对输入到所述深度卷积神经元网络;其中,所述两个对象区域-标签对包括:在光照充足的环境下拍摄的无噪声真值图像,以及在光照不足的环境下拍摄的含噪声训练图像;
步骤S2:将所述含噪声训练图像用作所述初始图像以利用所述卷积神经网络重建图像;
步骤S3:将所述重建图像与所述无噪声真值图像进行比较以获得训练误差;
步骤S4:将所述训练误差迭代的反向传播经过所述卷积神经网络以修正所述卷积神经网络的参数,直至所述训练误差满足收敛条件。
步骤5:将得分最高的候选框确定为所要识别的对象,并在该当前帧中划出该候选框作为被识别跟踪的对象。
采用上述技术方案所产生的有益效果在于:
(1)最后一个卷积层用于获取编码对象的语义信息,其对目标的外观变化具有较强的鲁棒性。
(2)应用仿射变换预测目标的位置,从而更准确地预测动态几何变形。
(3)使用多任务损失,使仿射参数参与回归任务,能够进一步使目标定位更加准确。
(4)将仿射变换与最高卷积层相结合,同时应用语义和几何变形处理外形和几何变化变化大目标,实现稳定识别与跟踪。
具体实施方式
下面结合附图对本发明具体实施方式加以详细的说明。
一方面,本发明提供一种水下图像识别跟踪系统,如图1所示,包括仿射变换模块201、候选框生成模块202和跟踪模块203。可选地,系统2000还可包括训练器204;
所述仿射变换模块201接收水下视频图像序列,并对所接收的图像序列中的图像进行仿射变换,以在当前的图像帧上标记出仿射框。水下图像可由高清摄像头动态随机获取。水下拍摄的视频图像,由于水体自身环境的复杂性、水下的不确定性动态因素、以及成像过程中水体对光线散射以及吸收效应产生的非线性影响都极大地降低了水下图像质量,导致图像对比度降低、纹理模糊。因此有必要对这些图像进行预处理,例如针对每一幅图像,进行图像增强处理,在直方图均衡化之后,进行缩放、旋转、平移、剪裁等中的一个或多个操作。本领域技术人员应该理解,这些与操作并不是必需的,而是可选的。接着,对所接收的图像序列中的图像进行仿射变换,以在当前的图像帧上标记初始仿射框。在这里,仿射框表示图像序列中要被追踪的目标。具体地,可以根据上一帧图像中画出的目标而在当前帧上标记初始仿射框,即,根据第t-1帧图像目标所在位置,在第t帧图像上,标记初始仿射框。在本实施例中,在标记出各视频图像帧中的仿射框时,采用仿射变换表示各个图像帧中的目标的几何变形。仿射变换采用仿射变换矩阵的形式。
所述候选框生成模块202,基于所述仿射框,利用随机游走模型将仿射变换,形成M个候选框;
所述跟踪模块203,将所述M个候选框所确定的候选图像区域输入到深度卷积神经元网络从而获得M个得分,并将得分最高的候选框确定为所要识别的对象,以及在该当前帧中划出该候选框作为被识别跟踪的对象;
本实施例中,将M个候选框所确定的候选图像区域进行仿射变换成矩形区域,输入到深度卷积神经元网络,本实施例中的CNN网络为VGG-16网络,也可为其它常规的深度学习网络(CNN)。本CNN网络采用如图2所示的经典的深度网络结构。
将候选框输入如图2所示的深度卷积神经元网络,分别通过卷积层10、激活层20、池化层30,分别进行卷积操作、激活操作、池化操作并通过全连接层40输出M个得分score1,score2,……scoreM。
CNN包括卷积层10。图2中作为示例给出了一层卷积层。然而,本领域技术人员可知,为了增强特征的表征能力,在CNN 2000中可包括多层卷积层。每个卷积层均可包括多个卷积核,卷积核由权重(Weight)和偏移量(Bias)构成。卷积核的数量也称为特征通道数量。每个卷积核仅对输入层的特定特征敏感,并可通过卷积操作提取这些特征。因此,卷积层2200也可称之为特征提取层。根据本申请实施方式的图像降噪方法1000可通过CNN 2000的特征提取层(例如,卷积层2200)对包含噪声的初始图像2100进行卷积操作以提取初级特征图。
一般地,卷积核的尺寸小于输入层的尺寸,因此,每个卷积核仅感知输入层的部分区域,这部分区域称之为感知域(Receptive Field)。然后,每个卷积核以特定的步长(Stride)滑动遍及整个输入层,直至提取输入层的全部信息。在这一过程中,通过权重共享,卷积核可将卷积核自身的权重和偏移量共享应用到对整个输入层的特征提取上,以大大降低计算负担。然而,权重共享并非适用于任何应用场景。对于一些图像,用户的关注区域集中在图像的某个区域(例如,中心区域),而且这一区域的图像特征与其它区域明显不同。在这种应用场景下,可通过局域连接层来对图像的特定区域进行特征提取,局域连接层的卷积核权重可不共享到对其它图像区域的特征提取中。
CNN还包括激活层20。如上所述,卷积核仅仅对初始图像进行线性变换。然而,线性变换对于图像特征的语义表征能力是不足的。为了增强对图像特征的语义表征能力,往往需要添加非线性的激活层。这样的非线性的激活层可以对初级特征图进行非线性变换,以获得具有较强的语义表征能力的次级特征图。可根据实际需求而为激活层配置不同的激活函数。例如,可采用sigmod函数来对特征进行激活。
根据本申请的一个实施例,CNN还包括池化(Pooling)层30。池化层30可以对其输入层进行下采样以降低数据尺寸。例如,池化层30可以对激活层20输出的特征图进行下采样。这种下采样操作在一方面可以降低输出尺寸以加快输出处理速度,在另一方面也可以减小过拟合现象。根据本申请的一个实施例,可以在每个下采样的过程中将特征通道数量翻倍。
池化层30选用多种池化操作。根据本申请的实施例,池化层30选用平均值池化(Average Pooling)。在平均值池化过程中,每个池可涵盖其输出层的N个像素值,每个池的输出值是这N个像素值的平均值。通过这种方式,数据尺寸降低为原尺寸的1/N。
根据本申请的实施例,池化层30选用最大值池化(Max Pooling)。在最大值池化过程中,每个池可涵盖其输出层的N个像素值,每个池的输出值是从这N个像素值中选出的最大值。通过这种方式,数据尺寸也降低为原尺寸的1/N。
CNN包括全连接层40。在全连接层40中,每一神经元连接至上一层的全部神经元。全连接层40可以对前几层卷积层提取的特征进行归纳和总结,以获得体现全局特征的特征图。
所述训练模块204用于对深度卷积神经元网络进行训练。具体地,从预定训练集中选择两个对象区域-标签对输入到所述深度卷积神经元网络;其中,所述两个对象区域-标签对包括:在光照充足的环境下拍摄的无噪声真值图像,以及在光照不足的环境下拍摄的含噪声训练图像;将所述含噪声训练图像用作所述初始图像以利用所述卷积神经网络重建图像。将所重建的重建图像与所述无噪声真值图像进行比较以获得训练误差,以及将所述训练误差迭代地反向传播经过所述卷积神经网络以修正所述卷积神经网络的参数,直至所述训练误差满足收敛条件。
如图3所示,表示了适于用实现本公开的实施例的电子设备600的结构示意图。图3示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图3所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图3中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
另一方面,本发明还提供一种水下图像识别跟踪方法,其流程图如图4所示,网络架构图如图5所示,采用上述的一种水下图像识别跟踪系统实现,该方法包括以下步骤:
步骤1:接收水下视频图像序列,对图像进行预处理,在对所述每一幅图像进行直方图均衡化之后,进行缩放、旋转、平移、剪裁等中的一个或多个操作;
水下图像可由高清摄像头动态随机获取。水下拍摄的视频图像,由于水体自身环境的复杂性、水下的不确定性动态因素、以及成像过程中水体对光线散射以及吸收效应产生的非线性影响都极大地降低了水下图像质量,导致图像对比度降低、纹理模糊。因此有必要对这些图像进行预处理,例如针对每一幅图像,进行图像增强处理,在直方图均衡化之后,进行缩放、旋转、平移、剪裁等中的一个或多个操作。
步骤2:对所接收的水下视频图像序列中的图像进行仿射变换,以在当前的图像帧上标记出仿射框;
步骤2.1:根据上一帧图像中标记出的仿射框而在当前帧上标记出当前帧中的仿射框;
步骤2.2:在标记出各视频图像帧中的所述仿射框时,采用仿射变换表示各个图像帧中的目标的几何变形。
对所接收的图像序列中的图像进行仿射变换,以在当前的图像帧上标记初始仿射框。在这里,仿射框表示图像序列中要被追踪的目标。具体地,根据上一帧图像中标记出的目标而在当前帧上标记初始仿射框,即,根据第t-1帧图像目标所在位置,在第t帧图像上,标记初始仿射框。
本实施例中,在标记出各视频图像帧中的仿射框时,采用仿射变换表示各个图像帧中的目标的几何变形。仿射变换采用仿射变换矩阵的形式,例如仿射变换矩阵T(r),具有如下3维的李群结构:
ga(2)是对应于仿射李群GA(2)的李代数,矩阵
是GA(2)的生成元以及矩阵ga(2)的基。对于矩阵GA(2)的生成元为:
当t=1时,初始化仿射变换参数S1=[r1,r2,r3,r4,r5,r6]。
步骤3:基于步骤2中所述仿射框,利用随机游走模型将仿射变换形成M个候选框;
步骤3.1:基于当前图像帧中的仿射框随机生成多维向量u;
步骤3.2:对随机生成的向量u进行标准化处理;
步骤3.3:将上一帧的仿射变换与通过随机生成的向量u进行标准化处理得到的向量之和确定为所述当前帧中的仿射变换;
步骤3.4:对下一帧进行步骤1,重复步骤1-3直到产生M个候选框。
所述多维向量u为6维向量。
本实施例中,随机生成一个(-1,1)之间的6维向量u=(u
1,...,u
j,...u
6),
接着对随机生成的向量u进行标准化处理得到u’;
则第t-1帧图像跟踪的仿射变换St-1可表示为:
其中t是当前目标帧,
是当前目标帧生成的第k个仿射参数,k表示生成的序号k=1,2,…M;
当前帧的仿射变换为上一帧的仿射变换与通过随机生成的向量u进行标准化处理得到的u’之和。
接着,对下一帧进行处理,即k=k+1,然后重复上述步骤1至3,直到产生M个候选框
为了清楚起见,下面以一个具体的例子进行说明。应该理解,所举之例仅仅是示意性的,而不是用来限定本发明。在本发明公开范围的教导下,本领域技术人员还可以预期其它的具体实例来实现本发明。
对于视频图像序列中的第一帧进行初始化处理,即,t=1时,初始化仿射变换参数S1=[0.05;0.002;0.002;0.05;5;5]。
对第t(t>1)帧图像,根据第t-1帧图像目标所在位置,在第t帧图像上,画出初始仿射框,确定出候选图像区域,即,要跟踪的目标。接着,将仿射变换利用随机游走模型,产生1000个候选框。
初始化k=1,当k<=1000时,随机生成一个(-1,1)之间的6维向量u=(u
1,u
2,u
3,u
4,u
5,u
6),对随机生成一个(-1,1)之间的6维向量u=(u
1,u
2,u
3,u
4,u
5,u
6),进行标准化处理得到
然后利用上述公式/>
进行计算处理,其中S
t-1为第t-1帧图像跟踪的仿射变换。接着对下一帧进行处理,k=k+1重复上述步骤,直到产生1000个候选框
步骤4:将M个候选框所确定的候选图像区域输入到深度卷积神经元网络从而获得M个得分,其中M为大于1的整数;
在本实施例中,将M个候选框所确定的候选图像区域进行仿射变换成矩形区域,输入到深度卷积神经元网络,该网络如图2所示。输将候选框输入如图2所示的深度卷积神经元网络,分别进行卷积操作、激活操作、池化操作并通过全连接层输出M个得分score1,score2,……scoreM。其中,在进行上述操作过程中的损失函数可表示为:
其中,α为学习率;
tc表示是类别标签;
i表示正在计算损失的回归框的序号;
p表示类别属于目标或是背景的概率;
ui=(r1,r2,r3,r4,r5,r6)为真实目标区域的仿射参数元组;
(r1,r2,r3,r4,r5,r6)为真实目标区域的仿射变换固定结构的六个分量的值;
(r1*,r2*,r3*,r4*,r5*,r6*)为预测到目标区域的仿射变换固定结构的六个分量的值;
其中x为实数。
步骤4.1:将M个候选框所确定的候选图像区域输入到深度卷积神经元网络;
所述深度卷积神经元网络包括相互级联的卷积层、激活层、池化层和全连接层;
步骤4.2:对深度卷积神经元网络进行训练,通过所述深度卷积神经元网络,分别进行卷积操作、激活操作、池化操作获得所述M个得分。
所述对深度卷积神经元网络进行训练具体包括:
步骤S1:从预定训练集中选择两个对象区域-标签对输入到所述深度卷积神经元网络;其中,所述两个对象区域-标签对包括:在光照充足的环境下拍摄的无噪声真值图像,以及在光照不足的环境下拍摄的含噪声训练图像;
步骤S2:将所述含噪声训练图像用作所述初始图像以利用所述卷积神经网络重建图像;
步骤S3:将所述重建图像与所述无噪声真值图像进行比较以获得训练误差;
步骤S4:将所述训练误差迭代的反向传播经过所述卷积神经网络以修正所述卷积神经网络的参数,直至所述训练误差满足收敛条件。
首先,向CNN输入训练数据集,以及对应类别的标签向量。针对每一幅图像,首先进行图像增强处理,在直方图均衡化之后,进行缩放、旋转、平移、剪裁操作,增大训练数据集中图像的数量。通过增加样本数量来获得较好的学习效果。初始图像的尺寸可不受限制。例如,初始图像可具有任意的分辨率和宽高比。初始图像可以是RGB图像并具有红色、绿色和蓝色三个颜色通道。每一颜色通道的图像均由位于各个像素点处的像素值来表示。这些像素值处于[0,255]的数值范围内。
本发明实施例中,初始图像预先进行剪裁以符合特定宽高比。例如,初始图像可被剪裁为具有32像素×32像素的尺寸以匹配CIFAR-10数据集。或者,初始图像可剪裁为具有227像素×227像素的尺寸以匹配ImageNet数据集。再或者,初始图像2100可剪裁为具有224像素×224像素的尺寸以匹配VGG16和ResNet数据集。图像的剪裁可采用手工剪裁,例如,可使用Amazon Mechanical Turk(AMT)服务由大量在线人员根据图像的特点进行手工剪裁,以在保留拍摄对象的同时将图像剪裁为符合特定宽高比。此外,剪裁也可通过ROI(Regionof Interest,关注区域)提取层进行自动提取。例如,ROI提取层会自动生成框选出目标对象的边界框,并基于这一边界框自动调整和剪裁图像的尺寸以符合特定宽高比。ROI提取层的网络参数可以在训练过程中进行训练优化。
可选地,可以对初始图像进行归一化以将初始图像的像素值转换到特定数值范围内。例如,可将初始图像的每个颜色通道的像素值归一化到[0,1]的数值范围内以方便后续处理。然而,本领域技术人员可理解,由于像素值一般已均处于固定幅度[0,255]的数值范围内,因此归一化处理并非必要处理,而仅是一种优化的选择。
在本事实例中,上述向CNN输入数据的步骤包括:从预定训练集中选择两个对象区域-标签对,这两个对象区域-标签对是成对的对准的对象区域及其对应的对象身份标签。在一个实施方式中,可用属于同一物体或不同物体的相等的概率随机地选择这两个对象区域-标签对。例如,可在光照充足的环境下拍摄对象以获得无噪声真值图像,并且在光照不足的水下环境下拍摄对象以获得含噪声训练图像;
将含噪声训练图像用作初始图像以利用所述卷积神经网络重建获得所述重建图像;将所重建的重建图像与无噪声真值图像进行比较以获得训练误差,并将所述训练误差迭代地反向传播经过所述卷积神经网络以修正所述卷积神经网络的参数,直至所述训练误差满足收敛条件,例如直到得到测试准确率达到98%以上。
训练结束后,保存最后得到的训练模型,传送给识别跟踪系统。以上步骤可在数据集训练子系统中完成。
步骤5:将得分最高的候选框确定为所要识别的对象,并在该当前帧中划出该候选框作为被识别跟踪的对象。
计算得分最高者所在的候选框n可参照以下公式:
scorel表示M个得分,即score1,score2,……scoreM;
在第t帧图像上画出该候选框,即完成第t帧图像的识别,并将第t帧图像的候选框位置保存下来。
当t+1小于视频总帧数时,算法进入第一步,进行第t+1帧图像的跟踪。直到所有视频帧跟踪完毕,算法结束。识别跟踪结果如图6所示。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。