韋振宇 羅祉婧 鄭荻凡 曾澤楷 鐘漢斌
(1.西安石油大學化學化工學院,陜西 西安 710065;2.西安石油大學西安市高碳資源低碳化利用重點實驗室,陜西 西安 710065)
計算流體力學(Computational Fluid Dynamics,CFD)通過計算機編程對化工反應器內的復雜流動行為進行數值模擬。相較于試驗研究,CFD 模擬具有投資少、結果全面的優點,且不受測試手段的限制,但對工業規模反應器的CFD 模擬或多參數的CFD 優化,仍需大量時間。近年來,隨著人工智能技術的快速發展,深度學習已逐步應用于CFD模擬中,能有效提高CFD 的模擬效率。例如,Ouyang等[1]提出一種基于CFD 和人工神經網絡(artificial neural network,ANN)的混合模擬過程,根據固相動量和體積分數的誤差來完成CFD 模擬和ANN 預測的切換,從而使CFD 模擬節省了40%的時間。Xie等[2]基于卷積神經網絡(Conventional Neural Network,CNN)和長短期記憶神經網絡(Long Short-Term Memory,LSTM)來建立預測模型,能很好地預測液-固流化床中的混合和分離行為,與原來的CFD-DEM 模擬相比,該模型節約了90%~95%的計算時間。雖然已有的研究在不同程度上均加快了CFD模擬的計算過程,但CFD模擬的工況設置及結果處理仍需大量的人工操作,且對個人經驗的依賴較大。因此,通過人工智能來實現CFD模擬操作的智能化是提高研究人員工作效率的關鍵。
要實現CFD模擬的智能化,就要先解決CFD軟件界面的高精度識別問題,為后續自動化和智能化操作奠定基礎。目前,CNN 和LSTM 被廣泛用于文字識別中。例如,江楊心[3]基于CNN 和LSTM 來構建中文發票識別模型,該模型的準確率達到88.2%。吳雪等[4]基于數據增強的卷積神經網絡構建4 層火災識別模型,該模型包括3 層卷積池化層和1 層全連接層,并對數據增強后的數據集進行仿真。在經過2 000 次迭代訓練后,該模型在測試集上的準確率為92.51%。蘇云濤等[5]利用LSTM 算法建立了復雜環境下的車牌識別[6]模型,通過實際采集到的車牌數據對該模型進行驗證,試驗結果表明,該模型的識別準確率高、運行效率快。以上這些研究均體現出文字識別應用具有廣泛性[6-11]。而在化工方面,雖有相關流體識別[12]及圖像重構[13]等的研究成果,但缺乏對CFD軟件界面文字識別的研究。
因此,本研究基于卷積神經網絡和雙向長短期記憶神經網絡,建立CFD 軟件界面識別模型,生成符合CFD模擬實際操作場景的數據集,并將其用于對模型的訓練中,最終通過數據增強、再訓練等技術實現對CFD模擬軟件界面的有效識別。
基于深度學習的文本識別的步驟如下,即預處理、特征提取、序列建模、預測轉錄。其中,較為典型的網絡是CRNN 網絡[3],如圖1 所示。CRNN 網絡由卷積神經網絡(Conventional Neural Network,CNN)、雙向長短期記憶神經網絡(Bi-directional Long Short-Term Memory Network,Bi-LSTM)及連接時序分類器(Connectionist Temporal Classification,CTC)組成。

圖1 CRNN網絡結構
在CRNN 網絡中,CNN 層用于提取文本特征序列。由于文本任務中的卷積網絡關注更多的是圖像的局部信息,缺乏長依賴的聯系能力,只依靠卷積網絡,難以挖掘出文本之間的上下文聯系。因此,可在CRNN 網絡結構中的CNN 層后接入Bi-LSTM,用來增強文本的上下文聯系,還能有效解決長序列訓練過程中梯度消失和梯度爆炸問題。為有效解決對同一字符可能多次預測的問題,同時提高預測精度,CRNN 網絡通過接入含有獨特合并序列機制的CTC 來去除重復字符,通過CTC 引入blank字符,能有效避免合并本身存在的字符。
本研究在飛槳(PaddlePaddle)深度學習框架的基礎上對模型進行訓練。模型的CNN部分以MobiletNetV3 網絡為骨干,其優勢在于模型體積小,對網絡訓練和推理所需的計算資源更少。模型具體配置見表1。設置模型最大迭代次數為500、批處理大小為64、初始學習率為0.000 5。采用Cosine學習率衰減策略可逐步減少學習率大小,從而使模型能盡快收斂。同時,使用自適應動量估計(Adaptive moment estimation,Adam)對模型進行優化,并采用L2正則化防止模型過擬合。

表1 訓練配置
在數據集建立過程中,創建自定義數據集CFDataSet,創建流程如圖2 所示。首先,根據CFD 軟件界面內容及配置文件來確定界面內容的組成形式,并建立相應的字體文件和配套的字典文件。其次,從字典文件中隨機抽取出相應長度的字符串,并將其導入到PIL 庫中,在相應尺寸及背景下生成帶有字體樣式的文本圖片,試驗中共生成約250 000 個文本圖片及相應文本標簽。最后,根據劃分比例來隨機抽取相應數量的文本圖片及標簽,并移動到單獨文件夾中,據此生成訓練集、驗證集、測試集,并將其用于對模型的訓練及測試中。

圖2 圖片生成流程
此外,對該模型的訓練還會用到公開數據集ICDAR2015(Incidental Scene Text Challenge)。其訓練集的樣本數量為1 000、測試集的樣本數量為500。由于采集到的數據集中的字符區域形狀多為任意四邊形,在模型訓練中加入ICDAR2015 公開數據集,能有效增強輸入數據的多樣性,提高模型的泛化能力。
在加入ICDAR2015 公開數據集豐富數據的同時,利用數據增強技術對自建數據集CFDataSet 進行擴充,對原始圖片進行變換處理(如隨機裁剪、顏色干擾、隨機噪聲、模糊等),可增強圖片的多樣性。該方法能有效解決模型訓練易出現的過擬合問題,從而增強模型的泛化能力。本研究采取的數據增強手段如圖3 所示。①圖片模糊。隨機使用高斯濾波、均值濾波、中值濾波對圖片進行模糊處理。②隨機裁剪。隨機裁剪掉原始圖片部分邊界。③圖片扭曲。對原始圖片的線條進行一定程度的彎曲畸變。④仿射變換。對原始圖片進行旋轉、縮放、平移、剪切。

圖3 數據增強手段
為突出PaddleOCR 處理圖片的能力,同時也可讓試驗更具參照性。首先,對開源Tesseract 識別引擎與PaddleOCR 識別CFD 界面內容的效果進行對比。其次,利用飛槳開發的識別框架PaddleOCR 來建立模型,并對其進行訓練。試驗結果表明,利用PaddleOCR 識別套件開發出的模型能實現對CFD界面的高精度識別。
2.1.1 文本檢測。以CFD 界面區域為例,對Tesseract 與PaddleOCR 的直接識別效果進行對比,結果如圖4 所示。圖4(a)為CFD 界面,圖4(b)為Tesseract 檢測結果,圖4(c)為PaddleOCR 采用DBnet 網絡的檢測結果。通過對比Tesseract 與PaddleOCR的直接識別效果可知,Tesseract檢測級別為字符級,PaddleOCR 檢測級別為單詞級別檢測過程。字符級別的檢測要求是將每一個字符都單獨分割出來,對檢測要求更高,如果一個字符未被檢測出或連續幾個字符未被分割開,會對識別精度產生較大的影響。PaddleOCR 只是將單詞區域檢測出來,對檢測精度的要求不高。但從圖4(c)的檢測效果來看,“Solution”和“Results”對象未被檢測出,這是因為PaddleOCR 基礎模型并未根據實際應用情況進行微調整,說明PaddleOCR模型有待改進。

圖4 Tesseract與PaddleOCR檢測對比
2.1.2 文本識別。由于軟件界面的內容豐富,在識別過程中,Tesseract 和PaddleOCR 均出現對圖標符號誤識別的情況,但PaddleOCR 對圖標符號的處理會更好。Tesseract 與PaddleOCR 的識別對比如圖5 所示。此外,因Tesseract 存在不少弊端,尤其是對深色背景及分辨率不高的圖片識別時,Tesseract的錯誤率更高,這是因為在文字檢測過程中,字符未被完全檢測出,導致識別錯誤率高,甚至無識別內容。雖然其有配套的校正工具jTessBoxEditor,但其對文字的校正過程過于煩瑣,且效率不高,導致對深色背景及分辨率不高的圖片幾乎無法校正。“Parallel”深色圖片的校正過程如圖6 所示。校正后的識別結果為“ee ey”,可見其校正并未改善識別結果。因此,Tesseract 未被應用于CFD 軟件界面的識別中。而在PaddleOCR 檢測識別中,即使存在著少量的遺漏情況,但通過大量圖片訓練,也能輕易改善這種情況,從而實現高精度識別目標。

圖5 Tesseract與PaddleOCR識別對比

圖6 Tesseract校正及結果
在PaddleOCR 訓練模型中,使用預訓練模型en-number-mobile-v2.0可加快訓練進程,這是飛槳團隊公開的英文識別模型。同時,在3 種數據集模式下,即公開數據集ICDAR2015、自建數據集(CFDataSet)及二者的組合,分別對PaddleOCR 模型進行訓練,并對得到的三種模型(CFD-m-1、CFD-m-2、CFD-m-3)進行評估,結果見表2。

表2 PaddleOCR訓練模型對比
由表2 可知,基于ICDAR2015 數據集訓練得到的模型(CFD-m-1),因訓練場景不適合實際應用場景,且訓練容量較少,導致其對CFD 界面幾乎無法識別。基于CFD 界面所建立的數據集(CFData-Set),用其訓練出的模型CFD-m-2 對CFD 界面的識別效果明顯提高。同時,CFDataSet、ICDAR2015數據集融合訓練所得到的模型(CFD-m-3),因訓練數據復雜度更高、模型泛化能力更強,識別精度也得到進一步提高。后續需要繼續增強數據集的容量及復雜度,并優化模型參數,從而改善模型的識別效果。
本研究基于CFD 軟件界面內容創建了多尺寸、多背景、多字體的數據集,并利用數據增強技術來增強數據集的多樣性,能有效防止模型出現過擬合的問題。基于自建數據集和公開數據集訓練得到的模型,因數據集在內容及組成形式豐富且復雜,模型泛化能力更強,可明顯提高CFD模擬軟件界面的識別精度。本研究初步實現了對CFD 模擬軟件界面的高精度識別,為實現CFD模擬操作的智能化奠定重要基礎。