本發(fā)明涉及數(shù)字圖像處理領(lǐng)域,具體是涉及到一種基于智能手機的移動導盲系統(tǒng)。
背景技術(shù):
盲人(視障人士)由于先天或后天原因,視覺器官的構(gòu)造或機能發(fā)生部分或全部之障礙,對外界事物無法作準確的視覺辨識。根據(jù)世界衛(wèi)生組織(WHO)2014年8月的最新調(diào)查顯示,世界范圍內(nèi)視力受損的人數(shù)約為2.85億,其中3900萬人患有盲癥,全世界大約90%的視力受損者生活在低收入國家。我國的視覺障礙人數(shù)占全世界總數(shù)的20%,約有5700多萬人,是全球視覺障礙人口最多的國家。視覺障礙者在出行時,通常只能依靠市政基礎(chǔ)導盲項目(如盲道和盲文標志)和輔助導盲設(shè)備(如導盲手杖)來辨別位置和方向。但是,在日常生活中,經(jīng)常能看到盲道被占用或破壞的情況。另外,盲道的設(shè)計也存在不合理的情況,不能正確指引視障人士行走。
近20多年來,針對視障人士,科研人員提出傳感器件以“視覺替代”的方法來幫助感知環(huán)境信息,通過信息整合和再處理將感知到的環(huán)境信息以聽覺、觸覺等方式傳遞給視覺障礙患者?;诖嗽?,大量便攜式和可穿戴的導盲系統(tǒng)問世,且大多具備障礙物檢測,目標提取,路徑導航,偏移校正等功能。此外,隨著群智感知技術(shù)的高速發(fā)展,以群智感知融合大數(shù)據(jù)為主題的研究也吸引了國內(nèi)外的熱切關(guān)注。針對日常行走的盲道設(shè)計盲道識別模塊,采用智能手機內(nèi)置的多模傳感模塊進行盲道信息的捕獲,實時檢測盲道區(qū)域和盲道上可能出現(xiàn)的障礙。針對危險系數(shù)較高的交通路口,設(shè)計交通路口檢測模塊,采用智能手機內(nèi)置的相機,麥克風,電子羅盤,陀螺儀和加速度計等進行分段式導航。交通路口模塊在獲取路口的大智信息之后,識別斑馬線區(qū)域并引導視障人士與斑馬線對齊后觸發(fā)偏移校正模塊,實時校正視障人士的行進方向。
申請?zhí)枮?01010174012.8的中國發(fā)明專利公開了一種利用計算機視覺技術(shù)進行盲道和人行橫道實時檢測的方法,利用仿射變換模型訓練分類器來得到盲道和人行橫道的樣本集進行目標的檢測和處理。
申請?zhí)枮?0110200597.0的中國發(fā)明專利公開了一種基于計算機視覺盲人戶外支援系統(tǒng),利用雙目相機采集圖像,借助嵌入式平臺進行算法設(shè)計來輔助盲人進行路面場景的理解。
申請?zhí)枮?01520044179.0的發(fā)明專利公開了一種多功能智能導盲系統(tǒng)及多功能智能導盲手杖,可以通過在導盲系統(tǒng)中設(shè)置GSM短信在緊急情況下通知用戶的家人,同時利用ZigBee模塊可以在路口接收紅綠燈信息,指引用戶安全通過路口。
申請?zhí)枮?01620121367.3的發(fā)明專利公開了一種基于超聲波測距的智能導盲系統(tǒng),能夠?qū)崟r的檢測行進方向的障礙信息,指引盲人安全獨立的出行。
申請?zhí)枮?01610272839.X的國家發(fā)明專利公開了一種基于GPS的視覺導航的導盲系統(tǒng)及其方法,該系統(tǒng)具有可選的工作模式和路徑搜索的功能,可以為盲人的室內(nèi)外活動提供便利。
申請?zhí)枮?01610581588.3的國家發(fā)明專利公開了一種智能導盲系統(tǒng),該系統(tǒng)能夠獲取當前運動環(huán)境的視覺圖像信息和位置信息,為盲人出行提供路徑規(guī)劃和語音提示信息。
上述已有的導盲系統(tǒng)和盲道圖像識別算法均存在一定程度的問題:(1)需要的輔助感知設(shè)備過多,開發(fā)平臺不夠智能;(2)無法協(xié)助盲人有效的理解周圍環(huán)境,如十字路口的判別和定位;(3)有關(guān)圖像識別的算法眾多,但是各種識別算法在盲道識別領(lǐng)域并沒有完整的識別效果比較與分析;(4)沒有一個相對完整的系統(tǒng)框架用于智能設(shè)備,大多停留在實驗室驗證階段。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種基于智能手機的移動導盲系統(tǒng),進一步完善了導盲系統(tǒng)的技術(shù)框架,針對綜合圖像處理部分做了深入的研究,解決了當前導盲系統(tǒng)操作復雜、價格昂貴的缺點,為以后導盲系統(tǒng)的開發(fā)提供了一個新的方向。
本發(fā)明所述的基于智能手機的移動導盲系統(tǒng),包括基礎(chǔ)導航系統(tǒng)、綜合圖像處理系統(tǒng)和語音輔助系統(tǒng)三大部分。
所述基礎(chǔ)導航系統(tǒng)是通過獲取實時GPS信號,利用手機內(nèi)置的導航軟件對信號進行處理得到定位數(shù)據(jù),盲人通過語音輸入目的地信息后,系統(tǒng)規(guī)劃出行進路徑。
定位導航實現(xiàn)的原理:首先通過GPS芯片等硬件獲取實時的GPS信號,然后利用導航軟件對信號進行處理得到定位數(shù)據(jù),最后將定位數(shù)據(jù)與地圖進行匹配,將所在位置顯示在導航電子地圖中,從而可以計算所需路徑實現(xiàn)導航的功能。本發(fā)明利用Android手機內(nèi)置導航模塊,百度地圖API,百度定位API,盲道路面數(shù)據(jù)來實現(xiàn)基礎(chǔ)導航模塊的功能。Android手機一般自帶GPS,可以用來作為接受GPS信號的硬件設(shè)備;軟件方面,位置信息的獲取與處理使用百度定位API,當應(yīng)用程序向定位API發(fā)起定位請求時,定位API會根據(jù)應(yīng)用的定位因素(GPS、基站、Wi-Fi信號)的實際情況(如是否開啟GPS、是否連接網(wǎng)絡(luò)、是否有信號等)來生成相應(yīng)定位依據(jù)進行定位。在實際使用中,需要開啟GPS,并處于能正常接收到GPS信號的室外場所,利用百度地圖API主要是為了方便數(shù)據(jù)的顯示和處理,地圖的拓撲數(shù)據(jù)存儲在SQLite數(shù)據(jù)庫中。
綜合圖像處理系統(tǒng)包括盲道路面識別模塊和交通路口辨識模塊,盲道路面識別模塊是利用智能手機的攝像頭實時采集盲道信息,通過處理實現(xiàn)對盲道區(qū)域的定位;交通路口辨識模塊是利用智能手機獲取交通路口的信息,在接近路口時通過對斑馬線的定位實現(xiàn)路口信息的辨識。
所述盲道路面識別模塊包括盲道圖像預處理單元、圖像形態(tài)學處理單元、盲道區(qū)域粗定位單元、盲道區(qū)域精定位單元。;
盲道圖像預處理單元接收攝像頭采集的盲道圖像,獲取圖像的基本參數(shù)并保存,對盲道圖像進行色彩空間的映射變換,提取相應(yīng)的色彩分量并進行圖像的灰度化和二值化處理,最后分別輸出處理后的圖像并保存。
圖像形態(tài)學處理單元對盲道圖像預處理單元處理后的盲道圖像進行腐蝕操作或膨脹操作或者二者的組合操作,然后分別保存相應(yīng)的處理結(jié)果。
盲道區(qū)域粗定位單元是在完成上述兩個單元處理之后,首先對盲道進行色差盲道和無色差盲道的類型判斷,若是色差盲道則直接進行圖像分割操作,若是無色差盲道則先進行分析操作,然后再進行圖像分割,對分割后的圖像進行邊緣檢測;對邊緣檢測處理后的圖像進行有無拐點的判定,若存在拐點則進行角點檢測操作;對拐點判定處理之后的圖像進行連續(xù)性檢測,如果盲道圖像不連續(xù)則說明盲道區(qū)域中存在障礙,對存在障礙的圖像進行障礙檢測,所有這些處理之后基本可以確定盲道的區(qū)域,實現(xiàn)盲道粗定位。
盲道區(qū)域精定位單元是在盲道粗定位處理之后的圖像進行歸一化處理,然后針對白色像素依次進行行和列的掃描,確定盲道部分的左右和上下邊界,同時在原始圖像中標記出邊界的輪廓,實現(xiàn)盲道精定位。
經(jīng)過上面四個單元的處理,可以得到盲道區(qū)域的實時信息,為視障人士在盲道上行走提供有利的指引。
所述交通路口辨識模塊包括交通路口辨別單元、斑馬線圖像預處理單元、斑馬線區(qū)域粗定位單元和斑馬線區(qū)域精定位單元。
所述交通路口辨別單元利用智能手機的多模感知器在即將接近路口時識別路口,通過手機麥克風對路口提示音進行探測同時檢測盲杖接觸地面的聲音,之后通過攝像頭對斑馬線進行拍攝,推斷出相對的位置,并利用方向傳感器、電子羅盤和加速度計對盲人的行進方向進行判定。
斑馬線圖像預處理單元首先獲取拍攝的斑馬線圖像,得到圖像的基本參數(shù),先對進行色彩空間的映射,將RGB顏色空間的圖像轉(zhuǎn)換成Lab顏色模式或者YUV模式,然后利用灰度化方法得到斑馬線圖像的灰度圖像,然后通過直方圖均衡化的處理加大圖像的對比度,再對圖像進行平滑和二值化處理。
斑馬線區(qū)域粗定位單元按路口感知→形態(tài)學處理→OTSU閾值分割→Canny邊緣檢測與Hough直線查找進行處理,來大致確定斑馬線的區(qū)域邊界,實現(xiàn)斑馬線區(qū)域的粗定位。
斑馬線區(qū)域精定位單元針對斑馬線粗定位過程中的計算與斑馬線圖像的拍攝角度進一步修正,同時利用獲取的斑馬線邊界來修正拍攝角度,經(jīng)過不斷地計算和修正,實現(xiàn)斑馬線的精定位。
語音輔助系統(tǒng)與上述各部分相連,針對上述各處理結(jié)果,都轉(zhuǎn)換為相應(yīng)的提示語音反饋給盲人,包括:路徑規(guī)劃結(jié)果、盲人在盲道路面上行進是否偏離盲道、盲人在接近路口對斑馬線的位置給予準確提示燈信息,從而引導盲人行進。
本發(fā)明的優(yōu)點在于:在盲道路面能夠?qū)崟r高效地檢測盲道區(qū)域邊界、拐角以及障礙物的位置;在接近交通路口時能夠指引盲人準確的接近斑馬線,并確定斑馬線區(qū)域,指引盲人安全通行。本發(fā)明通過OpenCV技術(shù)和多模感知技術(shù)將各類盲道識別算法和障礙物提取算法應(yīng)用到了智能手機上,搭建了一個集圖像實時獲取和處理的移動導盲系統(tǒng),解決了當前導盲系統(tǒng)操作復雜、價格昂貴的缺點,為以后導盲系統(tǒng)的開發(fā)提供了一個新的方向。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。在所有附圖中,類似的元件或部分一般由類似的附圖標記標識。附圖中,各元件或部分并不一定按照實際的比例繪制。
圖1為本發(fā)明的基礎(chǔ)導航系統(tǒng)的結(jié)構(gòu)框圖;
圖2為盲道圖像預處理流程框圖;
圖3為圖像形態(tài)學處理流程框圖;
圖4為盲道區(qū)域粗定位流程框圖;
圖5為盲道區(qū)域精定位流程框圖;
圖6為交通路口辨識模塊結(jié)構(gòu)框圖;
圖7為斑馬線圖像預處理流程框圖;
圖8為斑馬線區(qū)域粗定位流程框圖;
圖9為Hough直線查找示意圖;
圖10為斑馬線精定位算法流程;
圖11為導盲杖在擺動過程中的相機拍攝角度示意圖;
圖12為旋轉(zhuǎn)角度和水平偏移的空間幾何分析圖;
圖13為視障人士行走斑馬線的朝向校正估計圖。
具體實施方式
下面將結(jié)合附圖對本發(fā)明技術(shù)方案的實施例進行詳細的描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,因此只作為示例,而不能以此來限制本發(fā)明的保護范圍。
本發(fā)明所述的基于智能手機的移動導盲系統(tǒng)分為三大部分:基礎(chǔ)導航系統(tǒng)、綜合圖像處理系統(tǒng)和語音輔助系統(tǒng),綜合圖像處理系統(tǒng)包括盲道路面識別模塊和交通路口辨識模塊。其中,盲道路面識別模塊又包括盲道圖像預處理、圖像形態(tài)學處理、盲道區(qū)域粗定位和盲道區(qū)域精定位四個單元,交通路口辨識模塊又包括交通路口辨別、斑馬線圖像預處理、斑馬線區(qū)域粗定位和斑馬線區(qū)域精定位四個單元。
一、基礎(chǔ)導航系統(tǒng)
基礎(chǔ)導航部分的原理框圖如圖1所示,系統(tǒng)啟動后,手機終端會自動檢查GPS設(shè)備是否開啟,要進行自我定位,直接轉(zhuǎn)到電子地圖服務(wù)界面并在電子地圖上標示出用戶當前的位置信息。針對視障人士的特殊性,本發(fā)明采用語音命令的方式來進行目的地搜索,當用戶根據(jù)語音提示確定好目的地信息后,系統(tǒng)會根據(jù)當前的位置,規(guī)劃處一條路徑,為用戶提供必要的指引。
在Android系統(tǒng)中,為用戶存取數(shù)據(jù)提供了四種不同的方式,有Shared Preferences方式,SQLite存儲方式,文件方式以及網(wǎng)絡(luò)存儲方式。本發(fā)明考慮到系統(tǒng)性能的因素,因此采用了輕量級的嵌入式SQLite存儲方式。
為了能夠?qū)⒂脩舻乩砦恢眯畔⒌淖兓磿r的體現(xiàn)在電子地圖上,必須要有基本的地圖,然后要在地圖上加入一個定位按鈕,并且根據(jù)需要對menu選項的內(nèi)容進行修改和添加,為此,本發(fā)明根據(jù)實際需要,在menu選項中添加了相應(yīng)的功能子單元,其具體操作流程:
(1)在Android系統(tǒng)的工程目錄中加入地圖的API接口。在工程創(chuàng)建好以后,依次按照“Build Path”的順序從Android工程外部導入Map Api.jar,讓這個項目可以調(diào)用Map ABC地圖的API和訪問Map ABC服務(wù)器,最終讓地圖能夠顯示。
(2)創(chuàng)建地圖界面。在布局文件res/layout目錄下,創(chuàng)建了一個名為lay.xml的布局文件,在整體上使用線性布局Linear Layout,Linear Layout中包含路徑規(guī)劃、地圖界面模塊。地圖界面模塊使用的是相對布局Relative Layout,其中添加了Map ABC API Key以及設(shè)置了地圖的界面屬性,界面屬性主要包括height、width和clickable屬性。
(3)添加權(quán)限。進入地圖服務(wù)界面前,需要在Android Manifese.xml文件中添加一些權(quán)限,例如啟動項、網(wǎng)絡(luò)訪問權(quán)限以及定位權(quán)限等。
(4)Menu菜單設(shè)置。在res/menu目錄中,創(chuàng)建menu.xml的文件,添加名為“地點搜索”、“路徑規(guī)劃”、“實時路況”、“附近搜索”和“無線設(shè)置”的子單元,分別對應(yīng)相應(yīng)的語音指令。
通過上述部分可以實現(xiàn)基本的導航與定位功能。
二、綜合圖像處理系統(tǒng)
1.盲道路面識別模塊
1.1盲道圖像預處理單元
該處理單元首先獲取智能手機相機拍攝的盲道圖像,得到圖像的基本參數(shù),先對圖像進行色彩空間的映射,將RGB顏色空間的圖像轉(zhuǎn)換成Lab顏色模式或者YUV模式(RGB顏色空間是圖像處理中最基本、最常用和面向硬件的顏色空間,我們所采集的圖像,一般就是被分成R、G、B的成分加以保存的。然而,自然環(huán)境下獲取的真實圖像容易受自然光照、遮擋和陰影等情況的影響,是對亮度敏感的。而RGB顏色空間的分量與亮度密切相關(guān),即只要亮度改變,3個分量都會隨之相應(yīng)的改變,所以RGB顏色空間適合于顯示系統(tǒng),卻并不適合圖像的深度處理)。然后將經(jīng)過顏色空間變換后的圖像利用圖像增強中的灰度化方法得到盲道圖像的灰度圖像,再通過直方圖均衡化的處理加大圖像的對比度,然后對圖像進行平滑和二值化,經(jīng)過這一系列的處理后盲道圖像的細節(jié)信息得以清晰的展示,同時對部分無關(guān)的信息也進行了抑制,這就為后續(xù)的處理奠定了良好的基礎(chǔ),上述盲道圖像預處理的流程框圖如圖2所示。
對圖像的顏色空間變換需要經(jīng)過如下的步驟:
(1)將RGB顏色空間轉(zhuǎn)到XYZ,再由XYZ轉(zhuǎn)為Lab顏色空間:
①RGB轉(zhuǎn)XYZ
假設(shè)r、g、b為像素三個通道,取值范圍均為[0,255],轉(zhuǎn)換公式如下:
②XYZ轉(zhuǎn)Lab
上面兩個公式中,L*,a*,b*是最終的Lab色彩空間三個通道的值。X,Y,Z是RGB轉(zhuǎn)XYZ后計算出來的值,Xn,Yn,Zn一般默認是95.047,100.0,108.883.
③最終提取b分量圖
將b通道值b*按照像素位置,對應(yīng)賦值給一個單通道圖像。
(2)對圖像進行灰度化需要經(jīng)過如下的步驟:
①讀取圖像,判斷是否為灰度圖像;
②獲取圖像參數(shù);
③根據(jù)經(jīng)驗公式Vgray=0.30R+0.59G+0.11B,計算每個像素點的Vgray;
④再令原像素點的R、G、B的值都等于Vgray;
⑤生成灰度圖像顏色表;
(3)對圖像進行二值化要進過如下的步驟:
①讀取圖像,判斷是否為灰度圖像,若不是先進行步驟(2)灰度化處理;
②將每個像素的灰度值與設(shè)定的閾值進行比較,若大于平均值,則將其灰度值設(shè)為0,若小于平均值,則設(shè)為255;
③建立一個新的視圖顯示二值化的結(jié)果。
1.2圖像形態(tài)學處理單元
圖像的形態(tài)學操作是利用結(jié)構(gòu)元素對目標圖像集合進行處理的過程,如圖3所示。被處理的圖像被稱為目標圖像,為了確定目標圖像的結(jié)構(gòu),必須逐個考察各部分之間的關(guān)系。在考察目標圖像各部分之間的關(guān)系時,需要設(shè)計一種收集信息的“探針”,稱為“結(jié)構(gòu)元素”,在圖像中不斷移動結(jié)構(gòu)元素,就可以考察圖像之間各部分的關(guān)系。
二值圖像形態(tài)學運算是圖像形態(tài)學運算的基礎(chǔ),二值圖像形態(tài)學運算的過程就是在圖像中移動結(jié)構(gòu)元素,將結(jié)構(gòu)元素與其下面的重疊部分的圖像進行交、并等集合運算,為了確定元素中的參照位置,一般把進行形態(tài)學運算時的結(jié)構(gòu)元素的參考點稱為原點,且原點可以選擇在結(jié)構(gòu)元素中,也可以選擇在結(jié)構(gòu)元素之外。
(1)腐蝕的基本原理:
腐蝕是一種消除邊界點,使邊界向內(nèi)部收縮的過程,設(shè)X為目標圖像,B為結(jié)構(gòu)元素,則目標圖像X被結(jié)構(gòu)元素B腐蝕的表達式為:
其中,x表示集合平移的位移量,Θ是腐蝕運算的運算符。
二值形態(tài)學腐蝕操作的步驟如下:
①獲得源圖像的首地址及圖像的寬和高;
②開辟一塊內(nèi)存緩沖區(qū),并初始化為0;
③為防止越界,不處理最左邊、最右邊、最上邊和最下邊的像素,從第2行、第2列開始檢查源圖像中的像素點,如果當前點對應(yīng)的結(jié)構(gòu)元素中為白色的那些點中有一個不是白色,則將目標圖像中對應(yīng)的像素點賦值成黑色;
④循環(huán)步驟③,直到處理完源圖像的全部像素點;
⑤將結(jié)果從內(nèi)存緩沖區(qū)復制到源圖像的數(shù)據(jù)區(qū)中。
(2)膨脹的基本原理:
膨脹是將與物體接觸的所有背景點合并到該物體中,使邊界向外部擴張的過程,設(shè)X為目標圖像,B為結(jié)構(gòu)元素,則目標圖像X被結(jié)構(gòu)元素B膨脹的表達式為:
二值形態(tài)學膨脹操作的步驟如下:
①獲得源圖像的首地址及圖像的寬和高;
②開辟一塊內(nèi)存緩沖區(qū),并初始化為0;
③為防止越界,不處理最左邊、最右邊、最上邊和最下邊的像素,從第2行、第2列開始檢查源圖像中的像素點,如果當前點對應(yīng)的結(jié)構(gòu)元素中為白色的那些點中有一個是白色,則將目標圖像中的當前點賦值成白色;
④循環(huán)步驟③,直到處理完源圖像的全部像素點;
⑤將結(jié)果從內(nèi)存緩沖區(qū)復制到源圖像的數(shù)據(jù)區(qū)中;
1.3盲道區(qū)域粗定位單元
本發(fā)明針對盲道區(qū)域的粗定位主要進行如下5個部分作詳細的闡述。盲道區(qū)域的粗定位流程框圖如圖4所示。
(1)無色差盲道處理
無色差盲道(即盲道區(qū)域和非盲道區(qū)域沒有明顯的顏色差異,但有明顯的紋理差異),針對無色差盲道的處理本發(fā)明采用基于紋理差異,利用紋理描述算法結(jié)合聚類分析的方法來做,結(jié)合OpenCV中的cvKMeans2函數(shù)實現(xiàn)k均值聚類。
首先通過LBP算子提取LBP特征圖,原始LBP算子定義在像素3*3的鄰域內(nèi),以鄰域中心像素為閾值,相鄰的8個像素的灰度值與鄰域中心的像素值進行比較,若周圍像素大于中心像素值,則該像素點的位置被標記為1,否則為0。這樣,3*3鄰域內(nèi)的8個點經(jīng)過比較可產(chǎn)生8位二進制數(shù),將這8位二進制數(shù)依次排列形成一個二進制數(shù)字,這個二進制數(shù)字就是中心像素的LBP值,LBP值共有2^8種可能,因此LBP值有256種。中心像素的LBP值反映了該像素周圍區(qū)域的紋理信息,其中順時針使用LBP算子可以明顯區(qū)別盲道區(qū)域和非盲道區(qū)域的紋理特征。
然后通過K-均值聚類算法來計算特征向量,算法如下:
①適當選擇c個類的初始中心;
②在第k次迭代中,對任意一個樣本,求其到c個中心的距離,將該樣本歸到距離最短的類中,其中采用歐氏距離作為距離準則函數(shù);
③利用均值更新該類的中心值;
④對于所有的c個聚類中心,如果利用迭代算法更新后,值保持不變(目標函數(shù)收斂),則迭代結(jié)束,否則繼續(xù)迭代。
最后對圖像塊以(cell)為單位進行聚類填充,方法如下:
①創(chuàng)建grid_x*grid_y大小的圖像,像素值均為0,新圖中一個像素對應(yīng)原圖像中的一個cell塊;
②生成二值圖像:對應(yīng)原圖像中標識為1的cell,新圖在對應(yīng)像素值上賦值為255;
③填補缺口:全圖遍歷新圖,如果一個像素周圍存在三個相鄰的像素值相等,就將該像素置為對應(yīng)的值;
④先后進行一次腐蝕操作,兩次膨脹操作,從而消除區(qū)域變形。
⑤將圖像還原為原圖大??;
⑥填補二值圖中的干擾區(qū)域:如果二值圖中的輪廓面積小于某個值,就進行再次的填補操作;
⑦進行高斯濾波。
(2)色差盲道處理
針對有色差盲道的處理,本發(fā)明首先將圖像由RGB轉(zhuǎn)為Lab顏色空間并提取b分量圖。然后在將有色差盲道由RGB圖像轉(zhuǎn)換為Lab圖像之后,進行中值濾波操作以便消除一定量的噪聲(對于有色差盲道直線的檢測,經(jīng)過中值濾波處理之后還需要進行膨脹操作,該操作可以去除中值濾波無法消除的大范圍區(qū)域干擾。本發(fā)明的實驗結(jié)果表明,經(jīng)過5次膨脹操作會達到最佳處理效果,這樣可以消除大部分的干擾噪聲),最后對Lab空間下b分量圖采用Otsu分割算法,該算法的描述如下:Otsu是一種尋找圖像閾值的最大類間方差算法。它的基本原理是以最佳閾值將圖像的灰度值分割成兩個部分,使兩部分之間的方差最大,既具有最大分離性。
設(shè)f(x,y)為圖像IM×N的位置(x,y)處的灰度值,灰度級別為L,則f(x,y)∈[0,L-1]。若灰度級i的所有像素個數(shù)為fi,則第i級灰度出現(xiàn)的概率為:
其中i∈[0,L-1]且i為整數(shù)。
將圖像中的像素級用閾值t劃分為兩類,即背景C0和目標C1。背景C0的灰度級為0至t-1,目標C1的灰度級為t至l-1。
背景C0和目標C1對應(yīng)的像素分別為:{f(x,y)<t}和{f(x,y)≥t}。
背景C0部分出現(xiàn)的概率為:
目標C1部分出現(xiàn)的概率為:
其中ω0+ω1=1。背景C0部分的平均灰度值為:
目標C1部分的平均灰度值為:
圖像的總平均灰度值為:
圖像中背景和目標的類間方差為:
δ2(k)=ω0(μ-μ0)2+ω1(μ-μ1)2 (7)
令k的取值從0至L-1變化,計算不同k值下的類間方差δ2(k),使得δ2(k)最大時的k值就是要求的最優(yōu)閾值。
(3)邊緣檢測
前兩個步驟針對色差盲道和無色差盲道分別進行了處理,在這一步驟中本發(fā)明采用Canny算子對盲道圖像進行邊緣檢測的處理。邊緣檢測的步驟如下:
3.1)消除噪聲
在圖像預處理階段,需要進行降噪處理。一般情況下,使用高斯平滑濾波器卷積降噪,以下顯示了一個size=5的高斯內(nèi)核示例:
3.2)計算梯度幅值和方向
此處按照Sobel濾波器的步驟來操作。
①運用一對卷積陣列(分別作用于x和y方向):
②使用下列公式計算每一像素點的幅值梯度和方向:
而梯度方向一般取4個可能角度之一:0度、45度、90度、135度。
3.3)非極大值抑制
該步驟可以進一步排除非邊緣像素,僅僅保留一些細線條作為候選邊緣。
3.4)滯后閾值
Canny使用了滯后閾值,滯后閾值需要兩個閾值:高閾值和低閾值。
①若某一像素位置的幅值超過高閾值,則該像素被保留為邊緣像素;
②若某一像素位置的幅值小于低閾值,該像素被排除;
③若某一像素位置的幅值在兩個閾值之間,該像素僅僅在連接到一個高于高閾值的像素時被保留;
最終得到一個二值圖像,每點表示是否是一個邊緣點。
(4)角點檢測
針對有拐角的盲道,本發(fā)明采用Harris角點檢測的方法來完成,其實現(xiàn)步驟如下:
Harris角點理論提出了相應(yīng)的角點響應(yīng)函數(shù),如下式所示:
C(i,j)=det(M)-k(trace(M))2
其中M為結(jié)構(gòu)矩陣,k為常量因子,通常情況取值為0.04至0.06,對圖像窗口內(nèi)數(shù)據(jù)進行求和加權(quán),實際上可以更好地刻畫窗口中心特性。Harris角點檢測算法實現(xiàn)步驟如下:
①利用水平與豎直差分算子對圖像進行卷積操作,計算相應(yīng)的梯度fx和fy,根據(jù)實對稱矩陣M的組成,計算對應(yīng)矩陣元素的值;
②利用高斯函數(shù)對矩陣M進行平滑操作,得到新的M矩陣,步驟①和②可以改變順序,也可以對圖像進行高斯濾波,再求相應(yīng)方向上的梯度大??;
③對每一像素和給定的鄰域窗口,計算局部特征結(jié)果矩陣M的特征值和相應(yīng)函數(shù)C(i,j)=det(M)-k(trace(M))2;
④選取響應(yīng)函數(shù)C的閾值,根據(jù)非極大值抑制原理,同時滿足閾值及某鄰域內(nèi)的局部極大值為候選角點。
(5)障礙檢測
針對不連續(xù)的盲道,本發(fā)明設(shè)計了障礙檢測單元,這一部分主要涉及動態(tài)障礙和靜態(tài)障礙的檢測,在一定時間間隔內(nèi)連續(xù)拍攝的圖片都檢測到障礙在盲道圖像中,則認為盲道被靜態(tài)障礙遮擋從而造成了不連續(xù),這時給予盲人靜態(tài)障礙的語音提示,指引其繞過不連續(xù)的盲道路面;如果在一定時間間隔內(nèi)連續(xù)拍攝的圖片,障礙的位置在不斷變化,或者只是短暫的存在于盲道路面上,則認為盲道路面被動態(tài)障礙阻擋,這時給予盲人動態(tài)障礙的語音提示,指引其短暫等待之后再通過路面。
1.4盲道區(qū)域精定位單元
盲道區(qū)域的精定位單元的實現(xiàn)主要通過以下三個模塊:圖像歸一化處理、盲道區(qū)域左右邊界與盲道區(qū)域上下邊界確定、和標記邊界輪廓來完成,如圖5所示。
(1)歸一化處理
歸一化思想是利用圖像的不變矩,尋找一組參數(shù)使其能夠消除其他變換函數(shù)對圖像變換的影響。也就是轉(zhuǎn)換成唯一的標準形式以抵抗仿射變換圖像歸一化使得圖像可以抵抗幾何變換的攻擊,它能夠找出圖像中的那些不變量,從而得知這些圖像原本就是一樣的或者一個系列的。歸一化是一種簡化計算的方式,即將有量綱的表達式,經(jīng)過變換,化為無量綱的表達式,成為純量。本發(fā)明中主要要通過歸一化減小盲道圖像由于光線不均勻造成的干擾,有利于對盲道區(qū)域的邊界進行準確的識別。
(2)確定盲道區(qū)域左右邊界和上下邊界
首先,在豎直方向上統(tǒng)計白色像素的個數(shù),并求出最大值,用此值來歸一化其他列的值,之后就可以確定出盲道的左右邊界;隨后在水平方向上統(tǒng)計白色像素的個數(shù),并求出另外一個最大值,用此值來歸一化其他列的值,從而確定盲道區(qū)域的上下邊界,這部分工作完成之后,在進行盲道區(qū)域粗定位的相關(guān)部分的處理,從而可以實現(xiàn)盲道區(qū)域的精定位過程。
(3)標記邊界輪廓
將上述處理得到的邊界輪廓與未處理的盲道原圖做整合,在原圖中標記出邊界輪廓,至此盲道區(qū)域的精定位就可以實現(xiàn)了。
2.交通路口辨識模塊
2.1交通路口辨別單元
交通路口辨別單元主要利用智能手機的多模感知器來辨別交通路口的信息,如圖6所示。
交通路口的信號燈以及路口通過提示音都可以為檢測路口提供信息,本發(fā)明通過智能手機的麥克風來檢測路口的通過提示音來確定路口的大致位置,同時利用麥克風來檢測盲杖接觸地面的聲音來確定相機的拍照點,此時智能手機拍攝的圖像為斑馬線的信息,根據(jù)相機連續(xù)拍攝獲取的斑馬線圖像信息同時結(jié)合方向傳感器獲取的信息可以確定斑馬線的相對位置,此外利用加速度計和電子羅盤對當前的行進方向進行估計和角度矯正。
2.2斑馬線圖像預處理單元
參見圖7,該處理單元首先獲取智能手機拍攝的斑馬線圖像,得到圖像的基本參數(shù),先進行色彩空間的映射,將RGB顏色空間的圖像轉(zhuǎn)換成Lab顏色模式或者YUV模式。然后將經(jīng)過顏色空間變換后的圖像利用圖像增強中的灰度化方法得到斑馬線圖像的灰度圖像,再通過直方圖均衡化的處理加大圖像的對比度,然后對圖像進行平滑和二值化,經(jīng)過這一系列的處理后斑馬線圖像的細節(jié)信息得以清晰的展示,同時對部分無關(guān)的信息也進行了抑制,這也為后續(xù)的處理奠定了良好的基礎(chǔ)。
2.3斑馬線區(qū)域粗定位單元
斑馬線區(qū)域粗定位單元可由以下四個模塊:路口感知模塊、形態(tài)學處理模塊、閾值分割、和Canny邊緣檢測與Hough直線查找加以描述,如圖8所示。
(1)路口感知模塊
路口感知模塊屬于斑馬線區(qū)域粗定位的前期處理單元,通過智能手機的多模感知器(這里主要利用麥克風和相機模塊單元)來探測路口,手機的麥克風通過檢測交通路口特殊的提示音用來判定是否接近路口,同時估計出路口的大致位置;設(shè)定手機的相機單元處于偵測狀態(tài),間歇性的捕獲路面的圖像,如果一旦檢測到圖像中存在斑馬線,則將整個處理過程移交給下一個單元。
(2)形態(tài)學處理模塊
在盲道路面識別模塊中,本發(fā)明針對盲道路面圖像進行了形態(tài)學的處理,同樣的道理,針對斑馬線圖像也需要進行形態(tài)學的處理。在盲道路面識別模塊中,本發(fā)明針對盲道圖像應(yīng)用了腐蝕、膨脹和二者之間的組合操作,為后續(xù)的處理做了鋪設(shè),在斑馬線圖像的處理中,除了要應(yīng)用圖像的腐蝕與膨脹,本發(fā)明還進行了圖像的開閉運算,來進一步提升處理的效果。
前面介紹的腐蝕和膨脹運算,看上去像是一對互逆的操作,實際上并不是,開運算和閉運算正是根據(jù)這種不可逆性演變過來的。
使用同一結(jié)構(gòu)元素對目標圖像先進行腐蝕運算,再進行膨脹運算的過程稱為開運算,經(jīng)過開運算之后能夠去除孤立的小點、毛刺和小的連通區(qū)域,不改變目標圖像的面積。設(shè)X為目標圖像,B為結(jié)構(gòu)元素,則結(jié)構(gòu)元素B對目標圖像X的開運算的數(shù)學表達式為:
公式的含義是用B來開啟X得到集合該集合是所有在集合結(jié)構(gòu)上不小于結(jié)構(gòu)元素B的部分的集合,也就是選出了X中某些與B相匹配的點,而這些點則可以通過完全包含在X中的結(jié)構(gòu)元素B平移得到。本發(fā)明采用的開運算主要有以下兩個步驟:
①調(diào)用腐蝕函數(shù)對源圖像進行腐蝕處理;
②調(diào)用膨脹函數(shù)對腐蝕后的圖像進行膨脹處理;
③重復①②步驟三次。
閉運算是開運算的對偶運算,通過對腐蝕和膨脹的另一種不同次序的執(zhí)行而得到。閉運算是使用一個結(jié)構(gòu)元素對目標圖像先進行膨脹運算,再進行腐蝕運算的過程,其功能是用來填充物體的細小空洞、連接臨近物體、平滑其邊界,不改變目標圖像的面積。設(shè)X為目標圖像,B為結(jié)構(gòu)元素,則結(jié)構(gòu)元素B對目標圖像X的閉運算的數(shù)學表達式為:
閉運算的含義是,用B來閉合X得到的集合,就是圖像X于經(jīng)過反射和平移的結(jié)構(gòu)元素B的交集不為空的點的集合。本發(fā)明采用的閉運算主要有以下兩個步驟:
①調(diào)用膨脹函數(shù)對源圖像進行膨脹處理;
②調(diào)用腐蝕函數(shù)對膨脹后的圖像進行腐蝕處理;
③重復①②步驟三次。
(3)OTSU閾值分割
在盲道圖像識別的色差處理部分我們有用到Otus閾值分割的方法,所以在這一部分不多贅述,針對斑馬線圖像著重探討全局閾值的選取。
圖像的灰度直方圖是圖像各像素灰度值的一種統(tǒng)計度量,最簡單的閾值選取方法就是根據(jù)直方圖來進行的。對于雙峰直方圖選取兩峰之間的谷所對應(yīng)的灰度值作為閾值就可以將目標和背景分開,其中谷的選取有多種方法,得到的閾值也不相同,主要有以下三種方式:
極小點閾值:如果將直方圖的包絡(luò)看做一條曲線,則選取直方圖的谷可借助求曲線極小值的方法。設(shè)用h(z)代表直方圖,那么極小值點應(yīng)滿足:
和
和這些極小值點對應(yīng)的灰度值就可以作為分割的閾值,稱作極小值點閾值。
最優(yōu)閾值:有時目標和背景的灰度值有部分交錯,用一個全局閾值并不能將它們絕然分開,這時希望能減小誤分割的概率,而選取最優(yōu)閾值是一種常用的方法。設(shè)一幅圖像僅包含2類主要的灰度值區(qū)域(目標與背景),它的直方圖可看成灰度概率密度函數(shù)的一個近似,這個密度函數(shù)實際上是目標和背景的2個單峰密度函數(shù)之和,如果已知密度函數(shù)的形式,那么就可以選取一個最優(yōu)閾值把圖像分成兩類區(qū)域而使誤差最小。
最大凸殘差閾值:在實際應(yīng)用中,包含目標和背景兩類區(qū)域的圖像的直方圖并不一定總是呈雙峰形式,特別是當圖像中目標與背景面積相差較大時,直方圖的一個峰會淹沒在另一個旁邊的緩坡里,直方圖基本成為單峰形式,為解決這類問題,可以通過對直方圖凹凸性的分析,從這樣的直方圖中確定一個合適的閾值以分割圖像。圖像的直方圖可以看作平面上的一個區(qū)域,對該區(qū)域可計算其凸包并求取其最大的凸殘差,由于凸殘差的最大值常出現(xiàn)在直方圖高峰的肩處,所以可以計算最大凸殘差閾值來分割圖像。
本發(fā)明在這一部分對斑馬線圖像的處理采用極小點閾值的方式來確定分割閾值,因為斑馬線圖像呈現(xiàn)出的就是灰色的路面背景和白色的條狀線,所以具有非常明顯的邊界,用此方式就可以確定出邊界。
(4)Canny邊緣檢測與Hough直線查找
Canny邊緣檢測:Canny算子把邊緣檢測問題轉(zhuǎn)化為檢測單位函數(shù)極大值的問題來考慮,其利用高斯模型,借助圖像濾波的概念來處理圖像的邊緣,在盲道圖像識別部分對利用Canny算子進行邊緣檢測進行了介紹,在這一部分也不過多陳述。
一個好的邊緣檢測算子應(yīng)該具有三個指標:①低失誤率,既要少將真正的邊緣丟失也要少將非邊緣判定為邊緣;②高位置精度,檢測出的邊緣應(yīng)該在真正的邊界上;③單位像素邊緣,即對每個邊緣有唯一的響應(yīng),得到的邊界為單像素寬。根據(jù)這三個指標,Canny提出了判定邊緣檢測算子的三個準則:信噪比準則、定位精度準則和單邊緣響應(yīng)準則。正是由于Canny算子有如此的優(yōu)秀性質(zhì),所以本發(fā)明在做邊緣處理部分利用了Canny算子。
Hough直線查找:在圖像處理和計算機視覺領(lǐng)域,霍夫(Hough)線變換是進行直線查找的有效方法,應(yīng)用很廣泛。OpenCV支持三種不同的霍夫線變換:標準霍夫變換、多尺度霍夫變換和累計霍夫變換。采用累計概率霍夫變換進行邊界直線查找,能夠減少計算量,縮短計算時間,同時提高執(zhí)行效率,因此本文采取累計霍夫變換。
霍夫線變換的原理如下:
1)一條直線在圖像二維空間可由兩個變量表示,有如下兩種情況,如下坐標圖9所示:
①在笛卡爾坐標系:可以由參數(shù)斜率和截距(k,b)表示;
②在極坐標系:可以由參數(shù)極徑和極角(r,θ)表示。
對于Hough變換,采用第二種方式來表示直線,因此,直線的表達式為:
化簡可以得到:
r=xcosθ+ysinθ
2)一般來說對于點(x0,y0),可以將通過該點的直線統(tǒng)一表示為:
rθ=x0·cosθ+y0·sinθ
這意味著每一對(rθ,θ)都代表著一條通過點(x0,y0)的直線。
3)如果對給點的點(x0,y0),在極坐標繪出所有通過它的直線,即得到無數(shù)個(rθ,θ)點,連接后成為一條正弦曲線。
4)對圖像中所有的點進行3)中的操作,如果兩個不同的點進行上述操作后得到的曲線在平面θ-r相交,就意味著它們通過同一條直線。
5)一般來說,一條直線能夠通過在平面θ-r尋找交于一點的曲線數(shù)量來檢測。而越多曲線交于一點也就意味著這個交點表示的直線由更多點組成。通過設(shè)置直線上點的閾值來定義多少條曲線交于一點,才能被認為是檢測到了一條直線。
通過霍夫線變換追蹤圖像中每個點對應(yīng)曲線的交點,如果交于一點的曲線數(shù)量超過閾值,可以認為這個焦點所代表的參數(shù)(rθ,θ)在原圖像中為一條直線。
2.4斑馬線區(qū)域精定位單元
斑馬線區(qū)域的精定位與行進角度和方向的修正過程如圖10所示。
由于導盲手杖運動過程中無法捕獲清晰斑馬線信息,因此設(shè)定一個圖像自動獲取機制尤為關(guān)鍵??梢岳檬謾C內(nèi)置加速度傳感器波形變化作為拍攝信號,也可以利用導盲手杖敲擊地面時短暫的穩(wěn)定間隙來作為拍攝斑馬線的穩(wěn)定時刻指示器,結(jié)合閾值檢測方法使用麥克風模塊跟蹤碰撞信號。得到斑馬線圖像后,使用前后景分離的Hough變換提取人行橫道線。
固定在導盲杖上相機(智能手機)的拍攝角度如圖11所示,其中角度β和γ表示導盲杖在身體左右兩邊的擺動角度,角度∝表示相機正前方的拍攝角度(鏡頭的角度)。當斑馬線被識別后,系統(tǒng)將會利用傳感器來讀取視覺障礙患者的相對位置,相對位置通過一組數(shù)組描述<旋轉(zhuǎn)角度(θ),水平位移(d)>,水平位移d為當前拍攝時盲杖與斑馬線的距離,可以得到
旋轉(zhuǎn)角度(θ)為固定在盲杖上的智能手機,在盲杖左右擺動時候與行進方向的角度,在這里稱為拍攝的旋轉(zhuǎn)角度。μ為最靠近用戶的條紋到水平的夾角,水平位移d用來引導視覺障礙者行至最靠近行人的斑馬線中央,s為用戶到最靠近的斑馬線之間的直線距離。由相機給定的校正信息(焦距f),相機的方向(已經(jīng)得到的α和γ與β)和距離地面的高度,可以計算出地面的距離d?;谶@些給定值,我們可以進一步估算出水平偏移量d為d=s·cos(μ)+l/2,l為斑馬線的寬度,如圖12所示。
為了引導用戶在斑馬線中行走,需要對視障人士前進方向進行判斷。智能手機利用電子羅盤來捕獲盲杖的正面朝向,結(jié)合圖像進行的邊緣和紋理檢測,在此基礎(chǔ)上設(shè)計了一種基于幾何分析的增量式的行走方向糾正方案,軌跡如圖13所示。
假設(shè)用戶離開a點轉(zhuǎn)入第一條子軌跡而到達b點。行走距離h可以通過簡單地計算每一次擺動周期中的平均移動距離p(依照經(jīng)驗設(shè)置成30cm)與擺動周期數(shù)k的乘積而得到。給定運動距離h和用戶的前進角度θj,可以通過以下方程計算最小角度θmin和最大角度θmax告知用戶做出及時恰當?shù)恼{(diào)整。
通過計算出這兩個數(shù)據(jù)的均值并依據(jù)這個角度適當?shù)匾龑в脩粽{(diào)整他們的行走方向。
三、語音輔助系統(tǒng)
語音輔助提示部分是貫穿整個發(fā)明的重要部分,針對盲人這類特殊的群體,適時和必要的語音提示是不可或缺的輔助手段。
首先,在基礎(chǔ)導航部分,結(jié)合百度地圖的API開發(fā)的LBS導航系統(tǒng)可以實現(xiàn)實時位置定位和路徑的選擇,盲人在出行之前打開手機已經(jīng)安裝的導盲系統(tǒng),此時系統(tǒng)自動開啟GPS并播報盲人當前的位置和朝向,然后詢問盲人本次要出行的目的地,當盲人說完目的地之后,導盲系統(tǒng)先根據(jù)第三方的地圖規(guī)劃處一條有效的步行路徑,然后指引盲人該朝哪個方向行進;但是基于導航系統(tǒng)的定位與導航并不能指引盲人安全出行,此時需要盲道識別系統(tǒng)對盲人的行走做出有效的指引,此時導盲系統(tǒng)開啟盲道識別模塊,實時檢測當前行進方向的盲道區(qū)域,一旦前方的盲道路面出現(xiàn)不連續(xù)的情況,語音提示部分提前播報,輔助盲人做出判斷,如果前方存在動態(tài)障礙則提示盲人等候,然后通過該區(qū)域,如果盲道路面被靜態(tài)障礙阻擋,則告誡盲人前方有無法通過的障礙,請繞行的提示,如果前方不遠處存在拐角,則提前告知盲人及時做好轉(zhuǎn)彎的準備。若導盲系統(tǒng)檢測到前方存在路口,則開啟路口檢測導航模塊,及時提示盲人前方多遠的距離有路口請?zhí)崆白龊脺蕚?,路口辨識模塊開啟后,首先要檢測斑馬線的位置,當檢測到斑馬線位置,并且此時是行人通行的時候指引盲人開始通過路口,在盲人在斑馬線行走期間,斑馬線檢測部分要實時檢測斑馬線的區(qū)域,并給予盲人必要的提示,確保盲人在通過路口期間一定在斑馬線區(qū)域之中。
至此,這就是本發(fā)明提供的導盲系統(tǒng)在為盲人提供輔助幫助的時候所提供的語音提示,基本上可以為盲人的安全出行,提供必要的安全指引。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當中。