1.基于卷积神经网络的单目光场图像无监督深度估计方法,其特征在于包括如下步骤:步骤1、数据预处理:
实验数据集基于Stanford公开的采用Lytro illum光场相机拍摄真实世界中的实物对象得到的光场图像数据集;
数据预处理包括增强图像亮度、水平/垂直翻转和随机剪切;
经过数据预处理后,光场图像数据集得到进一步扩充,增加训练样本和测试样本的多样性;
步骤2、构建模型,包括卷积神经网络深度估计模型和卷积神经网络遮挡检测模型;
所述的卷积神经网络深度估计模型,具体实现如下:
以ResNet50网络模型作为编码器Eecode,在ResNet50的基础上使用自适配归一化对原网络进行改进以适应光场图像使用;编码器将图像的长宽逐步压缩的同时增加了特征的数量,设原来的输入图像为I256*256*3,下标表示图像的长宽和通道数,经过编码器逐步编码的中间结果变化过程为:IE256*256*64→IE128*128*128→IE64*64*256→IE32*32*512→IE16*16*1024解码器则刚好相反,将编码器的结果的特征图的长宽一步步恢复到原来图像的尺寸;
使用了密集残差结构连接Decode和Encode两个过程,即把IE32*32*512和ID32*32*512经过跳层连接到一起;
考虑带光场相机的视差范围在[-4,4]的区间内,采用Tanh激活函数提取预测的视差图,由于Tanh的范围是在[-1,1]之间,所以在得到的视差图的基础上再乘以4倍,便得到真实的视差图;采用4层金字塔的结构获取视差图,所以网络最后得到的是具有4种不同尺度的视差图融合的结果;
所述的卷积神经网络遮挡检测模型,用于学习不同视角之间的遮挡关系,同时使用多个损失函数进行约束训练,解决图像遮挡问题和深度估计的一致性问题,并且在每一层结构中使用了自适配正则化;网络由8层全卷积层构成,其中1到3层是编码器负责提取特征,4到6层是解码器根据特征恢复图像,第7层是为了得到超分辨率图像进行的反卷积操作,最后一层是下采样得到原始图像的尺寸;
步骤3、为了优化网络模型估计视差图的质量,将原始的输入图像通过估计的视差图双线性插值Warping估计其它视角的图像,并将其它视角的图像的合成图通过损失函数进行约束;
步骤4、设置优化器,动态优化调整学习率,给模型动态设定一个理想的学习率,初始学习率设定为0.0001,模型训练过程中,学习率随批次数增加而减缓,减缓机制如下:利用基于动量的随机梯度下降类型的网络优化算法对模型进行训练和参数求解,动量因子μ会随着损失的波动性动态进行调整,μ初始值设为0.5,当损失波动变小时,认为网络相对达到稳定,相应的μ也变小,从而达到动态调节学习率细化训练过程的效果;
步骤5、训练卷积神经网络:
首先选取步骤1数据集中60%的数据样本作为训练样本集,设置一个随机值决定每次取到的训练集是无序且分布均匀的样本;
其次定义损失函数和优化器,调整网络参数并统计指标;
最后步骤2的网络模型作为训练模型对数据样本开始进行训练,训练结束之后保存模型,以方便后期快速的模型加载;
步骤8.测试卷积神经网络:使用PSNR和SSIM进行评估,这两个指标是一种对图像质量准确率进行量化的指标,用来呈现合成图像优劣的量化效果,通过将模型预测的数据与测试数据进行对比,使用准确率指标对模型的估计效果进行度量,最终得出模型在测试集上估计深度的准确率。
2.根据权利要求1所述的基于卷积神经网络的单目光场图像无监督深度估计方法,其特征在于所述的卷积神经网络中损失函数设置有3个,具体定义如下:第一个损失函数Ⅰ是图像一致性约束Limage_loss,使得估计的图像和原始图像能够尽可能的接近,还有图像质量约束,这要求的是估计的图像和原始图像在局部上的相似性要一致;
第二个损失函数Ⅱ是视差图的一致性约束Lconsist,解决的是视差图一致性问题以及视差遮挡问题;
第三个损失函数Ⅲ是视差图平滑性约束损失函数LSmooth,防止估计的视差图中存在的一些异常点导致最后的结果不佳问题。
3.根据权利要求2所述的基于卷积神经网络的单目光场图像无监督深度估计方法,其特征在于损失函数Ⅰ具体如下:损失函数Ⅰ用于衡量估计图像和原始图像的之间的差距,使用L1距离进行比较,采用SSIM对图像质量进行检测,若是估计的图像和原来的图像越相似则SSIM的值就越接近于1,损失函数Ⅰ表达如下所示:其中, 表示的是视角(i,j)的原始图像, 表示的是视角(i,j)的估计图像,α、β、ψ均表示超参;公式第一项是为了检测预测图的质量,局部相似性,公式第二项是为了检测预测图与原始图像的距离,即逐像素点的像素值相似性;
损失函数Ⅱ具体定义如下:
其中,Di+x,j+y表示在(i+x,j+y)视角处的视差图, 表示由(i,j)视角处的视差图经过(x,y)向量Warping得到(i+x,j+y)视角处的视差图;
损失函数Ⅲ定义如下:
其中, 分别表示对(i,j)视差处的视差图横坐标和纵坐标的偏导数,分别表示对(i,j)视差处的原图横坐标和纵坐标的偏导数;
最终总的损失函数如下:
Ltotle=Limage_loss+Lconsist+LSmooth。