一种基于深度学习的图像颜色矫正方法[发明专利]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011471881.7
(22)申请日 2020.12.14
(71)申请人 北京理工大学
地址 100081 北京市海淀区中关村南大街5

(72)发明人 闫波 张晟 宿红毅 郑宏 
(74)专利代理机构 北京正阳理工知识产权代理
事务所(普通合伙) 11639
代理人 张利萍
(51)Int.Cl.
G06T 3/60(2006.01)
G06T 7/11(2017.01)
G06T 7/90(2017.01)
G06N 3/08(2006.01)
G06N 3/04(2006.01)
(54)发明名称
一种基于深度学习的图像颜色矫正方法
(57)摘要
本发明公开了一种基于深度学习的图像颜
色校正方法,属于深度学习和计算机视觉领域。

首先,收集不同光照环境下的图像数据构建色偏
图像数据集。

之后,对数据进行数据增强和预处
理,使数据符合神经网络训练要求。

然后,构建一
种Encoder ‑Decoder结构的基础卷积神经网络,
并依据该基础神经网络构建级联的卷积神经网
络。

同时,针对级联神经网络的特点,设计了特定
的神经网络损失函数。

通过训练之后,该级联卷
积神经网络可将一张色偏的原图片转化为无色
偏的图片。

本方法不需要进行先验的假设,可快
速实时检测,能够应用到各种自动化图像色偏矫
正系统和设备中,不仅避免了人工校正的主观
性,同时大大提高了矫正效率,减轻了人工矫正
负担,
提升了图像色偏矫正的准确性。

权利要求书3页 说明书6页 附图2页CN 112581373 A 2021.03.30
C N 112581373
A
1.一种基于深度学习的图像颜色矫正方法,其特征在于,包括以下步骤:
步骤1:获取图像数据;
步骤2:对所获取到的图像数据集进行数据增强和数据预处理;
步骤3:构建基于Encoder ‑Decoder的全卷积神经网络,具体如下:
基础卷积神经网络整体采用下采样‑上采样结构,由两种基础单元模块构成,在下采样部分中,单元模块由两个卷积层和一个池化层构成,图像经卷积层处理后,通过激活函数进行激活;在上采样部分中,单元模块由上采样层和两个卷积层构成,图像经卷积层处理后也会通过激活函数进行激活;每一次经过激活函数激活后,都经过BatchNorm层进行归一化;
为了保证网络的灵活性,下采样和上采样的次数可调节;
整体神经网络结构为下采样‑上采样的Encoder ‑Decoder结构,下采样处理模块和上采样处理模块数量一致,并且下采样每一层的输出都会作为一部分输入连接到上采样中作为输入,用于补充图像的浅层信息;
步骤4:将单级的全卷积神经网络进行级联,获得最终的级联神经网络,同时,针对级联神经网络设计对应的损失函数,具体如下:
步骤4.1:级联卷积神经网络由2个以上的步骤3构建的基础卷积神经网络构成,每一个基础卷积神经的输出都会作为下一个基础卷积神经网络的输入,并向下传播;
步骤4.2:将初始图像持续加入至后续的级联网络中作为输入;
步骤4.3:设计特定的损失函数;
每一级的卷积神经网络都会输出其矫正后的图像,将其与标准图像进行LOSS值的计算,得到每一级的LOSS值;
在得到每一级的LOSS值之后,组成级联神经网络的整体LOSS值,采用线性组合的方式,公式如下:
其中,L k 为第k级网络的输出和标准图像之间的LOSS值,αk 为该级对应的有效系数,所有级的有效系数之和为1;将每一级别对应的LOSS和其有效系数相乘并相加,得到整体网络的LOSS值;
步骤5:将预处理过后的图像数据集用于级联神经网络训练,得到训练好的几连神经网络模型;
步骤6:将采集到的色偏图像,放入到训练好的模型中进行实时色偏矫正,得到校正好的无色偏的图像。

2.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤1的具体实现方法如下:
步骤1.1:使用图像采集设备对目标场景进行拍照;对于同一场景,拍照应该在标准光照环境和非标准光照环境下同时进行拍照,标准光照环境指应该在D65光源的充分照射下
拍照,非标准光照环境包括但不限于过暗或过亮、曝光过度或不足、其他不同色温的光源;
步骤1.2:对于收集到的图片进行标注;对于同一场景拍摄到的图像,要分别标注哪些是标准光照环境拍照得到的,哪些是非标准光照环境拍照得到的,同时构建成对的数据集,存入数据库中。

3.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤2的具体实现方法如下:
步骤2.1:对所获得的图像数据,以图片中心进行下采样,得到像素值为固定像素大小的图像;
步骤2.2:对下采样过后的图像数据进行镜像反转、旋转、扭曲和随机裁剪,进行数据增强。

4.如权利要求3所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤2.2的具体实现方法如下:
步骤2.2.1:对图像数据进行水平和垂直镜像反转,进行数据扩增;
步骤2.2.2:进行旋转操作;包括对原图像进行顺时针旋转,进行数据扩增;
步骤2.2.3:进行剪裁操作;通过滑动窗口的方式在原始图像上进行随机游走进行剪裁;
步骤2.3:对扩增好的数据进行训练集和测试集的划分,得到最终处理好的数据集。

5.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤3中,上采样过程采取双线性插值法进行上采样。

6.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤4.3中,LOSS从MSE‑LOSS、SSIM‑LOSS、MSSIM‑LOSS中选取一个。

7.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤5的具体实现方法如下:
步骤5.1:在训练神经网络之前,对网络中的各层参数进行初始化;
步骤5.2:在训练之前,将训练集分为训练用例和验证用例;此处,可以采用K折交叉验证的方式,对训练集进行划分;
步骤5.3:将划分好的训练集输入到级联卷积神经网络中,得到输出的矫正图像输出,将其和标准图像进行计算,得到相应的LOSS;
步骤5.4:采用优化器对神经网络各项参数进行优化,将得到的LOSS进行反向传播更新网络各项参数;
步骤5.5:更新参数过后,固定网络参数,将验证集数据输入到神经网络中进行验证,得到在验证集上的LOSS值,若连续一定轮数LOSS值不下降,终止神经网络的训练;
步骤5.6:根据步骤5.5中得到的LOSS值,对神经网络的学习率进行调整;调整策略为:若LOSS值连续一定轮数不下降,则将学习率调整为原来的k倍;
步骤5.7:返回步骤5.2进行循环迭代,直到满足上述退出条件或达到预设的训练次数上限再终止训练。

8.如权利要求7所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤5.1中,对网络各层参数进行初始化赋值的方法包括随机法、Xavier初始化法。

9.如权利要求7所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤6的
具体实现方法如下:
步骤6.1:将图像进行剪裁,剪裁到训练时的数据集剪裁得到的固定的大小;
步骤6.2:将剪裁好的图片输入到训练好的级联卷积神经网络中,得到校正好的的图像,返回到图像矫正系统,完成矫正。

10.如权利要求1所述的一种基于深度学习的图像颜色矫正方法,其特征在于,步骤4.3中,将矫正后的图像与标准图像进行MSE‑LOSS计算,得到每一级的LOSS值,其中,MSE‑LOSS 计算公式如下:
其中,m和n分别代表图像的长度和宽度,A和B分别代表矫正后的图像和原图图像,i,j 分别代表图像中行坐标和列坐标。

一种基于深度学习的图像颜色矫正方法
技术领域
[0001]本发明涉及一种基于深度学习的图像颜色矫正方法,属于深度学习图像处理技术领域。

背景技术
[0002]在生活中拍摄照片的过程中,即使对同样的一个场景进行拍照,在不同的拍照设置、光照环境、图像收集设备下,拍摄出来的图像效果也不尽相同。

而带有色偏的图像往往会给很多实际生产任务带来困扰,例如,水下考察时拍摄的图像往往由于光线的衰减和水环境的影响,拍摄出来的图片模糊而又发暗,不能很好的反映出真实的水下情况,从而影响科研考察结果;在拍摄室内写真或照片宣传册时,室内人造光源的色温不同可能会让整体图像的颜色偏暖或偏冷,使宣传图片偏离真实情况。

此外,若天气处于阴雨天气,很有可能拍摄出来的图片模糊又昏暗,造成拍摄不清。

因此,需要一种能适应于各种任务的颜色矫正方法,来解决图片问题。

[0003]颜色校正是图像领域中的一个重要的技术问题。

现有的颜色校正方法中,主要采用静态的、基于假设的处理方法。

例如,当面对光照不足时,可以采用直方图均衡化方法;当光源发生色偏时,可以采取灰度世界算法或镜面反射算法。

但是,这些算法是相互割裂的,往往需要按照一定顺序结合起来使用,而在结合的过程中又会相互制约影响校正效果。

此外,这些算法往往需要基于某些假设才能够使用,例如,灰色世界算法假设对于一副有大量色彩变化的RGB图像,三个分量的平均值趋向于同一个灰度值Gray,这对于颜色单一的图片显然不适合。

[0004]综上所述,研究一种新的关于颜色校正技术,具有重要意义。

但是,目前图像色偏矫正技术不多,已有方法距离满足实际精度要求尚有差距。

发明内容
[0005]本发明的目的是为了克服现有的图像颜色矫正技术存在的不足,提出一种基于深度学习的图像颜色校正方法,包括以下步骤:
[0006]步骤1:获取图像数据。

[0007]具体如下:
[0008]步骤1.1:使用图像采集设备对目标场景进行拍照。

对于同一场景,拍照应该在标准光照环境和非标准光照环境下同时进行拍照,标准光照环境指应该在D65光源的充分照射下拍照,非标准光照环境包括但不限于过暗或过亮、曝光过度或不足、其他不同色温的光源。

[0009]步骤1.2:对于收集到的图片进行标注。

对于同一场景拍摄到的图像,要分别标注哪些是标准光照环境拍照得到的,哪些是非标准光照环境拍照得到的,同时构建成对的数据集,存入数据库中。

[0010]步骤2:对所获取到的图像数据集进行数据增强和数据预处理。

[0011]具体如下:
[0012]步骤2.1:对所获得的图像数据,以图片中心进行下采样,得到像素值为固定像素大小的图像。

[0013]步骤2.2:对下采样过后的图像数据进行镜像反转、旋转、扭曲和随机裁剪,进行数据增强。

[0014]进一步地,所述步骤2.2中数据增强的方法为:
[0015]步骤2.2.1:对图像数据进行水平和垂直镜像反转,进行数据扩增。

[0016]步骤2.2.2:进行旋转操作。

包括对原图像进行顺时针旋转,进行数据扩增。

[0017]步骤2.2.3:进行剪裁操作。

通过滑动窗口的方式在原始图像上进行随机游走进行剪裁,其中,剪裁的次数为5‑10次。

[0018]步骤2.3:对扩增好的数据进行训练集和测试集的划分,得到最终处理好的数据集。

[0019]步骤3:构建基于Encoder‑Decoder的全卷积神经网络。

[0020]具体如下:
[0021]基础卷积神经网络如图1所示,整体采用类似于U‑net的下采样‑上采样的结构,由两种基础单元模块构成,在下采样部分中,单元模块由两个卷积层和一个池化层构成,图像经卷积层处理后,会通过激活函数进行激活。

在上采样部分中,单元模块由上采样层和两个卷积层构成,图像经卷积层处理后也会通过激活函数进行激活。

与传统的U‑net网络不同的是,每一次经过激活函数激活后,都经过BatchNorm层进行归一化。

此外,为了保证网络的灵活性,下采样和上采样的次数可调节。

[0022]整体神经网络结构为下采样‑上采样的Encoder‑Decoder结构,下采样处理模块和上采样处理模块数量一致,并且下采样每一层的输出都会作为一部分输入连接到上采样中作为输入,用于补充图像的浅层信息。

[0023]优化地,上采样过程采取双线性插值法进行上采样,以便让特征图渐进性的变化而非剧烈的变化。

[0024]步骤4:将单级的全卷积神经网络进行级联,获得最终的级联神经网络,同时,针对级联神经网络设计对应的损失函数。

[0025]具体如下:
[0026]步骤4.1:级联卷积神经网络如图2所示,由2个以上的步骤3构建的基础卷积神经网络构成,每一个基础卷积神经的输出都会作为下一个基础卷积神经网络的输入,并向下传播。

[0027]步骤4.2:由于级联卷积神经网络的深度一般较深,为防止在较深的网络中出现梯度消失的现象,将初始图像持续加入至后续的级联网络中作为输入,从而提供一定的梯度。

[0028]步骤4.3:与普通的卷积神经网络不同,由于存在多个卷积神经网络的级联,需要针对其进行特定的损失函数的设计。

每一级的卷积神经网络都会输出其矫正后的图像,将其与标准图像进行LOSS值的计算,得到每一级的LOSS值。

其中,LOSS可以是MSE‑LOSS、SSIM‑LOSS、MSSIM‑LOSS等,从其中选取一个作为最适合的LOSS即可。

[0029]在得到每一级的LOSS值之后,按照一定规则组成级联神经网络的整体LOSS值。

这里采用线性组合的方式,公式如下:
[0030]
[0031]
[0032]
其中,L k 为第k级网络的输出和标准图像之间的LOSS值,αk 为该级对应的有效系数,所有级的有效系数之和为1。

将每一级别对应的LOSS和其有效系数相乘并相加,得到整体网络的LOSS值。

[0033]步骤5:将预处理过后的图像数据集用于级联神经网络训练,得到训练好的几连神经网络模型。

[0034]具体如下:
[0035]步骤5.1:在训练神经网络之前,对网络中的各层参数进行初始化。

此处,可以采用随机或Xavier等初始化方法,对网络各层参数进行初始化赋值。

[0036]步骤5.2:在训练之前,将训练集分为训练用例和验证用例。

此处,可以采用K折交叉验证的方式,对训练集进行划分。

[0037]步骤5.3:将划分好的训练集输入到级联卷积神经网络中,得到输出的矫正图像输出,将其和标准图像进行计算,得到相应的LOSS。

[0038]步骤5.4:采用优化器对神经网络各项参数进行优化,
将得到的LOSS进行反向传播更新网络各项参数。

[0039]步骤5.5:更新参数过后,固定网络参数,将验证集数据输入到神经网络中进行验证,得到在验证集上的LOSS值,若连续一定轮数LOSS值不下降,终止神经网络的训练。

[0040]步骤5.6:根据步骤5.5中得到的LOSS值,
对神经网络的学习率进行调整。

调整策略为:若LOSS值连续一定轮数不下降,则将学习率调整为原来的k倍。

[0041]步骤5.7:返回步骤5.2进行循环迭代,直到满足上述退出条件或达到预设的训练次数上限再终止训练。

[0042]步骤6:将采集到的色偏图像,放入到训练好的模型中进行实时色偏矫正,得到校正好的无色偏的图像。

[0043]具体如下:
[0044]步骤6.1:将实时采集到的图片或网络中客户上传的图像进行剪裁,剪裁到训练时的数据集剪裁得到的固定的大小。

[0045]步骤6.2:将剪裁好的图片输入到训练好的级联卷积神经网络中,得到校正好的的图像,返回到图像矫正系统,完成矫正。

[0046]有益效果
[0047]本发明方法对比现有技术,不需要先验假设,能够去除各种因素对原始图片颜色的影响,可以应用在各种场景的颜色矫正任务上。

在此基础上,可以进一步构建自动化颜色矫正系统,进一步提高颜色矫正的效率。

附图说明
[0048]图1为基础全卷积神经网络结构图;
[0049]图2为级联神经网络结构图;
[0050]图3为图像色偏矫正流程图。

[0051]具体实施方法
[0052]下面结合附图和实施例,对本发明方法做进一步说明。

实施例
[0053]步骤1:选择室内的场景,首先使用图像采集设备对室内场景进行拍照,获取正常和色偏的图像数据,初步处理后存入数据库。

[0054]步骤1.1:使用光学收集设备对图像进行采集,采集过程中先使用标准D65光源在标准环境下对室内目标场景进行拍照,然后调整背景光源色调(如切换为白炽灯,暖光灯等),调节光源亮度,调整曝光值进行拍照,得到拍照好的图像。

[0055]步骤1.2:对于步骤1.1中拍照得到的图像进行信息标注,标准光源环境下拍照的室内图像应标记为“真”,而其余非标准光源环境下拍照得到的室内照片应标记为“假”,同时在数据库中建立对应的字段,图片采用BLOB的格式进行存储,标记位可以采用Boolean类型进行标记存储,真图像设置为True,假图像设置为False,构建室内图像数据库。

[0056]步骤2:对所获取到的数据集进行数据增强和数据预处理。

[0057]步骤2.1:从数据库中读取对应的室内图像数据,将BLOB字段转化为PNG格式并读取。

然后,对所获得的图像数据以图片中心进行下采样,得到像素值为256×256的图像图片。

[0058]步骤2.2:对步骤2.1处理过后的图像进行镜像反转、旋转、扭曲和随机裁剪进行数据增强。

[0059]步骤2.2.1:对图像数据进行水平和垂直镜像反转,进行数据扩增。

[0060]步骤2.2.2:旋转操作包括对原图像进行顺时针45°、90°、135°、180°、225°、270°、315°旋转,进行数据扩增。

[0061]步骤2.2.3:剪裁操作。

通过滑动窗口的方式在原始图像上进行随机游走进行剪裁,剪裁的次数为10次。

[0062]步骤2.3:对上述扩增好的数据进行训练集和测试集的划分,划分比列为8:2,得到最终处理好的图像数据集。

[0063]步骤3:构建基于Encoder‑Decoder的基础全卷积神经网络。

[0064]基础卷积神经网络如图2所示,整体采用下采样‑上采样的Encoder‑Decoder结构,由两种基础单元模块构成,在下采样过程中,处理单元模块由两个卷积层和一个池化层构成,图像经卷积层处理后会通过Relu函数进行激活。

在上采样过程中,处理单元模块由上采样层和两个卷积层构成,图像经卷积层处理后也会通过Relu函数进行激活。

[0065]整体的神经网络结构是一种对称的Encoder‑Decoder结构,下采样处理模块和上采样处理模块数量应该一致,一共包括6个下采样处理模块和6个上采样处理模块。

此外,下采样每一单元模块的输出都会作为一部分输入连接到上采样单元模块中作为输入,用于补充图像的浅层信息进行更精细的图像处理,一共连接6次。

[0066]上采样的过程采取双线性插值法进行上采样,以便让特征图渐进性的变化而非剧烈的变化。

[0067]步骤4:将单级的全卷积神经网络进行级联,获得最终的级联神经网络,同时针对级联神经网络设计对应的损失函数。

[0068]步骤4.1:级联卷积神经网络如图3所示,由4个上述的基础卷积神经网络构成,每一个基础卷积神经的输出都会作为下一个基础卷积神经网络的输入,并向下传播。

[0069]步骤4.2:考虑到级联卷积神经网络的深度一般较深,为了防止在较深的网络中出现梯度消失的现象,此处将初始图像不停的加入至后续的级联网络中作为输入,提供一定的梯度。

[0070]步骤4.3:与普通的卷积神经网络不同,由于存在多个卷积神经网络的级联,需要针对其进行特定的损失函数的设计。

每一级的卷积神经网络都会输出其矫正后的图像,将其与标准图像进行MSE ‑LOSS的计算,得到每一级的LOSS值。

其中,MSE ‑LOSS计算公式如下:
[0071]
[0072]其中,m和n分别代表图像的长度和宽度,A和B分别代表矫正后的图像和原图图像,i ,j分别代表图像中行坐标和列坐标。

[0073]在得到每一级的MSE ‑LOSS值之后,按照一定规则组成级联神经网络的整体LOSS 值。

这里采用线性组合的方式,公式如下:
[0074]
[0075]
[0076]
其中,L k 为第k级网络的输出和标准图像之间的MSE ‑LOSS值,αk 为该级对应的有效系数,所有级的有效系数之和为1。

特别的,由于只有4级,考虑到每一级图像的精度应该是递增的,故权重应逐渐增大。

此处,α1=0.1,α2=0.2,α3=0.3,α4=0.4。

然后,将每一级别对应的MSE ‑LOSS和其有效系数相乘并相加,得到整体网络的LOSS值。

[0077]步骤5:将预处理过后的数据集用于级联神经网络训练,得到训练好的几连神经网络模型。

[0078]步骤5.1:在训练神经网络之前,应该对网络中的各层参数进行初始化,此处利用Xavier初始化方法对网络各层进行赋值。

[0079]步骤5.2:在训练之前,将训练集分为训练用例和验证用例,这里采用十折交叉验证的方式对训练集进行划分。

[0080]步骤5.3:将划分好的训练集输入到级联卷积神经网络中,得到输出的矫正图像输出,将其和标准图像进行计算,得到相应的LOSS。

[0081]步骤5.4:采用Adam优化器对神经网络各项参数进行优化,将得到的LOSS进行反向传播更新网络各项参数。

[0082]步骤5.5:更新参数过后,固定网络参数,将验证集数据输入到神经网络中进行验证,得到在验证集上的LOSS值,若连续15轮LOSS值不下降,终止神经网络的训练。

[0083]步骤5.6:根据步骤5.5中得到的LOSS值,对神经网络的学习率进行调整,调整策略为:若LOSS值连续5轮不下降,则将学习率调整为原来的0.1倍。

[0084]步骤5.7:重新返回步骤5.2进行循环迭代,直到满足上述退出条件或达到预设的训练次数上限再终止训练。

[0085]步骤6:将采集到的室内图像数据放入到训练好的模型中进行实时色偏矫正,得到校正好的无色偏的室内图像。

[0086]步骤6.1:将实时采集到的图片或网络中客户上传的室内图像图片进行剪裁,剪裁到256×256的大小。

[0087]步骤6.2:将剪裁好的图片输入到训练好的级联卷积神经网络中,得到校正好的室内图像图片,返回到网页或客户手中使用,完成矫正。

[0088]以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。

凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

图1
图2
图3。

相关文档
最新文档