高修強 張文國 吳衛(wèi)
(中國電建集團華東勘測設(shè)計研究院有限公司 浙江省杭州市 311100)
隨著城市經(jīng)濟的發(fā)展,軌道交通的建設(shè)進入高峰時期,越來越多的地鐵隧道進入運營養(yǎng)護階段,傳統(tǒng)的維保手段通常是通過人工調(diào)查記錄,效率低下且不能直觀了解到隧道病害具體發(fā)生位置及隧道全貌,對于龐大的日常維護監(jiān)測記錄管理也是比較麻煩的。因此,本文引入目標(biāo)檢測算法和層次結(jié)構(gòu)模型技術(shù)應(yīng)用于地鐵隧道的安全監(jiān)測,并為隧道建立全生命周期的無紙化數(shù)字化檔案,從而減輕運維工作量。
在建立數(shù)字化檔案中,其中一項重要工作是將拍攝到全景影像圖中的每一環(huán)管片進行準(zhǔn)確編號并對其所處的里程進行計算,而進行編號和計算里程的前提是將整個影像圖中的每一環(huán)管片劃分為一個單元,因每環(huán)管片之間有明顯的縱向環(huán)縫,如能準(zhǔn)確識別出縱向環(huán)縫并快速可視化的展示出來,將能有效解決管片編號和所處里程的問題。
通過調(diào)查研究,以往環(huán)縫標(biāo)記工作主要使用人工標(biāo)記和圖像灰度處理技術(shù)[1,2]。人工標(biāo)記工作量大,無法應(yīng)用到大規(guī)模場景,灰度處理技術(shù),只能應(yīng)用到對比度較高的圖像,泛化能力較差,無法適用到大規(guī)模隧道養(yǎng)護場景。為解決實際隧道養(yǎng)護業(yè)務(wù),本文所研究的基于深度學(xué)習(xí)的目標(biāo)檢測算法實現(xiàn)了隧道環(huán)縫快速高效的檢測,并結(jié)合層次結(jié)構(gòu)模型技術(shù),讓整個隧道圖像展示在Web 端,讓應(yīng)用人員在具備網(wǎng)絡(luò)的環(huán)境下可以實時的定位隧道病害發(fā)生的里程和管片。
如圖1 所示,本文主要研究基于深度學(xué)習(xí)算法和細(xì)節(jié)層次模型圖像處理技術(shù)實現(xiàn)對隧道環(huán)縫的自動識別、編號、里程計算和分層渲染展示,為實現(xiàn)這一過程,做出如下設(shè)計:
圖1: 總體架構(gòu)
根據(jù)現(xiàn)實的應(yīng)用需求,這個方案分為六個部分。隧道三維圖像采集,采用隧道三維采集設(shè)備獲取高分辨率的原始圖像,并按固定順序分割編號。算法訓(xùn)練中心,采用Pytoch 框架,用YOLO 算法進行訓(xùn)練獲取模型。業(yè)務(wù)調(diào)度中心,將用戶上傳后的圖像進行元數(shù)據(jù)存儲及業(yè)務(wù)數(shù)據(jù)匹配計算,實現(xiàn)下層支撐服務(wù)的掉調(diào)用。識別算法服務(wù),加載訓(xùn)練好的識別模型,完成對用戶上傳的圖片實時識別,并將環(huán)縫信息返回。影像處理服務(wù),實現(xiàn)對用戶上傳圖像分層切割,實現(xiàn)圖像的金子塔模型風(fēng)格。數(shù)據(jù)存儲,實現(xiàn)對業(yè)務(wù)數(shù)據(jù)和圖片等二進制圖像的存儲。
本文主要采用深度學(xué)習(xí)技術(shù),實現(xiàn)對隧道環(huán)縫的自動識別并將結(jié)果以json 字符串的形式輸出,方便后期的數(shù)據(jù)對接處理。
目標(biāo)檢測算法核心在于解決圖像分類和目標(biāo)定位,本文研究所使用的檢測算法是YOLOv3 模型,YOLOv3模型與其他計算機視覺領(lǐng)域的模型一樣,充分利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的研究成果,并對 R-CNN 家族算法做了架構(gòu)上的優(yōu)化統(tǒng)一。使用創(chuàng)新性的檢測思路,將目標(biāo)檢測作為回歸任務(wù)來解決,實現(xiàn)端對端的檢測,讓檢測性能得到了顯著提高。本文研究中所使用的YOLO算法,同其它目標(biāo)檢測算法相比有更快的識別速度,除此之外本文研究的對象是隧道中的環(huán)縫,感受視野小,且環(huán)縫直接的間隔較為清晰,選用YOLOv3 算法更為適合[3-5]。
YOLO v3 是一個使用創(chuàng)新的使用全卷積網(wǎng)絡(luò)Darknet-53。包含53 個卷積層,沒有池化層,使用步幅為2 的卷積層替代池化層進行特征圖的降采樣過程,這樣可以有效阻止由于池化層導(dǎo)致的低層級特征的損失。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2。
圖2: yolo 網(wǎng)絡(luò)架構(gòu)
2.2.1 圖像準(zhǔn)備
本次實驗一共采集不同光暗環(huán)境下的250 張圖片,每張圖片平均有7 條環(huán)縫。120 張訓(xùn)練,80 張驗證,50張測試,做采集的數(shù)據(jù)來源于杭州地鐵公司通過 拍攝的黑白照片。為了保證數(shù)據(jù)的多樣性讓訓(xùn)練出來數(shù)據(jù)更具有泛化能力,所采用的圖片采用不同光線質(zhì)量條件的圖片。如表1 所示。
表1: 數(shù)據(jù)集
在上述網(wǎng)絡(luò)中,使用同殘差網(wǎng)絡(luò)混合的方式,連續(xù)使用3×3 和 1×1 的卷積層,并在中間捷徑連接。網(wǎng)絡(luò)采用256×256×3 作為輸入,最左側(cè)那一列的1、2、8 等數(shù)字表示多少個重復(fù)的殘差組件。每個殘差組件有兩個卷積層和一個快捷鏈路。
在YOLOv3 中還有一個特殊的之處在于使用了3個不同尺度特征圖對檢測目進行檢測,分別為大目標(biāo)、中等目標(biāo)、小目標(biāo)檢測。
2.2.2 訓(xùn)練環(huán)境
本文采用 Ubuntu 64 位操作系統(tǒng),處理器為英特爾Core i9-10900X,內(nèi)存64GB,顯卡為NVIDIAGeForce RTX3070,使用的訓(xùn)練框架為 Pythoch。
2.2.3 訓(xùn)練過程
(1)圖像標(biāo)注。Labelimage 數(shù)據(jù)標(biāo)注軟件對原來的數(shù)據(jù)進行標(biāo)注。
(2)圖像批處理。通常會對圖像做一些隨機的變化,產(chǎn)生相似但又不完全相同的樣本。主要作用是擴大訓(xùn)練數(shù)據(jù)集,抑制過擬合,提升模型的泛化能力,隨機改變亮暗、對比度和顏色等。
(3)訓(xùn)練。因為本文所研究的對象為環(huán)縫,目標(biāo)單一,特征清晰,因而選用寬長為 (10,13)的矩形框為先驗框。提前在圖像上使得模型學(xué)習(xí)起來更加容易。確定尺寸的長寬比可以得到更大的交并比,就有更高的概率出現(xiàn)對于目標(biāo)物體有良好匹配度的先驗框,即為我們定好了常見目標(biāo)的寬和高,在進行預(yù)測的時候,我們可以利用這個已經(jīng)定好的寬和高的先驗框,幫助我們進行預(yù)測。
訓(xùn)練YOLO v3分別進行訓(xùn)練,訓(xùn)練批次為 15000輪。采用隨機梯度下降算法對網(wǎng)絡(luò)模型參數(shù)進行更新直至收斂。為了加快網(wǎng)絡(luò)模型的收斂速度,將權(quán)值的初始學(xué)習(xí)率設(shè)置為 0.005,在10000 和 13000 輪后學(xué)習(xí)衰減系數(shù)分別設(shè)置為0.1,即學(xué)習(xí)率會在前一個學(xué)習(xí)率的基礎(chǔ)上衰減十倍。
如表2 所示,因為本文所研究的內(nèi)容主要是針對環(huán)縫做識別,目標(biāo)單一,可看作是一個二分類預(yù)測。為了更好量化預(yù)測結(jié)果,本文對準(zhǔn)確率(precision)和回歸率(Recall)做計算,采用F1-Score 方式作為衡量指標(biāo)。在這一過程中涉及到對以下數(shù)據(jù)的統(tǒng)計:
表2: 混淆矩陣
(1)真陽性(True Positive, TP),表示樣本中環(huán)縫存在,并且模型預(yù)測的結(jié)果也是環(huán)縫,預(yù)測正確;
(2)真陰性(True Negative, TN),表示樣本中不存在環(huán)縫,并且模型將其預(yù)測成非環(huán)縫,預(yù)測正確;
(3)假陽性(False Positive, FP),表示樣本中不存在環(huán)縫,但是模型將其預(yù)測成環(huán)縫,預(yù)測錯誤;
(4)假陰性(False Negative, FN):表示樣本中存在環(huán)縫,但是模型將其預(yù)測成非環(huán)縫,預(yù)測錯誤。
因本文所研究的目標(biāo)檢測算法,在判斷時,如何判定單個目標(biāo)預(yù)測的是否有效的過程中用到預(yù)測框和標(biāo)記框的交并比(IOU),即衡量2 個預(yù)測的重疊程度,重疊成都越好,代表預(yù)測的效果越好,當(dāng)交并比大于0.7判定有效預(yù)測。具體公式如下:
其中:
Bgt——目標(biāo)實際的邊框;
Bp——預(yù)測的邊框;
IOU——預(yù)測框和標(biāo)記框的交并比。
從環(huán)縫預(yù)測結(jié)果角度出發(fā)的準(zhǔn)確率(Precision),即計算出在本模型下預(yù)測出來的環(huán)縫結(jié)果中有多少是真實環(huán)縫,即該模型對環(huán)縫的預(yù)測有多少是準(zhǔn)確的,計算表達(dá)式如下:
從真實結(jié)果角度出發(fā),回歸率(Recall)描述了測試集中的真實環(huán)縫有多少模型挑選了出來,即真實環(huán)縫的模型召回數(shù)量。
F1 分?jǐn)?shù)(F1-score)是分類問題的一個衡量指標(biāo)。它是準(zhǔn)率和召回率的調(diào)和平均數(shù),最大為1,最小為0。1是最好,0 是最差。
采用 F1-score 指標(biāo)坐標(biāo)作為本模型的評價指標(biāo),是因為其同時控制準(zhǔn)確率和和回歸率,避免單一模型評價的單一性,最終達(dá)到模型識別高而全,且錯誤率低。如表3 所示。
表3: 試驗結(jié)果
通過以上實驗,得出使用該模型識別環(huán)縫技術(shù),得到的效果較好。平均準(zhǔn)確率可以達(dá)到98%以上,平均回歸率可以達(dá)到96%以上、整體評價指標(biāo)F1 分?jǐn)?shù)在97%以上,已經(jīng)到達(dá)工業(yè)現(xiàn)場應(yīng)用的要求。
在整個研究的過程中,除環(huán)縫識別工作之外,為保證可視化層面可以高效的渲染整條隧道的圖片。進一步對圖像的加載進行研究,本研究采用細(xì)節(jié)層次化結(jié)構(gòu)模型技術(shù)作為研究目標(biāo),將整條隧道采集的原始圖,按序組合排列整合為完整一張大圖。按照細(xì)節(jié)層級模型技術(shù)進行切分,適配在不同視野下看的不同尺度的圖片。保證單次請求和渲染的數(shù)據(jù)量穩(wěn)定在一個合適的區(qū)間內(nèi),保證可視化時加載高效流暢。
LOD(Level of Detail)細(xì)節(jié)層次模型技術(shù)指用若干不同復(fù)雜度的模型來表示同一對象的技術(shù)。此技術(shù)主要根據(jù)視點距離對象位置的變化調(diào)用不同復(fù)雜度的模型,即在大視野時調(diào)用低復(fù)雜度模型,在小視野時調(diào)用高復(fù)雜度模型。細(xì)節(jié)層次模型就是為簡化場景中可見幾何體的多邊形細(xì)節(jié)而提出的一類加速算法。按照視覺重要性原則,距離視點越遠(yuǎn)的幾何體在顯示屏幕上投影面積越小,對視覺感官的貢獻(xiàn)越少,因此一個自然的加速繪制方法是對近處幾何體充分繪制詳細(xì)的幾何細(xì)節(jié),而對遠(yuǎn)處的幾何體則大幅度地進行簡化,繪制較為粗糙的幾何細(xì)節(jié),即為層次細(xì)節(jié)技術(shù)的出發(fā)點。細(xì)節(jié)層次技術(shù)的主要難點在于如何快速構(gòu)建并選擇幾何體的多次細(xì)節(jié)層次模型,以及不同層次細(xì)節(jié)之間的自然過渡[6,7]。
如表4 所示,基于四叉樹的LOD 算法是目前最為廣泛有效的算法,能夠適用于大多數(shù)模型的表達(dá)。通過將原始數(shù)據(jù)按2n行分級處理,在每個不同層級時使用特定層級的數(shù)據(jù)模型,以此達(dá)到大規(guī)模數(shù)據(jù)模型的空間可視化目的。比如,從第0 級開始每一級具有的網(wǎng)格數(shù)量:
表4: 四叉樹計算方式
在LOD 算法思想的基礎(chǔ)上,對隧道原始影像數(shù)據(jù)進行預(yù)處理,生成能夠供前端渲染調(diào)度使用的瓦片圖像數(shù)據(jù)模型。
3.2.1 圖像拼接與均分
由于原始的隧道掃描圖像不是一張圖像,而是由多段區(qū)間的圖像集合組成的。為了不丟失數(shù)據(jù)的完整性,需要先將所有圖像通過圖像文件名稱自帶的里程信息有序拼接起來。對于缺失的里程影像需要使用空白圖片進行填充,保證數(shù)據(jù)的連續(xù)性。對于完整的一張大圖,盡量均分成若干張寬高一致的圖像,接下來對每一張均分后的圖像執(zhí)行后續(xù)操作。
3.2.2 圖像降采樣
在圖像拼接和均分的操作基礎(chǔ)上,執(zhí)行圖像的降采樣操作是為了滿足四叉樹結(jié)構(gòu),將同一圖像按照自定義的比率進行縮放,降低圖像的分辨率。因此,在低層級時,使用降采樣的低分辨率圖像;在高層級時,使用高分辨率的圖像。原始圖像的分辨率是最高分辨率。
3.2.3 圖像切分
圖像降采樣會生成多個分辨率的圖像,對所有分辨率的圖像執(zhí)行圖像切分成若干張小圖像。切分的原則以最低分辨率圖像的長寬為基準(zhǔn),每一級分辨率的圖像進行切分,生成大量寬高一致的小圖片。
3.2.4 分級存儲
在以上操作完成后,需要將生成的小圖片按層級劃分、按行列號命名存儲,有序地存儲在服務(wù)器中。根據(jù)分辨率確定層級,根據(jù)長寬方向切分時的先后順序確定行列號大小。
在前端調(diào)用渲染過程中,需要先計算當(dāng)前視角內(nèi)的四叉樹結(jié)構(gòu),根據(jù)四叉樹結(jié)構(gòu)的坐標(biāo)生成對應(yīng)的切片地址。首先需要定義一個原點(0,0),可以使用左上角作為原點,還需要瓦片的寬度 tileWidth,瓦片的寬度tileHeight,當(dāng)前層級Level,屏幕中心所處的位置(x,y),四叉樹的行列號計算公式如下:
根據(jù)Level, Row, Column 可以確定瓦片的存儲路徑,最終獲取對應(yīng)的瓦片圖片展示在對應(yīng)的位置。
通過以上目標(biāo)檢測和層級結(jié)構(gòu)化技術(shù)完美的解決環(huán)縫自動識別和原圖分層加載,為方便用戶使用,需要將分層和識別數(shù)據(jù)在可視化平臺融合展示出來,并根據(jù)環(huán)縫位置和里程的對應(yīng)關(guān)系完成管片編碼及環(huán)縫所在里程的計算。以此數(shù)據(jù)為基礎(chǔ),實現(xiàn)隧道病害在其上的快速定位。
以環(huán)縫為參考,以管片編號為索引,可以在Web端快速的標(biāo)注出隧道病害發(fā)生的位置,依托數(shù)字化技術(shù)實現(xiàn)隧道巡檢和養(yǎng)護,巡檢人在隧道中使用平板根據(jù)現(xiàn)場情況,在對應(yīng)管片編號上繪制病害,上報平臺。平臺得到上報病害后根據(jù)嚴(yán)重程度派發(fā)任務(wù)給養(yǎng)護人員。養(yǎng)護人員根據(jù)平臺上顯示病害所在的里程和環(huán)號,快速找到病害所在位置,進行養(yǎng)護。
定期、定頻拍攝隧道的影像,并同上期關(guān)聯(lián),形成隧道數(shù)字化檔案,最終實在在一個平臺上實現(xiàn)隧道全生命周期的管理。通過可視化對比的方式,清楚的展現(xiàn)出隧道中每個病害的演變過程及修復(fù)情況,從而延遲隧道的使用壽命,也為下一條隧道建設(shè)和養(yǎng)護提供可參考的依據(jù)。
本文研究中,考慮識別結(jié)果在前端展示后的交互性,圖像識別數(shù)據(jù)需要滿足矢量結(jié)構(gòu)數(shù)據(jù)的要求。通常從識別算法處獲取到識別后的坐標(biāo)為當(dāng)前識別圖片中的環(huán)縫相對矩形框的對角坐標(biāo)。通常使用(x1、y1),(x2、y2)坐標(biāo)來表示,為了方便展示會舍棄y 軸上的值,取x2-x1的中間值為x 值,這里的x 值將被轉(zhuǎn)換為對應(yīng)的像素點位置,最終構(gòu)成一條貫穿圖像的同水平方向垂直的線像素。該像素線同底層不同視野下的圖片進行疊加,形成上下圖層。因采用的相對位置疊加,因此環(huán)縫和底圖可以分離存儲,從而實現(xiàn)用戶可以對識別有差異的線調(diào)整修改。
計算環(huán)縫所在里程核心在于計算出原圖單個像素和里程的比例尺,在具備比例尺和分辨率的條件下,可以簡單地計算出對應(yīng)要素的實際長度和面積等標(biāo)量大小。計算公式如下:
其中:
Scale——比例尺大??;
ImageWidth——隧道影響寬度;
MileageSize——總里程信息;
通過對原圖按序拼接獲取到所有識別出環(huán)縫在整條隧道中的絕對像素,通過絕對像素和比例尺可以計算出每個環(huán)縫位于的里程數(shù)。
如圖3 和圖4 所示。
圖3: 原圖
圖4: 識別結(jié)果渲染圖
本文研究了一種可以應(yīng)用于隧道運維的快速識別環(huán)縫及里程計算的方法,改進傳統(tǒng)的隧道運維手段,讓每個隧道管片信息及其所在里程位置清晰的,用可視化的方式展示出來。配合自動化隧道全景圖像采集設(shè)備,讓運維人員不必親自進入隧道巡查,直接從隧道檔案可視化平臺,實現(xiàn)對隧道病害的排查。通過自動識別的環(huán)縫及計算出的里程數(shù)據(jù),讓真實的隧道病害位置和可視化界面隧道全景圖對應(yīng)。讓隧道維護人員直接到達(dá)病害位置,對其處置。增加隧道維護效率,也避免在隧道中長時間作業(yè)的危險。
除此之外,整個研究以實用為第一設(shè)計原則。采用可快速識別的YOLO 算法,每秒可處理幾十張圖像,讓識別功能可落地應(yīng)用。為保證可視化層面的渲染效率采用層次結(jié)構(gòu)模型,讓圖像可以滿足在不同視野下的加載需求,通過對不同尺度的圖像加載,保證每次渲染的數(shù)據(jù)量恒定,從而保證可視化的加載效率。