雷 穩(wěn),王珍珍,馬輝輝,羅 威,鄭 寧
(西安電子科技大學(xué) 電子工程學(xué)院, 陜西 西安 710071)
基于ADSP-BF609的指針式儀表識(shí)別系統(tǒng)設(shè)計(jì)
雷 穩(wěn),王珍珍,馬輝輝,羅 威,鄭 寧
(西安電子科技大學(xué) 電子工程學(xué)院, 陜西 西安 710071)
指針式儀表數(shù)字化是通過圖像采集與處理技術(shù)來讀取與識(shí)別,能夠提高判讀準(zhǔn)確性和效率,避免主觀原因產(chǎn)生的誤差。文中提出了一種基于DSP的指針式儀表識(shí)別系統(tǒng)的設(shè)計(jì)方案,采用中值濾波進(jìn)行圖像去噪,Canny算子進(jìn)行邊緣檢測(cè),Hough變換進(jìn)行圓心定位和直線檢測(cè)等指針儀表識(shí)別算法。借助ADI公司提供的集成開發(fā)環(huán)境CCES對(duì)系統(tǒng)的功能和性能進(jìn)行測(cè)試。結(jié)果表明,該平臺(tái)運(yùn)行穩(wěn)定,基于DSP的指針圖像識(shí)別具有較強(qiáng)的準(zhǔn)確性和實(shí)時(shí)性。
Hough變換;ADSP-BF609;指針式儀表;PIXC;PVP
指針式儀表以其結(jié)實(shí)耐用、價(jià)格便宜、示數(shù)形象的優(yōu)點(diǎn)依然被廣泛應(yīng)用于各種領(lǐng)域。但其不是數(shù)字信號(hào)需要人工判讀,不能適應(yīng)網(wǎng)絡(luò)化管理。隨著DSP技術(shù)的快速發(fā)展,利用DSP對(duì)大量數(shù)據(jù)的快速處理能力,設(shè)計(jì)一種精度高、實(shí)時(shí)性高的數(shù)據(jù)采集系統(tǒng)成為可能。根據(jù)圖1所示,指針式儀表數(shù)據(jù)識(shí)別流程,文量提出了基于ADSP-BF609的指針式儀表識(shí)別系統(tǒng)設(shè)計(jì)方案。
圖1 指針式儀表數(shù)字化結(jié)構(gòu)圖
本文重點(diǎn)研究使用ADSP-BF609的PIXC和PVP模塊實(shí)現(xiàn)采集圖像的格式轉(zhuǎn)換及圖像銳化Canny算子,以及核心算法Hough變換檢測(cè)圓心和直線的實(shí)現(xiàn)。該方案包括圖像采集、圖像處理、圖像顯示、數(shù)據(jù)傳送、數(shù)據(jù)存儲(chǔ)等方面。以ADSP-BF609評(píng)估板為實(shí)現(xiàn)平臺(tái),在CCES(CrossCore Embedded Studio)[1]和PC開發(fā)環(huán)境下,完成系統(tǒng)軟硬件的設(shè)計(jì)與實(shí)現(xiàn)。
系統(tǒng)使用ADSP-BF609處理器[2]和Hough變換檢測(cè)直線[3-5]的思想,設(shè)計(jì)出系統(tǒng)的總體架構(gòu),系統(tǒng)架構(gòu)如圖2所示。
通過攝像頭采集指針式儀表的表盤圖像,對(duì)圖像進(jìn)行存儲(chǔ),然后分別對(duì)圖像進(jìn)行RGB格式轉(zhuǎn)換和灰度圖像格式轉(zhuǎn)換[6],轉(zhuǎn)換為RGB的圖像用于LCD顯示,而灰度圖像用于系統(tǒng)的進(jìn)一步處理。將灰度圖像進(jìn)行二值化,對(duì)二值圖像進(jìn)行中值濾波去噪處理[7],運(yùn)用Canny算子進(jìn)行邊緣檢測(cè)[8-9],最后用改進(jìn)的Hough變換對(duì)圖像進(jìn)行Hough變換,檢測(cè)并計(jì)算出指針的角度,并以此求出表盤指針的示數(shù)。
系統(tǒng)完成了各模塊硬件設(shè)計(jì)和相關(guān)軟件(包括上位機(jī)軟件)的編寫與實(shí)現(xiàn),實(shí)現(xiàn)了圖像采集、圖像處理、Hough變換檢測(cè)、數(shù)據(jù)的儲(chǔ)存、傳輸和上位機(jī)數(shù)據(jù)庫(kù)的設(shè)計(jì)等功能。
圖2 系統(tǒng)結(jié)構(gòu)圖
2.1 硬件系統(tǒng)結(jié)構(gòu)
系統(tǒng)選用ADI公司新近推出的Blankfin 60x系列處理器,BF609,作為系統(tǒng)核心處理器,使用OV9653作為圖像采集模塊。系統(tǒng)完成了處理器模塊、圖像采集模塊、圖像處理模塊、存儲(chǔ)模塊、數(shù)據(jù)傳輸模塊以及人機(jī)交互模塊的設(shè)計(jì)。硬件設(shè)計(jì)結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)圖
表盤圖像經(jīng)過OV9653采集后得到Y(jié)UV格式的圖像,經(jīng)過EPPI1口傳送到DMA33,一路傳送到PIXC(像素合成器)完成圖像格式從YUV到RGB的轉(zhuǎn)換。一路將存放的圖像經(jīng)過Y分量的提取,得到灰度圖像。對(duì)灰度圖像進(jìn)行中值濾波,再經(jīng)過PVP(流水線視覺處理器)[10]實(shí)現(xiàn)Canny算子邊緣檢測(cè),具體過程為將數(shù)據(jù)通過IPF1的PORT0口,傳送到CNV2卷積模塊完成圖像的高斯濾波,再將處理后的圖像,分別送給CNV0和CNV1卷積模塊,進(jìn)行Sobel算子的兩個(gè)方向的梯度計(jì)算,然后經(jīng)過PMA模塊(笛卡爾轉(zhuǎn)極坐標(biāo))計(jì)算梯度幅值和方向并使用PORT2口傳送幅值和相位信息,利用PEC模塊(像素邊緣分類器)完成非極大值抑制,邊緣提取等操作并由PORT0口傳送幅值信息,最后經(jīng)OPF3口將處理后的圖像傳送到DMA42,再對(duì)圖像進(jìn)行圓心定位,Hough變換等完成指針數(shù)據(jù)的智能采集。
2.2 預(yù)處理模塊
系統(tǒng)采用ADSP-BF609提供的PIXC和PVP實(shí)現(xiàn)圖像的格式轉(zhuǎn)換,濾波去噪和邊緣檢測(cè)。由于算法的硬件實(shí)現(xiàn)與軟件實(shí)現(xiàn)有著質(zhì)的不同,系統(tǒng)硬件實(shí)現(xiàn)能大幅提高圖像的處理速度,圖4是系統(tǒng)預(yù)處理模塊結(jié)構(gòu)圖,其中PIXC負(fù)責(zé)圖像YUV格式到RGB格式和灰度圖像的轉(zhuǎn)換,PVP負(fù)責(zé)圖像的去噪與邊緣檢測(cè)。
圖4 系統(tǒng)預(yù)處理框圖
3.1 主程序流程
系統(tǒng)啟動(dòng)后,首先初始化各硬件模塊,完成接口配置,包括平臺(tái)初始化,OV9653模塊、EPPI接口模塊、DMA模塊、TWI模塊、IPF接口模塊、PVP模塊(包括IPF、CNV、PMA、PEC模塊和OPF模塊)、LCD模塊等的初始化,接著進(jìn)行完成攝像頭對(duì)表盤圖像的采集,圖像預(yù)處理,Hough變換等,圖5是軟件主程序流程圖。
圖5 圖像處理算法流程圖
3.2 圖像預(yù)處理
圖像預(yù)處理包括對(duì)圖像的格式轉(zhuǎn)換和濾波去噪處理,系統(tǒng)對(duì)圖像的格式轉(zhuǎn)換一是YUV轉(zhuǎn)RGB由系統(tǒng)硬件PIXC直接完成,YUV轉(zhuǎn)灰度圖像[11],由void yuv2gray(void)函數(shù)完成,直接提取Y分量即可。對(duì)圖像的去噪處理系統(tǒng)采用的是中值濾波由軟件編程實(shí)現(xiàn),即對(duì)模板內(nèi)的數(shù)據(jù)進(jìn)行排序取中值以代替模板的中心像素灰度值。PIXC初始化完成的是圖像的格式轉(zhuǎn)換,系統(tǒng)只要完成對(duì)該模塊各寄存器的初始化即可,PIXC能硬件完成圖像YUV到RGB的轉(zhuǎn)換而不需要處理器的干擾。下面是初始化PIXC的各個(gè)寄存器模塊的程序
void InitVssPixc(void)
{
//UYVY output BGR.
*pREG_PIXC0_CONRY = 0x4002CC80;
*pREG_PIXC0_CONGU = 0x7D4E9480;
*pREG_PIXC0_CONBV = 0x4E200080;
*pREG_PIXC0_CCBIAS = 0x31E21F4D;
*pREG_PIXC0_PPL = 480;
*pREG_PIXC0_LPF = 272;
}
3.3 邊緣檢測(cè)
系統(tǒng)采用Canny算子實(shí)現(xiàn)對(duì)圖像的邊緣檢測(cè),它可以由BF609自帶的硬件來實(shí)現(xiàn),BF609處理器內(nèi)部集成了高性能的專用視覺加速器PVP(流水線視覺處理器)。PVP包含12個(gè)數(shù)據(jù)運(yùn)算單元用于圖像處理,并且各模塊可以自由組合。系統(tǒng)利用其強(qiáng)大的圖像處理功能,實(shí)現(xiàn)Canny邊緣檢測(cè),其流程如圖6所示。
圖6 Canny邊緣檢測(cè)實(shí)現(xiàn)流程
3.4 識(shí)別表盤
3.4.1 表盤讀數(shù)的計(jì)算
系統(tǒng)的檢測(cè)目標(biāo)是壓力表,而它示數(shù)范圍為-0.1~0.9 MPa,指針角度變化范圍為-45°~225°[12]。以表盤圓心為原點(diǎn)建立直角坐標(biāo)系,如圖7所示。
圖7 表盤讀數(shù)計(jì)算示意圖
由圖7可以得出表盤指針角度與示數(shù)的關(guān)系式
(1)
由于表盤的起始刻度為-0.1 MPa,而計(jì)算時(shí)默認(rèn)起始刻度為0 MPa,所以計(jì)算的結(jié)果需要進(jìn)行校正,如式(2)所示
(2)
指針的示數(shù)只與指針與x軸正向之間的夾角有關(guān),只要求出指針與x軸正向的夾角就可以計(jì)算出指針示數(shù)。指針與x軸的夾角可以通過Hough變換的結(jié)果中的角度θ值換算得出,所以只要正確求出θ值,并根據(jù)正確的關(guān)系式就可以求出指針與x軸正向之間的夾角值。所以接下來找出θ與指針和x軸正向之間夾角a的關(guān)系。
本系統(tǒng)檢測(cè)的是壓力表,表盤指針旋轉(zhuǎn)角度為-45°~225°,而Hough變換檢測(cè)角度的范圍是0°~180°,超出了檢測(cè)范圍,因此會(huì)出現(xiàn)不同示數(shù)的指針在同一條直線上的情況。這勢(shì)必會(huì)造成讀數(shù)錯(cuò)誤,為解決這個(gè)問題,系統(tǒng)提出了將表盤圖像分割成4個(gè)區(qū)域,每個(gè)區(qū)域的角度范圍最大90°,然后利用角度變換關(guān)系來得出各個(gè)部分的直線角度,從而得出表盤的指針示數(shù)。對(duì)表盤圖像以表盤圓心為中心進(jìn)行分區(qū)。這樣系統(tǒng)首先要確定圓心。系統(tǒng)使用Hough變換檢測(cè)圓,來確定圓心坐標(biāo)和半徑。
3.4.2 Hough變換檢測(cè)圓的原理
在X-Y平面,圓的表達(dá)式可以表示為
(x-a)2+(y-b)2=r2
(3)
其中,(a,b)為圓心坐標(biāo);r為半徑。顯然對(duì)于圓上的點(diǎn)其橫坐標(biāo)和縱坐標(biāo)可以表示為
(4)
與Hough變換檢測(cè)直線相同,只不過現(xiàn)在量化的是3個(gè)分量a、b、r,增加了計(jì)算量,但每次啟動(dòng)只需要計(jì)算一次,完成中心的定位即可[13]。圓心與半徑的計(jì)算同樣采用的是投票計(jì)數(shù)的方法,計(jì)數(shù)器值最大的點(diǎn)所對(duì)應(yīng)的坐標(biāo),就是a、b、r的值,也即圓心和半徑。
3.4.3α與θ的關(guān)系
將表盤分為4個(gè)區(qū)域,表盤分區(qū)如圖8所示。每個(gè)區(qū)域的角度示意如圖9所示。
圖8 盤分區(qū)示意圖
圖9 4個(gè)區(qū)域角度示意圖
從圖9區(qū)域1,可以得出關(guān)系
(5)
變換式(3)可以得出θ1=θ3,而
(6)
則可以推出
α=θ
(7)
對(duì)于區(qū)域2,可以得出
(8)
得出
α=θ
(9)
對(duì)于區(qū)域3,可以得出如下關(guān)系式
(10)
對(duì)式(10)進(jìn)行化簡(jiǎn),可得
α=θ2+180°=θ+180°
(11)
對(duì)于區(qū)域四,可得如下關(guān)系
(12)
聯(lián)立3式,可得
α=180°-θ
(13)
式(6),式(8),式(11)和式(13)為表盤4個(gè)區(qū)域Hough變換求出的θ與指針夾角θ的關(guān)系表達(dá)式。據(jù)此可以求出指針夾角,并根據(jù)指針夾角求出指針讀數(shù)。
在進(jìn)行Hough變換之前先確定表盤的圓心和半徑,以圓心為起點(diǎn),半徑為長(zhǎng)度,將表盤圖像分為上下左右4個(gè)區(qū)域,這樣待檢測(cè)的角度區(qū)域就變成了90°以內(nèi),能夠正常的使用Hough變換進(jìn)行每個(gè)分區(qū)的角度檢測(cè),以此得出ρ和θ,然后根據(jù)上文討論的每個(gè)分區(qū)的直線與x軸正向的夾角α與θ的關(guān)系,據(jù)此求出直線夾角α,最后利用式(3)計(jì)算出表盤的示數(shù)。
對(duì)系統(tǒng)的總體功能進(jìn)行測(cè)試,測(cè)試分為兩部分:一是系統(tǒng)性能測(cè)試;二是系統(tǒng)功能測(cè)試。測(cè)試系統(tǒng)使用BF609自帶的硬件模塊(PIXC)進(jìn)行圖像格式轉(zhuǎn)換與使用軟件實(shí)現(xiàn)時(shí)間優(yōu)勢(shì),以及使用PVP進(jìn)行邊緣檢測(cè)與軟件編程實(shí)現(xiàn)Sobel邊緣檢測(cè)的時(shí)間優(yōu)勢(shì);功能測(cè)試主要測(cè)試系統(tǒng)對(duì)儀表示數(shù)是否能準(zhǔn)確讀取,能否代替人工進(jìn)行對(duì)儀表數(shù)據(jù)采集[14]。
4.1 系統(tǒng)性能測(cè)試
系統(tǒng)使用PIXC對(duì)圖像進(jìn)行YUV到RGB的格式轉(zhuǎn)換,與使用軟件實(shí)現(xiàn)進(jìn)行耗時(shí)對(duì)比,經(jīng)過軟件仿真得表1所示。
表1 系統(tǒng)PIXC與軟件格式轉(zhuǎn)換耗時(shí)對(duì)比
系統(tǒng)使用PVP對(duì)圖像運(yùn)用Sobel算子進(jìn)行邊緣檢測(cè)與使用軟件實(shí)現(xiàn)進(jìn)行耗時(shí)對(duì)比,得到表2。
表2 系統(tǒng)PVP與軟件邊緣檢測(cè)耗時(shí)對(duì)比
由上述兩表可以看出,系統(tǒng)用BF609自帶的硬件模塊在系統(tǒng)運(yùn)行耗時(shí)性能方面的提升。
4.2 系統(tǒng)功能測(cè)試
系統(tǒng)使用MFC開發(fā)上位機(jī)界面[15],連接SQL Server 2000進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)的存儲(chǔ),完成數(shù)據(jù)查看、修改、存儲(chǔ)、數(shù)據(jù)導(dǎo)出等操作[16],數(shù)據(jù)導(dǎo)出到Excel表格,利用Excel操作功能,能實(shí)現(xiàn)具體時(shí)間日期數(shù)據(jù)的提取,數(shù)據(jù)的排序,數(shù)據(jù)的復(fù)制黏貼等。測(cè)試表盤人眼讀數(shù)與機(jī)器識(shí)別讀數(shù)比較表格如表3所示。
表3 人眼識(shí)別與機(jī)器識(shí)別對(duì)比
由表3可以看出兩者之間的誤差<0.005,機(jī)器識(shí)別的結(jié)果更加精確,可以代替人眼來完成數(shù)據(jù)采集。
結(jié)合CCES集成開發(fā)環(huán)境,采用ADSP-BF609為核心處理器設(shè)計(jì)出了一套儀表數(shù)據(jù)智能采集系統(tǒng)。系統(tǒng)采用DSP的硬件模塊來實(shí)現(xiàn)圖像的處理,使得圖像處理緩慢得到解決,改進(jìn)的Hough變換使得直線檢測(cè)更加精確,計(jì)算示數(shù)也更加準(zhǔn)確。BF609的PVP(流水線視覺處理器)硬件使得圖像處理工作不再繁雜,系統(tǒng)整體處理速度得到了提升。由于時(shí)間有限,系統(tǒng)的設(shè)計(jì)并不完善,沒有考慮到表盤嚴(yán)重污損和表盤旋轉(zhuǎn)的情況。
[1] Analog Devices Inc. CrossCore embedded studio C/C++ compiler and library manual for blackfin processors[EB/OL].(2015-08-09)[2015-12-18]http://www.analog.edu.cn.
[2] Analog Devices Inc. Blackfin processor programming reference[EB/OL].(2013-02-18) [2015-12-18]http://www.analog.edu.cn.
[3] 潘偉,鄭海疆.基于脊波變換的直線特征檢測(cè)及其實(shí)現(xiàn)[J].廈門大學(xué)學(xué)報(bào):自然科學(xué)版,2006, 45(6):776-779.
[4] 侯彪,劉芳,焦李成.基于脊波變換的直線特征檢測(cè)[J].中國(guó)科學(xué)E輯:技術(shù)科學(xué),2003,33(1):66-68.
[5] 陳蓋凱.基于Hough變換的直線檢測(cè)[J].西安航空技術(shù)高等??茖W(xué)校學(xué)報(bào),2007,25(3):34-36.
[6] 邵丹,韓家偉.YUV與RGB之間的轉(zhuǎn)換[J].長(zhǎng)春大學(xué)學(xué)報(bào),2004,14(8):51-53.
[7] 趙高長(zhǎng),張磊,武風(fēng)波.改進(jìn)的中值濾波算法在圖像去噪中的應(yīng)用[J].應(yīng)用光學(xué),2011,32(4):678-680.
[8] 王文明,趙榮椿.不同彩色空間的彩色圖像邊緣檢測(cè)研究[J].計(jì)算機(jī)測(cè)量與控制,2016,14(12):1607-160.
[9] 唐敏,成禮智.基于自適應(yīng)脊波變換的邊緣檢測(cè)[J].計(jì)算機(jī)應(yīng)用,2006,26(11):2714-2715.
[10] 叢秋波. ADSP-BF60x處理器集成專用視覺加速器[J].EDN China電子設(shè)計(jì)技術(shù),2012, 19(5):14-14.
[11] 盧允偉,陳友榮.基于拉普拉斯算法的圖像銳化算法研究與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,5(6):1513-1515.
[12] 周威.基于計(jì)算機(jī)視覺的指針式儀表識(shí)別系統(tǒng)研究[D].杭州:浙江大學(xué),2006.
[13] Matas J,Galambos C,Kittler J.Robust detection of lines using progressive probabilistic Hough transform [J].Computer Vision and Image Understanding,2000,78(1):119-137.
[14] 石偉,王朝立,陳建帥,等.基于圖像處理的變電站指針式儀表讀數(shù)研究[J].電子科技,2016,29(1):118-120.
[15] 周山.基于MFC和ACCESS數(shù)據(jù)庫(kù)的學(xué)生信息管理系統(tǒng)[D].長(zhǎng)春:吉林大學(xué),2009.
[16] 林樂杰.科研管理信息系統(tǒng)中數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京化工大學(xué),2006.
Design of Pointer type Instrument Recognition System Based on ADSP-BF609
LEI Wen,WANG Zhenzhen,MA Huihui,LUO Wei,ZHENG Ning
(School of Electronic Engineering,Xidian University,Xi’an 710071,China)
One way of digital pointer type instrument is to read and recognize the image of the instrument by image acquisition and processing technology,which can improve the accuracy and efficiency of the interpretation,and avoid the error caused by subjective reasons.The paper proposed a design scheme of pointer instrument identification system based on DSP, using the median filter for image denoising, Canny operator for edge detection , Hough transform for central location and line detection , and so on pointer instrument identification algorithm.The function and performance of the system are tested with the integrated development environment CCES provided by ADI. The results show that the platform runs stably, and the pointer image recognition based on DSP has strong accuracy and real-time performance.
Hough transform;ADSP-BF609;pointer type instrument;PIXC;PVP
2016- 11- 13
雷穩(wěn)(1990-),男,碩士研究生。研究方向:電子設(shè)計(jì)自動(dòng)化等。王珍珍(1989-),女,碩士研究生。研究方向:電子設(shè)計(jì)自動(dòng)化等。
10.16180/j.cnki.issn1007-7820.2017.09.017
TN911.72
A
1007-7820(2017)09-060-05