王 灃
(福建省建筑工程質量檢測中心有限公司)
門窗圖紙有掃描文檔、印刷圖集、CAD電子圖集等多種展現(xiàn)方式,這些格式可統(tǒng)一轉換為掃描文檔。本文最終的型材樣本數據集為各種圖紙的掃描件。基于深度學習的門窗圖紙識別的難點在于數據樣本的獲取,也就是圖紙的收集,還有圖紙的標注,以及合適的圖像預處理方式。實現(xiàn)人工智能識別圖紙,有兩種處理方法,圖像分類和目標檢測。本文提出的問題需要在同一個圖紙中對多個目標分別進行檢測,所以屬于目標檢測的范疇。
本文建立了采用回歸算法的深度學習模型,即是基于 YOLO網絡的目標檢測模型,針對門窗數據樣本不足的問題,使用了GAN網絡進行遷移預訓練,利用Generator模型生成的圖片數據,預訓練YOLO模型,同時利用了數據增強的方法對數據集進行擴增。使用擴增后的數據集對模型進行調整訓練,防止模型過擬合情況的發(fā)生,增強檢測網絡對各種型材的識別能力。
門窗由是各種型材組合而成的一個整體。推拉窗包含上滑、下滑、邊封、上方、下方、光企、勾企,平開窗包含窗扇、窗框、中挺等。本文主要對推拉窗的型材進行識別。如下圖所示,圖(1)展示了邊封,圖(2)為勾企,圖(3)展示了下滑,圖(4)展示了上滑。
本文使用鋁合金型材生產商的門窗圖集,以及門窗檢測工作中收集的門窗三項物理性能檢測圖,制作了鋁合金推拉窗型材數據集,數據集包含了福建省南平鋁業(yè)股份有限公司、福建省閩發(fā)鋁業(yè)股份有限公司、福州奮安鋁業(yè)有限公司、廣東鳳鋁鋁業(yè)有限公司、廣東興發(fā)鋁業(yè)有限公司、肇慶亞洲鋁廠有限公司、廣東堅美鋁業(yè)有限公司等1200張具有各種尺寸的門窗大樣圖,節(jié)點圖,型材斷面圖的圖紙數據。使用Labelimg軟件,通過手動標注的方式對門窗圖紙進行型材的位置標注,主要標注了邊封、勾企、下滑、上滑等型材。
隨著人工神經網絡的不斷進步,在圖像識別領域,利用卷積神經網絡對檢測圖像的特征進行抽取,分類,是現(xiàn)在深度學習領域通用做法。其中目標檢測算法中,YOLO網絡通過一個神經網絡,端到端就可以實現(xiàn)目標的檢測。而在 YOLO之前圖像檢測算法SPP-NET,FAST-RCNN,FASTER-RCNN首先需要依據候選區(qū)域,統(tǒng)計出很多可能含有識別目標的潛在邊框,再識別其中是否包含物體和物體的類別,這樣增加了計算的復雜性,也耗費了更多檢測時間。
YOLOv3網絡是YOLO網絡的最新版本,采用darknet-53或者tiny-darknet作為基礎神經網絡框架,可以輸出多個尺度的特征圖,它借鑒了FPN特征金字塔,分別在尺度為13×13、26×26、52×52的特征圖上對目標進行預測,通過對前述3個尺度特征圖的檢測和張量的拼接,增強了對精細目標的識別能力,因此對神經網絡的整體性能有了很大提升。
YOLOv3的網絡由很多個包含卷積層、BN層,以及Leaky Relu激活層的基本組件構成。對于一張輸入圖像,首先將圖像大小變換為416×416,作為神經網絡的輸入,然后通過基礎神經網絡對圖像進行特征的提取和張量的Add操作,接著對生成的不同尺度的特征圖,進一步進行卷積計算,通過對上采樣后的結果與前一層得到的結果進行張量的Concat拼接,再經過一系列卷積、批標準化處理、激活等操作之后,在不同尺度特征圖上進行目標識別,最后通過檢測層輸出目標的位置和類別。
門窗型材由于沒有公共的數據集,而通過個人收集標注的數據集規(guī)模較小,神經網絡無法得到足夠的訓練。本文嘗試利用生成式對抗網絡生成新的型材圖紙數據集,通過遷移訓練應用到門窗模型中。
生成式對抗網絡GAN,通過學習輸入的數據集分布,然后生成相似性分布的數據集。首先給予噪聲變量Z,生成模型通過將它映射為新的數據集合,接著由判別模型計算真實數據分布與生成數據分布之間的近似程度。判別模型訓練自身參數使生成數據分布遠離其分類面,直到最終生成模型輸出的數據,判別模型無法區(qū)分生成圖像和真實圖像。
本文利用ACGAN對型材數據集進行學習,ACGAN和GAN相比在于:1、輸入數據不同,GAN只有噪聲Z作為輸入變量,ACGAN同時需要輸入分類變量。2、輸出數據不同,GAN輸出只判斷圖片真假,ACGAN在判斷圖片真假,同時判斷圖片所屬類別。
本文在Keras框架實現(xiàn)ACGAN,首先通過Embedding層的輸出和噪聲進行相乘,然后將型材類別信息融合到噪聲里面。最后使用兩個損失函數分別對應之前的兩個輸出,兩個損失函數加起來的結果就是總的損失函數。
ACGAN訓練結束后,對生成的型材圖像也進行位置標注,生成預訓練數據集。預訓練型材數據集與真實型材圖像非常相近,也分類為上滑、下滑、邊封、勾企等。訓練過程中首先使用生成數據集對模型進行初始的訓練操作,再將訓練生成的模型使用真實型材數據集進行訓練,最后生成型材識別網絡。
為了防止模型過擬合,需要對訓練的鋁合金型材數據集進行數據增強,通用的做法有:
圖像旋轉,通過旋轉原始圖像,使得圖像中的方向發(fā)生改變。翻轉變換,對原始圖像沿著水平或垂直方向進行翻轉??s放變換,對原始圖像按固定的比例進行放大或者變小。平移增強,不變換圖像的形狀和大小,平移原始圖像的方位。尺度變換,是使用圖像Filter變換原始圖像模糊程度或圖像大小,使用一個或多個卷積核,通過卷積操作對圖像進行改變。對比度變換,保持色像H分量不變,改變飽和度S和亮度V,變換對比度。噪聲擾動,對原始圖像的RGB通道增加隨機噪聲,比如添加椒鹽噪聲和高斯噪聲,使圖像產生變化。
本文對標注的型材數據集數據增強使用的方法主要包括圖像旋轉、翻轉變換、平移增強、亮度對比度變換,噪聲擾動等。
本文中型材識別訓練過程如圖(6)所示:
圖(6)型材識別訓練過程
經數據擴增后,原始型材數據集及實驗型材數據集包含型材類別數目如表1所示,同時由表1中檢測準確率數據可知,當無預訓練步驟時,檢測模型對上滑檢測的平均準確率為 0.88,對下滑檢測的平均準確率 0.87,對勾企檢測的平均準確率0.88,邊封檢測的AP為0.84,模型對窗型材的識別率不高,尤其是對邊封的識別率,由于型材數據集樣本不均衡,型材的樣本數量偏少,模型無法充分學習到型材特征,識別效果有限。使用數據增強和ACGAN對抗網絡,進行型材數據擴增,生成新的型材數據集并進行遷移學習后,檢測模型對型材檢測的平均準確率由0.87,提高了10.0%。在識別時間上,兩種模型的圖像的識別時間都是12ms,有很高的識別效率,符合圖紙實時識別的要求,型材識別效果如圖(7)所示。
圖(7)
表1 型材數據分布和檢測準確率
下滑5012000 2000 2000勾企211邊封356
AP統(tǒng)計ACGAN遷移預訓練YOLO模型和無預訓練的原始數據模型對型材的檢測平均準確率(Average Precision,AP),結果如表2所示。
images/BZ_146_1290_557_1645_600.pngimages/BZ_146_1647_557_1944_600.png YOLOimages/BZ_146_1290_602_1645_645.png images/BZ_146_1647_602_1944_645.png0.88images/BZ_146_1290_647_1645_690.png images/BZ_146_1647_647_1944_690.png0.87images/BZ_146_1290_692_1645_735.png images/BZ_146_1647_692_1944_735.png0.88images/BZ_146_1290_737_1645_780.png images/BZ_146_1647_737_1944_780.png0.84
本文闡述了門窗型材識別方法,包括識別模型的訓練,數據集擴增和ACGAN對抗模型的訓練。實驗結果表明,基于 YOLO的人工智能型材識別模型,在識別精度上和識別速度上都能獲得非常優(yōu)秀的效果。對型材測試集,進行測試統(tǒng)計,取得了97%的準確率。未來可以在增加型材訓練樣本的多樣性,增加不同的型材類別,提高型材樣本質量和數據上,進行深入研究。