• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OpenCV的鐵路導(dǎo)軌自動識別研究

      2013-07-25 02:28:24余學(xué)才丁建平李亞南
      計算機(jī)工程與設(shè)計 2013年2期
      關(guān)鍵詞:鏈碼導(dǎo)軌圖像處理

      黃 凱,余學(xué)才,丁建平,李亞南,唐 飛

      (電子科技大學(xué)光電信息學(xué)院,四川成都610054)

      0 引言

      列車提速,行車密度增大使得鐵路運輸?shù)陌踩絹碓绞艿饺藗冴P(guān)注。在鐵路運輸環(huán)境中,鐵路導(dǎo)軌線路上的路障一直成為主要的安全隱患,而鐵路導(dǎo)軌的準(zhǔn)確識別是檢測和定位路障的基礎(chǔ)工作[1],因此如何高效且精確地識別出導(dǎo)軌位置對減少鐵路運輸事故的發(fā)生,提高鐵路行車安全有著很重要的實際意義。

      近些年,大部分提出的很多基于視覺的鐵路導(dǎo)軌識別方法,在實時性和精確性方面不能得到同時滿足,特別是在復(fù)雜的自然環(huán)境下,當(dāng)光線和天氣的情況發(fā)生變化時,鐵路導(dǎo)軌的識別就會變得比較復(fù)雜。目前,常用的導(dǎo)軌識別方法有基于邊緣檢測[2-3],直方圖均衡化和全局最優(yōu)閾值分割[4]等。

      文獻(xiàn)[5]在對道路標(biāo)識線識別的研究中提出了基于方向和長度上的線段判別算法[5]。本文在此基礎(chǔ)上,利用OpenCV圖像處理函數(shù)庫,通過對其算法進(jìn)行相關(guān)優(yōu)化改進(jìn),并采用安裝在列車頭部上方的紅外熱像儀來得到紅外視頻圖像,減少外界復(fù)雜環(huán)境的變化對導(dǎo)軌圖像處理的影響[6],以實現(xiàn)快速準(zhǔn)確地自動識別出鐵路導(dǎo)軌。

      1 OpenCV平臺簡介

      OpenCV包含有基于C/C++語言的開源圖像處理函數(shù)庫,實現(xiàn)了數(shù)字圖像處理和計算機(jī)視覺方面的很多算法,涵蓋了如醫(yī)學(xué)成像,信息安全,用戶界面,攝像機(jī)標(biāo)定,立體視覺和機(jī)器人等計算機(jī)視覺的許多應(yīng)用領(lǐng)域。OpenCV的設(shè)計目標(biāo)是執(zhí)行速度盡量快,主要關(guān)注實時應(yīng)用,采用優(yōu)化C代碼編寫,能夠充分利用多核處理器的優(yōu)勢,可以運行在Linux/Windows/Mac等操作系統(tǒng)上[7]。在VC++環(huán)境下使用時,可以方便地調(diào)用OpenCV相關(guān)庫函數(shù),使得VC在數(shù)字圖像處理方面的功能得到了極大地擴(kuò)充,優(yōu)化了相關(guān)代碼的編寫,降低了VC的開發(fā)難度,使得相關(guān)程序的開發(fā)周期縮短。

      2 基于OpenCV的導(dǎo)軌自動識別系統(tǒng)設(shè)計

      基于OpenCV平臺的導(dǎo)軌自動識別系統(tǒng)設(shè)計流程圖如圖1所示。

      圖1 導(dǎo)軌識別系統(tǒng)設(shè)計流程

      2.1 導(dǎo)軌圖像獲取及預(yù)處理

      當(dāng)紅外熱像儀作為輸入設(shè)備時,OpenCV中HighGUI工具包提供了一種簡單的方式來處理從中實時讀入的視頻流,即函數(shù)cvCreateCameraCapture(),函數(shù)參數(shù)為攝像設(shè)備的ID,返回值為CvCapture*指針。之后的處理同視頻文件類似,之后可以使用cvQueryFrame()函數(shù)來獲取視頻中的圖像序列幀,其函數(shù)參數(shù)為CvCapture結(jié)構(gòu)的指針,用來將下一幀視頻文件載入內(nèi)存,返回一個對應(yīng)當(dāng)前幀的指針。圖2為從視頻流中提取出的一幀圖像。

      圖2 視頻提取出的直道導(dǎo)軌圖像

      為了使方案滿足實時性的要求,提高圖像處理速度,對其預(yù)處理的第一步是灰度化處理,使之成為8位的灰度圖像,以此來減少處理導(dǎo)軌圖像的數(shù)據(jù)量。OpenCV在向灰度轉(zhuǎn)換時,灰度值的計算使用加權(quán)平均值法:R=G=B=(0.299)R+(0.587)G+(0.114)B。

      由于相關(guān)儀器設(shè)備的自身及外界環(huán)境的限制,還有圖像在形成和處理時不可避免的存在著一些干擾信息,使得紅外圖像存在一定的噪聲,噪聲的存在使圖像質(zhì)量變差,掩蓋目標(biāo)特征,給后續(xù)的圖像分析處理帶來不便。因此,需要去除參雜的噪聲來改善導(dǎo)軌圖像的質(zhì)量。本文采用的圖像平滑處理方式為高斯濾波,它采用卷積核來與輸入圖像的每一個點進(jìn)行卷積,將最終的計算結(jié)果之和作為輸出圖像的像素值。處理結(jié)果如圖3所示。

      圖3 經(jīng)預(yù)處理得到的直道導(dǎo)軌圖像

      2.2 導(dǎo)軌圖像的邊緣提取

      在導(dǎo)軌識別過程中,圖像的邊緣提取至關(guān)重要。在灰度圖像中,所謂邊緣就是圖像中局部區(qū)域灰度值變化顯著的部分,它集中了目標(biāo)的重要特征信息。邊緣的準(zhǔn)確提取對于后續(xù)導(dǎo)軌的自動識別至關(guān)重要。

      Canny方法使用拉普拉斯算子,在灰度圖像的處理中有著廣泛的應(yīng)用,無論在邊緣定位精度還是抗噪的能力上都有著明顯優(yōu)勢,與其他邊緣檢測方法的不同之處在于,首先采用高斯濾波器來對圖像進(jìn)行平滑,并用高斯算子的一階微分來計算像素點的梯度幅值以及方向,對所得梯度幅值進(jìn)行非極大值抑制,來確定邊緣的像素點。最后它使用雙閾值方法分別檢測圖像的強(qiáng)邊緣和弱邊緣,并且僅當(dāng)弱邊緣與強(qiáng)邊緣相連時才將弱邊緣包含在輸出圖像中[8]。經(jīng)邊緣提取后導(dǎo)軌圖像如圖4所示。

      2.3 導(dǎo)軌的自動識別

      2.3.1 鏈碼跟蹤提取線段

      目前常用的直線段提取方法有Hough變換,Hough變換實質(zhì)為把圖像空間中每一個像素點映射為參數(shù)平面內(nèi)對應(yīng)的直線,最后通過統(tǒng)計特性來解決問題,但是由于這種空間映射關(guān)系使得計算復(fù)雜度增大,實時性不高,且這種方式不能用來獲得線段的端點以及長度信息。另一種廣泛使用的是鏈碼跟蹤算法,通過鏈碼表的使用,來提取線段信息,不僅方法簡單,且能獲得線段的長度,方向信息,非常適合對線段進(jìn)行后續(xù)的判別處理[9]。

      圖4 Canny邊緣提取直道導(dǎo)軌結(jié)果

      鏈碼是圖像處理中出現(xiàn)較早的概念,根據(jù)中心像素指向它的領(lǐng)域八個鄰點的方向來定義的,取值為0~7。本文選用OpenCV中如圖5所示的鏈碼表,當(dāng)鏈碼值加1,所指方向順時針旋轉(zhuǎn)45°。由圖5可知,可以根據(jù)鏈碼表的特點用來計算跟蹤到的線段長度,當(dāng)出現(xiàn)偶數(shù)號鏈碼值時,表示連接的兩像素距離為1,出現(xiàn)奇數(shù)號鏈碼值時表示連接的兩像素距離為√2。

      圖5 Freeman鏈碼對應(yīng)的8個方向

      本方案采用由文獻(xiàn) [10]孫涵等人在新的基于鏈碼的快速直線檢測算法中提出的直線近似度公式[10]:設(shè)鏈碼串的實際長度Len(ps,pe),兩個端點ps,pe之間的理想直線距離 ps-pe,則該段鏈碼串的直線近似度表示為 S=可知,當(dāng)S值越大時,代表該段鏈碼串越接近理想直線。由于實際中鐵路導(dǎo)軌線的形狀并不可能有較大的彎曲,所以在此基礎(chǔ)上,本方案預(yù)設(shè)的閾值ST較小,這樣可同時確保遇到彎道導(dǎo)軌時候也能準(zhǔn)確檢測到曲線信息。在利用鏈碼跟蹤線段過程采用按“向右看“準(zhǔn)則進(jìn)行,通常將鏈碼信息保存在一維數(shù)組中,如整型數(shù)組code[],它的前兩個元素存放鏈碼串中首位像素的起始位置坐標(biāo)(x,y),第三元素存放鏈碼串中總的像素個數(shù),從第四位元素開始存放鏈碼序列。

      2.3.2 長度及直線近似度的判斷

      從圖像左下開始逐點向右逐行向上進(jìn)行掃描,為避免像素重復(fù)檢測,提高跟蹤時的速度,除了對掃描過的像素進(jìn)行標(biāo)記,可根據(jù)上次鏈碼值來計算下次的檢測起點,結(jié)合OpenCV鏈碼對應(yīng)方向,當(dāng)進(jìn)入鏈碼為奇數(shù)時,待測始點的鏈碼為前者減2加8,為偶數(shù)時則減1加8,這里加8是為確保鏈碼值保持在0~7之間。對鏈碼跟蹤線段形成的鏈碼串進(jìn)行分析處理,計算鏈碼串跟蹤到的線段的實際長度和理想長度,其中實際長度由鏈碼表中鏈碼值計算得出,而理想長度則由該線段的終點和起點坐標(biāo)計算求出。將實際長度Len(ps,pe)與所設(shè)閾值LT相比,如果小于閾值,則表示線段長度過短,對識別導(dǎo)軌作用不大,或是雜而亂的干擾線段可直接去除。反之,繼續(xù)計算出直線段近似度,并與所設(shè)閾值ST相比,如小于閾值ST,則進(jìn)一步過濾掉不符合要求的線段[11-12]。

      2.3.3 利用統(tǒng)計鏈碼值次數(shù)判別線段

      考慮到紅外熱像儀位于列車頭部正上方,所以列車行駛方向應(yīng)與鐵路導(dǎo)軌線方向基本保持相同,或者兩者之間的夾角在一很小范圍之內(nèi)。結(jié)合鏈碼跟蹤線段時的優(yōu)勢,提出在上一步鏈碼跟蹤線段得到鏈碼串的同時,利用統(tǒng)計所有鏈碼值出現(xiàn)的次數(shù),并進(jìn)行比較,得到的最大值可以代表線段的主要方向,來進(jìn)行方向上判斷,具體算法步驟如下:

      步驟1 建立一個一維數(shù)組a[8]并初始化為0,數(shù)組八個元素分別用來存放鏈碼串中鏈碼值出現(xiàn)的次數(shù),如a[i]=Ni,Ni為i出現(xiàn)的次數(shù),i為0~7的鏈碼值,即圖5中的對應(yīng)的八個方向。

      步驟2 由于當(dāng)前鏈碼串信息存放于code[]中,所以從第四個元素開始計數(shù),鏈碼值i出現(xiàn)一次,相對應(yīng)數(shù)組元素a[i]加1。

      步驟3 新建一整形變量Max,并賦初值為a[0]。

      步驟4 將Max分別與a[1]至a[7]進(jìn)行大小比較,若Max小于后者,則將后者值賦予Max。

      步驟5 經(jīng)過步驟4之后,此時a[0]至a[7]中最大值已賦予Max,結(jié)合實際鐵路導(dǎo)軌線總體方向可以由0或1或7來表示,來判斷最終賦予Max最大值的是否為a[0],a[1],a[7]三者之一,否的話則表示此線段方向不對,不是正常的鐵路導(dǎo)軌線,則應(yīng)消除此線段。效果如圖6所示。

      2.3.4 斷線的連接

      經(jīng)過以上方法對導(dǎo)軌圖像處理之后,可以得到主要以鐵路導(dǎo)軌線為主的輪廓線,但是由于噪聲的干擾和前期進(jìn)行的處理常常會出現(xiàn)線段輕微斷線的現(xiàn)象,即一條線段中會有少許的像素缺失。針對這種斷線情況提出了在斷線連接前后,統(tǒng)計線段鏈碼值出現(xiàn)次數(shù),利用最大值的改變來衡量斷線連接是否合理、準(zhǔn)確。經(jīng)斷線連接后的效果如圖7所示。

      具體的算法表示如下:

      步驟1 從左下逐點向右逐行向上掃描全圖,對得到的當(dāng)前鏈碼串進(jìn)行判斷。

      步驟2 對當(dāng)前鏈碼串中所有鏈碼值出現(xiàn)的次數(shù)進(jìn)行統(tǒng)計,通過比較得到的最大值來確定線段的主要方向。并取得當(dāng)前線段的終點像素坐標(biāo),以此坐標(biāo)為中心在一定范圍內(nèi)查找此線段外未標(biāo)記的像素點,這里采用6×6的矩形范圍。

      步驟3 若存在這樣的一個像素點,保存其坐標(biāo)值,并利用OpenCV的畫線函數(shù)連接這兩點。

      步驟4 對斷點連接后,所形成的新線段進(jìn)行鏈碼跟蹤,統(tǒng)計鏈碼串中鏈碼值出現(xiàn)的次數(shù),得到最大值,從而獲得新線段的主要方向。

      步驟5 比較前后方向上的改變,求出差的絕對值若小于2,則表示方向接近,此次斷線連接合理。否則,刪除由畫線函數(shù)連接兩點之間的線段。繼續(xù)尋找下一像素點,若存在則進(jìn)入步驟3,不存在則進(jìn)入步驟1繼續(xù)循環(huán),直到圖像被全部掃描完畢。

      3 實驗結(jié)果

      經(jīng)過以上步驟處理過的鐵路導(dǎo)軌線在圖中應(yīng)為最長線段,所以最后一步再去除相對較短的線條。在原圖中用加粗的實線顯示出標(biāo)識的鐵路導(dǎo)軌線如圖8所示。

      圖8 直道導(dǎo)軌原圖中所標(biāo)識出的鐵路導(dǎo)軌線

      對彎道導(dǎo)軌的情況,采用本文圖像處理方法,實驗結(jié)果如圖9彎道導(dǎo)軌檢測效果所示。

      4 圖像處理部分具體的OpenCV函數(shù)實現(xiàn)

      (1)圖像的灰度化,cvCvtColor(src,dst,CV_BGR2GRAY);將原始圖像幀轉(zhuǎn)為8位灰度圖。

      (2)平滑濾波,cvSmooth(src,dst,CV_GAUSSIAN,3,3,0,0);對圖像高斯濾波。

      (3)Canny算 子 邊 緣 提 取 cvCanny(src,dst,lowThresh,highThresh,3);參數(shù) lowThresh,highThresh分別為低,高閾值,通常高低閾值之比在2倍到3倍之間。

      (4)輪廓提取 cvFindContours(dst,storage,&contours,sizeof(CvChain),CV_RETR_LIST,CV_CHAIN_CODE);對斷線連接后的導(dǎo)軌進(jìn)行輪廓提取。

      (5)畫輪廓線 cvDrawContours(src,contours,CV_RGB(255,0,0),CV_RGB(255,0,0),100,3,8);在原圖中用指定類型的實線標(biāo)識出導(dǎo)軌輪廓線。

      5 結(jié)束語

      本文利用圖像處理相關(guān)知識,對鐵路導(dǎo)軌的自動識別進(jìn)行了詳細(xì)的研究。因基于OpenCV平臺下,采用OpenCV函數(shù)庫中的優(yōu)化函數(shù),使得本方案在實時應(yīng)用性方面表現(xiàn)出色,采用鏈碼跟蹤線段時,利用統(tǒng)計鏈碼值出現(xiàn)次數(shù)來完成了在方向上對線段的判斷和斷線的連接,最終實現(xiàn)了在原圖中準(zhǔn)確標(biāo)識出導(dǎo)軌輪廓線,為后續(xù)鐵路導(dǎo)軌線路上路障檢測和定位工作的開展奠定了基礎(chǔ)。

      圖9 彎道導(dǎo)軌檢測效果

      [1]REN Zhong.Railway recognition based on prior knowledge[D].Wuhan:Wuhan University of Technology,2007(in Chinese).[任重.基于先驗知識的鐵軌識別 [D].武漢:武漢理工大學(xué),2007.]

      [2]CHAI Shihong.Railway recognition based on edge detection [J].Railway Computer Application,2008,18(4):1-3(in Chinese).[柴世紅.基于邊緣檢測的鐵軌識別 [J].鐵路計算機(jī)應(yīng)用,2008,18(4):1-3.]

      [3]LOU Ruixia.Study on video surveillance technology for railway roadblock[D].Chengdu:Southwest Jiaotong University,2006(in Chinese).[樓瑞霞.鐵路路障視頻監(jiān)測技術(shù)[D].成都:西南交通大學(xué),2006.]

      [4]GUAN Peng,GU Xiaodong,ZHANG Liming.Automatic railroad detection approach based on image processing[J].Computer Engineering,2007,33(19):207-212(in Chinese).[關(guān)鵬,顧曉東,張立明.一種基于圖像處理的鐵軌自動檢測方法 [J].計算機(jī)工程,2007,33(19):207-212.]

      [5]WU Zhe,SUN Han.Lane mark identification algorithm based on fast line detection [J].Computer Technology And Development,2009,19(5):48-51(in Chinese).[吳哲,孫涵.基于快速直線段提取的道路標(biāo)識線識別算法[J].計算機(jī)技術(shù)與發(fā)展,2009,19(5):48-51.]

      [6]SUN Tongyi,LI Lin.Realization of moving targets detecting algorithm in infrared video images based on OpenCV [J].Informatization Research,2010,36(11):12-13(in Chinese).[孫統(tǒng)義,李林.基于OpenCV的紅外運動目標(biāo)檢測方法及實現(xiàn)[J].信息化研究,2010,36(11):12-13.]

      [7]YU Shiqi,LIU Ruizhen.Learning OpenCV(Chinese version)[M].Beijing:Tsinghua University Press,2009(in Chinese).[于仕琪,劉瑞禎.學(xué)習(xí)OpenCV(中文版)[M].北京:清華大學(xué)出版社,2009.]

      [8]ZHOU Changfa,Image processing programming with VC++[M].3rd ed.Beijing:Publishing House of Electronics Industry,2006(in Chinese).[周長發(fā),精通Visual C++圖像處理編程[M].3版.北京:電子工業(yè)出版社,2006.]

      [9]Rafael C Gonzalez,Richard E Woods.Digital image processing[M].3rd ed.Science Press,2011.

      [10]SUN Han,RENMingwu,YANGJingyu,A fast and practical algorithm for line detection [J].Application Research of Computers,2006,23(2):256-260(in Chinese).[孫涵,任明武,楊靜宇.一種快速實用的直線檢測算法[J].計算機(jī)應(yīng)用研究,2006,23(2):256-260.]

      [11]WANG Songbo.A method of traffic lane detection and tracking[J].Computer Engineering and Applications,2011,47(3):244-248(in Chinese).[王松波.一種車道線檢測與跟蹤方法[J].計算機(jī)工程與應(yīng)用,2011,47(3):244-248.]

      [12]LU Guangquan,XU Hongguo,LI Yibing.Line segment detection based on chain code detection [J].Computer Engineering,2006,32(14):1-3(in Chinese).[魯光泉,許洪國,李一兵.基于鏈碼檢瀏的直線段檢瀏方法 [J].計算機(jī)工程,2006,32(14):1-3.]

      猜你喜歡
      鏈碼導(dǎo)軌圖像處理
      棒與導(dǎo)軌問題分類例析
      電梯導(dǎo)軌支架檢驗探討
      機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
      電子制作(2018年18期)2018-11-14 01:48:20
      一種電動車傳動機(jī)構(gòu)
      模糊圖像處理,刑事偵查利器
      圖像處理技術(shù)的實戰(zhàn)應(yīng)用
      一種新壓縮頂點鏈碼
      基于鏈碼特征的幾何圖形快速識別算法*
      導(dǎo)軌減摩涂層“暴聚”問題分析及改進(jìn)
      Photo Shop通道在圖像處理中的應(yīng)用
      河南科技(2014年1期)2014-02-27 14:04:06
      昔阳县| 绍兴县| 汾阳市| 芦山县| 兰西县| 蛟河市| 于都县| 三台县| 金川县| 宁都县| 密山市| 汉中市| 铁岭市| 湘阴县| 冀州市| 宁明县| 沧州市| 原阳县| 古蔺县| 建水县| 和林格尔县| 长武县| 九寨沟县| 轮台县| 彰化市| 喀喇| 高平市| 牙克石市| 平顺县| 彩票| 巴马| 同心县| 门头沟区| 历史| 赤水市| 平江县| 阿拉善盟| 内江市| 黄浦区| 德令哈市| 蒙阴县|