1.一种基于卷积神经网络的双目立体匹配方法,其特征在于,该方法具体包括如下步骤:
步骤(1)根据原有的DispNet网络模型,通过引入亚像素卷积,设计出新的网络学习模型SDNet;
所述的步骤(1)中,引入亚像素卷积操作包括以下步骤:
1‑1.将上一层网络中的输出图直接输入隐藏卷积层,得到与输入图像大小一样的特征
2 2
图,特征通道数为2,每层亚像素卷积操作所得的图像为输入图像的2倍;
2
1‑2.将每个像素的2个通道重新排列成一个2*2的区域,对应于高分辨率图像中的一个
2*2大小的子块,排列方式为将各通道同一位置的像素按通道排列顺序依次插入,从而大小2
为2*H*W的特征图像被重新排列成1*(2H)*(2W)大小的高分辨率图像,其中H,W分别为低分辨率图像的高和宽;
步骤(2)收集数据集,所述的数据集来源于两个开源数据库,sceneflow和KITTI,前者包括训练集和验证集,后者包括训练集、验证集和测试集,网络训练在TensorFlow框架下进行;
利用训练集和验证集中的数据对SDNet网络进行训练,包括以下步骤:
2‑1.对训练集和验证集中的数据进行一系列处理以扩充数据量;其中一系列处理包括颜色抖动、随机裁剪、水平翻转;
2‑2.将扩充后的数据进行归一化处理;
2‑3.设置相关网络模型的参数,将训练集数据输入网络中,对网络进行不断地训练,直到L1 loss收敛;
网络模型的参数设置包括选择Adam为优化方式,设置学习率为1e‑4,最大训练轮次为
300;训练过程首先利用步骤2‑2得到的sceneflow中的训练集数据对SDnet网络进行预训,至L1loss收敛,得到一个预训练模型,接着利用步骤2‑2得到的KITTI训练集数据对预训练模型训练,至L1 loss收敛;L1 loss的计算公式如下:其中N表示图像中的总像素数,dn表示网络预测出来的视差图, 表示已有的标准视差图ground truth;控制loss的作用是为了防止训练过拟合;
2‑4.将验证集数据输入训练好的网络中进行验证,若连续三轮L1 loss没有下降,则完成网络训练;否则,回到步骤2‑3,重新进行网络训练;
步骤(3)对训练完成的SDNet进行测试,包括以下步骤:
3‑1.处理测试集数据;处理测试集数据包括对数据进行颜色抖动,随机裁剪,水平移动,随后对其进行归一化处理;其中测试集数据是KITTI中的测试集数据和从sceneflow的验证集中选出的部分数据;
3‑2.将数据集输入至步骤(2)得到的网络中进行验证,得到视差图;
3‑3.将网络模型产生的视差图与已有的标准ground truth进行对比,通过逐像素计算的绝对值是否小于3来判断是否预测成功;若该图像的误差小于3,则说明该像素预测成功,否则失败;最后将预测错的像素总数除以预测图像的像素总数,就是该预测图像的3‑pixel error。