CN111598775A - 基于lstm网络的光场视频时域超分辨重建方法 - Google Patents
基于lstm网络的光场视频时域超分辨重建方法 Download PDFInfo
- Publication number
- CN111598775A CN111598775A CN202010336990.1A CN202010336990A CN111598775A CN 111598775 A CN111598775 A CN 111598775A CN 202010336990 A CN202010336990 A CN 202010336990A CN 111598775 A CN111598775 A CN 111598775A
- Authority
- CN
- China
- Prior art keywords
- light field
- field video
- org
- image
- lstm network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008859 change Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 60
- 238000012549 training Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000003384 imaging method Methods 0.000 claims description 17
- 238000012360 testing method Methods 0.000 claims description 14
- 230000004913 activation Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 11
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 9
- 238000010606 normalization Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000005096 rolling process Methods 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 230000000007 visual effect Effects 0.000 abstract description 2
- 230000006866 deterioration Effects 0.000 abstract 1
- 238000013135 deep learning Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于LSTM网络的光场视频时域超分辨重建方法,具体包括如下步骤:通过raytrix光场相机拍摄获得光场视频;通过light field toolbox工具将光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像;然后从光场视频祯图像中抽取光场参数;将获取的光场视频祯图像和光场参数进行旋转,创建一个五维的光场坐标;本发明提出了针对LSTM网络优化的新代价损失函数loss function,是通过3种不同的约束来优化光场视频中特有的空间分辨率恶化、相邻帧之间抖动、视角变化不连续的问题。
Description
技术领域
本发明属于计算摄影与数字图像处理技术领域,涉及一种基于LSTM网络的光场视频时域超分辨重建方法。
背景技术
近年来,基于光场成像技术的成像系统能够实现先拍摄后聚焦、动态调整光圈及景深、获取场景深度等新颖的成像效果。与计算摄影学领域的代表性技术,光场成像利用创新的光学设计与计算成像理论突破了传统成像技术的限制,提升了成像系统的性能。目前,光场成像技术以广泛应用与计算机视觉,虚拟和增强现实等领域,并以拓展至更多的潜在应用领域。
由于有限的带宽积限制,现有光场成像系统仍存在分辨率折衷瓶颈。目前,基于光场成像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在精度与效率方面都优于传统的前馈神经网络和RecurrentNeural Network(RNN)神经网络。目前,结合多约束条件采用LSTM神经网络对光场视频进行时域的超分辨率重建的相关方法尚未见报道。
发明内容
本发明的目的是提供一种基于LSTM网络的光场视频时域超分辨重建方法,该方法通过提出光场视频在时域超分辨的新约束条件,并改进现有深度学习的LSTM网络,实现针对光场视频的2.0X倍以上高质量时域分辨率的提升效果。
本发明所采用的技术方案是,一种基于LSTM网络的光场视频时域超分辨重建方法,具体包括如下步骤:
步骤1,通过raytrix光场相机拍摄获得光场视频;
步骤2,把步骤1获得的光场视频读入MATLAB,并通过light field toolbox工具将光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像org_lfv;然后从光场视频祯图像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;
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的定义公式如下:
其中,(u,v)带表光场中的某一视角,Ii代表groundtruth,I′i代表预测出的图像,t代表微透镜阵列的微透镜个数;
Loss2是光场视频帧图像在时间t维度下预测序列S的相邻帧MSE二阶变化得到,定义如下:
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网络的光场视频时域超分辨重建方法,具体包括如下步骤:
步骤1,通过raytrix光场相机拍摄获得光场视频;
步骤2,把光场视频读入MATLAB,通过light field toolbox工具由光场视频数据逐帧提取得到光场原始图像,即光场视频帧图像org_lfv,保存到本地。并通过light fieldtoolbox工具从光场图像帧中抽取光场的参数,包括光场白图像,单个微透镜大小(high,width),微透镜阵列旋转角度θ,微透镜水平间隔和垂直间隔(x,y)以及微透镜中心点坐标(centers)。
步骤3,将步骤2获取的光场视频祯图像org_lfv和光场参数进行旋转,创建一个五维的光场坐标lfv_STUV(s,t,u,v,P),其中P为图像通道数,P分别取1,2,3;
步骤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,P),其中P为图像通道数,P分别取1,2,3。
步骤4,通过双平面参数化表征光场图像成像原理,建立UV平面和ST平面,获取子孔径图像;
步骤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;
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,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,所有的子孔径图像的数据都采用归一化的方式,这样就可以在训练时提高损失函数loss优化结果,归一化的方式是每次读取图像时采用numpy库的array方法先将图片转化为python的矩阵,然后除以255,就可以完成归一化。同时,把所有的数据通过reshape方法转化为一维矩阵,这是为了满足LSTM网络输入格式。即把每张子孔径图像按行为单位排成一维数据。
步骤6,对步骤5所得的所有光场视频帧的数据以滚动窗口的方式进行循环,每连续10帧光场图像的子孔径图像作为一组batch数据,所有光场视频祯图像形成的N组batch数据形成数据集,该数据集的前80%作为训练集,该数据集的后20%作为测试集;
步骤7,采用Keras的深度学习框架,对于LSTM网络而言,Keras拥有更加成熟的用法,尤其是对于多维数据、多个时间步长的时间序列。Keras框架的Sequential方法可以对LSTM网络进行初始化操作。同时,设定LSTM网络的隐藏层单元个数和激活函数,通过units和activation方法来实现,相对于时域超分辨而言,relu激活函数效果较好。然后采用Dense的方法来决定每层LSTM网络的输出个数,Dense的值为网络输入特征值的个数。
步骤8,确定LSTM网络损失函数;在该网络中,最为关键的是损失函数lossfunction的确定,可以采用Keras框架提供的函数,也可以自定义损失函数。在本发明中,采用自定义损失函数。该自定义损失函数由三部分组成。其中第一部分loss1类似普通视频帧的预测,loss1由计算光场预测帧图像I′i与其对应帧的真值(groundtruth)Ii各子图像的MSE(均方误差)或者SSIM(结构相似性)平均值差异得到,均方误差MSE的定义为:
其中,n为数据个数,f(xi)为数据计算的结果,yi为真实值。
均方误差是各数据偏离真实值的距离平方和的平均数,所以用真实值减去其的误差的估计值平方和求其平均数。Groundtruth是确定为每组训练集中10帧光场视频图像的中间那一帧图像,可以为t5帧。即训练模型时通过t0帧、t1帧、t2帧......、t9帧来共同预测t5帧。
步骤8的具体过程为:
采用自定义损失函数,该损失函数包括三部分分别为:loss1、Loss2、Loss3;
loss1利用均方误差MES来定义loss1,loss1的定义公式如下:
其中,(u,v)带表光场中的某一视角,Ii代表groundtruth,I′i代表预测出的图像,t代表微透镜阵列的微透镜个数;
Loss2是光场视频帧图像在时间t维度下预测序列S的相邻帧MSE二阶变化得到,定义如下:
其中,表示MSE函数,k表示时间步长;若序列的二阶变化接近常数则序列帧抖动较弱,反之则可认为序列帧抖动较强。Loss2的目的是为了在时间维度上缩小训练出来的视频帧与其前后帧的变化,使它们组合起来更加流畅,让视频帧之间变化减小,看起来不会有跳跃变化的感觉。
Loss3是度量预测光场帧含有的多个子孔径图像视角变化是否连续,设光场时域重建帧I′的t个同行或同列子视角图像集合为I={Ij(I′)|j=1,2,...,t},则Loss3可由计算子视角图像集合中相邻图像的MSE二阶变化得到。定义如下:
其中,函数f(x)为MSE函数,Ii(u+1,v)为视角I(u,v)的右相邻视角;
根据loss1、Loss2、Loss3确定最终总的损失函数loss,loss决定整个网络训练的导向;
loss=w1*loss1+w2*loss2+w3*loss3;
其中,w1、w2、w3分别表示不同的权值。
步骤9,在LSTM网络中对步骤6所得的训练集进行训练,获得模型;
步骤9的具体过程为:
步骤9.1,确定优化器为adam,adam计算高效,方便实现,内存使用也较少,对目标函数没有平稳要求,即loss function可以随着时间变化。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,对步骤9所得模型进行加载并测试数据,获得新的光场视频。
步骤10的具体过程为:
采用Keras框架中的load_model方法加载模型,并把步骤6的测试集数据以fit的方式传入步骤9训练好的LSTM网络模型当中,网络输出的即为预测得到新的光场视频帧。
采用light field toolbox工具,将测试集的光场视频帧以及预测出新的光场视频帧按时间序列合成更高帧率的光场视频。新合成的光场视频在单帧图像失真、相邻帧图像抖动以及光场多视角图像变化不连续等方面都有较好的结果。
实施例
下面通过raytrix光场相机拍摄获得光场视频作为实例来说明一种基于LSTM网络的光场视频时域超分辨率重建的实现过程。
(1)通过raytrix光场相机拍摄获得光场视频。把光场视频读入MATLAB,通过lightfield toolbox工具获取对应的光场视频帧速率speed为5fps,和光场视频的长度length为10s,微透镜阵列旋转角度30度。然后计算光场视频帧图像的个数为5*10=50张。并获取视频帧大小为3935*3785,单个微透镜大小11*13,并逐帧提取获得光场视频帧图像,保存至本地。
(2)把前边保存好的光场视频帧图像org_lfv和光场白图像进行30度旋转操作。然后计算每个微透镜中水平及垂直方向相对于中心点的偏移量,从而计算出光场原图中位于该方向像素点的位置,并对每张光场视频帧图像每一个像素点的R,G,B三个通道进行赋值,得到光场五维坐标lfv_STUV(s,t,u,v,P)。
有了光场五维坐标,就可以得到视频帧对应的11*13张子孔径图像。
(3)得到子孔径图像后,将所有的数据进行归一化,采用numpy库的array方法将图片转化为python矩阵,再除以255。
(4)对所有光场视频帧的数据以滚动窗口的方式进行循环,每连续10帧光场图像的子孔径图像作为一个batch,最后组成41组batch数据。可以将41组batch的前80%作为训练集,后20%作为测试集。那么训练集的3D张量的形式(batch_size,time_steps,input_dim)就为(32,10,328*378*11*13*3),测试集为(9,10,328*378*11*13*3)。其中,375*345为光场视频帧子孔径图像的宽和高,11*13为子孔径数量。
(5)把训练集全部送入LSTM网络进行训练。用add方法在模型中添加LSTM网络,unit来设置隐藏单元的个数,为100,activation设置激活函数为relu;input_shape来决定每组数据的输入形式,为(10,328*378*11*13*3)。
(6)训练LSTM网络的损失函数均采用自定义的方式设置,即我们前边提到的新代价损失函数,由三部分组成,作为网络的参数。
而优化器参数为adam优化器,学习率为0.001。这些参数都通过模型的compile方法设置。在训练过程中,训练次数epochs设置为1000,参数verbose为1,它可以在训练时实时地显示网络训练的次数和损失函数值得变化。1000次迭代过程,优化器adam不断把lossfunction缩小,优化网络的权值。执行完毕后,采用Keras的save方法保存模型为model.h5。
(7)加载模型model.h5,然后把测试集为(9,10,328*378*11*13)传入网络进行预测新的光场视频帧,得到新的光场视频帧要把数据还原,都乘255,并reshape确保为正确的光场视频帧大小,保存所有预测得到新的光场视频帧(9,328*378*11*13*3)。
(8)采用light field toolbox工具把测试集的光场视频帧(9,10,328*378*11*13*3)和预测得到的新光场视频帧(9,328*378*11*13*3)合成更高帧率的光场视频,在时域上完成光场视频的超分辨重建。
Claims (8)
1.一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:具体包括如下步骤:
步骤1,通过raytrix光场相机拍摄获得光场视频;
步骤2,把步骤1获得的光场视频读入MATLAB,通过light field toolbox工具将光场视频数据逐祯提取得到光场原始图像,即光场视频帧图像org_lfv;然后从光场视频祯图像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.根据权利要求1所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤2中光场参数包括:光场白图像、单个微透镜的高度和宽度、微透镜阵列旋转角度θ、微透镜水平间隔x、垂直间隔y以及微透镜中心点坐标。
3.根据权利要求2所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤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,P),其中P为图像通道数,P分别取1,2,3。
4.根据权利要求3所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤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;
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.根据权利要求4所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤5的具体过程为:
每次读取图像时采用numpy库的array方法先将图片转化为python的矩阵,然后除以255,就完成了归一化;同时,把所有的数据通过reshape方法转化为一维矩阵,即把每张子孔径图像按行为单位排成一维数据。
6.根据权利要求5所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤8的具体过程为:
采用自定义损失函数,该损失函数包括三部分分别为:loss1、Loss2、Loss3;
loss1利用均方误差MES来定义loss1,loss1的定义公式如下:
其中,(u,v)带表光场中的某一视角,Ii代表groundtruth,I′i代表预测出的图像,t代表微透镜阵列的微透镜个数;
Loss2是光场视频帧图像在时间t维度下预测序列S的相邻帧MSE二阶变化得到,定义如下:
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分别表示不同的权值。
7.根据权利要求6所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤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方法保存模型。
8.根据权利要求6所述的一种基于LSTM网络的光场视频时域超分辨重建方法,其特征在于:所述步骤10的具体过程为:
采用Keras框架中的load_model方法加载模型,并把步骤6的测试集数据以fit的方式传入步骤9训练好的LSTM网络模型当中,网络输出的即为预测得到新的光场视频帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010336990.1A CN111598775B (zh) | 2020-04-26 | 2020-04-26 | 基于lstm网络的光场视频时域超分辨重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010336990.1A CN111598775B (zh) | 2020-04-26 | 2020-04-26 | 基于lstm网络的光场视频时域超分辨重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111598775A true CN111598775A (zh) | 2020-08-28 |
CN111598775B CN111598775B (zh) | 2023-02-03 |
Family
ID=72182059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010336990.1A Active CN111598775B (zh) | 2020-04-26 | 2020-04-26 | 基于lstm网络的光场视频时域超分辨重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111598775B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112102173A (zh) * | 2020-10-26 | 2020-12-18 | 安庆师范大学 | 光场图像角度超分辨率重建方法 |
CN112116646A (zh) * | 2020-09-23 | 2020-12-22 | 南京工程学院 | 一种基于深度卷积神经网络的光场图像深度估计方法 |
CN112634139A (zh) * | 2021-02-25 | 2021-04-09 | 杭州海康威视数字技术股份有限公司 | 光场超分辨成像方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140334745A1 (en) * | 2013-05-10 | 2014-11-13 | Trustees Of Princeton University | Resolution light-field imaging |
CN107480772A (zh) * | 2017-08-08 | 2017-12-15 | 浙江大学 | 一种基于深度学习的车牌超分辨率处理方法及系统 |
CN109413407A (zh) * | 2017-12-05 | 2019-03-01 | 西北工业大学 | 高空间分辨率光场采集装置与图像生成方法 |
US20190206026A1 (en) * | 2018-01-02 | 2019-07-04 | Google Llc | Frame-Recurrent Video Super-Resolution |
CN110166779A (zh) * | 2019-05-23 | 2019-08-23 | 西安电子科技大学 | 基于超分辨率重构的视频压缩方法 |
CN110490968A (zh) * | 2019-07-18 | 2019-11-22 | 西安理工大学 | 基于生成对抗网络的光场轴向重聚焦图像超分辨方法 |
CN110599400A (zh) * | 2019-08-19 | 2019-12-20 | 西安理工大学 | 一种基于epi的光场图像超分辨的方法 |
-
2020
- 2020-04-26 CN CN202010336990.1A patent/CN111598775B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140334745A1 (en) * | 2013-05-10 | 2014-11-13 | Trustees Of Princeton University | Resolution light-field imaging |
CN107480772A (zh) * | 2017-08-08 | 2017-12-15 | 浙江大学 | 一种基于深度学习的车牌超分辨率处理方法及系统 |
CN109413407A (zh) * | 2017-12-05 | 2019-03-01 | 西北工业大学 | 高空间分辨率光场采集装置与图像生成方法 |
US20190206026A1 (en) * | 2018-01-02 | 2019-07-04 | Google Llc | Frame-Recurrent Video Super-Resolution |
CN110166779A (zh) * | 2019-05-23 | 2019-08-23 | 西安电子科技大学 | 基于超分辨率重构的视频压缩方法 |
CN110490968A (zh) * | 2019-07-18 | 2019-11-22 | 西安理工大学 | 基于生成对抗网络的光场轴向重聚焦图像超分辨方法 |
CN110599400A (zh) * | 2019-08-19 | 2019-12-20 | 西安理工大学 | 一种基于epi的光场图像超分辨的方法 |
Non-Patent Citations (1)
Title |
---|
邓武等: "融合全局与局部视角的光场超分辨率重建", 《计算机应用研究》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112116646A (zh) * | 2020-09-23 | 2020-12-22 | 南京工程学院 | 一种基于深度卷积神经网络的光场图像深度估计方法 |
CN112116646B (zh) * | 2020-09-23 | 2023-11-24 | 南京工程学院 | 一种基于深度卷积神经网络的光场图像深度估计方法 |
CN112102173A (zh) * | 2020-10-26 | 2020-12-18 | 安庆师范大学 | 光场图像角度超分辨率重建方法 |
CN112102173B (zh) * | 2020-10-26 | 2022-06-24 | 安庆师范大学 | 光场图像角度超分辨率重建方法 |
CN112634139A (zh) * | 2021-02-25 | 2021-04-09 | 杭州海康威视数字技术股份有限公司 | 光场超分辨成像方法、装置及设备 |
CN112634139B (zh) * | 2021-02-25 | 2021-05-28 | 杭州海康威视数字技术股份有限公司 | 光场超分辨成像方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111598775B (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510573B (zh) | 一种基于深度学习的多视点人脸三维模型重建的方法 | |
CN111739078B (zh) | 一种基于上下文注意力机制的单目无监督深度估计方法 | |
CN111598775B (zh) | 基于lstm网络的光场视频时域超分辨重建方法 | |
US5557684A (en) | System for encoding image data into multiple layers representing regions of coherent motion and associated motion parameters | |
JP2978406B2 (ja) | 局所異常の排除による動きベクトルフィールド生成装置およびその方法 | |
CN111524068A (zh) | 一种基于深度学习的变长输入超分辨率视频重建方法 | |
CN109584290A (zh) | 一种基于卷积神经网络的立体图像匹配方法 | |
CN111835983B (zh) | 一种基于生成对抗网络的多曝光图高动态范围成像方法及系统 | |
CN113077505B (zh) | 一种基于对比学习的单目深度估计网络的优化方法 | |
CN106056622B (zh) | 一种基于Kinect相机的多视点深度视频复原方法 | |
CN112270691B (zh) | 一种基于动态滤波器网络的单目视频结构和运动预测方法 | |
CN112465021B (zh) | 基于图像插帧法的位姿轨迹估计方法 | |
CN111369443B (zh) | 光场跨尺度的零次学习超分辨率方法 | |
CN109859249B (zh) | Rgbd序列中基于自动分层的场景流估计方法 | |
CN111508013A (zh) | 立体匹配方法 | |
CN113269682A (zh) | 一种结合帧间信息的非均匀运动模糊视频复原方法 | |
CN111652815B (zh) | 一种基于深度学习的掩膜板相机图像复原方法 | |
Li et al. | Real-world deep local motion deblurring | |
CN1723476A (zh) | 用于数字图像的深度排序的方法和设备 | |
CN113724155A (zh) | 用于自监督单目深度估计的自提升学习方法、装置及设备 | |
CN116720433A (zh) | 一种基于光流运动约束的自注意力视频深度估计方法 | |
CN114463196B (zh) | 一种基于深度学习的图像校正方法 | |
CN113436130B (zh) | 一种非结构光场智能感知系统与装置 | |
CN111881925B (zh) | 一种基于相机阵列选择性光场重聚焦的显著性检测方法 | |
CN113191301A (zh) | 融合时序和空间信息的视频密集人群计数方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |