嚴(yán)斌龍
摘 要:在我國(guó)發(fā)展過(guò)程中,鐵路運(yùn)輸為主要的交通運(yùn)輸方式。而現(xiàn)階段鐵路基礎(chǔ)設(shè)施防護(hù)弊端的存在促使整體鐵路運(yùn)輸事故頻發(fā),而鐵路事故的控制也成為影響高速鐵路運(yùn)輸行業(yè)發(fā)展的主要因素。因此為了進(jìn)一步提高鐵路運(yùn)輸能力,本文根據(jù)依據(jù)OpenCV視頻處理技術(shù),對(duì)鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)進(jìn)行了設(shè)計(jì)實(shí)現(xiàn)分析,以便為鐵路運(yùn)輸過(guò)程的安全穩(wěn)定進(jìn)行提供有效的借鑒。
關(guān)鍵詞:OpenCV;C語(yǔ)言;圖像處理;鐵路導(dǎo)軌自動(dòng)識(shí)別
中圖分類號(hào):TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2018)14-0036-02
OpenCV主要包括C、C++語(yǔ)言的開(kāi)源數(shù)據(jù)處理函數(shù)庫(kù),其可通過(guò)多種計(jì)算機(jī)視覺(jué)、數(shù)字圖像處理算法,實(shí)現(xiàn)快速實(shí)時(shí)的數(shù)字圖像處理模式。同時(shí)通過(guò)優(yōu)化C代碼編寫(xiě),OpenCV還可以結(jié)合多核處理器的優(yōu)良特點(diǎn),在Windows、Linux等操作系統(tǒng)中實(shí)現(xiàn)良好的應(yīng)用。因此進(jìn)行OpenCV鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)的構(gòu)建,對(duì)于整體鐵路導(dǎo)軌自身識(shí)別系統(tǒng)的優(yōu)化具有非常重要的意義。
1 基于OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)總體方案設(shè)計(jì)
結(jié)合OpenCV的應(yīng)用特點(diǎn),在鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)總體設(shè)計(jì)方案中主要依據(jù)計(jì)算機(jī)電子軟硬件基礎(chǔ),結(jié)合地理信息系統(tǒng)的相關(guān)工作,將整體視頻圖片進(jìn)行進(jìn)行了全面可視化分析。在具體應(yīng)用過(guò)程中給予OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別技術(shù)主要可分為基礎(chǔ)設(shè)施模塊、數(shù)據(jù)模塊、服務(wù)模塊、應(yīng)用模塊幾個(gè)方面的應(yīng)用,其中沒(méi)有模塊具有獨(dú)立運(yùn)行性能。在整體技術(shù)應(yīng)用過(guò)程中主要利用OpenCV數(shù)字圖像處理技術(shù),結(jié)合JAVA框架的應(yīng)用,便于整體數(shù)字圖像監(jiān)控工作的有效進(jìn)行。
1.2 系統(tǒng)模塊設(shè)計(jì)
在OpenCV鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)設(shè)計(jì)過(guò)程中主要可分為數(shù)據(jù)采集模塊、圖像預(yù)處理模塊、導(dǎo)軌檢測(cè)識(shí)別模塊等相關(guān)方面。其中導(dǎo)軌檢測(cè)識(shí)別模塊主要根據(jù)不同鐵路運(yùn)行情況的區(qū)別,可分為扣件檢測(cè)、道床檢測(cè)、軌道檢測(cè)等不同的分屬結(jié)構(gòu),而通過(guò)相關(guān)模塊軌道檢測(cè)數(shù)據(jù)的集成分析,可為整體鐵路導(dǎo)軌自動(dòng)識(shí)別數(shù)據(jù)的統(tǒng)一管理提供充足的數(shù)據(jù)支持。如在軌道檢測(cè)模塊主要通過(guò)對(duì)鐵路主要?jiǎng)傂澡F軌運(yùn)行情況的自動(dòng)識(shí)別,從軌道運(yùn)行的連續(xù)率、軌道裂紋、軌道曲率等情況,為后需軌道自動(dòng)識(shí)別管理提供依據(jù);而扣件檢測(cè)主要通過(guò)對(duì)鐵路軌道固定為主扣件進(jìn)行識(shí)別分析,依據(jù)OpenCV圖像借鑒算法的特點(diǎn),其主要有在、不在兩種狀態(tài),分別表示無(wú)問(wèn)題、有問(wèn)題兩種情況;道床檢測(cè)主要是針對(duì)鐵路運(yùn)行過(guò)程中道床板結(jié)問(wèn)題,在OpenCV應(yīng)用的基礎(chǔ)上,可結(jié)合LBP等技術(shù)的應(yīng)用有效判定整體鐵路導(dǎo)軌道床的穩(wěn)定情況。
視頻數(shù)據(jù)采集模塊主要通過(guò)視頻監(jiān)控系統(tǒng)的合理配置,為最終數(shù)字圖像的分析處理提供了依據(jù)。依據(jù)計(jì)算機(jī)硬件迭代速度發(fā)展特點(diǎn),為了進(jìn)一步加大CPU運(yùn)行速度,可在基礎(chǔ)計(jì)算機(jī)軟件的應(yīng)用的基礎(chǔ)上,結(jié)合FPGA的應(yīng)用提高整體視頻圖像檢測(cè)速度?;贠penCV的視頻導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)圖像預(yù)處理模塊主要包括圖像去噪、圖像增強(qiáng)、灰度化等初步圖像處理環(huán)節(jié)。
2 基于OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)應(yīng)用
2.1 基于OpenCV的導(dǎo)軌圖像獲取及處理
在實(shí)際應(yīng)用過(guò)程中,基于OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別系統(tǒng)主要利用紅外熱像儀采集視頻圖像的模式進(jìn)行導(dǎo)軌圖像獲取。在紅外熱像儀圖像輸入環(huán)節(jié),OpenCV可利用自身內(nèi)部具有的HighGUI工具包,優(yōu)先選擇更加簡(jiǎn)便、快速的視頻讀取模式,即參數(shù)為相關(guān)攝像設(shè)備ID的函數(shù)。隨后依照以往數(shù)字圖像視頻處理模式,結(jié)合CvCapture*指針、cvQueryFrame等函數(shù)的應(yīng)用,獲得所需視頻的序列幀與函數(shù)參數(shù)為CvCapture結(jié)構(gòu)的函數(shù)參數(shù)。同時(shí)通過(guò)對(duì)相關(guān)數(shù)字化圖像視頻文件的儲(chǔ)存應(yīng)用,為后需圖像處理提供有效的依據(jù)。為了實(shí)現(xiàn)實(shí)時(shí)數(shù)字圖像處理的需求,在實(shí)際處理過(guò)程中,需對(duì)相關(guān)圖像進(jìn)行一定的灰度處理,得到八位的灰度圖像,便于降低整體導(dǎo)軌圖像的數(shù)據(jù)范圍。OpenCV在進(jìn)行圖像灰度處理過(guò)程中,大多選擇加權(quán)平均值法。同時(shí)考慮到外界環(huán)境及其他設(shè)備對(duì)整體圖像灰度處理的影響,在實(shí)際數(shù)字圖像處理過(guò)程中需要進(jìn)行一定的去噪處理,便于明確數(shù)字圖像目標(biāo),為后需圖像分析提供良好的依據(jù)[1]。在具體的數(shù)字圖像噪聲去除過(guò)程中,可采用高斯濾波處理方式。高斯濾波處理方式為一種平滑的數(shù)字圖像噪聲去除措施,其主要利用卷積核對(duì)相關(guān)數(shù)字圖像的節(jié)點(diǎn)進(jìn)行卷積處理,從而依照最終計(jì)算結(jié)果獲得整體數(shù)字圖像的像素?cái)?shù)值,便于后續(xù)直道導(dǎo)軌圖像的順利處理。
2.2 基于OpenCV的導(dǎo)軌圖像邊緣提取
基于OpenCV導(dǎo)軌圖像邊緣提取主要是在相關(guān)數(shù)字圖像灰度處理環(huán)節(jié),針對(duì)局部圖像區(qū)域內(nèi)灰度變化不太協(xié)調(diào)的區(qū)域進(jìn)行集中目標(biāo)特征處理,以便后續(xù)導(dǎo)航識(shí)別過(guò)程的順利進(jìn)行。OpenCV導(dǎo)軌突出邊緣提取可以利用拉普拉斯算法、異位檢測(cè)算法對(duì)數(shù)字圖像邊緣進(jìn)行精準(zhǔn)定位。相較于其他算法而言,拉普拉斯算法主要是在高斯濾波器平滑處理之后,可結(jié)合高斯算子一階微分的應(yīng)用,獲得相關(guān)數(shù)字圖像像素點(diǎn)的梯度幅值、變動(dòng)趨勢(shì),從而便于對(duì)相關(guān)梯度幅值的抑制處理。在確定相關(guān)數(shù)字圖像邊緣像素點(diǎn)的基礎(chǔ)上,可利用雙閾值方法,獲得相關(guān)圖像的強(qiáng)邊緣、弱邊緣,在將數(shù)字圖像強(qiáng)邊緣、弱邊緣有效連接之后,可完成整體數(shù)字圖像的邊緣提取工作。
而異位檢測(cè)算法主要針對(duì)顏色差量特征不明顯的局部情況,且相關(guān)異物與導(dǎo)軌紋理一致,因此在進(jìn)行圖像邊緣處理過(guò)程中,需要采用一定的措施對(duì)異物與導(dǎo)軌之間的紋理進(jìn)行合理處理。在OpenCV中常用的紋理特征處理方法主要為歸一化法、LBP紋理法、灰度共生矩陣法等方法。其中灰度共生矩陣法主要是根據(jù)相應(yīng)空間位置紋理的出現(xiàn)情況,在圖像上的一定距離以灰度直方圖的形式對(duì)整體圖像灰度出現(xiàn)頻率進(jìn)行合理統(tǒng)計(jì)分析,從而得出相關(guān)圖像的整體信息。而通過(guò)對(duì)特定灰度值頻率的集中統(tǒng)計(jì),可得出灰度共生矩陣的衍生特征,便于更加多樣具體的統(tǒng)計(jì)特征值的獲取,如紋理能量、紋理慣性、紋理熵等;而歸一化法主要是通過(guò)面熟相關(guān)模塊間紋理相似度進(jìn)行圖像邊緣統(tǒng)一描述;LBP紋理法主要通過(guò)中心點(diǎn)的設(shè)定,對(duì)中心位置與周邊領(lǐng)域像素灰度的對(duì)比分析,進(jìn)行相關(guān)賦的設(shè)定。在這個(gè)基礎(chǔ)上以逆時(shí)針的順序?qū)ο嚓P(guān)像素灰度進(jìn)行二進(jìn)制串的編制,便于對(duì)整體圖像紋理灰度進(jìn)行有效分析。在實(shí)際應(yīng)用中,基礎(chǔ)的LBP紋理公式并不能在平坦區(qū)域圖像中發(fā)揮良好的效用,而針對(duì)灰度相差不夠明顯的圖像,可在以往LBP二進(jìn)制串描述的基礎(chǔ)上,進(jìn)行一定的擴(kuò)張計(jì)算。即摒除以往單一中心點(diǎn)與周邊區(qū)域?qū)Ρ确治雒枋龅姆椒?,將閾值與分析圖像灰度差作為主要依據(jù),結(jié)合閾值的合理設(shè)置,可達(dá)到良好的去噪處理效果。同時(shí)針對(duì)LBP運(yùn)行過(guò)程中狀態(tài)點(diǎn)過(guò)多導(dǎo)致的內(nèi)存損耗,可通過(guò)LBP狀態(tài)空間簡(jiǎn)化措施進(jìn)行合理控制。在實(shí)際過(guò)程中可通過(guò)背景建模的方式,將各個(gè)像素點(diǎn)進(jìn)行統(tǒng)計(jì)處理;然后結(jié)合制定的像素參數(shù)進(jìn)行統(tǒng)一直方圖的繪制,通過(guò)像素點(diǎn)紋理區(qū)域特征的檢測(cè);最后通過(guò)相應(yīng)紋理區(qū)域特征與背景直方圖的對(duì)比分析,可得到良好的異位圖像處理效果。
2.3 基于OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別
基于OpenCV的鐵路導(dǎo)軌自動(dòng)識(shí)別模式在實(shí)際應(yīng)用中主要包括鏈碼跟蹤提取、長(zhǎng)度數(shù)字判定、統(tǒng)計(jì)鏈碼值次數(shù)辨別線段等幾個(gè)環(huán)節(jié)。首先在鏈碼跟蹤提取環(huán)節(jié)可綜合利用Hough變換、鏈碼跟蹤算法對(duì)整體圖像空間內(nèi),相關(guān)像素點(diǎn)映射在參數(shù)平面內(nèi)對(duì)應(yīng)位置的直線進(jìn)行統(tǒng)計(jì)分析。結(jié)合OpenCV圖像實(shí)時(shí)處理特點(diǎn),可利用鏈碼表數(shù)據(jù),獲得相關(guān)線段的趨向方位、長(zhǎng)度等信息[2]。依照中心像素指向情況,鏈碼跟蹤算法下的數(shù)字圖像處理模式,主要利用快速指向檢測(cè)算法中的直線近似度計(jì)算模式。即首先假定一個(gè)鏈碼串長(zhǎng)度,并設(shè)定相關(guān)鏈碼串的端點(diǎn)間理想直線距離一定。這種情況下鏈碼串直線近似度到達(dá)一個(gè)極大值時(shí)就會(huì)與整段鏈碼串理想直線相一致。但是由于鐵路導(dǎo)軌線并不存在較為明顯的彎曲情況,因此利用鏈碼跟蹤向右看的準(zhǔn)則,將其控制在一定維度的數(shù)據(jù)庫(kù)中,通過(guò)一定鏈碼序列的的設(shè)定,保障鐵路導(dǎo)軌運(yùn)行過(guò)程中彎道導(dǎo)軌、直道導(dǎo)軌信息的全面檢測(cè)。
其次對(duì)于OpenCV下的鐵路導(dǎo)軌直線近似度識(shí)別,主要是以相關(guān)數(shù)字圖像左下方為入手點(diǎn),按照由點(diǎn)到面、由右向上的角度進(jìn)行逐一掃描。為了降低重復(fù)像素檢測(cè)對(duì)直線近似度跟搜速度的影響,可在進(jìn)行像素標(biāo)記的基礎(chǔ)上,結(jié)合以往鏈碼值,確定后續(xù)圖像直線近似值起始位置[3]。依照OpenCV鏈碼發(fā)展發(fā)現(xiàn),可對(duì)鏈碼跟蹤線段形成的鏈碼串進(jìn)行統(tǒng)一判定,通過(guò)對(duì)鏈碼串跟蹤線段實(shí)際長(zhǎng)度、預(yù)估長(zhǎng)度等情況的分析,可得出鏈碼串所跟蹤直線長(zhǎng)度近似值。
最后在具體線段辨別過(guò)程中,主要利用統(tǒng)計(jì)鏈碼值的方法進(jìn)行。在實(shí)際應(yīng)用過(guò)程中主要依據(jù)鐵路導(dǎo)軌線運(yùn)行方向,結(jié)合上一步鏈碼跟蹤鏈碼串的獲取情況,對(duì)相關(guān)鏈碼數(shù)值的出現(xiàn)頻率進(jìn)行統(tǒng)一計(jì)算并逐一對(duì)比,而所得到的最大鏈碼串則為主要線段趨勢(shì)。在具體計(jì)算過(guò)程中需要進(jìn)行一維數(shù)組的建立,并適當(dāng)相關(guān)鏈碼存放的頻率;然后從設(shè)定的某個(gè)元素開(kāi)始進(jìn)行整形變量的設(shè)定;最后通過(guò)最大值的合理賦予,對(duì)相關(guān)線段的運(yùn)行情況進(jìn)行合理判定。此外,在導(dǎo)軌圖像處理后會(huì)出現(xiàn)輕度線段斷裂的情況,這種情況下就需要利用相應(yīng)的斷點(diǎn)連接措施,結(jié)合相應(yīng)斷點(diǎn)連接位置的后需鏈碼串跟蹤掃描,從而保證制定類型導(dǎo)軌輪廓標(biāo)識(shí)的完整獲取,便于整體鐵路導(dǎo)軌識(shí)別工作的順利進(jìn)行。
3 結(jié)語(yǔ)
綜上所述,基于OpenCV的鐵路導(dǎo)軌圖像識(shí)別系統(tǒng)的應(yīng)用,可以為鐵路視頻監(jiān)控工作的順利進(jìn)行提供有效的依據(jù)。在OpenCV鐵路導(dǎo)軌圖像識(shí)別系統(tǒng)運(yùn)行過(guò)程中,通過(guò)圖像紅外采集、圖像序列幀的獲得、圖像灰度去噪處理、邊緣取出、線段獲得等過(guò)程,可得到較為清晰的鐵路導(dǎo)軌輪廓線標(biāo)識(shí),從而為整體鐵路導(dǎo)軌安全維護(hù)提供有效的依據(jù)。
參考文獻(xiàn)
[1]王燕燕,魯五一,鄭聰敏.基于圖像處理的鐵路貨車(chē)交叉桿平面度檢測(cè)算法研究[J].制造業(yè)自動(dòng)化,2016,38(9):57-62.
[2]倪崢嶸.焊軌基地鋼軌焊接質(zhì)量自動(dòng)化檢測(cè)設(shè)備研制——平直度測(cè)量模塊的研究[D].中國(guó)鐵道科學(xué)研究院,2016,25(5):26-28.
[3]徐宏鳳,張鳳生,郭士心,等.基于灰度共生矩陣的接觸線與承力索的識(shí)別研究[J].機(jī)電技術(shù),2016,(6):22-24.