張仲圓,劉淑慧
(大連交通大學電氣信息工程學院,遼寧大連 116028)
在催化材料領域,基于原位電鏡納米材料圖像的識別與追蹤是表征材料結構,進而了解材料性能的一個重要環節。在原位電鏡中可以實時看到化學反應過程,相比靜態顯微圖像,會產生海量視頻數據,因此,在化學反應過程中高效、可靠的實現追蹤與信息提取是決定原位電鏡應用于催化材料領域的關鍵要素。在傳統納米材料圖像的數據分析中,通常采用專業軟件進行人工標注和人工追蹤的方法,這種方法非常耗時和繁瑣,且標注的數量有限,獲得數據結果有所不足,無法有效挖掘整個化學反應過程中納米材料的有用信息。因此,需要一體化、自動的方法來識別和追蹤納米顆粒。在計算機視覺領域中,目標識別和目標追蹤的發展很快,很大程度上受強大的深度學習的影響,比如FAST-RCNN[1]、FASTER-RCNN[2]和YOLO[3]算法等用于目標識別和目標追蹤,這些算法在計算機視覺領域得到了廣泛的應用[4-5]。基于卷積神經網絡的圖像算法在自然場景等領域得到了廣泛的應用,但針對納米材料圖像,文獻多用分水嶺分割[6]、Markov 隨機場[7]等傳統算法來嘗試圖像識別。針對納米顆粒原位電鏡視頻數據分析,需要精確的實例分割與追蹤,進而完成化學反應過程中納米顆粒有用信息的提取,如納米顆粒的直徑、面積等變化,這些任務目前來說是具有很大挑戰性的。
基于此,文中將深度學習方法遷移到催化材料領域來進行原位電鏡視頻圖像納米顆粒的識別與追蹤,驗證算法的有效性。算法主要由兩部分組成:實例分割模塊和目標追蹤模塊。實例分割模塊采用MASK-RCNN,產生納米顆粒圖像的掩膜,實現納米顆粒與背景的分割。同時,開發了一個基于Trackpy開源軟件包的具有圖形界面的納米顆粒追蹤器,便于納米顆粒的追蹤過程展示和數據信息統計,為科研人員分析納米材料化學反應過程提供詳細的信息并指導材料的制備。
此次實驗采用納米顆粒催化劑材料視頻圖像如圖1 所示,分為兩部分,淺色部分為背景,深色部分為催化劑,即納米顆粒,由貴金屬組成。原位電鏡圖像均是灰度圖像,背景部分與前景部分對比度不高,紋理信息不豐富,無法靠人工提取特征。該實驗提出一種基于深度學習的實例分割與追蹤算法,對原位電鏡視野中納米顆粒在整個化學反應過程中進行目標的識別和追蹤。

圖1 納米顆粒圖像
納米顆粒識別與追蹤流程如圖2 所示,首先通過原位電鏡獲取化學反應過程中的視頻圖像,然后標準納米顆粒數據集,最后對MASK-RCNN 實例分割網絡[9]進行訓練,完成對視頻圖像中所有幀的納米顆粒分割,輸出MASK 掩膜圖像。同時,開發了一個基于Trackpy 的納米顆粒追蹤器,將納米顆粒追蹤過程進行界面顯示,最后對輸出的識別跟蹤結果進行信息統計與分析。

圖2 納米顆粒識別與追蹤流程
MASK-RCNN 實例分割算法主要是由目標檢測部分和MASK 分割部分組成,目標檢測部分實現了對納米顆粒的識別和定位,分割部分通過全卷積網絡[10](Fully Convolutional Network,FCN)生成了掩膜區域,實現了對納米顆粒的準確分割,MASK-RCNN實例分割算法可以達到像素級別的實例分割效果。
文中采用的MASK-RCNN算法的整體框架如圖3所示。首先,特征提取網絡會對納米顆粒圖像進行特征的提取和融合,得到對應納米顆粒的特征圖,采用區域建議網絡[11](Region Proposal Network,RPN)在其特征圖上生成先驗框來進行匹配區域[12](ROI Align)和篩選來得到較準確的建議框,然后,對建議框和實際框進行對比得到預測框,接著對預測框作出分類和定位,并結合納米顆粒圖像的識別結果得到納米顆粒圖像對應的MASK 掩膜圖像,最終得到了對納米顆粒圖像的實例分割結果。

圖3 MASK-RCNN算法整體框架
1.1.1 RPN網絡
RPN 網絡通過比例不一致的窗口在納米顆粒特征圖上進行滑動從而生成候選區域。RPN 包含三個長寬比例分別為1∶1、1∶2、2∶1 的窗口,RPN 利用該尺度窗口對特征圖進行滑窗,當交并比[13](Intersection over Union,IoU)大于或等于0.5 時,認為其為正例,并對其進行回歸。
交并比計算如式(1)所示:

式中,A為RPN 網絡生成的先驗框,B為訓練集中正確的真實框,SA∩B為A、B的重疊面積,SA∪B為A、B的并集面積。
1.1.2 ROI Align層
ROI Align 層對ROI 特征圖進行池化的操作,可以將不同大小的納米顆粒特征圖通過該層池化為固定大小的特征圖,ROI Align 算法流程如圖4 所示。

圖4 ROl Align算法流程
ROI Align 層采用的是雙線性插值的方法,主要特點是保留了浮點型坐標系,這可以避免產生量化誤差,使得納米顆粒圖像和特征圖進行一對一匹配。該算法如式(2)-(4)所示:
1)對x方向進行線性插值:

2)對y方向進行線性插值:

1.1.3 損失函數定義
MASK-RCNN 算法主要對以下三個部分進行實例分割,即納米顆粒的目標檢測定位、納米顆粒和背景的分類、納米顆粒和背景的分割。因此,損失函數包括目標檢測定位損失、納米顆粒和背景的分類損失和分割損失。因此,損失函數如式(5)所示:

納米顆粒和背景的分類損失如式(6)所示:

目標檢測的定位損失如式(8)所示:

納米顆粒和背景的分割損失即MASK 掩膜損失,使用該類別的交叉熵作為誤差值進行計算,其計算如式(10)所示:

1.1.4 訓練過程
該實驗的實例分割模型在Window10 操作系統下進行,使用Pycharm 集成開發環境對代碼進行編寫與調試,實驗環境配置如表1 所示。

表1 實驗環境配置
利用原位電鏡獲取納米顆粒結構特征的成本較高,調試時間較長,因此納米顆粒圖像數據集的圖像數量有限,為了提高納米顆粒的實例分割精度,需要對納米顆粒圖像數據集進行旋轉、移位、縮放等數據增強的操作。納米顆粒圖像的像素大小為256×256,原始數據集的張數為283 張,利用數據增強對該數據集進行數據擴充,可擴展到三千余張。其中,將80%的數據作為測試集,20%的數據作為驗證集。
深度學習框架為Tensorflow 和Keras,該深度學習框架是使用數據流圖進行數值運算的代碼庫,具有很好的通用性,常應用在機器學習等領域。本實驗使用NVIDIA 的GPU 版本,利用GPU 的性能優勢加速提高實例分割網絡模型的訓練效率。
實驗所需其他相關的包和模塊主要有OpenCVpython 和Numpy 庫,其中OpenCV 是常用于圖像處理的開源函數庫,近年來在目標檢測、物體識別等領域應用較多,Numpy 庫是用Python 實現科學計算的擴展程序庫,運行速度快,為大量矩陣運算和維度數組提供數學函數庫,該文實驗使用OpenCV 和Numpy庫進行圖像預處理等圖像處理操作。
MASK-RCNN 實例分割算法可以識別和分割出納米顆粒,同時每個納米顆粒都擁有一個唯一的標識(Identity Document,ID),連續圖像中的ID 被鏈接并在追蹤模塊中進行追蹤。在Trackpy 中,納米顆粒的位置、直徑、周長等數據特征作為追蹤參數。Trackpy 庫中使用其默認的最近鄰搜索算法,即K 維樹算法[15](K-dimension tree algorithm)來搜索實驗中每個連續掩碼中屬于同一納米顆粒的ID。文中基于PyQt 和PyQtGraph 庫的追蹤模塊GUI 開發的圖形用戶界面[16](Graphical User Interface,GUI)提供手動數據驗證,以識別出納米顆粒分割和追蹤中的潛在錯誤。通過手動合并兩個ID 來糾正錯誤分割為兩個ID 的顆粒。相比于傳統手工追蹤,此次實驗采用的納米材料追蹤模型大大減少了勞動量。同時,采用scikit-image 庫提取具有有效軌跡的每個納米顆粒的形態學參數,如半徑、周長和面積等數據信息。
追蹤模塊GUI 圖形用戶界面如圖5 所示,左側面板用于顯示原始圖像,右側面板用于顯示實例分割圖像,最右側用于顯示每個顆粒的ID,對于追蹤效果不理想的納米顆粒可手動去除。同時將追蹤結果保存到文件中,用于提取納米顆粒的直徑、面積、周長等數據信息。

圖5 追蹤模塊GUI的圖形用戶界面
利用訓練好的模型,預測整個化學反應過程納米顆粒的分割結果,測試圖像識別結果如圖6 所示。可以看出,此次實驗的算法在完成納米顆粒目標框定位的同時,實現了對納米顆粒精確定位與實例分割。

圖6 識別結果
為驗證納米顆粒追蹤器的精確性和實用性,將納米顆粒圖像的識別結果導入到追蹤器中,連續圖像中的納米顆粒ID 被鏈接并在追蹤模塊中進行實時追蹤,同時GUI圖形用戶界面為科研人員提供手動的數據驗證及顯示不同幀的跟蹤結果。如圖7 所示,分別顯示了視頻數據每一幀的原圖像和追蹤圖像。

圖7 追蹤結果
追蹤完成后,GUI 圖形用戶界面的數據處理模塊根據追蹤結果生成每個時間納米顆粒的位置坐標、直徑、面積和周長等數據信息,以供科研人員進行數據分析。對所有納米顆粒進行數據統計,得到的數據結果如圖8 所示。

圖8 納米顆粒追蹤結果
根據圖8 的數據信息,材料領域科研人員可以對納米顆粒在化學反應過程隨時間變化的結構、大小、面積、軌跡等進行分析,實時分析納米顆粒的變化,將納米材料結構實時演變與催化性能之間進行關聯,進一步揭示了納米材料結構對催化性能的影響,進而指導材料的制備與研究。
該文實驗為納米顆粒的分割和追蹤提供了可靠的定量解決方案,對納米顆粒圖像無需特殊處理,其輪廓就能被自動分割和追蹤。與傳統的手工追蹤方法相比,大大節約了工作量。通過手動校驗功能,科研人員可以對追蹤數據進行校驗,確保數據的有效性。這使得科研人員能夠以現有軟件無法提供的便利性,分析納米材料結構與催化性能之間的構效關系。