王 攀, 謝亞行, 林友輝,1b,2, 林昶旭,1b,2*
(1. 廈門大學(xué) a. 物理科學(xué)與技術(shù)學(xué)院; b. 生物仿生與軟物質(zhì)研究院, 福建 廈門 361005;2. 福建省柔性功能材料重點(diǎn)實(shí)驗(yàn)室, 福建 廈門 361005)
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展及其在各領(lǐng)域的廣泛應(yīng)用, 將化學(xué)實(shí)驗(yàn)與計(jì)算機(jī)技術(shù)相結(jié)合實(shí)現(xiàn)自動(dòng)化實(shí)驗(yàn)以降低人力成本和出錯(cuò)率是未來(lái)化學(xué)實(shí)驗(yàn)的發(fā)展方向[1]. 光子晶體由具有周期性結(jié)構(gòu)的不同介電常數(shù)材料組成. 光子晶體具有結(jié)構(gòu)色, 其光學(xué)性能可采用反射光譜和熒光光譜進(jìn)行表征[2]. 浸泡于溶液中的光子晶體微球水凝膠的光譜信息可以反映其所在化學(xué)環(huán)境中溶質(zhì)的組成及濃度等信息, 并且可用于區(qū)分手性分子[3]. 然而, 光子晶體微球的制備與表征中存在多次重復(fù)測(cè)試和須收集信息的種類繁多等問(wèn)題, 使得光子晶體微球的應(yīng)用備受限制. 自動(dòng)化實(shí)驗(yàn)的實(shí)現(xiàn)則有助于完成部分實(shí)驗(yàn)所需要的高通量篩選工作, Pfriem等[4]設(shè)計(jì)了用于生物分析的新型機(jī)器人設(shè)備, 實(shí)現(xiàn)了高吞吐量屏幕過(guò)程鏈部分的自動(dòng)化; Griffen等[5]提出將人工智能應(yīng)用于藥物化學(xué), 更精準(zhǔn)地向臨床醫(yī)學(xué)提供合適的藥物; Maryasin等[6]提出將機(jī)器學(xué)習(xí)算法應(yīng)用于烯烴和烷基鹵化物的基本反應(yīng), 有效識(shí)別了反應(yīng)類型和預(yù)測(cè)結(jié)果,但是該算法缺乏一般性, 無(wú)法對(duì)其他類別的反應(yīng)做出預(yù)測(cè); Burger等[7]利用貝葉斯算法驅(qū)動(dòng)機(jī)器人在8 d內(nèi)自主完成688個(gè)實(shí)驗(yàn)場(chǎng)景, 尋找最高效的催化劑組合, 這種模塊自動(dòng)化組合的方法可適用于常規(guī)實(shí)驗(yàn)室. 目前, 自動(dòng)化實(shí)驗(yàn)技術(shù)主要應(yīng)用在商業(yè)制藥領(lǐng)域, 而在化學(xué)實(shí)驗(yàn)室領(lǐng)域的應(yīng)用仍處于探索階段[8]. 本文將初步探索光子晶體微球信息的自動(dòng)化采集, 利用機(jī)械臂通信協(xié)議提供的程序控制機(jī)械臂到顯微鏡載物臺(tái)的指定位置, 在Python控制下, 利用Laplace算法結(jié)合圖像處理軟件保存光子晶體微球照片和測(cè)取清晰度實(shí)現(xiàn)顯微鏡的自動(dòng)對(duì)焦, 并在焦點(diǎn)測(cè)出光子晶體微球尺寸和采集光譜數(shù)據(jù), 以期提高光子晶體微球的信息采集效率.
本文設(shè)計(jì)了如圖1所示的光子晶體微球數(shù)據(jù)采集系統(tǒng), 該系統(tǒng)主要有3個(gè)組成部分: 1) HIBOTZ-Arm四軸可控機(jī)械臂(深圳慧靈科技有限公司, 深圳). 根據(jù)機(jī)械臂配套的通信協(xié)議并利用代碼實(shí)現(xiàn)準(zhǔn)確的四軸移動(dòng), 控制機(jī)械臂到顯微鏡載物臺(tái)的指定位置, 在三維方向聯(lián)合機(jī)械臂夾爪精準(zhǔn)取放待測(cè)物; 2) Ni-E正置熒光顯微鏡(尼康儀器有限公司,日本). 在Python的控制下, 采用Laplace算法在圖像處理軟件NIS-Elements_D界面內(nèi)通過(guò)代碼模擬鼠標(biāo)查看并保存光子晶體微球照片, 利用顯微鏡的高精度Z軸調(diào)焦技術(shù)調(diào)節(jié)載物臺(tái)高度來(lái)調(diào)節(jié)物距進(jìn)行對(duì)焦處理, 測(cè)取清晰度從而實(shí)現(xiàn)自動(dòng)對(duì)焦, 然后測(cè)出光子晶體微球尺寸; 3) USB2000+微型光纖光譜儀(蔚海光學(xué)儀表有限公司, 美國(guó)). 應(yīng)用海洋光學(xué)提供的OminiDriver軟件驅(qū)動(dòng)控制光纖光譜儀, 實(shí)時(shí)讀取波長(zhǎng)和強(qiáng)度等光譜信息, 并利用Python函數(shù)尋峰.
圖1 光子晶體微球信息采集系統(tǒng)Fig.1 Photonic crystal information automatic collection system
圖2 光子晶體微球信息采集流程Fig.2 Photonic crystal information automatic collection processes
本文所設(shè)計(jì)系統(tǒng)的信息采集過(guò)程如圖2所示.
圖3 遍歷法(a)、爬山法(b)和本文方法(c)等3種調(diào)焦算法下待測(cè)物清晰度隨物距的變化關(guān)系Fig.3 The clarity of the measured object changes with the object distance: the traversal method (a), the mountain climbing method (b), the traversal method first and then the mountain climbing method (c)
自動(dòng)對(duì)焦的實(shí)質(zhì)是尋找最大清晰度值[9]. 圖3(a)(b)顯示了待測(cè)物清晰度隨物距變化的情況, 峰值所對(duì)應(yīng)的點(diǎn)即對(duì)焦清晰的點(diǎn). 與遠(yuǎn)離焦點(diǎn)的圖像相比, 處于焦點(diǎn)的圖像具有更多的邊緣信息, 其灰度值變化更明顯,圖像清晰度更高, 故可利用清晰度來(lái)判斷圖像是否準(zhǔn)確對(duì)焦[10]. 尋找焦點(diǎn)一般采用遍歷法或爬山法, 遍歷法下在物距范圍內(nèi)設(shè)置較小的步幅, 從起點(diǎn)開始測(cè)出起點(diǎn)1至終點(diǎn)9中每個(gè)點(diǎn)的清晰度, 點(diǎn)5即對(duì)焦準(zhǔn)確的位點(diǎn); 爬山算法則從點(diǎn)1開始測(cè)量清晰度, 當(dāng)清晰度值出現(xiàn)拐點(diǎn)時(shí)即停止測(cè)量. 遍歷法的測(cè)量工作量較大,而爬山法可能會(huì)誤將某個(gè)局部最大值視為波峰; 因此, 為了更好地完成光子晶體微球的自動(dòng)對(duì)焦, 筆者先設(shè)置較大的物距步幅采用遍歷法進(jìn)行粗調(diào), 測(cè)量點(diǎn)1至點(diǎn)5的清晰度, 確定調(diào)節(jié)范圍在點(diǎn)3與點(diǎn)4之間, 再設(shè)置較小的步幅利用爬山法進(jìn)行細(xì)調(diào), 測(cè)量點(diǎn)7至點(diǎn)9的清晰度, 確定焦點(diǎn)為點(diǎn)8, 其原理如圖3(c)所示.
測(cè)得物距后通過(guò)代碼模擬鼠標(biāo)調(diào)整載物臺(tái)至對(duì)焦清晰的位點(diǎn),即可得到對(duì)焦清晰的光子晶體微球圖像. 圖像是由若干像素點(diǎn)組成的,彩色圖像的每個(gè)像素包含R、G、B3個(gè)顏色分量, 每個(gè)分量有255種可能性.對(duì)圖像進(jìn)行灰度處理,將彩色三通道圖像的R、G、B值變成相等的值, 即第i行第j個(gè)像素點(diǎn)的灰度值
I(i,j)=R(i,j)×0.3+G(i,j)×0.59+B(i,j)×0.59,
(1)
使得該彩色圖像轉(zhuǎn)化為單通道灰度圖, 圖像的亮度和顏色分布特征得以保留且計(jì)算量下降.
現(xiàn)采用SMD[11]、SMD2[11]、Variance[12]及Laplace[12]等8種主流清晰度算法, 針對(duì)一組由模糊到清晰的光子晶體微球圖像進(jìn)行清晰度測(cè)試, 結(jié)合各像素點(diǎn)灰度值的計(jì)算結(jié)果, 最終選擇Laplace算法為本文光子晶體微球清晰度算法. 應(yīng)用Python軟件配合顯微鏡調(diào)整步幅, 測(cè)量圖像的清晰度值, 找出對(duì)焦清晰點(diǎn), 得到對(duì)焦正確的Z軸位置,實(shí)現(xiàn)自動(dòng)對(duì)焦.
由于光子晶體微球熒光圖像相對(duì)反射圖像更清晰,選擇保存熒光光子晶體微球圖像進(jìn)行尺寸測(cè)量. 通過(guò)Python保存帶有標(biāo)度尺的光子晶體微球圖像,使之轉(zhuǎn)化為灰度圖并對(duì)各像素點(diǎn)進(jìn)行二值化處理. 設(shè)置一個(gè)合適的閾值, 灰度值小于閾值的點(diǎn)為0, 灰度值大于閾值的點(diǎn)為255, 所有像素點(diǎn)只有0或255兩個(gè)值, 分別對(duì)應(yīng)于白色和黑色.二值化可使得圖像信息量再次變少, 且不影響尋找圖像輪廓. 利用Python外掛包中的輪廓算子[13]進(jìn)行圖像輪廓識(shí)別, 識(shí)別并返回待測(cè)的二值化圖像的邊緣像素點(diǎn)信息, 得到二值化后的光子晶體微球圖像輪廓.根據(jù)邊緣像素點(diǎn)信息作出光子晶體微球圖像邊緣的外接矩形, 利用外接矩形的坐標(biāo)計(jì)算其像素點(diǎn)的邊長(zhǎng).類似地,標(biāo)度尺是一個(gè)已知實(shí)際長(zhǎng)度的長(zhǎng)方形, 輪廓算子可同時(shí)識(shí)別標(biāo)度尺的輪廓并返回標(biāo)度尺像素點(diǎn)的邊長(zhǎng)信息, 故可通過(guò)推算光子晶體微球外接矩形的實(shí)際邊長(zhǎng)計(jì)算光子晶體微球的實(shí)際直徑,從而實(shí)現(xiàn)對(duì)光子晶體微球的尺寸測(cè)量.
通過(guò)Python實(shí)現(xiàn)波長(zhǎng)和強(qiáng)度等光譜數(shù)據(jù)的采集. 將光譜強(qiáng)度數(shù)據(jù)歸一化, 通過(guò)尋峰函數(shù)讀取波峰數(shù)據(jù).由于光譜圖像中存在噪音和雜峰, 故先對(duì)光譜數(shù)據(jù)利用小波連續(xù)變換進(jìn)行降噪平滑處理:
(2)
表1為采用SMD、SMD2及Variance等8種清晰度測(cè)試算法測(cè)量一組如圖4(a→f的清晰度逐漸遞增)所示的光子晶體微球圖像所需的時(shí)間. 對(duì)各算法清晰度測(cè)量值進(jìn)行歸一化處理和線性擬合, 結(jié)果如圖5所示.由圖5可知, Variance和Vallath算法的清晰度測(cè)量值和實(shí)際值變化趨勢(shì)與其他幾種算法的幾乎相反, 可能是由于這2種算法不適用于光子晶體微球低清晰度圖像所致; Laplace算法的線性擬合度最佳且測(cè)試時(shí)間最短.
表1 8種清晰度測(cè)試算法的測(cè)量時(shí)間Tab.1 Measuring time of 6 pictures with 8 algorithms
圖4 實(shí)際清晰度由模糊(a)逐漸趨于清晰(f)的光子晶體微球圖像Fig.4 A set of photos of photonic crystals with sharpness ranging from fuzzy to clear, (a) to (f) the actual sharpness increases successively
圖5 (a) SMD, (b) SMD2, (c) Variance, (d) Vollath, (e) Energy, (f) Laplace, (g) Brenner, (h) Entropy等8種算法下的清晰度測(cè)量值與實(shí)際清晰度的單調(diào)關(guān)系Fig.5 The relationship between the measured clarity of eight algorithms and the actual clarity (a) SMD, (b) SMD2, (c) Variance, (d) Vollath, (e) Energy, (f) Laplace, (g) Brenner, (h) Entropy
圖6為光子晶體微球尺寸測(cè)量過(guò)程中Python程序準(zhǔn)確識(shí)別出的圖像.選取5個(gè)不同大小的光子晶體微球, 分別進(jìn)行5次測(cè)量, Python測(cè)量值(566, 606, 662, 760, 808 μm)與采用比例尺手動(dòng)測(cè)量的光子晶體微球直徑的實(shí)際尺寸(550, 620, 648, 743, 820 μm)相比,平均誤差為2.1%.故利用Python進(jìn)行光子晶體微球尺寸自動(dòng)化檢測(cè)是可行的.
圖6 自動(dòng)測(cè)量光子晶體微球的三階段原圖(a)、灰度圖(b)及外接矩形圖(c)Fig.6 Photos processed in 3 steps for automatic photonic crystal microsphere measuring: the original photo (a), the grayscale image (b), the schematic diagram of the circumscribed rectangle (c)
利用Python讀取OminiDriver數(shù)據(jù)采集系統(tǒng)實(shí)時(shí)輸出的光譜波長(zhǎng)和反射峰強(qiáng)度信息, 對(duì)強(qiáng)度歸一化后進(jìn)行降噪處理,通過(guò)找出反射峰強(qiáng)度最大值來(lái)尋找最大反射峰所對(duì)應(yīng)的波長(zhǎng).選取5個(gè)最大反射峰對(duì)應(yīng)波長(zhǎng)不同的光子晶體小球進(jìn)行Python光譜采集與尋峰.將光譜儀配套軟件采集的光譜數(shù)據(jù)保存為文本文件, 對(duì)采集到的反射峰強(qiáng)度進(jìn)行歸一化處理; 在繪圖軟件Origin中對(duì)強(qiáng)度數(shù)據(jù)降噪,再以波長(zhǎng)為橫坐標(biāo),歸一化后的反射峰強(qiáng)度信息為縱坐標(biāo)作圖; 在Origin中讀取最大峰值時(shí)的波長(zhǎng), 進(jìn)行人工尋峰. 對(duì)比人工尋峰和Python尋峰的結(jié)果,如表2所示. 由表2可見(jiàn), 人工尋峰與Python尋峰的結(jié)果幾乎一致,最大誤差不超過(guò)0.54%, 表明Python尋峰的結(jié)果較為準(zhǔn)確, 自動(dòng)尋峰功能用于采集波峰和波長(zhǎng)是合理可靠的.
表2 測(cè)量光譜最大反射峰波長(zhǎng)的人工測(cè)量值、Python測(cè)量值和誤差Tab.2 Manual measurement value of spectral peak wavelength,Python measurement value and error
本文設(shè)計(jì)的光子晶體微球信息自動(dòng)化采集系統(tǒng)實(shí)施一次完整的信息采集所需時(shí)間為2 min, 而人工配合機(jī)器測(cè)量所需時(shí)間約為10 min, 表明本文設(shè)計(jì)的系統(tǒng)可以提高光子晶體信息采集與表征的效率.
本文基于Python軟件結(jié)合機(jī)械臂、顯微鏡和光譜儀等硬件構(gòu)建了一套光子晶體微球信息自動(dòng)化采集系統(tǒng). 實(shí)驗(yàn)結(jié)果表明, 本文設(shè)計(jì)的系統(tǒng)能夠?qū)崿F(xiàn)光子晶體微球的準(zhǔn)確對(duì)焦、尺寸測(cè)量以及光譜采集和尋峰,提高了光子晶體信息采集的效率. 模塊自動(dòng)化的實(shí)現(xiàn)為更多的實(shí)驗(yàn)室操作自動(dòng)化提供了新思路. 利用機(jī)械臂結(jié)合Python外掛軟件和接口豐富的圖像識(shí)別、機(jī)器學(xué)習(xí)等算法, 實(shí)現(xiàn)了由厘米尺度至微米尺度的移動(dòng)和對(duì)焦等功能, 為顯微鏡和光譜儀等光學(xué)信號(hào)系統(tǒng)的深度利用提供新的可能.