基于图像监测的微量移液技术的研究

2021-09-13 07:35尚志武周士琦
工程设计学报 2021年4期
关键词:移液剪枝液量

尚志武,周士琦

(天津工业大学天津市现代机电装备技术重点实验室,天津300387)

生化分析仪、酶联免疫分析仪、尿液分析仪等全自动临床检验分析仪器被广泛应用于流行病学、免疫学研究和临床检测中。微量移液系统是其重要组成部分。一个完整的移液过程包括提取移液样本针、探测液面、吸取样本、样本移动到混合反应区、排出样本、退去移液样本针等6个步骤。液面探测和移液过程中的故障监控是微量移液的关键环节,它们直接关系着最终检测结果的稳定性、准确性。

国内外很多学者对液面探测和故障监控进行了研究。Bonzon等[1]基于理想气体的物理特性,利用差压测量技术和新型传感器制作了一种微量移液校准装置。Kaplit[2]通过一元线性回归分析了移液过程,根据进样器腔体内的实际压力与理论压力的标准偏差判断和评价移液样本量的准确性。Camenisch[3]采集在吸液过程中进样器腔体内的实际压力值与预设压力值并进行比较,通过分析两者的偏差实现对移液过程的监测和评估。祝连庆等[4-5]利用压力传感器,通过灰色聚类分析、双极值等方法对移液过程的异常现象进行监测。武通园[6]利用电容和压力传感器,将采集到的传感器数据传至上位机,精准实现了液面探测、防撞针和堵针检测。在上述方法中,由于受液体黏度、电机运行速度以及机械振动的影响,故障判断的准确率较低,故障判断与分类的模型较复杂;很难对移液体积进行准确测定;采用电容法进行移液检测时,容易对移液造成一定的污染。

为满足微量移液系统移液量检测和状态监测的需求,提高系统的可靠性,笔者首先设计了基于STM32 的自动移液控制系统,其次提出了一种基于图像分割法的移液过程监测方法。通过图像监测分析移液过程中存在气泡、空吸、少吸等异常情况,并建立模型来测定移液量。将经图像处理后的信息反馈给自动移液系统,使其准确操作,以增强检测系统的可靠性。

1 微量移液系统的工作原理

采用STM32F103ZET6 作为电机主控制器。其内部有16 位定时器,每个定时器有多达4 个独立通道,均可以实现输入捕获、输出比较、PWM(pulse width modulation,脉冲宽度调制)输出、单脉冲输出等模式,能够满足使用要求。

图像传感器采用型号为OV5640 的CMOS(complementary metal-oxide semiconductor,互补性氧化金属半导体)数字图像传感器。该传感器通过USB(universal serial bus,通用串行总线)接口输出格式为yuv、jpeg的500万像素以下的图像。

采集移液过程图像并上传至PC(personal com‐puter,个人计算机)进行处理;采用图像分割法提取移液区域,结合移液区域几何特征,利用OpenCV 进行相机标定、角点检测等图像处理,实现故障判断和移液量检测;将处理信息反馈给STM32主控制器,主控制器将反馈信息与理论移液量进行比较,作出移液量补偿或重新移液的决策,以保证移液的准确性。微量移液系统的工作原理如图1所示。

图1 微量移液系统工作原理示意Fig.1 Schematic of working principle of micropipet‐ting system

2 微量移液控制系统

2.1 步进电机驱动模块

采用德国Trinamic 公司的TMC2208 步进电机驱动器,其最大输出电流可达1.2 A。电机驱动芯片的外围电路较简单,减小了电路的布局空间;驱动芯片内部自带死区保护、过温保护等功能。该驱动器通过内部算法处理输出256细分脉冲给电机,完美实现正弦控制,使电机能够平滑运动,减小了振动和噪声。

STM32F103ZET6为主控制器,其内部的高级控制定时器TIM1产生脉冲信号并传输给TMC2208驱动器。通用定时器TIM3接收编码器的输出信号,将位移转换成周期性的电信号,再把电信号转换成计数脉冲,用脉冲的个数表示位移的大小。采用适用于低速的T法测速,通过测定高速计数器计入的相邻两个输入脉冲之间的时间来确定被测速度。通过编码器实现系统的闭环控制,防止步进电机产生过冲或失步现象。

MCU(microcontroller unit,微控制单元)控制步进的脉冲数n与移液器吸液量V的关系为:

式中:T为步进电机步距角,T=1.8°;N为步进电机细分数,N=16;Ph为丝杆导程,Ph=2 mm;S为移液器总容量,S=200µL;l为移液器行程,l=50 mm;i为传动比,i=2.5。

2.2 步进电机控制算法

在移液过程中,步进电机需进行往复运动。为满足步进电机稳定性和动态性的要求,保证步进电机的定位精度,防止步进电机产生过冲或失步现象,采用速度位置双闭环PID(proportion-integral-deriva‐tive,比例-积分-微分)控制算法。其控制原理框图如图2所示。其中:设Umax=r(k),r(k)为期望输出的离散值,e(k)为单位负反馈误差,u(k)为PID 控制输出的离散值,Δu(k)为上一时刻与当前时刻PID控制输出离散偏的差值,y(k)为实际输出离散值。

图2 速度位置双闭环PID控制原理框图Fig.2 Block diagram of speed-position double closed-loop PID control principle

先对位置参数进行采样,再将位置环PID控制器的输出作为速度环的输入,这种串级控制可以增强系统的抗干扰性。为防止出现积分饱和现象和提高系统的稳定性,采用遇限削弱积分法,即:当PID控制器中的积分量累加到一定值之后,执行削弱积分项的运算,而停止增大积分项的运算。

利用MATLAB 工具箱调出对应的PID 参数,对控制器参数进行整定。具体步骤如下:

1)采集步进电机的输入和输出数据;

2)将输入和输出数据导入System Identification模块,得到传递函数;

3)利用传递函数,在Simulink上搭建控制系统,用PID tunner自动整定PID参数。

遇限削弱积分法的步骤如下:

1)当u(k)>Umax时,若e(k)>0(即输出值还未达到指定值),则认为积分会带来滞后,不再积分。

2)当u(k)<0时,若e(k)<0(即输出值超过了指定值),则认为积分会带来滞后,不再积分。

最终得到位置环PID 的参数为:kp=0.050,ki=0.001,kd=0.001,速度环PID 的参数为:kp=0.035,ki=0.005,kd=0.000 1。

3 基于图像分割法的移液过程的监测

针对全自动生化分析仪的故障监控和移液量检测,常用的方法有气压法和电容法[7]。其中气压法无法实现移液量的定量检测,且电磁干扰、机械振动等会影响故障判断的准确性;采用电容法时,由于需要接触液体,容易带来污染等问题[8]。为了有效监控故障,提高系统的可靠性,笔者提出采用基于深度学习的图像分割法来监测移液过程。其具体流程如图3所示。

图3 基于图像分割法的移液过程监测流程Fig.3 Monitoring flow of pipetting process based on image segmentation

采用CMOS 数字图像传感器采集图像,利用图像分割法分割移液区域。若没有分割到移液区域,则存在空吸故障,反之,进行移液区域数的检测。若该数大于1,则存在气泡故障,进行有气泡条件下的移液体积计算;若该数等于1,则认为无故障,进行正常移液情况下的移液体积计算。最后,将图像处理结果反馈给自动移液系统进行处理。

移液过程监测的具体实现主要分为三部分:

1)基于U-Net神经网络的移液区域分割;

2)移液体积模型构建;

3)标度换算与移液量计算。

3.1 基于U-Net神经网络的移液区域分割

传统的图像处理方法需要人为进行阈值选择和特征提取,比较繁杂且对噪声敏感。本文采用基于深度学习的图像分割法来自动提取图像特征,能较好地抑制图像中的噪声不均匀性。

相比其他自然影像,移液系统的图像具有语义较为简单、结构较为固定及多模态等特性,故采用广泛应用于图像分割的U-Net[9-12]卷积神经网络。UNet网络全尺度的跳跃连接(skip connection)方式和U型结构将来自不同尺度特征图的高级语义特征与低级语义特征相结合,可以实现较高精度的图像分割。

3.1.1 U-Net网络结构和剪枝

U-Net网络结构是一种U形结构,其左侧可视为一个编码器,右侧可视为一个解码器。编码器包含4个子模块,每个子模块包含2个卷积层,卷积层之后有一个通过最大池化层(max pool)实现的下采样层。解码器也包含4个子模块,图像分辨率通过上采样操作依次上升,直到与输入图像的分辨率一致。该网络使用了跳跃连接,将上采样结果与编码器中具有相同图像分辨率的子模块的输出进行连接,作为解码器中下一个子模块的输入,从而实现后续计算中每层特征图都能有效使用。

为了提高图像分割的效率,须进行U-Net网络结构剪枝。网络结构剪枝的目的在于找出冗余连接并将其移除,使其不再参与网络前向或后向的运算过程,起到减少网络计算量的作用。移除的神经元及其相应连接也不再存储,减少了模型的存储量。

Zhou 等[13]在Unet++网络测试过程中对网络进行剪枝操作,结果显示,在模型参数量明显减少的情况下,剪枝前后模型指标——平均交并比(mean in‐tersection over union,MIOU)非常接近。所以,本文将U-Net网络的前两层进行剪枝,以缩小网络结构,减少网络参数量。剪枝后U-Net 网络结构如图4所示。

图4 剪枝后U-Net网络结构Fig.4 U-Net network structure after pruning

3.1.2 U-Net模型训练和测试结果分析

1)数据集构建。

在移液过程中,采用CMOS 图像传感器采集1 000张样本图像,图像大小为(512×960)像素。为了降低训练集的复杂度,提高训练速度,提取图像中的移液吸头区域,将原图裁剪成(256×480)像素。利用labelme软件对移液区域进行标记制作成标签集,将样本集和标签集的80%组合成训练集,20%组合成测试集。

2)模型训练。

实验中采用型号为Intel(R)Xeon(R)Gold 6136的CPU(central processing unit,中央处理器),其内存为12 GB。采用CPU模式,分别对剪枝前后U-Net模型进行训练。模型训练参数的配置如表1。其中:“resolution”表示图像训练样本的分辨率;“imgs_set”表示训练样本总数;“epochs”表示样本中所有样本数据被计算的次数;“batch_size”表示每次迭代的图像数量。

表1 U-Net模型训练参数的配置Table 1 Configuration of training parameters of U-Net model

3)性能评价指标构建。

在图像分割中,预测的结果为以下4种:true pos‐itive(TP,真正),false positive(FP,假正),true nega‐tive(TN,真负),false negative(FN,假负)。MIOU是衡量图像分割精度的重要指标,其含义为计算真实值和预测值两个集合的交集与并集之比,它可以变形为TP值(交集)与TP值、FP值、FN值之和(并集)的比值。其计算公式为:

式中:I为平均交并比;a+1为类别个数(包含空类);Ptt为真正数,Ptj、Pjt分别为假正数和假负数;t为真实类数,j为预测类数。

每一个加法项是针对每一个类别进行平均交并比的计算。其中分母中的第1项为真实值中该类的像素个数,第2 项为预测值中预测为该类的像素个数,这2项中存在一个交集,因此须减去一个交集(第3项)。本文中,是基于移液区域和背景计算I的,因此得到的结果是基于全局的评价。

4)测试结果分析。

剪枝前后U-Net模型的测试结果如表2所示。

表2 剪枝前后U-Net模型测试结果Table 2 U-Net model test results before and after pruning

由表2可知,剪枝后U-Net模型在I下降了0.61%的情况下,计算量和参数量分别下降了47.30%、93.99%,可见模型的运算速度和运行效率得到提高。

对测试集进行测试。采用剪枝后U-Net模型对移液区域进行分割,其分割效果如图5所示。可以看出,模型对移液区域进行了有效分割,且在出现气泡时能够剔除气泡,只保留液体区域。

图5 基于剪枝后U-Net模型的移液区域分割效果Fig.5 Effect of pipetting region segmentation based on pruned U-Net model

3.2 移液体积模型构建

将吸头形状近视为圆锥体。图像分割后,考虑吸头内液体可能存在气泡,则构建的吸头内液体的体积模型如图6所示。

图6 吸头内液体的体积模型Fig.6 Volume model of liquid in suction head

针对如图6所示的移液区域1,首先进行角点检测。常见的角点检测算法有Harris算法、Susan算法、Harris-Laplace 算法等[14-15],本文采用较为常用且效果较好的Harris算法。然后,提取移液区域上下极端点的坐标:(xtopmost,ytopmost)、(xbottommost,ybottommost)。通过公式(3)计算移液区域1中的液体高度h0。如果液体内存在气泡,那么还须求得气泡上面移液区域2中的液体高度h1等。

根据实际测量,得到圆锥锥度C=0.106 51,则d0=C·h0,dm+1=dm+C·hm,m为气泡上面对应液体段的个数,m=1,2,…,M。

3.3 标度换算与移液量计算

通过分割得到的移液区域的尺寸单位是像素,不能反映其实际尺寸,因此须进行标度转化。首先利用OpenCV库函数对相机进行标定[16],然后利用标度变换法得到像素尺寸因子。像素尺寸因子e为:

式中:w为吸头水平面上标准块的宽度;c为w的像素值。

根据图6所示吸头内液体的体积模型,将吸头内液体体积近视为圆锥体体积V0,气泡上面液体体积近视为圆台体积Vm,则吸头内液体体积V=V0+∑Vm。结合像素尺寸因子,得到实际移液量的计算公式为:

4 移液测试实验与实验误差补偿

4.1 移液测试实验

根据生化分析仪的使用要求,规定的滴定实验检定点为10,50,100 µL,校准参照国际标准ISO 8655-6[17],根据容量允许误差和重复率判断检验是否合格。利用称重法测得自动移液系统的移液实际值,利用图像分割法得到移液检测值。通过定量检测和定点检测的方式测试移液系统和图像监测系统的稳定性,并分析实验误差及误差来源。

测试实验的硬件配置如下:

1)实验平台:自主研发的全自动生化分析仪,装有图像监测系统。经实验测试,其具有较高精度[18-19]。

2)电机控制系统:配置为16 细分模式;采用型号为HKT32-1000的编码器,其分辨率为1 000 p/r。

3)测量介质:去离子水。

4)测量设备:200µL 吸头若干,0.01 mg 的电子天平一台。

测量方式1:分别对10,50,100µL 的进样量(目标值)进行定量检测,各量程进行10次测量并记录测量结果。实验结果如图7所示。

图7 定量检测实验结果Fig.7 Experimental results of quantitative test

测量方式2:以10 µL 为间隔选取10 µL 至100µL共10个检测点(目标值)进行测量,各检测点分别进行10次测量,取10次测量结果的平均值。实验结果如图8表示。

图8 定点检测实验结果Fig.8 Experimental results of fixed-point test

由图7和图8可知:实际值与目标值之间的偏差基本呈线性变化趋势。说明在TMC2208驱动器和速度位置双闭环PID控制下,步进电机运行平稳且没有出现过冲或失步现象;随着移液量的增加,实际值与目标值之间的偏差呈增大趋势;检测值在实际值附近变化,说明利用图像分割法可以实现移液量的检测。

经分析,传动系统和进样器气液置换系统存在误差积累现象,导致实际值与目标值之间的偏差逐渐增大。在基于U-Net神经网络的移液区域分割中,受U-Net模型分割精度的影响,移液区域液体的检测高度与实际高度有一定的偏差,导致计算得到的移液体积与实际体积有一定偏差。

4.2 实验误差补偿

可以通过以下3种方法进行实验误差补偿。

1)误差补偿方法1。

传动系统的误差主要是零件本身的制造误差和安装误差。进样器气液置换系统的误差主要由进样器腔体内气体体积具有拉伸性和压缩性所导致[20],在进样和排样过程中,由控制器输出脉冲数决定的移液体积与实际存在偏差。

针对传动系统误差,可以选用精度更高的零件,并在安装过程中尽可能减小其安装误差。针对气液置换系统误差,可以利用最小二乘法将目标值Vt、实际值与目标值之间的偏差Ve进行线性拟合,得到其拟合直线方程为:

2)误差补偿方法2。

通过Harris算法提取的移液体积模型中特征点的位置是由单像素坐标值表示的,然而实际的角点位置与单像素坐标值有一定的偏差。该偏差导致根据公式(5)算得的移液量存在更大的偏差,因此须进行亚像素角点的定位。

亚像素级别精准定位方法主要有3类,即基于插值方法、基于几何矩寻找方法和基于拟合方法的精准定位[21]。本文采用精度较高的拟合方法。

亚像素角点的几何特征如图9所示。其中:q为待求的亚像素点;p为q点邻域中的点;G为q点的梯度。

如图9(a)所示,若p点在q点邻域内部,则p点的梯度G为0;如图9(b)所示,若p点在q点邻域边缘,则p点的梯度方向垂直于边缘方向,若向量的方向与边缘方向一致,则向量与p点梯度向量G的点积为0。利用最小二乘法原理和垂直的向量之积为0的性质,建立如下模型:

式中:下标u代表q点邻域中的点集。

为了使计算结果更精确,采用多点计算,而各点与中心的距离不相等,故引入权重。假设pu的距离权重为ωu,则最终最小二乘法求解公式为:

以10µL定量检测为例,其移液区域上下极端点单像素和亚像素坐标值如表3所示。

表3 10µL移液区域上下极端点单像素和亚像素坐标值Table 3 Coordinate values of single pixel and sub-pixel at the upper and lower extreme points in 10µL pipetteing area

3)误差补偿方法3。

2004年南洋理工大学的黄广斌教授提出并采用了极限学习机(extremelearning machine,ELM),使神经网络训练速度得到很大提高,其被广泛应用在系统辨识和分类等领域[22]。在过去的十几年中,ELM 的理论及应用得到广泛研究。从学习效率上来看,ELM具有训练参数少、学习速度快、泛化能力强的优点。本文利用ELM算法对移液系统图像分割和移液量计算中的非线性误差进行补偿。

ELM网络结构如图10所示。其中:输入层为训练样本集x,中间层为隐藏层(其节点数为F),输入层与隐藏层之间为全连接;隐藏层的输出为H(x),β=[β1,…,βF]为隐藏层(F个节点)与输出层y(Z个节点,Z≥1)之间的输出权重。

图10 ELM网络结构Fig.10 ELM network structure

建立误差补偿模型为:

式中:xs为误差补偿前图像检测样本,s=1,2,…,S;yz为误差补偿后图像检测样本,z=1,2,…,Z;g为Sigmoid激活函数;rs为输入权重;bs为隐藏层单元的偏置。

通过设置网络隐藏层不同的节点个数,以检测值和目标值组成训练集,将训练集输入ELM 进行训练,得到所有ELM网络节点上的权值和偏差;输入测试数据,利用已求得的输出层权重计算出网络输出值,完成数据预测。最终设置F=30。

4.3 误差补偿后的移液测试

误差补偿后进行移液吸排实验,再次进行定量和定点测试。其中,在50µL的第6次实验中人为使移液量小于定量(少吸故障),在100µL的第8次实验中人为使移液区域产生气泡(气泡故障)。测试结果如图11和图12所示。

图11 误差补偿后定量检测实验结果Fig.11 Experimental results of quantitative test after error compensation

图12 误差补偿后定点检测实验结果Fig.12 Experimental results of fixed-point test after error compensation

由图11 可知:目标液体体积为50µL 时,第6 次的测试结果明显低于50µL;目标液体体积为100µL时,第8次的测试结果明显低于100µL。可见图像监测系统成功监测到故障现象。由图12可知,移液目标值、实际值、检测值三者较为接近,说明系统的误差补偿效果较好。

针对10,50,100µL 检定点,分别计算移液量和图像检测的准确性误差和重复性误差,结果如表4所示。

表4 移液量和图像检测的准确性误差和重复性误差Table 4 Accuracy error and repeatability error of pipetting volume and image detection %

计算结果表明,误差补偿函数在很大程度上降低了自动移液系统和检测系统的误差,满足了微量移液系统的精度设计要求。

5 总结

1)利用具有256 细分效果的TMC2208 步进电机驱动器和速度位置双闭环PID控制算法,实现了微量移液系统电机的运转平滑,冲击较小,避免了电机产生过冲或失步现象。利用最小二乘法进行线性补偿,实现了对移液控制系统的偏差校正,提高了移液准确度。

2)利用U-Net神经网络对采集的图像进行预处理。为了提高图像处理速度,对U-Net神经网络进行剪枝,剪枝后U-Net模型在性能评价指标下降0.61%的情况下,其计算量和参数量各下降了47.30%和93.99%,提高了模型的运算速度和运行效率。通过图像分割法对图像中移液区域进行分割和判断,并结合移液吸头的几何特征建立移液体积计算模型。当图像监测系统监测到有气泡、空吸、少吸等异常现象时,将该信息反馈给移液系统,避免移液异常对微量移液系统的精度带来影响。采用亚像素角点来提高识别特征点的精度,通过ELM 方法对移液量计算和图像分割的非线性误差进行误差补偿,提高了移液检测精度。

3)利用该方法能有效实现对移液故障的判定和移液量的检测,减少了临床医疗中的试剂浪费。在不影响微量移液操作工作效率的前提下,保证了移液系统的精度,提高了系统的可靠性,对微量移液技术的发展有一定的推动作用。

猜你喜欢
移液剪枝液量
一种自动称重移液设备设计与实现
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
TAP阀压开地层解决方案及其在苏南的应用
工程因素对页岩气井产水的影响分析
你一直想知道的移液知识
剪枝
CO2 驱低液量高气液比井下气锚模拟与优化
有关移液枪使用方法对移液准确性影响的讨论