亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于.NET Framework開發(fā)的深度學習圖像裂縫檢測方法

        2020-02-04 02:03:50秦龍焜
        電子技術(shù)與軟件工程 2020年20期
        關(guān)鍵詞:橋梁分類深度

        秦龍焜

        (蘇州市信息中心 江蘇省蘇州市 215000)

        1 引言

        為了保證橋梁工程結(jié)構(gòu)的安全,需要定期對橋梁結(jié)構(gòu)進行狀態(tài)檢測,其中混凝土結(jié)構(gòu)的裂縫檢測是橋梁安全檢測的一項重要內(nèi)容。隨著技術(shù)的發(fā)展,基于無人機影像的橋梁裂縫檢測方法相比傳統(tǒng)人工檢測具有覆蓋度高、速度快、效率高等優(yōu)點?;跀?shù)字圖像處理技術(shù)的邊緣提取算法(例如Canny 算子、拉普拉斯算子等)是從影像中提取裂縫的常規(guī)方法,這些方法對圖像質(zhì)量要求高,受光照、背景紋理、噪聲等因素影響較大。為了提高裂縫檢測的精度,越來越多的研究使用機器學習算法(例如K 均值算法、支持向量機分類算法等)對圖像裂縫進行定位,然后使用數(shù)字圖像處理技術(shù)進一步提取裂縫參數(shù)[1]。近年來,深度學習算法的發(fā)展及應用進一步提高了圖像裂縫檢測的準確性和效率[2-4]。

        然而,當前廣泛使用的深度學習框架例如TensorFlow、PyTorch 和Caffe2 等大都在Python 環(huán)境中運行,而實際工程應用中很多項目采用.NET Framework 開發(fā)部署,在.NET Framework 中不能直接集成當前主流深度學習模型框架,從而導致實際工程應用的不便。因此,本文通過預先將PyTorch 中訓練好的模型導出為ONNX(Open Neural Network Exchange,開放神經(jīng)網(wǎng)絡交換)格式,然后在.NET Framework 平臺加載ONNX 格式文件進行圖像裂縫檢測,實現(xiàn)在.NET Framework 環(huán)境進行有效的深度學習工程應用。

        2 圖像采集與預處理

        對某一大型混凝土結(jié)構(gòu)橋梁利用大疆精靈4 RTK 無人機進行近距離航拍,全面獲取橋梁結(jié)構(gòu)的數(shù)字影像。為了有效對深度學習網(wǎng)絡模型進行訓練,需要選取足夠數(shù)量的裂縫圖像訓練樣本數(shù)據(jù)。從本次橋梁影像數(shù)據(jù)中以及之前其他橋梁混凝土結(jié)構(gòu)的影像數(shù)據(jù)中利用圖像分塊切割工具截取224×224 像素大小的分塊圖像,人工對分塊后的圖像剔除非混凝土結(jié)構(gòu)、遮擋、光線差、質(zhì)量低的圖像,然后將剩余符合要求的圖像分類為裂縫圖像和無裂縫圖像,樣本圖像如圖1、圖2所示。

        經(jīng)過人工分類處理后得到樣本圖像12960 張,其中裂縫圖像3120 張,無裂縫圖像9840 張。進一步地,將上述樣本數(shù)據(jù)隨機選取90%作為訓練樣本,剩余10%作為測試樣本,裂縫圖像數(shù)據(jù)集如表1所示。

        3 深度學習模型建立與訓練

        圖1:裂縫圖像樣本示例

        圖2:無裂縫圖像樣本示例

        圖3:VGG16 網(wǎng)絡結(jié)構(gòu)

        卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)是人工神經(jīng)網(wǎng)絡的一種,是深度學習的代表算法之一,常被用來分析視覺圖像,廣泛應用于圖像分類、目標檢測和圖像分割等圖像和視頻分析處理中。本文采用VGG16 網(wǎng)絡結(jié)構(gòu)[5]的卷積神經(jīng)網(wǎng)絡,VGG卷積神經(jīng)網(wǎng)絡是牛津大學的計算機視覺組(Visual Geometry Group)和谷歌的DeepMind 公司一起研發(fā)的一種深度學習卷積神經(jīng)網(wǎng)絡,在圖像分類處理中具有良好的分類精度。

        具有16 個權(quán)重層的VGG16 網(wǎng)絡如圖3所示,其網(wǎng)絡結(jié)構(gòu)簡潔無分支,該網(wǎng)絡包括1 個輸入層(224×224 像素大小的RGB 3 波段圖像)、13 個卷積層、5 個最大池化層、3 個全連接層、1 個輸出層(分類結(jié)果)。圖3 中N 為分類類別數(shù)量,VGG16 整個網(wǎng)絡都使用了大小相同的卷積核尺寸(3×3)、卷積步距(大小為1)和最大池化尺寸(2×2),卷積層使用ReLU 激活函數(shù)。VGG16 網(wǎng)絡中的卷積層通過卷積核的卷積操作提取圖像特征,最大池化層縮小圖像尺寸,全連接層則對提取的特征進行分類處理。

        利用PyCharm 2020 開發(fā)平臺采用Python 3.7 版本編程語言,利用PyTorch 1.7 版本深度學習開發(fā)包構(gòu)建VGG16 網(wǎng)絡模型,對裂縫圖像訓練樣本數(shù)據(jù)進行訓練。訓練算法使用交叉熵損失函數(shù),優(yōu)化器選用隨機梯度下降SGD 算法,學習率設為0.001,動量因子為0.9,訓練迭代次數(shù)為10 次。實驗計算機配置為6 核Intel Core i7 3.2 GHz CPU,16 GB 內(nèi)存,RTX 2080 Ti 顯卡(12G 顯存),Windows 10(64 位)操作系統(tǒng)。為了提高訓練效率,將深度學習模型導入到顯卡中采用GPU 訓練,對應的CUDA 版本為10.1。模型訓練的分類精度如圖4所示,從圖中可以看出,訓練迭代10 次的測試精度達到96.18%,能夠滿足實際工程應用的精度要求。

        利用PyTorch 訓練好的網(wǎng)絡模型無法直接在.NET Framework平臺中集成調(diào)用,因此,需要對訓練好的模型進行轉(zhuǎn)換,實現(xiàn)跨框架的深度學習模型部署。開放神經(jīng)網(wǎng)絡交換ONNX 格式是一種用于表達深度學習模型的標準文件,能夠讓不同的深度學習框架(如PyTorch、Caffe2、TensorFlow 和ML.NET 等)可以采用相同格式存儲模型數(shù)據(jù)并交互,從而可以提高深度學習模型的重用性,縮短模型從構(gòu)建、訓練到應用的周期。

        在PyTorch 框架中調(diào)用torch.onnx.export()函數(shù)可以將訓練好的VGG16 網(wǎng)絡模型和參數(shù)導出為ONNX 格式,該函數(shù)的部分參數(shù)如表2所示。

        表1:裂縫圖像數(shù)據(jù)集

        表2:torch.onnx.export()函數(shù)部分參數(shù)

        圖4:VGG16 模型訓練精度

        圖5:裂縫檢測原型系統(tǒng)

        4 .NET Framework平臺集成

        ML.NET 是微軟開發(fā)的一個可以在.NET Framework 環(huán)境下運行的開源機器學習框架,能夠讓.NET 開發(fā)人員將自定義的機器學習模型和算法融入到其應用程序中。在ML.NET 框架中調(diào)用Microsoft.ML.OnnxTransformer 庫中的ApplyOnnxModel(output_names,input_names,f)(函數(shù)參數(shù)意義見表2)函數(shù)即可將ONNX格式模型文件轉(zhuǎn)換為ML.NET 支持的數(shù)據(jù)模型,從而用于后續(xù)的數(shù)據(jù)分類處理應用中。

        在Visual Studio 2017開發(fā)平臺采用C#編程語言,開發(fā)基于.NET Framework 4.7版本的圖像裂縫檢測原型程序,程序使用ML.NET 1.5版本動態(tài)鏈接庫,數(shù)字圖像處理算法采用OpenCvSharp3 庫,原型程序如圖5所示。

        由于初始拍攝的橋梁結(jié)構(gòu)影像大小為5472×3078 像素,相片范圍比較大,受環(huán)境因素等影響直接從中提取裂縫準確度不高,因此將原始圖像進行分塊處理。由于VGG16 網(wǎng)絡采用224×224 像素大小的RGB 3 波段圖像作為輸入,因此對拍攝的橋梁結(jié)構(gòu)圖片按照224×224 像素大小進行劃分切塊處理,劃分后的圖像如圖5 中的藍色網(wǎng)格線。

        在.NET Framework 程序中對圖像進行裂縫檢測前,裂縫檢測原型程序預先讀取ONNX 模型文件并轉(zhuǎn)換為ML.NET的分類模型,該讀取轉(zhuǎn)換過程只需進行一次,后續(xù)的圖像分類處理直接調(diào)用轉(zhuǎn)換后的模型進行推理計算即可。

        對于某一圖像塊(如圖5 中綠色網(wǎng)格),將其輸入到轉(zhuǎn)換后的ML.NET 分類模型中,通過VGG16 網(wǎng)絡進行計算后判斷該圖像屬于裂縫圖像還是無裂縫圖像。如果圖像塊屬于無裂縫圖像則無需后續(xù)處理,直接再處理下一圖像塊;如果圖像被分類為裂縫圖像,則利用數(shù)字圖像處理技術(shù),對圖像塊進行圖像增強、二值化、噪聲剔除、裂縫骨架線提取等處理,最后輸出裂縫的測量參數(shù)信息,如圖5 中紅色裂縫檢測結(jié)果線,從而完成橋梁圖像裂縫的自動化檢測處理。

        5 結(jié)語

        為了實現(xiàn)在.NET Framework 應用中部署深度學習算法進行橋梁裂縫檢測,本文通過建立足夠數(shù)量的裂縫圖像訓練樣本數(shù)據(jù),利用PyTorch 框架對VGG16 網(wǎng)絡進行訓練,然后將訓練好的網(wǎng)絡模型和參數(shù)導出為ONNX 格式文件,最后在.NET Framework 環(huán)境中通過ML.NET 工具包進行讀取調(diào)用。為了驗證本文處理過程的有效性,開發(fā)了基于.NET Framework 4.7 的圖像裂縫檢測原型系統(tǒng),驗證了本文處理過程的有效性。通過本文的處理思路,可以進一步地將其他機器學習框架中的圖像分類、目標檢測、目標分割等模型和算法部署到.NET Framework 應用中。

        猜你喜歡
        橋梁分類深度
        分類算一算
        深度理解一元一次方程
        分類討論求坐標
        手拉手 共搭愛的橋梁
        句子也需要橋梁
        深度觀察
        深度觀察
        深度觀察
        數(shù)據(jù)分析中的分類討論
        教你一招:數(shù)的分類
        超碰国产精品久久国产精品99| 久久精品国产亚洲AV高清y w| 超短裙老师在线观看一区| 青草久久婷婷亚洲精品| 蜜桃日本免费看mv免费版| 四虎影视在线观看2413| 国产 在线播放无码不卡| 欧美精品一级| 亚洲av有码精品天堂| 久久精品国产亚洲av网在 | 无码一区二区三区久久精品| 国产美女高潮流白浆视频| 国产精品永久在线观看| 久久人妻少妇嫩草av蜜桃| 粉嫩高中生无码视频在线观看| 精品国产女主播一区在线观看| (无码视频)在线观看| 国产精品福利自产拍久久| 91久久国产情侣真实对白 | 中文字幕日韩人妻少妇毛片 | 香蕉人妻av久久久久天天| 东京热加勒比日韩精品| 亚洲一区二区三区国产| 国内精品视频在线播放不卡| 久久青草免费视频| 亚洲一区有码在线观看| 97色伦图片97综合影院| 女人扒开下面无遮挡| 伊在人亚洲香蕉精品区麻豆 | 日本啪啪一区二区三区| 亚洲av成人av三上悠亚| 中国丰满熟妇xxxx性| 亚洲AV肉丝网站一区二区无码 | 人妻风韵犹存av中文字幕| 日韩精品综合一本久道在线视频| 青青草视频免费观看| 中文精品久久久久中文| 日韩中文字幕久久久老色批| 国产黄大片在线观看| 国产一区免费观看| 国产在线精彩自拍视频|