发明内容
本申请实施例提供一种基于卷积神经网络的视频防抖方法及装置,解决现有技术中摄像机在拍摄时会出现摄像机抖动,从而使得所拍摄的画面瞬间发生剧烈的抖动变化的问题。
本申请实施例提供的一种基于卷积神经网络的视频防抖方法,包括:
依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差;
根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差;
根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标;
根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵,并根据该单应性矩阵矫正每帧画面。
优选地,依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型之前,所述方法还包括:
制作训练图像集,其中,所述训练图像集包括至少一对存在单应性对应关系的矩形图像,初始化待训练的卷积神经网络模型内的各权重参数,将所述至少一对存在单应性对应关系的矩形图像输入待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述至少一对存在单应性对应关系的矩形图像的顶点坐标的偏差以及所述至少一对存在单应性对应关系的矩形图像的顶点坐标训练所述待训练的卷积神经网络模型内的各权重参数,得到卷积神经网络模型。
优选地,所述至少一对存在单应性对应关系的矩形图像均为灰度图像,和/或所述至少一对存在单应性对应关系的矩形图像包括图像的中心点且尺寸相同。
优选地,该方法包括:对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度、模糊度、噪声和子图像位置中的至少一者进行扰动。
优选地,所述卷积神经网络模型内的最后一个池化层的核大小为4x4,所述卷积层的卷积核的通道数为64。
优选地,按照随机梯度下降法将所述训练图像集中的存在单应性对应关系的矩形图像输入所述待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的偏差,以及所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的顶点坐标之间的差值,构建损失函数,直至损失函数符合预先设定的模型精度值。
优选地,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数r,根据所生成的随机数r,通过公式p′=p×(1.0+r)确定该幅矩形图像中每个像素点的新灰度值,其中,p′表示新灰度值,P表示原始灰度值,r表示随机数;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的模糊度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数a,以随机数a为模糊半径,对该幅矩形图像进行高斯模糊;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的噪声进行扰动的方式为:针对待扰动的一幅矩形图像,生成密度随机数以及强度随机数,根据密度随机数以及强度随机数,在该幅矩形图像内生成椒盐噪声;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的子图像位置进行扰动的方式为:针对待扰动的一幅矩形图像,在该幅图像内随机选择两个不同位置且相同尺寸的子图像,交换两个子图像内的所有像素。
优选地,其中随机梯度下降法使用的下降策略为: 其中,lr为当前学习率,iter为当前迭代次数,max_iter为最大迭代次数,power为控制学习率下降快慢的参数,base_lr为基础学习率;和/或,模型精度按照如下公式计算:si=pi-ri,其中,M为测试样本集的数量,pi为一对矩形图像i的顶点坐标的预测偏差,ri为一对矩形图像i的顶点坐标的真实偏差。
优选地,对每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差进行累加,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差。
优选地,依次根据前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及,下一帧画面与第一帧画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,其中,pt′为下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,pt为下一帧画面与第一帧画面的四个顶点坐标之间的偏差,p′t-1为前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,α为权重系数。
优选地,所述指定的两帧画面包括:前一帧画面与相邻的下一帧画面,通过单应性矩阵,将所述相邻的下一帧画面矫正到前一帧画面,直到将所述相邻的下一帧画面矫正到第一帧画面;所述指定的两帧画面包括:第一帧画面与其他帧画面,通过单应性矩阵,将所述其他帧画面矫正到第一帧画面。
本申请实施例提供的一种基于卷积神经网络的图像对齐方法,包括:
将前一帧画面与相邻的下一帧画面输入预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
根据所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差以及前一帧画面的已知四个顶点坐标确定相邻的下一帧画面的四个顶点坐标;
根据所述前一帧画面的已知四个顶点坐标和所述相邻的下一帧画面的四个顶点坐标,确定所述前一帧画面与相邻的下一帧画面对应的单应性矩阵;
根据确定出的单应性矩阵,对相邻的下一帧画面进行矫正。
本申请实施例提供的一种基于卷积神经网络的视频防抖装置,包括:
输入模块,用于依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
偏差确定模块,用于根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差;
矫正偏差模块,用于根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差;
顶点矫正坐标确定模块,用于根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标;
画面矫正模块,用于根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵,并根据该单应性矩阵矫正每帧画面。
优选地,所述装置还包括:
模型训练模块,用于在输入模块依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型之前,制作训练图像集,其中,所述训练图像集包括至少一对存在单应性对应关系的矩形图像,初始化待训练的卷积神经网络模型内的各权重参数,将所述至少一对存在单应性对应关系的矩形图像输入待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述至少一对存在单应性对应关系的矩形图像的顶点坐标的偏差以及所述至少一对存在单应性对应关系的矩形图像的顶点坐标训练所述待训练的卷积神经网络模型内的各权重参数,得到卷积神经网络模型。
优选地,所述至少一对存在单应性对应关系的矩形图像均为灰度图像,和/或所述至少一对存在单应性对应关系的矩形图像包括图像的中心点且尺寸相同。
优选地,该装置还包括:
扰动模块,用于对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度、模糊度、噪声和子图像位置中的至少一者进行扰动。
优选地,所述卷积神经网络模型内的最后一个池化层的核大小为4x4,所述卷积层的卷积核的通道数为64。
优选地,所述模型训练模块,还用于按照随机梯度下降法将所述训练图像集中的存在单应性对应关系的矩形图像输入所述待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的偏差,以及所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的顶点坐标之间的差值,构建损失函数,直至损失函数符合预先设定的模型精度值。
优选地,所述扰动模块具体用于,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数r,根据所生成的随机数r,通过公式p′=p×(1.0+r)确定该幅矩形图像中每个像素点的新灰度值,其中,p′表示新灰度值,P表示原始灰度值,r表示随机数;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的模糊度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数a,以随机数a为模糊半径,对该幅矩形图像进行高斯模糊;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的噪声进行扰动的方式为:针对待扰动的一幅矩形图像,生成密度随机数以及强度随机数,根据密度随机数以及强度随机数,在该幅矩形图像内生成椒盐噪声;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的子图像位置进行扰动的方式为:针对待扰动的一幅矩形图像,在该幅图像内随机选择两个不同位置且相同尺寸的子图像,交换两个子图像内的所有像素。
优选地,其中随机梯度下降法使用的下降策略为: 其中,lr为当前学习率,iter为当前迭代次数,max_iter为最大迭代次数,power为控制学习率下降快慢的参数,base_lr为基础学习率;和/或,模型精度按照如下公式计算:si=pi-ri,其中,M为测试样本集的数量,pi为一对矩形图像i的顶点坐标的预测偏差,ri为一对矩形图像i的顶点坐标的真实偏差。
优选地,所述偏差确定模块具体用于,对每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差进行累加,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差。
优选地,所述矫正偏差模块具体用于,依次根据前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及,下一帧画面与第一帧画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,其中,pt′为下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,pt为下一帧画面与第一帧画面的四个顶点坐标之间的偏差,p′t-1为前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,α为权重系数。
优选地,所述指定的两帧画面包括:前一帧画面与相邻的下一帧画面;所述画面矫正模块具体用于,通过单应性矩阵,将所述相邻的下一帧画面矫正到前一帧画面,直到将所述相邻的下一帧画面矫正到第一帧画面;所述指定的两帧画面包括:第一帧画面与其他帧画面;所述画面矫正模块具体用于,通过单应性矩阵,将所述其他帧画面矫正到第一帧画面。
本申请实施例提供的一种基于卷积神经网络的图像对齐装置,包括:
输入模块,用于将前一帧画面与相邻的下一帧画面输入预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
顶点坐标确定模块,用于根据所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差以及前一帧画面的已知四个顶点坐标确定相邻的下一帧画面的四个顶点坐标;
单应性矩阵确定模块,用于根据所述前一帧画面的已知四个顶点坐标和所述相邻的下一帧画面的四个顶点坐标,确定所述前一帧画面与相邻的下一帧画面对应的单应性矩阵;
矫正模块,用于根据确定出的单应性矩阵,对相邻的下一帧画面进行矫正。
本申请实施例提供一种基于卷积神经网络的视频防抖方法及装置,该方法包括:依次将存在单应性对应关系的前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型,根据每对卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差,根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标,根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵,并根据该单应性矩阵矫正每帧画面。通过上述方法,可以有效的使得所拍摄的画面不会瞬间发生剧烈的抖动变化,而是实现所拍摄的画面的每一帧能够平滑的发生的变化的效果。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的基于卷积神经网络的单应性矩阵确定过程,具体包括以下步骤:
S101:将存在单应性对应关系的一对矩形图像输入预先建立的卷积神经网络模型。
在实际应用中,确定包含同一对象的任意两幅图像的单应性矩阵可以广泛的应用到人们的实际生活中,如,图像校正、图像对齐以及相机防抖等。
而在确定包含同一对象的任意两幅图像的单应性矩阵的过程中,首先需要建立卷积神经网络模型,后续,可通过建立好的卷积神经网络模型来确定包含同一对象的任意两幅图像的单应性矩阵。
进一步的,本申请给出了一种建立卷积神经网络模型的具体实施方式,具体如图2所示:
S201:制作训练图像集,其中,该训练图像集包括至少一对存在单应性对应关系的矩形图像。
S202:初始化待训练的卷积神经网络模型内的各权重参数。
S203:将至少一对存在单应性对应关系的矩形图像输入待训练的卷积神经网络模型。
S204:根据待训练的卷积神经网络模型输出的至少一对存在单应性对应关系的矩形图像的顶点坐标的偏差以及至少一对存在单应性对应关系的矩形图像的顶点坐标训练该待训练的卷积神经网络模型内的各权重参数,得到卷积神经网络模型。
在此需要说明的是,一对存在单应性对应关系的矩形图像指的是该对矩形图像中的两幅图像包含同一对象。另外,由于在对待训练的卷积神经网络模型进行训练之前,该待训练的卷积神经网络模型的卷积层的数量,卷积层中卷积核的数量以及卷积核的通道数通常都是设定好的,且在训练的过程中不会再次进行更改,而待训练的卷积神经网络模型中的卷积层中卷积核的数量以及卷积核的通道数也决定了输入到模型中的一对图像的大小和形状,也就是说,输入到模型中的一对图像的大小和形状是要符合模型输入要求的,因此,训练图像集中所包括的一对存在单应性对应关系的图像的大小是固定大小的,且形状是固定的。
另外,在此还需要说明的是,本申请还提供了待训练的卷积神经网络模型的模型结构,具体如图3A所示,待训练的卷积神经网络模型的模型结构由输入层(Input)、卷积层(Convolution Layer)、激活函数(Activation Function)、池化层(Pooling Layer)和全连接层(Full Connection Layer)构成,也可能包含其他加速网络训练的自定义层,其中,卷积层(Convolution Layer)具有提取图像抽象特征的能力,通常来说,层数越多,特征越抽象,可以学习到更高层次的语义特征,在本申请中,将卷积层标记为WxHxC+S的形式,W表示核宽度,H表示核高度,C表示核的个数,S表示步幅;激活函数(Activation Function)是一种提高网络非线性的方法,每个卷积层后默认常见的ReLU激活函数;池化层(PoolingLayer)是一种数据下采样的方法,可以提高模型的非线性并防止模型过拟合,本申请使用了Max Pooling和Avg Pooling两种方式,其中,Max Pooing是将感受野内的最大值作为池化层的输出,Avg Pooling是取感受野内的数组的均值作为池化层的输出,在本申请中,将池化层标记为WxH+S的形式,W表示核宽度,H表示核高度,S表示步幅;连接层(FullConnection Layer)在整个卷积神经网络中起到“分类器”的作用,得到一个8维的向量。
另外,由于局部响应归一化(LRN)层可以对当前特征图在深度上作平滑处理,在分类任务中被证明有效提高了准确率,因此,本申请在所建立的卷积神经网络模型中也使用了LRN层。其次,本申请在所建立的卷积神经网络模型中也使用了起始(Inception)模块,而Inception模块可以有效提高网络的宽度,也增加了网络对尺度的适应性,Inception模块在模型中的数量可以根据实际情况来定,如,设定为9个。图3B示出了起始模块的结构示意图。
在此需要说明的是,在待训练的卷积神经网络模型中,层与层之间的数据称为特征图,该特征图可视为一个具有宽度,高度和深度的三维矩阵,卷积核的大小决定了当前特征图上感受野的大小,卷积核的个数决定了下一层特征图的深度,步幅的大小决定了下一层特征图的宽度和高度。
进一步的,由于在对待训练的卷积神经网络模型进行训练时需要使用训练图像集,因此,在本申请中,在训练待训练的卷积神经网络模型之前需要制作训练图像集,而在实际应用中,一对存在单应性对应关系,且大小和形状符合模型输入要求的两幅图像通常是难以直接获取的,因此,在本申请中,可以按照如图4所示的方式来制作训练图像集:
S401:获取原始图像集。
S402:针对原始图像集中的任一原始图像,将该原始图像缩放到预设的大小。
S403:根据预设的长度以及预设的宽度,在原始图像上确定第一矩形图像,分别记录第一矩形图像的四个顶点在原始图像中的第一位置。
S404:对第一矩形图像的四个顶点进行随机扰动,记录随机扰动后的四个顶点的第二位置。
S405:根据所述四个顶点的第一位置与所述四个顶点的第二位置,求解所述第一位置与所述第二位置的单应性矩阵。
S406:将该原始图像通过所述单应性矩阵进行转换。
S407:在转换后的图像上找到对应于该原始图像中的第二位置所围成的四边形的四个顶点像素,并根据预设的长度以及预设的宽度,对四个顶点像素所围成的四边形进行缩放,将缩放后的四边形作为第二矩形图像。
在此需要说明的是,所述第一矩形图像与所述第二矩形图像是存在单应性对应关系的一对矩形图像。
例如,获取原始图像集,针对原始图像集中的原始图像X,在本例子中,只以原始图像集中的原始图像X为例进行说明,其他原始图像的制作过程和原始图像X是一致的,将原始图像X缩放到320*240(即,预设的大小),根据预设的长度128以及预设的宽度128,在原始图像X上确定第一矩形图像A,分别记录第一矩形图像A的四个顶点在原始图像X中的第一位置,生成八个随机数n,对第一矩形图像的四个顶点进行随机扰动,记录随机扰动后的四个顶点的第二位置,根据四个顶点的第一位置与四个顶点的第二位置,求解第一位置与第二位置的单应性矩阵H,将该原始图像X通过该单应性矩阵H进行转换,得到图像Y,在转换后的图像(即,图像Y)上找到对应于该原始图像X中的第二位置所围成的四边形的四个顶点像素,并根据预设的长度128以及预设的宽度128,对四个顶点像素所围成的四边形进行缩放,将缩放后的四边形作为第二矩形图像B,其中,第一矩形图像A与第二矩形图像B即为存在单应性对应关系的一对矩形图像,
在此需要说明的是,根据预设的长度128以及预设的宽度128,在原始图像X上确定第一矩形图像A可以是以原始图像的中心为第一矩形图像A的中心点,按照预设的长度128以及预设的宽度128确定第一矩形图像A的四条边,当然也可以以原始图像的其他点为第一矩形图像A的中心点,按照预设的长度128以及预设的宽度128确定第一矩形图像A的四条边,具体以原始图像中的哪个点为第一矩形图像A的中心点来确定第一矩形图像A可根据实际情况来定。另外,由于第一矩形图像的四个顶点中每个顶点是包括横坐标以及纵坐标,因此,需要生成八个随机数n,这八个随机数n可以相同,可以有一部分相同,有一部分不同,也有可能互不相同,后续,根据生成的八个随机数n,对第一矩形图像的四个顶点进行随机扰动,记录随机扰动后的四个顶点的第二位置的过程具体为:假设顶点1的第一位置为(x,y),而顶点1的第一位置中x对应的随机数为n1,y对应的随机数为n2,则根据随机数n1和n2,对顶点1进行扰动,记录随机扰动后的顶点1的第二位置(x+n1,y+n2)。
进一步的,为了降低卷积神经网络模型的规模,因此,在本申请中,在制作训练图像集的过程中,可以在将该原始图像缩放到预设的大小之前,将原始图像进行灰度化处理,即,将该原始图像转换成灰度化图像,或者在确定出第二矩形图像后,将第一矩形图像和第二矩形图像均进行灰度化处理。
进一步的,为了提升算法鲁棒性以及自适应能力,在本申请中,在确定出第一矩形图像和第二矩形图像之后,也就是确定出一对存在单应性对应关系的矩形图像后,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度、模糊度、噪声和子图像位置中的至少一者进行扰动。
进一步的,本申请在此给出了对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度进行扰动的方式,具体如下:
针对待扰动的一幅矩形图像,生成随机数r,根据所生成的随机数r,通过公式p′=p×(1.0+r)确定该幅矩形图像中每个像素点的新灰度值,其中,p′表示新灰度值,P表示原始灰度值,r表示随机数。
在此需要说明的是,在实际应用中,随机数r可以是位于区间[-0.1,0.1]之间。
进一步的,本申请在此给出了对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的模糊度进行扰动的方式,具体如下:
针对待扰动的一幅矩形图像,生成随机数a,以随机数a为模糊半径,对该幅矩形图像进行高斯模糊。
在此需要说明的是,在实际应用中,随机数a可以是位于区间[1,5]之间。
进一步的,本申请在此给出了对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的噪声进行扰动的方式,具体如下:
针对待扰动的一幅矩形图像,生成密度随机数以及强度随机数,根据密度随机数以及强度随机数,在该幅矩形图像内生成椒盐噪声。
进一步的,本申请在此给出了对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的子图像位置进行扰动的方式,具体如下:
针对待扰动的一幅矩形图像,在该幅图像内随机选择两个不同位置且相同尺寸的子图像,交换两个子图像内的所有像素,具体如图5所示,在图5中,最左边的图是第一矩形图像,中间得到图是第二矩形图像,最右边的图是对第二矩形图像的子图像位置进行扰动后的图像。
在此需要说明的是,在对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像进行两种以上的扰动时,扰动顺序可以根据实际情况来定,如,可以先对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像进行亮度扰动,再进行模糊度扰动,也可以先对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像进行模糊度扰动,再进行亮度扰动。
另外,将扰动后的矩形图像作为最终的训练图像集中的矩形图像。
进一步的,为了降低卷积神经网络模型的规模,则卷积神经网络模型内的最后一个池化层的核大小设定为4x4,所述卷积层的卷积核的通道数设定为64。
进一步的,在本申请中,待训练的卷积神经网络模型内的各权重参数的过程中,具体可以按照随机梯度下降法将所述训练图像集中的存在单应性对应关系的矩形图像输入所述待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的偏差,以及所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的顶点坐标之间的差值,构建损失函数,直至损失函数符合预先设定的模型精度值。
在此需要说明的是,为了提供模型的精度,在本申请中,损失函数可以使用欧氏距离,当然,在实际应用中,也可以使用其他类型的损失函数。
进一步的,在本申请实施例中,随机梯度下降法所使用的下降策略可以为:其中,lr为当前学习率,iter为当前迭代次数,max_iter为最大迭代次数,power为控制学习率下降快慢的参数,base_lr为基础学习率。
在此需要说明的是,本发明在实际应用中,可以将每次参与梯度更新的训练样本数量设为64,max_iter为最大迭代次数设为400000,power为控制学习率下降快慢的参数设为0.5,base_lr为基础学习率设为0.001。
另外,本申请还提供了模型精度的计算方式,具体如下公式计算:si=pi-ri,其中,M为测试样本集的数量,pi为一对矩形图像i的顶点坐标的预测偏差,ri为一对矩形图像i的顶点坐标的真实偏差。
通过上述方法训练完成卷积神经网络模型内的各权重参数后,得到卷积神经网络模型。
后续,当需要确定两幅图像之间的单应性矩阵,则可以将两幅图像分别裁剪成符合卷积神经网络模型输入要求的大小和形状,如,假设卷积神经网络模型输入要求的大小和形状为128*128的矩形,则需要将两幅图像分别裁剪成128*128的矩形,当然裁剪后的两幅矩形图像必须存在相互对应关系,也就是说,必须包含同一对象,再将存在单应性对应关系的一对矩形图像输入预先建立的卷积神经网络模型。
S102:根据所述卷积神经网络模型输出的所述一对矩形图像的四个顶点坐标之间的偏差以及所述一对矩形图像中的一幅矩形图像的已知四个顶点坐标确定所述一对矩形图像中另一幅矩形图像的四个顶点坐标。
在本申请实施例中,将存在单应性对应关系的一对矩形图像输入预先建立的卷积神经网络模型之后,通过卷积神经网络模型最终输出的是一对矩形图像的四个顶点坐标之间的偏差。
而单应性矩阵计算公式具体为:其中,H为两幅图像的单应性矩阵,(u′,v′)以及(u,v)为同一像素在两幅图像中的映射关系,则根据单应性矩阵计算公式,最终想要确定出两幅图像的单应性矩阵,则需要知道两幅图像相对应的四对坐标,而一对矩形图像中的一幅矩形图像的四个顶点坐标可以明确确定出来,也就是,假设以一对矩形图像中的一幅矩形图像中心点为原点,将该矩形图像的四个顶点坐标固定,以该矩形图像中心为坐标原点,则该矩形图像的四个顶点坐标是可以确定的,一对矩形图像中的另一幅矩形图像可以通过将一对矩形图像中的一幅矩形图像的已知四个顶点坐标与之对应的输出的一对矩形图像的顶点坐标之间的偏差相加,从而在另一幅矩形图像中可以确定出与一对矩形图像中的一幅矩形图像的已知四个顶点坐标相对应的顶点坐标。
S103:根据所述一幅矩形图像的已知四个顶点坐标和所述另一幅矩形图像的四个顶点坐标,确定所述一对矩形图像对应的单应性矩阵。
在本申请实施例中,当确定出四对坐标后,可以根据单应性矩阵计算公式确定两幅图像的单应性矩阵。
通过上述方法,由于在训练卷积神经网络模型时所使用的训练图像集是进行过亮度、模糊度、噪声和子图像位置扰动的,充分考虑了图像质量对于训练和使用模型的精度影响,因此,可以提升模型的鲁棒性以及自适应能力,相对于使用VGG-style网络确定包含同一对象的两幅的图像对应的单应性矩阵而言,精度更高。
在此需要说明的是,根据实际实验测试,测试出本申请所使用的卷积神经网络模型大小为12.52M,卷积神经网络模型精度平均误差为5.3,而现有技术中所使用VGG-style网络模型大小为260.91M,模型精度平均误差为9.2。
上述就是卷积神经网络模型的建立方式,以及根据卷积神经网络模型来确定包含同一对象的任意两幅图像的单应性矩阵的方式,而在实际应用中,通过建立卷积神经网络模型,并根据卷积神经网络模型来确定包含同一对象的任意两幅图像的单应性矩阵,可以广泛的应用到人们的实际生活中,在此,本申请将提供若干基于单应性矩阵的应用,详细说明根据卷积神经网络模型来确定包含同一对象的任意两幅图像的单应性矩阵在人们实际生活中的应用。
第一种应用:
在实际应用中,由于摄像机在拍摄的过程中,有可能会出现摄像机抖动,从而使得所拍摄的画面瞬间发生剧烈的抖动变化的情况,因此,为了能够在摄像机出现抖动的时候,所拍摄的画面不会瞬间发生剧烈的抖动变化,而是实现所拍摄的画面的每一帧能够平滑的发生的变化,在本申请中,可以基于训练好的卷积神经网络模型来确定相邻两幅图像的四个顶点的坐标偏差,根据坐标偏差对画面进行矫正,从而达到所拍摄的画面不会瞬间发生剧烈的抖动变化,而是实现所拍摄的画面的每一帧能够平滑的发生的变化的效果。
具体如下:
以所拍摄的画面抖动前一帧开始,依次将前一帧画面与相邻的下一帧画面(即,图7中的画面序列)输入到上述建立的卷积神经网络模型,输出前一帧画面与相邻的下一帧画面的四个顶点的顶点坐标之间的偏差(即,图7中的画面序列偏移),根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差(即,图7中的相机运动轨迹),根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差(图7中的相机运动轨迹平滑),根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标,根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵(即,图7中的单应性矩阵变换),并矫正每帧画面。
在此需要说明的是,根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差(图7中的相机运动轨迹平滑),具体可以:针对任一帧画面,确定位于该帧画面之前的每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,将确定出的位于该帧画面之前的每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差之和作为该帧画面与第一帧画面的四个顶点坐标之间的偏差,即,pt为该帧画面与第一帧画面的四个顶点坐标之间的偏差,Δi为第i帧画面与第i-1帧画面的四个顶点坐标之间的偏差,从而得到如图6所示的每帧画面与第一帧画面的四个顶点坐标之间的偏差。
另外,在此还需要说明的是,在本申请中,根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差(图7中的相机运动轨迹平滑),具体可以:以所拍摄的画面抖动前一帧画面开始,依次根据前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及,下一帧画面与第一帧画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,其中,pt′为下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,pt为下一帧画面与第一帧画面的四个顶点坐标之间的偏差,p′t-1为前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,α为权重系数,用于调整画面的稳定情况和保留情况,直到所有帧的画面与第一帧画面的四个顶点坐标之间的矫正偏差都确定完成,从而得到如图6所示的每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差。
进一步的,在本申请中,根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵(即,图7中的单应性矩阵变换),并矫正每帧画面,具体可以:当指定的两帧画面包括:前一帧画面与相邻的下一帧画面时,,来确定下一帧画面的矫正方位(其中,该矫正方位包括下一帧画面矫正后的四个顶点的顶点坐标)针对任一帧画面,根据确定出的该帧画面的四个顶点矫正坐标以及与该帧画面相邻的前一帧画面的四个顶点矫正坐标,通过单应性矩阵公式,确定前一帧画面与该帧画面之间的单应性矩阵,将下一帧画面通过确定出的单应性矩阵矫正成前一帧画面,重复上述过程,直到将该帧画面矫正到跟第一帧画面一致,最后,将所有帧画面均矫正到跟第一帧画面一致;当指定的两帧画面包括:第一帧画面与其他帧画面时,针对任一帧画面,根据确定出的该帧画面的四个顶点矫正坐标以及第一帧画面画面的四个顶点矫正坐标,通过单应性矩阵公式,确定第一帧画面与该帧画面之间的单应性矩阵,将该帧画面通过确定出的单应性矩阵矫正成第一帧画面,重复上述过程,直到将该帧画面矫正到跟第一帧画面一致,最后,将所有帧画面均矫正到跟第一帧画面一致。
进一步的,当所有帧画面均矫正到跟第一帧画面一致之后,裁剪所有帧画面中的共同内容(即,图7中的画面剪裁输出),即可得到一个更平滑,稳定的视频,也就是实现所拍摄的画面的每一帧能够平滑的发生的变化,整个过程具体如图7所示。
在此需要说明的是,对矫正后的每帧画面,求取非黑边部分的最大内接矩形,且矩形的宽高比应为显示的比例,一般情况下,应当保证裁剪后至少有80%的保留率。
例如,如图8所示,图8中的(a)与(b)为同一个摄像机在实景拍摄视频中的相邻两帧画面,为了简单方便的说明本申请的方案,在此只以(a)与(b)两幅画面为例进行说明,实际上抖动发生时会出现多帧的画面,但是原理跟两幅画面是一致的,(a)为所拍摄的画面抖动前一帧画面(即,第一帧画面),(b)为相邻的下一帧画面,将(a)画面与(b)画面输入到上述建立的卷积神经网络模型,输出(a)画面与(b)画面的四个顶点的顶点坐标之间的偏差(也就是确定(b)画面与(a)画面的四个顶点坐标之间的偏差),针对(b)画面,确定位于(b)画面之前的每对卷积神经网络模型输出的(a)画面与(b)画面的四个顶点坐标之间的偏差,将确定出的位于(b)画面之前的每对卷积神经网络模型输出的(a)画面与(b)画面的四个顶点坐标之间的偏差之和作为(b)画面与(a)画面的四个顶点坐标之间的偏差,以所拍摄的画面抖动前一帧画面开始,依次根据(a)画面与(b)画面的四个顶点坐标之间的矫正偏差以及,(a)画面与(b)画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定(a)画面与(b)画面的四个顶点坐标之间的矫正偏差,根据(a)画面的四个顶点的顶点矫正坐标以及输出的(a)画面与(b)画面的四个顶点的顶点坐标之间的矫正偏差,确定(b)画面的四个顶点的顶点矫正坐标,,来确定,最后,根据(b)画面的四个顶点矫正坐标与(a)画面的四个顶点矫正坐标,通过单应性矩阵公式,确定(a)画面与(b)画面之间的单应性矩阵,将(b)画面通过确定出的单应性矩阵矫正成(a)画面,裁剪所有帧画面中的共同内容,裁剪(b)画面得到图8中的(c)画面,将(c)画面替换原来的(b)画面。
通过上述方式,可以有效的使得所拍摄的画面不会瞬间发生剧烈的抖动变化,而是实现所拍摄的画面的每一帧能够平滑的发生的变化的效果。
第二种应用:
在实际应用中,观看视频直播已经逐渐成为人们日常生活中一种重要的娱乐方式,而在进行视频直播的过程中,为了增强视频直播中虚拟与现实的互动性,当摄像机的当前时刻的影像到达指定的位置时,则会在屏幕上显示预设的虚拟物,当摄像机的当前时刻的影像没有到达指定的位置时,则不会在在屏幕上显示预设的虚拟物,在本申请中,可以根据当前影像与指定的位置的影像,通过上述建立的卷积神经网络模型来判断摄像机的当前时刻的影像是否到达指定的位置。
具体过程如下:
从直播视频中,提取当前时刻的m帧画面,依次针对m帧画面中的每个画面,将该画面与目标画面共同输入到上述建立的卷积神经网络模型中,输出该画面与目标画面的四个顶点的顶点坐标之间的偏差,也就是,四对顶点的位置偏差,直到确定出m帧画面中每个画面与目标画面的四个顶点的顶点坐标之间的偏差,再根据确定出m帧画面中每个画面与目标画面的四个顶点的顶点坐标之间的偏差Vi,通过公式:来确定摄像机的当前时刻的影像是否没有到达指定的位置。
在此需要说明的是,目标画面指的是指定位置所对应的画面,是提前已知确定的,另外,公式中的m指的是m帧画面的数量,T,S为预设的阈值,两个预设的阈值可以相同,也可以不同。
另外,在此还需要说明的是,再根据确定出m帧画面中每个画面与目标画面的四个顶点的顶点坐标之间的偏差Vi之后,还可以通过公式‖V‖<S来确定摄像机的当前时刻的影像是否没有到达指定的位置,其中,其中,‖·‖可以是0范数,1范数,2范数等距离公式,S是预设的阈值,V为当前m帧画面的方位偏差矩阵[Vij]m×8,当然,还可以根据其他公式来确定摄像机的当前时刻的影像是否没有到达指定的位置,只要能够通过公式让当前时刻的影像与目标画面的方位偏差尽量小即可。
进一步的,当根据确定出m帧画面中每个画面与目标画面的四个顶点的顶点坐标之间的偏差满足公式时,则确定摄像机的当前时刻的影像到达指定的位置;当根据确定出m帧画面中每个画面与目标画面的四个顶点的顶点坐标之间的偏差未满足公式时,则确定摄像机的当前时刻的影像没有到达指定的位置。
进一步的,当确定出摄像机的当前时刻的影像到达指定的位置时,则会在屏幕上显示预设的虚拟物,当确定初摄像机的当前时刻的影像没有到达指定的位置时,则不会在在屏幕上显示预设的虚拟物,需要继续移动摄像机直到摄像机当前时刻的影像与目标画面通过公式匹配成功,这也说明,摄像机的当前时刻的影像到达指定的位置。
通过上述方式,可以有效的确定出摄像机的当前时刻的影像是否没有到达指定的位置。
此外,在使用相机进行全景画面的拍摄的过程中,难免会出现摄像头无法稳定在同一水平线上,从而造成相邻的前一帧与后一帧的画面的拼接会不稳定的情况,因此,在本申请中,可以基于训练好的卷积神经网络模型来确定相邻两幅画面的单应性矩阵,将后一帧的画面调整到前一帧的画面的角度,从而使得相邻的前一帧与后一帧的画面进行稳定的拼接。
具体如下:
将前一帧画面与相邻的下一帧画面输入到上述建立的卷积神经网络模型,输出前一帧画面与相邻的下一帧画面的四个顶点的顶点坐标之间的偏差,根据前一帧画面的四个顶点的顶点坐标以及输出的前一帧画面与相邻的下一帧画面的四个顶点的顶点坐标之间的偏差,确定下一帧画面的四个顶点的顶点坐标,并根据前一帧画面与相邻的下一帧画面的四对顶点的顶点坐标,通过单应性矩阵计算公式,确定出前一帧画面与相邻的下一帧画面之间的单应性矩阵,最后,再将相邻的下一帧画面中的每一个像素通过确定出的单应性矩阵转换成矫正画面,将矫正画面与前一帧画面进行拼接。
通过上述方式,可以有效的使得相邻的前一帧与后一帧的画面进行稳定的拼接。
以上为本申请实施例提供的基于卷积神经网络的视频防抖方法,基于同样的思路,本申请实施例还提供一种基于卷积神经网络的视频防抖装置。
如图9所示,本申请实施例提供的一种基于卷积神经网络的视频防抖装置包括:
输入模块901,用于依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
偏差确定模块902,用于根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差;
矫正偏差模块903,用于根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差;
顶点矫正坐标确定模块904,用于根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标;
画面矫正模块905,用于根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵,并根据该单应性矩阵矫正每帧画面。
所述装置还包括:
模型训练模块906,用于在输入模块901依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型之前,制作训练图像集,其中,所述训练图像集包括至少一对存在单应性对应关系的矩形图像,初始化待训练的卷积神经网络模型内的各权重参数,将所述至少一对存在单应性对应关系的矩形图像输入待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述至少一对存在单应性对应关系的矩形图像的顶点坐标的偏差以及所述至少一对存在单应性对应关系的矩形图像的顶点坐标训练所述待训练的卷积神经网络模型内的各权重参数,得到卷积神经网络模型。
所述至少一对存在单应性对应关系的矩形图像均为灰度图像,和/或所述至少一对存在单应性对应关系的矩形图像包括图像的中心点且尺寸相同。
该装置还包括:
扰动模块907,用于对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度、模糊度、噪声和子图像位置中的至少一者进行扰动。
所述卷积神经网络模型内的最后一个池化层的核大小为4x4,所述卷积层的卷积核的通道数为64。
所述模型训练模块906,还用于按照随机梯度下降法将所述训练图像集中的存在单应性对应关系的矩形图像输入所述待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的偏差,以及所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的顶点坐标之间的差值,构建损失函数,直至损失函数符合预先设定的模型精度值。
所述扰动模块907具体用于,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数r,根据所生成的随机数r,通过公式p′=p×(1.0+r)确定该幅矩形图像中每个像素点的新灰度值,其中,p′表示新灰度值,P表示原始灰度值,r表示随机数;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的模糊度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数a,以随机数a为模糊半径,对该幅矩形图像进行高斯模糊;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的噪声进行扰动的方式为:针对待扰动的一幅矩形图像,生成密度随机数以及强度随机数,根据密度随机数以及强度随机数,在该幅矩形图像内生成椒盐噪声;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的子图像位置进行扰动的方式为:针对待扰动的一幅矩形图像,在该幅图像内随机选择两个不同位置且相同尺寸的子图像,交换两个子图像内的所有像素。
其中随机梯度下降法使用的下降策略为:其中,lr为当前学习率,iter为当前迭代次数,max_iter为最大迭代次数,power为控制学习率下降快慢的参数,base_lr为基础学习率;和/或,模型精度按照如下公式计算:si=pi-ri,其中,M为测试样本集的数量,pi为一对矩形图像i的顶点坐标的预测偏差,ri为一对矩形图像i的顶点坐标的真实偏差。
所述偏差确定模块902具体用于,对每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差进行累加,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差。
所述矫正偏差模块903具体用于,依次根据前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及,下一帧画面与第一帧画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,其中,pt′为下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,pt为下一帧画面与第一帧画面的四个顶点坐标之间的偏差,p′t-1为前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,α为权重系数。
所述指定的两帧画面包括:前一帧画面与相邻的下一帧画面;所述画面矫正模块905具体用于,通过单应性矩阵,将所述相邻的下一帧画面矫正到前一帧画面,直到将所述相邻的下一帧画面矫正到第一帧画面;所述指定的两帧画面包括:第一帧画面与其他帧画面;所述画面矫正模块905具体用于,通过单应性矩阵,将所述其他帧画面矫正到第一帧画面。
如图10所示,本申请实施例提供的一种基于卷积神经网络的图像对齐装置包括:
输入模块1001,用于将前一帧画面与相邻的下一帧画面输入预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系;
顶点坐标确定模块1002,用于根据所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差以及前一帧画面的已知四个顶点坐标确定相邻的下一帧画面的四个顶点坐标;
单应性矩阵确定模块1003,用于根据所述前一帧画面的已知四个顶点坐标和所述相邻的下一帧画面的四个顶点坐标,确定所述前一帧画面与相邻的下一帧画面对应的单应性矩阵;
矫正模块1004,用于根据确定出的单应性矩阵,对相邻的下一帧画面进行矫正。
另外,本申请实施例还提供一种基于卷积神经网络的视频防抖***,该***包括:
处理器、计算机可读存储器、和计算机可读存储介质;
程序,用于依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系,根据每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差,根据确定出的每帧画面与第一帧画面的四个顶点坐标之间的偏差,确定每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,根据每帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及第一帧画面的已知四个顶点坐标,确定每帧画面的四个顶点矫正坐标,根据确定出的每帧画面的四个顶点矫正坐标,确定指定的两帧画面之间的单应性矩阵,并根据该单应性矩阵矫正每帧画面。
所述程序存储在所述计算机可读存储介质上,用于由所述处理器经由所述计算机可读存储器执行。
所述处理器、计算机可读存储器以及所述计算机可读存储介质可以用图11中的处理器、内部存储器、外部存储器来实现。
其中,图11为基于卷积神经网络的视频防抖***组成结构框图,其中示出了基于卷积神经网络的视频防抖***的主要部件。图11中,处理器1110、内部存储器1105、总线桥1120以及网络接口1115接入***总线1140,总线桥1120用于桥接***总线1140和I/O总线1145,I/O接口接入I/O总线1145,USB接口以及外部存储器与I/O接口连接。图11中,处理器1110可以为一个或多个处理器,每个处理器可以具有一个或者多个处理器内核;内部存储器1105为易失性存储器,例如寄存器、缓存器、各种类型的随机存取存储器等;在基于卷积神经网络的视频防抖***运行的时候,内部存储器1105中的数据包括操作***和应用程序;网络接口1015可以为以太网接口、光纤接口等;***总线1140可以用来传送数据信息、地址信息、以及控制信息;总线桥1120可以用来进行协议转换,将***总线协议转换为I/O协议或者将I/O协议转换为***总线协议以实现数据传输;I/O总线1145用来数据信息和控制信息,还可以总线终结电阻或电路来降低信号反射干扰;I/O接口1130主要与各种外部设备连接,例如键盘、鼠标、传感器等等,闪存可以通过USB接口接入I/O总线,外部存储器为非易失性存储器,例如硬盘、光盘等。在基于卷积神经网络的视频防抖***运行之后,处理器可以将存储于外部存储其中的数据读取到内部存储器中,并对内部存储其中的***指令进行处理,完成操作***以及应用程序的功能。该示例基于卷积神经网络的视频防抖***可以为位于台式机、笔记本电脑、平板电脑、智能手机等。
优选地,所述程序还用于,在依次将前一帧画面与相邻的下一帧画面输入到预先建立的卷积神经网络模型之前,制作训练图像集,其中,所述训练图像集包括至少一对存在单应性对应关系的矩形图像,初始化待训练的卷积神经网络模型内的各权重参数,将所述至少一对存在单应性对应关系的矩形图像输入待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述至少一对存在单应性对应关系的矩形图像的顶点坐标的偏差以及所述至少一对存在单应性对应关系的矩形图像的顶点坐标训练所述待训练的卷积神经网络模型内的各权重参数,得到卷积神经网络模型。
优选地,所述程序还用于,所述至少一对存在单应性对应关系的矩形图像均为灰度图像,和/或所述至少一对存在单应性对应关系的矩形图像包括图像的中心点且尺寸相同。
优选地,所述程序还用于,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度、模糊度、噪声和子图像位置中的至少一者进行扰动。
优选地,所述程序还用于,所述卷积神经网络模型内的最后一个池化层的核大小为4x4,所述卷积层的卷积核的通道数为64。
优选地,所述程序还用于,按照随机梯度下降法将所述训练图像集中的存在单应性对应关系的矩形图像输入所述待训练的卷积神经网络模型,根据待训练的卷积神经网络模型输出的所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的偏差,以及所述训练图像集中的存在单应性对应关系的矩形图像的顶点坐标的顶点坐标之间的差值,构建损失函数,直至损失函数符合预先设定的模型精度值。
优选地,所述程序还用于,对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的亮度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数r,根据所生成的随机数r,通过公式p′=p×(1.0+r)确定该幅矩形图像中每个像素点的新灰度值,其中,p′表示新灰度值,P表示原始灰度值,r表示随机数;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的模糊度进行扰动的方式为:针对待扰动的一幅矩形图像,生成随机数a,以随机数a为模糊半径,对该幅矩形图像进行高斯模糊;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的噪声进行扰动的方式为:针对待扰动的一幅矩形图像,生成密度随机数以及强度随机数,根据密度随机数以及强度随机数,在该幅矩形图像内生成椒盐噪声;对所述至少一对存在单应性对应关系的矩形图像中的一幅矩形图像的子图像位置进行扰动的方式为:针对待扰动的一幅矩形图像,在该幅图像内随机选择两个不同位置且相同尺寸的子图像,交换两个子图像内的所有像素。
优选地,所述程序还用于,其中随机梯度下降法使用的下降策略为:其中,lr为当前学习率,iter为当前迭代次数,max_iter为最大迭代次数,power为控制学习率下降快慢的参数,base_lr为基础学习率;和/或,模型精度按照如下公式计算:si=pi-ri,其中,M为测试样本集的数量,pi为一对矩形图像i的顶点坐标的预测偏差,ri为一对矩形图像i的顶点坐标的真实偏差。
优选地,所述程序还用于,对每对所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差进行累加,确定每帧画面与第一帧画面的四个顶点坐标之间的偏差。
优选地,所述程序还用于,依次根据前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差以及,下一帧画面与第一帧画面的四个顶点坐标之间的偏差,通过矫正公式pt′=argminp(α‖p-p′t-1‖+(1-α)‖p-pt‖)确定下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,其中,pt′为下一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,pt为下一帧画面与第一帧画面的四个顶点坐标之间的偏差,p′t-1为前一帧画面与第一帧画面的四个顶点坐标之间的矫正偏差,α为权重系数。
优选地,所述程序还用于,所述指定的两帧画面包括:前一帧画面与相邻的下一帧画面,通过单应性矩阵,将所述相邻的下一帧画面矫正到前一帧画面,直到将所述相邻的下一帧画面矫正到第一帧画面;所述指定的两帧画面包括:第一帧画面与其他帧画面,通过单应性矩阵,将所述其他帧画面矫正到第一帧画面。
本申请实施例还提供一种基于卷积神经网络的图像对齐***,该***包括:
处理器、计算机可读存储器、和计算机可读存储介质;
程序,用于将前一帧画面与相邻的下一帧画面输入预先建立的卷积神经网络模型,其中,所述前一帧画面与相邻的所述下一帧画面存在单应性对应关系,根据所述卷积神经网络模型输出的前一帧画面与相邻的下一帧画面的四个顶点坐标之间的偏差以及前一帧画面的已知四个顶点坐标确定相邻的下一帧画面的四个顶点坐标,根据所述前一帧画面的已知四个顶点坐标和所述相邻的下一帧画面的四个顶点坐标,确定所述前一帧画面与相邻的下一帧画面对应的单应性矩阵,根据确定出的单应性矩阵,对相邻的下一帧画面进行矫正。
所述程序存储在所述计算机可读存储介质上,用于由所述处理器经由所述计算机可读存储器执行。
所述处理器、计算机可读存储器以及所述计算机可读存储介质可以用图11中的处理器、内部存储器、外部存储器来实现。
其中,图11为基于卷积神经网络的图像对齐***组成结构框图,其中示出了基于卷积神经网络的图像对齐***的主要部件。图11中,处理器1110、内部存储器1105、总线桥1120以及网络接口1115接入***总线1140,总线桥1120用于桥接***总线1140和I/O总线1145,I/O接口接入I/O总线1145,USB接口以及外部存储器与I/O接口连接。图11中,处理器1110可以为一个或多个处理器,每个处理器可以具有一个或者多个处理器内核;内部存储器1105为易失性存储器,例如寄存器、缓存器、各种类型的随机存取存储器等;在基于卷积神经网络的图像对齐***运行的时候,内部存储器1105中的数据包括操作***和应用程序;网络接口1015可以为以太网接口、光纤接口等;***总线1140可以用来传送数据信息、地址信息、以及控制信息;总线桥1120可以用来进行协议转换,将***总线协议转换为I/O协议或者将I/O协议转换为***总线协议以实现数据传输;I/O总线1145用来数据信息和控制信息,还可以总线终结电阻或电路来降低信号反射干扰;I/O接口1130主要与各种外部设备连接,例如键盘、鼠标、传感器等等,闪存可以通过USB接口接入I/O总线,外部存储器为非易失性存储器,例如硬盘、光盘等。在基于卷积神经网络的图像对齐***运行之后,处理器可以将存储于外部存储其中的数据读取到内部存储器中,并对内部存储其中的***指令进行处理,完成操作***以及应用程序的功能。该示例基于卷积神经网络的图像对齐***可以为位于台式机、笔记本电脑、平板电脑、智能手机等。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。