一种基于卷积神经网络和邻域上下文的光源估计方法与流程

文档序号:15145419发布日期:2018-08-10 20:23阅读:323来源:国知局

本发明属于计算机视觉中的色彩研究领域,具体地说是一种以卷积神经网络为特征提取工具,结合邻域上下文的光源估计方法。



背景技术:

对于常规的数码相机来说,在不同光源下获取的同一物体的外观会有所不同;但对于人类视觉系统来说,在场景光源变化的情况下,人类能够不受场景光源的影响而感知到物体自身固有的颜色,人类所具有的这种能力称为颜色恒常性。在计算机视觉领域,为精确模拟色恒常性这种人类视觉系统的能力,通常设计对图像场景真实光源进行光源估计的算法,得到场景中光源的真实rgb值,并通过颜色校正将场景色彩校准到标准光源下,从而获得场景在标准光源下的准确颜色表达。

在图像与视频处理中的许多计算机视觉问题都将颜色校正作为预处理步骤,以确保在不同的光照条件下,场景中的物体保持其固有的颜色不发生变化,如基于颜色的目标识别、跟踪,图像增强,图像分割等。

目前光源估计的技术方法大致可以分为两大类:基于统计的方法和基于学习的方法。

基于统计的方法仅在单幅图像内容的基础上,利用彩色图像的统计属性或物理属性来估计光源。此类方法通常进行一些假设,如场景最亮区域即为光源、场景所有像素平均rgb值为光源等等,这些基于唯一确定的场景光照假设,计算都较为方便简单。

基于学习的方法需要训练数据,利用训练图像中来训练模型,从而进行光源估计。这类方法由于其相对于基于统计的方法具有更高的准确性而较为普遍。一些传统的机器学习方法,凭借一些手工制作的低级视觉特征(如像素和边缘)的浅层学习模型,如色度直方图、颜色和边缘矩,色度的统计等特征,可以取得出色的性能。

深度学习的盛行,为基于学习方法的光源估计提供了新的思路。利用卷积神经网络提取特征,与依赖于手动定义低级视觉特征不同,卷积神经网络能提取像素、边缘、多种对象部分及其组成的模型等多尺度图像特征,从而进一步提高光源估计的精度。目前已有的卷积神经网络方法通常对整个图像进行特征提取,以获得用于估计整个光源的统计量。同时也有一些基于局部图像块的估计方法,通过从图像中获得多个图像块,一方面增加了训练网络的数据量,另一方面从多个图像块的估计回归到单一估计,光源估计的准确性有很大提升。

虽然在计算机视觉领域中,已经出现了一些性能出色的彩色图像场景的光源估计方法,但这些方法依然存在着不足之处:

1、基于统计的方法通常是对场景的光照进行假设,适用范围小且在处理场景内容复杂的图像时误差较大。

2、在基于学习的方法之中,早期的传统机器学习方法,受限于基于手工制作的低级视觉特征(如像素和边缘)的浅层学习模型,在精度上与深度学习方法已有很大差距。事实上,图像的特征本质上是分层的,有高中低等级的特征,应自动从图像数据中学习,以避免手工制作的特征构造出现偏差。

3、在深度学习方法中,直接对整个图像进行特征提取的方法不能准确捕捉到整个图像不同局部区域的光源变化,因此在多光照条件下的光源估计有着局限性。

4、在深度学习方法中,基于局部图像块的方法,尽管有着其优势,但由于局部图像块获取的随机性,其内容是不确定的,通常情况下单个局部图像块只含有很少或没有语义上下文信息,在局部估计中存在模糊性(即图像块内容单一,且很可能与来源于其他彩色图像的图像块十分相似),难以准确估计场景光源。



技术实现要素:

本发明是为了解决上述现有技术存在的不足之处,提出一种基于卷积神经网络和邻域上下文的光源估计方法,以期能提高彩色图像场景光源估计的精度,从而能有效地对彩色图像进行色彩校正,为图像光源估计提供一种结合上下文的新思路。

为解决上述技术问题,本发明采用的技术方案是:

本发明一种基于卷积神经网络和邻域上下文的光源估计方法的特点是按如下步骤进行:

步骤1、从高度与宽度分别为h和w的待处理彩色图像i中提取包含亮像素与暗像素的图像块集合p={p1,p2,…,pn…,pn};其中,pn表示第n个包含亮像素与暗像素的图像块,1≤n≤n,n为从所述待处理彩色图像i中提取的图像块的总数量;

步骤1.1、计算所述待处理彩色图像i中所有像素点的rgb均值,并得到rgb均值向量

步骤1.2、以第i行第j列的像素点p(i,j)为向量li,j=(ri,j,gi,j,bi,j)向所述rgb均值向量投影,得到第i行第j列像素点的投影|m|(i,j),从而得到所有像素点的投影集合|m|={|m|(1,1),|m|(1,2),…,|m|(i,j),…,|m|(h,w)},1≤i≤h,1≤j≤w;

步骤1.3、将所述投影集合|m|进行降序排序,选取所述待处理彩色图像i像素点总数的前x%个投影所对应的像素作为亮像素,选取所述待处理彩色图像i像素点总数的后x%个投影所对应的像素作为暗像素;

步骤1.4、定义图像块的大小为m×m,从所述待处理彩色图像i中随机选取同时包含所述亮像素与暗像素的图像块,从而得到n个图像块;

步骤2、在所述待处理彩色图像i中,以所述第n个图像块pn的中心为相应邻域块的中心,取大小为k×k的邻域块,再对所述邻域块缩放到m×m大小,从而得到第n个邻域块zn,进而得到邻域块集合z={z1,z2,…,zn,…,zn},1<m<k;

步骤3、构建图像块和邻域块的光源估计模型;

步骤3.1、获取含有彩色图像和场景真实光源rgb值的数据集d,并将所述数据集d随机平均分为3个子集,记为d={dtrain,dval,dtest};dtrain表示训练数据集,并包含有dtrain张彩色图像;dval表示验证数据集,并包含有dval张彩色图像;dtest表示测试数据集,并包含有dtest张彩色图像;

步骤3.2、按照步骤1和步骤2对所述训练数据集dtrain进行处理,得到所述训练数据集dtrain所有训练图像的图像块集合和邻域块集合

步骤3.3、对所述训练图像的图像块集合ptrain和邻域块集合ztrain进行数据增强,得到增强后的图像块集合p′train和邻域块集合z′train;

步骤3.4、对所述增强后的图像块集合p′train和邻域块集合z′train进行gamma矫正,得到矫正后的图像块集合p″train和邻域块集合z″train,其中gamma值为g;

步骤3.5、对所述训练数据集dtrain中所有训练图像的场景真实光源rgb值进行l2范数归一化处理,得到归一化后的rgb值;

步骤3.6、将vgg-16卷积神经网络的第j层的输出设定为b个;

步骤3.7、以所述矫正后的图像块集合p″train作为所述vgg-16卷积神经网络的输入,以所述归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对所述vgg-16卷积神经网络进行训练,得到图像块的光源估计模型p-model;

步骤3.8、以所述矫正后的邻域块集合z″train作为所述vgg-16卷积神经网络的输入,以所述归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对所述vgg-16卷积神经网络进行训练,得到邻域块的光源估计模型z-model;

步骤3.9、构建维度分别为w1、w2、w3的h层全连接层作为决策层;

步骤3.10、利用所述图像块的光源估计模型p-model的前t层结构和邻域块的光源估计模型z-model的前t层结构分别对所述矫正后的图像块集合p″train和邻域块集合z″train进行特征提取,得到特征提取层的特征图f和f′;

步骤3.11、将所述特征图f和f′相加后的结果作为所述决策层的输入,以所述归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对所述决策层进行训练,得到光源估计模型e-model;

步骤4、对所述待处理彩色图像i进行光源估计:

步骤4.1、利用所述图像块的光源估计模型p-model的前t层结构和邻域块的光源估计模型z-model的前t层结构分别对所述第n个图像块pn和第n个邻域块zn进行特征提取,得到特征提取层的特征图fn和f′n;

步骤4.2、将所述特征图fn和f′n相加后的结果作为所述光源估计模型e-model的输入,得到第n个图像块pn的场景光源rgb值;

步骤4.3、重复步骤4.1-步骤4.2,从而得到所述n个图像块与邻域块的场景光源rgb值;

步骤4.4、对所述n个图像块与邻域块的场景光源rgb值求均值与中值,从而得到所述待处理彩色图像i的光源rgb值并作为光源估计的结果;

步骤4.5、使用估计的光源rgb值对所述待处理彩色图像i进行颜色校正。

与已有技术相比,本发明的有益效果是:

1、从整体上讲,本发明通过采用结合图像局部区域上下文信息的方法,利用卷积神经网络强大的特征提取能力,对彩色图像场景中的真实光源进行估计,克服了基于整幅彩色图像的方法在局部光源变化上的不敏感这一局限性,同时由于结合了图像块的上下文信息,所以比以往基于局部块的方法对图像块的光源估计精度更高,是一种有效的光源估计方法。

2、本发明在选取图像局部区域时,为了使局部区域在色度空间具有较大的梯度方向,利用了同时拥有亮暗像素可提升图像块光源估计的精度这一特点,在图像中寻找同时包括亮暗像素的图像块15个,这一处理步骤使得光源估计的精度提高了0.4度;

3、本发明在寻找图像块的上下文时,在彩色图像上原图像块的中心取比图像块更大的块,称为邻域块,邻域块比图像块拥有更多的上下文信息,有利于提升光源估计的精度,相比于单独利用图像块作为输入,利用邻域块使光源估计的精度提高了0.2度;

4、本发明在结合图像块与邻域块上下文信息时,分别对图像块与邻域块进行特征提取,再对得到的特征图进行相加,最终的光源估计精度相比于单独利用邻域块提升了0.1度。

附图说明

图1为本发明方法的流程图;

图2为本发明彩色图像的图像块与邻域块输入网络模型的详细过程图;

图3为本发明获取图像块与邻域块的过程图;

图4为本发明所使用的gehler-shi数据集部分彩色图像;

图5为本发明已训练的各个子模型的详细结构图;

图6为本发明对数据集中部分彩色图像进行色彩校正的前后对比图。

具体实施方式

本实施例中,一种基于卷积神经网络和邻域上下文的光源估计方法,其流程图如图1所示,并按如下步骤进行:

步骤1、从高度与宽度分别为h和w的待处理彩色图像i中提取包含亮像素与暗像素的图像块集合p={p1,p2,…,pn…,pn};其中,pn表示第n个包含亮像素与暗像素的图像块,1≤n≤n;在本发明中n=15,n为从待处理彩色图像i中提取的图像块的总数量,本发明的实验中所使用图像大小为1359×2041,因此h=1359,w=2041;

步骤1.1、计算待处理彩色图像i中所有像素点的rgb均值,并得到rgb均值向量

步骤1.2、以第i行第j列的像素点p(i,j)为向量li,j=(ri,j,gi,j,bi,j)向rgb均值向量投影,得到第i行第j列像素点的投影|m|(i,j),从而得到所有像素点的投影集合|m|={|m|(1,1),|m|(1,2),…,|m|(i,j),…,|m|(h,w)},1≤i≤h,1≤j≤w;

步骤1.3、将投影集合|m|进行降序排序,选取待处理彩色图像i像素点总数的前x%个投影所对应的像素作为亮像素,选取待处理彩色图像i像素点总数的后x%个投影所对应的像素作为暗像素,在本发明的实验中,x=3.5;

步骤1.4、定义图像块的大小为m×m,从待处理彩色图像i中随机选取同时包含亮像素与暗像素的图像块,从而得到n个图像块;在本发明的实验中,m=224,这是因为vgg-16卷积神经网络的标准输入大小是224×224,n=15,这是因为数据集d中的一部分图像最多只能提取到符合要求的15个图像块;

步骤2、在待处理彩色图像i中,以第n个图像块pn的中心为相应邻域块的中心,取大小为k×k的邻域块,再对邻域块缩放到m×m大小,从而得到第n个邻域块zn,进而得到邻域块集合z={z1,z2,…,zn,…,zn},1<m<k;如图3所示,其中a为原始彩色图像,b是一幅灰度图,内容是输入的彩色图像亮暗像素点分布情况,其中除最大的白色四边形块(该位置是记录场景真实色彩的麦克白调色板)之外,其他白色像素点均为亮像素,较暗处像素点为暗像素,c为在图3中的b上获取同时含有亮像素与暗像素的图像块及邻域块的位置,d为在原始彩色图像上获取与图3中的c中位置相同的图像块与邻域块;如图3中的d所示为一组图像块与邻域块;在本发明的实验中k=448,实验显示,比448更大或更小的邻域块并不能进一步提升光源估计模型的整体性能,由于网络的输入大小必须为224×224,所以需要将邻域块缩放到m×m即224×224大小,从彩色图像i中获取一组图像块与邻域块的整体流程如图3所示;

步骤3、构建图像块和邻域块的光源估计模型;

步骤3.1、获取含有彩色图像和场景真实光源rgb值的数据集d,即gehler-shi彩色图像数据集,由568张彩色图像组成,包含室内与室外场景,特点是图像分辨率较高,其中部分彩色图像场景如图4所示,数据集d的光源真实值由设置在拍摄场景内的麦克白调色板记录,光源真实值随图像数据集一并提供;将数据集d随机平均分为3个子集,记为d={dtrain,dval,dtest};dtrain表示训练数据集,其中有dtrain张彩色图像;dval表示验证数据集,其中有dval张彩色图像;dtest表示测试数据集,其中有dtest张彩色图像,在本发明的实验中dtrain=190,dval=189,dtest=189;

步骤3.2、按照步骤1和步骤2对训练数据集dtrain进行处理,得到训练数据集dtrain所有训练图像的图像块集合和邻域块集合

步骤3.3、对训练图像的图像块集合ptrain和邻域块集合ztrain进行数据增强,得到增强后的图像块集合p′train和邻域块集合z′train;在卷积神经网络输入的预处理中,数据增强可以提高光源估计模型的泛化能力;

步骤3.4、对增强后的图像块集合p′train和邻域块集合z′train进行gamma矫正,gamma值为g,得到矫正后的图像块集合p″train和邻域块集合z″train;在本发明的实验中g=1/2.2;

步骤3.5、对训练数据集dtrain中所有训练图像的场景真实光源rgb值进行l2范数归一化处理,得到归一化后的rgb值;进行l2归一化的原因是,在实验中发现将归一化后的rgb值作为网络训练的标签,更符合卷积神经网络的输出特性,能进一步提高网络整体的性能;

步骤3.6、如图5所示,其中a为vgg-16图像分类卷积神经网络模型,b为对图像块进行光源估计的卷积神经网络模型,c为对邻域块进行光源估计的卷积神经网络模型,d为得到光源的决策层全连接模型;

将vgg-16卷积神经网络的第j层的输出设定为b个;在本实验中,j=16,b=3,vgg-16采用深度卷积神经网络,由13层卷积层、3层全连接层组成,是2014年imagenet世界计算机视觉系统识别图像分类项目的冠军模型,其详细结构如图5中的a所示;

步骤3.7、以矫正后的图像块集合p″train作为vgg-16卷积神经网络的输入,以归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对vgg-16卷积神经网络进行训练,得到图像块的光源估计模型p-model,其网络结构如图5中的b所示;

步骤3.8、以矫正后的邻域块集合z″train作为vgg-16卷积神经网络的输入,以归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对vgg-16卷积神经网络进行训练,得到邻域块的光源估计模型z-model,其网络结构如图5中的c所示;

步骤3.9、构建维度分别为w1、w2、w3的h层全连接层作为决策层;在本实验中w1=4096,w2=4096,w3=3,h=3,该决策层网络结构如图5中的d所示;

步骤3.10、利用图像块的光源估计模型p-model的前层结构t和邻域块的光源估计模型z-model的前t层结构分别对矫正后的图像块集合p″train和邻域块集合z″train进行特征提取,得到特征提取层的特征图f和f′;本实验中t=13;

步骤3.11、将特征图f和f′相加后的结果作为决策层的输入,以归一化后的图像标签作为标签,以欧式距离作为损失函数,利用梯度下降算法对决策层进行训练,得到光源估计模型e-model,如图5.d所示;

步骤4、对待处理彩色图像i进行光源估计:

步骤4.1、利用图像块的光源估计模型p-model的前t层结构和邻域块的光源估计模型z-model的前t层结构分别对第n个图像块pn和第n个邻域块zn进行特征提取,得到特征提取层的特征图fn和f′n;

步骤4.2、将特征图fn和f′n相加后的结果作为光源估计模型e-model的输入,得到第n个图像块pn的场景光源rgb值,网络结构如图2所示;

步骤4.3、重复步骤4.1-步骤4.2,从而得到n组图像块与邻域块的场景光源rgb值;

步骤4.4、对n组图像块与邻域块的场景光源rgb值求均值与中值,从而得到待处理彩色图像i的光源rgb值并作为光源估计的结果,如表1所示;表1为本发明对示例图像i的15组图像块与邻域块进行光源估计的rgb值,求平均这行为对这15组求均值得到的彩色图像i的估计值,其误差为0.72度;求中值这行为对这15组求中值得到的彩色图像i的估计值,其误差为1.123度;最后一行为彩色图像i场景中真实的值;

表1

关于误差的计算,场景光源真值为igt,模型估计得到的场景光源为iest,以角度误差作为误差指标;

步骤4.5、使用估计的光源rgb值对待处理彩色图像i进行颜色校正,如图6所示,其中第一行为原始彩色图像,第二行为对原图进行色彩校正后的图像。

表2

表2第一列为本发明在gehler-shi数据集上的最终性能,误差为1.928度;其中wp算法为white-patch,是以图像中最亮处区域作为场景光源;gw算法为gray-world,是以图像像素点平均值作为场景光源;exemplar-based算法是以实例学习的方法估计光源;regressiontree算法是以回归树的方法来估计光源;cnn方法的算法是用较浅的卷积神经网络对图像块进行估计,最终回归到整个图像;ds-net算法是搭建两个相互独立的估计网络,一个选择网络,对同一张图像的两个估计结果进行选择,从而得到最终的光源估计结果。这7种方法均在gehler-shi图像数据集上进行训练与测试,误差为角度误差,数值越低表示性能越好。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1