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

一種基于OpenCV的管道故障自適應閾值選取算法

2018-01-08 02:34:48周科成劉資劉旭代淇源
中國科技縱橫 2018年23期

周科成 劉資 劉旭 代淇源

摘 要:管道作為輸送石油和天然氣最為安全有效的方式,其質量優劣直接關系到油氣輸送的安全性,因此,對管道故障的有效提取檢測至關重要。在故障的圖像處理工作中,選擇合適的處理閾值十分重要。本文基于OpenCV計算機視覺庫,改進傳統圖像處理算法,提供一套可以根據檢測環境中光強條件自適應選取最佳檢測閾值范圍的算法。實驗結果表明,該方法在管道檢測領域中可以準確地選取一定光照強度下的最佳檢測閾值,為后續的處理過程提供了便利。

關鍵詞:油氣輸送;管道故障;自適應算法;最佳閾值范圍

中圖分類號:TP391.41 文獻標識碼:A 文章編號:1671-2064(2018)23-0013-04

1 引言

隨著國家能源工程的大力開展,作為最有效、安全的輸送方式,管道運輸一直備受青睞,而管道的安全運營是決定能源工程能發揮持續作用的基礎保障。

針對預備役管道的常見缺陷,國內外學者已經研發了諸多檢測方法來排除運營風險。在國內,韓文花等人引入小波系數去噪算法,用于去除管道檢測漏磁信號中系統噪聲[1];廖高華、甘志梅等人總結了以CCD攝像頭采集信息的焊縫檢測視覺圖像處理的方法[2];林蘭極,王庫等提出了一種基于DSP的石油管道焊縫檢測算法[3]。國際上,ANATOLY D,SERGEY K等研究了磁記憶方法對于管道缺陷線上檢測的應用[4];美國通用電氣公司(GE)應用的具有腐蝕檢測模式的超聲波相空陣管道內檢測器,檢測精確度可達90%[5]。

然而,管道內部空間狹小、光照不足及噪聲種類繁多等不利因素都為檢測閾值的選取帶來了困難。針對此現象,本文在前人研究基礎上提出一種可以根據檢測環境中的光照強度自適應選取最佳閾值的算法。

2 圖像處理平臺——OpenCV簡介

2.1 OpenCV的基本特點

OpenCV實際是經開發而得到的C源碼,全部的算法均以封裝在IPL的動態數據結構為基礎,擁有高靈活性。其以Intel處理器指令集為基礎,超過50%的函數在進行匯編或設計時,均能以Intel處理器指令集為對象,不斷優化代碼并提高代碼運行速度;OpenCV不僅有統一的功能定義與結構,而且還有便捷且靈活的接口,包含C/C++函數達300多個,其強大的矩陣計算能力幫助技術人員大幅減少開發時間與精力投入,不僅對程序開發質量與效率有提升作用,還能提高整個程序運行的穩定性與可靠性;除此之外,OpenCV可以兼容多種操作系統,包括MacOS、Linux、Windows等。同時支持大多C/C++編譯器,保證了代碼可以在多種平臺間無障礙移植,諸如C++Builder、VC.NET2005、Visual Studio及VC++6.0等。[6]

2.2 與本文算法相關的OpenCV庫函數簡介

由于本算法基于OpenCV實現,所以在此將與本算法相關的OpenCV庫函數做簡單介紹,方便讀者在復現算法的同時也可以根據實際需求靈活地進行修改。

(1)Mat():

Mat是OpenCV中最基本的庫函數,屬于core模塊。嚴格意義上講Mat屬于“類”概念,由兩個數據部分組成:矩陣頭和一個指向存儲所有像素值的矩陣的指針。用于創建一個矩陣類型,開辟內存空間來存放指定圖像。

函數原型:cv::Mat::Mat(int rows, int cols, int type, const Scalar &s;)

rows:預先指定圖像的行數;cols:預先指定圖像的列數;

type:圖像矩陣中每個元素在內存中的存儲類型;

Scalar:OpenCV中的數據類,常用來定義每個通道中的值。

(下文中起相同作用的輸入變量不再做詳細介紹)

(2)at動態地址:

at()函數隸屬于Mat類。給使用者一個非常方便的接口以訪問圖像中的每個像素。可用于遍歷單通道以及多通道圖像。用法如下:

at (rows, cols) [int channel];

type:該圖像的類型,包括灰度、GRB等;

channel:圖像的通道數。

除此之外還用幾種常見的圖像遍歷方法,比如迭代法、查找表法以及利用LUT函數等方法。在此就不一一贅述了。

(3)threshold():

threshold()函數是OpenCV所提供的一種用于執行基本閾值操作的庫函數,屬于imgproc模塊。應用此函數可以進行多種閾值操作包括二進制閾值化、反二進制閾值化、截斷閾值化等。具體用法如下:

double threshold(Mat InputArray,Mat OutputArray, double threshold,double maxval,int threshold_type);

Mat InputArray:輸入圖像;Mat OutputArray:輸出圖像;

double threshold:使用者指定的操作閾值;

double maxval:進行二值化操作時的最大閾值(最小閾值默認為0);

int threshold_type:使用者可選定要進行的閾值操作。

(4)Canny():

Canny()是OpenCV中的一種基本的邊緣檢測函數,屬于imgproc模塊。其函數模型基于John F.Canny于1986年開發出來的一種多級邊緣檢測算法,又名Canny算法,至今被很多人認為是邊緣檢測的最優算法。Canny算法主要步驟包括使用高斯平滑濾波器卷積降噪、計算梯度幅值和方向、非極大值抑制和滯后閾值選取。[7]

在OpenCV中,其具體用法如下:

Canny(detected_edges,detected_edges,lowThreshold, lowThreshold*ratio,kernel_size);

lowThreshold:進行滯后閾值選取時的低閾值;

lowThreshold*ratio:進行滯后閾值選取時用到的高閾值(一般選為低閾值的三倍);

kernel_size:進行卷積降噪時用到的卷積核的大小。

(5)findContours():

findContours()具有強大的尋找輪廓功能,屬于imgproc模塊。可以在圖像中尋找輪廓,并將輪廓的點陣信息存放在一個向量中以供調用。除此之外,用戶還可以利用此函數按照輪廓的層級關系指定將要被選擇的輪廓種類。具體用法如下:

void cv::findContours(InputOutputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode,int method,Point offset = Point() )

OutputArray hierarchy:函數返回的一個內部包含有輪廓信息的向量。

int mode:使用者想要提取的輪廓層級類型。

int method:檢測輪廓時所使用的方法,包括四像素鄰域檢測和八像素鄰域檢測。

Point offset:檢測時的錨點相對坐標,默認為中心點。

(6)drawContours():

drawContours()函數可以將按照一定格式規則存放在向量中的輪廓信息輸出在指定圖像上。通常與findContours()聯用。具體用法如下:

void DrawContours(Arr*img,Seq*contour,Scalar external_color,Scalar hole_color,int max_level,int thickness=1,int line_type=8,Pointoffset=Point(0,0));

Seq*contour:輸入一個存放輪廓信息的向量。

int max_level:向量中存儲的輪廓號,使用者可指定想要繪出的特定輪廓。

int thickness:繪出輪廓線條的厚度。

int line_type:繪出輪廓線條的類型,默認值為8。

3 一種光強自適應閾值選取方法過程

3.1 方法概述

在基于圖像處理的管道檢測過程中,對光照條件的要求總是十分嚴格。光源的位置、強度、色調等諸多因素都會可能對最終的檢測結果造成影響,基于此,該算法提出了一種在管道檢測領域中可以自行根據外界光強條件而選取最佳檢測閾值的方法。(本文中的最佳檢測閾值是指經過二值化分割后直接可以準確提取出故障輪廓的閾值)具體操作方法如下:

(1)圖像有效區域的獲取。考慮到不同的管道檢測系統有著較大的機械結構差異,由于光源和攝像頭位置的不同,導致采集到的圖像也不盡相同。在圖像采集過程中,很有可能因為這些因素而導致采集到的圖像存在一部分的未受光照區域(下文稱為“無效區域”)。為了盡可能真實地反應出圖像的受光照情況,首先需要將獲取的圖像進行截取操作,以保證操作之后的圖像最大程度上地受光照覆蓋,以達到最理想的分析效果。本文中對采集到的圖像進行灰度化處理之后截取得到長、寬分別為原圖長、寬的q倍的中心有效區域(q<1)以去除未受光照的無效區域。

(2)相關量的定義與計算。統計(1)所得圖像中像素點總數,記為j;設λ是人工定義的圖像基準灰度值,統計圖像中灰度值大于λ的像素點總數,記為α。定義灰度光強比例:β=,分別有四個特殊點α1,α2,α3,α4,滿足關系式:

;=λ;

;=2λ;

β1,β2,β3,β4分別為α1,α2,α3,α4四個特殊點對應的灰度光強比例。

對關系式進行求解,得到:

α1=;α2=;α3=;α4=;

(3)有效區域閾值計算前的條件判斷。根據條件Ⅰ:α> α4,判斷有效灰度圖像是否滿足光照條件:當滿足條件Ⅰ時,繼續步驟4);如果不滿足條件Ⅰ,即圖像中灰度值大于基準灰度值的像素個數較小,反應出檢測環境光照強度不足,如果此時仍要繼續檢測會嚴重影響故障信息的提取準確度。因此當α<α4時應當停止檢測,并提高檢測儀器的光源亮度。

(4)基于灰度光強比例的最佳閾值計算。根據灰度值大于λ的像素點總數α,運用函數δ=δ(α)求得最佳閾值δ;

δ=;

函數中ε為特殊設定的閾值補償量,α1,α2,α3,α4分別為該目標圖像最佳閾值函數的分段區間的區間端點,依據α所處的區間,由分段函數計算δ。

通過分析此函數不難發現,該函數有兩個最值,δmax= λ,δmin=λ,該函數所選取的所有閾值均在此范圍之間。可以通過人工選取λ值使所選閾值較為準確地反應出真實的最佳檢測閾值。(本文所選取的λ值為200,后文的實驗部分對此有詳細闡述)

3.2 應用舉例

基于本算法的處理流程,下面將列舉對一幅采集到的實際管道圖像的處理過程進行說明。

本例證使用了OpenCV3.4.3,并在PC端的Visual Studio 2015編譯環境下進行操作。在此基礎上,本文還使用了搭載Linux系統的樹莓派3b+主板(微處理器型號為ARM Cortex A53系列)進行算法驗證,并在管道中進行實際測試。處理效果顯示本算法可以在開發板上進行復現,可以應用于實際管道檢測產品。下文介紹的操作方法是在PC端上進行的相關操作。

(1)通過攝像頭返回一張三通道彩色圖像并進行灰度化處理。如圖1。

(2)將所得的圖片進行截取,以獲得中心有效區域。這里的q值為0.6,以下的數據計算均為在此區域內計算得出的。

(3)相關量的計算,此處設定基準灰度值λ=200,需要計算超過基準灰度值的像素總個數j、像素個數α以及灰度光強比例β。(如圖2)

判斷光照強度是否達到檢測要求,并根據公式δ=δ(α)對最佳檢測閾值進行求解,(如圖3)得到此時的最佳處理閾值δ=190。

4 實驗與分析

實驗在模擬性半封閉的管道中開展,該管道中有5組人工制造的經典故障。實驗共采取了三種不同強度的光照條件(下文分別以光強Ⅰ、光強Ⅱ和光強Ⅲ代替,三種光強依次減弱),每種條件下分別對每組故障進行三次圖像采集,并分別對采集到的圖像進行實際最佳閾值范圍的手動測量和算法對最佳閾值范圍的計算測量,共計得到了135組有效閾值范圍。下面將選取其中具有代表性的5組實驗數據(最強光強條件下的實驗三次,普通光強和最弱光強條件下的實驗各一次)進行結果分析。

為了得到最接近實際最佳的檢測閾值范圍,可以通過手動調節二值化閾值參數并人工觀測各組圖像中故障輪廓能夠被識別和檢測出的最小臨界閾值和最大臨界閾值,從而得出對于該故障的實際最佳閾值范圍,表1所示的表格展示了實際最佳的檢測閾值范圍的測量情況;另外,先計算每組故障圖片的灰度光強比例β,進而按照本文提出的光強自適應算法得出一個最佳檢測閾值,表2所示的表格展示了最佳檢測閾值范圍的算法預測情況。

通過對比表1和表2中的數據可以發現,算法預測的最佳檢測閾值均基本落在實際最佳檢測閾值范圍內,證明了本算法的有效性。

本文根據表1中的數據繪制了如圖4-1和圖4-2的閾值分布范圍直方圖。對比圖中數據可以發現,當光強變弱時,最佳檢測閾值范圍呈下降趨勢,同時最佳閾值的區間長度也隨著光強變弱而逐漸縮短。因此,如果光強過弱,將會導致檢測效果不穩定、誤檢率高等問題。為解決這些問題,本文建議使用者在檢測過程中適當提高工作環境的光照強度。

另外,通過觀察閾值分布直方圖可以發現,在最強光強下,高亮故障的最佳檢測閾值范圍為190-200,陰影故障的最佳檢測范圍為140-150,兩區間上(下)限差值為50。因此本文在算法中采用50作為高低閾值區間上(下)限的差值。

5 結語

本文提出了一種管道內基于圖像處理的光強自適應檢測算法并且展示了對實際管道故障進行的檢測實驗。該算法具體包括了一種基于灰度光強比例的閾值自適應算法,基于OpenCV視覺庫,可以有效地適應檢測過程中光照強度條件變化產生的影響,計算出適合該光照條件下的最佳檢測閾值范圍。實驗結果表明,本文提出的算法可以準確地選取最適合當前光強條件的檢測閾值,這為后續管道故障圖像處理工作打下識別和提取方面的基礎。

參考文獻

[1]韓文花.油氣管道漏磁信號去噪及缺陷重構算法的研究[D].上海:上海交通大學,2006:2-5.

[2]廖志華,甘志梅,吳園.管道焊縫檢測視覺圖像處理的研究[J].工藝與新技術,2011,40(6):33-36.

[3]林蘭極,王庫,陳立國.給予DSP的石油管道焊縫檢測機器人系統[J].電子測量技術,微處理器應用,2007,30(1):144-146.

[4]ANATOLY D, SERGEY K. The metal magnetic memory method application for monitoring of damage development in steel pipes and welded joints specimens[J].Weld World, 2013,57(12):123-136.

[5]NAVA B L,SOTO C J A.Development of an ulteasonic thickness measurement equipment[M].IEEE Signal Processing Magezine,2002,49(6):848-851.

[6]陳之堯.以OpenCV為基礎的圖像預處理技術在無人機視頻的應用[J].電子技術與軟件工程,2018,(16):63-64.

[7]楊少令,刁燕,羅華,徐天雄.一種改進的Canny圖像分割算法[J].計算機與現代化,2018,(08):57-60.

主站蜘蛛池模板: 国产无码精品在线播放| 欧美激情视频一区二区三区免费| 久久久成年黄色视频| 久久熟女AV| 高h视频在线| 国产成人一区| 欧美精品黑人粗大| 国产免费精彩视频| AV不卡国产在线观看| 极品私人尤物在线精品首页| 国产成人艳妇AA视频在线| 国产美女久久久久不卡| 亚洲天堂啪啪| 亚洲无码视频一区二区三区| 亚洲人成网18禁| 高清不卡毛片| 欧美日韩免费| 国产成人精品一区二区秒拍1o| 国产精品久久久久无码网站| 日韩欧美国产成人| 国产一级在线观看www色| 99热这里只有成人精品国产| 中文字幕伦视频| 亚洲日韩国产精品综合在线观看| 国产美女免费| 国产黄色片在线看| 8090成人午夜精品| 免费又黄又爽又猛大片午夜| 欧美亚洲一区二区三区在线| 日本一区高清| 九九九精品成人免费视频7| 无码啪啪精品天堂浪潮av| 91久久青青草原精品国产| 亚洲欧美一区二区三区蜜芽| 国产精品区网红主播在线观看| 国产特级毛片aaaaaaa高清| 中文字幕亚洲综久久2021| 国产精品黑色丝袜的老师| 国产激情国语对白普通话| 男女精品视频| 亚洲美女AV免费一区| 亚洲 成人国产| 国产9191精品免费观看| 精品国产Av电影无码久久久| 国产精品va免费视频| 久久精品无码国产一区二区三区| 重口调教一区二区视频| 92午夜福利影院一区二区三区| 国产婬乱a一级毛片多女| 国产精品人人做人人爽人人添| 免费观看亚洲人成网站| 谁有在线观看日韩亚洲最新视频| 亚洲欧洲日韩综合| 三级国产在线观看| 国产无人区一区二区三区| 免费精品一区二区h| 国产精品区视频中文字幕| 亚洲精品午夜天堂网页| 99999久久久久久亚洲| 亚洲男人的天堂在线| 在线观看视频一区二区| 免费高清a毛片| 波多野结衣中文字幕一区二区| 全部免费特黄特色大片视频| 亚洲男人天堂2020| 高清无码不卡视频| 国产精品原创不卡在线| 九九久久精品国产av片囯产区| 国产又大又粗又猛又爽的视频| 高清无码手机在线观看| 91亚洲免费| 国产亚洲视频中文字幕视频| 69免费在线视频| 女人av社区男人的天堂| 国产精品专区第一页在线观看| 亚洲第一成年网| 久久国产高潮流白浆免费观看| 亚洲人成网站色7799在线播放| 国产福利在线观看精品| 激情无码字幕综合| 国产成人久视频免费| 亚洲a级毛片|