基于深度学习针对水凝胶挤出式打印成型的实时监测技术

2021-05-22 06:43何炜杰韩晨阳倪忠进倪益华吕艳叶晓平
机械工程师 2021年5期
关键词:凝胶神经网络函数

何炜杰, 韩晨阳, 倪忠进, 倪益华, 吕艳, 叶晓平

(1.浙江农林大学 工程学院,杭州311300;2.浙江省特色文创产品数字化设计与智能制造重点实验室,浙江 丽水323000)

0 引言

水凝胶挤出式打印成型技术是生物3D打印中常用的技术之一。挤出式生物打印机实质上是基于喷墨式打印机的优化版本,它不同于喷墨式打印机的单个动力,而是通过施加一个连续的动力,使其打印机可以连续不间断地喷吐出打印纤维。这种打印方式的一大特点就是对打印材料的选择较多,只需要打印材料的黏度合适,打印结构通过交联后可以很好地保持其原有形状[1-2]。并且其设备成本低廉、打印物品的延展性好、打印墨水种类多、容易上手操作,被研究者广泛地应用在生物3D打印的实验研究中[3]。但由于水凝胶挤出式打印成型过程中极易受到温度与配置溶液黏度的影响,进行打印实验中常常会出现成型问题,如断丝和坍塌现象。为了避免打印出现问题后不必要的材料浪费,打印时需要实验员长时间守在打印设备附近观察打印情况,且打印过程用时较长,这样十分浪费时间和人力。

计算机视觉检测技术近年来在智能制造业中受到广泛的关注,越来越多的生产加工的检测环节应用了该项技术[4]。伴随着高速工业相机发展及深度学习算法的普及化,利用深度学习实现高效的计算机视觉识别系统,是当今面对生产监测问题的主要解决方法。其中一种主要应用于图像识别的方式是卷积神经网络算法,该算法与传统的图像处理技术相比,具有高效的自主学习能力,并且还简化了许多复杂的图像预处理的操作[5]。目前,卷积神经网络技术已经广泛地应用在人脸识别、视频监控、智慧家居等领域[6]。

本文基于卷积神经网络技术,设计了针对打印时出现断丝和坍塌现象的识别模型,以期该模型能实现对水凝胶挤出式打印成型过程进行有效的监测,从而用计算机视觉代替研究人员,有效地节省人力和时间。

1 监测系统设计

本文的水凝胶挤出式打印成型监测系统是基于深度学习、图像视觉、计算机视觉原理所构建而成的。其原理为:以图像传感器为核心搭建一个硬件检测平台,用以打印过程中的图像数据的采集、在打印时相隔一定时间拍摄图像、存储,将计算机作为采集数据处理器,通过程序开发语言、图像处理软件、卷积神经网络、Caffe深度学习框架等开发工具,建立的打印监测系统,用于打印过程的检测及数据的保存。该系统的构架如图1所示,由硬件系统及软件系统组成。

图1 水凝胶打印监测系统架构

监测系统分为上位机和下位机两部分。下位机模块需进行图片的拍摄及图像的传递,上位机即计算机需要对图像进行截取保存并进行检测。而上位机部分需要对拍摄到的图片进行检测,并且将检测的结果反馈到交互界面中。

图2 水凝胶监测系统硬件平台示意图

1.1 检测模型的设计

1.1.1 样本制作

本实验的样本图片均来源于浙江农林大学生物打印实验室,在进行实际打印中获得的打印实物图,通过架设在打印机旁的相机拍摄的图片,共计2000张。本文的数据集中将打印时所拍摄到的照片分为4类,正常(Normal)、断丝(Broken Wire)、坍塌(Collapse)、阻挡(Hinder),如图3所示。由于打印机理是通过温度控制水凝胶进行交联,其打印平台上有冷凝水会影响图片中的特征,所以在制备拍部分摄样本水凝胶时加入了食用染料(C20H11N2Na3O10S3, 中国上海阿拉丁实业公司)使打印特征更明显,如图3所示。

图3 打印过程中存在的4类现象

通过上述实验和图片的采集可知,打印常出现的异常情况主要有断丝和坍塌两种。断丝是由于打印时挤出量不稳定或喷嘴堵塞所致,其主要的特点就是打印的水凝胶表面出现形状不规则的凹痕。而坍塌是由于水凝胶溶液黏度过低或挤出量过大,导致堆积的水凝胶过多倒塌无法正常继续打印,其主要特点是有明显的弧形表面,且打印喷嘴与打印面分离。另外拍摄过程中极易遇到打印喷嘴阻挡拍摄角度的现象,使拍摄图片没有拍摄到水凝胶的特征。

为了提高神经网络训练的效率和有效性,需要对采集的图像样本进行一定的处理,本文中运用到了OpenCV库,它作为一种跨平台的计算机视觉库,其主要的作用就是可以高效地处理图像[7-8]。由于它适用性广的特点,在Linux、Windows等平台均可使用而受到许多科学研究者的喜爱[9]。实验中对所采集的水凝胶打印图像进行图像的预处理,使用二值化和轮廓分割等方法处理图像[10],这样能有效地降低多余信息突出图像中的主要特征[11]。再使用Labelimg标记工具进行按分工标记,作为水凝胶挤出式打印成型检测模型的数据样本,如图4、图5所示。

图4 图像预处理

图5 目标区域的定位

1.1.2 卷积神经网络的设计

Caffe(Convolutional Architecture for Fast Feature Embedding)框架是2014年伯克利大学贾扬清博士及其团队开发并发布的深度学习框架[12]。该深度学习框架的优点在于其多接口,尽管其内核程序由C++编写的,但开发者给它设置了Python和Matlab相关的接口[13]。本文使用的就是其中的Python接口,对训练模型的神经网络层进行再编辑[14]。并且Caffe平台下通过编辑源码能实现一些特殊的层,从而在该平台下运用多种目标检测算法。本文以传统的卷积神经网络LeNet-5为基础,对神经网络的结构层数和种类进行改进,利用Swish激活函数和BN算法对模型进行优化[15]。

1)为了提高神经网络模型对于复杂事物的学习能力,需要将非线性的特性引入到神经网络中,这就需要使用激活函数。但神经网络算法在使用误差逆传播算法优化网络参数时,其激活函数若出现饱和现象,则会降低网络的训练速度和效果,甚至会出现梯度消失等现象[16]。其中常用的激活函数中Sigmoid函数就会导致这一现象,为了避免梯度消失的问题,开发者会使用Relu激活函数,但该函数常会出现输入无响应的问题,导致该问题的原因是学习率过高、学习速率太快导致神经元更新数据过载,使网络瘫痪处于无法响应的状态。

写到柳传志的生平时,作者介绍他小时候在达志桥一所学校读书,顺便说了一句,这里是康有为当年“公车上书”的地方。而后说起柳传志在四人帮时期用左手写了封匿名信,成为当时一件大案。“这个举动虽然不能和公车上书相比,完全两回事,但某种血脉是一致的。”这种叙事手法为“非虚构”叙事提供了一条新路径——在尊重客观事实的基础上,附加上合理想象,让文本更加富有创造力。

Swish激活函数使Google团队在2017年提出的一种新型激活函数,其数学公式为[16]

式中:f(x)为Swish 函数激活后的输出;x为函数的输入值。

通过公式可得到函数图像,如图6所示。图中Swish激活函数、Sigmoid激活函数与Relu激活函数的图像对比,可以得到Swish激活函数具有一般激活函数的通性,并且Swish激活函数与Relu激活函数类似,具有一定的平滑性,这能避免梯度消失的问题,不同的是Swish函数并非单调。经测试[12]该函数相较Relu激活函数同样的迭代步数下其准确度更高。

图6 函数特性

2) 由于神经网络中引入非线性因素提高学习能力,但同时也大幅影响了网络的训练。针对神经网络收敛速度缓慢的问题,就需要使用归一化的手段处理输入值,所以在训练模型神经网络中引入了BN算法。BN算法的具体操作步骤如下[17]:

当输入样本为n,计算其均值u和方差σ:

利用均值u和方差σ实现数据的归一化:

式中:∈为常量,是为了避免当σ的取值为0的情况发生时式子无意义。

为了保持原始数据所学到的特征的完整性,BN函数中引入了可学习重构参数γi与βi,让原始数据能够完整地复原:

式中:γi为输入xi的标准差;βi为输入xi的均值;E为均值函数;Var为方差函数。

3)以Caffe网络结构为基础,对其进行网络结构的调整和设置,其网络特征提取层结构具体参数如表1所示。图7为卷积神经网络算法训练流程,其中神经网络特征提取层由6层卷积层、3层BN层、3层池化层交替叠加构成,提取高维特征后使用3层全连接层进行学习,即通过映射的形式存于特征空间,并将结果送入分类器进行水凝胶挤出式打印成型状况的识别。

表1 My-Caffe网络结构参数配置

1.1.3 模型训练

图7 卷积神经网络算法训练流程

搭建完成神经网络后利用该检测算法训练得到损失函数值和准确度曲线,如图8所示。通过反馈的损失函数和精确度的值观测训练模型在测试集中的完成度。随着迭代次数增大,损失函数值不断下降,表示网络模型不断拟合,经过4000次迭代网络模型损失函数值约为0.8左右。从测试集反馈的准确度显示网络模型在测试集中的准确率在0.75左右。

1.2 模型检测结果

本实验模型基于Windows操作系统、Caffe框架下的神经网络训练完成,对训练模型的检测效果采用的是未放入训练集中的图片,分别为正常、断丝、坍塌、阻挡4种类型进行5次单一的随机样本集测试。

图8 Loss和Accuracy曲线

根据表2所示的训练模型实际检测的结果,每组测试均为单一类型图片20张。结果表明检测打印状态为正常的图片时准确率最高,均在90%以上。检测被喷头阻挡的图片时识别度较差的原因可能是该类型的图片特征较模糊,样本数据小,训练集无法提取到有效的特征值。而检测断丝与坍塌图片时准确率接近80%左右。总体的准确率在78%,证明该监测系统能对水凝胶打印进行检测。另外几乎所有断丝与坍塌图片的误判均判别为打印正常,这是因为误判部分的图片大多都是出现问题的前期,特征点不明显。

表2 测试结果 %

图9 测试样本例图

这个检测结果对照上述的精确度曲线与其值不符,准确率并没有精确度曲线反馈的准确度,这一现象说明训练模型过拟合,这是由于训练集较少和特征图片较接近导致的。

1.3 监测系统UI界面的设计

完成检测用模型后需要对监测系统进行整体的设计,本文使用PyQt5图形界面编辑软件进行了监测系统的界面的开发。PyQt5是一个跨平台下基于Python图形用户界面库。该开发环境具有较丰富的API和详细的开发文档,并且具有多平台接口,保障了其通用性,所以成为众多软件设计开发者的选择。

设计的系统分为图片检测和实时检测两部分,通过开启后切换模式实现,图片检测需要导入图片,只显示对图片检测的结果,实时检测开启后自动计时定时拍摄图片,对拍摄的图片进行检测并对不同的检测结果进行不同方式的反馈。具体流程如图10所示。

图10 监测系统流程图

根据检测流程图完成界面的控件设置与编辑。可得到水凝胶监测系统的界面,图11所示为监测系统的界面。该系统分为检测图片和实时检测两部分。通过载入按钮将图片导入,点击“Check”按钮可对图片进行检测,检测图片显示在右上“检测图像”框内,检测结果会显示在右下“检测结果”框内。如图12所示,当图像中打印正常时,检测结果显示为该情况的匹配度;当图像中打印异常时,则检测结果会显示红色的“PRINT ERROR”字样提醒,并会给单片机传输反馈信号启动蜂鸣器。使用实时监控,只需点击“打开摄像头”则左下框内将实时显示摄像头所拍摄的画面,再点击“运行”将每30 s截取拍摄画面图像进行检测。

图11 监测系统界面

2 结论

图12 监测系统工作运行图像

本研究是针对水凝胶挤出式打印成型中的问题进行监测系统的设计。该设计过程主要分成两部分:第一部分是通过Caffe框架设计深度学习神经网络完成检测模型;第二部分是对监测系统的界面及程序的设计。从结果来看训练完成的模型准确率在78%左右,能对拍摄到的打印状态进行一定程度的识别,其中打印水凝胶被阻挡的识别度较差的原因是该类型的图片特征较模糊、样本数据小,训练集无法提取到有效的特征值。另一部分借助PyQt5对监测系统进行了可视化窗口的设计,能有效地对成型出现的问题进行反馈,实现了使用计算机视觉替代实验员在打印时进行观测,有效地节约了人力。

猜你喜欢
凝胶神经网络函数
二次函数
第3讲 “函数”复习精讲
纤维素气凝胶的制备与应用研究进展
二次函数
超轻航天材料——气凝胶
函数备考精讲
保暖神器——气凝胶外套
神经网络抑制无线通信干扰探究
“冻结的烟”——气凝胶
基于神经网络的拉矫机控制模型建立