盧昱杰 ,仲濤 ,魏偉 ,陳雋
(同濟大學 a.土木工程學院;b.工程結構性能演化與控制教育部重點實驗室;c.上海智能科學與技術研究院,上海 200092)
工程項目的進度監(jiān)控有助于項目管理人員及時發(fā)現(xiàn)并校正進度偏差,直接影響項目的成本和經(jīng)濟效益[1-2]。傳統(tǒng)的進度監(jiān)控方式多為人工巡檢與填表,耗費大量工作時間,且無法保障進度評估的時效性,難以滿足現(xiàn)階段工程項目高效管理的需求。室內(nèi)施工流程繁雜,工序間關聯(lián)性強,每一道工序的施工進程都將直接影響總體進度。此外,室內(nèi)環(huán)境存在構件堆積、視線遮擋等問題,需要花費更多的時間和人力用于進度管理。將AI 技術應用于室內(nèi)進度監(jiān)控,可以非人工監(jiān)督方式實時獲取進度信息,并動態(tài)更新與集成至BIM 模型,為施工數(shù)字孿生奠定基礎。同時,還可通過動態(tài)測量施工量用于效率計算,滿足日益重要的施工精細化管理要求,對提升進度管理效率意義重大[3]。室內(nèi)施工包含多道工序,瓷磚鋪貼以膩子、抹灰施工為基礎,對施工技術要求很高,最后一道工序的施工進程對總進度監(jiān)控影響重大。因此,筆者以瓷磚鋪貼為例針對室內(nèi)施工的智能化監(jiān)控展開研究。
目前,施工進度自動化監(jiān)控方式主要包括3 種方式:1)基于傳感器布設的進度管理;2)基于點云三維重建的進度管理;3)基于圖像處理與分析的進度管理。第1 種方式通過綁定施工構件與相應的二維碼或RFID 標簽實現(xiàn)構件級別的進度追蹤,大大降低了進度管理人員的工作量[4-5]。但在室內(nèi)環(huán)境中構件數(shù)量種類繁多,人為設置標簽較為耗時且存在丟失、遺漏的風險。第2 種方式則是通過傾斜攝影或激光掃描等方式重建現(xiàn)場的三維模型,并從三維模型中獲取更直觀更豐富的場景信息[6-7],但由于室內(nèi)場景復雜、多遮擋的特點,點云數(shù)據(jù)獲取不便,且處理過程耗時過長,對于室內(nèi)進度監(jiān)控而言時效性過差。相比之下,近年來,基于計算機視覺(CV)[8-9]的施工進度監(jiān)控方法得到廣泛應用,其數(shù)據(jù)獲取便利、信息處理速度快等[10],能夠從圖像中快速提取豐富的室內(nèi)場景信息,時效性強且應用成本較低,將其應用于室內(nèi)進度監(jiān)控具有獨特優(yōu)勢。現(xiàn)階段基于計算機視覺的室內(nèi)施工進度監(jiān)控方法主要包括定性評價和定量計算兩種,定性進度評價主要是通過提取圖像中對象的材料、紋理等特征[11-13]或通過檢測工人活動[14-15]來推斷施工所處階段;定量進度計算則主要通過計算施工完成面積等方式確定進度完成比例[12]。例如Deng 等[16]通過邊緣檢測的方法確定地面已鋪貼瓷磚部分的邊界線,并通過提前標定的方式校正圖片從而準確計算出瓷磚鋪貼面積與進度。
然而,現(xiàn)階段基于圖像識別的室內(nèi)進度定量化計算方法僅能通過安裝固定攝像頭監(jiān)控有限區(qū)域的施工進度[17],無法通過一套設備實現(xiàn)整個施工層的大范圍施工進度監(jiān)控,且無法同時獲取墻面和地面在內(nèi)的整體鋪貼進度。筆者以室內(nèi)瓷磚鋪貼場景為例,提出了一套室內(nèi)連續(xù)空間施工進度智能評估框架,該框架基于語義分割與圖像軌跡追蹤算法自動獲取墻面和地面的整體鋪貼進度,最終在BIM模型中實現(xiàn)進度信息集成與可視化。
室內(nèi)連續(xù)空間施工進度智能評估框架(如圖1所示)主要分為3 個步驟:1)圖像預處理,即對獲取的墻面與地面的圖像進行自動畸變校正;2)圖像分割與進度計算,即基于改進的Mask R-CNN 算法獲取已鋪貼與未鋪貼部分面積,并計算進度完成百分比;3)進度映射與可視化,將上述獲取的進度結果映射至BIM 模型,實現(xiàn)進度可視化。
圖1 技術路線Fig.1 Overall framework
實際墻面和地面多為矩形平面,但由于拍攝角度及鏡頭畸變等因素影響,相機拍攝的圖片存在透視畸變,造成圖像處理和進度計算誤差。因此,基于Canny 算子與Hough 變換提出一種圖像校正方法,自動消除圖像畸變。
該方法主要分為3 個步驟:1)直線檢測。基于Canny 算子和Hough 變換算法得到圖像中的特征邊緣直線,如圖2(b)所示。2)直線篩選與角點計算。以水平線為0°,先根據(jù)特征直線的角度將其分為近似豎直線(角度為60°~120°)與近似水平線(角度為-30°~30°);取整幅圖像4 條邊界線的中點,分別計算近似豎直線與左右邊中點的距離以及近似水平線與上下邊中點的距離,此時,距4 邊中點最近的4條直線即為地面(或墻面)的邊界線,其余直線均是邊界線內(nèi)部的特征線;最后,求出邊界線的交點作為角點,如圖2(c)所示。3)圖像畸變校正。第1 步,獲得校正后圖像的角點坐標,即首先設定圖2(c)中左上角點的校正后坐標為(0,0),由于校正后地面(墻面)為矩形,將矩形的長(l)設定為原圖中四邊形上下兩條邊長度的平均值,寬(w)為四邊形左右兩條邊長度的平均值,即可得到右上、左下、右下角點的校正后坐標為(l,0)、(0,w)、(l,w);第2 步,基于上述得到的4 組對應角點坐標,由RANSAC 算法獲取圖像變換的參數(shù)矩陣F,從而將變形圖像校正為正視圖像。需要明確的是:針對地面面積過大,相機視野覆蓋不全的情況,算法在地面中間位置選定某一參照點,將其劃分為兩個矩形獨立拍攝,最終合并計算施工進度。
圖2 圖像畸變校正算法Fig.2 Image distortion correction algorithm
在研究場景中,存在3 類主要對象,即瓷磚、混凝土(墻面未鋪貼瓷磚部分所用材料)、砂漿(地面未鋪貼瓷磚部分所用材料)。應用圖像分割算法對3 類識別對象進行分割,通過掩碼計算來獲取瓷磚鋪貼進度。常用的分割算法包括DeepMask[18]、YOLACT[19]、Mask R-CNN[20]等。前兩種算法并不適用于重疊對象的分割,相較之下,Mask R-CNN 算法對有重疊、邊界不明確的對象分割效果較好[21]。由于在研究場景中,地面上常有砂漿桶、錘子等物體遮擋、重疊,且瓷磚邊界處常有散落的水泥砂漿使得邊界不清晰,因此,選用Mask R-CNN 算法對墻面及地面的圖像進行實例分割。
Mask R-CNN 算法由FPN (Feature Pyramid Networks) 提取圖像特征,并由RPN (Region Proposal Networks)結合圖像特征提出多個RoI(Regions of Interest)。在此基礎上,并行完成3 個子任務,即區(qū)域分類、邊界框回歸和像素分割,分別得到實例的類別、準確的邊界框及掩碼,最終由不同顏色的掩碼表征不同的實例對象(如圖3 所示)。同時,此算法創(chuàng)新性地提出ROI Align 連接層,應用線性插值法來減少前向傳播過程中的誤差,并根據(jù)式(1)來進行反向傳播,提高了掩碼預測的準確性。
圖3 Mask R-CNN 網(wǎng)絡結構Fig.3 Mask R-CNN structure
式中:L為損失函數(shù);xi為在ROI Align 計算前的原特征圖上的像素點;yrj為經(jīng)ROI Align 計算后第r個候選區(qū)域的第j個點,與yrj對應的在原特征圖上的點記為xrj;Δh和Δw為xi與xrj橫縱坐標的差值。當xrj與xi在原特征圖上的歐式距離小于1,yrj的誤差將會反向傳播給xi。
基于圖像分割的結果,通過掩碼計算來獲得施工進度百分比(如式(2)所示),每面墻或每塊地面的瓷磚鋪貼進度百分比為“已完成鋪貼的瓷磚面積/墻面或地面面積”。在獲取到每面墻的施工進度后,可通過“某施工層已完成鋪貼的瓷磚總面積/某施工層墻面或地面面積”來計算某施工層墻面或地面的進度完成百分比。
式中:P表示整施工層的瓷磚鋪貼進度;i為施工層內(nèi)房間序號;S為實際面積;p為像素數(shù)(像素面積);右上角標表示對象類別。
依照圖4 所示步驟確定拍攝對象和對應的BIM模型構件之間的映射關系,從而將施工進度結果集成至BIM 模型:1)相機軌跡追蹤。將相機的拍攝路徑起點設定為BIM 模型的原點坐標,手持相機持續(xù)拍攝墻面與地面。在此過程中基于Positional tracking 算法(PT 算法)來自動提取相機在移動路徑上的坐標信息(x1,y1,z1)與角度信息(α,β,θ);2)區(qū)分墻面與地面對象。根據(jù)俯仰角β 的大小來區(qū)分拍攝對象為墻面還是地面,當-30°≤β≤90°時表示相機平視,拍攝墻面;當-90°≤β≤-30°時表示相機完全俯視,拍攝地面;3)二維圖片的三維模型映射。當拍攝墻面對象時,采用俯視平面坐標系,墻構件端點坐標和構件ID 可在BIM 模型中通過Revit API獲取。根據(jù)已知的相機平面坐標(x1,y1)與水平角θ能夠得到準確的平面視線方程,并求出該方程與墻線方程的交點。距離相機位置最近的交點所在的墻即為相機拍攝的構件,同時可以確定該構件在BIM 模型中的ID。當拍攝地面對象時,采用空間坐標系,由已知的相機坐標(x1,y1,z1)與角度信息(α,β,θ)等參數(shù)可以得到準確的空間視線方程,此視線將與地面相交并可求得交點坐標,由于在BIM 模型中每個房間地面的邊界信息和ID 已知(通過Revit API 獲取),因此,交點所在的構件即為相機所拍攝的地面,同時可以確定其在BIM 模型中的ID。
圖4 數(shù)據(jù)集成與進度更新Fig.4 Data integration and progress update
在獲得所拍攝對象的施工進度和構件ID 后,應用Revit API 插件在BIM 模型中通過構件ID 進行遍歷,找到唯一的墻面或地面構件并導入進度信息。在構件的屬性欄中將自動顯示進度完成百分比,同時在三維視圖中將根據(jù)構件進度情況給構件外觀賦予不同顏色進行區(qū)分。
在深度神經(jīng)網(wǎng)絡算法中,超參數(shù)和損失函數(shù)是影響算法效果的兩個重要因素,其中,超參數(shù)直接影響算法的訓練收斂過程,對模型性能有直接影響,而損失函數(shù)則決定了模型優(yōu)化的方向,因為優(yōu)化目標就是減小損失。因此,為提升模型分割精度,本研究針對本場景下數(shù)據(jù)特征單一、類別不平衡的特點從超參數(shù)優(yōu)化和損失函數(shù)優(yōu)化這兩方面對Mask RCNN 算法進行了如下改進與提升,如圖5 所示。
圖5 算法改進試驗流程圖Fig.5 Flow chart of algorithm improvement
由于數(shù)據(jù)集的數(shù)據(jù)量不足、特征單一,在未經(jīng)超參優(yōu)化的情況下易發(fā)生難以收斂或過擬合問題,因此,對于算法的收斂性能要求更高。分割算法常見的超參優(yōu)化器包括SGD、Adagrad 和Adam 等。Mask R-CNN 默認采用SGD 優(yōu)化器,其在數(shù)據(jù)特征單一的情況下易使得參數(shù)收斂到近似的局部極小值[22]且收斂速度偏慢,使得模型難以得到有效更新。Adagrad 優(yōu)化器相較于SGD 優(yōu)化器在參數(shù)空間平緩的方向上梯度下降更快,不易在局部收斂,在眾多小數(shù)據(jù)量的數(shù)據(jù)集上表現(xiàn)更優(yōu)[23],這恰好契合研究的需求。但Adagrad 優(yōu)化器可能使得學習率下降過快,訓練后期無法更新。而相比于Adagrad 優(yōu)化器,Adam 優(yōu)化器采用更優(yōu)的自適應步長的優(yōu)化策略,在訓練后期仍保持較好的更新效率,這大大提高了算法收斂的速度[24]。
因此,應用3 種優(yōu)化器分別進行試驗,并以Mask R-CNN 算法的默認參數(shù)實驗為基準實驗(baseline),結果顯示(見表1),Adagrad 優(yōu)化器在學習率為2.5×10-4時,模型表現(xiàn)低于基準實驗,原因為后期學習率過小,模型參數(shù)無法進一步更新,導致模型表現(xiàn)不佳。對于Adam 優(yōu)化器而言,在學習率為2.5×10-3時,由于學習率過大,訓練前期產(chǎn)生梯度爆炸現(xiàn)象,算法無法收斂;而在學習率為2.5×10-4時,模型的收斂速度和收斂效果得到了良好平衡,最終在試驗6 中達到mAP75為97.7%的分割精度,相較于基準提高了3.1%。
表1 Mask R-CNN 算法提升效果Table 1 The improvement of Mask R-CNN algorithm
Mask R-CNN 算法的損失函數(shù)由3 部分組成,即分類任務的損失值Loss_cls、邊界框回歸任務的損失值Loss_bbox、掩碼分割任務的損失值Loss_mask。由于研究通過掩碼計算得到具體鋪貼進度,掩碼分割任務的損失函數(shù)形式是影響分割精度和進度計算的關鍵因素。當前實例分割任務中,常用的損失函數(shù)形式包括CE Loss(如式(3))、IoU Loss(如式(4))、Dice Loss(如式(5))等。
式中:N為圖像中像素數(shù);m為圖像中的預測類別數(shù);yij分別為第i個像素屬于第j個類別的真實值和預測概率。
Mask R-CNN 默認采用CE Loss 作為損失函數(shù),其平等考慮每個像素點的分割效果[25],適用于識別對象尺寸適中,且不同類別大小一致的情況。而研究數(shù)據(jù)集中瓷磚占整張圖片的像素比例較大,相比于瓷磚的像素點總數(shù),邊界處像素點數(shù)量過少,對損失函數(shù)的影響過小,容易導致邊界分割精度降低。同時,相對于瓷磚,混凝土(砂漿)占整張圖片的像素比較小,存在類別不平衡的問題,影響整體分割精度。IoU Loss 充分考慮到預測掩碼和真實掩碼間的重疊度,放大了對象邊緣像素點的影響,理論上將使得邊界回歸更準確[26]。Dice Loss 除考慮重疊度外,更進一步針對類別不平衡問題,加強了對圖片數(shù)量少的困難樣本(研究中為混凝土與砂漿)的懲罰力度,使得算法更側重于對困難樣本的訓練,從而使得整體精度得以平衡與提升[27]。
因此,分別采用IoU Loss 和Dice Loss 進行試驗(如表1 所示),然而試驗7 模型表現(xiàn)不佳,原因為在訓練前期預測邊界框準確度低,與真實標簽的重疊較小甚至無重疊,這使得模型參數(shù)無法更新[26]。試驗8 的mAP75達到了98.6%,相較于基準模型提升了4%,取得最高精度。
將上述自動化進度評估框架在上海閔行區(qū)浦江某建筑工地(如圖6)進行了實地測試與應用。此項目為高層住宅項目,其中,12 號樓為16 層框架剪力墻結構,現(xiàn)場測試時9~16 層正處于瓷磚鋪貼階段,因此,對12 號樓第10 層整層的瓷磚鋪貼進度進行了評估。
圖6 工地現(xiàn)場實景圖與BIM 模型Fig.6 Construction site and BIM model
采用的硬件設備為Zed 2 雙目深度傳感相機(如圖7),相較于市面上其余深度相機,該相機的精度較高且支持算法的二次開發(fā)。此相機感光尺寸為175 mm×30 mm×33 mm (6.89"×1.18"×1.3"),深度范圍為0.2~20 m,景深場最大尺寸為110°(H)×70°(V)×120°(D),契合數(shù)據(jù)收集的硬件需求。
圖7 Zed 2 相機及相關參數(shù)Fig.7 Zed 2 camera and related parameters
最終,收集到912 張圖像,均用labelme 軟件進行標注,并按照7:2:1 比例將數(shù)據(jù)隨機劃分為訓練集(638 張)、驗證集(184 張)和測試集(90 張)。
采用一塊RTX3090 顯卡進行訓練,深度學習基本環(huán)境配置為 cuda11.1+cudnn8.0+pytorchgpu1.8.0+numpy1.21.0。Mask R-CNN 算法應用了在MS-COCO 數(shù)據(jù)集上預訓練的Resnet-101 做特征提取網(wǎng)絡,基本參數(shù)設置如下:采用Adam 優(yōu)化器,恒定學習率為2.5e-4,batch size 為4,共訓練100epoch,其余設置均采用默認參數(shù)[20]。
Mask R-CNN 算法應用效果如圖8 所示。其中,損失函數(shù)變化曲線和準確率變化曲線表征了模型的收斂效果與總體準確率,其中,在第3 000 次迭代(iter)后,損失函數(shù)曲線波動趨于穩(wěn)定,最終穩(wěn)定在0.1 左右,并且在驗證集上的最終準確率達到了99.5%。同時,采用實例分割任務常用的評價指標mean Average Precision (mAP)來表征模型在各類別對象上的平均檢測性能。在實例分割任務中,當實例預測掩碼與其真實掩碼的交并比IoU 大于閾值時(0.5 與0.75 為圖像分割常用的IoU 閾值),認為該實例為正確樣本,并以此計算整個測試集的精確度。最終模型在90 張測試集的mAP50、mAP75分別達到99.5%、98.6%。
圖8 Mask R-CNN 算法結果Fig.8 The results of Mask R-CNN algorithm
通過設置校準點的方式來驗證PT 算法的準確度。如圖9 所示,測試者手持Zed 2 相機從原點出發(fā),依次經(jīng)過3 個校準點,并最終回到原點。此3 個校準點在路徑長度上均勻分布,且均位于門框中心或房間中心,因此,可獲得其在BIM 坐標系下的實際坐標。同時,基于PT 算法求,3 個點的預測坐標。通過計算實際坐標和預測坐標的相對距離,以及起點和終點坐標的相對距離,可知實時預測路徑上平面坐標的最大偏差為60.82 mm。由于在室內(nèi)場景下,目標對象即墻面和地面的長寬尺寸均大于3 m,最大平面坐標偏差僅占其2%,可忽略不計。
圖9 PT 算法效果驗證Fig.9 Validation of PT algorithm
基于室內(nèi)連續(xù)空間施工進度智能評估框架,對12 號樓第10 層整層的瓷磚鋪貼進度進行評估。
1)圖像分割結果可視化
針對墻面、地面兩類對象,表2 展示了原始圖像、畸變校正、圖像分割、進度計算4 個過程的可視化結果以及圖像分割的真實標簽(ground truth)。其中,兩墻面的鋪貼進度分別為69%、40%(鋪貼施工中),兩地面的鋪貼進度分別為81%、30%(施工鋪貼中)。
表2 鋪貼進度評估可視化結果Table 2 Visual results of paving progress assessment
2)BIM 模型信息集成與可視化
該項目僅有衛(wèi)生間的墻面和地面,廚房墻面與陽臺地面需要瓷磚鋪貼,經(jīng)統(tǒng)計第10 層共有27 面墻和50 塊地面參與計算。應用提出的框架,該項目第10 層墻面瓷磚鋪貼總面積為360.47 m2,已完成鋪貼面積為313.61 m2,整層施工進度為87%。地面瓷磚鋪貼總面積為109.10 m2,已完成鋪貼面積為80.73 m2,整層施工進度為74%。詳細的構件屬性及拍攝參數(shù)如表3 所示。同時,在BIM 模型通過顏色編碼對第10 層的瓷磚鋪貼進行了可視化進度展示(如圖10 所示),其中,未施工、施工中、施工完的對象分別以綠、黃、紅三色表示。同時,在構件屬性欄中可以獲取每個構件的進度完成信息。
圖10 BIM 模型進度可視化結果Fig.10 Progress visualization in BIM model
施工進度監(jiān)控是工程項目管理的重要組成部分,傳統(tǒng)的施工進度管理人為主觀性強,自動化程度低。室內(nèi)施工由于復雜的構件堆積和視線遮擋,其進度管理將耗費更多的時間和成本。以室內(nèi)墻面地面瓷磚鋪貼為例,提出一套室內(nèi)連續(xù)空間施工進度智能評估框架?;诟倪M的Mask R-CNN 算法自動獲取施工進度百分比,并基于圖像軌跡追蹤算法將進度信息集成至BIM 模型,為施工數(shù)字孿生奠定基礎。該框架在上海某高層建筑項目中進行了實地測試與應用,實現(xiàn)圖像高精度分割(mAP 為98.6%),驗證了框架的可行性。相對于現(xiàn)有的室內(nèi)飾面施工進度評估框架[17]僅能通過安裝固定攝像頭監(jiān)控相機所在房間的地面鋪貼進度。該框架可通過一套可穿戴設備實現(xiàn)整個施工層的大范圍施工進度監(jiān)控,且同時獲取墻面和地面在內(nèi)的整體鋪貼進度,在進度監(jiān)控面積和應用范圍方面得以拓展和提升。該框架不僅適用于室內(nèi)瓷磚鋪貼,針對抹灰、刷涂等室內(nèi)裝修工程同樣具有普適性。本文具備如下兩點創(chuàng)新性貢獻:
1)提出了一套連續(xù)空間室內(nèi)瓷磚鋪貼進度自動化評估框架。通過圖片畸變校正、瓷磚像素分割與掩碼計算,自動獲取量化的進度信息并更新集成到BIM 模型。
2)提出了一種基于圖像軌跡追蹤技術的室內(nèi)移動拍攝方法,用于自動區(qū)分與同步計算水平(地面)與豎向(墻面)瓷磚鋪貼的進度,實現(xiàn)整個施工層的大范圍施工進度監(jiān)控。
研究仍存在以下局限性:
1)數(shù)據(jù)集包含瓷磚僅包含白色瓷磚,在未來工作中需要擴大數(shù)據(jù)集的瓷磚類別,并建立抹灰、刷涂等多類型施工工序數(shù)據(jù)集以提高框架的遷移性。
2)圖像采集目前采用可穿戴設備巡檢,未來可在綜合考慮技術成熟度與成本問題的基礎上,結合室內(nèi)導航設備實現(xiàn)自動化更高的進度巡檢。