(湖州職業技術學院 物流與信息工程學院,浙江 湖州 313000)
視覺障礙是我國嚴重的公共衛生問題之一。視覺障礙又稱視覺缺陷,視覺殘疾。我國在2006年全國第二次殘疾人抽樣殘疾標準規定:視覺障礙是由于各種原因導致雙眼視力低下并且不能矯正或視野縮小,以致影響其日常生活和社會參與。人口的增加和老齡化加劇使與年齡相關性致盲眼病不斷增加。根據第六次全國人口普查我國總人口數,及第二次全國殘疾人抽樣調查我國殘疾人占全國總人口的比例和各類殘疾人占殘疾人總人數的比例,推算我國殘疾人總人數8502萬人,我國單純視力殘疾的人數達1263萬人,在殘疾人數中排名第三位,如果包含多重殘疾者,視力殘疾的患病率為1.53%,視力殘疾的人數達2003萬人[1]。據一份本市調研資料顯示,本市50歲以上人群,白內障患病率約為17.79%[2]。近年來,隨著居民生活水平的提高,視疾的成因發生了很大變化,國家救助力度逐年加大,如何為視疾患者提供更加規范、便捷、人性化的康復服務是康復研究領域的重要課題。
根據其側重點的不同,導盲系統通常可以分為兩種類型:視覺輔助型系統、視覺替代型系統。視覺輔助型導盲系統依賴于單一的某種傳感技術,如超聲波測距、紅外避障、PSD測距。最早的導盲系統是由Russell L運用超聲波測距原理研制出而成[3],1997李俊杰運用紅外測距技術研制出了可佩戴式的導盲系統篇[4],國防科技大學光電科學與工程學院依據PSD測距原理研制出通道導盲器[5],河北大學電子信息工程學院于2015年設計了一種集成了云數據存儲,定位技術,條碼識別路況標識的導盲系統[6]。盡管超聲波、紅外等技術隨著時間的發展日趨成熟,但是單一傳感本身仍然有自身難以完善的缺陷,在進行障礙物位置檢測時只能得到障礙物的大概方向,在精度上無法滿足日常的使用,且無法獲得障礙物本身的大小、形狀和邊緣等信息。
隨著圖像處理技術的不斷發展,一些學者開始將機器視覺和圖像處理技術應用于導盲領域。荷蘭學者Peter B.L.Meijer最早采用CCD攝像頭輸入圖像,聽覺顯示輸出,研制出了最早的視覺替代系統[7],2007年瑞士學者G.Bologna、B.Deville等人運用See colour系統運用聽覺替代視覺的方式,通過智能語音實時地表示用戶前方的圖像場景[8]。2011年由德國Michael和Stephan Huber利用Kincet攝像頭查看周圍事物,利用設備震動反饋給使用者路況信息。
國內對機器視覺的研究起步較晚,但是取得了一些有價值的研究成果。許伯恩2014年提出了一套基于 Kinect 的室內盲人防碰撞輔助系統,對原始數據進行降噪采樣,運用卡爾曼濾波濾除數據空洞,最后采用區域生長算法對圖像進行分割進行障礙物的識別,系統可以適應狹長、灰暗的地形[9]。張曉靜于2016年利用嵌入式技術將圖像識別集成于導盲杖中,有效降低了成本和檢測效率[10]。替代型導盲系統能夠對障礙物和常見的路況場景進行判定識別,但是主流技術仍停留于二維空間,缺乏空間和距離的判斷,對遠距離的障礙時常出現誤判的情形,仍有一定的缺陷。
通過對上述問題的分析,本文提出運用激光掃描儀獲取路況信息,根據獲取的點云數據內部建立三維坐標系統,利用特征提取算法篩選出缺陷路面信息能夠有效解決以上問題。
針對視障人士出行的實際需求,圍繞三維建模技術和路面缺陷檢測等關鍵機理,傳感器信號處理學、特征量簡化法、點云數據修補算法、點云三維建模算法等多學科交叉研究成果、運用理論研究、數值計算、建模仿真和實驗驗證相結合的研究方法,從點云數據修補和簡化計算入手,系統而深入的研究路面三角網分治運算和點云數據向微處理器平臺遷移的創新設計,揭示點云數據特征變量在缺陷路面的數學規律和檢測機理,運用可視化平臺實現三維建模校驗內部數據的正確性,開發基于微處理平臺的三維路面缺陷檢測導盲系統。系統框架圖1所示。

圖1 系統總體框架圖
通過Gocator激光掃描儀和灰度相機實時掃描動態路況信息,將采集所得路面的點云信息和紋理信息,保存到系統存儲空間供后續處理器分析使用。激光掃描所得的為路面的高程變量,即z軸坐標,構建三維坐標空間,需要三臺掃描儀同時進行掃描。由于數據的采集、處理和點云數據的生成需要同時進行,系統需要很強的實時性,每一個設備都需要占用一個線程進行數據的獲取和接收,同時數據中心需要一個獨立的子線程。數據中心負責數據的預處理,每一個硬件設備的線程負責采集的數據和傳輸。如圖2所示。

圖2 Gocator激光掃描儀
三維模型的顯示在Open GL平臺完成,建模系統最主要的功能是實時地將獲取到的數據處理生成三維模型,供監測和數據校驗。Open GL是一個跨編程語言、跨平臺的專業的圖形程序接口,是高性能三維圖形編程和交互式視景處理標準,包括核心函數庫、實用函數庫、輔助函數庫。自動建模功能能夠將接收的點云數據和紋理信息,自動生成三維模型,具有速度快、精度高等特點,能夠滿足系統實時性要求,通過對顏色的設置、紋理設置、光亮調節等功能讓建模效果更直觀、真實反映實際路況。
S3C2440微處理器是下位機數據的接收和處理中心,處理器自帶DMA的控制器,支持FATFS文件存儲系統,SRAM和兩路USB接口,通過USB總線接口讀取大容量高速緩存區的數據,通過DMA控制器作為先入先出(FIFO)直接傳輸,完成包括數據處理、檢測算法、結果提取和分析等工作,經過閾值算法篩檢臨界值的法向量值。
控制模塊是處理器和外接設備的連接中心,起到隔離弱電和強電的作用,主要由帶光耦隔離的繼電器構成,能夠接收處理器發出的信號指令,并驅動外圍電路。
外圍設備由供電電路和控制設備構成,供電電路由穩壓電源芯片LM317向系統提供電源,控制設備由蜂鳴器報警電路和語音提示芯片組成,蜂鳴器報警電路根據缺陷路面的距離發出不同頻率的報警聲音提示,高清語音芯片根據系統對路面特征變量的識別,向用戶提供規避建議保證用戶的行進安全。如圖3所示。

圖3 底層處理器硬件平臺
系統軟件設計部分主要由點云數據修補算法,數據優化算法,網絡生成算法和特征值判斷算法四部分構成。修補算法和簡化算法對接收的點云數據進行適當的補償和剔除,實現預處理工作;三角剖分算法減少了三角網格匹配的次數,有效增加了網格生成建模的工作效率,增強了監測的實時性;基于不同路況所提取的特征值向量,底層處理器濾選出超出臨界值的向量,通過執行器操作對缺陷路況進行預警。
由于三維建模的形式復雜多變,通過激光掃描儀獲取的點云數據因為光線過暗或者路面裂縫等原因都會造成采集的點云數據丟失;對于導盲系統而言,完整的路況信息是必然不可或缺的,缺失的數據前者可以通過人為增補光亮,后者則需要進行修補算法實現。
根據Xiaozhi Li[11]等人所提出的點云修補算法,即平整路面的高程向量相近且近乎相同,根據缺陷路面的高程向量坐標函數曲線來擬合缺失的點云數據。具體步驟如下。
1)遍歷缺陷路面閾值附近有效數據a,記錄坐標c;
2)當發現缺失數據,則將此缺失的數據的高程坐標記錄為c;
3)繼續取下一個有效數據a1,記錄坐標c1;
4)繼續檢測下一個數據b,如果b為有效數據則記錄b的坐標,如果為缺失數據則把高程坐標記錄為c1;
5)重復步驟3)。
嚴格意義講,數據缺失的位置及數量往往沒有規律可循,即便進行多次修補,并不能百分比還原實際路面。實際情況,根據高程坐標的大小可以反映路面的缺陷,激光掃描數據缺失一般由較小的裂縫造成,隆起或者較大的裂縫都不會造成數據的丟失,所以常見的修補策略對缺失的高程坐標用較低的高程坐標進行賦值,最終生成的三維建模能夠貼近實際路況。
激光掃描短時間將獲得大量的點云數據,大部分路況都是平坦路面,為保證系統的實時有效性,增強三角網絡的生成效率就必須對點云的數據進行優化和刪除。
根據目標區域往往左右線段斜率變化較大,常用的簡化算法有基于斜率差的簡化算法。
每次掃描取分別取三點p0、p1、p2,將3個點的高程坐標分別記做z0、z1、z2,則線段p0p1的斜率為:
K01=(z1-z0)/xres
p0p1的斜率為:
K12=(z2-z1)/xres
兩線段的斜率差設為,則:
Δk=k12-k01=(z2-2z1+z0)/xres
又因為xres線段相等,所以斜率差計算可以簡化成:
Δd=z2-2z1+z0
1)從起點開始連續取3個點p0、p1、p2,分別記錄它們的高程坐標。
2)計算d=z2-2z1+z0
3)將d和標準設定值Δd進行比較,如果d小于標準設定值,則該區域不是特征區域應當濾除,如果d大于標準設定值則該區域是特征區域,保存特征向量。
4)再取3個點p0、p1、p2,重復步驟2)。
經過預處理算法以后點云數據對比圖,如圖4、 圖5所示。

圖4 簡化前的點云數據 圖5 簡化后的點云數據
為了進一步對點云數據進行三角網格生成,需要將獲得的點云數據進行坐標變換,整合在一個坐標系里面,本文用文獻[12]垂直法向量自動匹配算法比直接搜索法效率更高,對特征數據進行匹配。獲得簡化后的點云數據以后,需要進行坐標的整合,進行平移變換矩陣。由文獻可知,用最小二乘法求解獲得的參數收斂最小。如圖6所示。

圖6 法向量垂直搜索算法
設誤差函數,根據對應點到模型點的實際距離的平方和最小的原則:
(1)
如上所示,pi是實際點云的坐標,qkt是模型中點云的坐標,R是變換矩陣,t是平移矩陣,ni是pi的法向量,(pi-Rqkt-t)2是模型中的坐標經過坐標變換以后投射到切線平面與實際點云坐標的距離值的平方,兩坐標點可以在切線平面來回移動,當平方差值取得最小值時,就能求得R和t對應的參數。
具體步驟如下:
1)將實際坐標點集合記做P,模型中擬合坐標記做X,根據匹配準則設定閾值,當大于閾值所取值,坐標點提取應用匹配準則。
2)選定坐標軸原點坐標,p0=p,k=0。
3)根據預處理算法和修補算法獲得簡化后的點云合集,將獲得點集記做Y={yik}。
4)根據最小二乘法,計算出變換矩陣和平移矩陣的值:
其中:dk是距離的平方和,ni是法向量值。
5)根據所求得的R和t,pk+1=Rkp0+Tk對坐標進行整合變換,精細配準,求出變換后的坐標,為下一步三角網剖分做準備。
三角剖分即借助三角網格以直觀的展現數據點間的內部結構關系。通過三角剖分得到的三角網格只包含選取的3個數據點,在空間結構中不重疊,只相交于一條鄰邊。
Delaunay 三角剖分(DT)是目前較為主流的三角剖分算法,將無序的點云數據重組成有序的三角網格,對后續的可視化建模有很好的輔助作用。
本課題利用三維點云數據在可視化平臺重構實際路面,用于和底層處理器檢測出的缺陷提示進行校驗,因此本課題運用Open GL內部函數對點云數據進行顯形化處理,將點云數據進行解析和重構,調用紋理和光照函數對數據模型進行渲染,使最大程度還原真實路面以供試驗人員進行監測。
常用的三角剖分算法,有逐點插入法,三角網生長算法,并行分治法。在試驗中,可視化平臺僅用于驗證校驗,在保證建模完整可靠的前提下可以降低實時性性能的要求,因此采用逐點插入法可以更好地簡化程序設計流程。逐點插入算法核心思想:首先將全部點云數據進行三角網格處理,運用預處理算法對數據進行修補和簡化,將新生成的數據點逐點插入,以delaunay 三角剖分的兩大準則對數據點進行篩選,每符合要求的3個數據點為單位生成新的三角形,直到數據點全部插入完畢。如圖7所示。

圖7 逐點插入法流程示意圖
將全部的點云數據全部傳輸到底層處理器必然增加運算的負擔,需要將點云特征值進行提取[13]。目前主流提取技術有以下幾種方式:曲面率提取方式,法向量提取方式以及領域點平均值提取方式[14]。對于常規路面來說,凹陷導致的路線變形并不常見,因此本設計采用法向量幾何特征法能夠的滿足設計需求,根據斜率差的簡化算法,提取的特征高程坐標,根據平面之間的法向量夾角來確定缺陷路面的坐標[15]。如圖8所示。

圖8 法向量算法示意圖
如圖所示,有兩個平面α,β,n1為α平面的法向量,n2為β平面的法向量,當兩平面存在凹陷時,兩法向量的夾角較大,根據這一特征進行識別。
取一三角形p1p2p3,p1=(x1,y1,z1),p2=(x2,y2,z2),p3=(x3,y3,z3),則此三角形平面的法向量為:
(2)
則經計算可得,兩平面間法向量的夾角α為,
(3)
下位機導盲系統的主要任務是根據USB總線讀取的特征變量,根據反三角函數求法向量的夾角,結合高程坐標值,判斷當前路面的實際情況,并驅動語音提示。具體步驟如下:系統相關硬件初始化包括通用端口,DMA相關寄存器,USB硬件設備,外接語音芯片;USB總線讀取緩存區相近特征點云數據,如果數據讀取異常則濾除損壞數據點,繼續讀取下一個數據;運用幾何三角公式求得法向量夾角,平坦路面相鄰特征點法向量夾角一般較為接近,如果相差較大,則存在缺陷路面,根據點云的高程坐標進行判斷,高程坐標大于水平面坐標則為隆起路面,高程坐標小于水平面則為凹陷路面,分別驅動語音芯片工作提示。如圖9所示。

圖9 下位機程序流程圖
為評估基于三維建模技術的導盲系統實際效果,運用Gocator掃描儀、Basler灰度相機、S3C2440微處理器平臺、系統秒表等儀器設備,設置3個檢測性實驗來分別從實時性、擬合性、可靠性3個方面進行驗證。
實驗目的:檢測所設計系統在數據傳輸過程中能否滿足實時性要求
實驗方案:將不同光照、天氣、路況等環境下將所獲得的數據,經過修補算法和斜率差算法優化后,通過PC端將點云數據實時向微處理器進行傳輸,底層處理器對特征法向量夾角進行運用閾值算法判定,驅動語音芯片向用戶提供策略。通過PC端系統計時經過多個樣本采樣取消耗時間的平均值,進一步驗證從傳感器到微處理器數據傳輸、數據處理、數據判定的實時性。
由表1可知,在天晴環境下,正常光和隆起的路面,由于環境干擾因素較少,直接對數據進行篩選和優化就可以進行判定,故耗時較少;而在雨天和霧天時由于激光本身的反射和折射特性,使得原始數據采樣過程中有少許丟失,系統內部調用了修補函數增加了數據處理的耗時;而光線偏暗和黑暗中,因為采樣傳感器具備激光的抗干擾性,系統幾乎不受影響;而在凹陷的路面,因激光傳感器掃描方向的單一性,造成凹陷路面數據丟失,調用修補函數消耗了一定的時間。因此,本設計在常見的環境下,能較好的滿足系統的實時性。

表1 激光導盲系統實時性實驗性能表 (單位:s)
實驗目的:校驗建模數據與實際路面擬合性。
實驗方案:將當前路面的點云數據作為原始輸入數據,運用三角網格生成算法在Open GL可視化平臺建立三維可視化模型,校驗經過預處理后所獲得的點云數據的擬合性,是否能夠與真實路面特征一致,并通過可視化平臺查看數據的連續性和完整性,檢查數據鏈是否存在丟失、殘缺的現象,如果復原的三維建模與真實路面特征一致或接近,則認為經過理獲得的特征數據具備科學性,如果模型有變形現象,則需要進一步修正算法。對比結果如圖10~11所示。

圖10 斷層路面圖

圖11 點云建模斷層路面圖
如圖所示,通過實際路面與獲取的點云數據在Open GL可視化平臺生成的模型進行校驗,模型與實際路面特征基本一致。因此,獲取的點云數據具備科學性,可以做進一步檢測。
實驗目的:檢測三維導盲系統與傳統導盲系統相比是否存在優越性。
實驗方案:實驗選取兩種常見的傳統導盲系統,將本文導盲系統記實驗組a,超聲波導盲系統記做實驗組b,CCD攝像頭的導盲系統記做實驗組c。以成功觸發率和誤觸發率為研究對象,將三組導盲系統分別在相同距離不同的天氣下,實驗100次,分別檢測成功觸發率,如表2~3所示。

表2 隆起路面實驗觸發率

表3 凹陷路面實驗觸發率
由表看出,在相同距離模式下在不同的天氣對實驗組和對照組都有影響,在隆起路面,對聲波可以形成很好的反射機制,所以實驗組a和對照組b都表現穩定,而對照組c在大霧天氣中空氣中的水氣對攝像頭圖像識別造成了干擾,所以觸發率有下降;在凹陷路面,聲波反射機制缺失,對照組b觸發率下降明顯,對照組c略有下降但是變化不大。
檢測誤觸發率時,在晴天模式下,根據實際使用需求在150 cm以內,每間隔10 cm作為一個數據比對點,每個比對點分別對三組導盲系統檢測100次,記錄實驗數據。實驗數據如圖12~13所示在相同天氣模式下在凹陷路面檢測時,實驗組a和對照組b,c都能對隆起路面進行有效預警,對照組c在二維圖像識別模式下對距離感識別性能不強,誤觸發率較高;在凹陷路面,對照組b誤觸發率上升明顯,對照組c的誤觸發率也仍然較高。

圖12 隆起路面不同天氣觸發率對比圖

圖13 凹陷路面不同天氣對比圖
由實驗結果可得,由單一傳感器所制成的導盲系統,因內部傳感技術的單一性,檢測對象受到客觀環境局限較大;基于攝像頭研制的導盲系統,隨著圖像識別技術的成熟,抗干擾能力不斷增強,在不同天氣環境下準確度較高,但是因為缺乏對距離感的識別,容易對遠距離的路況產生誤觸發;因此,本文所設計的導盲系統在不同天氣環境下,不同檢測距離下,識別準確度和抗干擾性都較高。
針對傳統的導盲系統的諸多弊端,本文設計了一種基于激光掃描三維建模技術的導盲系統,利用激光掃描儀對采集路面點云原始信息,在PC平臺運用修補和簡化算法對原始數據進行簡化預處理,將簡化后的特征數據通過總線傳輸到底層處理器平臺,利用提取特征值算法檢測路面缺陷。試驗結果表明:本系統可以有效解決傳統導盲系統精度不高,環境抗干擾能力弱,誤觸發等缺點,能夠對不良路面情況實現精準預警的效果,具有一定的實用價值。