国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進(jìn)YOLOv5算法的鋼筋端面檢測(cè)①

2022-05-10 08:39張運(yùn)楚孫紹涵張漢元
關(guān)鍵詞:端面計(jì)數(shù)聚類(lèi)

王 超,張運(yùn)楚,2,孫紹涵,張漢元,2

1(山東建筑大學(xué) 信息與電氣工程學(xué)院,濟(jì)南 250101)

2(山東省智能建筑技術(shù)重點(diǎn)實(shí)驗(yàn)室,濟(jì)南 250101)

鋼筋作為不可或缺的結(jié)構(gòu)材料,廣泛應(yīng)用于建筑、橋梁、交通等基建行業(yè).無(wú)論是鋼筋生產(chǎn)過(guò)程、還是施工現(xiàn)場(chǎng),對(duì)鋼筋進(jìn)行準(zhǔn)確計(jì)數(shù)是必不可少的環(huán)節(jié).

在鋼筋生產(chǎn)過(guò)程中,經(jīng)軋制、冷卻、剪切生產(chǎn)的散狀鋼筋,在傳送鏈床上進(jìn)行計(jì)數(shù)分鋼、收集打捆、卸料,然后對(duì)每捆鋼筋數(shù)量進(jìn)行復(fù)核計(jì)數(shù)、稱(chēng)重,最后掛牌入庫(kù).散狀鋼筋常采用視頻動(dòng)態(tài)計(jì)數(shù),通過(guò)融合多幀視頻圖像中鋼筋端面檢測(cè)和跟蹤結(jié)果來(lái)實(shí)現(xiàn).成捆鋼筋的復(fù)核計(jì)數(shù),則通過(guò)檢測(cè)單幀圖像中鋼筋端面的數(shù)量來(lái)完成,準(zhǔn)確度要求高,以捆為單位不低于98%,同時(shí)檢測(cè)時(shí)間應(yīng)小于100 ms/捆.在施工現(xiàn)場(chǎng),需對(duì)進(jìn)場(chǎng)成捆鋼筋的數(shù)量進(jìn)行復(fù)驗(yàn),目前多采用人工計(jì)數(shù),勞動(dòng)強(qiáng)度大、工作效率低、出錯(cuò)率高,無(wú)法滿足智慧工地的管理要求.

視覺(jué)成捆鋼筋計(jì)數(shù)技術(shù)的關(guān)鍵,在于對(duì)鋼筋端面的檢測(cè)與分割,主要有基于傳統(tǒng)圖像處理的鋼筋計(jì)數(shù)方法和基于深度學(xué)習(xí)的鋼筋計(jì)數(shù)方法.

基于傳統(tǒng)圖像處理的鋼筋計(jì)數(shù)方法主要利用圖像增強(qiáng)、濾波、閾值分割進(jìn)行鋼筋端面檢測(cè)和計(jì)數(shù)[1],或者對(duì)預(yù)處理后的圖像進(jìn)行模板覆蓋以及空間相關(guān)性計(jì)算對(duì)鋼筋端面進(jìn)行檢測(cè)計(jì)數(shù)[2].羅山等人[3]利用二值化后圖像的面積法對(duì)成捆鋼筋的根數(shù)進(jìn)行統(tǒng)計(jì),臧晶等人[4]首先利用雙邊濾波算法去噪聲.然后采用最大類(lèi)間方差(Otsu)算法對(duì)鋼筋端面分割,再使用連通區(qū)域法對(duì)鋼筋進(jìn)行標(biāo)記.袁中錦等人[5]運(yùn)用直方圖均衡化增強(qiáng)對(duì)比度后,再用高斯模板計(jì)算空間相關(guān)性,使鋼筋截面特征更加顯著,通過(guò)統(tǒng)計(jì)相關(guān)矩陣中的二維局部極大值點(diǎn)個(gè)數(shù)來(lái)得到最終計(jì)數(shù).

近年來(lái),基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)在目標(biāo)檢測(cè)領(lǐng)域得到了快速發(fā)展,如YOLOv3[6]、YOLOv4[7]、YOLOv5、SSD[8]等單步目標(biāo)檢測(cè)算法和Fast R-CNN[9]、Faster R-CNN[10]等兩步目標(biāo)檢測(cè)算法.

石京磊[11]利用卷積神經(jīng)網(wǎng)絡(luò)與紅外相機(jī)對(duì)鋼筋進(jìn)行靜態(tài)與動(dòng)態(tài)檢測(cè),通過(guò)改進(jìn)ResNeXt101 網(wǎng)絡(luò)獲得了一種級(jí)聯(lián)式目標(biāo)候選頭網(wǎng)絡(luò)對(duì)成捆鋼筋端面進(jìn)行靜態(tài)檢測(cè)和計(jì)數(shù).Wu 等人[12]通過(guò)深度學(xué)習(xí)語(yǔ)義分割來(lái)實(shí)現(xiàn)鋼筋計(jì)數(shù),對(duì)弱監(jiān)督標(biāo)注的數(shù)據(jù)集訓(xùn)練語(yǔ)義分割,主干網(wǎng)絡(luò)采用改進(jìn)的U-net預(yù)測(cè)3 層不同的mask,推斷得到語(yǔ)義分割二值圖像,再使用輪廓提取算法找到各個(gè)鋼筋端面.謝海楨[13]提出了基于全卷積網(wǎng)絡(luò)的密集多目標(biāo)識(shí)別算法MSFCN,在自建數(shù)據(jù)集上準(zhǔn)確率和召回率均達(dá)到95%以上,相較傳統(tǒng)算法精準(zhǔn)度高出10%.唐楚柳[14]提出了一種由Inception-RFB-FPN 和改進(jìn)ResNet34-FCN 組成的SWDA-CNN 網(wǎng)絡(luò)用于鋼筋計(jì)數(shù),實(shí)驗(yàn)表明該網(wǎng)絡(luò)提高了定位精度并節(jié)省推理時(shí)間.明洪宇等人[15]提出了一種基于RetinaNet 目標(biāo)檢測(cè)框架,采用基于EM 算法的高斯混合聚類(lèi)方法解決檢測(cè)歧義,改進(jìn)后的模型mAP值為93%.王志丹[16]基于Faster R-CNN 算法利用微調(diào)后的預(yù)訓(xùn)練模型對(duì)增強(qiáng)后的數(shù)據(jù)集進(jìn)行訓(xùn)練,得到98.3% 的mAP值,較原始Faster R-CNN 提高了2.1%,但該模型的計(jì)算復(fù)雜度較高,在實(shí)際應(yīng)用中難以達(dá)到實(shí)時(shí)檢測(cè).

由于剪切的鋼筋端面顏色接近,打捆后擠在一起,彼此之間界線不顯著,且端面參差不齊、面積大小不一、形狀不很規(guī)則等原因,基于傳統(tǒng)圖像處理的鋼筋計(jì)數(shù)方法準(zhǔn)確度和魯棒性難以提高.基于深度學(xué)習(xí)的單步目標(biāo)檢測(cè)算法對(duì)密集小目標(biāo)的漏檢率較高,兩步目標(biāo)檢測(cè)算法的實(shí)時(shí)性差.

本研究主要應(yīng)用于兩大場(chǎng)景,第一是鋼筋生產(chǎn)企業(yè)入庫(kù)復(fù)檢,倉(cāng)庫(kù)的環(huán)境通常是一個(gè)整體偏暗的環(huán)境,需要燈帶進(jìn)行打光,除了需要打光之外在某些比較苛刻的工況下,需要定制固定的工位來(lái)進(jìn)行檢測(cè),真實(shí)場(chǎng)景如自建數(shù)據(jù)集所示;第二是建筑工地計(jì)數(shù),卡車(chē)運(yùn)載著大量的鋼筋進(jìn)場(chǎng),現(xiàn)場(chǎng)的驗(yàn)收人員需要對(duì)其進(jìn)行盤(pán)點(diǎn),該場(chǎng)景中拍照角度存在偏移,現(xiàn)場(chǎng)光照的不均,拍攝距離的遠(yuǎn)近不同導(dǎo)致鋼筋面存在尺度不一致,真實(shí)場(chǎng)景如公共數(shù)據(jù)集所示.

本文提出一種基于改進(jìn)YOLOv5 的鋼筋端面識(shí)別計(jì)數(shù)算法,主要貢獻(xiàn)如下:

(1)提出一種半自動(dòng)數(shù)據(jù)標(biāo)注方法,在公開(kāi)數(shù)據(jù)集DataFountain 鋼筋盤(pán)點(diǎn)競(jìng)賽數(shù)據(jù)集上訓(xùn)練YOLOv5 初始模型,對(duì)工廠環(huán)境下的自建數(shù)據(jù)集進(jìn)行檢測(cè)標(biāo)注,自動(dòng)生成標(biāo)注文件,然后進(jìn)行手工校正,大大提升數(shù)據(jù)集的標(biāo)注效率.

(2)通過(guò)增加采樣融合擴(kuò)大特征圖的尺度、增加模型檢測(cè)層個(gè)數(shù)、改變SPP 模塊在主干網(wǎng)絡(luò)中的位置,獲取更充足的端面紋理特征,豐富端面間輪廓信息,提升端面識(shí)別率.

(3)在公開(kāi)數(shù)據(jù)集與自建數(shù)據(jù)集上與多個(gè)主流檢測(cè)算法進(jìn)行消融實(shí)驗(yàn)(ablation experiment),改進(jìn)后的算法平均精度均值mAP達(dá)99.9%,高于所有其他模型,比原始YOLOv5 模型提升了1.1%,精準(zhǔn)度Precision達(dá)95%,召回率Recall達(dá)99.8%.

1 YOLOv5 的改進(jìn)及鋼筋端面檢測(cè)

本節(jié)對(duì)成捆鋼筋端面檢測(cè)的難點(diǎn)進(jìn)行了總結(jié)并簡(jiǎn)要闡述了單階段YOLO 系列檢測(cè)算法框架,對(duì)YOLOv5初步實(shí)驗(yàn)后存在的問(wèn)題進(jìn)行分析,并提出改進(jìn)思路.

1.1 成捆鋼筋端面的特點(diǎn)及檢測(cè)難點(diǎn)

成捆鋼筋的端面一種密集型小目標(biāo),在檢測(cè)時(shí)具有目標(biāo)類(lèi)別單一、目標(biāo)分布較為集中、彼此區(qū)分度低等特點(diǎn).采用深度學(xué)習(xí)模型對(duì)成捆鋼筋端面進(jìn)行檢測(cè)計(jì)數(shù)會(huì)面臨以下難點(diǎn):

(1)鋼筋端面尺寸不一.鋼筋端面直徑視規(guī)格型號(hào)差距較大,本文涉及鋼筋端面直徑在12-32 mm 之間.

(2)每捆鋼筋數(shù)量差異較大,視鋼筋規(guī)格型號(hào)有95、290、380 根.

(3)應(yīng)用場(chǎng)景復(fù)雜.拍攝的距離、角度和光線不完全受控,切割端面形狀差異較大、端面銹蝕顏色和亮度差異較大且存在邊界粘連,部分鋼筋端面竄出或縮進(jìn)造成遮擋等問(wèn)題.

(4)計(jì)數(shù)精度和準(zhǔn)確度要求高.鋼筋產(chǎn)量和使用基數(shù)很大,如果檢測(cè)結(jié)果中出現(xiàn)了誤檢和漏檢,需要人工從大量的標(biāo)記點(diǎn)中找出.只有達(dá)到極高的計(jì)數(shù)精度和準(zhǔn)確度,才能保證驗(yàn)收人員的使用體驗(yàn).

1.2 YOLO 系列目標(biāo)檢測(cè)框架

YOLO 系列為單步目標(biāo)檢測(cè)框架,對(duì)輸入圖像直接進(jìn)行分類(lèi)概率回歸和包圍框坐標(biāo)回歸實(shí)現(xiàn)目標(biāo)檢測(cè).從YOLOv3 開(kāi)始摒棄了池化層和全連接層,使用Darknet53 代替Softmax 對(duì)目標(biāo)特征進(jìn)行多尺度預(yù)測(cè).YOLOv4 是對(duì)YOLOv3的改進(jìn),網(wǎng)絡(luò)結(jié)構(gòu)主要包括主干特征提取網(wǎng)絡(luò)CSPDarknet53、空間金字塔池化(SPP[17])、路徑聚合網(wǎng)絡(luò)(PANet[18]),同時(shí)使用了多種數(shù)據(jù)增強(qiáng)技術(shù)來(lái)提升檢測(cè)性能,相較于YOLOv3 模型mAP值提升10%.2020年Ultralytics 發(fā)布了YOLOv5,其性能與YOLOv4 相當(dāng)?shù)评硭俣雀?且模型框架更便于工程部署.YOLOv5 使用C3Darknet 作為主干網(wǎng)絡(luò)從輸入圖像中提取豐富的信息特征,使用PANet作為Neck 來(lái)聚合特征,模型檢測(cè)層與YOLOv3 相同,Conv 卷積模塊的激活函數(shù)采用SiLU[19]函數(shù).此外,YOLOv5 通過(guò)設(shè)置depth_multiple 和width_multiple 兩個(gè)參數(shù)調(diào)節(jié)主干網(wǎng)絡(luò)的深度和寬度并劃分出4 個(gè)量級(jí)的模型:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x.

1.3 YOLOv5算法與改進(jìn)方式

由于鋼筋數(shù)據(jù)集中鋼筋端面分布密集、類(lèi)內(nèi)差異較大、鋼筋端面半徑小且不統(tǒng)一,因此采用YOLOv5x這個(gè)較深層次的網(wǎng)絡(luò)作為原始檢測(cè)模型.

1.3.1 K-means 聚類(lèi)錨點(diǎn)框

YOLOv5算法中,預(yù)測(cè)部分分為3 個(gè)特征層,每個(gè)特征層含有3 個(gè)大小不同的先驗(yàn)框,先驗(yàn)框是通過(guò)Kmeans 聚類(lèi)算法對(duì)數(shù)據(jù)集中標(biāo)注檢測(cè)目標(biāo)聚類(lèi)得到的.在聚類(lèi)過(guò)程中,通過(guò)隨機(jī)化初始K個(gè)聚類(lèi)中心位置、計(jì)算目標(biāo)標(biāo)注框與聚類(lèi)中心點(diǎn)的交并比、分配交并比最大的聚類(lèi)中心、重新計(jì)算聚類(lèi)中心、直到聚類(lèi)中心不再發(fā)生改變.最終聚類(lèi)好K個(gè)先驗(yàn)錨點(diǎn)框(anchor)的寬、高.具體的目標(biāo)函數(shù)D為:

式中,boxi為檢測(cè)目標(biāo)中的第i個(gè)標(biāo)注框的區(qū)域面積;cenj是第j個(gè)聚類(lèi)中心的區(qū)域面積;boxi∩cenj為標(biāo)注框與聚類(lèi)中心區(qū)域交集的面積;n為檢測(cè)目標(biāo)的數(shù)量,k為聚類(lèi)中心個(gè)數(shù).

聚類(lèi)時(shí)以準(zhǔn)確率(Accuracy)作為聚類(lèi)結(jié)果的評(píng)價(jià)指標(biāo),計(jì)算公式為:

使用K-means 算法對(duì)自建鋼筋數(shù)據(jù)集的真實(shí)包圍框進(jìn)行聚類(lèi)來(lái)確定性能最佳的K值,結(jié)果由圖1所示.當(dāng)K=12 時(shí),Accuracy=91.57,指標(biāo)處于較好性能.圖2給出了K值分別為6、9、12、15 時(shí)數(shù)據(jù)集的真實(shí)框聚類(lèi)結(jié)果圖.

圖1 Accuracy-K 折線圖

圖2 樣本包圍框K-means 聚類(lèi)可視化圖

1.3.2 改進(jìn)YOLOv5算法

在自建數(shù)據(jù)集上對(duì)原始YOLOv5 模型進(jìn)行初步實(shí)驗(yàn),自建數(shù)據(jù)集的構(gòu)建將在第2 節(jié)介紹,訓(xùn)練參數(shù)設(shè)置將在第3.1 節(jié)給出,模型評(píng)價(jià)指標(biāo)詳見(jiàn)第1.4 節(jié).

訓(xùn)練結(jié)果如圖3所示,由曲線圖可以看到精準(zhǔn)度只有80% 左右,當(dāng)IOU值為0.5 時(shí)的平均精度均值(mAP)為98.8%.對(duì)測(cè)試集進(jìn)行檢測(cè)的結(jié)果如圖4 和圖5所示,圖中部分遮擋目標(biāo)存在漏檢和誤檢情況,原因是YOLOv5 模型只有3 個(gè)檢測(cè)層各對(duì)應(yīng)3 組初始化anchor,當(dāng)輸入圖像尺寸為640×640 時(shí),主干網(wǎng)絡(luò)C3Darknet 第3 層對(duì)應(yīng)的檢測(cè)層大小為80×80,此時(shí)該層對(duì)應(yīng)的感受野最小,只能用來(lái)檢測(cè)大小在8×8 以上的目標(biāo).主干網(wǎng)絡(luò)第5 層對(duì)應(yīng)的檢測(cè)層的大小為40×40,只能用來(lái)檢測(cè)尺度在16×16 以上的目標(biāo).主干網(wǎng)絡(luò)第7 層對(duì)應(yīng)的檢測(cè)層的大小為20×20,此時(shí)對(duì)應(yīng)的感受野最大,只能用來(lái)檢測(cè)32×32 以上的目標(biāo).

圖3 原始YOLOv5 模型訓(xùn)練曲線圖

圖4 模型自建數(shù)據(jù)集檢測(cè)效果圖

圖5 Data Fountain 數(shù)據(jù)集檢測(cè)效果圖

因此,當(dāng)被檢測(cè)目標(biāo)尺度小于8×8 時(shí),無(wú)法被檢測(cè)器準(zhǔn)確檢測(cè)到,為了避免這種情況,在Neck 結(jié)構(gòu)的第17 層后,繼續(xù)對(duì)特征圖進(jìn)行上采樣等處理,使特征圖繼續(xù)擴(kuò)大,同時(shí)在Neck 第20 層,將獲取到的大小為160×160 的特征圖與主干網(wǎng)絡(luò)第2 層特征圖進(jìn)行Concat 融合,以此獲取更大的特征圖進(jìn)行小目標(biāo)檢測(cè).改進(jìn)后的YOLOv5-P2 模型結(jié)構(gòu)如圖6所示,其中主干Backbone 紅色箭頭加粗虛線是新增采樣對(duì)應(yīng)于Head 層160×160 預(yù)測(cè)頭.由K-means 算法對(duì)數(shù)據(jù)集聚類(lèi)得到效果最佳的K值為12,當(dāng)anchor 的數(shù)量為12時(shí)能夠得到更精確的anchor 的寬高值.所以網(wǎng)絡(luò)模型改進(jìn)思路的正確性得到初步驗(yàn)證.

為了找到適配數(shù)據(jù)的最佳感受野大小,另一種改進(jìn)方法是把SPP 模塊當(dāng)作變量,添加在主干網(wǎng)絡(luò)的不同位置.本文在主干網(wǎng)絡(luò)第6 層與第7 層之間加入SPP模塊,增大感受野提取重要的特征,來(lái)提升鋼筋端面小目標(biāo)檢測(cè)精度.SPP 模塊置于位置如圖6 加粗紅色虛線處所示,得到改進(jìn)的YOLOv5-SPP 模型.

圖6 改進(jìn)后的 YOLOv5-P2 模型網(wǎng)絡(luò)結(jié)構(gòu)圖

1.3.3 YOLOv5 改進(jìn)模型損失函數(shù)

損失函數(shù)反映了預(yù)測(cè)框與真實(shí)框之間的差值,是衡量檢測(cè)模型性能的重要指標(biāo).YOLOv5 模型中損失函數(shù)Loss包括預(yù)邊界損失函數(shù)Lbox、置信度損失函數(shù)Lconf、分類(lèi)損失函數(shù)Lcls,因此損失函數(shù)可以表示為:

式中,λbox、λconf、λcls分別是坐標(biāo)損失權(quán)重,置信度損失權(quán)重和分類(lèi)損失權(quán)重.

式中,Ci表示預(yù)測(cè)框的置信度得分,表示真實(shí)框的置信度得分;分別代表第i個(gè)單元的第j個(gè)錨點(diǎn).

分類(lèi)損失函數(shù)采用二值交叉熵?fù)p失,損失函數(shù)公式為:

其中,c是當(dāng)前檢測(cè)到的目標(biāo)類(lèi)別,classes是所有目標(biāo)類(lèi)別;和pi(c)分別是預(yù)測(cè)類(lèi)別和真實(shí)類(lèi)別.

1.4 檢測(cè)模型評(píng)價(jià)指標(biāo)

mAP(mean average precision)是多個(gè)驗(yàn)證集的平均精度均值,在目標(biāo)檢測(cè)任務(wù)中作為衡量檢測(cè)精度的重要指標(biāo).AP(average precision)為平均精度,是P-R(precision-recall)曲線與坐標(biāo)軸圍成的面積值.P-R 曲線是以Recall和Precision作為橫縱坐標(biāo)的二維曲線.Precision和Recall的定義如式(7)和式(8):

式中,TP為正確劃分為鋼筋的數(shù)量,FP為錯(cuò)誤劃分為鋼筋的數(shù)量,FN為被錯(cuò)誤地劃分為非鋼筋的數(shù)量.

繪制P-R 曲線來(lái)計(jì)算單個(gè)類(lèi)的AP值,再計(jì)算各類(lèi)AP值的平均值,得到整個(gè)模型的mAP值:

式中,p為準(zhǔn)確率,r為召回率,C為類(lèi)別總數(shù).本文是對(duì)鋼筋的單類(lèi)目標(biāo)檢測(cè),所以計(jì)算所得AP值就是mAP

除了mAP外,目標(biāo)檢測(cè)算法的另一個(gè)重要性能指標(biāo)是速度.衡量速度的一個(gè)常用指標(biāo)是每秒幀數(shù)(FPS),即每秒可以處理的圖片數(shù)量.

2 數(shù)據(jù)集的構(gòu)造及增強(qiáng)

2.1 數(shù)據(jù)集的獲取

本文使用的數(shù)據(jù)集由兩部分組成,一部分是由Data Fountain 的智能盤(pán)點(diǎn)鋼筋數(shù)量AI 識(shí)別比賽標(biāo)注好的數(shù)據(jù)集,共有標(biāo)注圖片250 張,圖片規(guī)格是2666×2000;另一部分是自建的企業(yè)私有數(shù)據(jù)集,使用HIKVISION攝像機(jī)拍攝鋼廠鏈條上成捆鋼筋所得,共有未標(biāo)注的圖片958 張,圖片規(guī)格為1600×1200.

2.2 數(shù)據(jù)集的半自動(dòng)標(biāo)注方式

鋼筋數(shù)據(jù)集手工標(biāo)注耗時(shí)費(fèi)工,為提高工作效率,本文利用已經(jīng)標(biāo)注好的智能盤(pán)點(diǎn)鋼筋數(shù)據(jù)集,訓(xùn)練得到初步模型,然后使用該模型檢測(cè)未標(biāo)注的自建數(shù)據(jù)集,生成XML 標(biāo)注文件,再使用LabelImg 數(shù)據(jù)集標(biāo)注軟件進(jìn)行手工修正標(biāo)注框,以防止漏標(biāo)和誤標(biāo),如圖7.

圖7 圖像半自動(dòng)標(biāo)注示例

2.3 數(shù)據(jù)集增強(qiáng)

原始數(shù)據(jù)集共有1 208 張圖像,為避免模型訓(xùn)練產(chǎn)生過(guò)擬合,本文采用數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù)集.通過(guò)水平/垂直鏡像、亮度/色彩調(diào)節(jié)、隨機(jī)裁剪等方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,并自動(dòng)生成擴(kuò)充后的XML 標(biāo)注文件,最終的數(shù)據(jù)集被擴(kuò)充為3 295 張圖像.圖8 給出了數(shù)據(jù)增強(qiáng)得到的樣本及其自動(dòng)標(biāo)注示例.

圖8 數(shù)據(jù)增強(qiáng)得到的樣本及其自動(dòng)標(biāo)注

2.4 數(shù)據(jù)集劃分

本文使用數(shù)據(jù)集中包含了日間室外逆光、順光和夜晚室內(nèi)燈帶打光等場(chǎng)景.

將數(shù)據(jù)集以8:1:1 比例劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集.選取數(shù)據(jù)集中2 636 幅圖像作為訓(xùn)練數(shù)據(jù)集,選取未經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的圖片330 張作為測(cè)試集.對(duì)劃分的訓(xùn)練集真實(shí)目標(biāo)分布情況進(jìn)行可視化,結(jié)果如圖9所示.

圖9 訓(xùn)練集的目標(biāo)分布統(tǒng)計(jì)圖

3 實(shí)驗(yàn)及結(jié)果分析

本實(shí)驗(yàn)硬件配置使用Intel Core i7-9800X CPU@3.80 GHz 處理器、NVIDIA GTX 2080 Ti 顯卡、32 GB RAM、3 TB 機(jī)械硬盤(pán),操作系統(tǒng)是Windows 10 64 位系統(tǒng).編程語(yǔ)言為Python,深度學(xué)習(xí)框架為PyTorch,GPU 加速庫(kù)為CUDA10.2 和CUDNN8.0.

3.1 模型訓(xùn)練

YOLOv5 鋼筋端面檢測(cè)模型使用的深度學(xué)習(xí)框架為PyTorch.YOLOv5算法訓(xùn)練的初始參數(shù)設(shè)定為:優(yōu)化器使用隨機(jī)梯度下降SGD[22]和余弦學(xué)習(xí)速率衰減策略來(lái)訓(xùn)練網(wǎng)絡(luò),初始學(xué)習(xí)率(learning rate)為0.01,最終衰減速率為0.001,迭代次數(shù)(epochs)為1 000.批處理大小(batch size)為8,動(dòng)量因子為0.937,輸入圖像分辨率為640×640,設(shè)置損失權(quán)值λbox=0.05、λconf=1、λcls=0.5、 λobj=1、 λnoobj=0.5.

批量處理多張訓(xùn)練圖片時(shí),同YOLOv4 算法類(lèi)似采用了Mosaic[23]、Cutout[24]等方法,此外還使用了圖像擾動(dòng),改變亮度、對(duì)比度、飽和度、色調(diào),加噪聲、隨機(jī)縮放、隨機(jī)裁剪(random crop)、翻轉(zhuǎn)、旋轉(zhuǎn)、隨機(jī)擦除等數(shù)據(jù)增強(qiáng)方式.

3.2 實(shí)驗(yàn)結(jié)果分析

本文通過(guò)在模型Head 層修改檢測(cè)層個(gè)數(shù)、增加采樣融合擴(kuò)大特征圖的尺寸提升模型的性能.首先,為了改善鋼筋端面密集小目標(biāo)的檢測(cè)效果,在原始主干網(wǎng)絡(luò)上增加P2 采樣層,并在head 層增加第4 個(gè)輸出層.與原始模型相比,改進(jìn)后的YOLOv5-P2 模型的mAP和FPS 如表1所示.

表1 模型添加小目標(biāo)檢測(cè)層的測(cè)試結(jié)果

由表1 可知,改進(jìn)后模型在主干網(wǎng)絡(luò)增加P2 采樣層、Head 輸出增加為4 層時(shí),模型的輸出特征圖增大,在Neck 層提取到更多輪廓特征,提升了小目標(biāo)檢測(cè)精度,mAP值由98.8%提升到99.9%,Precision由原始模型的80%改進(jìn)后提升到95%.盡管檢測(cè)速度有所降低,仍能滿足實(shí)際需要.

為了找到適配數(shù)據(jù)的最佳感受野大小,本文在主干網(wǎng)絡(luò)的第6 層與第7 層之間加入SPP 模塊,得到Y(jié)OLOv5-SPP 模型,增大感受野提取重要的特征,來(lái)提升鋼筋端面小目標(biāo)檢測(cè)精度.對(duì)比結(jié)果如表2所示.

表2 模型改變SPP 模塊位置的測(cè)試結(jié)果

本文的檢測(cè)目標(biāo)是鋼筋端面.在增強(qiáng)后的訓(xùn)練數(shù)據(jù)集上,將檢測(cè)的鋼筋端面預(yù)測(cè)框的平均精度均值mAP作為檢測(cè)效果的衡量標(biāo)準(zhǔn).

為了能夠更好的觀察各個(gè)檢測(cè)層的輸出以及模型各檢測(cè)層的特征提取效果,對(duì)改進(jìn)前后模型的檢測(cè)層的特征圖(feature map)進(jìn)行了可視化.如圖10所示,其中圖10(a)為原圖,圖10(b)-圖10(d)為原始模型的檢測(cè)層可視化結(jié)果,圖10(e)-圖10(h)為改進(jìn)模型檢測(cè)層可視效果.由改進(jìn)前后的圖10(b)、圖10(e),即小目標(biāo)特征圖可以看出改進(jìn)后的圖10(e)的可視化效果更佳,與原始圖像具有空間上的對(duì)應(yīng)關(guān)系,目標(biāo)間的輪廓信息更豐富,此時(shí)的感受野最小,能夠提升對(duì)小目標(biāo)的檢測(cè)效果.

圖10 特征圖可視化

本文除了將改進(jìn)模型與原始YOLOv5 模型進(jìn)行對(duì)比外,還與YOLOv3、YOLOv3-SPP 以及YOLOv4和ScaledYOLOv4[25]等主流實(shí)時(shí)目標(biāo)檢測(cè)算法進(jìn)行消融實(shí)驗(yàn)對(duì)比,結(jié)果如表3所示.表中,Augmentation 代表是否進(jìn)行數(shù)據(jù)增強(qiáng),K-means 表示模型是否對(duì)錨點(diǎn)進(jìn)行聚類(lèi),epoch 表示訓(xùn)練迭代的次數(shù),通過(guò)控制不同的變量來(lái)驗(yàn)證改進(jìn)算法的效果.

未進(jìn)行K-means 聚類(lèi)之前默認(rèn)的錨點(diǎn)框?yàn)閇10,13],[16,30],[33,23],[30,61],[62,45],[59,119],[116,90],[156,198],[373,326],進(jìn)行K-means 聚類(lèi)之后錨點(diǎn)框?yàn)閇18,30],[18,34],[19,23],[19,27],[20,31],[22,29],[22,33],[32,42],[39,67],YOLOv5-P2 模型使用的錨點(diǎn)框?yàn)閇17,31],[17,22],[18,27],[19,32],[19,30],[20,24],[20,36],[21,28],[21,31],[24,33],[33,43],[39,67].

與目前主流的目標(biāo)檢測(cè)算法相對(duì)比,本文改進(jìn)的算法在Precision以及mAP均取得最優(yōu).其原因如下:(1)平滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化.相較于YOLOv3,YOLOv4 模型,本文模型使用了SiLU 激活函數(shù),與Lekey-ReLU 相比,SiLU 梯度更平滑,保持準(zhǔn)確性更好且更準(zhǔn)取得地傳播信息.(2)Neck 網(wǎng)絡(luò)與YOLOv4 模型相似本模型使用SPP 與PANet 結(jié)構(gòu).SPP 利用4 個(gè)池化核大小分別為13×13、9×9、5×5、1×1 進(jìn)行處理,該結(jié)構(gòu)能分離出最顯著的上下文特征,是強(qiáng)有力的特征提取,池化后再進(jìn)行堆疊;PANet 結(jié)構(gòu)是一種反復(fù)提取特征的實(shí)例分割算法,過(guò)程包括上采樣、再堆疊卷積重復(fù),之后再進(jìn)行下采樣、堆疊.此外本文算法還采用Mosaic 數(shù)據(jù)增強(qiáng),擴(kuò)充了數(shù)據(jù)集,均衡大中小目標(biāo)數(shù)量:隨機(jī)使用多張圖片隨機(jī)拼接,且通過(guò)隨機(jī)縮放可以獲得很多小目標(biāo),讓網(wǎng)絡(luò)的魯棒性更好.通過(guò)以上幾點(diǎn)對(duì)密集小目標(biāo)檢測(cè)效果有了很大提升,這也證明了本文模型的訓(xùn)練效果.

如表3 中所示,分別對(duì)幾大主流目標(biāo)檢測(cè)模型采用相同的數(shù)據(jù)集進(jìn)行訓(xùn)練,其中YOLOv3 模型、YOLOv3-SPP 模型均在Windows 10 環(huán)境下進(jìn)行的,輸入圖片尺度為640×640,batch size 為8 訓(xùn)練的迭代次數(shù)epoch 為200.YOLOv4 模型與YOLOv4-CSP 模型均在Linux 環(huán)境下訓(xùn)練的,其中YOLOv4 模型的輸入圖片尺度為608×608,YOLOv4-CSP 模型輸入圖片尺度為640×640,batch size 為4,訓(xùn)練的迭代次數(shù)epoch為500.訓(xùn)練得到的模型分別在330 張測(cè)試集上設(shè)置置信度參數(shù)conf=0.15,非極大值抑制閾值IOU=0.45 進(jìn)行檢測(cè)得到mAP值以及FPS.

表3 不同檢測(cè)算法消融實(shí)驗(yàn)檢測(cè)精度對(duì)比

圖11 給出了3 個(gè)鋼筋端面檢測(cè)模型的mAP值以及P-R 曲線圖,其中藍(lán)色曲線1 代表YOLOv5-P2 模型,綠色曲線2 代表YOLOv5 模型,紅色曲線3 代表YOLOv3 模型.由曲線圖可知改進(jìn)后的YOLOv5-P2 模型檢測(cè)效果優(yōu)于另外兩個(gè)模型.

圖11 各個(gè)模型P-R 曲線與mAP 值

圖12 給出了為本文改進(jìn)后的YOLOv5-P2 模型的訓(xùn)練曲線圖,主要指標(biāo)為mAP@0.5、精準(zhǔn)率Precision、召回率Recall以及訓(xùn)練集、驗(yàn)證集的目標(biāo)與包圍框損失曲線,由于本文設(shè)計(jì)的是單類(lèi)目標(biāo)檢測(cè)器因此分類(lèi)損失函數(shù)恒為零.

使用TensorBoard 對(duì)訓(xùn)練過(guò)程進(jìn)行可視化,可視化結(jié)果由圖13所示,模型輸入圖片尺度為640×640,batchsize=8 時(shí)的訓(xùn)練曲線圖.圖13(a)是mAP@0.5(IOU=0.5)曲線圖,即IOU=0.5 時(shí),計(jì)算所有圖片每一類(lèi)的AP 值;圖13(b)是mAP@0.5:0.9 曲線圖:表示在IOU不同閾值(從0.5 到0.9,步長(zhǎng)0.05)的mAP值;圖13(c)表示訓(xùn)練集預(yù)測(cè)框損失曲線圖;圖13(d)表示驗(yàn)證集目標(biāo)損失曲線圖;圖13(e)表示驗(yàn)證集預(yù)測(cè)框損失曲線圖;圖13(f)表示訓(xùn)練集目標(biāo)損失曲線圖.

從圖13 可以看出,改進(jìn)后的兩個(gè)模型在mAP@0.5 曲線(曲線1、曲線2)以及mAP@0.5:0.95 曲線圖中表現(xiàn)最優(yōu),這是衡量檢測(cè)器的首要標(biāo)準(zhǔn).圖13 中曲線1 代表YOLOv5-P2 模型,曲線2 代表YOLOv5-SPP 模型,曲線3 代表YOLOv5x 模型,曲線4 代表YOLOv3 模型,曲線5 代表YOLOv5s 模型.在訓(xùn)練損失以及驗(yàn)證損失曲線圖中YOLOv5-P2 模型(曲線1)比YOLOv5-SPP 模型(曲線2)損失更低,說(shuō)明模型預(yù)測(cè)框與真實(shí)框更接近.

圖12 給出了置信度閾值一致時(shí)訓(xùn)練的3 種模型,在自建數(shù)據(jù)測(cè)試集設(shè)置置信度閾值conf=0.15,NMS 閾值IOU=0.25 時(shí)鋼筋端面檢測(cè)的效果.從圖中可以看到,對(duì)于目標(biāo)邊界存在粘連的情況,YOLOv3、YOLOv5 出現(xiàn)漏檢,改進(jìn)后的YOLOv5-P2 則能夠準(zhǔn)確檢測(cè)出,說(shuō)明改進(jìn)后的模型對(duì)小目標(biāo)的檢測(cè)效果有很大提升.

圖12 YOLOv5-P2 模型訓(xùn)練曲線圖

圖13 給出了當(dāng)超參數(shù)設(shè)置一致時(shí)訓(xùn)練的3 種模型,在Data Fountain 測(cè)試數(shù)據(jù)集上設(shè)置置信度閾值conf=0.15,NMS 閾值IOU=0.25 時(shí)鋼筋端面檢測(cè)的效果,從圈出的細(xì)節(jié)圖可以看出,YOLOv3 模型和YOLOv5對(duì)存在遮擋、光線過(guò)強(qiáng)的目標(biāo)有漏檢、誤檢情況,而YOLOv5-P2 模型能夠準(zhǔn)確的檢測(cè)到鋼筋目標(biāo),說(shuō)明改進(jìn)后的模型對(duì)兩個(gè)數(shù)據(jù)集同時(shí)具有很強(qiáng)的自適應(yīng)性和健壯性.

圖13 各模型訓(xùn)練曲線對(duì)比圖

改進(jìn)后YOLOv5-P2 模型相較于改進(jìn)前YOLOv5模型,增加了網(wǎng)絡(luò)上增加P2 采樣層,并在head 層增加第4 個(gè)輸出層,目標(biāo)間的輪廓信息更豐富,錨點(diǎn)框由9 個(gè)增加到了12 個(gè),感受野減小特征圖增大能夠提升對(duì)小目標(biāo)的檢測(cè)效果.與YOLOv3 模型相比優(yōu)化了激活函數(shù)和Mosaic 增強(qiáng)以及網(wǎng)絡(luò)結(jié)構(gòu)改良,因此對(duì)于實(shí)例中目標(biāo)檢測(cè)效果有較大提升.

為了進(jìn)一步說(shuō)明改進(jìn)后的模型在應(yīng)用于中的優(yōu)越性,在330 張訓(xùn)練集上設(shè)置相同的置信度閾值和非極大值抑制閾值對(duì)模型進(jìn)行測(cè)試得到的結(jié)果如表4所示,改進(jìn)后的算法模型在測(cè)試集上檢測(cè)的誤檢率和漏檢率明顯降低,正確率相對(duì)于改進(jìn)前提升了2.1%.

表4 在測(cè)試集多個(gè)模型檢測(cè)結(jié)果對(duì)比

4 結(jié)論與展望

鋼筋是建筑施工領(lǐng)域一種重要的材料,精準(zhǔn)、快速的盤(pán)點(diǎn)出鋼筋的數(shù)量代替人工盤(pán)點(diǎn)是一項(xiàng)具有重要意義的工作.本文根據(jù)鋼筋端面的特點(diǎn),基于改進(jìn)的YOLOv5 模型框架,設(shè)計(jì)了一種鋼筋端面檢測(cè)計(jì)數(shù)算法.本文的主要貢獻(xiàn)為:(1)針對(duì)目前鋼筋數(shù)據(jù)集稀缺且實(shí)際應(yīng)用場(chǎng)景復(fù)雜的問(wèn)題,創(chuàng)建了一個(gè)新的鋼筋端面數(shù)據(jù)集,并使用水平、垂直鏡像、亮度色彩調(diào)節(jié)、隨機(jī)裁剪等方法進(jìn)行數(shù)據(jù)增強(qiáng);使用預(yù)訓(xùn)練模型對(duì)數(shù)據(jù)進(jìn)行半自動(dòng)標(biāo)注.(2)通過(guò)改進(jìn)YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu),使輸出特征圖感受野擴(kuò)大,路徑聚合網(wǎng)絡(luò)(PANet)能夠提取更多的目標(biāo)邊緣特征,從而提升了密集小目標(biāo)的檢測(cè)精度.實(shí)驗(yàn)結(jié)果表明,本文方法在鋼筋端面檢測(cè)中的mAP和Precision等指標(biāo)均有所提高,能滿足實(shí)時(shí)檢測(cè)的基礎(chǔ)上顯著提升密集成捆鋼筋的檢測(cè)精度.未來(lái)工作將考慮進(jìn)一步改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)深層網(wǎng)絡(luò)進(jìn)行剪枝,在保證精度的基礎(chǔ)上提升檢測(cè)速度.

猜你喜歡
端面計(jì)數(shù)聚類(lèi)
液力緩速器轉(zhuǎn)子端面制動(dòng)力矩傳遞方案優(yōu)化分析
兩個(gè)基本計(jì)數(shù)原理A卷
基于數(shù)據(jù)降維與聚類(lèi)的車(chē)聯(lián)網(wǎng)數(shù)據(jù)分析應(yīng)用
基于模糊聚類(lèi)和支持向量回歸的成績(jī)預(yù)測(cè)
古代的人們是如何計(jì)數(shù)的?
一種采暖散熱器的散熱管安裝改進(jìn)結(jié)構(gòu)
一種面板復(fù)合輔助工具
基于密度的自適應(yīng)搜索增量聚類(lèi)法
乐安县| 陆丰市| 丰原市| 隆子县| 泾阳县| 娄底市| 淅川县| 遵化市| 甘德县| 连平县| 武川县| 临潭县| 汕头市| 和平区| 临桂县| 金昌市| 佳木斯市| 兰州市| 星座| 公主岭市| 浏阳市| 始兴县| 莱州市| 临邑县| 博罗县| 公主岭市| 富平县| 临武县| 泗水县| 南召县| 鄂伦春自治旗| 遂昌县| 西盟| 黄山市| 甘泉县| 莆田市| 天柱县| 郎溪县| 丰原市| 五台县| 昌乐县|