張社榮,歐陽(yáng)樂穎,王 超,王梟華
(天津大學(xué)水利工程仿真與安全國(guó)家重點(diǎn)試驗(yàn)室,天津 300350)
骨料質(zhì)量是影響混凝土質(zhì)量的關(guān)鍵因素,骨料的級(jí)配越合理,越能夠降低孔隙率,從而降低水泥用量,達(dá)到減少混凝土干縮、降低水化熱的目的[1]。當(dāng)前常用的在料堆上均勻取樣、用篩分法檢驗(yàn)級(jí)配的方法耗時(shí)較長(zhǎng),不能在骨料生產(chǎn)過程中及時(shí)反饋數(shù)據(jù)。利用傳統(tǒng)圖像分割方法進(jìn)行骨料目標(biāo)分割并計(jì)算粒徑大小,其提取的特征較為低級(jí),分割結(jié)果缺少高級(jí)語(yǔ)義信息,骨料堆積等復(fù)雜場(chǎng)景下算法的表現(xiàn)較差[2-4]。隨著深度學(xué)習(xí)方法的飛速發(fā)展,在圖像語(yǔ)義分割方面出現(xiàn)了許多優(yōu)秀的網(wǎng)絡(luò),如全卷積神經(jīng)網(wǎng)絡(luò)(FCN)[5]、U-Net網(wǎng)絡(luò)[6]、DeepLab系列網(wǎng)絡(luò)[7-9]等。FCN丟棄了以往卷積神經(jīng)網(wǎng)絡(luò)的全連接層,以全卷積層代替,再通過上采樣得到與原圖大小相等的分割圖,并通過跳層連接優(yōu)化輸出,但該網(wǎng)絡(luò)的分割效果在細(xì)節(jié)方面不太理想,且對(duì)像素分類時(shí)未充分考慮像素之間的關(guān)系,模型訓(xùn)練速度也相對(duì)較慢;U-Net網(wǎng)絡(luò)采用編碼器-解碼器形成U型架構(gòu),并采用疊操作進(jìn)行跳層連接,該網(wǎng)絡(luò)在醫(yī)學(xué)圖像分割領(lǐng)域以及小樣本數(shù)據(jù)集上取得了較好的效果,雖然網(wǎng)絡(luò)輕量訓(xùn)練速度較快,但并不適用于室內(nèi)外場(chǎng)景語(yǔ)義分割;DeepLab系列網(wǎng)絡(luò)最早由Chen等[7]在2015年提出,基于VGG16,經(jīng)過不斷的優(yōu)化與改進(jìn),并在2018年提出了DeepLabV3+[9],采用了Encoder-Decoder體系,并強(qiáng)化了Decoder,使模型整體在語(yǔ)義分割的邊緣能夠取得良好效果。除了DeepLabV3+外,上述其他算法均未對(duì)解碼器模塊進(jìn)行有效利用或僅僅使用了單一的對(duì)稱結(jié)構(gòu),丟失特征信息問題嚴(yán)重,導(dǎo)致分割結(jié)果粗糙。
語(yǔ)義分割常常應(yīng)用于工程施工過程中的表面缺陷檢測(cè)、砂石圖像分割、裂縫識(shí)別等方面。Xue等[10]對(duì)FCN進(jìn)行改進(jìn),并將改進(jìn)后的模型應(yīng)用于隧道襯砌缺陷的自動(dòng)分類與檢測(cè),檢測(cè)率為94.4%,準(zhǔn)確率為86.6%,速度達(dá)到0.266 s;朱大慶等[2]提出了一種兩階段深度學(xué)習(xí)網(wǎng)絡(luò)模型,實(shí)現(xiàn)了砂石圖像的分割,并使用歐幾里得距離公式計(jì)算砂石目標(biāo)的最長(zhǎng)徑,但階段1的骨料分割效果較差,粘連骨料較多,過于依賴階段2的分離模型;李思琦等[11]基于改進(jìn)的生成對(duì)抗網(wǎng)絡(luò)進(jìn)行建筑垃圾數(shù)據(jù)集擴(kuò)充,再利用DeepLab模型進(jìn)行參數(shù)遷移學(xué)習(xí),建立建筑垃圾語(yǔ)義分割模型,試驗(yàn)得出的平均交并比為75.32%,基本滿足建筑垃圾識(shí)別要求;王超等[12]融合輕量化卷積神經(jīng)網(wǎng)絡(luò)以及FCN搭建裂縫識(shí)別模型,并對(duì)某輸水渡槽結(jié)構(gòu)表面的裂縫寬度進(jìn)行計(jì)算。
綜上所述,將深度學(xué)習(xí)算法應(yīng)用在工程領(lǐng)域能夠得到不錯(cuò)的檢測(cè)效果,但是仍然存在模型體量過大、目標(biāo)邊緣的細(xì)節(jié)特征提取較差導(dǎo)致邊緣分割效果不好等問題。針對(duì)上述問題,本文旨在利用優(yōu)化后的DeepLabV3+網(wǎng)絡(luò)建立骨料圖像自動(dòng)分割模型(以下簡(jiǎn)稱“本文模型”),為實(shí)現(xiàn)水利工程施工中骨料粒徑大小的快速準(zhǔn)確查驗(yàn)提供參考。
本文收集了150張某水利工程不同條件下的骨料圖片進(jìn)行圖像預(yù)處理,利用模型完成對(duì)骨料輪廓特征的提取,分割各個(gè)骨料,針對(duì)骨料圖像特點(diǎn)對(duì)原始DeepLabV3+模型在激活函數(shù)、權(quán)重分配以及骨干網(wǎng)絡(luò)3個(gè)方面進(jìn)行優(yōu)化,以實(shí)現(xiàn)在減小模型體量、提高訓(xùn)練速度的同時(shí)提高模型精度的目的,并與FCN、U-Net進(jìn)行對(duì)比,以驗(yàn)證本文模型的可行性,模型構(gòu)建流程如圖1所示。
圖1 模型構(gòu)建流程
在某水利工程現(xiàn)場(chǎng)進(jìn)行拍照采集試驗(yàn)圖像,為保證試驗(yàn)數(shù)據(jù)能夠反應(yīng)最真實(shí)的數(shù)據(jù)環(huán)境,分別選擇在晴天、陰天等不同天氣及光照條件下進(jìn)行圖像拍攝,并且拍攝的砂石色澤、尺寸均不相同。數(shù)據(jù)采集設(shè)備為Canon 3D mark Ⅲ,拍攝距離為50~120 cm,拍攝角度與拍攝平面間的夾角均為90°,圖像分辨率為3 840×5 760像素。為使圖像的尺寸適合DeepLabV3+網(wǎng)絡(luò)的輸入尺寸,將收集到的數(shù)據(jù)統(tǒng)一剪裁至分辨率為512×512像素。由于數(shù)據(jù)集本身較小,采用圖像旋轉(zhuǎn)、翻轉(zhuǎn)、縮放等數(shù)據(jù)增強(qiáng)方法來擴(kuò)充數(shù)據(jù)集,因?yàn)楣橇显趫D片中目標(biāo)眾多且聚集緊湊,因此本試驗(yàn)收集圖片數(shù)量相對(duì)較少,共150張骨料圖像,按9∶1的比例隨機(jī)拆分成訓(xùn)練集和驗(yàn)證集。
由于骨料圖像具有較多噪聲,部分圖像稍有模糊,部分由于曝光導(dǎo)致骨料邊緣不夠清晰。因此,試驗(yàn)采用中值濾波以消除孤立噪聲,利用雙邊濾波在保持圖像邊緣清晰的同時(shí),進(jìn)行降噪平滑[13-14],通過圖像銳化增強(qiáng)圖像邊緣、突出骨料的輪廓,最后利用限制對(duì)比度的自適應(yīng)直方圖均衡法(CLAHE)在抑制圖像噪聲的前提下,增強(qiáng)圖像對(duì)比度。圖像處理前后對(duì)比如圖2(a)~(e)所示。將預(yù)處理之后的圖像使用Labelme進(jìn)行圖像分割標(biāo)簽標(biāo)注,而后參照PASCAL VOC2012數(shù)據(jù)集格式進(jìn)行數(shù)據(jù)集制作以滿足訓(xùn)練要求,標(biāo)注之后的圖像如圖2(f)所示。
圖2 圖像預(yù)處理
DeepLabV3+網(wǎng)絡(luò)可看作Encoder-Decoder編解碼器結(jié)構(gòu)[15],首先通過具有良好圖像級(jí)分類能力的主干特征提取網(wǎng)絡(luò),再經(jīng)過空洞空間卷積金字塔池化(atrous spatial pyramid pooling,ASPP),ASPP包含1個(gè)大小為1×1、采樣率為0的卷積核,3個(gè)大小為3×3、采樣率分別為6、12、18的膨脹卷積核,并聯(lián)全局平均池化(global average pooling,GAP)以提取多尺度語(yǔ)義信息。解碼器部分融合了從主干網(wǎng)絡(luò)中提取的特征圖、經(jīng)過ASPP模塊以及4倍上采樣之后的特征圖以確保同時(shí)具備細(xì)節(jié)特征和語(yǔ)義特征,最后再進(jìn)行4倍上采樣輸出最終分割圖片。
MobileNetV2作為典型的輕量型網(wǎng)絡(luò)[16],在含有的深度可分離卷積的基礎(chǔ)上通過反殘差單元結(jié)構(gòu)[17],使網(wǎng)絡(luò)在較少運(yùn)算量的情況下具備較高精度,并引入線性瓶頸結(jié)構(gòu),即將單元結(jié)構(gòu)的最后一個(gè)ReLU激活函數(shù)替換為線性激活函數(shù),從而保存低維空間中的特征,防止神經(jīng)元壞死。MobileNetV2單元結(jié)構(gòu)與Resnet壓縮、卷積、擴(kuò)張的順序相反,MobileNetV2擴(kuò)張、卷積、壓縮的順序計(jì)算量較小,分別為1×1卷積、3×3空間卷積、1×1卷積,首先通過提升通道數(shù)來增加特征的提取,再改用深度卷積,最后進(jìn)行降維操作,由于最后一層激活函數(shù)ReLU6[16]會(huì)破壞原有特征,故使用線性函數(shù)進(jìn)行替換。采用MobileNetV2作為骨料圖像自動(dòng)分割算法中的主干特征提取網(wǎng)絡(luò),能夠使模型滿足嵌入系統(tǒng)進(jìn)行快速檢測(cè)的需求。
骨料圖像自動(dòng)分割模型訓(xùn)練過程中,由于骨料與背景信息之間像素占比差距過大,導(dǎo)致訓(xùn)練網(wǎng)絡(luò)的原有權(quán)重?zé)o法有效地訓(xùn)練模型識(shí)別像素占比過小的背景像素。因此,本文通過計(jì)算試驗(yàn)數(shù)據(jù)集中各類標(biāo)簽的像素占比,獲得訓(xùn)練網(wǎng)絡(luò)中各類標(biāo)簽的訓(xùn)練損失權(quán)重:
(1)
式中:wj為第j類標(biāo)簽的訓(xùn)練損失權(quán)重;i為試驗(yàn)數(shù)據(jù)集中的圖像編號(hào);Nij為第i張圖像中第j類標(biāo)簽的像素?cái)?shù)。本文通過式(1)計(jì)算結(jié)果得到背景像素與骨料像素權(quán)重比為4∶1,將計(jì)算權(quán)重代替原有單一權(quán)重,從而消除標(biāo)簽像素占比差異帶來的訓(xùn)練效果差的問題。
Swish函數(shù)可視為介于線性函數(shù)與ReLU之間的平滑函數(shù),相比于ReLU,該函數(shù)在神經(jīng)網(wǎng)絡(luò)中能夠?qū)崿F(xiàn)更高的測(cè)試準(zhǔn)確率,且收斂速度較快、非單調(diào)、函數(shù)以及其一階導(dǎo)數(shù)均具有平滑特性的特點(diǎn)。DeepLabV3+使用的激活函數(shù)ReLU具有當(dāng)輸入值小于0時(shí)權(quán)重產(chǎn)生無法更新的缺陷。因此,基于骨料圖像數(shù)據(jù)特點(diǎn),測(cè)試對(duì)比多種激活函數(shù)在MobileNetV2作為骨干網(wǎng)絡(luò)的DeepLabV3+網(wǎng)絡(luò)中訓(xùn)練1 000步時(shí)總損失(total_loss)的收斂效果(圖3),Swish激活函數(shù)配合批標(biāo)準(zhǔn)化(batch normalization,BN)層(Swish+BN)在激活函數(shù)中表現(xiàn)效果最好,比ReLU+BN的損失小0.0174,因此最終選擇Swish+BN。
圖3 多種激活函數(shù)訓(xùn)練收斂效果
試驗(yàn)使用5種激活函數(shù)進(jìn)行訓(xùn)練,得到的訓(xùn)練結(jié)果如表1所示,當(dāng)使用Swish+BN作為激活函數(shù)時(shí),權(quán)重優(yōu)化后的DeepLabV3+網(wǎng)絡(luò)訓(xùn)練出來的模型在分割骨料時(shí)有最好的表現(xiàn)效果。
表1 不同激活函數(shù)的訓(xùn)練結(jié)果對(duì)比
骨料圖像自動(dòng)分割試驗(yàn)所使用的操作系統(tǒng)為Windows 10,處理器為Intel(R)Core(TM)i7-6700 CPU,內(nèi)存16GB,顯卡為NVIDIA GeForce GT 730,版本為461.92,CUDA采用9.0版本,cuDNN版本為6.0。試驗(yàn)中涉及網(wǎng)絡(luò)均使用TensorFlow深度學(xué)習(xí)框架,程序在PyCharm中使用Python3.6進(jìn)行編寫。
將預(yù)處理后的骨料數(shù)據(jù)集進(jìn)行試驗(yàn),選擇MobileNetV2作為主干特征提取網(wǎng)絡(luò),Swish作為激活函數(shù),并將骨料與背景的權(quán)重比按照式(1)計(jì)算,最終設(shè)置為1∶4,優(yōu)化器使用隨機(jī)梯度下降(SGD),權(quán)重衰減為0.000 04,批量大小為12,迭代次數(shù)為30 000,學(xué)習(xí)策略使用Poly,初始學(xué)習(xí)率為0.000 1,動(dòng)量為0.9。
為了衡量網(wǎng)絡(luò)性能,采用交并比(intersection over union,IoU)和平均交并比(mean intersection over union,MIoU)作為評(píng)價(jià)指標(biāo)對(duì)試驗(yàn)結(jié)果進(jìn)行對(duì)比分析。交并比表示該模型對(duì)某一標(biāo)簽真實(shí)值與預(yù)測(cè)值兩個(gè)集合的交集與并集之比[18]。平均交并比常常被用作準(zhǔn)確度評(píng)價(jià)的標(biāo)準(zhǔn)度量,即真實(shí)值集合與預(yù)測(cè)值集合的交集與并集之比。
3.4.1不同主干特征網(wǎng)絡(luò)對(duì)比分析
為確定最適合DeepLabV3+的主干特征網(wǎng)絡(luò),試驗(yàn)分別使用MobileNetV2、Xception、Resnet101作為主干特征網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其損失變化曲線如圖4所示。由圖可以看出,與MobileNetV2相比,使用Resnet101和Xception的模型總損失的收斂速度較慢;使用MobileNetV2的模型在訓(xùn)練1萬步時(shí)總損失即可達(dá)到0.4,并開始逐漸趨于穩(wěn)定,而使用Resnet101和Xception的模型則需要在1萬步訓(xùn)練后損失才到0.5,且即使開始趨于穩(wěn)定,仍偶爾有較大震蕩出現(xiàn),訓(xùn)練最終總損失也較使用MobileNetV2的模型稍高。綜上所述,使用MobileNetV2作為主干特征網(wǎng)絡(luò),收斂速度快,精度較高。
圖4 不同主干特征網(wǎng)絡(luò)訓(xùn)練損失變化
試驗(yàn)使用3種不同的主干特征網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到的訓(xùn)練結(jié)果如表2所示,當(dāng)使用MobileNetV2作為主干特征網(wǎng)絡(luò)時(shí),DeepLabV3+訓(xùn)練出來的模型在分割骨料時(shí)表現(xiàn)最好,其骨料交并比能夠達(dá)到0.861 5,平均交并比達(dá)到0.757 6。
表2 不同主干特征網(wǎng)絡(luò)的訓(xùn)練結(jié)果對(duì)比
3.4.2不同深度學(xué)習(xí)方法對(duì)比分析
為驗(yàn)證本文模型的有效性,在相同試驗(yàn)條件下對(duì)目前常用的深度學(xué)習(xí)語(yǔ)義分割方法U-Net、DeepLabV3+、FCN進(jìn)行對(duì)比試驗(yàn),訓(xùn)練得到的部分圖像對(duì)比結(jié)果如圖5所示,計(jì)算得到的評(píng)價(jià)指標(biāo)的交并比及平均交并比如表3所示。由圖5可以看出,使用同樣的數(shù)據(jù)集進(jìn)行訓(xùn)練,U-Net訓(xùn)練出的模型識(shí)別準(zhǔn)確率低于其他網(wǎng)絡(luò),F(xiàn)CN訓(xùn)練出的模型對(duì)于骨料的邊緣細(xì)節(jié)識(shí)別效果比DeepLabV3+、本文模型要差,DeepLabV3+以及本文模型識(shí)別效果均較為突出,且都能夠識(shí)別出GroundTruth中存在的部分未作標(biāo)記的骨料,但DeepLabV3+訓(xùn)練出的模型對(duì)于細(xì)節(jié)的分割稍遜于本文模型。
圖5 不同語(yǔ)義分割方法訓(xùn)練圖像對(duì)比
表3 不同語(yǔ)義分割方法的訓(xùn)練結(jié)果對(duì)比
由表3可以看出,U-Net模型雖然訓(xùn)練速度較快,且模型本身具有結(jié)構(gòu)簡(jiǎn)單、易于定制的優(yōu)點(diǎn),但其骨料交并比較低,為0.796 9,且模型大小比DeepLabV3+大了45.4MB,不適用于嵌入系統(tǒng)進(jìn)行骨料圖像快速分割;FCN模型雖然訓(xùn)練速度比DeepLabV3+和本文模型快,但是其骨料交并比較低,為0.772 9,且模型大小過大,也不適用于骨料圖像分割;DeepLabV3+相比于U-Net、FCN的骨料交并比、平均交并比都較高,但都較本文模型稍低,且模型大小比本文模型大3.4 MB,訓(xùn)練速度比本文模型慢0.63 s/步;經(jīng)對(duì)比,本文模型骨料交并比達(dá)到0.861 5,平均交并比達(dá)到0.757 6,明顯優(yōu)于其他模型,且模型大小也最小,僅為16.2 MB,內(nèi)存占用空間很小,因此處理骨料圖像分割任務(wù)的性能最佳。
3.4.3粒徑計(jì)算結(jié)果對(duì)比分析
為進(jìn)一步驗(yàn)證模型的準(zhǔn)確性,以某水利工程現(xiàn)場(chǎng)拍攝骨料為例,采用本文模型分割后計(jì)算得到的粒徑級(jí)配分布與傳統(tǒng)篩分法得到的粒徑級(jí)配分布進(jìn)行對(duì)比,如表4所示。使用Python-OpenCV,通過Python腳本,以最小外接矩形的短邊長(zhǎng)度等效為骨料篩分粒徑大小,對(duì)相機(jī)進(jìn)行標(biāo)定以確定其標(biāo)定系數(shù)。將骨料顆粒近似為橢球體,以各粒徑級(jí)別累計(jì)體積比計(jì)算級(jí)配,最終統(tǒng)計(jì)結(jié)果如表4所示,可以看出,使用本文模型得到的粒徑計(jì)算結(jié)果的平均誤差不超過20%,基本滿足工程要求。
表4 本文模型與傳統(tǒng)篩分法粒徑計(jì)算結(jié)果對(duì)比
對(duì)于模型的實(shí)際測(cè)試速度方面,為了提高模型運(yùn)行效率,在導(dǎo)入3 840×5 760像素分辨率的圖片時(shí),首先利用Python腳本將較大的圖片自動(dòng)分割為1 024×1 024像素分辨率的圖像集,再分別導(dǎo)入模型中進(jìn)行分割,平均每張圖片分割時(shí)間為4.54 s,能夠快速分割骨料圖像,較傳統(tǒng)篩分法篩分骨料效率高。
a.基于優(yōu)化DeepLabV3+網(wǎng)絡(luò)建立了骨料圖像自動(dòng)分割模型。在針對(duì)某水利工程的實(shí)驗(yàn)中,骨料交并比達(dá)到0.861 5,平均交并比達(dá)到0.757 6,相比其他常用語(yǔ)義分割算法模型,在保證較好的模型大小及訓(xùn)練速度的情況下,本文模型具有更好的分割效果。
b.對(duì)比多種激活函數(shù)在DeepLabV3+網(wǎng)絡(luò)中的訓(xùn)練效果,發(fā)現(xiàn)使用Swish+BN作為激活函數(shù)時(shí)網(wǎng)絡(luò)的訓(xùn)練收斂速度最快,同樣在1 000步時(shí),Swish+BN函數(shù)下網(wǎng)絡(luò)的總損失具有最小值,收斂效果最好,能夠更好地進(jìn)行骨料特征提取。
c.基于DeepLabV3+網(wǎng)絡(luò),使用MobileNetV2作為主干特征網(wǎng)絡(luò),選擇Swish+BN作為激活函數(shù),并將原始統(tǒng)一權(quán)重按照計(jì)算出的各標(biāo)簽占比進(jìn)行重新分配,優(yōu)化后的網(wǎng)絡(luò)與原始DeepLabV3+以及使用其他主干特征網(wǎng)絡(luò)的DeepLabV3+進(jìn)行對(duì)比試驗(yàn),發(fā)現(xiàn)優(yōu)化后的網(wǎng)絡(luò)具有更高的平均交并比以及骨料交并比,更適合骨料圖像的自動(dòng)分割。
d.本文模型通過骨料輪廓等特征,對(duì)圖像進(jìn)行像素級(jí)的分類,準(zhǔn)確性較高,基本滿足后續(xù)骨料粒徑級(jí)配計(jì)算的需要,為實(shí)現(xiàn)料場(chǎng)骨料生產(chǎn)質(zhì)量實(shí)時(shí)檢測(cè)、反饋與控制打下應(yīng)用基礎(chǔ)。骨料邊緣的特征提取尚存在進(jìn)一步優(yōu)化的空間。