基于遗传神经网络的颜色恒常感知计算模型①
2018-08-17徐诗惠
范 珮,张 霞,徐诗惠
1(武汉大学 印刷与包装系,武汉 430079)
2(北京五八钱柜技术有限公司,北京 100020)
颜色是机器对物体识别的主要图像特征之一[1–3],颜色恒常性是人类特殊的视觉感知活动,是人眼在不同光源等外界环境变化的情况下,对物体颜色感知保持稳定的一种视觉特性功能.但在计算机视觉领域,受图像成像时光源颜色的影响,往往会产生机器无法实现正常颜色识别的问题.参考人类视觉中的颜色恒常性,可以通过建立颜色恒常计算模型来对图像进行颜色校正,这种实现图像颜色恒常性的方法已经成为机器视觉领域的一个重要研究问题.
现有的颜色恒常算法大致分为两类:一是基于图像信息统计的方法,该方法在早期依据Land[4]提出的Retinex算法,有灰度世界(Grey-World)算法、Max-RGB算法(又称White-Patch)算法、灰度阴影算法(Shades of Grey)算法和灰度边缘(Grey-Edge)算法等[5–7].这几种经典算法基于大量的图像假设和图像的底层特征,以此估计光源的颜色,从而达到计算颜色恒常的目的.但由于其算法过程是人工设计的,所以这类算法或多或少都有一定的应用范围限制,不能很好的实现不同外界环境条件下的图像颜色校正.
另一类是基于图像特征学习的算法,比如最早用于图像颜色恒常处理的色域映射法(Gamut Mapping)[8]、神经网络(Neural Network)[9]、支持向量回归(SVG)[10]等方法.其中针对神经网络自身的一些固有的缺点,不少研究学者提出了基于神经网络与其他算法模型互补的融合算法[9,11,12].Dufort[13]用这种神经网络模型,在网络最后阶段通过匹配颜色对立细胞来计算色相.Stanikunas等人[14]提出一种神经网络模型,用对立细胞做相应处理,最后输出三个CIE颜色坐标x,y和L.然而颜色恒常效应有着非常典型的心理特征,是一项复杂的心理活动,上述方法虽然取得了一些实验成果,但仍然缺乏与心理机制相联系的感知模型,在实际应用方面往往不能达到人们期望的效果.
据此,本文充分考虑人眼感知以及神经网络算法在颜色恒常实验中的影响,构建颜色恒常感知计算模型的内容主要包括:在第1节中介绍心理物理实验的内容和研究方法,得到颜色光照变化前后的感知关系;在第2节中叙述用遗传算法优化BP神经网络的连接权值和阈值的算法建立过程;第3节中开展颜色恒常实验,设计心理物理实验来获得遗传神经网络的输入和输出训练样本,并对颜色校正结果进行对比评价分析.
1 心理物理实验方法
心理物理学是研究心理感知量与刺激的物理量相互作用关系的学科,常被用来量化主观感知[15],在颜色视觉探索中得到了广泛的应用.颜色恒常性是一种颜色视觉心理现象,通过心理物理实验获取神经网络建模数据可以更好地反映颜色恒常感知的本质.本文设计了颜色恒常心理物理实验,目的是为了获取建模数据,得到光源变化前后记忆色样本的对应关系.由于一些经典的颜色恒常算法对于特定类别的图像有着较好的颜色恒常处理效果,因此本文用Max-RGB、Grey-World、Shades of Grey和Grey-Edge等几种经典的颜色恒常计算方法来处理输入的图像数据,为后面输出图像提供不同的筛选样本.
本文设计了基于类别界定法的心理物理实验,在实验过程中需要考虑不同图像最好的颜色恒常处理方式以及图像中记忆色所在关键位置.类别界定法主要是对刺激的心理感知进行分类,这种方法要求观察者根据自身的视觉心理感知对一定数量的刺激样本进行分类,分类过程按照规定的类别判定量表进行.类别判定量表需要根据实验要求正确规定划分,一般分为5、7或9类.通常统计值符合正态分布.
本实验采用两种评判指标,一个是与记忆色有关的有三个感知参量[16];自然性(naturalness)、鲜艳性(colorfulness)以及喜好性(preference);另一个是判定记忆色所在关键区域.
2 基于遗传算法的BP神经网络优化
2.1 BP神经网络
BP神经网络是采用误差逆向传播算法的多层前馈网络,具有三层或三层以上的多层结构.BP神经网络训练是在有监督的条件下进行的,当学习模式被提供给网络系统之后,神经元的激活值经过各个隐含层,从输入层向输出层传播,然后每个输出层的神经元对对应的输入模式做出响应并计算误差,再逐层逆向返回到输入层,逐层返回的过程中修正连接权值,以减小误差.伴随着这种训练方式的不断进行,整个网络对输入到输出响应的正确率也逐步提高.
通过分析Funt[17,18]的实验成果可知,神经网络运用在颜色恒常领域所得到的效果十分优异.在设计BP神经网络时,需要对以下几个参数进行确定:神经网络的隐含层数、隐含层的神经元数、初始权值、学习速率η以及期望误差的选取.本文定义BP神经网络模型训练中期望输出值Oex和计算输出值Oca之间的平方根误差函数ΔEr为:
在构建神经网络时对于LR梯度下降法采用Sigmoid函数:
尽管目前已有神经网络算法运用在颜色恒常处理中的先例,但是由于BP神经网络算法采用梯度下降法,存在对初始权值向量异常敏感,并且容易陷入局部最小的问题,这些固有缺陷在一定程度上极大的影响该网络在实际应用中的快速发展.
2.2 遗传算法
遗传算法(Genetic Algorithm,GA)是一种仿照自然界物竞天择、繁衍生息的生物进化过程计算的模型.它遵循了达尔文《物种起源》一书中“适者生存”、“优胜劣汰”的进化法则,基于自然群体遗传演化机制进行全局并行搜索.遗传算法在实际问题求解中主要包括以下几个因素:(1)编码:确定染色体的编译方法;(2)初始群体:即第一代种群,其规模大小为pop_size;(3)适应度评估;(4)选择;(5)交叉;(6)变异.
本文遗传算法的基本计算步骤如下:
(1)设置遗传算法的编码方式、遗传操作、适应度函数及迭代终止条件等;依照BP神经网络网络结构编码出与之相对应的遗传算法个体,并且依据随机的方式得到原始种群.
(2)输入训练样本,通过适应度计算对所有的染色体进行评估.
(3)选择操作、交叉操作、变异操作.
(4)产生新的种群.
(5)判断新的种群是否达到终止条件,若没有达到,重复步骤(2)~(5),直到达到条件.
(6)若达到收敛条件,那么就将此时所得到的最优个体解码并依照对应关系分配给BP神经网络的权值与阈值.
2.3 遗传神经网络算法的实现
遗传算法是一种全局搜索性能优异的优化算法,其每次可处理种群中若干个个体,并且评估通过这些个体的所得的解,降低陷入局部极值的可能性,且具有较强的并行处理能力.本文提出基于遗传算法的BP神经网络优化算法,并针对遗传算法自身的缺点,阐述本文遗传算法与BP神经网络结合的有效性.
2.3.1 对遗传算法自身缺点的改进
实际上在应用遗传算法时存在着编码选取问题和交叉、变异算子不变性造成的过早收敛问题.其中对于个体编码方法的选取问题,由于传统的二进制编码方法对连续空间内的优化函数进行编码时是一个离散化过程,这对个体的准确性表示是不利的;而实数编码方法在精度要求较高的遗传算法中得到广泛的运用,该方法在提升计算效率的同时也有利于将遗传算法与其他算法结合使用[19,20].考虑到这些优点,本文选取实数编码方式对染色体进行编码.其次,由于传统遗传算法在更新进化状态的时候,其设置的交叉算子和变异算子不能随着变化取值,从而会导致过早局部收敛.因此对于该问题本文在进行算子操作中选取的交叉算子和变异算子如下:
交叉算子:每次进行交叉的染色体个数等于交叉概率与种群规模之积,以随机的方式选取交叉操作的父代.本文采用离散交叉方法[20],模拟二进制交叉方式从父代种群中随机选取两个个体x1和x2,按下式定义的线性组合交叉方式生成新的后代,其中a为0–1之间的随机数.
变异算子:每次进行变异的染色体个数等于变异概率与种群规模之积.为了得到优于父代的变异结果,可对每个进行变异的染色体进行多次变异.
2.3.2 遗传算法对神经网络连接权值和阈值的优化
从根本上来说,神经网络中权值及阈值的更新过程就是一个复杂函数优化的过程,需要通过若干次调整以及更新才能最终得到最优值[21].
运用遗传算法优化神经网络权值和阈值的过程大致可分为如下步骤:首先确定所构建神经网络的结构及所有神经元的个数;然后将连接权值与阈值通过遗传算法编码并以随机的方式生成编码串群体;之后用遗传算法对这些编码个体进行优化并求得最优个体,最后对该个体进行解码,将该最优个体分解得到BP网络的权值和阈值,经过二次训练以得到满足要求的BP网络.具体操作步骤如下[22]:
(1)定义BP网络的拓扑结构,这其中包括隐含层个数、各层中所包含的神经元个数以及各个神经元之间的连接方式.
(2)设置遗传算法的编码方式、遗传操作、适应度函数及迭代终止条件等;依照(1)定义的神经网络拓扑结构编码出与之相对应的遗传算法个体,并且依据随机方式得到原始种群.
(3)输入训练样本,通过适应度计算对所有的染色体进行评估.
(4)选择操作、交叉操作、变异操作.
(5)产生新的种群.
(6)判断新的种群是否达到终止条件,若没有达到,重复步骤(3)~(6),直到达到条件.
(7)若达到收敛条件,那么就将此时所得到的最优个体解码并依照对应关系分配给BP神经网络的权值与阈值.
2.3.3 遗传算法优化BP神经网络算法流程
在BP神经网络算法获得图像像素点RGB三刺激值在光照处理前后的非线性映射关系之后,利用遗传算法优化BP神经网络,提高算法的精确性.该算法流程如图1所示.
图1 中算法建模流程的具体步骤如下:
(1)对样本数据进行预处理.
神经网络输入值为待处理像素矩阵的R、G、B值.输入输出数据为处理的输入图像的像素及对应输出图像的像素,将其存储在data矩阵表中,并对数据样本进行归一化处理.
(3)激活函数设定以及相关适应度函数的选择.
选取Sigmoid 函数作为神经网络中各节点的激活函数,由于染色体是由权值与阈值编码而得,那么遗传算法的适应度函数即计算神经网络的误差倒数.函数表达式为:
其中,y为放大因子,ei为第i个样本的计算误差.
(4)自适应控制的概率修正.
随着更新迭代的进程,个体间的适应度差距会越来越小,因此通过减小交叉概率和增大变异概率来匹配两种算子的作用方向.其自适应控制的概率修正公式如下所示:
其中,G为总进化代数,t为当前进化代数.
(5)将通过遗传算法进化计算得到的最佳初始权值与阈值用来构建BP神经网络;当计算进化到一定水平以后或者网络误差满足了特定的标准时,遗传算法停止迭代,将获取的最优权值及阈值传递给神经网络.
(6)遗传神经网络误差值的定义.
在神经网络完成训练后得到输入与输出之间的对应关系.本文中定义最后的目标值与模型输出值之间的误差为同一像素点间的色差值.
模型输出的三色通道值为(ro,ro,bo),目标值的三色通道值为(rg,gg,bg),两者之间的误差值如公式(7):
3 颜色恒常实验结果与分析
3.1 颜色恒常感知建模样本的获取
在本文中开展的心理物理实验选择了Ciurea和Funt构造的大型图像数据集[23],从中选取20幅图像作为源图像,类别侧重室内外成熟水果图、蔬菜图、室外自然场景图、肤色图像,基本涵盖了日常生活中的各种场景图像特点,符合心理物理实验对样本数据的要求.实验采用的观测设备为带有遮光罩的QUATO大色域专业显示器.实验在暗室中进行,图像全屏显示.观察者一共20名,男女各10人,年龄变化范围从20岁到25岁.所有观察者视力或校正视力正常,且通过色盲测试,色觉正常.
实验前,首先通过四种颜色恒常经典算法(Max-RGB算法、Grey-World算法、Shades of Grey算法和Grey-Edge算法)对源图像进行处理,每幅原始图像产生了4幅对应的校正图像,共计5幅构成一个实验模块,共20组.在中性灰背景上同时呈现五幅图像,并随机排序,如图2所示.
图2 随机排序的五幅实验图像
告知观察者相关观察评价规则,根据Bartleson提出的心理物理学量表[24],设计自然性、鲜艳性和喜好性的对应分类量表以及记忆色所在关键位置评价表,确定观察者了解本次实验的目标,并仔细阅读实验数据表格,在对应评判时填写分数.此外,为了尽量减少不同观察者的差异性效果,对于每个观察者的数据都通过z-score变换进行标准化,扣除平均值并根据个体尺度的标准偏差进行划分.每个观察者进行两次实验,验证重复性,测试对象出现顺序随机,两次实验环境保持一致.
在记忆色关键位置评价实验中,对每幅源图像被划分为九个区域,进行切割处理后,以拼图的方式显示,观察者需要评估影响上个实验结果的记忆色所在的每个划分区域的重要性,进行分类打分.图像切分显示方式及切分方式如图3.
图3 切分图像显示方式
综上所述,20名观察者根据三个与人眼视觉恒常感知相关的参量,对源图像及其变换图像组成的20个实验模块进行了类别界定,一共做出19 200次视觉评价.根据每幅图像记忆色所在关键区域,可截取该区域作为样本数据集的一部分,从而排除每幅图像中大部分非记忆色像素对后来模型样本训练的影响.
在对观察者判断得分进行处理后可得到针对20幅源图像的最符合人眼感知的输出样本.对每幅图用效果评价平均得分最高的颜色恒常算法进行计算处理,并裁取每幅图像记忆色所在关键区域进行随机拼接,得到拼接的输入和输出图像,如图4所示.通过对两幅图像进行矩阵变换之后将三通道值分离,即可为建模提供输入及输出样本.
图4 颜色恒常模型输入输出图像
3.2 优化前后神经网络的仿真实验对比评价
本文基于Matlab软件来进行神经网络的仿真实验,采用的样本数共192 000组,数据组1–96 000用来训练网络,数据组96 000–192 000用来检验网络性能.
由图5可见,在大多数的样本表现中,蓝色数据的误差值较高,表示未优化前的神经网络算法的预测效果较差,而通过遗传算法优化的神经网络表现出的误差结果则明显降低.
图5 优化前与优化后的神经网络算法误差对比图
图6 表明了遗传算法优化神经网络后明显降低了神经网络震荡的次数.尽管两者训练时为了达到不可能达到的精度,迭代次数均达到了设定的最值,但明显优化后的神经网络收敛更快,在迭代次数较少的时候就已经获得较小的误差值,进入平稳期,在某种程度上降低了陷入局部最优值的可能性.而原始的神经网络在迭代过程中经历了几次震荡,收敛速度较慢.
图6 BP神经网络和优化后遗传神经网络的迭代数据对比图
图7 是神经网络未被优化前与基于遗传算法优化后的训练过程图.两幅图对比可以看出,优化后的神经网络在同样达到最大迭代次数的情况下,所消耗的时间明显减少,两者的误差表现大致相同.
图8是神经网络优化前与优化后的仿真结果.尽管种群规模以及进化代数的初始值设定的较小,但由仿真结果可以看出,基于遗传算法优化的神经网络所建立的颜色恒常感知计算模型仍然比未经优化的模型拥有更好的再现效果,效率及鲁棒性都高于未优化的感知计算模型.
3.3 主观评价
主观评价仍依据心理物理实验的方法和评价标准进行设计(参考本文第1节和3.1节),主观评价方法需要对观察者设置一定的观察目标,由其根据自身的视觉感觉对实验图像进行评估.本文为对遗传神经网路颜色恒常感知计算模型进行评价,将其与4种经典算法进行对比.
由10名测试者对单个测试图像的5幅处理图像(5种不同算法)进行比较,每一幅图像最终的分数由10名观察者的评分求平均值得到,得分结果如图9所示.
图7 训练结果图
图8 仿真结果
图9 主观评价结果
从主观评价结果的数据图表可以看出,对于记忆色的表现,遗传神经网络算法精确度较高,对于不同种类的图像均有较好的效果,具有良好的普适性.
图10仅展示了部分测试图像,选取的是各类场景具有代表性的图像经过几种颜色恒常性计算方法得到的校正对比图.从本文示例的几幅效果图可以看出,优化后的遗传神经网络算法对蓝天、绿地、肤色等不同类型的图像均有较好的处理效果,能去除这些图像的光照影响,将其恢复到白光下的颜色表现.
图10 部分校正图像对比图
3.4 客观评价
本文在综合了Banard与Finlayso创建的针对颜色恒常算法的两种评价体系后,采纳角度误差和色度误差在整个实验集上的均值作为评定标准来客观判断算法的有效性.
本文选用的数据库每幅图像的真实光照条件均已知,于是可以直接用公式来计算估计光照值与真实光照之间的角度误差和色度误差.角度误差和色度误差越小算法效果更好.
在计算误差角度时,由公式(8)求得估计光源ee和真实光源el之间的夹角ε,即角度误差.
最后,对于所有测试图像求取平均角度误差作为算法性能比较说明的指标,处理结果如表1所示.
公式(9)表明,色度误差Ed的计算采用的是计算两个光照色度之间的欧氏距离的方式.其中,已知真实光照色度值为ca=(ra,ga),通过算法校正后计算得到的光照色度值为ce=(re,ge).
最终确定色度误差值与角度误差方式相似,仍是对多幅图像的色度误差求平均值.色度误差计算结果如表2所示.
表1 角度误差计算结果
表2 色度误差计算结果
从角度误差和色度误差两个表格中的数据可以看出,对于整个数据库的图像而言,本文的算法无论是从角度误差还是色度误差来看,都低于其他的算法结果值,表现结果均很优异.以上客观指标说明了本文的方法对于颜色恒常性处理可以取得较好的结果.
整体来看,从算法精度考虑不同类别图像的光源颜色能被很好的去除,实现机器视觉的颜色恒常;从算法的运行时间方面来说,前期训练时间虽然由于数据样本量过大导致训练时间过长,但是仿真时间短,一旦网络学习训练好之后,调用时间非常快.对于同样大小的图像,算法耗费时间基本一致,效率不相上下.
4 结论
针对现有神经网络颜色恒常计算的自身弊端,本文提出了基于心理物理实验和遗传算法优化的BP神经网络颜色恒常感知计算模型.利用遗传算法优化神经网络的阈值及权值,提高了算法的精确性及计算效率,设计了基于类别界定法的心理物理实验,得到的近于人眼感知样本集作为遗传神经网络输入和输出的训练图像.通过主客观分析评价,本文中的遗传神经网络颜色恒常计算模型在颜色校正方面存在良好的有效性.