技术摘要:
本发明公开了一种基于LSTM网络的光场视频时域超分辨重建方法,具体包括如下步骤:通过raytrix光场相机拍摄获得光场视频;通过light field toolbox工具将光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像;然后从光场视频祯图像中抽取光场参数;将获取的光场视 全部
背景技术:
近年来,基于光场成像技术的成像系统能够实现先拍摄后聚焦、动态调整光圈及 景深、获取场景深度等新颖的成像效果。与计算摄影学领域的代表性技术,光场成像利用创 新的光学设计与计算成像理论突破了传统成像技术的限制,提升了成像系统的性能。目前, 光场成像技术以广泛应用与计算机视觉,虚拟和增强现实等领域,并以拓展至更多的潜在 应用领域。 由于有限的带宽积限制,现有光场成像系统仍存在分辨率折衷瓶颈。目前,基于光 场成像1.0设计和光场成像2.0设计的众多成像设备,仍存在空间分辨率不足和帧率较低的 问题。例如,光场成像1.0系统Lytro公司推出的Lytro1.0仅具备单帧拍摄功能,而Lytro二 代Illum光场相机在连续模式下也仅具备每秒3帧的拍摄功能。Raytrix公司的2.0光场相机 产品同样仅具备每秒6-12帧的拍摄能力。然而,现实场景中,需要对动态目标进行高质量的 视频拍摄,其帧率应不低于人眼视觉暂留标准的每秒24帧。因此,光场成像系统的时域分辨 率不足问题仍是该领域亟待解决的问题之一。 面向视频的时域超分辨重建是由时域采样率较低的低帧率视频估计其高分辨率 视频的过程。而光场视频的时域超分辨则是在单帧图像清晰、光场多视角变化连续、相邻视 频帧没有抖动等方面达到较优的结果。 近年来,深度学习的理论与方法在各领域得到了快速的发展和普及。随着SRCNN在 单帧图像超分辨率方面的成功应用,在图像超分辨领域深度学习理论也日益得到学术界和 工业界的关注。长短期记忆网络Long Short-Term Memory(LSTM),是目前公认针对序列预 测问题的有效解决方案,LSTM在精度与效率方面都优于传统的前馈神经网络和Recurrent Neural Network(RNN)神经网络。目前,结合多约束条件采用LSTM神经网络对光场视频进行 时域的超分辨率重建的相关方法尚未见报道。
技术实现要素:
本发明的目的是提供一种基于LSTM网络的光场视频时域超分辨重建方法,该方法 通过提出光场视频在时域超分辨的新约束条件,并改进现有深度学习的LSTM网络,实现针 对光场视频的2.0X倍以上高质量时域分辨率的提升效果。 本发明所采用的技术方案是,一种基于LSTM网络的光场视频时域超分辨重建方 法,具体包括如下步骤: 步骤1,通过raytrix光场相机拍摄获得光场视频; 步骤2,把步骤1获得的光场视频读入MATLAB,并通过light field toolbox工具将 光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像org_lfv;然后从光场视频祯 5 CN 111598775 A 说 明 书 2/9 页 图像org_lfv中抽取光场参数; 步骤3,将步骤2获取的光场视频祯图像org_lfv和光场参数进行旋转,创建一个五 维的光场坐标lfv_STUV(s,t,u,v,P); 步骤4,通过双平面参数化表征光场图像成像原理,建立UV平面和ST平面,获取子 孔径图像; 步骤5,对步骤4获取的子孔径图像进行归一化处理,即将每张子孔径图像按行为 单位排成一维数据; 步骤6,对步骤5所得的所有光场视频帧的数据以滚动窗口的方式进行循环,每连 续10帧光场图像的子孔径图像作为一组batch数据,所有光场视频祯图像形成的N组batch 数据形成数据集,该数据集的前80%作为训练集,该数据集的后20%作为测试集; 步骤7,采用Keras框架的Sequential方法对LSTM网络进行初始化操作,同时设定 LSTM网络的隐藏层单元个数和激活函数; 步骤8,确定LSTM网络损失函数; 步骤9,在LSTM网络中对步骤6所得的训练集进行训练,获得模型; 步骤10,对步骤9所得模型进行加载并测试数据,获得新的光场视频。 本发明的特点还在于, 步骤2中光场参数包括:光场白图像、单个微透镜的高度和宽度、微透镜阵列旋转 角度θ、微透镜水平间隔x、垂直间隔y以及微透镜中心点坐标。 步骤3的具体过程为: 步骤3.1,将光场视频祯图像org_lfv和光场白图像进行旋转,旋转角度为θ; 步骤3.2,根据微透镜水平间隔x计算光场视频帧的透镜阵列的长u,计算过程如下 公式所示: u=ceil(y/2)*2 1; 根据微透镜垂直间隔y计算光场视频帧的透镜阵列的宽v,计算过程如下公式所 示: v=ceil(x/2)*2 1; 其中,ceil函数为不小于本身的最小整数; 步骤3.3,将单个微透镜的高和宽的值分别对应赋给s、t; 步骤3.4,根据将步骤3.2和步骤3.3得到的s、t、v、u数据创建一个五维的光场坐标 lfv_STUV(s,t,u,v,3),其中3为图像通道数。 步骤4的具体过程为: 步骤4.1,求UV平面和ST平面对应的高和宽; UV平面的高为:UV.h=u; UV平面的宽为:UV.w=v; ST平面的高为:ST.h=s; ST平面的宽为:ST.w=t; 步骤4.2,基于步骤4.1的计算结果,求UV平面中心点的坐标(UV_c.x,UV_c.y),具 体计算过程如下: UV_c.x=floor(u/2) 1; 6 CN 111598775 A 说 明 书 3/9 页 UV_c.y=floor(v/2) 1; 其中,floor函数是取不大于本身的最大整数; 步骤4.3,将步骤3中的光场白图像变为灰度图像,并进行二值化处理,用于对微透 镜中心进行标定; 步骤4.4,循环遍历每个微透镜,采用如下公式计算微透镜中心点坐标(Lenti_ center.x,Lenti_center.y): Lenti_center.x=round(centers((s-1)*ST.h t,1)) 1; Lenti_center.y=round(centers((t-1)*ST.w t,2)) 1; 其中,s和t分别为(1:ST.h)与(1:ST.w)循环变量,round函数为对数据四舍五入取 整; 步骤4.5,根据如下公式计算对应微透镜中垂直和水平方向上相对于中心点的偏 移量(os_x,os_y): os_x=UV_c.x-i; os_y=UV_c.y-j; 其中,i和j分别为(1:UV.h)与(1:UV.w)的循环变量; 步骤4.6,根据步骤4.4和步骤4.5所得结果计算光场视频帧图像对 应方向像素点坐标(org_coords.x,org_coords.y),具体计算过程如下: org_coords.x=Lenti_center.x os_x; org_coords.y=Lenti_center.y os_y; 步骤4.7,根据步骤4.6得到的光场视频帧图像对应像素点的位置后,对该帧图像 的每个像素点进行三个通道的赋值,具体公式如下: org_path.r=org_lfv(org_coords.y,org_coords.x,1); org_path.g=org_lfv(org_coords.y,org_coords.x,2); org_path.b=org_lfv(org_coords.y,org_coords.x,3); 步骤4.8,将步骤4.7所得结果保存在光场五维坐标lfv_STUV(s,t,u,v,P)中,P分 别取1,2,3;具体采用如下公式: lfv_STUV(s,t,u,v,1)=org_path.r; lfv_STUV(s,t,u,v,2)=org_path.g; lfv_STUV(s,t,u,v,3)=org_path.b; 则,该五维光场视频祯坐标中,由不同(u,v)坐标获得的u*v幅图像就是对应的该 帧光场图像的u*v张子孔径图像。 步骤5的具体过程为: 每次读取图像时采用numpy库的array方法先将图片转化为python的矩阵,然后除 以255,就完成了归一化;同时,把所有的数据通过reshape方法转化为一维矩阵,即把每张 子孔径图像按行为单位排成一维数据。 步骤8的具体过程为: 采用自定义损失函数,该损失函数包括三部分分别为:loss1、Loss2、Loss3; loss1利用均方误差MES来定义loss1,loss1的定义公式如下: 7 CN 111598775 A 说 明 书 4/9 页 其中,(u,v)带表光场中的某一视角,Ii代表groundtruth,I′i代表预测出的图像,t 代表微透镜阵列的微透镜个数; Loss2是光场视频帧图像在时间t维度下预测序列S的相邻帧MSE二阶变化得到,定 义如下: 其中, 表示MSE函数,k表示时间步长; Loss3是度量预测光场帧含有的多个子孔径图像视角变化是否连续,定义如下: 其中,函数f(x)为MSE函数,Ii(u 1,v)为视角I(u,v)的右相邻视角; 根据loss1、Loss2、Loss3确定最终总的损失函数loss: loss=w1*loss1 w2*loss2 w3*loss3; 其中,w1、w2、w3分别表示不同的权值。 步骤9的具体过程为: 步骤9.1,确定优化器为adam,Adam优化器最适合的学习率为0.001; 步骤9.2,基于步骤7设定的隐藏层单元个数、激活函数以及步骤9.1确定的优化器 及学习率,采用fit方法将步骤6的训练集传入LSTM网络进行训练; 步骤9.3,训练集包含多组batch,每传入一组batch数据,LSTM网络都会自动的选 择这一组batch需要记忆和遗忘的光场视频帧图像,在需要记忆的光场视频帧中,每一帧又 按不同的权重去学习和记忆,学习记忆之后预测的结果会和groundtruth组成步骤8最终所 得的损失函数loss,然后优化器通过迭代来缩小损失值,将损失值最小化; 9.4进入下一组batch继续训练,不断更新网络的权值,直至所有组batch都已经训 练完毕,获得模型,并采用Keras的save方法保存模型。 步骤10的具体过程为: 采用Keras框架中的load_model方法加载模型,并把步骤6的测试集数据以fit的 方式传入步骤9训练好的LSTM网络模型当中,网络输出的即为预测得到新的光场视频帧。 本发明的有益效果是,本发明提出的新代价损失函数的建立,使得所述的基于 LSTM的光场视频时域超分辨率重建方法在多个方面具有明显优势。该方法的优势体现可以 有效抑制光场时域重建结果的单帧图像失真、光场相邻帧数据的抖动、光场子视角变化的 不连续性等问题,从而有效提升光场时域超分辨结果的质量。此外,针对有限训练样本,在 时间序列的学习方面,LSTM网络模型在训练及预测的精度和效率方面显著优于传统的简单 卷积神经网络模型。
本发明公开了一种基于LSTM网络的光场视频时域超分辨重建方法,具体包括如下步骤:通过raytrix光场相机拍摄获得光场视频;通过light field toolbox工具将光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像;然后从光场视频祯图像中抽取光场参数;将获取的光场视 全部
背景技术:
近年来,基于光场成像技术的成像系统能够实现先拍摄后聚焦、动态调整光圈及 景深、获取场景深度等新颖的成像效果。与计算摄影学领域的代表性技术,光场成像利用创 新的光学设计与计算成像理论突破了传统成像技术的限制,提升了成像系统的性能。目前, 光场成像技术以广泛应用与计算机视觉,虚拟和增强现实等领域,并以拓展至更多的潜在 应用领域。 由于有限的带宽积限制,现有光场成像系统仍存在分辨率折衷瓶颈。目前,基于光 场成像1.0设计和光场成像2.0设计的众多成像设备,仍存在空间分辨率不足和帧率较低的 问题。例如,光场成像1.0系统Lytro公司推出的Lytro1.0仅具备单帧拍摄功能,而Lytro二 代Illum光场相机在连续模式下也仅具备每秒3帧的拍摄功能。Raytrix公司的2.0光场相机 产品同样仅具备每秒6-12帧的拍摄能力。然而,现实场景中,需要对动态目标进行高质量的 视频拍摄,其帧率应不低于人眼视觉暂留标准的每秒24帧。因此,光场成像系统的时域分辨 率不足问题仍是该领域亟待解决的问题之一。 面向视频的时域超分辨重建是由时域采样率较低的低帧率视频估计其高分辨率 视频的过程。而光场视频的时域超分辨则是在单帧图像清晰、光场多视角变化连续、相邻视 频帧没有抖动等方面达到较优的结果。 近年来,深度学习的理论与方法在各领域得到了快速的发展和普及。随着SRCNN在 单帧图像超分辨率方面的成功应用,在图像超分辨领域深度学习理论也日益得到学术界和 工业界的关注。长短期记忆网络Long Short-Term Memory(LSTM),是目前公认针对序列预 测问题的有效解决方案,LSTM在精度与效率方面都优于传统的前馈神经网络和Recurrent Neural Network(RNN)神经网络。目前,结合多约束条件采用LSTM神经网络对光场视频进行 时域的超分辨率重建的相关方法尚未见报道。
技术实现要素:
本发明的目的是提供一种基于LSTM网络的光场视频时域超分辨重建方法,该方法 通过提出光场视频在时域超分辨的新约束条件,并改进现有深度学习的LSTM网络,实现针 对光场视频的2.0X倍以上高质量时域分辨率的提升效果。 本发明所采用的技术方案是,一种基于LSTM网络的光场视频时域超分辨重建方 法,具体包括如下步骤: 步骤1,通过raytrix光场相机拍摄获得光场视频; 步骤2,把步骤1获得的光场视频读入MATLAB,并通过light field toolbox工具将 光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像org_lfv;然后从光场视频祯 5 CN 111598775 A 说 明 书 2/9 页 图像org_lfv中抽取光场参数; 步骤3,将步骤2获取的光场视频祯图像org_lfv和光场参数进行旋转,创建一个五 维的光场坐标lfv_STUV(s,t,u,v,P); 步骤4,通过双平面参数化表征光场图像成像原理,建立UV平面和ST平面,获取子 孔径图像; 步骤5,对步骤4获取的子孔径图像进行归一化处理,即将每张子孔径图像按行为 单位排成一维数据; 步骤6,对步骤5所得的所有光场视频帧的数据以滚动窗口的方式进行循环,每连 续10帧光场图像的子孔径图像作为一组batch数据,所有光场视频祯图像形成的N组batch 数据形成数据集,该数据集的前80%作为训练集,该数据集的后20%作为测试集; 步骤7,采用Keras框架的Sequential方法对LSTM网络进行初始化操作,同时设定 LSTM网络的隐藏层单元个数和激活函数; 步骤8,确定LSTM网络损失函数; 步骤9,在LSTM网络中对步骤6所得的训练集进行训练,获得模型; 步骤10,对步骤9所得模型进行加载并测试数据,获得新的光场视频。 本发明的特点还在于, 步骤2中光场参数包括:光场白图像、单个微透镜的高度和宽度、微透镜阵列旋转 角度θ、微透镜水平间隔x、垂直间隔y以及微透镜中心点坐标。 步骤3的具体过程为: 步骤3.1,将光场视频祯图像org_lfv和光场白图像进行旋转,旋转角度为θ; 步骤3.2,根据微透镜水平间隔x计算光场视频帧的透镜阵列的长u,计算过程如下 公式所示: u=ceil(y/2)*2 1; 根据微透镜垂直间隔y计算光场视频帧的透镜阵列的宽v,计算过程如下公式所 示: v=ceil(x/2)*2 1; 其中,ceil函数为不小于本身的最小整数; 步骤3.3,将单个微透镜的高和宽的值分别对应赋给s、t; 步骤3.4,根据将步骤3.2和步骤3.3得到的s、t、v、u数据创建一个五维的光场坐标 lfv_STUV(s,t,u,v,3),其中3为图像通道数。 步骤4的具体过程为: 步骤4.1,求UV平面和ST平面对应的高和宽; UV平面的高为:UV.h=u; UV平面的宽为:UV.w=v; ST平面的高为:ST.h=s; ST平面的宽为:ST.w=t; 步骤4.2,基于步骤4.1的计算结果,求UV平面中心点的坐标(UV_c.x,UV_c.y),具 体计算过程如下: UV_c.x=floor(u/2) 1; 6 CN 111598775 A 说 明 书 3/9 页 UV_c.y=floor(v/2) 1; 其中,floor函数是取不大于本身的最大整数; 步骤4.3,将步骤3中的光场白图像变为灰度图像,并进行二值化处理,用于对微透 镜中心进行标定; 步骤4.4,循环遍历每个微透镜,采用如下公式计算微透镜中心点坐标(Lenti_ center.x,Lenti_center.y): Lenti_center.x=round(centers((s-1)*ST.h t,1)) 1; Lenti_center.y=round(centers((t-1)*ST.w t,2)) 1; 其中,s和t分别为(1:ST.h)与(1:ST.w)循环变量,round函数为对数据四舍五入取 整; 步骤4.5,根据如下公式计算对应微透镜中垂直和水平方向上相对于中心点的偏 移量(os_x,os_y): os_x=UV_c.x-i; os_y=UV_c.y-j; 其中,i和j分别为(1:UV.h)与(1:UV.w)的循环变量; 步骤4.6,根据步骤4.4和步骤4.5所得结果计算光场视频帧图像对 应方向像素点坐标(org_coords.x,org_coords.y),具体计算过程如下: org_coords.x=Lenti_center.x os_x; org_coords.y=Lenti_center.y os_y; 步骤4.7,根据步骤4.6得到的光场视频帧图像对应像素点的位置后,对该帧图像 的每个像素点进行三个通道的赋值,具体公式如下: org_path.r=org_lfv(org_coords.y,org_coords.x,1); org_path.g=org_lfv(org_coords.y,org_coords.x,2); org_path.b=org_lfv(org_coords.y,org_coords.x,3); 步骤4.8,将步骤4.7所得结果保存在光场五维坐标lfv_STUV(s,t,u,v,P)中,P分 别取1,2,3;具体采用如下公式: lfv_STUV(s,t,u,v,1)=org_path.r; lfv_STUV(s,t,u,v,2)=org_path.g; lfv_STUV(s,t,u,v,3)=org_path.b; 则,该五维光场视频祯坐标中,由不同(u,v)坐标获得的u*v幅图像就是对应的该 帧光场图像的u*v张子孔径图像。 步骤5的具体过程为: 每次读取图像时采用numpy库的array方法先将图片转化为python的矩阵,然后除 以255,就完成了归一化;同时,把所有的数据通过reshape方法转化为一维矩阵,即把每张 子孔径图像按行为单位排成一维数据。 步骤8的具体过程为: 采用自定义损失函数,该损失函数包括三部分分别为:loss1、Loss2、Loss3; loss1利用均方误差MES来定义loss1,loss1的定义公式如下: 7 CN 111598775 A 说 明 书 4/9 页 其中,(u,v)带表光场中的某一视角,Ii代表groundtruth,I′i代表预测出的图像,t 代表微透镜阵列的微透镜个数; Loss2是光场视频帧图像在时间t维度下预测序列S的相邻帧MSE二阶变化得到,定 义如下: 其中, 表示MSE函数,k表示时间步长; Loss3是度量预测光场帧含有的多个子孔径图像视角变化是否连续,定义如下: 其中,函数f(x)为MSE函数,Ii(u 1,v)为视角I(u,v)的右相邻视角; 根据loss1、Loss2、Loss3确定最终总的损失函数loss: loss=w1*loss1 w2*loss2 w3*loss3; 其中,w1、w2、w3分别表示不同的权值。 步骤9的具体过程为: 步骤9.1,确定优化器为adam,Adam优化器最适合的学习率为0.001; 步骤9.2,基于步骤7设定的隐藏层单元个数、激活函数以及步骤9.1确定的优化器 及学习率,采用fit方法将步骤6的训练集传入LSTM网络进行训练; 步骤9.3,训练集包含多组batch,每传入一组batch数据,LSTM网络都会自动的选 择这一组batch需要记忆和遗忘的光场视频帧图像,在需要记忆的光场视频帧中,每一帧又 按不同的权重去学习和记忆,学习记忆之后预测的结果会和groundtruth组成步骤8最终所 得的损失函数loss,然后优化器通过迭代来缩小损失值,将损失值最小化; 9.4进入下一组batch继续训练,不断更新网络的权值,直至所有组batch都已经训 练完毕,获得模型,并采用Keras的save方法保存模型。 步骤10的具体过程为: 采用Keras框架中的load_model方法加载模型,并把步骤6的测试集数据以fit的 方式传入步骤9训练好的LSTM网络模型当中,网络输出的即为预测得到新的光场视频帧。 本发明的有益效果是,本发明提出的新代价损失函数的建立,使得所述的基于 LSTM的光场视频时域超分辨率重建方法在多个方面具有明显优势。该方法的优势体现可以 有效抑制光场时域重建结果的单帧图像失真、光场相邻帧数据的抖动、光场子视角变化的 不连续性等问题,从而有效提升光场时域超分辨结果的质量。此外,针对有限训练样本,在 时间序列的学习方面,LSTM网络模型在训练及预测的精度和效率方面显著优于传统的简单 卷积神经网络模型。