999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大壩缺陷識別系統(tǒng)設計與實現(xiàn)

2023-05-29 10:19:56葛從兵嚴吉皞
軟件導刊 2023年5期
關鍵詞:模型

葛從兵,陳 劍,嚴吉皞

(南京水利科學研究院,江蘇 南京 210029)

0 引言

水庫大壩是我國經(jīng)濟社會發(fā)展的重要基礎設施,其安全是國家水安全和公共安全的重要組成部分[1]。布設監(jiān)測設施進行日常觀測,可以反映大壩安全性態(tài)。但監(jiān)測設施僅能監(jiān)測到點,不能全面覆蓋水庫大壩,存在漏檢和盲區(qū)。因此,《土石壩安全監(jiān)測技術規(guī)范》(SL 551-2012)和《混凝土壩安全監(jiān)測技術規(guī)范》(SL 601-2013)明確規(guī)定水庫大壩巡視檢查是大壩安全監(jiān)測工作的重要組成部分,它可以全面、直觀地對大壩安全性態(tài)進行快速診斷。對于大部分沒有監(jiān)測設施或監(jiān)測設施損壞的中、小型水庫,水庫大壩巡視檢查對保障水庫大壩安全運行尤為重要。

隨著水管體制改革,水庫管理人員被精簡,許多水庫將巡視檢查工作委托給服務公司,巡檢人員為非專業(yè)人員,只能做到按規(guī)定路徑巡視,用巡檢儀拍照。大部分水庫在大壩上安裝了攝像機,可以定期對大壩、庫面及其他重要區(qū)域拍照。未來,應用無人機對大壩進行巡檢是必然趨勢,它可以按規(guī)定路徑飛行,在巡視點上懸停,對巡視部位拍照。上述巡檢圖像如由專業(yè)人員逐一查看,工作量大、時效性差,因此,迫切需要一個能夠自動識別巡檢圖像中大壩缺陷的系統(tǒng)。大壩缺陷識別系統(tǒng)主要采用目標識別方法,目標識別方法包括傳統(tǒng)目標識別方法和深度學習目標識別方法[2]。

傳統(tǒng)目標識別方法基于顏色、紋理、邊緣輪廓等特征,其中模板匹配算法抗干擾能力差,因而局限性較大[3]。2003 年,F(xiàn)ortunato 等[4]將遺傳算法與模板匹配算法相結合,提高了目標識別率。2006 年,Wang 等[5]將詞袋模型應用到圖像識別分類。2010 年,Belongie 等[6]提出基于圖像梯度的形狀匹配方法,提高了匹配率,但不能實時處理目標圖像。近年來,SVM 算法在識別分類領域得到廣泛應用,對于小樣本數(shù)據(jù)分類效果較好[7]。

隨著卷積神經(jīng)網(wǎng)絡[8](Convolutional Neural Network,CNN)的出現(xiàn),深度學習[9]備受矚目。1998 年,Yann 等[10]首次提出LeNet,用于手寫數(shù)字識別,卷積神經(jīng)網(wǎng)絡性能一直沒有明顯提升。直到2012年,Krizhevsky 等[11]提 出AlexNet,將Top5 錯誤率從18.2%降低到15.4%,卷積神經(jīng)網(wǎng)絡重新煥發(fā)生機。2013 年,Zeiler 等[12]提出CNN 可視化方法。2014 年,Simonyan 等[13]設計VGG,將Top5 降低到7.3%。2015 年,Szegedy 等[14]提出GoogLeNet,采用Inception 結構,減少了參數(shù)量,提高了網(wǎng)絡性能。2016 年,He等[15]提出ResNet,允許層與層之間跳躍相連,網(wǎng)絡性能獲得很大提升。在目標識別方面,2014 年,Girshick 等[16]提出基于區(qū)域(Region)的卷積神經(jīng)網(wǎng)絡R-CNN,以候選框與卷積神經(jīng)網(wǎng)絡相結合的方式進行目標檢測,取得了突破性進展。2015 年,Girshick[17]提出Fast R-CNN,將分類與檢測任務合并,采用多任務損失函數(shù),大幅縮短了網(wǎng)絡訓練與檢測時間。同年,Ren 等[18]提出Faster R-CNN,采用RPN(Region Proposal Networks)與卷積層共享權值方式,進一步提高了圖像分類和檢測性能。2016 年,Redmon 等[19]提出采用單步(One-Stage)方法的YOLO(You Only Look Once),提高檢測速度,滿足實時性需求;同年,Liu 等[20]提出SSD(Single Shot MultiBox Detector),其速度比Faster RCNN 快,精度比YOLO 高。2017 年,He 等[21]提出Mask RCNN,用RoI Align 層替換RoI Pooling 層,增加目標輪廓預測分割分支。

本文在研究目標識別和遷移學習[22]基礎上,采用TensorFlow[23]深度學習框架,開發(fā)了B/S 架構的大壩缺陷識別系統(tǒng),實現(xiàn)了大壩缺陷識別模型訓練和缺陷自動識別。

1 系統(tǒng)設計

1.1 系統(tǒng)框架

大壩缺陷識別系統(tǒng)開發(fā)基于深度學習框架Tensor-Flow,應用TensorFlow Object Detection API 庫,采用MySQL數(shù)據(jù)庫、Python 語言[24]和Django 框架[25],系統(tǒng)框架如圖1所示。TensorFlow 是采用Python 語言的主流學習框架,其核心功能是加速計算、自動梯度、神經(jīng)網(wǎng)絡;TensorFlow Object Detection API 用于多目標檢測,并在COCO、Kitti 和Open Images 等數(shù)據(jù)集上訓練好模型,用于遷移學習;Django 是一個開源的、全棧式(full-stack)的Web 應用框架,它采用MTV 設計模式,包含Web 開發(fā)所用到的幾乎所有模塊。

大壩缺陷識別系統(tǒng)可根據(jù)需要選擇預訓練模型,建立大壩缺陷識別模型;上傳缺陷樣本,對樣本進行重構,標注樣本中的缺陷,將樣本轉(zhuǎn)換為TFRecord 格式文件;采用訓練樣本對模型進行訓練;采用評估樣本,對模型進行評估,顯示評估結果;根據(jù)模型檢查點文件,生成模型凍結文件;上傳待識別圖像,識別圖像中的缺陷。系統(tǒng)主要流程如圖2所示。

1.2 系統(tǒng)功能

大壩缺陷識別系統(tǒng)功能如圖3所示。

模型管理可添加、修改、刪除缺陷識別模型,添加或刪除模型相應的目錄、預訓練模型、標簽映射文件和配置文件;根據(jù)模型檢查點文件,生成缺陷識別模型凍結文件,凍結文件存儲模型網(wǎng)絡結構(計算圖)、模型變量及其取值;查詢模型的網(wǎng)絡節(jié)點和操作的屬性;下載模型壓縮包,包括配置文件、檢測點文件和凍結文件,供其他大壩缺陷識別的軟硬件使用。

樣本管理可將樣本的圖像文件和標注文件上傳至樣本庫;通過圖像水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、旋轉(zhuǎn)進行樣本重構,增加樣本數(shù)量;采用矩形或多邊形標注樣本中的缺陷;對樣本是否已標注、缺陷名稱是否正確進行合規(guī)性檢查,對缺陷標注位置進行準確性檢查;將圖像文件和標注文件轉(zhuǎn)換TFRecord 文件,提高模型輸入數(shù)據(jù)速度。

模型訓練可修改配置文件中模型訓練參數(shù);采用訓練樣本TFRecord 文件對預訓練模型進行訓練;顯示訓練過程參數(shù),包括學習率、分類損失、定位損失、總損失和單步訓練時間等。

模型評估可采用評估樣本TFRecord 文件對模型進行評估;顯示評估結果,包括分類損失、定位損失、AP(Average Precision)、mAP(Mean Average Precision)和評估樣本圖像。

Fig.2 System process圖2 系統(tǒng)流程

Fig.3 System function圖3 系統(tǒng)功能

缺陷識別可上傳待識別圖像,并應用模型凍結文件,對待識別圖像進行缺陷識別,顯示圖像及其缺陷類型、缺陷方框或缺陷淹膜。

2 關鍵技術

2.1 目標檢測

2.1.1 Faster R-CNN

Fast R-CNN 將整張圖像輸入至CNN,得到圖像的特征層;利用Selective Search 方法得到原始圖像中的候選框,將這些候選框投影至特征層;針對特征層上每個大小不同的候選框,對其進行池化,得到固定維度的特征表示;通過兩個全連接層,分別用Softmax 分類、回歸模型進行檢測。

Fast R-CNN 中Selective Search 方法的滑窗(anchor)選擇效率低,會產(chǎn)生大量無效候選框。針對這一問題,F(xiàn)aster R-CNN 采用RPN 代替Selective search 方法產(chǎn)生候選框,如圖4 所示。RPN 是一個小的全卷積網(wǎng)格,對于任意大小的圖像,輸出候選框的具體位置以及候選框是否為目標。

2.1.2 Mask R-CNN

Fig.4 Faster R-CNN framework圖4 Faster R-CNN框架

Mask R-CNN 是一個實例分割模型,由Faster R-CNN和FCN(Fully Convolution Nets)組合而成。前者負責物體檢測(分類標簽+方框),后者負責確定目標輪廓。Mask RCNN 用RoI Align 層替換Faster R-CNN 的RoI Pooling 層,并添加一個含F(xiàn)CN 層的預測分割分支,如圖5 所示。與RoI Pooling 層不同,RoI Align 層使用插值算法得到輸出坐標,不再進行量化;每個網(wǎng)格中的值也是使用差值算法得到,不再使用max 函數(shù)。FCN 是一種流行的語義分割算法,它通過卷積層和最大池化層,將輸入圖像壓縮到原始大小的1/32,在這個細粒度級別進行分類預測;采用反卷積層對最后一個卷積層的特征圖進行上采樣,將圖像還原成原始大小。

2.1.3 SSD

SSD 整合YOLO 的無顯式候選框提取和Faster R-CNN中的滑窗機制,在特征空間中融合不同卷積層的特征進行預測。SSD 檢測速度較快,檢測精度也很高,可以與Faster R-CNN 相媲美,在實時目標檢測方面有非常廣泛的應用。

在Faster R-CNN 中,滑窗是在主干網(wǎng)的最后一個特征層上生成。而在SSD 中,其他幾個高層特征層也產(chǎn)生滑窗。靠前的特征層用于檢測小目標,靠后的特征層用于檢測大目標。特征層上每個方格是一個特征點,每個特征點可以生成多個比例、多個尺度的滑窗。滑窗經(jīng)過正負樣本篩選,再進行分類和邊界框位置學習。

大壩缺陷識別系統(tǒng)從Github 平臺tensorflow 項目中下載采用上述3 種目標檢測方法的預訓練模型:faster_rcnn_inception_v2_coco、mask_rcnn_inception_v2_coco、ssd_inception_v2_coco,針對收集的大壩缺陷圖像,采用Object Detection API 的trainer.train 函數(shù)對預訓練模型進行再訓練,得到缺陷識別模型。缺陷識別時,加載缺陷識別模型,采用tensorflow.Session 會話的run 函數(shù)識別圖像中的大壩缺陷。

2.2 遷移學習

深度學習需要專業(yè)人員進行大數(shù)據(jù)收集和清洗,深度學習的極高識別精度主要來自于對深度卷積神經(jīng)網(wǎng)絡百萬乃至千萬個參數(shù)的訓練。要將如此多的參數(shù)訓練出來,除需要上萬,甚至十萬、百萬以上的大數(shù)據(jù)外,還要有與之相匹配的超強算力。因此,深度學習存在數(shù)據(jù)收集困難、數(shù)據(jù)標注耗時、模型訓練耗時等問題,遷移學習是一個非常好的解決方法。

遷移學習是將一個已經(jīng)在大規(guī)模數(shù)據(jù)集上訓練好的模型中的知識遷移到另一個模型,即保留特征提取器不變,在具有相似特征新的數(shù)據(jù)集上對分類器進行重新訓練。由于特征提取器無需再訓練,因而極大減少了需要訓練的參數(shù),僅需少量數(shù)據(jù)即可。

收集上萬個大壩缺陷樣本難度很大,因此大壩缺陷識別系統(tǒng)采用遷移學習方法,從Github 平臺Tensorflow 項目中下載預訓練模型,然后遷移至大壩缺陷識別模型。預訓練模型的訓練數(shù)據(jù)集為COCO(Common Objects in Context)數(shù)據(jù)集,該數(shù)據(jù)集包括人、自行車、汽車、貓、狗等多種類型的圖像。大壩缺陷識別系統(tǒng)的數(shù)據(jù)集為大壩缺陷數(shù)據(jù)集,大壩缺陷數(shù)據(jù)集需根據(jù)預訓練模型的輸出類型,采用矩形或多邊形在缺陷圖像上標出大壩缺陷位置。

3 系統(tǒng)實現(xiàn)

3.1 主要功能實現(xiàn)

3.1.1 標注文件轉(zhuǎn)換

系統(tǒng)中有2 種標注形式:矩形標簽和多邊形標簽。矩形標簽用于Faster R-CNN、SSD,一個樣本的所有矩形標簽保存在一個.xml 標注文件里;多邊形標簽用于Mask RCNN,一個樣本的所有多邊形標簽保存在一個.json 標注文件里(見圖5)。

對于矩形標簽,首先將所有.xml 標注文件匯集成一個.cvs文件,主要從各.xml標注文件中讀取文件名、圖像寬度、圖像高度、圖像深度度、缺陷名稱、缺陷框坐標等信息,保存至.csv 文件;然后將.csv 文件和圖像文件轉(zhuǎn)換為.tfrecord 文件,主要是采用具名元組方式從.csv 文件中讀取樣本的所有標簽信息,從對應的圖像文件中讀取圖像數(shù)據(jù),采用tensorflow.train.Example 函數(shù)生成tensorflow 訓練樣本,以記錄形式存入.tfrecord 文件,一個樣本一條記錄。

對于多邊形標簽,首先將多個.json 標注文件匯集成一個COCO 數(shù)據(jù)集,主要從各.json 標注文件中讀取文件名、圖像寬度、圖像高度、圖像深度、缺陷名稱、缺陷形狀和多邊形各點坐標,根據(jù)預定義標簽文件,將缺陷名稱轉(zhuǎn)換為缺陷標識,保存至.json 文件;然后將COCO 數(shù)據(jù)集的.json文件和圖像文件轉(zhuǎn)換為.tfrecord 文件,主要從.json 文件中讀取每個樣本信息及其對應的圖像數(shù)據(jù),針對每個樣本,讀取每個缺陷標簽信息,計算每個缺陷標簽坐標范圍,采用tensorflow.train.Example 函數(shù)生成tensorflow 訓練樣本,以記錄形式存入.tfrecord 文件。

Fig.5 Mask R-CNN framework圖5 Mask R-CNN框架

3.1.2 模型訓練

模型訓練采用訓練樣本TFRecord 文件對預訓練模型進行訓練,得到模型的檢查點文件。由于訓練時間較長,因此在模型訓練完成之前,系統(tǒng)將阻止啟動新的模型訓練。

模型配置文件主要包括以下5 部分參數(shù):①model:模型主要信息,包括模型架構、特征提取器、圖像尺寸調(diào)整器等;②train_config:訓練參數(shù),包括SGD 參數(shù)、輸入預處理和特征提取器初始值等;③eval_config:評估參數(shù);④train_input_reader:訓練數(shù)據(jù)集位置;⑤eval_input_reader:評估數(shù)據(jù)集位置。

模型訓練時,先根據(jù)預訓練模型文件建立網(wǎng)絡模型,再從TFRecord 文件中讀取訓練圖像數(shù)據(jù),采用Object Detection API 的trainer.train 函數(shù)對模型進行訓練。模型訓練可以采用分布式,由多臺計算機共同完成模型訓練,以縮短模型訓練時間。系統(tǒng)測試時采用單機模式。

3.1.3 訓練過程顯示

在模型訓練過程中和訓練結束時,一般可用可視化工具TensorBoard 顯示模型計算圖的計算過程,以便有針對性地調(diào)整訓練參數(shù)。由于TensorBoard 需另啟動一個Web 服務,故本系統(tǒng)采用TensorBoard 事件加速器(EventAccumulator)的scalars.Items 函數(shù)從模型訓練記錄文件中讀取計算過程數(shù)據(jù),在頁面上顯示相關參數(shù)圖形,包括學習率、分類損失、定位損失、總損失和單步訓練時間等。主要代碼如下:

3.1.4 模型評估

模型評估采用評估樣本TFRecord 文件,對模型進行評估。模型評估時,先根據(jù)檢查點文件,建立網(wǎng)絡模型,再從TFRecord 文件中讀取評估圖像數(shù)據(jù),采用Object Detection API的evaluator.evaluate 函數(shù),對模型進行評估。

模型評估后,一般也可用可視化工具TensorBoard 查看評估結果。由于同樣原因,該系統(tǒng)采用TensorBoard 事件累加器(EventAccumulator)的scalars.Items 函數(shù)從模型評估記錄文件中讀取數(shù)據(jù),在頁面上顯示相關參數(shù)圖形,包括分類損失、定位損失、AP、mAP 和評估樣本圖像,評估樣本圖像上將標注模型識別出的缺陷類型、缺陷方框或缺陷淹膜。

3.1.5 缺陷識別

缺陷識別根據(jù)模型凍結文件,對待識別圖像進行缺陷識別。缺陷識別時,首先根據(jù)模型凍結文件建立網(wǎng)絡模型,從預定義標簽文件獲取缺陷分類;然后逐個從待識別圖像文件讀取圖像數(shù)據(jù),采用tensorflow.Session 會話的run函數(shù)進行推理;最后顯示識別結果,即模型識別出的缺陷類型、缺陷方框或缺陷淹膜的圖像。缺陷識別界面如圖6所示。

Fig.6 Defect recognition圖6 缺陷識別

3.2 實驗與結果分析

從37 份大壩安全鑒定報告收集到120 張裂縫圖像和85 張破損圖像,用作訓練樣本,其他類型缺陷圖像較少;從196 份水庫日常巡視檢查報告收集到18 張裂縫圖像和5 張破損圖像,用作測試樣本。典型圖像如圖7所示。

典型圖像標注數(shù)據(jù)如下,其中size 標簽存儲圖像大小,name 標簽存儲缺陷名稱,bndbox 標簽存儲覆蓋缺陷的方框在圖像中位置:

Fig.7 Typical image圖7 典型圖像

從目標檢測類TersonFlow 預訓練模型中選擇3 個典型預訓練模型用于實驗,如表1 所示。根據(jù)收集到樣本和預訓練模型,創(chuàng)建5 個缺陷識別模型,如表2 所示。將訓練樣本上傳至系統(tǒng)后,對樣本進行缺陷標注和標注文件轉(zhuǎn)換。標注文件轉(zhuǎn)換時,系統(tǒng)隨機抽取10%樣本,用于模型評估。

模型訓練后,模型評估結果如表3 所示。從模型評估結果來看,采用mask_rcnn_inception_v2_coco 的性能優(yōu)于faster_rcnn_inception_v2_coco,采 用 faster_rcnn_inception_v2_coco的性能優(yōu)于ssd_inception_v2_coco。

將測試樣本上傳至系統(tǒng),缺陷識別結果如表4 所示。對于大壩安全而言,能夠自動識別圖像上有無缺陷至關重要,至于具體缺陷數(shù)量和位置則較為次要,故增加缺陷圖像識別率,以考察有缺陷的圖像是否被識別出來。從模型測試結果看,對于大壩缺陷識別,采用faster_rcnn_inception_v2_coco 和mask_rcnn_inception_v2_coco 較為 合適,但mask_rcnn_inception_v2_coco 標注難度和工作量稍大。造成缺陷未識別、缺陷誤識別的主要原因有:訓練樣本較少;一條裂縫被識別為多條裂縫;不同破損之間差異大;寬裂縫和某些破損相似,不宜區(qū)分。

Table 1 Pre-training model表1 預訓練模型

Table 2 Defect recognition model表2 缺陷識別模型

4 結語

本文開發(fā)的大壩缺陷識別系統(tǒng)具有模型管理、樣本管理、模型訓練、模型評估和缺陷識別等功能,可根據(jù)需要建立單缺陷識別模型和多缺陷識別模型,所訓練的模型可供其他終端使用。實驗結果表明,在訓練樣本較少的情況下,采用faster_rcnn_inception_v2_coco 和mask_rcnn_inception_v2_coco 預訓練模型可獲取性能較好的大壩缺陷識別模型。為了獲取性能更好的大壩缺陷識別模型,在進行模型訓練前需做好以下工作:①收集盡可能多的缺陷圖像樣本;②按缺陷表象進行分類,兼顧相關規(guī)范中按缺陷機理和后果分類方式;③缺陷分類要盡可能地提高類內(nèi)相似度和類間差異性;④提高樣本標注中缺陷類型和位置準確性。

Table 3 Model evaluation表3 模型評估

Table 4 Model test表4 模型測試

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數(shù)模型及應用
p150Glued在帕金森病模型中的表達及分布
函數(shù)模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 天天综合天天综合| 国产毛片高清一级国语| 国产精品亚洲天堂| 中国一级特黄大片在线观看| 青青草原国产av福利网站| 四虎国产精品永久在线网址| 国产一区二区三区日韩精品 | 日韩激情成人| 国产成人永久免费视频| 五月婷婷综合在线视频| 久久婷婷综合色一区二区| 亚洲av无码久久无遮挡| 国产午夜一级毛片| 国产精品第5页| 国产视频一二三区| 免费在线一区| 欧美一区二区精品久久久| 综合色区亚洲熟妇在线| 欧美国产日韩在线| 免费视频在线2021入口| 国产不卡一级毛片视频| 久久九九热视频| 五月六月伊人狠狠丁香网| 亚洲精品国产综合99| 激情视频综合网| 精品色综合| 亚洲综合婷婷激情| 日韩国产 在线| 亚洲AV无码乱码在线观看裸奔| 色综合中文综合网| 欧美人与动牲交a欧美精品| 国产免费精彩视频| 91尤物国产尤物福利在线| 国模在线视频一区二区三区| 亚洲国产精品日韩av专区| 国产黄色片在线看| 无码一区18禁| 亚洲av无码久久无遮挡| 亚洲人成网站在线观看播放不卡| 狠狠操夜夜爽| 成年女人a毛片免费视频| 日韩A∨精品日韩精品无码| 日本a∨在线观看| 欧美日韩国产系列在线观看| 精品少妇人妻av无码久久| 亚洲人成亚洲精品| 亚洲专区一区二区在线观看| 青青久视频| 日本三区视频| 欧美人与牲动交a欧美精品| 麻豆国产精品| 亚洲精品国产综合99| 尤物精品视频一区二区三区| 国语少妇高潮| 激情视频综合网| 99精品福利视频| av在线人妻熟妇| 国产91高跟丝袜| 久久人体视频| 91热爆在线| 国产啪在线91| 自拍偷拍欧美日韩| 永久免费av网站可以直接看的| 久久精品国产国语对白| 国产凹凸一区在线观看视频| 亚洲欧美日韩色图| 亚洲最新在线| 国产成人综合日韩精品无码首页| a级毛片视频免费观看| 国产第一页亚洲| 在线观看91香蕉国产免费| 亚洲一区网站| 性喷潮久久久久久久久| 一区二区三区四区在线| 性喷潮久久久久久久久| 欧美亚洲一区二区三区导航| 午夜国产不卡在线观看视频| 欧美国产日韩在线| AV无码无在线观看免费| 中文字幕人成人乱码亚洲电影| 亚洲成A人V欧美综合天堂| 日本亚洲欧美在线|