摘 要: 介紹了基于ADSP" title="DSP">DSP-BF533" title="BF533">BF533的電力線覆冰監測系統" title="監測系統">監測系統。該系統是基于圖像監測的電力線覆冰監測裝置。系統通過采用簡化的Sobel算法和Hough變換對圖像進行邊緣識別,借助DSP的高速運算性能和優化的DSP代碼,實現了電力線覆冰厚度的終端識別和自動報警功能;采用終端識別的方式,是智能監控中一種新的嘗試。
關鍵詞: ADSP-BF533; 圖像識別; 覆冰導線; Hough變換
對于天氣嚴寒的高山地區,導線覆冰嚴重影響著高壓輸電線路的安全運行。當導線表面的覆冰越積越厚,導線將承受幾百公斤到幾噸的荷載,這時導線自重及所覆的冰重產生的拉力將通過導線、導線金具、絕緣子傳遞給桿塔,桿塔又將拉力傳給拉線,只要導線、金具、絕緣子、桿塔、拉線、拉線絕緣子、拉線固定件等其中一個環節承受不住所受拉力,就將會出現倒塔(桿)和斷線的事故,這種事故往往會擴展至一個耐張段。如何有效地避免和防止冰災對高壓輸電線路造成的危害,是電力企業必須要面對的課題。
基于ADSP-BF533的電力線覆冰監測系統正是基于圖像監控的電力線覆冰監控系統,該系統通過終端的自動識別能及時地將覆冰危害通過圖片傳送的方式進行報警,也方便監控人員進行手動的現場圖片采集,及時發現險情進行人工除冰處理,對電力線起到良好的保護作用。
1 系統構成
系統終端采用ADSP-BF533為主控制器,通過PPI接口接收CMOS傳感器的圖像信息,利用DSP的高速運算性能,對圖像中的電力線覆冰情況進行識別和對比,對覆冰厚度達到報警級別的采用JPEG壓縮并傳送。同時,DSP還通過8通道12位的A/D芯片AD7888采集各種氣象信息(包括溫濕度、雨量、風向、風速、CO2含量等)和泄漏電流數據,對電力線運行狀況進行全面的監測。終端采集的圖像數據和氣象信息通過GPRS發送給本地服務器,對數據進行顯示和存儲。系統采用太陽能電池板和大容量后備鉛酸蓄電池供電,可以保證系統在無太陽充電的情況下穩定運行30天。電力線監測系統框圖如圖1所示。
ADSP-BF533是ADI" title="ADI">ADI公司新推出的16位高速定點數字信號處理器,該DSP性能優良并具備視頻處理接口,性價比高,其主頻最高能達600Hz,每秒可處理1 200M次乘加運算。高性能DSP使遠端采集系統中的圖像識別成為可能,減輕了服務器負擔。
圖像采集采用美國OmniVision公司的CMOS傳感器OV7640,該傳感器包括一個652×486的感光陣列,同時集成了幀(行)控制電路、視頻時序產生電路、模擬信號處理電路、A/D轉換電路、數字信號輸出電路及I2C編程接口。DSP通過I2C接口設置和讀取OV7640的工作方式、數據輸出格式、工作狀態等。CMOS傳感器與DSP的接口如圖2所示。
終端軟件采用μC/OS實時操作系統,由于覆冰厚度識別占用了絕大多數CPU時間,設置為較低優先級任務,使系統能夠較快響應其他報警信息(如CO2含量、泄漏電流等)。采用終端進行識別的模式,不但可以減輕服務器的運算壓力,而且可以減少網絡傳輸。當系統中采集點增加到一定程度時,這種方式的優勢將更為明顯。
2 覆冰厚度識別算法描述
覆冰厚度識別算法是系統的核心部分,通過算法優化和指令優化,可以充分發揮ADSP-BF533的高速運算性能,使終端自動識別成為可能。算法中首先對電力線進行邊緣檢測,描繪電力線邊緣,并計算出電力線正常寬度作為參考值。當電力線覆冰時,采用同樣算法計算出來的電力線寬度小于參考值。設置一個固定閾值,當電力線寬度小于閾值時,對采集圖像進行壓縮傳送,實現自動報警功能。算法中先采用Sobel 算子進行邊緣提取,然后采用Hough變換進行平行線檢測。
2.1 圖像預處理
對于傳感器采集的彩色圖像采用如下公式變換為灰度圖像:
灰度圖像中包含各種噪聲,為了能夠盡量準確地檢測覆冰厚度,采用一定的圖像預處理算法濾掉一部分噪聲。通常在空間域內可以用鄰域平均來減少噪聲;在頻率域可以采用各種形式的低通濾波來減少噪聲。為了提高檢測速度,系統采用最簡單的圖像平滑技術,采用以下模板對圖像進行平滑降噪處理:
2.2 Sobel算法
Sobel算法的邊緣檢測是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的。這兩個方向模板一個檢測水平邊緣,一個檢測垂直邊緣。Sobel算子不是簡單求平均再差分,而是加強了中心像素上下左右四個方向像素的權重。Sobel 算子的表達式[1]如下所示:
由于圖像邊緣附近的亮度變化較大,所以可以把那些在鄰域內,灰度變化超過某個適當閾值的像素點當作邊緣點。Sobel算子具有算法簡單、處理速度快,所得到的邊緣光滑、連續、且定位準確的優點,缺點是其邊緣較粗。
Sobel算法的主要步驟:
(1)分別將兩個方向的模板沿著圖像從一個像素移到另一個像素,并將模板的中心像素與圖像中的某個像素位置重合。
(2) 將模板內的系數與其對應的圖像像素值相乘。
(3) 將所有乘積相加。
(4) 將兩個卷積的最大值,賦給圖像中對應模板中心位置的像素,作為該像素的新灰度值。
(5) 取適當的閾值TH,若像素新灰度值≥TH,則判該像素點為邊緣點。
2.3 Hough變換
Hough變換是一種常用的直線檢測算法。設一條直線的方程為y=kx+b,每一對(k,b)確定一條直線。若將該方程改寫為b=-xk+y,則(x,y)平面上的一點對應于(k,b)平面上的一條直線。而(x,y)平面上共線的點對應于(k,b)平面上相交于同一點的一簇直線。因此,(x,y)平面上的直線與(k,b)平面上的點具有對應關系[2]。由于斜率k可能取值為無窮大,所以可以將Hough變換用直線標準方程表示:
式中, ρ為原點到直線的垂線距離;θ為該垂線與x軸的夾角。如果輸入圖像中存在著直線,則h(ρ,θ)數組中最大的元素所對應的(ρ,θ)即為輸入圖像中最長直線的參數[3]。
Hough變換的主要步驟:
(1)初始化累加陣HT(ρi,θi)=0。
(2)將邊緣點的坐標(xi,yi)代入參數方程為ρ=xcosθ+ysinθ,對θ從0°~180°分別計算對應的ρ值。
(3)對相應的HT(ρi,θi)累加,即HTρi,θi)=HT(ρi,θi)+1。
(4)對累加陣HT中元素的值進行讀取和判斷,HT(ρi,θi)>T時(T為閾值),確定為存在直線。
3 DSP配置與代碼優化
3.1 DMA傳輸
一幅標準的VGA彩色圖像,需要R、G、B三個分量各8位,即24位表示一個像素值,數據量大小為 640×480×8×3=7 372 800B。在圖像識別中,需要保留一份原始圖像,當判定為覆冰報警時,對原始圖像進行JPEG壓縮,所以一共需要15MB的RAM空間進行圖像暫存。
在CMOS圖像傳感器對采集的數據量非常大的情況下,PPI接口只有在DMA引擎的配合下,系統才能發揮它的高效能。雖然對圖像數據進行的傳輸也可由軟件實現,但將消耗掉大量的CPU時鐘周期,使DSP的高速數據處理能力難以發揮。若由DMA獨立負責數據傳輸,在系統內核對DMA初始設置并啟動后,便不再需要內核參與,DMA控制器就可直接把圖像數據從PPI接口傳輸至SDRAM存儲器進行存儲,在有效地解決了大批量圖像數據傳輸這一速度瓶頸的同時,又能讓DSP處理器專門從事算法處理工作,極大地提高了系統的并行性能。
ADSP-BF533的DMA可以控制六種類型的數據傳輸:內部存儲器之間、內部存儲器-外部存儲器、存儲器-SPI接口、存儲器-SPORT接口、外部存儲器-UART接口、存儲器-PPI接口。本系統使用PPI接口與外部存儲器SDRAM之間的DMA傳輸。DMA的建立步驟如下:
(1) 設置寄存器DMA1_0_START_ADDR_REG,寫入目標地址值。
(2) 設置寄存器DMA1_0_X_COUNT_REG,寫入傳輸次數。
(3) 設置寄存器DMA1_0_X_MODIFY_REG,寫入每次數據傳輸的目標地址修正值。
(4) 設置DMA控制寄存器DMA1_0_CONFIG_REG,啟動DMA數據傳輸。
3.2 DSP代碼優化原則
Blackfin系列DSP的優化主要分為C語言級優化和匯編語言級優化。C語言級優化包括:選擇合適的算法、數據結構和數據類型,使用自加自減降低運算強度,提高循環體效率。匯編語言級的優化需要結合DSP的結構特點,并與C語言程序混合編程,使程序結構清晰。
C代碼的優化有利于提高編碼的速度,又有利于系統的跨平臺移植。本文采用C語言級優化有以下原則:
(1) 由于 BF533是16位定點DSP,只適合做加、乘運算,而對于浮點運算和除法運算的效率則較低,所以程序中的浮點運算和除法運算,可轉換為乘法、移位和查表來實現,以提高運算速度。
(2) 編寫鏈接描述文件,將經常使用的數據存儲在片內存儲器中。
(3) 減少對片外存儲器的訪問次數。對于經常訪問的片外存儲器區域,設置Cache使能,并可設置Cache鎖定,防止被緩存的數據替換,減少Cache未命中的幾率。
匯編級的優化包括兩部分:采用線性匯編語言進行優化和直接用匯編語言進行優化。由于系統編譯器的局限性,并不能將全部的函數都很好地優化,這樣就需要統計比較耗時的C語言函數,用匯編語言重新編寫。主要采用了以下規則對代碼進行優化:
(1) 使用寄存器代替局部變量,去除多余的訪問內存操作[4]。
(2) 使用硬件循環代替軟件循環,DSP硬件根據循環寄存器的值自動執行循環體和退出循環,保證流水線的暢通,避免不必要的時鐘周期開銷。
(3) 在進行圖像壓縮時,采用Blackfin提供的專用視頻處理指令,可以極大地提高速度。
(4) 使用并行指令和向量指令,充分利用DSP內部的硬件資源的重復性,減少指令的執行次數,提高指令的執行效率。
4 試驗結果
由于圖像識別對運算速度要求并不高,通過DMA操作和DSP代碼優化后的覆冰厚度識別算法基本上能夠滿足實際的需要。加上GPRS通信的延時,在10秒以內可以完成一張報警圖片的識別、JPEG壓縮和傳送,且由于圖像識別任務優先級較低,使終端仍能較快地響應通信和其他報警請求。試驗結果表明,電力覆冰厚度識別算法的識別率達到了92%,尤其在背景條件清晰的雪天,識別能力更高。
基于ADSP-BF533的電力線覆冰監測系統采用終端識別的方式,不僅較好地完成了電力線覆冰監測的任務,更重要的是搭建了ADSP-BF533終端自動識別的監控平臺,是智能監控中一種新的嘗試。隨著DSP技術的迅速發展,以及監控系統的進一步擴大,智能監控將會越來越多地要求終端系統能夠分擔較多的自動監控任務,這是智能監控發展的新趨勢。
參考文獻
[1] Analog Devices Inc. ADSP-BF533 blackfin TM processor hardware reference,Preliminary Revision,2003,3:245-503.
[2] Analog Device Inc. ADSP-BF53X/BF56X blackfin processor programming, Reference Revision 1.0. 2005.
[3] GONZALEZ R C. 數字圖像處理(第二版)[M]. 北京:電子工業出版社, 2003.
[4] 唐林波, 趙保軍, 韓月秋. 線狀目標實時檢測算法的研究[J]. 光學技術, 2006,(1):155-158.
[5] 蔡昌, 張永林. 一種基于簡單算法的圖像邊緣檢測方案[J].暨南大學學報(自然科學版), 2005,(10):633-635.
[6] 權煒, 鄭南寧, 賈新春. 復雜背景下的車輛牌照字符提取方法研究[J]. 信息與控制, 2002,(2):25-29.