发明内容
本发明所要解决的技术问题是提供一种自适应图像调色方法、系统、存储介质及电子设备。
本发明解决上述技术问题的技术方案如下:一种自适应图像调色方法,包括:
步骤1,获取待处理图像、源图像以及目标图像;
步骤2,对所述源图像以及所述目标图像进行预处理,得到转换格式后的源图像以及目标图像;
步骤3,通过所述转换格式后的源图像以及目标图像训练BP神经网络模型;
步骤4,将所述待处理图像输入至BP神经网络模型中,得到输出结果;
步骤5,对所述输出结果进行白平衡处理,得到最终图像。
本发明的有益效果是:利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤1具体为:
通过数字图像处理程序获取待处理图像、源图像以及目标图像。
进一步,步骤2具体为:
将所述源图像以及所述目标图像的numpy中用于数学运算的多维数组数据结构ndarray转化为torch中用于数学运算的张量数据结构,将所述源图像以及所述目标图像的HWC格式转化为CHW格式,并在所述源图像以及所述目标图像的张量维度前分别添加batch维度。
采用上述进一步方案的有益效果是,将格式转换是为了便于输入至模型中处理,另外,在目标图像的张量维度前添加batch维度也是输入网络的张量必须有的构成,其同样是为了适应BP神经网络模型。
进一步,步骤3具体为:
构建包含均方差损失算法以及参数优化器的BP神经网络模型,将所述转换格式后的源图像以及目标图像输入至所述BP神经网络模型,所述转换格式后的源图像以及目标图像经过循环处理,得到色调变换规律,完成所述BP神经网络模型的训练,其中,所述循环处理包括:清空梯度、向前传播、计算误差、反向传播以及更新参数。
采用上述进一步方案的有益效果是,对色调变换规律的计算可以使该方法更好的实现自适应变换,提高方法的适用性。
进一步,步骤5具体为:
获取输出结果的图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
根据每个通道的增益值,对每个像素点的三通道像素值进行增益,完成白平衡处理。
本发明解决上述技术问题的另一种技术方案如下:一种自适应图像调色系统,包括:
获取模块,用于获取待处理图像、源图像以及目标图像;
预处理模块,用于对所述源图像以及所述目标图像进行预处理,得到转换格式后的源图像以及目标图像;
训练模块,用于通过所述转换格式后的源图像以及目标图像训练BP神经网络模型;
输入模块,用于将所述待处理图像输入至BP神经网络模型中,得到输出结果;
白平衡模块,用于对所述输出结果进行白平衡处理,得到最终图像.
本发明的有益效果是:利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
进一步,获取模块具体用于:
通过数字图像处理程序获取待处理图像、源图像以及目标图像。
进一步,预处理模块具体用于:
将所述源图像以及所述目标图像的numpy中用于数学运算的多维数组数据结构ndarray转化为torch中用于数学运算的张量数据结构,将所述源图像以及所述目标图像的HWC格式转化为CHW格式,并在所述源图像以及所述目标图像的张量维度前分别添加batch维度。
采用上述进一步方案的有益效果是,将格式转换是为了便于输入至模型中处理,另外,在目标图像的张量维度前添加batch维度也是输入网略的张量必须有的构成,其同样是为了适应BP神经网络模型。
进一步,训练模块具体用于:
构建包含均方差损失算法以及参数优化器的BP神经网络模型,将所述转换格式后的源图像以及目标图像输入至所述BP神经网络模型,所述转换格式后的源图像以及目标图像经过循环处理,得到色调变换规律,完成所述BP神经网络模型的训练,其中,所述循环处理包括:清空梯度、向前传播、计算误差、反向传播以及更新参数。
采用上述进一步方案的有益效果是,对色调变换规律的计算可以使该方法更好的实现自适应变换,提高方法的适用性。
进一步,白平衡模块具体用于:
获取输出结果的图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
根据每个通道的增益值,对每个像素点的三通道像素值进行增益,完成白平衡处理。
本发明解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述任一项所述的一种自适应图像调色方法。
本发明的有益效果是:利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
本发明解决上述技术问题的另一种技术方案如下:一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,所述处理器执行所述程序时实现如上述任一项所述的一种自适应图像调色方法。
本发明的有益效果是:利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
具体实施方式
以下对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种自适应图像调色方法,包括:
步骤1,获取待处理图像、源图像以及目标图像;
步骤2,对源图像以及所述目标图像进行预处理,得到转换格式后的源图像以及目标图像;
步骤3,通过转换格式后的源图像以及目标图像训练BP神经网络模型;
步骤4,将待处理图像输入至BP神经网络模型中,得到输出结果;
步骤5,对输出结果进行白平衡处理,得到最终图像。
在一些可能的实施方式中,利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
需要说明的是,对于源图像以及目标图像的读入还可以采用如下方法:skimage.io.imread()方法或PIL.Image.Open()方法。对于源图像以及目标图像的预处理可以是为了适应BP神经网络模型而做出的任何格式或数据等的适应性调整。对于白平衡处理,本发明采用了一阶滤波的算法,其公式如下:
分别得到图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
具体处理过程可参考实施例1辅助理解。
实施例1,利用opencv-python将源图像与目标图像读入对图像进行预处理,从numpy中用于数学运算的多维数组数据结构ndarray通过torch.from_numpy()方法转换为torch.tensor,其中torch.tensor为torch中用于数学运算的张量数据结构,与前文的ndarray类似,但tensor可以构建计算图,多用于神经网络中的传递。并将HWC格式通过tensor.transpose()方法,依次按通道2、0、1重排的方式转换为CHW格式,然后添上batch维度,此处应理解为:原张量维度为C×H×W,在最前的位置添上batch维度,变成N×C×H×W。Pytorch深度学习框架中,输入网络的张量必须有batch维度,该操作是为了与之适应,做好输入网络的准备。搭建输入通道为3、输出通道为3、卷积核大小为1x1、包含偏置的卷积层。建立均方差损失与参数优化器。进入循环,依次清空梯度、前向传播、计算误差、反向传播、更新参数。循环结束,掌握色调变换规律,其中,循环结束的判断依据为:达到预定迭代轮数或计算误差小于某阈值。重复源图像以及目标图像的读入以及对读入图像的预处理,将待处理图像输入神经网络得到输出。
白平衡处理的原理具体如下:
分别得到图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
得到通道增益后,将每个像素点的三通道像素值分别乘以对应通道增益,即可实现白平衡,即处理后的图像三通道的全局均值相等。保存输出结果。
另外,自适应神经网络的底层逻辑在于,对于一般的色调变换,只需较直接的像素值的线性变换,就能进行拟合。设某点RGB三值分别为r,g,b,则变换可表示为:
其中,线性权重k和偏置b是待学习参数。通过对目标图像与源图像的变换图像之间误差的反向传播求导,即可指导优化方向。
优选地,在上述任意实施例中,步骤1具体为:
通过数字图像处理程序获取待处理图像、源图像以及目标图像。
优选地,在上述任意实施例中,步骤2具体为:
将所述源图像以及所述目标图像的numpy中用于数学运算的多维数组数据结构ndarray转化为torch中用于数学运算的张量数据结构,将所述源图像以及所述目标图像的HWC格式转化为CHW格式,并在所述源图像以及所述目标图像的张量维度前分别添加batch维度。
在一些可能的实施方式中,将格式转换是为了便于输入至模型中处理,另外,在目标图像的张量维度前添加batch维度也是输入网略的张量必须有的构成,其同样是为了适应BP神经网络模型。
优选地,在上述任意实施例中,步骤3具体为:
构建包含均方差损失算法以及参数优化器的BP神经网络模型,将所述转换格式后的源图像以及目标图像输入至所述BP神经网络模型,所述转换格式后的源图像以及目标图像经过循环处理,得到色调变换规律,完成所述BP神经网络模型的训练,其中,所述循环处理包括:清空梯度、向前传播、计算误差、反向传播以及更新参数。
需要说明的是,每次循环称为1个epoch,清空梯度:每个epoch结束后,神经网络中会存留参数的梯度信息。因此每个epoch初期,要先手动清空上次遗留的梯度。
前向传播:指数据在神经网络中传递并计算得到变换结果的过程。其中前向传播是源图像输入网络并计算传播,其计算方法通过下式计算,
r、g、b代表某个像素的三通道值,对源图像每一个位置都进行相应计算,神经网络输出与源图像大小相同的变换结果。变换结果为调色完成后得到的图像,预期经过神经网络的变换结果能收敛于目标图像,即向目标图像接近。
计算误差:量化变换结果和目标图像之间的差异,选用MSE Loss,即计算对应像素值之差的平方,然后遍历所有像素点求和。其中,计算对应像素值可以理解为对相同位置计算平方误差,然后对所有位置的平方误差求和,得到整个图像的MSE Loss。求和得到的数据MSE Loss称为损失函数,用于衡量变换结果与目标图像的差距。由于需要找到最小化该损失函数。前向传播的过程中每一步运算都同时记录了导数的信息,因此得到损失函数后,可以通过反向传播获取损失函数关于参数k和b的梯度(所有偏导数)。然后根据该梯度信息进行梯度下降,从而达到减小损失函数的目的。
反向传播:深度学习框架一般带有自动求导机制,可以根据前向传播的运算过程绘制计算图,并基于计算图获取损失函数关于矩阵元以及偏置的梯度。
更新参数:一般基于梯度下降,使参数向着能使损失函数变小的方向更新,待更新的参数为矩阵元k以及偏置b。
掌握色调变换规律其实就是寻找合适的参数k,b。本方法流程精简,不引入过多的复杂度,以较小的时间开销与空间开销快速获得色调变换规律。其中合适的参数k,b可以理解为观察损失函数的变化,当降低到一定阈值内就认为合适。
在一些可能的实施方式中,对色调变换规律的计算可以使该方法更好的实现自适应变换,提高方法的适用性。
优选地,在上述任意实施例中,步骤5具体为:
获取输出结果的图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
根据每个通道的增益值,对每个像素点的三通道像素值进行增益,完成白平衡处理。
如图2所示,一种自适应图像调色系统,包括:
获取模块100,用于获取待处理图像、源图像以及目标图像;
预处理模块200,用于对所述源图像以及所述目标图像进行预处理,得到转换格式后的源图像以及目标图像;
训练模块300,用于通过转换格式后的源图像以及目标图像训练BP神经网络模型;
输入模块400,用于将待处理图像输入至BP神经网络模型中,得到输出结果;
白平衡模块500,用于对输出结果进行白平衡处理,得到最终图像。
在一些可能的实施方式中,利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
优选地,在上述任意实施例中,获取模块100具体用于:
通过数字图像处理程序获取待处理图像、源图像以及目标图像。
优选地,在上述任意实施例中,预处理模块200具体用于:
将源图像以及目标图像的numpy中用于数学运算的多维数组数据结构ndarray转化为torch中用于数学运算的张量数据结构,将源图像以及目标图像的HWC格式转化为CHW格式,并在源图像以及目标图像的张量维度前分别添加batch维度。
在一些可能的实施方式中,将格式转换是为了便于输入至模型中处理,另外,在目标图像的张量维度前添加batch维度也是输入网略的张量必须有的构成,其同样是为了适应BP神经网络模型。
优选地,在上述任意实施例中,训练模块300具体用于:
构建包含均方差损失算法以及参数优化器的BP神经网络模型,将转换格式后的源图像以及目标图像输入至所述BP神经网络模型,转换格式后的源图像以及目标图像经过循环处理,得到色调变换规律,完成BP神经网络模型的训练,其中,循环处理包括:清空梯度、向前传播、计算误差、反向传播以及更新参数。
在一些可能的实施方式中,对色调变换规律的计算可以使该方法更好的实现自适应变换,提高方法的适用性。
优选地,在上述任意实施例中,白平衡模块500具体用于:
获取输出结果的图像的GRB第一通道在全局的均值r0、GRB第二通道在全局的均值g0以及GRB第三通道在全局的均值b0,计算第一通道的增益值kr、第二通道的增益值kg以及第三通道的增益值kb,
根据每个通道的增益值,对每个像素点的三通道像素值进行增益,完成白平衡处理。
本发明解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如上述任一项所述的一种自适应图像调色方法。
在一些可能的实施方式中,利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
本发明解决上述技术问题的另一种技术方案如下:一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,所述处理器执行所述程序时实现如上述任一项所述的一种自适应图像调色方法。
在一些可能的实施方式中,利用BP神经网络的参数学习机制,无需训练样本,只需提供原图像作为输入,目标图像作为ground truth标签,可自适应地学到映射关系。并且,通过白平衡处理可以有效的针对RGB通道不协调问题,即,当算法学到的色调变换规律收敛后,可将变换的参数应用于批量处理。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。