王濤,王學
(河北工程大學 數理科學與工程學院,河北邯鄲,056038)
20世紀80年代美國麻省理工學院的Marr[1]發(fā)明了一個基于雙眼顏色匹配原理的視覺設計概念,將二個有視差的平面圖進行處理后可以形成有深度的立體圖像,并以此進行了三維重建[2]。與透鏡板三維圖像、投射式顯示器、全息照相科技等其他三維重建技術比較,雙目立體視覺能夠模仿人體眼睛來處理待測的障礙物,更加直觀簡單,使用前景范圍也更加廣泛。美國波古頓汽車有限公司開發(fā)研制的采用立體可視導航技術的仿生型四腳攝像機Big Dog[3],其人工智能手段有助于認識周邊情況,并通過收集不同車輛的位置數據實現(xiàn)移動和避障。美國華盛頓學院和微軟集團共同開發(fā)的寬基線立體視覺科技,使“探索者”號能夠在火星上實現(xiàn)更精準的定向和導航。哈爾濱工業(yè)大學的高慶吉[4]教授等人研制的異構雙目視覺科技,使自動化攝像機能夠同時捕獲多種有效目標,從而完成了對足球攝像機的完全主動導航。中國科學院自動化研究所研發(fā)了一種自主移動機器人,通過對環(huán)境的影像拍攝和立體匹配,可以獲取相應距離和高度數據,從而為自己的活動提供指引。南京航空航天大學的張鳳靜[5]等通過雙目立體視覺計算了汽車的車距,并通過汽車分別在前后鏡頭抓拍的畫面上的位置計算得到了汽車與相機之間的距離位置。
20世紀70年代Paul[6]等人制造出了一套觸覺的視覺替代裝置,它包含:可以自動聚焦的攝像頭、作用在背面的機械激發(fā)電磁閥和能夠將數據信息轉換為相應電信號的數字轉換陣列通過增強的集成電路連接到電極。測試數據表明,測試儀可以感覺到給出的最簡單地顯示圖像,識別單色線的移動位置,甚至通過轉動聚焦方法(例如人眼)和鎖定長線段的移動位置來自主對焦。20世紀90年代Kurt[7]等設計出根據指尖的四十九點電刺激替代系統(tǒng),并做了指尖的電觸覺顯示試驗,結果表明指尖擁有除舌頭外最佳的感覺。20世紀90年代Paul[8]等人基于舌頭的49點電觸覺陣列上模式識別的早期試驗。結論表明,舌頭的電觸摸效果比所有模式中的指尖電觸摸都要好,不僅舌頭的操作電壓為5~15V(只有3%的指尖電壓),而且電流只需要1.612mA。同時,驗證了通過舌頭用點刺激代替盲人的感覺技術的有效性。20世紀初,名為BrainPort[9]的可以通過舌頭的電刺激觸覺的新技術出現(xiàn)了。它由郵票形狀,數碼相機和傳感器形狀的電子刺激場組成,并帶有控制器的控制器,可調節(jié)變焦和鏡頭對比度。像素刺激的灰度中的黑白像素,且灰色值能夠自主調節(jié)。這種轉置技術已經進入了臨床實踐中。在2006年,日本正在研究基于前額的觸覺替代技術[10~12]。這個裝置由一個特別微小的攝像頭和一個擁有512個電極的陣列組成,系統(tǒng)每33ms抓取一次照相機的圖像,將其轉化成256個色階的灰階圖像,然后再利用高斯函數的拉普拉斯濾波的方法把圖像壓縮,最后再將其二值化并處理成黑白底片成像。同時期帥立國[13]等提出這種采用水噴射的觸覺圖文表示信息技術。2008年,開發(fā)基于射流式刺激的圖文顯示裝置[14~16]。2009年,中國的東南大學帥立國[17~18]等發(fā)表一種穿戴式盲教設備。2008年,柴新禹[19]等申報采用電激發(fā)的觸覺視覺替代控制系統(tǒng)發(fā)明專利。推出了256個點通過對手指的電刺激的觸覺替代系統(tǒng)[20]。圖像收集單元將收集的文本和圖形信號傳送到圖像處理單元;圖像處理單元則將收集的圖像經過簡化、增強、解碼等技術處理,轉換為電信號傳送給刺激器;刺激器通過刺激信息的控制,形成了多路激勵脈沖作用于手指上。該操作系統(tǒng)文字識別效率受限,需要更進一步地改善。
綜上所述,本系統(tǒng)的成功研制,將能夠做到部分甚至完全替代導盲犬的任務,為更多申請不到導盲犬的視障人士提供服務,幫助視障人士更好地感知周圍的世界,并且電子設備不會存在導盲犬的一些生理問題,更加方便視障人士的生活。
本文提出的基于雙目立體視覺的視障輔助系統(tǒng)如圖1所示。系統(tǒng)由一對雙目近紅外寬帶攝像頭、子系統(tǒng)一雙目立體視覺成像系統(tǒng)、子系統(tǒng)二視覺觸覺視覺替代系統(tǒng)以及電刺激模塊組成。使用左右雙目攝像頭采集雙目圖像進行標定與校正,并預置標定矩陣。使用時,使用雙目攝像頭采集雙目圖像進行立體匹配,獲得的視差圖像經過壓縮編碼后,通過串口通信發(fā)送給所述子系統(tǒng)二視覺觸覺替代系統(tǒng),該視覺觸覺替代系統(tǒng)通過解碼子系統(tǒng)已發(fā)送的圖像信息,在驅動電路的加持下,通過電刺激模塊作用于人體皮膚,達到一種類似視覺的觸覺體驗。本系統(tǒng)采用模塊化設計,方便模塊更換與維護,降低成本;輕量化模塊低壓驅動設計易于穿戴。為了具備可穿戴能力,子系統(tǒng)一使用了樹莓派平臺,子系統(tǒng)二使用了Arduino平臺。雙目近紅外寬帶能夠提供一定的夜視能力,增加了適用場景。具有無侵入性、佩戴方便、使用簡單、舒適安全等特點。
圖1 系統(tǒng)結構圖
子系統(tǒng)一雙目立體視覺成像系統(tǒng)基于樹莓派4B+實現(xiàn)如圖2所示;傳感器采用雙目近紅外寬帶攝像頭;對于雙目攝像頭:根據對極幾何原理,為了提高傳感器的有效范圍,綜合人的額頭寬度數據,我采用了基線距離為120mm的雙目攝像頭;同時為了增加夜視能力,采用了850nm紅外寬帶攝像頭,視場角55°,焦距4.5mm。
圖2 雙目立體視覺系統(tǒng)
針對雙目近紅外寬帶攝像頭模塊使用張正友標定法[21],對雙目近紅外寬帶攝像頭模塊進行標定,從而分別獲得左右攝像頭的標定參數;對雙目圖像進行畸變矯正與極線校正,分別得到徑向畸變矩陣、切向畸變矩陣和內參矩陣。將上述標定參數、徑向畸變矩陣、切向畸變矩陣和內參矩陣作為所述雙目立體視覺成像系統(tǒng)的預置參數,參與成像系統(tǒng)的工作。
本文使用Matlab的工具箱進行雙目近紅外寬帶攝像頭的標定與校正工作,根據參考文獻[22]中提出的標定圖像的采集數量在大于13張時,系統(tǒng)標定誤差趨于穩(wěn)定。本文在標定時,為了降低雙目攝像頭在各視距范圍內的誤差,在距離攝像頭0.5m、1m、1.5m、2m、2.5m、3m的距離分別采集20張左右攝像頭的圖像進行標定,選用的標定板精度為0.01mm,標定過程如圖3所示。雙目相機標定的全局平均誤差降低至0.1pixel。
圖3 標定過程
使用雙目近紅外寬帶攝像頭模塊對周圍環(huán)境進行圖像采集,并將采集到的數字圖像傳輸給所述雙目立體視覺成像系統(tǒng);雙目立體視覺成像系統(tǒng)對獲得的數字圖像進行數字圖像信息的預校正和預處理,采用雙目立體匹配算法計算目標的深度信息以獲得視差圖像,并對視差圖像進行適當的優(yōu)化和濾波處理,同時算法采用高效的編碼方式,將獲得的深度信息通過串口通信技術發(fā)送給所述觸覺視覺替代系統(tǒng);基于雙目立體視覺的視障輔助系統(tǒng),包括第四代低電壓雙倍數據率同步動態(tài)隨機存取存儲器(LPDDR4 SDRAM)、64位四核高級精簡指令集中央處理器(quad-core 64-bit ARM CPU)、第三代通用序列總線(USB 3.0)、數字模擬轉換器、微型閃速存儲卡(TF卡)和通用輸入輸出端口(GPIO),所述雙目近紅外寬帶攝像頭模塊采集到的雙目圖像信息通過第三代通用序列總線傳輸并保存至第四代低電壓雙倍數據率同步動態(tài)隨機存取存儲器;同時從微型閃速存儲卡中將預先內置的標定參數、徑向畸變矩陣、切向畸變矩陣和內參矩陣加載到第四代低電壓雙倍數據率同步動態(tài)隨機存取存儲器;64位四核高級精簡指令集中央處理器讀取存放在第四代低電壓雙倍數據率同步動態(tài)隨機存取存儲器中的雙目圖像信息和上述預置參數進行視差計算、代價聚合和視差優(yōu)化,將處理后的視差圖像信息保存在第四代低電壓雙倍數據率同步動態(tài)隨機存取存儲器中,對視差圖像信息進行二值圖像轉換和圖像壓縮編碼,使用通用輸入輸出端口連接所述視覺觸覺替代系統(tǒng),通過串口通信程序發(fā)送給所述的視覺觸覺替代系統(tǒng)。雙目圖像處理程序、雙目立體匹配程序和圖像壓縮編碼傳輸程序保存在微型閃速存儲卡中。
二值圖像轉換與壓縮編碼。為了提高傳輸速率,提高通信線路的有效數據位利用率,因為一個unsigned char類型數據能夠編碼8位數據,所以發(fā)送端與接收端約定使用unsigned char類型數據進行位圖格式編碼。初始化一個全為1的矩陣,使用庫函數,與原來的binary二值圖進行按位與操作,得到一個位圖。將該位圖resize為32*16的分辨率,并切割為8*8的子位圖,通過無符號字符類型編碼,將子位圖按行發(fā)送給子系統(tǒng)二視覺觸覺替代系統(tǒng)。通信方式是基于樹莓派的GPIO引腳與Arduino的引腳進行I2C通信。Arduino單片機在接收到數據后,使用無符號字符類型進行位圖解碼,基于一個自定義的Stack數據結構重新進行位圖拼裝。
子系統(tǒng)二視覺觸覺替代系統(tǒng)基于Arduino實現(xiàn)如圖4所示。二值圖像解碼模塊通過通用輸入輸出端口與所述雙目立體視覺系統(tǒng)連接,負責與雙目立體視覺成像系統(tǒng)進行串口通信,對接收到編碼后的圖像數據后進行解碼處理;信號傳輸控制模塊加載手動調節(jié)模塊傳遞的外部設定參數,經過計算,將信號通過所述信號傳輸控制模塊將解碼后的圖像數據傳送給硬件驅動模塊;硬件驅動模塊包括逐行掃描驅動電路、高低壓隔離電路和保護電路;逐行掃描驅動電路接收處理控制模塊傳輸的電信號,控制點電極刺激陣列中每個點電極的開閉信號分配;高低壓隔離電路將所述升壓模塊的高壓模擬信號與逐行掃描驅動電路的低壓數字信號進行隔離,并接收逐行掃描驅動電路的開閉信號對點電極進行開閉控制;保護電路為逐行掃描驅動電路和高低壓隔離電路提供保護能力,對逐行掃描驅動電路提供干擾阻隔能力,防止擾亂信號對正常的脈沖信號產生影響,對高低壓隔離電路提供柵極電荷泄放能力,防止電荷累積,損傷元器件。
圖4 視覺觸覺替代系統(tǒng)
硬件驅動模塊電路原理圖如圖5所示,其通過預留的16根引腳與Arduino的16個數字信號引腳相連接。硬件驅動模塊的PCB渲染圖如圖6、圖7所示。
圖6 PCB渲染圖1
圖7 PCB渲染圖2
電刺激模塊連接硬件驅動模塊,并設計為熱插拔方式,方便更換,電刺激模塊上的點電極呈方形陣列分布,點電極呈半球狀,防止尖端放電現(xiàn)象的產生,對人體皮膚產生強烈刺激,半徑為0.8~1.0mm,點電極間距為1.0~1.2mm,材質為不銹鋼或鍍鎳銅;升壓模塊前端連接供電系統(tǒng),后端連接電刺激模塊將供電系統(tǒng)的低壓電源升壓為能夠刺激人體皮膚的高壓電源,驅動電刺激模塊,對被接觸的人體皮膚產生合適的電脈沖刺激;電刺激模塊采用柔性PCB設計,可彎曲,能夠更加貼合用戶的額頭,通過點電極陣列電脈沖刺激,對用戶的皮膚產生一種類似視覺信號的觸覺體驗。電刺激模塊PCB渲染圖如圖8所示。
圖8 電刺激模塊渲染圖
兩個實驗分別驗證子系統(tǒng)一和子系統(tǒng)二的有效性。
將標定參數提前注入程序中,并設定以下程序中的變量參數:聚合路徑數為4路徑;最小視差為0pixel,最大視差為64pixel;并啟用一致性檢查、唯一性約束、剔除最小連通區(qū),最后進行視差圖填充;初始化參數后進行雙目圖像匹配,并對視差圖像進行中值濾波處理,雙目匹配的視差圖像如圖9所示。
圖9 視差圖像
實驗仿真程序,驗證硬件驅動程序的有效性,使用8*8led對驅動顯示結果進行可視化,仿真結果如圖10所示。使用示波器測量電刺激模塊的有效性;為安全起見,刺激電壓調整為5V;測試結果如圖11所示。圖11中,右上角“被點亮”的點電極的波形圖;為接地信號,沒有電平信號;其余3張圖為被點亮點電極周圍的3個點電極的信號,沒有被點亮,默認為高電平;實驗結果與預期相符。
圖10 仿真結果
圖11 測量結果
設計并實現(xiàn)了一種基于雙目立體視覺的視障輔助系統(tǒng)。雙目攝像頭經過簡單的標定和校正后,就能夠使用雙目圖像傳感器采集圖像,通過SGBM算法計算周圍的3D信息,并將3D信息壓縮編碼,通過串口通信發(fā)送給觸覺視覺替代系統(tǒng),電路原理及驗證的試驗結果證明了這套基于雙目立體視覺的視障輔助系統(tǒng)的可行性。