尚志武,周士琦
(天津工業大學天津市現代機電裝備技術重點實驗室,天津300387)
生化分析儀、酶聯免疫分析儀、尿液分析儀等全自動臨床檢驗分析儀器被廣泛應用于流行病學、免疫學研究和臨床檢測中。微量移液系統是其重要組成部分。一個完整的移液過程包括提取移液樣本針、探測液面、吸取樣本、樣本移動到混合反應區、排出樣本、退去移液樣本針等6個步驟。液面探測和移液過程中的故障監控是微量移液的關鍵環節,它們直接關系著最終檢測結果的穩定性、準確性。
國內外很多學者對液面探測和故障監控進行了研究。Bonzon等[1]基于理想氣體的物理特性,利用差壓測量技術和新型傳感器制作了一種微量移液校準裝置。Kaplit[2]通過一元線性回歸分析了移液過程,根據進樣器腔體內的實際壓力與理論壓力的標準偏差判斷和評價移液樣本量的準確性。Camenisch[3]采集在吸液過程中進樣器腔體內的實際壓力值與預設壓力值并進行比較,通過分析兩者的偏差實現對移液過程的監測和評估。祝連慶等[4-5]利用壓力傳感器,通過灰色聚類分析、雙極值等方法對移液過程的異常現象進行監測。武通園[6]利用電容和壓力傳感器,將采集到的傳感器數據傳至上位機,精準實現了液面探測、防撞針和堵針檢測。在上述方法中,由于受液體黏度、電機運行速度以及機械振動的影響,故障判斷的準確率較低,故障判斷與分類的模型較復雜;很難對移液體積進行準確測定;采用電容法進行移液檢測時,容易對移液造成一定的污染。
為滿足微量移液系統移液量檢測和狀態監測的需求,提高系統的可靠性,筆者首先設計了基于STM32 的自動移液控制系統,其次提出了一種基于圖像分割法的移液過程監測方法。通過圖像監測分析移液過程中存在氣泡、空吸、少吸等異常情況,并建立模型來測定移液量。將經圖像處理后的信息反饋給自動移液系統,使其準確操作,以增強檢測系統的可靠性。
采用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
采用德國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。
在移液過程中,步進電機需進行往復運動。為滿足步進電機穩定性和動態性的要求,保證步進電機的定位精度,防止步進電機產生過沖或失步現象,采用速度位置雙閉環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。
針對全自動生化分析儀的故障監控和移液量檢測,常用的方法有氣壓法和電容法[7]。其中氣壓法無法實現移液量的定量檢測,且電磁干擾、機械振動等會影響故障判斷的準確性;采用電容法時,由于需要接觸液體,容易帶來污染等問題[8]。為了有效監控故障,提高系統的可靠性,筆者提出采用基于深度學習的圖像分割法來監測移液過程。其具體流程如圖3所示。

圖3 基于圖像分割法的移液過程監測流程Fig.3 Monitoring flow of pipetting process based on image segmentation
采用CMOS 數字圖像傳感器采集圖像,利用圖像分割法分割移液區域。若沒有分割到移液區域,則存在空吸故障,反之,進行移液區域數的檢測。若該數大于1,則存在氣泡故障,進行有氣泡條件下的移液體積計算;若該數等于1,則認為無故障,進行正常移液情況下的移液體積計算。最后,將圖像處理結果反饋給自動移液系統進行處理。
移液過程監測的具體實現主要分為三部分:
1)基于U-Net神經網絡的移液區域分割;
2)移液體積模型構建;
3)標度換算與移液量計算。
傳統的圖像處理方法需要人為進行閾值選擇和特征提取,比較繁雜且對噪聲敏感。本文采用基于深度學習的圖像分割法來自動提取圖像特征,能較好地抑制圖像中的噪聲不均勻性。
相比其他自然影像,移液系統的圖像具有語義較為簡單、結構較為固定及多模態等特性,故采用廣泛應用于圖像分割的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
將吸頭形狀近視為圓錐體。圖像分割后,考慮吸頭內液體可能存在氣泡,則構建的吸頭內液體的體積模型如圖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。
通過分割得到的移液區域的尺寸單位是像素,不能反映其實際尺寸,因此須進行標度轉化。首先利用OpenCV庫函數對相機進行標定[16],然后利用標度變換法得到像素尺寸因子。像素尺寸因子e為:

式中:w為吸頭水平面上標準塊的寬度;c為w的像素值。
根據圖6所示吸頭內液體的體積模型,將吸頭內液體體積近視為圓錐體體積V0,氣泡上面液體體積近視為圓臺體積Vm,則吸頭內液體體積V=V0+∑Vm。結合像素尺寸因子,得到實際移液量的計算公式為:

根據生化分析儀的使用要求,規定的滴定實驗檢定點為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模型分割精度的影響,移液區域液體的檢測高度與實際高度有一定的偏差,導致計算得到的移液體積與實際體積有一定偏差。
可以通過以下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。
誤差補償后進行移液吸排實驗,再次進行定量和定點測試。其中,在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 %
計算結果表明,誤差補償函數在很大程度上降低了自動移液系統和檢測系統的誤差,滿足了微量移液系統的精度設計要求。
1)利用具有256 細分效果的TMC2208 步進電機驅動器和速度位置雙閉環PID控制算法,實現了微量移液系統電機的運轉平滑,沖擊較小,避免了電機產生過沖或失步現象。利用最小二乘法進行線性補償,實現了對移液控制系統的偏差校正,提高了移液準確度。
2)利用U-Net神經網絡對采集的圖像進行預處理。為了提高圖像處理速度,對U-Net神經網絡進行剪枝,剪枝后U-Net模型在性能評價指標下降0.61%的情況下,其計算量和參數量各下降了47.30%和93.99%,提高了模型的運算速度和運行效率。通過圖像分割法對圖像中移液區域進行分割和判斷,并結合移液吸頭的幾何特征建立移液體積計算模型。當圖像監測系統監測到有氣泡、空吸、少吸等異常現象時,將該信息反饋給移液系統,避免移液異常對微量移液系統的精度帶來影響。采用亞像素角點來提高識別特征點的精度,通過ELM 方法對移液量計算和圖像分割的非線性誤差進行誤差補償,提高了移液檢測精度。
3)利用該方法能有效實現對移液故障的判定和移液量的檢測,減少了臨床醫療中的試劑浪費。在不影響微量移液操作工作效率的前提下,保證了移液系統的精度,提高了系統的可靠性,對微量移液技術的發展有一定的推動作用。