孫鑫宇 儲輝 楊天歌 高天維 王嶸 萬永箐



摘? ?要:項目在FPGA平臺上實現了一系列的圖像處理算法。通過HSV色彩空間上的閾值判斷、形態學濾波等方法識別出了一張圖像中的盲道成分,加以一系列的分析判斷,得出盲道的詳細情況,并充分發揮了FPGA的高速并行特點,實現了每秒千幀的超高速處理。結果表明,系統具有很高的識別準確度與很強的環境適應性。
關鍵詞:FPGA;盲道識別;嵌入式視覺;
中圖分類號:TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A
Blind-guiding Algorithms Based on FPGA Embedded Vision
SUN Xin-yu,CHU Hui,YANG Tian-ge,GAO Tian-wei,WANG Rong,WAN Yong-jing?覮
(School of Automation ,East China University of Science and Technology,Shanghai 200237,China)
Abstract:Our project implements a series of image processing algorithms on the FPGA platform. Through the morphological filtering on the HSV color space and threshold judgment,the blind sidewalk components in an image are identified,and a series of analysis and judgment are made to obtain the details of the blind sidewalk,and the high-speed parallel characteristics of the FPGA are fully utilized to realize ultra-high speed processing of thousands of frames per second. The final result shows that the system has high recognition accuracy and strong environmental adaptability.
Key words:FPGA;blind sidewalk identification;embedded vision;
視障人群是一個很大的弱勢群體。調查表明,中國現有視力殘疾人數量達到1350萬,其中550多萬為盲人,占世界盲人總數的18%,同時,還有800多萬的低視力者[1]。視障人群數量龐大,但我國社會導盲設備現狀卻仍存在很多問題亟待解決。常見輔助工具主要有導盲杖和導盲犬兩種,然而導盲杖功能過于局限而導盲犬可控性差且價格昂貴--社會急需新型導盲設備。
國內外市場中,一方面,成熟商業化智能導盲產品為數不多,且大多產品存在有傳感技術落后、欠智能化、人機交互困難的通病,可改進空間較大。另一方面,企業缺乏與盲人使用者的深入溝通了解,對用戶體驗和需求把握有偏差,且收集用戶意見反饋環節較為薄弱。
為了更加切合盲人群體的實際需求,筆者團隊走訪了上海市的各類公共場所,及時記錄當前盲道設施現狀。同時,與上海市盲人協會取得了聯系,并與幾位盲人朋友進行了深入的交流。在實地調研、走訪交流與相關文獻查閱過程中我們得知,鮮有盲人會選擇行走盲道,由于對盲道等基礎設施的不信任,更有盲人直言,“走盲道就是作死”[2]。
著眼于保障盲人群體在盲道上的安全問題,旨在利用機器視覺方法彌補視障群體先天視覺的不足,通過利用FPGA實現高速并行流水圖像處理算法,為視障人群提供基于FPGA嵌入式視覺的導盲方法。
1? ?系統設計
為了實現系統對視頻信號的高速處理,與系統狀態變化的快速響應,我們將任務劃分為了多個符合費林分類法SIMD原則的高并行度處理結構,依次為:視頻流采集單元、色彩空間轉換及閾值分割單元、形態學開運算及判定單元、盲道狀態分析單元、障礙檢測單元、VGA顯示單元,各獨立單元之間采用數據流的形式連接。
圖1? ?系統框圖
1.1? ?視頻流采集單元
該單元作為視頻流DVP信號的入口單元與CMOS攝像頭控制信號的出口單元[3]。單元通過SCCB總線實現對CMOS攝像頭的寄存器功能參數的配置[4],SCCB總線由SCCB_E、SIO_C、SIO_D、PWDN信號組成。
圖2? ?SCCB總線信號仿真時序圖
單元解析視頻流DVP信號以獲取視頻內容[5],信號由VSYNC、HSYNC(HREF)、PCLK、DATA[8]組成;通過行列同步信號可以實現對視頻信號的同步,并在PCLK上升沿采集獲取原始RGB數據。
視頻流信號接收后被送入行緩存空間,行緩存空間存有視頻流內容及對應行號。其中行號數據由本單元計數產生,計數值在HSYNC上升沿時加一,在VXYNC上升沿時清零。
圖3? ?DVP總線信號仿真時序圖
圖4? ?行緩存空間示意圖
1.2? ?色彩空間轉換及閾值分割單元
圖像識別方法多是基于灰度圖像完成的,而盲道作為有明顯統一顏色信息的圖像,可以應用顏色閾值分割出大概范圍,使得目標圖像與背景更好的分離[6]。常用的RGB彩色圖像的三個基色分量受光照等環境因素影響很大,不易設置閾值,而HSV顏色模型更貼近人眼對顏色的感知程度,不易受周圍環境的影響,其中色度信息H分量可近似表達一副圖像。因此,閾值分割主要考慮H分量,輔以S與V分量以防亮度過高或過低的區域。此外,相較于HSI(亦作HSL)空間,HSV空間更利于色彩的選擇,而HSI空間則利于色彩的調整[7]。
圖5? ?HSV分量效果圖
常規方法是將原始RGB數據通過轉換公式轉化為HSV空間后,再進行閾值判斷[8]。式中max、min分別表示RGB三分量中的最大值與最小值。
但是上述方法將會產生2至3個除法器,在消耗大量系統邏輯資源的同時,還會帶來較大的組合邏輯時延。因此,需對以上公式進行系列線性變換,根據FPGA自身特性,將耗費資源量大的除法運算變成可以依靠內部DSP資源完成的乘法運算。
標準盲道應為鮮艷的黃色,其色調大致位于60°附近,故H分量閾值下限h1落入(0°,60°)區間,而上限h2落入(60°,120°)區間。又因S分量為零時,H分量無意義,故S分量下限s1為正數。
經過上述修正,像素點是否位于閾值范圍內的判別式為:
(4)
修正前后消耗內部資源對比如下:
表1? ?修正前后消耗內部資源對比
1.3? ?形態學開運算及判定單元
在保護圖像邊緣和細節方面,非線性濾波器有著良好的效果。形態學濾波器是其重要組成部分,包括二值形濾波器,多值(灰度)形態濾波器等,常用于形狀識別、邊緣檢測、紋理分析、圖像恢復和增強等領域。形態學有兩種基本運算,膨脹與腐蝕。膨脹通過求局部最大值,可以填補圖像區域中某些空洞,連接圖像,并消除圖像區域中的小顆粒噪聲。腐蝕通過求局部最小值,可消除掉面積小且無意義的圖像區域。形態濾波主要方法開運算與閉運算就是由膨脹與腐蝕組成,開運算是先腐蝕再膨脹,閉運算是先膨脹再腐蝕。開運算可去除圖像上與結構元素形態不相吻合的分布結構,并保留其余吻合部分。閉運算可填充圖像上與結構元素形態不相吻合的分布結構,同樣保留其余吻合的部分。有效的組合膨脹與腐蝕可用來有效提取特征和平滑圖像。因為形態學運算是通過圖像的幾何形態特征進行處理,所以可保持圖像結構不被鈍化[9]。
為了防止圖像邊緣信息的丟失,首先應對圖像進行邊緣復制填充。又因盲道大多為水泥材質,表面粗糙且易附著雜質,存在有大量椒鹽噪粒[10],故需選取范圍較大的卷積核,本文中選取了5×5的矩形窗。
圖6? ?圖像邊緣復制填充示意
卷積操作采用了流水線結構,通過滑動窗口遍歷整幅圖像。首先對位圖進行二值膨脹,當卷積結果大于規定閾值時,可認為錨點存在有相應成分;相應地,在腐蝕操作時,若卷積結果小于相應閾值即可認為錨點不存在盲道成分。
經實際測試,對位圖進行三次膨脹兩次腐蝕后的處理效果最佳,此時系統幾乎不存在有噪粒。
形態學開運算后,劃分出若干符合盲道顏色特征的位圖區域,對每一個區域的閾值分割后的圖像反色,并進行霍夫直線檢測[11],統計長度大于一定值(暫取200)的直線之間的關系。
圖7? ?膨脹腐蝕實現示意圖
通過直線與底邊的夾角角度差判斷是否平行,垂直(直線順時針旋轉,直至與底邊重合的旋轉角),角度差相差小于10度,視為平行,角度差在85度至95度內,視為垂直。若某一區域中超過30%的直線關系不是平行或垂直,則不將該區域視為盲道。
1.4? ?盲道分析單元
盲道磚在道路上的鋪設主要有兩種,一為豎條型,一為圓點型,在行走的過程中,主要存在直行,左右轉、左右偏等五種情況。設直行是默認情況,這時只需判斷是否是左右偏轉。
在分割出盲道位圖的基礎上,左右偏轉判斷可由盲道左上頂點(lefttop),右上頂點(righttop),左下頂點(leftdown),右下頂點(rightdown)的數值關系得出。
先以公式
righttop.x-lefttop.x≥2*(rightdown.x - leftdown.x)
(5)
判斷是否滿足轉彎情況。該表征了盲道在直行的基礎上存在著橫方向的路徑。
在此基礎上,滿足
leftdown.x-rightdown.x > rightdown.x-leftdown.x
(6)
時前方左轉。反之,若滿足
righttop.x-rightdown.x > rightdown.x - leftdown.x
(7)
時則表征了前方右轉。又考慮圖像識別出的盲道兩邊未必垂直,以及視覺圖像近大遠小的特點計算會略有修正。
而左右偏則僅需判斷底端頂點位置,以下判據分別描述了左偏和右偏的情況
(rightdown.x + leftdown.x)/2 < leftThreshold.x
(8)
(rightdown.x + leftdown.x)/2 < rightThreshold.x
(9)
至于盲道區域左右頂點的尋找可以通過比較判斷錨點斜向窗口內盲道成分數量,輔以錨點橫縱坐標。以左上頂點為例,若右下窗口內的盲道成分與左下之差大于某一閾值,且該點橫縱坐標和最小,則可認為該錨點為盲道左上頂點。
圖8? ?膨脹腐蝕實現示意圖
1.5 障礙檢測單元
通過盲道的四個頂點可在盲道位圖內劃分出一個矩形邊框
beginrow = max(lefttop.y,righttop.y)? ? ? ? (10)
endrow = min(leftdown.y,rightdown.y)? ? ? ? (11)
begincol = max(lefttop.x,leftdown.x)? ? ? ? (12)
endcol = min(rightdown.x,righttop.x)? ? ? ? (13)
定義一個數組與行變量進行障礙連通判定,遍歷此矩形邊框的像素判定情況。
若某一列的像素被判定為不是盲道內容,則行變量加一并判斷該列數組變量值與前一列數組變量值的關系,若前一列數組變量值大于該列數組變量值,則該列數組變量更新為前一列數組變量值加一,若小于或等于,則該列數組變量更新為原值加行變量值。若某一列的像素被判定為盲道內容,則該列數組變量與行變量歸零。
在遍歷完一行后,需反向遍歷,在某一列的像素被判定為不是盲道內容且該列數組變量值小于其后一列數組變量值時,該列數組變量值更新為其后一列數組變量值,若某一列數組變量值超過一定值時(暫取300)時判定前方盲道上有障礙。
1.6? ?VGA顯示單元
為了方便系統調試及圖像處理結果輸出,系統增設VGA顯示單元用于輸出某一階段的處理效果。
由于VGA顯示時序與采集及處理部分存在差異,故需在VGA顯示單元之前增設一雙口RAM作為緩沖[12],由任意指定功能單元寫入相應地址空間,與此同時,VGA顯示單元讀出另一地址空間內容,兩者之間互不干擾。
圖9? ?FUNCTION-RAM-VGA 結構RTL視圖
2? ?系統實現效果
系統選取了ISE14.7作為軟件開發工具,Xilinx Virtex-5系列的XUPV5-LX110T作為硬件平臺,對系統進行了功能性仿真及板上實際測試。
實驗結果表明,系統能夠滿足功能需求,總體處理速度高達每秒1000FPS。此外,系統還能適應復雜的道路情況并受環境光條件制約相對較小,具有較高的準確性與魯棒性。
圖10? ?XUPV5-LX110T評估平臺
圖11? ?強反光條件下的系統效果
圖12? ?陰影條件下的系統效果
3? ?結? 論
基于嵌入式機器視覺和FPGA技術,提出了一種盲道識別的圖像處理方法,并在Xilinx 的XUPV5-LX110T平臺上進行了相應算法實現。此方法可以廣泛用于基于嵌入式機器視覺的導盲輔具,從而有效地保障了視障群體在盲道上的出行安全。
視障人群作為這個社會不可忽視的一部分,如何讓他們走出黑暗,融入社會,全方位的滿足他們的需求,讓出行不再困難,信息不再閉塞,讓每一個視障人士都獲得基本的權力和自由,是需要不斷關注討論和研究的課題。真誠希望借助科技的力量,可以幫助弱視人群克服生理殘疾障礙,逆光出行。
參考文獻
[1]? ? 中國殘疾人聯合會.2010 年末全國殘疾人總數及各類、 不同殘疾等級人數[EB/OL].http://www.cdpf.org.cn/sjzx/ cjrgk/201206/t20120626_387581.shtml,2012-06-26.
[2]? ? 張旭光,陳琳,王萍,等.閑著的盲道[N].北京晨報,2013-8-27(A16-17) .
[3]? ? 王華,婁小平,李偉仙,等.基于FPGA工具的關節臂激光掃描測頭CMOS圖像采集系統[J].工具技術,2017,51(6):112—116.
[4]? ? 楊會建,楊陽,張環,等.基于SCCB總線配置的FPGA視頻采集系統設計[J].長春理工大學學報:自然科學版,2015,(4):97—100.
[5]? ? 王浩宇,漆晶,譚歆.基于Zynq-7000的視頻采集平臺設計[J].工業控制計算機,2017,30(4):55—56,59.
[6]? ? 靖固,任曉宇,紀穎.盲道識別系統算法設計及FPGA實現[J].哈爾濱理工大學學報,2014,19(6):38—43.
[7]? ? 王書志,張建華,馮全.基于紋理和顏色特征的甜瓜缺陷識別[J].農業機械學報,2011,42(3):175—179.
[8]? ? 彭玉青,薛杰,郭永芳.基于顏色紋理信息的盲道識別算法[J].計算機應用,2014,34(12):3585—3588,3604.
[9]? ? 王佳寧.圖像處理中方向濾波器的設計[J].考試周刊,2011,(46):148.
[10]? 王陽.高密度椒鹽噪聲污染圖像修復方法研究[D].大連:大連理工大學,2016.
[11]? ILLINGWORTH J,KITTLER J. A survey of the hough transform[J]. Computer Vision,Graphics,and Image Processing,1988,44(01):87—107.
[12]? 鄭爭兵.基于FPGA的VGA波形顯示系統設計與實現[J].液晶與顯示,2014,29(1):88—93.