蔡榮生,董東雪,王利楠
(中國水利水電第六工程局有限公司,山東 臨朐 262600)
堆石壩作為一種廣泛應用于水利工程中的壩體結構,其穩定性對于保障工程安全具有至關重要的作用。在堆石壩的施工和運行過程中,密實度是衡量其質量的關鍵指標之一。然而,如果堆石壩的密實度不足,可能會導致一系列嚴重問題,如壩體強度下降、裂縫和滲漏等,甚至可能引發潰壩事故。這些問題的出現不僅會影響工程效益,更會對人民生命財產安全構成嚴重威脅。因此,對堆石壩密度進行檢測顯得尤為重要,不僅有助于及時發現和解決潛在問題,更可以為保障工程安全提供有力支持。本文將重點探討堆石壩密實度的快速檢測方法,旨在為相關工作提供有價值的參考。
堆石體結構中的填石料,其粒徑較大且顆粒分布不均,給質量檢測帶來了不小的挑戰。為了確保堆石體的質量,密實度的檢測和評估顯得尤為重要。目前,主要有兩種方法用于此項工作:直接法和間接法[1]。
間接法主要包括壓實沉降觀測法、碾壓試驗法、連續壓實控制法、承載板法以及面波法。這些方法在控制施工過程中的質量方面具有一定的準確性,但它們難以評估結構內部的密實狀態。例如,壓實沉降觀測法和碾壓試驗法雖然能夠較為準確地控制結構填筑施工過程中的質量,但它們難以對結構內部的密實狀態進行定性評價。而連續壓實控制法和承載板法則可以定量評價壓實狀態,但僅限于結構表面的壓實狀態,無法檢測出結構深處的填石料密實度[2]。
近年來,面波勘探檢測作為一種新型的勘探檢測手段逐漸受到關注[3]。它利用表面波傳播速度與結構內部材料密度、強度、彈性模量等力學參數的良好相關性,通過檢測堆石體中的波傳播速度來評估密實度。該方法具有操作簡便、探測速度快等優點,且對檢測場地要求不高,能夠一次獲得與深度相關的地層剪切波速度參數。然而,當顆粒級配變化較大時,面波檢測密實度的精度可能會受到影響,此外,檢測指標的選擇和標準的制定等問題也需要進一步探討和解決[4]。
直接法主要是坑測法,即挖坑、稱重和量體積[5]。這種方法雖然原始,但其結果相對準確可靠。然而,挖坑灌水法試驗也存在一些局限性。首先,該方法檢測效率低下、費時費力,并具有一定的破壞性。在壩體填筑高峰期,會影響施工進度。此外,由于堆石粒徑大且不規則,采樣過程中容易破壞其原狀結構,導致采樣坑不規則、邊界不清、體積計算不準確等問題,從而影響測試結果的準確性。
本課題擬從規范要求的試坑灌水法出發,結合工程實際,從試坑法全自動化多角度出發,采用激光掃描快速計算試坑體積替代灌水量測體積法,采用圖形智能識別骨料粒徑替代人工量測骨料粒徑,采用自動篩分機替代人工篩網,實現快速高精度的密度測試和級配分析,預期提高檢測精度,檢測時間節約40%以上,有力推動碾壓施工自動化水平的提高。
采用三維激光掃描技術以非接觸測量方式獲取試坑表面輪廓的點云數據,通過數據坐標轉換、點云去噪、數據拼接等方法,分析并計算點云信息,并在此基礎上,對試坑開挖表面進行3D建模[6],高效率高精度地得到試坑的三維體積數據。具體步驟如下:
1)采集激光掃描數據:使用激光掃描設備對坑進行掃描,生成.las數據。本項研究使用徠卡BLK 2 GO三維激光掃描儀[7]。
2)點云數據處理:對點云數據進行去噪、濾波、配準等處理,提高數據質量和精度[8]。
去噪:本項研究使用基于曲率流的去噪算法,利用曲率流場作為去噪工具,通過分析曲率流場的演化方程和擴散過程,達到去噪的目的。其中演化方程描述了曲率流場中每個點的運動規律,通過計算每個點的曲率速度和法向速度,得到該點的運動速度和方向。擴散過程則是通過逐步擴散去噪,將噪聲點逐步去除,同時保持點云數據的幾何特征。基于曲率流的去噪算法可以有效地去除點云數據中的噪聲和異常值,提高數據質量和精度。濾波:本項研究使用雙邊濾波算法[9],用于平滑圖像并保留邊緣細節。配準:本項研究使用迭代最近點(ICP)算法,通過迭代過程找到待配準點云與參考點云之間的最優剛體變換[10]。
3)生成網格模型:使用點云數據生成三角網格模型,進行體積計算。
4)計算體積:將試坑模型分割為若干個小的子模型,并對每個子模型進行體積計算,最終將各個子模型的體積相加得到坑的總體積。
簡易代碼:
1)將點云數據讀取到pyntcloud對象中(pyntcloud庫):
from pyntcloud import PyntCloud
cloud = PyntCloud.from_file("point_cloud_data.ply")
其中point_cloud_data.ply是點云數據文件名;
2)進行點云數據處理,包括去噪、濾波、配準等操作(pyntcloud庫)。
# 去噪
cloud = cloud.get_sample("poisson_disk_sampling", n_points=50000)
# 濾波
cloud = cloud.get_filter("radius", 0.2)
# 配準
cloud.estimate_normals()
cloud.orient_normals_consistent_tangent_plane(k=10)
cloud = cloud.get_sample("random", n=10000)
3)生成三角網格模型(pyntcloud庫)。
mesh = cloud.to_mesh()
4)計算體積(trimest庫)。
import trimesh
volume = mesh.volume
激光掃描試坑體積計算的精度取決于坑的復雜程度、掃描精度、計算精度。通過算量或者算力的提升,精度會大大超過挖坑灌水法方案。
對于人工采集的試坑填筑料進行初步篩選,將大顆粒骨料(大于100 mm,目測約拳頭大小以上)進行攤鋪識別其粒徑。
大顆粒骨料粒徑識別由骨料分割模塊、骨料粒徑判別模塊和flask框架實現。采用Python語言開發,支持window與linux部署環境。
3.2.1 骨料分割模塊
骨料分割模塊是骨料處理系統中的關鍵部分,它的主要任務是從原始骨料中準確提取出不同類型和規格的石頭。為了實現這一目標,我們采用了深度學習技術,構建了一個高效的語義分割模型[11]。
該模型基于國內自主研發的深度學習框架Paddlepaddle設計[12]。Paddlepaddle是中國首個自主研發、功能豐富、開源開放的深度學習框架,功能強大、易用性強,為模型開發提供強大的支撐。在模型設計上,我們注重輕量化,以確保在保證性能的同時,能夠實現快速的推理速度,滿足骨料處理的實時性要求。
在模型訓練之前,我們進行了數據仿真生成。由于真實的骨料環境復雜多變,使用實測數據訓練模型可能會導致泛化能力不足。通過數據仿真,我們可以生成各種不同光照、顏色、形狀的骨料圖像,模擬各種實際場景下的骨料分布情況。這些仿真數據與真實數據結合,為模型訓練提供了豐富而全面的數據集。
訓練過程中,我們采用了優化算法中的梯度下降法[13]對模型進行訓練和調優。梯度下降法主要用于求解無約束最優化問題。它通過不斷地沿著函數梯度的負方向更新參數,逐步逼近函數的最小值。梯度下降法的核心思想是在每一步迭代中,根據當前點的梯度信息,沿著負梯度的方向更新參數,直到滿足收斂條件。具體的更新公式為:
θ(t+1)=θ(t)-α×▽θ(t)。
其中,θ(t)為參數向量在時刻t的值;α為學習率;▽θ(t)為時刻t的梯度向量。學習率決定了每次更新的步長,學習率越大,步長越長,可能導致算法不收斂;學習率越小,步長越短,收斂速度可能較慢。通過梯度算法對模型參數的不斷調整和優化,我們確保了模型能夠逐漸逼近最優解,提高骨料提取的準確率。
訓練完成后,我們進行了嚴格的測試。測試中,我們模擬了各種光照環境下的骨料分布情況,對模型進行了多輪測試和性能評估。測試結果表明,我們的算法在各種光照環境下都能保持較高的準確率,能夠適應復雜多變的骨料提取任務。
3.2.2 骨料粒徑判別模塊
骨料粒徑判別模塊是基于OpenCV[14]庫實現的一個核心組件,用于精確地識別和測量骨料的粒徑。
1)基于分割算法的二值化提取。骨料分割算法是此模塊的關鍵步驟之一,它的目的是將骨料從圖像中準確地分割出來。骨料分割算法基于顏色、形狀、紋理等特征,根據骨料和背景之間的差異,將圖像轉換為二值化形式,其中骨料呈現為白色,而背景呈現為相反的顏色[15]。
2)連通域提取。在二值化圖像中,每個骨料通常會形成一個連通域,即像素相連的區域。通過提取這些連通域,可以進一步分析每個骨料的特性。在OpenCV中,使用函數findContours來提取連通域[16]。這個過程將識別出所有獨立的骨料,并為后續處理準備數據。
3)分水嶺算法分割粘連骨料。對于某些情況下,骨料之間可能存在粘連,這使得簡單的連通域提取無法準確區分它們。為了解決這個問題,可以采用分水嶺算法進行更精細的分割。分水嶺算法基于像素的灰度值或梯度等信息,將圖像中的區域劃分為不同的部分。在OpenCV中,使用watershed函數實現分水嶺算法。通過應用分水嶺算法,可以更精確地分離出粘連的骨料,提高后續處理的準確性[17]。
4)標定物尺寸計算與換算系數。為了準確地測量骨料的尺寸,需要使用標定物進行換算。標定物的尺寸是已知的,可以通過測量其在圖像中的尺寸來計算換算系數。通過比較標定物的實際尺寸和其在圖像中的尺寸,可以計算出縮放系數或比例因子,用于將像素單位轉換為實際尺寸單位。
5)最小外接圓直徑提取與真實尺寸判定。對于每個連通域(即骨料),需要提取其最小外接圓直徑。這一步通過對連通域進行輪廓分析來實現。在OpenCV中,使用minAreaRect函數找到輪廓的最小外接矩形,然后計算其直徑。根據換算系數,可以將最小外接圓直徑轉換為實際的骨料尺寸。根據設定的尺寸閾值,可以判定骨料的粒徑區間。
3.2.3 flask框架
骨料粒徑識別系統的接口部署采用flask框架實現[18],flask框架是一個輕量級的Web應用框架,使用Python編寫。它簡單、靈活并且易于擴展。flask的核心是一個WSGI工具箱和Jinja2模板引擎,與其他框架相比,flask的API和源碼非常簡潔易懂[19]。
骨料粒徑識別系統根據http接口傳入的圖片,調用骨料分割算法和骨料粒徑識別算法進行識別,最后將識別結果保存為圖片,返回圖像URL,供檢測人員查看。
對于剔除大粒徑后剩余填筑料,由于包含細顆粒,難以采用圖形識別方式自動獲取級配特征,需要利用細顆粒自動篩分系統進行精確篩分[20]。取一定重量的細顆粒填筑料,置于篩分系統最上層,啟動電源后進行自動篩分并繪制細顆粒級配曲線。
設備原理:采用直線傾斜加振動電機激振配合實現自動篩分。振動源提供振激力使粗粒料在篩網上拋起,同時在直線重力傾角的作用下,向下前方做直線運動。粗粒料從上料口均勻地進入篩分系統。通過多層篩網分離出不同規格的粗粒料。每層粗粒料逐層進入稱重料倉稱重。
設備介紹:1)設備整體采用高頻振動的方式,實現骨料與篩底一直處于半接處的狀態,振動電機采用三防電機,振激力1.0 kN兩臺。2)設備整體結構設計成傾斜式,通過振動,調節傾斜角度,實現自動篩分的目的,傾角通過驅動器驅動電缸實現0°~45°之間,無級調節。3)設備結構下部采用不銹鋼結構,上部采用航空鋁框架,篩子采用不銹鋼材料,激光打孔(篩孔孔徑:100 mm,80 mm,60 mm,40 mm,20 mm,10 mm,5 mm),篩底與主框架設計成獨立結構,每一層篩底都實現在側面更換,篩底通過鎖口鎖死,實現篩底與框架一體,篩子尺寸:400 mm×1 800 mm。4)設備整體質量不超過150 kg。5)設備倒料部分設計成電磁開關,當篩分結束后,通過控制逐層打開電磁開關,通過一個通道直接進入稱重通道。6)稱重部分采用一個傳感器,自下而上逐層稱重。傳感器精度50 kg/0.5 g。7)整體電控自動化控制部分,采用PLC控制,工控觸摸屏操控,控制部分與主機支持兩種聯接方式:WIFI、數據線。8)控制方式:設備開機,按下開始按鍵,振動電機開始振動,傾角電機自動調節到設定角度,開始進行篩分。篩分至設定時間結束自動停機,按下稱重按鍵,進入自動稱重模式,電磁開關自動逐級打開,自動完成稱重、計錄、繪制級配曲線、上傳稱重信息。
通過對比和分析多種堆石壩密度檢測方法,堆石壩快速檢測技術在實際工程中具有顯著的優勢。使用三維激光掃描技術能夠快速、準確地獲取試坑表面的點云數據,通過數據分析和處理,可以高效率地計算出試坑的三維體積。這種方法具有非接觸、高精度和非破壞性的特點,可以滿足大規模堆石壩密度檢測的需求。同時,結合圖像智能識別和小粒徑骨料自動篩分技術,可以進一步提高檢測精度和效率。這些技術的應用,有望推動堆石壩施工和運行水平的提升,為保障水利工程安全提供有力支持。