張 哲,邵允學(xué),呂 剛
1(南京工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211816)
2(上海策立工程技術(shù)有限公司,上海 201900)
鋼鐵作為國內(nèi)的支柱產(chǎn)業(yè),對(duì)于我國的經(jīng)濟(jì)發(fā)展具有推動(dòng)作用,在建筑、航空航天、交通、橋梁等多個(gè)領(lǐng)域都要有著重要的角色地位.然而,國內(nèi)大部分的鋼鐵生產(chǎn)流程中還存在人工勞動(dòng)強(qiáng)度大、成本高,生產(chǎn)效率低,自動(dòng)化和智能化程度不足等問題.以臺(tái)架上鋼坯被推到軌道這個(gè)過程為例,當(dāng)前生產(chǎn)流程需要依靠人眼觀察鋼坯在臺(tái)架上的位置分布,然后手動(dòng)控制推鋼機(jī)到達(dá)指定位置,然后手動(dòng)控制將對(duì)應(yīng)鋼坯推向軌道.這個(gè)流程人工工作強(qiáng)度大、易疲勞,生產(chǎn)工作效率較低.
計(jì)算機(jī)視覺作為人工智能領(lǐng)域的重要組成部分,主要作為模仿人類視覺功能的工具,通過對(duì)目標(biāo)圖像進(jìn)行特征提取并加以分析理解,最終實(shí)現(xiàn)對(duì)目標(biāo)的分類識(shí)別.目前計(jì)算機(jī)視覺是一個(gè)廣泛而復(fù)雜的研究領(lǐng)域,其技術(shù)已經(jīng)應(yīng)用于眾多領(lǐng)域的研究以及生活生產(chǎn)環(huán)境中.計(jì)算機(jī)視覺主要的任務(wù)有圖像分類[1]、目標(biāo)分割[2]、圖像定位[3,4]、目標(biāo)檢測(cè)[5,6]、語義分割[7]等.目標(biāo)分割作為本文的研究課題,傳統(tǒng)的方法包括閾值法[8,9]、邊界檢測(cè)法[10]、區(qū)域法[11]等.近些年隨著深度學(xué)習(xí)算法的發(fā)展[12],目標(biāo)分割等機(jī)器視覺任務(wù)都有了長(zhǎng)足的進(jìn)步.
本文的主要?jiǎng)?chuàng)新點(diǎn)在于對(duì)ResNet 網(wǎng)絡(luò)中的殘差塊進(jìn)行改進(jìn); 并采用U-Net 網(wǎng)絡(luò)的設(shè)計(jì)思路,把整個(gè)網(wǎng)絡(luò)分成特征提取部分與上采樣兩個(gè)部分.本文搭建的網(wǎng)絡(luò)模型充分利用了兩者的優(yōu)點(diǎn),相關(guān)內(nèi)容將在以下章節(jié)進(jìn)行詳細(xì)介紹.
深度學(xué)習(xí)的發(fā)展為計(jì)算機(jī)視覺這一領(lǐng)域提供了諸多解決方案,帶來魯棒性、精確度更高的模型算法.作為深度學(xué)習(xí)的主要模型,卷積神經(jīng)網(wǎng)絡(luò)(CNN)由于其出色的特征提取能力,近些年流行用于計(jì)算機(jī)視覺領(lǐng)域.卷積神經(jīng)網(wǎng)絡(luò)相較于常規(guī)的神經(jīng)網(wǎng)絡(luò)模型.卷積神經(jīng)網(wǎng)絡(luò)可以在計(jì)算機(jī)視覺領(lǐng)域中取得成功有兩個(gè)重要的原因: 首先它利用了2D 圖像結(jié)構(gòu)和在鄰域內(nèi)的像素具有高度相關(guān)性的性質(zhì),此外它的體系結(jié)構(gòu)依賴于特征共享,因此每個(gè)通道(或輸出特征映射)都是通過卷積在所有位置使用相同大小的濾波器生成的; 其次是它引入了池化層的操作,提供了一定程度的平移不變性,減少了因位置變化給模型帶來的影響,池化操作還可以擴(kuò)大網(wǎng)絡(luò)的感受野,使得網(wǎng)絡(luò)可以看到更大部分的輸入.
AlexNet[13]由Krizhevsky 等人設(shè)計(jì),作為2012年ILSVRC 競(jìng)賽的冠軍網(wǎng)絡(luò),取得top-5 錯(cuò)誤率為15.3%的成績(jī).AlexNet 的成功使得計(jì)算機(jī)視覺領(lǐng)域的研究人員開始廣泛采用卷積神經(jīng)網(wǎng)絡(luò)模型并不斷對(duì)其結(jié)構(gòu)進(jìn)行改進(jìn),取得了巨大的突破.AlexNet 的成功在于該網(wǎng)絡(luò)首次利用GPU 進(jìn)行網(wǎng)絡(luò)加速訓(xùn)練; 使用了ReLU 激活函數(shù),代替了傳統(tǒng)的Sigmoid 激活函數(shù)以及tanh 激活函數(shù); 使用了LRN 局部響應(yīng)歸一化; 在全連接層的前兩層中使用了Dropout 隨機(jī)失活神經(jīng)元操作,以減少過擬合.AlexNet 該模型一共分為8 層,5 個(gè)卷積層,以及3 個(gè)全連接層,在每一個(gè)卷積層中包含了ReLU激活函數(shù)以及局部響應(yīng)歸一化(LRN)處理,然后再經(jīng)過降采樣(池化處理)降低輸出特征圖的大小.
VGGNet[14]在2014年由牛津大學(xué)著名研究組VGG (visual geometry group)提出,在ILSVRC 競(jìng)賽上取得top-5 錯(cuò)誤率為6.8%的成績(jī).VGGNet 網(wǎng)絡(luò)最大的特點(diǎn)設(shè)計(jì)通過組合和堆疊3×3 卷積核濾波器,對(duì)輸入進(jìn)行高效的特征提取.相較卷積核大小為5×5 和7×7 的卷積,VGG 通過組合多個(gè)3×3 卷積核實(shí)現(xiàn)了相同的感受野,并且連續(xù)小卷積核的卷積比單個(gè)大的卷積核的卷積具有更好的非線性.常見的VGG 網(wǎng)絡(luò)有VGG-13、VGG-16、VGG-19,網(wǎng)絡(luò)層數(shù)分別為13 層、16 層、19 層.
ResNet[15]在2015年由微軟研究院的He 等人提出,斬獲當(dāng)年ILSVRC 競(jìng)賽分類任務(wù)第一名和目標(biāo)檢測(cè)第一名.ResNet 首次在卷積神經(jīng)網(wǎng)絡(luò)中引入了殘差連接,解決了隨著網(wǎng)絡(luò)加深而網(wǎng)絡(luò)性能卻越來越差的問題,構(gòu)造了一個(gè)超過100 層的卷積神經(jīng)網(wǎng)絡(luò)模型.提出的殘差塊結(jié)構(gòu)成功地解決了因網(wǎng)絡(luò)層數(shù)的簡(jiǎn)單堆疊導(dǎo)致的梯度消失、梯度爆炸 、退化問題等一系列問題.
殘差塊結(jié)構(gòu)如圖1 所示.其中x表示殘差塊的輸入,F(x)表示殘差塊中隱層輸出,ReLU表示激活函數(shù),F(x)+x表示殘差單元輸出.殘差單元內(nèi)部連接Batch Norm 層對(duì)數(shù)據(jù)進(jìn)行規(guī)范處理,此層實(shí)現(xiàn)了權(quán)重參數(shù)的歸一化.
圖1 殘差塊結(jié)構(gòu)
U-Net[16]提出的初衷是為了解決醫(yī)學(xué)圖像分割的問題,解決細(xì)胞層面的分割的任務(wù),在2015年的ISBI cell tracking 比賽中獲得了多項(xiàng)第一.U-Net 是基于FCN[17]改進(jìn)而得的一種全卷積網(wǎng)絡(luò),結(jié)構(gòu)類似于U 型,因此得名為U-Net.相較于FCN,U-Net 在采用上采樣方法的基礎(chǔ)上,使用對(duì)稱結(jié)構(gòu)去搭建網(wǎng)絡(luò)框架.
如圖2 所示[16],U-Net 網(wǎng)絡(luò)由左側(cè)的特征提取部分與右側(cè)的上采樣部分組成,這種結(jié)構(gòu)稱做編碼器-解碼器結(jié)構(gòu).其中,每個(gè)藍(lán)色矩形代表一個(gè)多通道的特征圖;藍(lán)色矩形頂部的數(shù)字代表的是通道數(shù),左側(cè)數(shù)字是指特征圖的長(zhǎng)度和寬度; 白色矩形代表從特征提取部分復(fù)制過來的特征圖; 不同顏色的箭頭代表不同的操作.特征提取部分是一個(gè)下采樣的過程,使用最大池化層來操作; 上采樣部分則是一個(gè)上采樣的過程,采用2×2 的上卷積(Up-Conv),每次上卷積的輸出通道都是原先的一半,再與特征提取部分中對(duì)應(yīng)的特征圖拼接在一起使得通道數(shù)與原先大小相同.U-Net 由于其出色的性能和適中的模型規(guī)模,其逐漸成為最廣泛使用的分割網(wǎng)絡(luò)并不斷進(jìn)行著改進(jìn).
圖2 U-Net 網(wǎng)絡(luò)模型
鋼坯在臺(tái)架上的移動(dòng)定位需要去確認(rèn)鋼坯的當(dāng)前位置以及鋼坯數(shù)量.現(xiàn)場(chǎng)采集畫面如圖3 所示,鋼坯呈等寬的長(zhǎng)條狀,且相較垂直于移動(dòng)方向的角度偏移較小,故可簡(jiǎn)化成用在圖像的移動(dòng)方向的中線上去表示分割結(jié)果.
圖3 現(xiàn)場(chǎng)采集畫面
實(shí)現(xiàn)思路如圖4 所示.本方法將原始圖像輸入設(shè)計(jì)的目標(biāo)分割網(wǎng)絡(luò)進(jìn)行運(yùn)算,輸出預(yù)測(cè)向量.預(yù)測(cè)向量表示中線各像素為鋼坯的預(yù)測(cè)值,高于閾值即為鋼坯.線端中黑色線條表示向量中為鋼坯的區(qū)間,灰色線條表示為其他物體的區(qū)間.之后將向量轉(zhuǎn)換成目標(biāo)坐標(biāo),其中,xil和xir表示中線處鋼坯分割結(jié)果的端點(diǎn)值,i表示鋼坯數(shù)量,l和r分別代表鋼坯的左端點(diǎn)和右端點(diǎn).
圖4 實(shí)現(xiàn)思路示意圖
本文采用U-Net 中編碼器-解碼器的思想,以ResNet為基礎(chǔ)使用殘差連接構(gòu)造了基礎(chǔ)模塊,構(gòu)建了本文的Res-UNet.其中編碼器的基礎(chǔ)塊設(shè)計(jì)沿用了ResNet 中的設(shè)計(jì): 使用了卷積核大小為3 的卷積層,每個(gè)卷積層后進(jìn)行BatchNorm 和ReLU,塊與塊之間使用殘差連接.解碼器的基礎(chǔ)塊中使用雙線性插值的方法對(duì)輸入特征圖進(jìn)行上采樣的操作,這一操作使得特征圖的空間維度擴(kuò)大一倍,其余部分由卷積核大小為3 的卷積層組成并使用BatchNorm 和ReLU.整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)類似于U-Net 的設(shè)計(jì),分為特征提取部分和上采樣部分,考慮到本文的輸入圖片尺寸較大,本文在特征提取部分中使用了更多的基礎(chǔ)模塊來實(shí)現(xiàn)下采樣.本文的改進(jìn)殘差塊如圖5 所示.
圖5 改進(jìn)殘差塊
本文模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖6 所示,由前端的特征提取部分以及后端的上采樣部分組成.特征提取部分由7 組本文的改進(jìn)殘差塊并聯(lián)組成,每次的輸出矩陣的尺寸寬度和高度為輸入的一半,通道數(shù)增加一倍.上采樣部分由5 組復(fù)制拼接操作和改進(jìn)殘差塊交替銜接組成,最后連接的輸出塊輸出最終的分割向量.上采樣部分的復(fù)制拼接操作是對(duì)前一個(gè)殘差塊的輸出矩陣以及特征提取部分同層的輸出矩陣進(jìn)行復(fù)制拼接操作,此操作輸出矩陣作為下次上采樣部分殘差塊的輸入矩陣.上采樣部分的殘差塊使用和特征提取部分相同的殘差塊.
圖6 本文模型網(wǎng)絡(luò)結(jié)構(gòu)
此模型最后的網(wǎng)絡(luò)模塊為輸出塊,網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示.本文設(shè)計(jì)的輸出塊使用全局平均池化層以及之前的若干層卷積層共同替代了全連接層,有效地減少了參數(shù)量,最終輸出矩陣尺寸為1600×1×1.矩陣第一維的參數(shù)表示對(duì)應(yīng)圖像中線像素位置的預(yù)測(cè)鋼坯的預(yù)測(cè)值.之后,此預(yù)測(cè)向量按照閾值量化成用1 和0 表示的向量,若為1 認(rèn)定此處像素為鋼坯,為0 為其他物體.
圖7 輸出塊網(wǎng)絡(luò)結(jié)構(gòu)
本文所采用的數(shù)據(jù)集是從某鋼廠真實(shí)生產(chǎn)環(huán)境中收集的.在搭建好相機(jī)和光源后,本文通過樣本采集程序1 s 采集1 張現(xiàn)場(chǎng)的照片,總共采集1 周時(shí)間,然后對(duì)保存的照片進(jìn)行篩選,最后總共得到48 125 張有效圖像樣本,將其中的45 050 張用來作為訓(xùn)練樣本,3 075張用來作為測(cè)試樣本.
在樣本標(biāo)定過程中,本文采用自己開發(fā)的標(biāo)定軟件對(duì)所有樣本進(jìn)行標(biāo)定.標(biāo)定軟件如圖8 所示,其中設(shè)計(jì)亮暗調(diào)節(jié)按鈕調(diào)節(jié)標(biāo)定樣本的亮度,方便標(biāo)注人員對(duì)亮度不均勻的樣本進(jìn)行標(biāo)定.圖中線條為圖像垂直方向中線,即本任務(wù)方法的基準(zhǔn)線.線段中的深色部分表示此位置有鋼坯,白色部分表示沒有鋼坯,當(dāng)有多段鋼坯時(shí)以不同灰度線段交替排列,方便標(biāo)注人員觀察.標(biāo)定結(jié)果為每小段鋼坯會(huì)保存為與圖像同名的TXT文本文件,標(biāo)定輸出為每小段鋼坯的中線位置歸一化后的坐標(biāo)值.
圖8 數(shù)據(jù)樣本及標(biāo)注軟件
計(jì)算平臺(tái)搭載Intel Xeon Gold 5118 處理器,64 GB內(nèi)存,NVIDIA GeForce RTX 2080 Ti 11 GB 顯卡(CUDA版本為11.3); 深度學(xué)習(xí)框架采用PyTorch 1.6.0.設(shè)計(jì)的訓(xùn)練策略使用均方損失函數(shù)(MSELoss)作為損失函數(shù),使用AdaGrad 優(yōu)化算法作為優(yōu)化器,設(shè)置初始的學(xué)習(xí)率為0.001,訓(xùn)練迭代次數(shù)epoch 設(shè)為100.根據(jù)計(jì)算平臺(tái)硬件環(huán)境,訓(xùn)練策略設(shè)置batch size 為32.主要參數(shù)如表1 所示.
表1 實(shí)驗(yàn)環(huán)境及訓(xùn)練主要參數(shù)
本文采用像素準(zhǔn)確率(pixel accuracy,PA)作為評(píng)價(jià)指標(biāo),衡量本文的目標(biāo)分割模型性能.
像素準(zhǔn)確率指在某一類別中,像素點(diǎn)中正確分割的像素?cái)?shù)量和圖像像素總量的比例,如式(1)所示:
其中,pij表示將第i類分成第j類的像素?cái)?shù)量(所有像素?cái)?shù)量).像素準(zhǔn)確率用于衡量模型在某一類別上的目標(biāo)分割效果,數(shù)值越大,模型在此類別上的分割能力越強(qiáng).
Res-UNet 模型訓(xùn)練耗時(shí)約25 h,總參數(shù)為300 836個(gè),最終的識(shí)別定位準(zhǔn)確率達(dá)99.7%.
訓(xùn)練如圖9 所示,在訓(xùn)練幾個(gè)周期后,損失函數(shù)的值收斂速度很快,從0.010 直接降為0.002 左右.通過繼續(xù)學(xué)習(xí),損失函數(shù)的值繼續(xù)下降,并穩(wěn)定在0.001 左右,并最終收斂.測(cè)試集訓(xùn)練損失函數(shù)最后降到0.002 5左右且不斷震蕩,通過實(shí)驗(yàn)發(fā)現(xiàn)在大約30 個(gè)周期達(dá)到收斂,最終的準(zhǔn)確率約為99.75%.
圖9 Res-UNet 模型在訓(xùn)練集和測(cè)試集上的訓(xùn)練結(jié)果
為了測(cè)試所用網(wǎng)絡(luò)模型的性能,將本文Res-UNet模型與經(jīng)典U-Net 模型進(jìn)行對(duì)比實(shí)驗(yàn).采用相同的訓(xùn)練策下,經(jīng)典U-Net 模型訓(xùn)練準(zhǔn)確率如圖10 所示,最終在測(cè)試集的識(shí)別定位準(zhǔn)確率達(dá)99.725%.本文所用網(wǎng)絡(luò)模型和經(jīng)典U-Net 模型在網(wǎng)絡(luò)參數(shù)量、訓(xùn)練耗時(shí)以及評(píng)價(jià)指標(biāo)的對(duì)比如表2 所示.
圖10 經(jīng)典U-Net 模型在訓(xùn)練集和測(cè)試集上的訓(xùn)練結(jié)果
表2 兩種網(wǎng)絡(luò)的分割結(jié)果對(duì)比
從表2 可以得出本文的網(wǎng)絡(luò)相比于傳統(tǒng)的U-Net網(wǎng)絡(luò)在性能取得提升的前提下,大大降低了網(wǎng)絡(luò)的參數(shù)量,其參數(shù)量?jī)H約為U-Net 的70%,這大大提高了本文網(wǎng)絡(luò)的訓(xùn)練速度,使得本文網(wǎng)絡(luò)的訓(xùn)練時(shí)間僅約為U-Net 網(wǎng)絡(luò)訓(xùn)練時(shí)間的30%.同時(shí)在PA評(píng)價(jià)指標(biāo)比較下,本文Res-UNet 性能提高了約60%.綜上對(duì)比結(jié)果可知,本文所采用的網(wǎng)絡(luò)模型相較于傳統(tǒng)的分割網(wǎng)絡(luò)取得顯著的性能提升.
在訓(xùn)練測(cè)試集時(shí),本文用預(yù)測(cè)結(jié)果對(duì)原圖像進(jìn)行處理,中間黑色線段處為鋼坯預(yù)測(cè)位置,結(jié)果如圖11所示,精確定位了鋼坯在導(dǎo)軌上的位置.再將模型部署到生產(chǎn)環(huán)境中,模型準(zhǔn)確率滿足鋼坯在軌道上移動(dòng)的定位需求.
圖11 分割結(jié)果
針對(duì)工廠生產(chǎn)環(huán)境中對(duì)鋼坯的傳輸定位,本文提出了基于ResNet 殘差塊和U-Net 的改進(jìn)Res-UNet 網(wǎng)絡(luò)模型,該模型在軌道鋼坯定位場(chǎng)景中進(jìn)行訓(xùn)練與應(yīng)用的準(zhǔn)確率達(dá)99%以上.本文網(wǎng)絡(luò)相較于傳統(tǒng)分割網(wǎng)絡(luò)在性能取得提升的前提下大大減少了網(wǎng)絡(luò)模型的訓(xùn)練參數(shù)量并加快了網(wǎng)絡(luò)的訓(xùn)練時(shí)間,有效降低了訓(xùn)練模型的難度.實(shí)驗(yàn)結(jié)果表明,本文網(wǎng)絡(luò)模型識(shí)別準(zhǔn)確率高、速度快,能夠滿足復(fù)雜的生產(chǎn)環(huán)境中鋼坯定位的需要.