灰度图像的彩色复原方法 ——以人脸着色为例

灰度图像的彩色复原方法 ——以人脸着色为例

代码文件下载地址

摘要:灰度图像彩色复原在图像修复领域有广泛的应用,由于其涉及从低纬度空间向高纬度空间的映射,故而修复效果存在差异。本文以人脸为例研究灰度图像的彩色复原方法,在主流灰度图像彩色修复算法的基础上,创新性的引入面部色彩分类指标,其依据人脸面部纹理特征将面部肤色分为36类,然后基于纹理分类指标创建模型,使得模型能够对灰度图像依据面部纹理特征,通过特征提取、灰箱模型、模拟上色进行分类着色。最后对模型进行数值测试,测试结果优良。
关键词:灰度图像;人脸着色;卷积神经网络;MATLAB

目 录

1 引 言 1
2 问题分析及模型思路 2
 2.1 问题详述 2
  2.1.1 灰度图介绍 2
   2.1.2 彩色图介绍 3
  2.1.3 面临问题 3
 2.2 建模思路 3
3 使用工具及数据获取 4
 3.1 使用计算工具 4
 3.2 人脸图像获取 4
 3.3 人脸图像预处理 4
4 面部色彩分类指标构建 5
 4.1 面部像素判断 5
 4.2 色彩空间转换 6
 4.3 面部色彩指标构建 7
 4.4 面部色彩标记 10
5 卷积神经网络模型 11
 5.1 卷积神经网络介绍 11
 5.2 卷积神经网络模型搭建 11
 5.3 参数预设 11
 5.4 卷积神经网络结构 12
  5.4.1 输入层 12
  5.4.2 卷积层 13
  5.4.3 池化层 15
  5.4.4 全连接层 16
 5.5 卷积神经网络训练 17
  5.5.1 池化层到卷积层的反向传播 17
  5.5.2 卷积层到池化层的反向传播 17
6 参数调整及模型误差 19
 6.1 使用预设参数对模型进行训练 19
 6.2 调整参数修正模型 20
  6.2.1 第一次修正 21
  6.2.2 第二次修正 22
7 人脸彩色化实例及对比 23
 7.1 新模型图像着色 23
 7.2 模型对比 25
8 总结 25
9 致谢 27
参考文献 28
附录 29
 附录一: 29
 附录二: 30

1 引 言

   灰度图像彩色化在现代社会有着较多的应用。例如旧照片色彩还原、古画等文物色彩修复、嫌疑人画像着色等领域。
   在上世纪末本世纪初,主要灰度图着色手段为基于色彩标注传递[1]的思想,其核心认为小范围图像中,色彩的色值不会发生变化。其过程在于对原始灰度图像进行色彩标注,后依据图像内容轮廓进行分割,在同一子图像中将标记色进行传递,最后拼合所有子图像达到图像整体着色的目的。该过程中,着色效果的主要影响因素在于两点:一是标记者对图像的把控与对于标记色彩的选择;二是图像不同色值的边缘轮廓是否清晰。若标记者错误标记,则色彩也会错误传递,同样若两个色值间为渐变过渡则着色效果也会大为降低。
在这里插入图片描述

   基于传递的思想,设计了基于图像分割与色彩扩展的色彩传递算法[2],其核心思想也是色彩传递,不同之处在于其色彩来源不再是由使用者手工标注,而是由一张给定的参考图像传递。首先对参考图像及目标图像具有相似纹理的色块进行分割,然后将参考子图像的色值经过一定变换后传递到目标子图像,最后进行汇总达到整体着色的目的。该过程中,主要影响为参考图像是否与目标图像相似。就一般而言,对于相似图像查找较为困难,错误的选择参考图像也定会产生着色效果的较大偏差。
在这里插入图片描述

现代随着机器深度学习的发展,对于灰度图像,主要的着色方法为卷积神经网络法[3]。上述两种方法主要缺点在于都需要人机交互,过程繁琐,卷积神经网络法很好的克服这一点。其主要过程为:通过卷积神经网络构建初始模型,然后对大量图片进行自我训练,提取诸多图像特征,建立特征与色值的灰箱关系。然后给定一张目标图片,模型自己通过卷积层对图像特征进行提取,然后匹配色彩,反向传递到原始图片,完成灰度图着色的目标。但其对于部分精细化图像如人脸着色效果远不如上述两种方法,着色偏差较大。
在这里插入图片描述

   本文将基于卷积神经网络模型建立一套新的灰度图像着色模型,使之能够完成更为细致化的图像着色工作。由于图像处理对硬件设备要求较高,故而受硬件设备影响,在本文中,将选取人脸图像为例对灰度图像着色模型进行研究。
   人脸识别在目前有着较好应用,且样本数据较其他数据更方便采集,可使用爬虫程序从网站百度图片中大量获取;对于复杂度而言,人的面部肤色[4]粗略可依据人种分为黑种人、棕种人、黄种人以及白种人四类,也可建立更为细致的肤色表,将色值相近的归于同一类色彩,然后基于肤色表进行更详细的划分。故而在下述模型建立过程中,将以人脸为例进行灰度图像着色。
   该论文包含以下内容:第一部分引言,第二部分问题分析及模型思路,第三部分使用工具及数据获取,第四部分面部色彩分类指标构建,第五部分卷积神经网络模型,第六部分参数调整及模型误差,第七部分人脸彩色化实例及对比,第八部分总结及第九部分的感谢。

2 问题分析及模型思路

2.1 问题详述

2.1.1 灰度图介绍

   灰度图又称为灰阶图,是将纯黑色到纯白色的过渡色彩划分为256阶,每一阶表示一个特定的明度。灰度图中只包含亮度信息,不包含色彩信息,故而其信息量较彩色图像会大为减少。
在现代计算机中,对于灰度图像一般存储在一个二维矩阵中,矩阵内的每一个元素都表示一个特定的阶,矩阵元素值的种类不会超过256个。在RGB色彩模式中,可以数学表示为:
x∈{x|0≤x≤255,x∈N}	(2.1)

   其中x表示灰度图像中的任意一个像素,N表示自然数。

2.1.2 彩色图介绍

   彩色图是多光谱图像的一种特殊情况,主要对应的是人眼视觉的三原色即红色波段、绿色波段以及蓝色波段。相较于灰度图,彩色图不仅包含明度信息,还包含有色相信息与纯度信息,一般而言,色相与纯度可以结合称为色值。
   在计算机中,对于彩色图像一般存储在一个三维矩阵中,该三维矩阵由三个相同维度的二维矩阵构成,彩色图像中每个像素显示的色值均由三个二维矩阵所对应位置的数值表示。在RGB色彩模式中,可以数学表示为:
(x,y,z)∈{(x,y,z)|0≤x≤255,x∈N,0≤y≤255,y∈N,0≤z≤255,z∈N} (2.2)

   其中x,y,z表示三层二维矩阵中的同一位置的一个像素,N表示自然数。

2.1.3 面临问题

   在从灰度图像到彩色图像的转变过程中,涉及到由二维空间向三维空间的投影。由于单一像素的信息量较少,故而要使用其他方法获取更多的信息完成对色值的预测,并且要尽可能使得预测结果与实际结果误差小,使模型在面向人脸的色彩预测适用范围更广。

2.2 建模思路

   人眼对于灰度图像的上色一般经历三步过程:首先是观察目标图像、从图像纹理中寻找图像特征,然后依据此前所接触到的普遍规律,进行惯性思考,在大脑中对图片特征进行颜色匹配,最后进行模拟上色。
   例如看到一颗大树的灰度图像,一般会想它的树冠是绿色的,它的树枝是棕黑色的。这一步思考的前提是在观察者看到这张图片前,见过很多树,得到一个定向思维,树叶的颜色是绿色的,树枝的颜色是棕黑色的。当然,人眼在特征提取中一般只会提取较为明显的特征,故而存在错误判断,假如对图像进行更细致的观察,通过树叶的形状认识到这是一颗枫树,那么它的树冠就不一定是绿色,而有可能是红色,这是因为在大脑此前构建的规律认知中,认为枫树树叶的颜色是红色的。
   本文基于以上思考,在算法设计中,首先确定人脸位置,然后获取面部特征,对面部区域进行框选,然后从面部提取更加细微的特征,建立特征向量,使之能够确定其面部色彩种类,然后使用海量彩色图像进行训练,使之建立特征向量与色彩的灰箱关系,在给定一张灰度图像后,可经过特征提取、灰箱模型、模拟上色三步完成上色过程。

3 使用工具及数据获取

3.1 使用计算工具

   本文主要使用的工具为python与MATLAB。
   Python是一种可跨多个平台的计算机程序设计语言,具有简单易懂、开源等优点。Python具有极其强大的第三方库,库中涉及数学、物理、生物、化学等多个领域的计算函数,故而其具有非常高的开发效率,充分利用第三方库,可大大降低开发周期。
   MATLAB是由美国公司MathWorks所推出商业性质的数学软件,用于数据可视化、数据分析、数值计算以及算法开发的高级计算语言。MATLAB具有极其高效的数值计算功能与符号计算功能,并且配备有诸多安全可靠的工具箱为使用者提供更便捷的数据处理工具。

3.2 人脸图像获取

   使用python基于scrapy框架[5][6]编写爬虫程序,从百度图片中爬取大量包含人脸的彩色写真图像,重命名后保存至文件夹。
   Scrapy是由Python编写的快速、高层次的web数据抓取框架,其由Scrapy Engine(引擎)、Scheduler(调度器)、Downloader(下载器)、Spider(爬虫)、Item Pipeline(管道)、Downloader Middlewares(下载中间件)及Spider Middlewares(Spider中间件)七部分组成,可灵活对各部分进行修改补充编写功能强大的网络爬虫。

3.3 人脸图像预处理

   由于爬虫从网页上爬取图像不仅包含人脸部分,还包含身体部分、背景部分等干扰图像,为降低其他图像对人脸色彩的干扰,为后续工作做准备,故而需要对各张图像的人脸部分进行框选。
在python的第三方库中,Opencv[7][8]是一个强大的图像处理和计算机视觉库,其在计算机视觉领域研究中必不可少。Opencv库中,有自带的人脸识别提取分类器
Haarcascade_frontalface_default.xml与面部68特征点坐标提取分类器
shape_predictor_68_face_landmarks.dat。
   使用人脸识别提取分类器对所抓取的网络图像进行初步处理,截取面部图像刨除干扰图像,统一缩放使大小为150×150的方形图像,然后归档;再使用面部68特征点坐标提取分类器对图像内面部特征点进行提取,将特征点坐标保存至txt文档后归档。
在这里插入图片描述

4 面部色彩分类指标构建

4.1 面部像素判断

   由于本文重点研究面部肤色与面部纹理特征的关系,故而需要借助68特征点勾勒出面部区域。
   在68特征点中,提取出面部外轮廓点集,以进行拉格朗日插值。
   由于面部68特征点构图为闭合多边形,并非函数关系,故而对其进行拆分,将其分为上下两部分,且对于同一横坐标下对应多个纵坐标的数值进行舍弃,使所得坐标点可进行拉格朗日插值,构建面部轮廓。

在这里插入图片描述

   其中x为所求y值的对应横坐标。
   在进行插值过程中,由于部分图像面部有所缺失,故而存在插值点在图像范围之外,即存在部分越界点,对于此类问题,进行如下处理:
   通过确定横坐标范围,对纵坐标低于0的及超过150的坐标作出
在这里插入图片描述

   由上对于任意图像,均可获取由点构成的面部封闭轮廓,在后续计算中,对任意满足在面部的像素坐标(x,y),其必然满足
在这里插入图片描述

   其中min⁡〖〖 l〗_j (x)〗表示在横坐标为x时的最小临界值,max⁡〖〖 l〗_j (x)〗表示在横坐标为x时的最大临界值。
由此可判断一点是否在面部,而非其他位置。

4.2 色彩空间转换

   一般我们所浏览的图像,其色彩模式为RGB模式。
   RGB色彩模式[9]是一种工业颜色标准。其有三层通道,分别为红色通道(red)、绿色通道(green)以及蓝色通道(blue)。取三种通道英文的首字母命名。每层通道均有256种等级的亮度,在计算机中,用0~255表示。从理论分析,RGB色彩模式可以表示出256^3即16777216种颜色,基本满足人类肉眼对色彩的需求。
   在人眼的视网膜中,主要包含有两种细胞,分别为视锥细胞与视杆细胞 ,其中视锥细胞约有700万,视杆细胞约有1亿。视锥细胞光敏感度低,强光刺激才能引起兴奋,但具有分辨颜色的能力。视杆细胞则对弱光敏感,却不具备分辨颜色的能力。故而人眼对色值的敏感度约为7%,对亮度的敏感度为93%。
   灰度图像实质为亮度图像,若使用RGB色彩模式,则需要对R、G、B三个通道进行预测,在预测过程中势必丢失部分信息。为尽可能的保留原有灰度信息,故而使用Lab色彩模式。
   Lab色彩模式[10]是根据CIE在1931年制定的定义颜色的国际标准上建立,它与设备无关,与生理有关。Lab色彩模式由亮度(L)及a、b两个颜色通道组成。Lab色彩模式既不依赖于光线,也不依赖于颜料,它是一个在理论上包含了人肉眼可以观察的所有颜色的色彩模式。Lab色彩空间中的L通道用于表示像素的亮度,其取值范围为0到100,对应表示从纯黑到纯白;a通道表示从红色色值到绿色色值的范围,值的范围127到-128,b通道则表示从黄色色值到蓝色色值的范围,值的范围127到-128。
RGB色彩空间在与Lab色彩空间在色彩转化时,需要借助XYZ颜色空间。
   从RGB色彩空间到Lab色彩空间 :
在这里插入图片描述
在这里插入图片描述

4.3 面部色彩指标构建

   为减少运算量,认为面部像素全部存在于面部68特征点构成的闭合多边形内,故而只需对满足下式的点进行位置判断

在这里插入图片描述

   其中φ_x表示68特征点中由x坐标构成的集合,φ_y表示68特征点中由y坐标构成的集合。
   对Lab格式图片面部各层进行提取统计,为方便观察,截取如下25例样本图像,统计结果如下:
在这里插入图片描述
在这里插入图片描述

   可以从分布图中发现,L层面部像素值分布分散,但a层与b层面部像素值分布较为集中,说明人类面部肤色色值相近,且与样本所接受的环境光照无关。但依然可以看到a层与b层面部像素值分布情况存在略微差异,说明可以依据此差异,对人脸面部色彩进行分类。
   通过图像,直观的发现在a层的面部像素值基本满足有50%介于1025间,b层面部像素值满足有50%介于1025间,故而以3为单位,将a层数据分为6组,若a层面部像素值均值属于那组范围,则其值可近似认为是组的对应值,对应值取各范围内的中位数,其公式如下:
在这里插入图片描述

   在亮度L=50时,其对应的色卡如下图所示:
在这里插入图片描述

   可以看出,色卡左侧部分对应黑种人的肤色,右侧部分对应白种人的肤色,下侧部分对应黄种人的肤色。颜色符合直观感受,故而指标构建合理。
   由于指标由a、b两个值构成,不方便标记,故而对其进行处理,使用1到36间的数字对各个色值进行标记替代,可得下表:
在这里插入图片描述

   表格中依据MATLAB存储数组方式即先行后列进行数字递增替代,此方法有助于有序的进行指标替换。

4.4 面部色彩标记

   在完成指标体系建立后,使用MATLAB对图片面部色彩进行标记。
   依据68特征点提取出图像面部像素坐标,对图像a、b层像素分别做统计得到平均值,然后通过替换表将结果替换为数字后存储在一个一维向量中备用。

5 卷积神经网络模型

5.1 卷积神经网络介绍

   卷积神经网络[11]是一种前馈性质的神经网络,其包含有卷积计算且具有深度结构,在深度学习中应用广泛。由于卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络”[12]。
   卷积神经网络是仿照生物的视知觉机制建立的,即可以进行监督性学习也可以进行非监督性学习。由于在卷积神经网络隐含层内的卷积核参数实行共享机制且层与层间的连接具有稀疏性,故而使得卷积神经网络具有使用较小的计算量完成对格点化特征如音频、像素的学习,且学习结果具有稳定的效果,对于数据也没有其他额外的特征工程要求。

5.2 卷积神经网络模型搭建

   使用matlab卷积神经网络工具箱,搭建一个包含6层的卷积神经网络模型,其结构如下图所示:
在这里插入图片描述

其中,模型各层依次为输入层、卷积层1、池化层1、卷积层2、池化层2以及最后的全连接层。

5.3 参数预设

   由于输入图像尺寸为150×150,故而依据经验,对参数进行如下预设:
   卷积层1:包含有6个卷积核,卷积核尺寸都为25,补零层数为1;
   池化层1:池化步长为2;
   卷积层2:包含有12个卷积核,卷积核尺寸都为25,补零层数为1;
   池化层2:池化步长为2;
   由于输入图像为二维灰度图像,故而其深度为1,设置训练次数为一次,运行一次输入30张图像数据。
   参数相关内容后文将进行详细介绍。

5.4 卷积神经网络结构

5.4.1 输入层

   输入层即为整个神经网络的输入,在本文的卷积神经网络中,它代表了一张人脸图像的像素矩阵。像素矩阵的长和宽代表了图像的长和宽。在本文所使用到的灰度图像,图像的深度为1,故而每个输入都仅有1层。从输入层开始,卷积神经网络通过不同的子结构不停的将上一层的二维矩阵转化为下一层的二维矩阵,直到全连接层。
   输入前需要对数据进行规范化操作,使得图像数据格式满足卷积神经网络模型输入格式及运算格式。
   首先将面部样本图像从RGB色彩模式灰度化,受制于MATLAB读取RGB色彩模式下图像的存储格式为unit8,无法进行浮点运算,故而对存储格式进行强制转化,转化为double格式,再使用公式 进行灰度化:

在这里插入图片描述

   其中Gray为输出灰度图像,R为RGB色彩的红色通道,G为RGB色彩的绿色通道,B为RGB色彩的蓝色通道。
   灰度图像的深度为1,其大小在此前已做限制,限制为150×150大小,即获取结果为150×150的二维矩阵。
   为提取图像边界特征,matlab的卷积神经网络工具箱会自动为图像进行边缘补零,在完成卷积计算后产生的特征图大小为:

在这里插入图片描述

   其中w为输入矩阵的大小,k为卷积核的大小,s为卷积步幅,p为补零层数。
   由于预设参数需要进行两次卷积及两次池化,而特征图像大小不存在为非整数,故而对于输入图像,必须满足:

在这里插入图片描述

   其中w为输入矩阵的大小,p_1为卷积层1的补零层数,k_1为卷积层1的卷积核大小,s_1为卷积层1的卷积步幅,c_1为池化层1的池化步幅度,p_2为卷积层2的补零层数,k_2为卷积层2的卷积核大小,s_2为卷积层2的卷积步幅,c_2为池化层2的池化步幅度,N^*为非零自然数。
   将预设参数代入判断,发现所得结果不为非零自然数,故而在输入图片中手工补零一层,此时输入图像大小为152×152,代入计算其结果满足为非零自然数。
   再将从百度图库中采集到的100份样本图像分为两部分,其中一部分包含80张图像,它将作为训练图像集对卷积神经网络进行训练,另一部分包含剩下的20张图像以及训练图像集中的20张图像总计40张图像构成测试图像集,它将对卷积神经网络最后分类结果进行判断。将训练图像集命名为train_x,将测试图像集命名为text_y。
   同时构建分类矩阵,由于此前所做的统计指标在模型中无法被理解,故而需要进一步转化为模型可理解的二值矩阵。
   对于训练图像集train_x,我们构建80×36的全零矩阵train_y,使用公式:

在这里插入图片描述

   其中i表示第i张图片,ι表示该图片所属的分类指标。
   由此可构建一个由0、1组成的二值稀疏矩阵,矩阵每一行表示一张图像,每一列表示一个类别。
   同理,对于测试图像集text_x,我们构建40×36的全零矩阵text_y,使用公式:

在这里插入图片描述

   其中i表示第i张图片,ι表示该图片所属的分类指标。

5.4.2 卷积层

   卷积层是卷积神经网络中的核心结构。卷积层的目的在于在减少参数的同时保留图像特征。为达到这一目的,卷积层有两个重要思想,分别为局部连接与权值共享。
   局部连接:所有的神经元仅仅与输入神经元的一块区域相关联,这块局部的区域称为感受野。这种思维受启发于生物学里面视觉神经系统的结构,视觉皮层的神经元在进行信息感知时就是通过接受局部信息完成的。具体而言,局部连接可以解释为在对于目标图像进行卷积操作的过程中,神经元从空间维度看是局部连接,但在深度上却是全连接。在模型中的二维灰度图像同样是局部像素之间的关联性较强。这种局部连接的思想保证了完成训练后的卷积核对于图像中任意位置的输入特征都能够有着明显的响应。
   权重共享:在卷积层中,计算目标图像同一个深度的神经元时所采用的卷积核是共享的。这样可以极大的减少计算参数。直观来讲,共享权重讲是非常有意义的,这样可以保证图片边界处的特征信息与特征信息在图片中任意位置无关。但是权值共享在一些特殊场景中是无意的,比如所输入的图像是矿泉水瓶,需要从水瓶标签处与瓶盖处学到不同的信息,而标签和瓶盖位于不同的位置,若进行权值共享则毫无意义。要值得注意的是,权重仅仅对于同一深度的神经元是共享的,在不同深度下,权值不会共享。
   在建立的模型中,单条数据为152×152像素的图片,如此而来共有2万余个隐藏神经元,若将它们进行全连接,使得每个隐藏层的神经元都连接着图像中的每一个像素点,这样共有152×152×23104即53.4亿个连接,即有53.4亿个权值参数,如此而来所需要的计算工作是非常庞大的,故而先进行局部连接,假设局部感受野是25×25,如此而来2万余个隐藏神经元的连接数目就会减少到不足100万,再运用权值共享的思想,假设每个神经元的36个参数是相同的,如此而来,参数减少至36个,同时尽可能多的保留了原始图像的特征。
   由于图像像素之间是离散关系,故而使用离散条件下的卷积公式:
在这里插入图片描述

   完成卷积运算后,使用激活函数Sigmoid去除数据中的冗余。Sigmoid函数:
在这里插入图片描述

   Sigmoid函数可以很容易的抑制误差,尤其是相差比较大的误差。

5.4.3 池化层

   池化层不同于卷积层会改变图像矩阵的深度,其作用在于缩小图像矩阵的大小,减少后续计算工作。故而池化层在某种程度上也可以看成一个过滤器,实现一个采样的功能。池化层的主要的思想是,重点提取目标矩阵中具有某种倾向的特征,例如最大池化法对应的是更明显的边界特征;平均池化法对应的是更加平滑的特征。
   池化过滤器与卷积层中的过滤器有所不同,池化过滤器参数较卷积过滤器参数数量大为减少,仅包含两个参数,分别是过滤器的大小与池化操作的步长,且不同的通道单独使用池化层,故而输入通道数目与输出通道数目是相同的。
   池化的方法有最大池化法、平均池化法等多种方法。
   最大池化法:最大池化法即提取出目标矩阵中过滤器范围内元素的最大值,对其他元素进行舍弃。
在这里插入图片描述

   平均池化法:平均池化法即对目标矩阵中过滤器范围内的元素计算平均值,然后仅输出平均值,对其他元素进行舍弃。
在这里插入图片描述

   一般而言,最大池化法较其他方法更为常用。最大池化法意味着检测目标矩阵中的某一个特征,并且将这个特征留在池化层的输出中。

5.4.4 全连接层

   在输入原始图像经过多层卷积层及池化层加工处理之后,最后一般会由若干个全连接层给出最后的结果。在经过几轮的卷积层和池化层的处理之后,可以认为图像中所包含的信息已被抽象成为信息含量较高的特征。可以将卷积层和池化层看成自动的图像特征提取过程。在图像特征提取完成之后,依旧需要使用全连接层完成分类任务。

5.5 卷积神经网络训练

5.5.1 池化层到卷积层的反向传播

在这里插入图片描述

  对于下采样,在使用卷积神经网络的反向传播中,首先需要还原矩阵池化前的大小,如果使用的是最大池化法,则此处将δl中的值放在对应子矩阵最大值的位置;如果使用的是平均池化法,则此处将δl中的值除以子矩阵的像素个数得到平均值后放在子矩阵中。过程如下图:
在这里插入图片描述

   在面部肤色分类模型中,使用的是最大池化法,故而此处反向传播使用第一种。

5.5.2 卷积层到池化层的反向传播

   假设在卷积层l中,有且仅有一个卷积核,且其误差灵敏度为δ^l,卷积层前一层为池化层l-1。
用zl表示第l层的输入,用a(l-1)表示第l-1层的输出,故而有:
在这里插入图片描述

   其中w^l表示l层的卷积核。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 参数调整及模型误差

   对模型使用样本数据进行训练及测试,通过修改各项参数,降低训练误差,从而提高模型判断的准确度。

6.1 使用预设参数对模型进行训练

   预设参数见下表:

在这里插入图片描述

   训练时长2268.4秒,训练误差降到 0.53
   测试图像1000张,错误判断图像887张,误差达到0.89,误差巨大。

6.2 调整参数修正模型

   由于使用预设参数训练花费时间较长,且所获得模型分类准确率低。所消耗时间过长的原因是由于样本图像尺寸过高,为尽可能的提取样本特征,导致卷积核尺寸较大,进而使计算机计算数据量庞大所造成的,故而对样本图像大小及卷积核尺寸进行调整。模型分类准确率与训练样本数据集的规模、训练次数有关,同时与模型单次输入图像数目、卷积核尺寸与图像尺寸比有关。对上述相关参数进行调整:

6.2.1 第一次修正

   由于使用大小150×150图像训练数据庞大,耗时长,故而对图像进行缩放,调整格式为28×28,调整其他参数见下表:

在这里插入图片描述

   三次训练时长分别为39.1秒、39.3秒以及39.2秒,总用时117.6秒,训练误差降到 0.08,误差较小。
   测试图像3000张,错误判断602张,误差0.2,误差较小。

6.2.2 第二次修正

   第一次修正模型误差依然较高,故而继续调整,调整参数见下表:

在这里插入图片描述

   训练时长为114.8秒,训练误差降到 0.04,误差极小。
   测试图像3000张,错误判断282张,误差0.094,误差极小。故而使用第二次修正模型。

7 人脸彩色化实例及对比

   为验证模型的适用性,本节选取样本外黄种人图像1与黑种人图像2,对两幅图像的人脸区域进行着色,然后与原图及卷积神经网络结果对比。
在这里插入图片描述

7.1 新模型图像着色

   将两幅图像的灰度图分别输入模型中,获取输出概率见下表:

在这里插入图片描述
在这里插入图片描述

   可以看出,对于图像1,最终类别为1的概率高达88.5%,故而使用类别1对应的a、b层对应值即a=10、b=10进行面部着色。
   对于图像2,最终类别为23的概率高达96.0%,故而使用类别23对应的a、b层对应值即a=19、b=22进行面部着色。
   然后将灰度图像在第三维度复制扩展三层,即图像从150×150扩展为150×150×3,然后将图像从RGB色彩空间映射到Lab色彩空间,对于面部Lab色彩的a层与b层,使用分类指标对应a、b值进行替换,结果如下:
在这里插入图片描述

   可以看出,本模型能够正确区分不同人种面部纹理特征,进而匹配不同肤色用以面部着色。

7.2 模型对比

   将图像1与图像2使用卷积神经网络模型上色,将着色结果与原图及新模型着色结果进行比较:
在这里插入图片描述

   可以看出,卷积神经网络模型对于图像1的着色效果优于第二次修正模型对图像1的着色效果,但在使用图像2进行测试时,卷积神经网络错误着色,将黑色人种误判为黄色人种,而第二次修正模型则较卷积神经网络模型着色结果较优。

8 总结

   本文使用100例人脸面部图像样本,对面部区域的Lab图像a层与b层进行统计分类,将人脸面部色彩细分为36类,构造面部色彩标识卡,然后使用卷积神经网络法制作分类模型,提取识别不同类别图像的面部纹理特征,使之能够对于任意一张人脸图片,判断其所属类别,进而获得该类别下的a、b层对应值,以完成面部着色的目的。
   在模型训练过程中,受制于硬件条件,所选训练样本较少,且各类别样本图片数目分布不均,故而着色效果与原图像相比,仍存在一定差异。在后续工作中,将进一步扩大样本容量,提取更为精确的分类特征,从而降低训练误差,提高着色质量。

参考文献

[1]李志永. 黑白影像的彩色化研究[D].中国科学院研究生院(电子学研究所),2007.
[2]朱黎博. 基于图像分割与色彩扩展的色彩传递算法研究[D].东华大学,2009.
[3]吕维帅. 基于深度神经网络的黑白图像着色算法研究[D].江西理工大学,2019.
[4]陶霖密,彭振云,徐光祐.人体的肤色特征[J].软件学报,2001(07):1032-1041.
[5]秦小文,温志芳,乔维维.基于OpenCV的图像处理[J].电子测试,2011(07):39-41.
[6]安子建. 基于Scrapy框架的网络爬虫实现与数据抓取分析[D].吉林大学,2017.
[7]黎松,平西建,丁益洪.开放源代码的计算机视觉类库OpenCv的应用[J].计算机应用与软件,2005(08):134-136.
[8]秦小文,温志芳,乔维维.基于OpenCV的图像处理[J].电子测试,2011(07):39-41.
[9]石美红,申亮,龙世忠,胡西民.从RGB到HSV色彩空间转换公式的修正[J].纺织高校基础科学学报,2008(03):351-356.
[10]王可,陆长德,乐万德,王小平.基于Lab均匀色彩空间的色彩调和系统[J].西北工业大学学报,2004(06):695-699.
[11]周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(06):1229-1251.
[12]Bongkyu Lee, Yookun Cho, Seongwon Cho. New invariant pattern recognition system based on preprocessing and reduced second-order neural network[P]. Neural Networks, 1995. Proceedings., IEEE International Conference on,1995.

  • 13
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值