张亚倩,崔永丰,王 浩,何万里,张 磊,杨 洲,曹 晖,王 冬,李宇展
(北京科技大学 材料科学与工程学院,北京 100083)
蓝相(Blue phase)是液晶中具有特殊性质的一个相态,是各种胆甾相液晶在稍低于清亮点时存在的热力学稳定相。它是介于胆甾相和各向同性相狭窄温度区间(约0.5~2 ℃)的一种相态,由于通常呈现蓝色,故称蓝相[1]。由于选择性反射,迄今为止,所有已知的蓝相在没有电场的情况下都是光学各向同性的,这是蓝相在实际应用中最重要的特性之一[2-5]。
类似于普通棒状和盘状液晶能够应用于显示以及有机太阳能电池[6]等领域,蓝相液晶(Blue phase liquid crystal,BPLC)也可以应用于显示领域,而且具有宽视角、无需定向层、亚毫秒级的响应速度等优点,因而吸引着国内外众多感兴趣科学家的关注[7-10]。当然蓝相液晶用于显示也存在以下亟待解决的问题:存在的温度区间过窄,它只存在于各向同性相与胆甾相之间大约0.5~2 ℃的范围中。虽然随着聚合物稳定蓝相液晶的发现,BPLC 存在的温度范围已扩展到-10~50 ℃甚至更宽[11-12],但是仍然面临着驱动电压过高,透明度不够高,长期稳定性不佳等诸多挑战。由于蓝相液晶存在的温度区间过窄,且在观察蓝相时升降温的速率非常缓慢,目前关于蓝相液晶的检测都是单通道的,使得不同批次测量的数据很容易产生不同,所以在观察和记录不同液晶体系配方蓝相的存在温度区间时,需要花费大量的时间和精力,同样现有方法无法快速大批量筛选出具有蓝相液晶的配比方案,并且蓝相液晶检测对外界条件的变化非常敏感,所以很容易出现误差。因此,如何在短时间内判断大量液晶样品是否具有蓝相相态,并且在确认样品出现蓝相之后,获得其蓝相温域区间成为本领域亟待解决的问题。
随着信息技术的发展,卷积神经网络(Convolutional Neural Network,CNN)成为最流行的神经网络模型,在分类、人脸识别等许多领域取得了长足的进步,并能够解决各种问题[13]。1998年推出的LeNet 是第一个减少参数数量并能够从原始图像自动学习特征的CNN 架构。该模型可用于识别邮局的数字手稿模式和邮政编码[14]。随后的AlexNet 被认为是第一个用于分类和识别任务的深层CNN 体系结构,但是训练过程非常复杂,该模型直到2012 年才被使用[15]。2013 年,在ZFNet 模型(AlexNet 的改进版)上创建了一种可视化技术,即所谓的去卷积网络[16]。GoogleNet,也称为Inception-V1,于2014 年推出,该体系结构的主要目的是通过降低计算成本实现高精度[17]。牛津大学的研究人员在2014 年推出了一个名为Visual Geometry Group(VGG)的模型,同时使用较小尺寸的过滤器可以完成与较大过滤器相同的任务,还可以降低计算复杂度[18]。2015 年引入的残差神经网络(ResNet)改变了CNN 的产生。在ImageNet 数据集上进行训练和实施后,甚至比人类识别精度高[19]。随后推出的Inception-v3是GoogleNet 的改进版,参数数量进一步减少,该模型还使用多级提取,使其执行速度更快[20]。2017 年推出的ResNeXt 是ResNet 和VGGNet 模型的组合,该模型使用了一个简单的模块化架构对图像进行分类,“分割-转换-合并”策略取代了标准剩余块[21]。DenseNet 是2017 年推出的用于识别视觉对象的最新、最强大的神经网络之一。它可以减少梯度计算问题,最小化参数数量,并重用特征[22]。在2017 年推出的Xception 可以被认为是改进后的Inception。Xception 架构是具有残差连接的深度可分离Conv 段的线性堆栈,理论基础是卷积神经网络特征图中的跨通道相关性和空间相关性可以完全解耦。这个想法比Inception-V3、ResNet-50、ResNet-101、ResNet-152、VGGNet 更有效,表明网络在计算方面变得更加高效[23]。
基于上述蓝相液晶的性质和研究者对于卷积神经网络结构的优化,本文将机器学习中的图像识别和分类应用于材料学科,通过将制作好的不同液晶相态的数据集送入到搭建的神经网络模型中进行训练学习,进而得到一种机器学习模型。此模型可以实现输入一张某温度下液晶相态的图片,可以输出此图片属于哪种液晶相态,如果将不同温度下的液晶相态图片依次输入到该模型中,则可以判断得到蓝相存在时的温度区间。同样地,通过将不同配比的液晶体系在不同温度下的相态图片依次输入到训练好的神经网络模型中,则可以得到这一批样品蓝相存在的温度区间,达到高效快速筛选液晶体系配方的目的。本文通过Labview 软件调用Python 接口的方式实现了高通量蓝相液晶相态的识别和相应蓝相温域的读取,经过粗略计算,此机器学习方法结合高通量液晶体系制备在识别计算1 000 个样品点时比普通混配在偏光显微镜下观察测试蓝相温域效率高近100 倍,为蓝相液晶的高效快速识别和相应的配方筛选提供了一种新思路,大大节省了人力和时间。
实验中采用喷墨打印机高通量制备的不同配比液晶库作为数据来源。通过摄像机采集降温时不同温度下偏光设备中的各样品相态图片,截取感兴趣区域(Region of interest,ROI)样品点位置大约30×30 像素大小的图像进行分类并制作成数据集。该数据集依据液晶相态的颜色和织构信息主要划分为3 个类别,分别是各向同性相(Isotropic phase)、蓝相(Blue phase)、胆甾相(Cholesteric)。每个类别大致由1 000 张图像组成,总计3 000 张图像,每个类别分别按照9∶1 的比例制作成训练集和测试集。图1 分别为3 种不同相态样品在偏光显微镜下和数据集中截取的图像展示。
图1 偏光显微镜下(左)和数据集内(右)的部分液晶相态图像。(a1)~(a2)各向同性相部分图像;(b1)~(b2)蓝相部分图像;(c1)~(c2)胆甾相部分图像。Fig.1 Partial liquid crystal phase state images under polarized light microscope(left)and in the data set(right).(a1)~(a2)Images of isotropic phase;(b1)~(b2)Images of blue phase;(c1)~(c2)Images of cholesteric Phase.
本模型均在TensorFlow 框架下进行试验。硬件环境:Inter(R)Xeon(R)W-2123 CPU@3.6 GHz,92GBRAM,NVIDIAGeForceGTX1080GPU,8GBVideoMemory。软件环境:CUDAtoolkit10.0,cuDNN10.0,Windows10 64 bit,Python3.7,TensorFlow2.0.0。
由于Python 易读、易维护和用途广泛等优点,成为了大量用户所欢迎的的语言。并且Python 提供大量机器学习的代码库和框架,在数学运算方面有NumPy、SciPy,在可视化方面有MatplotLib、SeaBorn,结构化数据操作可以通过Pandas。针对各种垂直领域,如图像、语音,文本在预处理阶段都有成熟的库可以调用,所以在机器学习领域被广泛使用。图2 为本文高通量蓝相液晶识别的整体流程图。
图2 高通量识别蓝相液晶流程图Fig.2 Flow chart of high-throughput blue phase liquid crystal recognition
本文利用Python 中的模块提取出数据集中每个图像的RGB 信息,将训练信息送入图3 所示的神经网络中。该神经网络利用TensorFlow 框架搭建而成,搭建的神经网络包括由输入至输出依次连接的输入层、隐藏层、输出层,输入层是由训练集的实例特征向量传入,输入的数据为RGB 3 个参数,经过连接节点的权重传入下一层,在下一层中加权求和,隐藏层设置有3 层,3 层的神经元个数分别为512,1 024,512,每层隐藏层的每个神经元是前一层的所有神经元的权重相加,然后经过非线性激活函数(ReLu 函数)的转化将输出作为下一层的输入,经过多层的训练学习从而得到神经网络模型,公式如式(1)所示:
图3 神经网络模型示意图Fig.3 Schematic diagram of neural network model
其中,f(x)为某神经元的值;Aj为该神经元前一层的所有神经元的权重之和,表达式如式(2):
其中,xi表示上一层的第i个神经元,wji表示第i个神经元的权重,权值的初始值可采用任意值。
首先读取制作好的数据集图片,并对图片进行大小尺寸变换,统一设置尺寸为100×100 大小,然后将3 通道的颜色数据值经过归一化处理压缩到0~1 之间,数据归一化可以消除奇异样本数据导致的不良影响,且会使最优解的寻优过程明显变得平缓,更容易正确地收敛到最优解。然后将归一化后的数据作为神经网络模型的输入层,依次经过由3 组卷积-池化-舍弃层组成的隐藏层后送入到全连接层,然后再经过舍弃层随机放弃一部分神经元的更新后进入输出层返回训练结果。其中3 组隐藏层的滤波器(卷积核)大小为3,卷积核数量为64,池化区域大小和池化步幅均为2,使用的激活函数为ReLu 激活函数,随后的全连接层使用的也为ReLu 激活函数,所有的舍弃层均随机舍弃50%的神经元,最后的输出层使用Softmax 激活函数,通过此激活函数将输出值转换为概率值,则在所有输出中得分最高的也就是最有可能的类别,可以很直观地表示分类问题。
在神经网络中,每次训练结束都可以得到一个输出值,通过损失函数(交叉熵)可以对比输出值和目标值从而监测模型的误差,交叉熵损失函数公式如式(3)所示:
其中,M表示类别的数量,yic表示符号函数(0 或1),如果样本i的真实类别等于c取1,否则取0,pic表示观测样本i属于类别c的预测概率。
然后根据误差来调整神经网络中的权重参数,经过多层训练学习后,通过不断调整网络中的参数使得损失函数达到最小时,输出值和目标值基本一致,最终得到误差较小的预期神经网络模型,证明网络符合预期,模型稳定可用。本文中模型训练时使用交叉熵(CrossEntropy)作为损失函数,选择自适应矩估计(Adam)优化器,学习率设置为0.001,使用GPU 进行训练,训练后得到的损失和准确率变化如图4 所示。
图4 模型训练时的损失(a)和准确率(b)变化图。Fig.4 Loss(a)and accuracy rate(b)change graph of model training.
从模型训练时的损失图和准确率图可以看出,随着模型训练迭代轮数的增加,模型的损失越来越小,输出值与目标值之间的误差越来越小,在40 轮迭代之后,模型的损失基本趋于稳定;模型的准确率在40 轮迭代之后准确率接近1,并且浮动非常小,说明整体模型在训练集上表现良好。
Labview 作为一款成熟的工程化应用软件,为用户提供了丰富的使用接口。其中Labview2018提供了关于Python 的接口,此接口可以实现对Python 程序的调用,从而将相应的结果输出。Labview 强大的自动化测试、测量及分析、处理能力非常适用于本实验中高通量识别和计算,所以利用Labview 调用Python 可以完美地满足本实验的需求。
蓝相存在的温度区间即蓝相温域的计算方法为:在降温过程中,样品点从各向同性相开始转变为蓝相的温度作为蓝相温域的起始温度,蓝相转变为胆甾相的温度作为蓝相温域的终止温度,蓝相存在的起始温度与终止温度的差值即该样品点的蓝相温域。每个样品点的蓝相温域计算是通过Labview2018 调用Python 接口来实现的,其中利用Python 模块进行机器学习模型的训练,训练好的模型可以实现给定ROI 位置样品点的相态识别,并将识别结果输出。Labview2018通过调用Python 接口得知不同温度下所述位置样品点的液晶相态,其中位置的给定是Labview2018 通过识别制作的定位图中圆的中心坐标来实现的,以定位图中圆的中心坐标为依据,将其作为样品点ROI 方形的中心,以此提取每个样品点的RGB 颜色信息。将提取到的不同温度下每个样品点的颜色信息自动读取到模型中进行识别,识别后依次输出每个样品点分别属于的相态类别,这样就可以知晓每个样品点蓝相出现的上下限温度,通过将蓝相出现的上下限温度作差即可得到该样品的蓝相温域,同时也可以知晓该样品的清亮点,对各不同配方样品的筛选具有极其重要的指导意义。图5 为Labview2018 调用Python 接口基本框架和Python 节点展示。
图5 (a)Labview2018 调 用python 接 口 的基本框架;(b)Python 节点各引脚展示。Fig.5 (a)Basic framework of Labview2018 calls python interface;(b)Display of each pin of Python node.
该Labview 程序实现批量读取蓝相温域时需要将被调用Python 子程序所在路径、名称以及Python 的版本号告知给Labview,通过对Python子程序中识别函数(Identify)的调用,可以实现单个样品点的相态识别,调用识别函数时同样需要输入待识别样品点的路径,然后经过建立Labview 中的循环函数结合定位图中给定的样品点位置,即可实现高通量样品的蓝相温域检测,并且实际识别效率非常高。此Labview 程序在进行识别时可以实时输出当前样品序号、坐标位置和样品相态,最后 依次自动写入到excel 表格中,方便数据处理和分析,同时可以通过设计多线程程序的方式进一步提高识别效率。
拍摄图像时,将高通量打印制备好的样品点置于偏光设备中进行升降温处理并拍摄各温度下所有样品点的相态图。本实验共采集了148 张降温过程中的液晶相态图像,每张图像上有1 080 个样品点,降温时的平均降温速率为0.5 ℃/min,总的温度区间为90~16 ℃。
利用训练稳定的神经网络模型来识别图片中样品点处的相态信息,我们将偏光设备中获得的某温度下某样品点真实相态为蓝相约30×30大小的图像输入到训练好的神经网络模型中,结果如图6 所示,模型可以输出该样品点的液晶相态图片和利用人工神经网络(Artificial neural networks,ANN)对液晶相态的预测结果。可以看到ANN 对该图片相态的预测结果为BP,并且预测为BP 的概率接近100%,这与偏光显微镜下观察到的液晶组织相态完全一致。所以测试图片的样品点被准确地分类,并且识别时间很短,证明了这种方法对不同温度下各个样品点液晶相态的识别和表示是精确且快速的。此外,还可以根据不同温度下各个样品点的液晶相态计算出该样品点的蓝相温域以及清亮点。
图6 调用模型识别单个样品相态结果图(图中显示了识别的结果及概率,BP 表示蓝相,1.0 表示识别结果为蓝相的概率为1)。Fig.6 Result of calling the model to identify a single sample phase state.The figure shows the recognition result and probability,BP means blue phase,1.0 means the probability of the recognition result being blue phase is close to 1.
图7 是不同温度下各个样品点液晶相态的分类准确率,对角线上的元素是不同温度下各个样品点液晶相态被准确识别的准确率,非对角线上的元素是某温度下某个样品点的液晶相态和某温度下其他样品点的液晶相态混淆的概率。可以看到识别不同温度下各个样品点液晶相态的准确率都在93%以上。
图7 液晶相态的高通量分类准确率混淆矩阵图Fig.7 High throughput classification accuracy confusion matrix of liquid crystal phase states
在不考虑手工制样或者高通量打印样品所需时间的情况下,我们可以通过简单的计算得出传统的手工制作液晶盒测试蓝相温域的方法与高通量打印机器学习识别测试蓝相温域的方法在时间效率方面的差异:
(a)常规方式测试1 080 个样品需要时间:1 min/(0.5 ℃)(降温速率)×2×10(蓝相平均温域)×1 080(样品点数)=21 600 min=360 h=15 天;
(b)高通量打印机器学习识别测试1 080 个样品需要时间:1 min/(0.5 ℃)(降温速率)×2×(100-30)(所有点最高到最低温)+60 min(机器学习识别需要时间)=200 min=3.33 h。
以上计算可以看出两者之间明显的差异。高通量打印机器学习识别的方法具有非常高的效率,这种快速识别不同温度下各个样品点液晶相态的方法对液晶的应用有着巨大意义,它大幅缩短了测试蓝相温域所需的时间,能够快速筛选出不同配比下液晶体系中蓝相温域较大的配比,从而指导实验研究。
本实验将人工神经网络与高通量喷墨打印制备液晶混合体系相结合,以不同温度下所述打印液晶体系截取图像的色度值R、G、B 作为输入神经元,近3 000 张所述打印液晶体系截图作为数据集,训练出一种可以利用偏光设备中摄像机拍摄的图像来分辨3 种液晶相态的神经网络模型。液晶相态包括各向同性相、蓝相、胆甾相,其中有1 080个不同配比的液晶体系高通量打印在旋涂好的玻璃基板上,通过搭建好的卷积神经网络来训练模型,同时使用Labview2018 调用Python接口的方式实现了对不同温度下液晶相态快速、准确的识别和分类以及蓝相温域的高效准确计算,在实验过程中对159 840 张样品点相态图像的整体识别准确率在93%以上。希望此实验研究可以为蓝相温域的拓宽以及宽温域蓝相液晶配方的筛选提供一种有效可行的方法。