專利名稱:基于物體輪廓的變電站中圓/橢圓/方形儀表監(jiān)測方法
技術(shù)領(lǐng)域:
本發(fā)明屬于基于計(jì)算機(jī)圖像處理的變電站儀表監(jiān)控技術(shù)領(lǐng)域。
背景技術(shù):
按照應(yīng)用角度來劃分,本發(fā)明主要解決遠(yuǎn)程儀表的讀取問題。解決該問題相關(guān)的專利已經(jīng)存在,但是其方法主要是通過在儀表上設(shè)置特殊的電/光路或者直接通過人工讀取,然后通過電/光纜或者無線通訊傳遞到遠(yuǎn)端。譬如1993年公開號為1073008的GPT有限公司(英格蘭)的“遠(yuǎn)距離讀表裝置”,它通過一對光纖連接在待測儀表接口處,由反射光路到達(dá)傳感器然后傳遞到遠(yuǎn)端,與此相似的還有1998年美國公開號為CA2292695的“儀表自動(dòng)讀取系統(tǒng)的射頻轉(zhuǎn)發(fā)器”(RF REPEATER FORAUTOMATIC METER READING SYSTEM);2004年公開號為1477540的LG電子株式會(huì)社(韓國)的“基于移動(dòng)通信的遠(yuǎn)程儀表讀取系統(tǒng)和方法”,它主要是通過無線網(wǎng)完成發(fā)送/收集用戶的計(jì)量信息的儀表讀取系統(tǒng),并不真正進(jìn)行儀表的檢測與讀取,與此相似的還有2004年美國公開號為US6684245的“利用公共的廣播頻道進(jìn)行自動(dòng)儀表讀取系統(tǒng)”(Automatic meterreading system employing common broadcast command channel)。前者雖然能夠解決遠(yuǎn)程儀表讀取的問題,但是需要對儀表進(jìn)行改造,對于變電站這種危險(xiǎn)環(huán)境而且要求各種設(shè)備連續(xù)不間斷運(yùn)行的情形,任何改造都是相對難以實(shí)施的。
本發(fā)明采用人工智能技術(shù),利用可見光攝像頭,不需對環(huán)境以及設(shè)備做任何改造,也不帶來任何污染。通過圖像識(shí)別的手段對當(dāng)前采集圖像進(jìn)行分析及檢測識(shí)別,反饋控制攝像頭找到附近指定的儀表,并進(jìn)行讀??;最后通過無線局域網(wǎng)絡(luò),將讀取結(jié)果以及采集得到的儀表圖像傳回遠(yuǎn)端控制臺(tái)并存入數(shù)據(jù)庫。
從技術(shù)上來講,本發(fā)明主要針對圓形/方形儀表進(jìn)行檢測,并且只讀取表盤內(nèi)只有一個(gè)指針的情形(返回結(jié)果為指針角度)。本發(fā)明采用了基于物體輪廓的圓/橢圓/矩形檢測方法,目前沒有查閱到相似的檢測方法,屬于自行研究成果。關(guān)于圓/橢圓檢測的其它方法有Hough變換,根據(jù)特征點(diǎn)在參數(shù)空間投票確定圖形幾何參數(shù);在Hough變換基礎(chǔ)上的各種改進(jìn)算法,切分參數(shù)空間進(jìn)行檢測,快速Hough變換(N.Guil,E.L.Zapata,Lower Order Circle and Ellipse HoughTransform,J.Pattern Recognition vol.30,no.10,pp.1729-1744,October(1997)),隨機(jī)Hough變換(M.A.Fischler,R.C.Bolles.Random Sample ConsensusA Paradigm for Model Fitting with Applications to ImageAnalysis and Automated Cartography.Comm.of the ACM,Vol.24,pp.381-395,1981)等;從特征點(diǎn)進(jìn)行直線段、弧線的擬合,反復(fù)迭代直至找到目標(biāo)(Euijin KIM,Miki Haseyama,F(xiàn)ast and Robust EllipseExtraction from Complicated Images,ICITA2002);另外還有直接利用圓和橢圓的對稱性,根據(jù)各種直方圖進(jìn)行檢測(Qin-Zhong Ye,A preprocessing method for Hough Transform to Detect circles,Proc.IEEEConf.Computer Vision andPattern Recognition,pp.651-653(1986))等。因?yàn)镠ough變換的規(guī)整性,其計(jì)算量隨著參數(shù)空間增長而呈指數(shù)形式增加,對于橢圓很難滿足檢測實(shí)時(shí)性的要求,而圓形的儀表由于觀察視角的不同,僅僅依靠圓的檢測是不能滿足要求的。
本發(fā)明在技術(shù)方法上的特點(diǎn)在于,利用真實(shí)場景中物體輪廓的連續(xù)性這一特性,把整幅圖像的檢測分解為幾個(gè)連續(xù)輪廓子區(qū)域的檢測,有效地簡化了Hough變換,從而明顯降低了算法的復(fù)雜性,滿足了實(shí)時(shí)檢測的要求;指針的讀取在儀表區(qū)域檢測結(jié)果的基礎(chǔ)上,在表盤區(qū)域采用角度直方圖的方法進(jìn)行直線檢測來完成,具有很好的魯棒性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于計(jì)算機(jī)視覺的方法,在不需要對變電站這種危險(xiǎn)環(huán)境以及連續(xù)運(yùn)行的設(shè)備儀表做任何改動(dòng)的前提下,利用人工智能技術(shù),采用模式識(shí)別手段實(shí)現(xiàn)真正意義上的遠(yuǎn)程儀表的自動(dòng)檢測與讀取。
巡檢機(jī)器人(見附圖8)按照預(yù)定的路線自動(dòng)行進(jìn),根據(jù)巡檢的任務(wù)需求(就目前而言,譬如,檢測設(shè)備聲音是否正常、儀表讀取、溫度檢測),在該巡檢路線上會(huì)設(shè)置相應(yīng)的任務(wù)??奎c(diǎn),巡檢機(jī)器人到達(dá)預(yù)定??奎c(diǎn)位置停止前進(jìn)并且調(diào)用遠(yuǎn)程儀表檢測/讀取的功能子模塊,等待該子模塊執(zhí)行其指定任務(wù)直到收到任務(wù)完成/結(jié)束的命令后,小車?yán)^續(xù)前進(jìn)。
本發(fā)明在巡檢機(jī)器人整個(gè)系統(tǒng)設(shè)計(jì)中的位置以及交互見附圖1。本發(fā)明的特征在于它依次包括以下步驟(1)在數(shù)據(jù)庫中存入遠(yuǎn)程儀表檢測/讀取子模塊,其中預(yù)先設(shè)定下列參數(shù)及公式巡檢機(jī)器人在需要進(jìn)行儀表檢測與讀取的設(shè)備巡視線上能夠清楚地看到設(shè)備儀表的??奎c(diǎn)位置、該位置攝像頭云臺(tái)的初始方向以及鏡頭的預(yù)置位;該??奎c(diǎn)處儀表的信息——表盤、圖像的中心位置,表盤大小,儀表記錄刻度換算公式 表盤背景為黑/白兩色;
巡檢機(jī)器人搜索空間的范圍道路平面??空`差±15cm,巡檢機(jī)器人的車體偏角誤差±30°;輪廓特征點(diǎn)數(shù)的閾值T1=50,擬合因子閾值T2=0.75,其中0<T2<1, (2)總控制端計(jì)算機(jī)控制巡檢機(jī)器人到達(dá)儀表檢測與讀取的??奎c(diǎn),讀取相應(yīng)的該停靠點(diǎn)信息,調(diào)用并啟動(dòng)上述遠(yuǎn)程儀表檢測/讀取子模塊;(3)計(jì)算機(jī)根據(jù)上述??奎c(diǎn)信息,通過基于TCP/IP協(xié)議的無線局域網(wǎng)控制攝像頭及鏡頭到達(dá)指定位置;(4)計(jì)算機(jī)接收巡檢機(jī)器人通過無線局域網(wǎng)發(fā)回的圖像序列,根據(jù)該停靠點(diǎn)儀表信息,在規(guī)定的搜索空間內(nèi),調(diào)用下列搜索子程序,控制云臺(tái)及鏡頭進(jìn)行表盤搜索檢測,該搜索子程序依次包括以下步驟(4.1)設(shè)定下列數(shù)值#define SEARCHSTEPX水平方向搜索步數(shù),#define SEARCHSTEPY豎直方向搜索步數(shù),#define SEARCHSTEPZ深度方向搜索步數(shù),#define STEPX 水平方向搜索步長,#define STEPY 豎直方向搜索步長,#define STEPZ 深度方向搜索步長,#define CMD_LEFT 云臺(tái)向左轉(zhuǎn)命令,#define CMD_RIGHT 云臺(tái)向右轉(zhuǎn)命令,#define CMD_UP 云臺(tái)向上轉(zhuǎn)命令,#define CMD_DOWN 云臺(tái)向下轉(zhuǎn)命令,#define CMD_ZOOMIN 攝像頭鏡頭向前拉命令,#define CMD_ZOOMOUT攝像頭鏡頭向后拉命令,#define GOODSIZE 合適的表盤尺寸,用像素點(diǎn)數(shù)表示,#define IMAGEWIDTH 圖像寬度,#define IMAGEHEIGHT圖像高度,#define CENTERWIDTH圖像中心的范圍大小,標(biāo)記鏡頭當(dāng)前前進(jìn)方向的狀態(tài)變量IsForward,為真,表示當(dāng)前鏡頭向前拉近,否則為拉遠(yuǎn),預(yù)設(shè)置isForward=TRUE;
IsRight,為真,表示當(dāng)前鏡頭向前向右偏轉(zhuǎn),否則為向左偏轉(zhuǎn),預(yù)設(shè)置isRight=TRUE;記錄當(dāng)前鏡頭位置P1=P2=(0,0,0),其中,P1(x,y,z)標(biāo)記鏡頭當(dāng)前位置,P2(x,y,z)標(biāo)記鏡頭上次所定目標(biāo)的搜索位置;(4.2)檢測當(dāng)前圖像若檢測到儀表盤,便按以下步驟進(jìn)行(4.2.1)保存鏡頭位置P2;(4.2.2)若表盤中心與圖像中心的位置不一致,計(jì)算機(jī)先調(diào)整鏡頭的左右、上下位置,再重新檢測當(dāng)前圖像;(4.2.2)若表盤中心與圖像中心的位置一致,計(jì)算機(jī)便判斷表盤大小是否合適;(4.2.3)若尺寸不合適,計(jì)算機(jī)先調(diào)整鏡頭的前后位置,再重新檢測當(dāng)前圖像;(4.2.4)若尺寸合適,計(jì)算機(jī)便鎖定目標(biāo),程序返回讀數(shù),發(fā)送結(jié)束命令;若檢測不到儀表盤,計(jì)算機(jī)控制鏡頭退回上一次保存的位置,接著按以下步驟進(jìn)行(4.2.5)計(jì)算機(jī)先把鏡頭拉近,再重新檢測當(dāng)前圖像;若仍然檢測不到,再把鏡頭拉遠(yuǎn),重新檢測當(dāng)前圖像,如果仍檢測不到,便執(zhí)行下一步驟;(4.2.6)計(jì)算機(jī)把鏡頭拉到最近位置后,再分別把云臺(tái)位置拉到最右和最左,重新檢測當(dāng)前圖像,如果仍然檢測不到當(dāng)前圖像,便執(zhí)行下一個(gè)步驟;(4.2.7)計(jì)算機(jī)再把云臺(tái)位置分別移動(dòng)至最上和最下位置,重新檢測當(dāng)前圖像,若搜索失敗,發(fā)送結(jié)束命令;(4.2.8)計(jì)算機(jī)再把鏡頭拉遠(yuǎn),重復(fù)步驟(4.2.5)到(4.2.8);(5)目標(biāo)鎖定后,計(jì)算機(jī)根據(jù)檢測結(jié)果控制鏡頭使其得到待檢測儀表合適的圖像大小和尺寸,讀取指針角度并換算成表盤讀數(shù),通過無線局域網(wǎng)發(fā)回;對于不能讀取的情況,通過無線局域網(wǎng)把合適的圖像序列發(fā)回顯示,由人工讀取并發(fā)給巡檢機(jī)器人“任務(wù)完成”信號;若目標(biāo)搜索失敗,也通過無線局域網(wǎng)向計(jì)算機(jī)發(fā)送檢測失敗信息同時(shí)發(fā)給巡檢機(jī)器人“任務(wù)完成”信號;(6)計(jì)算機(jī)接收到鏡頭采集的視頻圖像后,便啟動(dòng)檢測程序,按以下步驟處理視頻圖像(6.1)預(yù)處理,它依次包括以下步驟(6.1.1)按下式把輸入的視頻圖像轉(zhuǎn)化為灰度圖像每一個(gè)像素點(diǎn)的灰度值I=R+B+G3,]]>其中,R、G、B分別為紅、綠、藍(lán)三色的亮度值;
(6.1.2)按以下步驟對灰度圖像進(jìn)行中值濾波先由計(jì)算機(jī)計(jì)算每一個(gè)像素點(diǎn)周圍的8個(gè)點(diǎn)的亮度值以及該點(diǎn)原來的亮度值的平均值I(x,y),把它作為該點(diǎn)新的亮度值I(x,y)=Σi=-11Σj=-11I(x+i,y+j)9,]]>然后用已知方法對灰度直方圖做均衡化處理,直方圖均衡化的具體原理和算法是已知的;(6.1.3)用開放源代碼的圖像處理函數(shù)庫,即OPENCV對上述灰度圖像進(jìn)行Canny邊緣檢測,得到同樣尺寸的二值圖像,其中,含有邊緣信息的像素點(diǎn)為白色,其它區(qū)域?yàn)楹谏?,把這些白色的像素點(diǎn)稱為邊緣特征點(diǎn);(6.1.4)再用OPENCV函數(shù)庫中的形態(tài)學(xué)閉(先膨脹,再腐蝕)運(yùn)算函數(shù),對上述二值圖像進(jìn)行處理,得到同一物體邊緣圖像盡可能連續(xù)的可用輪廓線表示的二值圖像;(6.2)按以下步驟進(jìn)行幾何圖形檢測(6.2.1)把上述整幅圖像所有的輪廓線按鏈碼形式進(jìn)行編碼,得到一個(gè)輪廓鏈表;(6.2.2)把包含的點(diǎn)數(shù)超過T1的每條輪廓線切分為單獨(dú)的子圖像,去掉剩下的輪廓線;(6.2.3)在每一個(gè)輪廓圖像上利用RANSAC方法,即隨機(jī)采樣投票圖形擬合法進(jìn)行指定圖形的擬合(6.2.3.1)標(biāo)準(zhǔn)圓的擬合圓心坐標(biāo)(x0,y0)x0=dy1dy2dy3-(x12dy2+x22dy3+x32dy1)2(x1dy3+x2dy1+x3dy2),]]>y0=dx1dx2dx3-(y12dx2+y22dx3+y32dx1)2(y1dx3+y2dx1+y3dx2);]]>半徑R=(x0-x1)2+(y0-y1)2;]]>其中Pi(xi,yi)(i=1,2,3)是輪廓線上三個(gè)特征點(diǎn),dxi=(xi-x(i+1)%3),dyi=(yi-y(i+1)%3),下標(biāo)“%3”表示除以3的余數(shù);(6.2.3.2)一般橢圓的擬合橢圓作為一般的二次曲線有如下的表達(dá)式
a0x2+2a1xy+a2y2+2a3x+2a4y=1,其中的系數(shù)已經(jīng)經(jīng)過歸一化處理,將右邊的參數(shù)置為1,不考慮經(jīng)過原點(diǎn)的情況;取輪廓線上的五個(gè)特征點(diǎn)Pi(xi,yi)(i=1,…,5),構(gòu)造線性方程組A=P-1B,其中,A=[a0a1a2a3a4]T,B=[1 1 1 1 1]T,P=x122x1y1y122x12y1x222x2y2y222x22y2x322x3y3y322c32y3x422x4y4y422x42y4x522x5y5y522x52y5,]]>標(biāo)記I1=a0+a2,I2=a0a1a3a1a2a4a3a4-1,]]>根據(jù)下面的條件限制,即橢圓參數(shù)應(yīng)該滿足的條件,可以進(jìn)行判斷I1和I2應(yīng)該滿足I1I2<0,I3=a0a1a1a2=a0a2-a12>0;]]>根據(jù)圓錐曲線特性,將二次曲線一般參數(shù)轉(zhuǎn)化為常用的橢圓中心、軸、傾角的描述形式,轉(zhuǎn)化公式如下長軸—a=-I3λ1I2,]]>長軸—b=-I3λ2I2,]]>其中λ1和λ2是矩陣I2的特征值;長軸偏角—θ=12arctan2a1a0-a2;]]>中心點(diǎn)
(6.2.3.3)矩形的擬合采用OPENCV函數(shù)庫中已有的基于輪廓的矩形擬合算法得到,直接輸出檢測到的矩形四個(gè)定點(diǎn)坐標(biāo)值;(6.2.4)檢測結(jié)果后處理(6.2.4.1)擬合的邊緣信息特征點(diǎn)的確定它通過計(jì)算360度的角度上每一個(gè)角度是否存在被擬合到的特征點(diǎn)來確定;(6.2.4.2)用灰度直方圖的方法判斷檢測的表盤背景顏色與已知背景顏色是否一致,按下以下步驟進(jìn)行(6.2.4.2.1)創(chuàng)建128個(gè)投票箱VoteBox[128],將投票箱清空置零;(6.2.4.2.2)對于檢測結(jié)果區(qū)域的每一個(gè)像素點(diǎn)的亮度值I(0<=I<=255),對應(yīng)第I/2個(gè)投票箱,將該投票箱記一數(shù),VoteBox[I/2]++;(6.2.4.2.3)遍歷128個(gè)投票箱,記錄得票最多的投票箱序號為MaxBox;(6.2.4.2.4)如果MaxBox<32,則背景為黑色;如果MaxBox>96,則背景為白色;否則背景顏色錯(cuò)誤;(6.2.4.2.5)檢測的背景顏色與已知背景顏色是否一致,若一致,繼續(xù)下面檢測;否則舍棄;(6.2.4.3)指針檢測統(tǒng)計(jì)表盤內(nèi)的特征點(diǎn)與表盤中心連線與圖像X軸構(gòu)成的夾角,制成角度直方圖,根據(jù)步驟(6.2.4.2)的方法,出現(xiàn)峰值的角度也就是得票數(shù)最多的投票箱,即為指針?biāo)诘慕嵌取?br>
本發(fā)明采用基于物體輪廓的圓/橢圓/矩形檢測算法,有效的將復(fù)雜的幾何圖形檢測問題分割為若干子問題,新的檢測算法能夠在不降低檢測正確率的前提下大大提高檢測速度,從而滿足系統(tǒng)實(shí)時(shí)性的要求,符合實(shí)際應(yīng)用的需求。
本發(fā)明具體的檢測算法時(shí)間性能對比表如下所示
表1.各部分平均檢測
表2.時(shí)間性能對比
圖1.發(fā)明模塊位于整個(gè)系統(tǒng)的結(jié)構(gòu)示意圖(深色標(biāo)注為本發(fā)明涉及的部分)圖2.搜索示意圖將空間分為3*3的搜索點(diǎn)陣,初始位置位于0號位置,為避免攝像頭重復(fù)搜索,按上述編號對空間各點(diǎn)順次搜索,箭頭示意搜索前進(jìn)方向,部分沒有畫出;不可見部分也沒有標(biāo)注序號圖3.圖像檢測結(jié)果組圖(3.a)測試圖片1圓檢測結(jié)果(3.b)測試圖片1橢圓檢測結(jié)果(3.c)測試圖片2圓檢測結(jié)果(3.d)測試圖片2橢圓檢測結(jié)果圖4.鏈碼表示示意圖(4.a)鏈碼的表示方法;′*′標(biāo)記了拐點(diǎn)(4.b)鏈碼方向規(guī)定標(biāo)記圖5.搜索策略流程6.指針提取結(jié)果圖,白色實(shí)線為檢測的結(jié)果圖7.圖像預(yù)處理結(jié)果組圖(7.a)灰度圖像經(jīng)過中值濾波去噪(7.b)直方圖均衡化,適應(yīng)光線變化(7.c)Canny算子檢測得到邊緣圖像(7.d)經(jīng)過閉運(yùn)算后的邊緣圖像圖8.巡檢機(jī)器人在變電站現(xiàn)場外觀9.檢測算法流程圖具體實(shí)施方式
1.系統(tǒng)硬件結(jié)構(gòu)整個(gè)系統(tǒng)通過基站(總控制端計(jì)算機(jī))和移動(dòng)站(巡檢機(jī)器人計(jì)算機(jī))之間通過基于TCP/IP網(wǎng)絡(luò)協(xié)議的無線局域網(wǎng)進(jìn)行通訊,從而實(shí)現(xiàn)遠(yuǎn)程的控制與檢測。
2.搜索程序按以下步驟依次進(jìn)行首先設(shè)定#define SEARCHSTEPX 水平方向搜索步數(shù),
#define SEARCHSTEPY豎直方向搜索步數(shù),#define SEARCHSTEPZ深度方向搜索步數(shù),#define STEPX 水平方向搜索步長,#define STEPY 豎直方向搜索步長,#define STEPZ 深度方向搜索步長,#define CMD_LEFT 云臺(tái)向左轉(zhuǎn)命令,#define CMD_RIGHT 云臺(tái)向右轉(zhuǎn)命令,#define CMD_UP 云臺(tái)向上轉(zhuǎn)命令,#define CMD_DOWN 云臺(tái)向下轉(zhuǎn)命令,#define CMD_ZOOMIN 攝像頭鏡頭向前拉命令,#define CMD_ZOOMOUT攝像頭鏡頭向后拉命令,#define GOODSIZE 合適的表盤尺寸,用像素點(diǎn)數(shù)表示,#define IMAGEWIDTH 圖像寬度,#define IMAGEHEIGHT圖像高度,#define CENTERWIDTH圖像中心的范圍大小。
因?yàn)镚PS定位的誤差、巡檢機(jī)器人規(guī)劃的誤差以及車身方向的不確定性,巡檢機(jī)器人有時(shí)很難理想到達(dá)設(shè)定的??奎c(diǎn)以及設(shè)定的方向角。從這個(gè)意義上考慮,實(shí)現(xiàn)一定范圍內(nèi)的搜索顯得非常必要。這是本發(fā)明僅次于檢測算法的另一核心內(nèi)容。
目前巡檢車在??奎c(diǎn)處的??烤葹椤?5cm,同時(shí)巡檢車??繒r(shí)的車體方向不可設(shè)定也不可反饋。這也就說明,雖然檢測??奎c(diǎn)處已經(jīng)設(shè)定了攝像頭和云臺(tái)的預(yù)置位,但是仍然會(huì)出現(xiàn)儀表不可見的情況,這樣就要求儀表監(jiān)測部分有一定的搜索功能,彌補(bǔ)??烤炔粔虻那闆r。根據(jù)測試結(jié)果,確定一個(gè)可以容忍的誤差限道路平面??奎c(diǎn)誤差±15cm,車體偏角誤差±30°。
搜索策略本身比較簡單將巡檢車上述偏差范圍(道路平面??奎c(diǎn)誤差±15cm,車體偏角誤差±30°)作為整個(gè)搜索空間,在三個(gè)方向上分別離散化(離散化的具體參數(shù)由前面搜索步數(shù)決定),即確定一些均勻分布的檢測點(diǎn),這樣得到一個(gè)三維的搜索點(diǎn)陣,通過控制程序讓攝像頭順序在這些點(diǎn)進(jìn)行檢測即可。用一個(gè)很簡單的立方體結(jié)構(gòu)圖表示整個(gè)搜索的策略(見附圖2)。圖示搜索策略能夠高效的一次遍歷各個(gè)搜索點(diǎn)而不會(huì)出現(xiàn)重復(fù)搜索的情況。
另外,搜索檢測鎖定目標(biāo)以后,云臺(tái)根據(jù)檢測結(jié)果進(jìn)行自動(dòng)調(diào)整,而不再按照搜索策略逐步搜索。但是,由于變電站背景比較復(fù)雜,還需要考慮誤檢測造成的影響。本發(fā)明針對上述各種情況進(jìn)行了有效的處理——記錄鎖定目標(biāo)的空間點(diǎn)P1,如果跟蹤目標(biāo)一段時(shí)間以后目標(biāo)丟失,控制云臺(tái)重新回到該點(diǎn)按搜索策略繼續(xù)搜索,具體步驟描述如下A.攝像頭初始到達(dá)預(yù)置位置。使用兩個(gè)記錄攝像頭位置的三維矢量P1(x,y,z)、P2(x,y,z),其中前者標(biāo)記攝像頭當(dāng)前的位置,后者標(biāo)記攝像頭上次鎖定目標(biāo)時(shí)的搜索位置;以及標(biāo)記攝像頭當(dāng)前前進(jìn)方向的狀態(tài)量isForward、isRight,當(dāng)前者為真,則表示攝像頭當(dāng)前鏡頭向前拉近,否則攝像頭拉遠(yuǎn);當(dāng)后者為真,則表示攝像頭當(dāng)前向右偏轉(zhuǎn),否則攝像頭向左偏轉(zhuǎn)。初始化上述變量,P1=P2=攝像頭初始位置;isForward=isRight=TRUE。(程序預(yù)先設(shè)定搜索深度以及步長)B.檢測當(dāng)前圖像以及控制搜索1)如果沒有檢測到目標(biāo),如果P1!=P2,攝像頭退回到P1位置,P2=P1。
按照深度搜索如果鏡頭正在朝前方拉近(isForward==TRUE)如果鏡頭已經(jīng)到達(dá)最近(P1.z>=SEARCHSTEPZ),按照水平方向搜索如果云臺(tái)正在向右移動(dòng)(isRight==TRUE)如果云臺(tái)已到達(dá)最右(P1.x>=SEARCHSTEPX)則云臺(tái)上移一步CMD_UP搜索如果搜索完整個(gè)空間(P1.y>=SEARCHSTEPY)跳到C步;否則云臺(tái)左移CMD_RIGHT搜索如果云臺(tái)正在向左移動(dòng)(isRight==FALSE)如果云臺(tái)已到達(dá)最左(P1.x<=0)則云臺(tái)上移一步CMD_UP搜索如果搜索完整個(gè)空間(P1.y>=SEARCHSTEPY)跳到C步;否則云臺(tái)左移CMD_LEFT搜索否則鏡頭拉近CMD_ZOOMIN(如附圖2所示)否則,如果鏡頭正在朝后方拉遠(yuǎn)(isForward==FALSE)如果鏡頭已經(jīng)到達(dá)最遠(yuǎn)(P1.z<=0),按照水平方向搜索如果云臺(tái)正在向右移動(dòng)(isRight==TRUE)如果云臺(tái)已到達(dá)最右(P1.x>=SEARCHSTEPX)則云臺(tái)上移一步CMD_UP搜索如果搜索完整個(gè)空間(P1.y>=SEARCHSTEPY)跳到C步;否則云臺(tái)左移CMD_RIGHT搜索如果云臺(tái)正在向左移動(dòng)(isRight==FALSE)如果云臺(tái)已到達(dá)最左(P1.x<=0)則云臺(tái)上移一步CMD_UP搜索如果搜索完整個(gè)空間(P1.y>=SEARCHSTEPY)跳到C步;否則云臺(tái)左移CMD_LEFT搜索否則鏡頭拉遠(yuǎn)CMD_ZOOMOUT(如圖2所示)紀(jì)錄當(dāng)前位置P1,返回B步繼續(xù)執(zhí)行;2)如果檢測到目標(biāo)檢測結(jié)果返回兩個(gè)主要的特征——幾何中心Center(x,y),目標(biāo)尺寸Size(對于圓,為半徑;橢圓,則為長軸;矩形,則為寬)。記錄圖像中心點(diǎn)坐標(biāo)ORIGIN(IMAGEWIDTH/2,IMAGEHEIGHT/2)。記錄當(dāng)前搜索位置在P2。
如果目標(biāo)偏左(Center.x<ORIGIN.x-CENTERWIDTH/2),控制云臺(tái)左移CMD_LEFT;否則,如果目標(biāo)偏右(Center.x>ORIGIN.x+CENTERWIDTH/2)控制云臺(tái)右移CMD_RIGHT;否則,如果目標(biāo)偏上(Center.y<ORIGIN.y-CENTERWIDTH/2)控制云臺(tái)上移CMD_UP;否則,如果目標(biāo)偏下(Center.y>ORIGIN.y+CENTERWIDTH/2)控制云臺(tái)下移CMD_DOWN;否則,如果目標(biāo)尺寸偏小(Size<BETTERSIZE)控制鏡頭拉近CMD_ZOOMIN;否則,如果目標(biāo)尺寸偏大(Size>BETTERSIZE+20)控制鏡頭拉遠(yuǎn)CMD_ZOOMOUT;否則,目標(biāo)達(dá)到最佳位置,跳轉(zhuǎn)到C步;返回B步繼續(xù)執(zhí)行;
C.搜索結(jié)束,發(fā)任務(wù)結(jié)束信號,退出。
搜索策略的流程圖見附圖5。
3.檢測程序依次包含以下步驟輸入攝像頭采集的視頻圖像;輸出是否存在儀表?如果存在,輸出儀表盤位置Center(x,y)、尺寸大小Size、指針角度讀數(shù)(Pointer)。
第一步,圖像預(yù)處理采集圖像攝像頭得到真彩色圖像,含有R,G,B三個(gè)通道,根據(jù)檢測需要將待檢測真彩色圖像轉(zhuǎn)為灰度圖像,對每一個(gè)像素點(diǎn)具體換算公式如下I=R+B+G3--(3)]]>對于灰度圖像進(jìn)行中值濾波,去掉一部分由于圖像采集帶來的噪聲雜點(diǎn);具體的方式是通過計(jì)算每一個(gè)點(diǎn)周圍的8個(gè)點(diǎn)的亮度值以及該點(diǎn)原來的亮度值的平均值作為該點(diǎn)新的亮度值。計(jì)算公式如下I(x,y)=Σi=-11Σj=-11I(x+i,y+j)9--(2)]]>其中,I(x,y)表示像素點(diǎn)(x,y)的亮度值。
為了適應(yīng)不同的光照條件,還必須對灰度圖像進(jìn)行直方圖均衡化處理,從而得到預(yù)處理灰度圖像。處理后的輸出結(jié)果仍然是一幅灰度圖像。
然后,利用經(jīng)典的Canny邊緣檢測(J.Canny.A Computational Approach to Edge Detection,IEEE,Trans.on Pattern Analysis and Machine Intelligence,8(6),pp.679-698(1986))算子提取灰度圖像的邊緣信息,得到邊緣圖像。本發(fā)明利用OPENCV處理庫函數(shù)進(jìn)行Canny邊緣檢測,輸入的灰度圖像,經(jīng)過處理以后輸出同樣尺寸的二值圖像,含有邊緣信息的像素點(diǎn)為白色,其它區(qū)域?yàn)楹谏⑦@些白色的像素點(diǎn)稱為邊緣特征點(diǎn)。后續(xù)的擬合檢測主要針對這些特征點(diǎn)。
由于背景或噪聲的影響,同一物體的邊緣可能會(huì)被分割為不連續(xù)的兩段或者幾段,為此可以利用形態(tài)學(xué)閉(膨脹、腐蝕)運(yùn)算,使得同一物體邊緣圖像盡可能的連續(xù)。這里仍然使用OPENCV函數(shù)庫進(jìn)行處理,閉運(yùn)算輸入為Canny檢測后的二值圖像,輸出仍然為二值圖像,但是特征點(diǎn)經(jīng)過閉運(yùn)算以后發(fā)生變化。
上述預(yù)處理的各個(gè)步驟具體的結(jié)果圖像見附圖7。
第二步,幾何圖形的檢測鏈碼表示是一種基于8-連通單像素寬度的表示方法,附圖4給出了一個(gè)例子。從起始點(diǎn)開始,每一步都指向當(dāng)前點(diǎn)的下一個(gè)特征點(diǎn)。方向字符標(biāo)記了它們之間的位置關(guān)系,見附圖4(b)。這樣,附圖4(a)可以記為44646000002424。為了進(jìn)一步減少特征點(diǎn),而不丟失必要的輪廓信息,在表示中僅僅記錄其中的拐點(diǎn),附圖4(a)中標(biāo)記’*’的點(diǎn)。這樣,對于圓和橢圓檢測,通過該表示方法可以迅速過濾掉長直線的影響。
將整幅圖像所有的輪廓線按鏈碼這種方式進(jìn)行編碼,得到一個(gè)輪廓鏈表。
以下簡要介紹RANSAC(Random Sample Consensus,隨機(jī)采樣投票)圖形擬合方法。它是一種很好的擬合算法,具體步驟如下1)在一個(gè)含有m個(gè)數(shù)據(jù)元素的樣本集中,隨機(jī)地選出n個(gè)樣本數(shù)據(jù);2)通過n個(gè)樣本數(shù)據(jù)估計(jì)圖形參數(shù),然后計(jì)算在一定的范圍內(nèi),所有的m個(gè)數(shù)據(jù)中有多少個(gè)能夠被擬合,記為K;3)如果K足夠大,則接受該擬合結(jié)果,并且通過所有能夠擬合上的數(shù)據(jù)利用最小二乘重新計(jì)算該圖形參數(shù);否則重新執(zhí)行1)-3)4)如果重復(fù)執(zhí)行次數(shù)大于最大允許次數(shù)L,則失??;5)如果可能含有多個(gè)圖形,則3)中找到擬合結(jié)果后并不退出,而是從m個(gè)數(shù)據(jù)元素中減去已經(jīng)被擬合的數(shù)據(jù)元素,在剩下的樣本中繼續(xù)執(zhí)行1)-3)。
RANSAC方法實(shí)際上是一種簡化的Hough變換。
根據(jù)上面的說明,鏈碼表示實(shí)際上是用一個(gè)連續(xù)的鏈表標(biāo)注了一個(gè)連續(xù)的邊緣輪廓。對于預(yù)處理后邊緣圖像,利用鏈碼編碼,得到多個(gè)不同的輪廓線,將包含的點(diǎn)數(shù)超過給定閾值的每條輪廓線切分為單獨(dú)的子圖像,去掉剩下的輪廓線;然后,在每一個(gè)輪廓圖像上利用RANSAC方法進(jìn)行指定圖形(圓形/橢圓形/矩形)的擬合,去掉擬合程度低于給定閾值的擬合結(jié)果;該部分充分利用了物體輪廓連續(xù)性特征,很好地解決了已有方法在檢測速度上的不足。
第三步,圓與橢圓的擬合一個(gè)標(biāo)準(zhǔn)的圓可以代數(shù)形式記為(x-x0)2+(y-y0)2=R2(3)它含有三個(gè)參數(shù),分別為圓心(x0,y0)和半徑R。如果確定了上面的三個(gè)參數(shù),那么就確定了一個(gè)圓。
對于圓的擬合,實(shí)際上就是要求通過已知的特征點(diǎn)求出上面的三個(gè)參數(shù)。根據(jù)線性方程有唯一解的條件不難知道,三個(gè)不共線的特征點(diǎn)可以確定一個(gè)圓。結(jié)合上面對于RANSAC方法的介紹,對于圓的擬合上面的n=3。具體參數(shù)計(jì)算根據(jù)聯(lián)立一個(gè)輪廓線上的三個(gè)特征點(diǎn)Pi(xi,yi){i=1,2,3}的圓方程可以求得,下面是直接的計(jì)算公式x0=dy1dy2dy3-(x12dy2+x22dy3+x32dy1)2(x1dy3+x2dy1+x3dy2),]]>y0=dx1dx2dx3-(y12dx2+y22dx3+y32dx1)2(y1dx3+y2dx1+y3dx2),]]>R=(x0-x1)2+(y0-y1)2;]]>其中,dxi=(xi-x(i+1)%3),dyi=(yi-y(i+1)%3),%3表示除以3的余數(shù)。
同樣,標(biāo)準(zhǔn)的橢圓代數(shù)表示形式如下(x-x0)2a2+(y-y0)2b2=1--(5)]]>但是該表達(dá)式僅僅描述對稱軸與坐標(biāo)軸平行的橢圓,這在系統(tǒng)需求中遠(yuǎn)遠(yuǎn)不能滿足要求。但是任意的形狀橢圓的表示過于繁瑣,它除了上面的四個(gè)參數(shù),橢圓中心(x0,y0)以及長短軸a、b外還有一個(gè)傾斜角α。五個(gè)參數(shù)非線性的表達(dá)式希望通過上面圓擬臺(tái)的辦法是很難求解的。本發(fā)明避開這一難題,而采用另外一種代數(shù)形式描述橢圓,即使用二次圓錐曲線,表示如下a0x2+2a1xy+a2y2+2a3x+2a4y=1(6)該表達(dá)式將參數(shù)歸一化,直接去掉過原點(diǎn)的情況。這樣就可以圓擬合一樣,通過五個(gè)任何三點(diǎn)不共線的特征點(diǎn)得到一個(gè)線性方程組求解上面的五個(gè)參數(shù)。
但是,前面已經(jīng)提到過,(6)式僅僅表達(dá)一般的二次曲線,所以求解的曲線并不一定是橢圓。根據(jù)下面的條件限制(橢圓參數(shù)應(yīng)該滿足的條件),我們可以進(jìn)行判斷標(biāo)記I1=a0+a2,I2=a0a1a3a1a2a4a3a4-1,]]>則I1和I2滿足I1I2<0, (7)
以及I3=a0a1a1a2=a0a2-a12>0;----(8)]]>這樣通過上述兩步就可以得到擬合橢圓的一般代數(shù)形式的參數(shù),我們再將它轉(zhuǎn)化為習(xí)慣的中心、軸、傾角的描述形式,轉(zhuǎn)化公式如下a=-I3λ1I2,b=-I3λ2I2--(9)]]>其中λ1和λ2是矩陣I2的特征值;x0=-(a3cos2θ+a4cosθsinθ)a0+a1tanθ+(a3sin2θ+a4cosθsinθ)a2-a1tanθ,]]>y0=-(a3cosθsinθ+a4sin2θ)a0+a1tanθ+(-a3cosθsinθ+a4cos2θ)a2-a1tanθ,]]>θ=12arctan2a1a0-a2,--(10)]]>關(guān)于矩形的擬合,采用OPENCV函數(shù)庫中已有的基于輪廓的矩形擬合算法得到,直接輸出為檢測到的矩形的四個(gè)定點(diǎn)數(shù)組;部分檢測結(jié)果參見附圖3;第四步,檢測結(jié)果后處理前面的介紹知道,RANSAC方法評價(jià)圖形的擬合效果是通過特征點(diǎn)擬合的比例來考察,譬如,一條1/4的弧線上含有200個(gè)特征點(diǎn),RANSAC擬合方法可以得到一個(gè)檢測圓使得200個(gè)特征點(diǎn)都能被擬合,這樣的擬合結(jié)果很完美。但這種情況在實(shí)際的檢測中是不能出現(xiàn)的,例如,一段弧形的電纜線不能因此被認(rèn)為是一個(gè)可能的圓形表盤,因?yàn)閮x表盤必須要求整體清楚可見,所以要求必須檢測整個(gè)圓或者橢圓圖形,而不是部分弧線。本發(fā)明中的檢測算法提出“擬合因子”的概念。擬合因子實(shí)際上就是擬合結(jié)果在圖形極坐標(biāo)的表示情況下,在整個(gè)弧度上的擬合程度的描述 擬合因子的提出不僅解決了上面出現(xiàn)的問題,而且解決了目標(biāo)多尺寸的問題,實(shí)現(xiàn)了擬合效果評價(jià)的歸一化,增強(qiáng)了系統(tǒng)檢測的魯棒性。
考慮到實(shí)際的應(yīng)用場景,算法并不需要真正轉(zhuǎn)化為極坐標(biāo)表示,只需要計(jì)算360度上每一個(gè)角度是否存在邊緣特征點(diǎn)即可。具體實(shí)現(xiàn)描述如下
BeginCount=0;For I=0 to 360 do /* for each angle */Compute the corresponding point P of IIf P is a feature point in the imageCount=Count+1;Count=Count/360;End;上述的檢測結(jié)果僅僅是幾何圖形的檢測,并沒有充分考慮實(shí)際的應(yīng)用情景??紤]表盤背景顏色的單調(diào)性,將實(shí)用場景的表盤分為兩大類——白色背景和黑色背景。這樣可以在已知背景顏色的前提下,對每一個(gè)檢測結(jié)果區(qū)域在灰度圖像上進(jìn)行亮度統(tǒng)計(jì)做出灰度直方圖,灰度直方圖的峰值如果與已知的背景顏色一致,檢測結(jié)果接受,否則舍棄。
具體實(shí)現(xiàn)描述如下1.創(chuàng)建128個(gè)投票箱VoteBox[128],將投票箱清空置零2.對于檢測結(jié)果區(qū)域的每一個(gè)像素點(diǎn)的亮度值I,對應(yīng)第I/2個(gè)投票箱,將該投票箱記一數(shù),VoteBox[I/2]++;3.遍歷128個(gè)投票箱,記錄得票最多的投票箱序號為MaxBox;4.如果MaxBox<32,則背景為黑色;如果MaxBox>96,則背景為白色;否則背景顏色錯(cuò)誤;5.檢測的背景顏色與已知背景顏色是否一致,若一致,繼續(xù)下面檢測;否則舍棄;這樣結(jié)合應(yīng)用背景,使系統(tǒng)更加實(shí)用化;第五步,指針檢測說明,本發(fā)明指針讀取僅適用于表盤內(nèi)含有唯一清晰可見的指針的情況。算法假設(shè)指針穿過表盤中心或者中心附近。
基于上述檢測結(jié)果,在表盤區(qū)域利用角度直方圖檢測指針?biāo)诘木€段。
角度直方圖是統(tǒng)計(jì)表盤內(nèi)的特征點(diǎn)與表盤中心連線與圖像X軸所成的夾角的統(tǒng)計(jì)圖。具體實(shí)現(xiàn)的方法與上一小節(jié)灰度直方圖相似。
因?yàn)橹羔槾┰奖肀P中心,并且與表盤背景差別較大,形成特征點(diǎn)數(shù)較多,所以指針?biāo)诘慕嵌葧?huì)在直方圖上出現(xiàn)一個(gè)峰值,從而可以通過找出得票最多的投票箱而得到指針的檢測結(jié)果;測試結(jié)果見附圖6。
第六步,檢測結(jié)果反饋/輸出通過上述各檢測步驟,可以得到最終檢測結(jié)果。如果檢測不到儀表盤,算法返回,當(dāng)前檢測位置沒有發(fā)現(xiàn)目標(biāo);否則,算法進(jìn)一步確認(rèn)表盤所在的位置是否位于圖像中央以及尺寸大小是否合適,算法返回云臺(tái)控制命令;詳細(xì)的控制方式見附圖4。
檢測算法的流程圖見圖9。
權(quán)利要求
1.基于物體輪廓的變電站中圓/橢圓/方形儀表監(jiān)測方法;其特征在于,它依次包括以下步驟(1)在數(shù)據(jù)庫中存入遠(yuǎn)程儀表檢測/讀取子模塊,其中預(yù)先設(shè)定下列參數(shù)及公式巡檢機(jī)器人在需要進(jìn)行儀表檢測與讀取的設(shè)備巡視線上能夠清楚地看到設(shè)備儀表的??奎c(diǎn)位置、該位置攝像頭云臺(tái)的初始方向以及鏡頭的預(yù)置位;該??奎c(diǎn)處儀表的信息——表盤、圖像的中心位置,表盤大小,儀表記錄刻度換算公式 表盤背景為黑/白兩色;巡檢機(jī)器人搜索空間的范圍道路平面停靠誤差±15cm,巡檢機(jī)器人的車體偏角誤差±30°;輪廓特征點(diǎn)數(shù)的閾值T1=50,擬合因子閾值T2=0.75,其中0<T2<1, (2)總控制端計(jì)算機(jī)控制巡檢機(jī)器人到達(dá)儀表檢測與讀取的??奎c(diǎn),讀取相應(yīng)的該??奎c(diǎn)信息,調(diào)用并啟動(dòng)上述遠(yuǎn)程儀表檢測/讀取子模塊;(3)計(jì)算機(jī)根據(jù)上述停靠點(diǎn)信息,通過基于TCP/IP協(xié)議的無線局域網(wǎng)控制攝像頭及鏡頭到達(dá)指定位置;(4)計(jì)算機(jī)接收巡檢機(jī)器人通過無線局域網(wǎng)發(fā)回的圖像序列,根據(jù)該??奎c(diǎn)儀表信息,在規(guī)定的搜索空間內(nèi),調(diào)用下列搜索子程序,控制云臺(tái)及鏡頭進(jìn)行表盤搜索檢測,該搜索子程序依次包括以下步驟(4.1)設(shè)定下列數(shù)值#define SEARCHSTEPX水平方向搜索步數(shù),#define SEARCHSTEPY豎直方向搜索步數(shù),#define SEARCHSTEPZ深度方向搜索步數(shù),#define STEPX 水平方向搜索步長,#define STEPY 豎直方向搜索步長,#define STEPZ 深度方向搜索步長,#define CMD_LEFT臺(tái)向左轉(zhuǎn)命令,#define CMD_RIGHT 云臺(tái)向右轉(zhuǎn)命令,#define CMD_UP 云臺(tái)向上轉(zhuǎn)命令,#define CMD_DOWN云臺(tái)向下轉(zhuǎn)命令,#define CMD_ZOOMIN 攝像頭鏡頭向前拉命令,#define CMD_ZOOMOUT 攝像頭鏡頭向后拉命令,#define GOODSIZE合適的表盤尺寸,用像素點(diǎn)數(shù)表示,#define IMAGEWIDTH 圖像寬度,#define IMAGEHEIGHT 圖像高度,#define CENTERWIDTH 圖像中心的范圍大小,標(biāo)記鏡頭當(dāng)前前進(jìn)方向的狀態(tài)變量IsForward,為真,表示當(dāng)前鏡頭向前拉近,否則為拉遠(yuǎn),預(yù)設(shè)置isForward=TRUE;IsRight,為真,表示當(dāng)前鏡頭向前向右偏轉(zhuǎn),否則為向左偏轉(zhuǎn),預(yù)設(shè)置isRight=TRUE;記錄當(dāng)前鏡頭位置P1=P2=(0,0,0),其中,P1(x,y,z)標(biāo)記鏡頭當(dāng)前位置,P2(x,y,z)標(biāo)記鏡頭上次所定目標(biāo)的搜索位置;(4.2)檢測當(dāng)前圖像若檢測到儀表盤,便按以下步驟進(jìn)行(4.2.1)保存鏡頭位置P2;(4.2.2)若表盤中心與圖像中心的位置不一致,計(jì)算機(jī)先調(diào)整鏡頭的左右、上下位置,再重新檢測當(dāng)前圖像;(4.2.2)若表盤中心與圖像中心的位置一致,計(jì)算機(jī)便判斷表盤大小是否合適;(4.2.3)若尺寸不合適,計(jì)算機(jī)先調(diào)整鏡頭的前后位置,再重新檢測當(dāng)前圖像;(4.2.4)若尺寸合適,計(jì)算機(jī)便鎖定目標(biāo),程序返回讀數(shù),發(fā)送結(jié)束命令;若檢測不到儀表盤,計(jì)算機(jī)控制鏡頭退回上一次保存的位置,接著按以下步驟進(jìn)行(4.2.5)計(jì)算機(jī)先把鏡頭拉近,再重新檢測當(dāng)前圖像;若仍然檢測不到,再把鏡頭拉遠(yuǎn),重新檢測當(dāng)前圖像,如果仍檢測不到,便執(zhí)行下一步驟;(4.2.6)計(jì)算機(jī)把鏡頭拉到最近位置后,再分別把云臺(tái)位置拉到最右和最左,重新檢測當(dāng)前圖像,如果仍然檢測不到當(dāng)前圖像,便執(zhí)行下一個(gè)步驟;(4.2.7)計(jì)算機(jī)再把云臺(tái)位置分別移動(dòng)至最上和最下位置,重新檢測當(dāng)前圖像,若搜索失敗,發(fā)送結(jié)束命令;(4.2.8)計(jì)算機(jī)再把鏡頭拉遠(yuǎn),重復(fù)步驟(4.2.5)到(4.2.8);(5)目標(biāo)鎖定后,計(jì)算機(jī)根據(jù)檢測結(jié)果控制鏡頭使其得到待檢測儀表合適的圖像大小和尺寸,讀取指針角度并換算成表盤讀數(shù),通過無線局域網(wǎng)發(fā)回;對于不能讀取的情況,通過無線局域網(wǎng)把合適的圖像序列發(fā)回顯示,由人工讀取并發(fā)給巡檢機(jī)器人“任務(wù)完成”信號;若目標(biāo)搜索失敗,也通過無線局域網(wǎng)向計(jì)算機(jī)發(fā)送檢測失敗信息同時(shí)發(fā)給巡檢機(jī)器人“任務(wù)完成”信號;(6)計(jì)算機(jī)接收到鏡頭采集的視頻圖像后,便啟動(dòng)檢測程序,按以下步驟處理視頻圖像(6.1)預(yù)處理,它依次包括以下步驟(6.1.1)按下式把輸入的視頻圖像轉(zhuǎn)化為灰度圖像每一個(gè)像素點(diǎn)的灰度值I=R+B+G3,]]>其中,R、G、B分別為紅、綠、藍(lán)三色的亮度值;(6.1.2)按以下步驟對灰度圖像進(jìn)行中值濾波先由計(jì)算機(jī)計(jì)算每一個(gè)像素點(diǎn)周圍的8個(gè)點(diǎn)的亮度值以及該點(diǎn)原來的亮度值的平均值I(x,y),把它作為該點(diǎn)新的亮度值I(x,y)=Σi=-11Σj=-11I(x+i,y+j)9,]]>然后用已知方法對灰度直方圖做均衡化處理,直方圖均衡化的具體原理和算法是已知的;(6.1.3)用開放源代碼的圖像處理函數(shù)庫,即OPENCV對上述灰度圖像進(jìn)行Canny邊緣檢測,得到同樣尺寸的二值圖像,其中,含有邊緣信息的像素點(diǎn)為白色,其它區(qū)域?yàn)楹谏?,把這些白色的像素點(diǎn)稱為邊緣特征點(diǎn);(6.1.4)再用OPENCV函數(shù)庫中的形態(tài)學(xué)閉(先膨脹,再腐蝕)運(yùn)算函數(shù),對上述二值圖像進(jìn)行處理,得到同一物體邊緣圖像盡可能連續(xù)的可用輪廓線表示的二值圖像;(6.2)按以下步驟進(jìn)行幾何圖形檢測(6.2.1)把上述整幅圖像所有的輪廓線按鏈碼形式進(jìn)行編碼,得到一個(gè)輪廓鏈表;(6.2.2)把包含的點(diǎn)數(shù)超過T1的每條輪廓線切分為單獨(dú)的子圖像,去掉剩下的輪廓線;(6.2.3)在每一個(gè)輪廓圖像上利用RANSAC方法,即隨機(jī)采樣投票圖形擬合法進(jìn)行指定圖形的擬合(6.2.3.1)標(biāo)準(zhǔn)圓的擬合圓心坐標(biāo)(x0,y0)x0=dy1dy2dy3-(x12dy2+x22dy3+x32dy1)2(x1dy3+x2dy1+x3dy2),]]>y0=dx1dx2dx3-(y12dx2+y22dx3+y32dx1)2(y1dx3+y2dx1+y3dx2);]]>半徑R=(x0-x1)2+(y0-y1)2;]]>其中Pi(xi,yi)(i=1,2,3)是輪廓線上三個(gè)特征點(diǎn),dxi=(xi-x(i+1)%3),dyi=(yi-y(i+1)%3),下標(biāo)“%3”表示除以3的余數(shù);(6.2.3.2)一般橢圓的擬合橢圓作為一般的二次曲線有如下的表達(dá)式a0x2+2a1xy+a2y2+2a3x+2a4y=1,其中的系數(shù)已經(jīng)經(jīng)過歸一化處理,將右邊的參數(shù)置為1,不考慮經(jīng)過原點(diǎn)的情況;取輪廓線上的五個(gè)特征點(diǎn)Pi(xi,yi)(i=1,…,5),構(gòu)造線性方程組A=P-1B,其中,A=[a0a1a2a3a4]T,B=[1 1 1 1 1]T,P=x122x1y1y122x12y1x222x2y2y222x22y2x322x3y3y322x32y3x422x4y4y422x42y4x522x5y5y522x52y5,]]>標(biāo)記I1=a0+a2,I2=a0a1a3a1a2a4a3a4-1,]]>根據(jù)下面的條件限制,即橢圓參數(shù)應(yīng)該滿足的條件,可以進(jìn)行判斷I1和I2應(yīng)該滿足I1I2<0,I3=a0a1a1a2=a0a2-a12>0;]]>根據(jù)圓錐曲線特性,將二次曲線一般參數(shù)轉(zhuǎn)化為常用的橢圓中心、軸、傾角的描述形式,轉(zhuǎn)化公式如下 其中λ1和λ2是矩陣I2的特征值; (6.2.3.3)矩形的擬合采用OPENCV函數(shù)庫中已有的基于輪廓的矩形擬合算法得到,直接輸出檢測到的矩形四個(gè)定點(diǎn)坐標(biāo)值;(6.2.4)檢測結(jié)果后處理(6.2.4.1)擬合的邊緣信息特征點(diǎn)的確定它通過計(jì)算360度的角度上每一個(gè)角度是否存在被擬合到的特征點(diǎn)來確定;(6.2.4.2)用灰度直方圖的方法判斷檢測的表盤背景顏色與已知背景顏色是否一致,按下以下步驟進(jìn)行(6.2.4.2.1)創(chuàng)建128個(gè)投票箱VoteBox[128],將投票箱清空置零;(6.2.4.2.2)對于檢測結(jié)果區(qū)域的每一個(gè)像素點(diǎn)的亮度值I(0<=I<=255),對應(yīng)第I/2個(gè)投票箱,將該投票箱記一數(shù),VoteBox[I/2]++;(6.2.4.2.3)遍歷128個(gè)投票箱,記錄得票最多的投票箱序號為MaxBox;(6.2.4.2.4)如果MaxBox<32,則背景為黑色;如果MaxBox>96,則背景為白色;否則背景顏色錯(cuò)誤;(6.2.4.2.5)檢測的背景顏色與已知背景顏色是否一致,若一致,繼續(xù)下面檢測;否則舍棄;(6.2.4.3)指針檢測統(tǒng)計(jì)表盤內(nèi)的特征點(diǎn)與表盤中心連線與圖像X軸構(gòu)成的夾角,制成角度直方圖,根據(jù)步驟(6.2.4.2)的方法,出現(xiàn)峰值的角度也就是得票數(shù)最多的投票箱,即為指針?biāo)诘慕嵌取?br>
全文摘要
基于物體輪廓的變電站中圓/橢圓/方形儀表監(jiān)測方法屬于變電站儀表監(jiān)控技術(shù)領(lǐng)域,其特征在于總控制端計(jì)算機(jī)基于存有基于物體輪廓的圓/橢圓/矩形搜索、檢測算法的遠(yuǎn)程表檢測/讀取模塊,通過無線局域網(wǎng)控制變電站中的巡檢機(jī)器人,按照預(yù)先設(shè)定的巡檢路線,在設(shè)定的搜索空間范圍內(nèi)通過搜索子程序鎖定儀表的空間位置,然后用可見光攝像頭獲取儀表幾何圖像,通過無線局域網(wǎng)發(fā)回總控制端進(jìn)行數(shù)據(jù)處理以達(dá)到遠(yuǎn)程監(jiān)控的目的。它能在不降低檢測正確率并不改動(dòng)現(xiàn)有儀表盤結(jié)構(gòu)的前提下,大大提高檢測速度,從而滿足系統(tǒng)對于實(shí)時(shí)監(jiān)控的需求。
文檔編號G06K9/00GK1581209SQ20041004253
公開日2005年2月16日 申請日期2004年5月21日 優(yōu)先權(quán)日2004年5月21日
發(fā)明者王宏, 蔡文超, 于騫 申請人:清華大學(xué)