



摘" 要:人獲取外界信息主要通過視覺。失去視覺后,盲人在日常生活中存在諸多困難與危險。隨著計算機軟硬件技術的迅速發展,導盲設備層出不窮,使盲人群體的生活狀況有所改善,切實享受到科技進步帶來的便利。現有的導盲設備為盲人的生活提供一些幫助,但存在著價格高、體驗差、功能單一等問題。基于以上原因,該文提出一種更人性化、大眾化、智能化的基于人工智能技術的多信息融合可穿戴式導盲系統。系統選用帶有Raspbian操作系統的樹莓派4B開發板作為主控制器,協控制器選用STM32開發板,以OpenCV和C++作為系統的開發工具。系統中的物體識別部分采用OpenCV提供的圖像處理接口實現,安全避障部分采用激光測距模塊獲取障礙物距離,語音識別部分采用語音識別模塊對系統進行語音控制,可撥打緊急電話并發送帶GPS定位的求救短信。項目采用多線程開發技術開發系統軟件,使得系統的性能更加優越。
關鍵詞:可穿戴式導盲系統;多信息融合;物體識別;語音識別;樹莓派
中圖分類號:TP311.5" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2023)18-0019-04
Abstract: The main way for humans to obtain external information is through vision. With the loss of vision, the blind have many difficulties and dangers in their daily lives. With the rapid development of computer software and hardware technology, a variety of guide devices for the blind have emerged, improving the living conditions of the blind population and allowing them to truly enjoy the convenience brought by technological progress. The existing guide devices have provided some help to the blind in their lives. However, existing guide devices for the blind have problems such as high prices, poor user experience, and single function. For these reasons, this paper proposes a more humane, popular and intelligent wearable guide system based on artificial intelligence technology with multi-information fusion. The system uses Raspberry Pi 4B development board with Raspbian OS as the main controller, STM32 development board as the co-controller, OpenCV and C++ as the development tools of the system. The object recognition part of the system is implemented using the image processing interface provided by OpenCV, the safety obstacle avoidance part uses a laser ranging module to obtain the distance to obstacles, and the speech recognition part uses a speech recognition module for voice control of the system, which can make emergency calls and send rescue messages with GPS positioning. The project adopts multi-threaded development technology to develop the system software, which makes the system's performance more superior.
Keywords: wearable guide system; multi-information fusion; object recognition; speech recognition; Raspberry Pi
系統是以樹莓派4B為主控制器、STM32為協控制器,結合超聲波測距技術、紅外線測距技術、圖像處理技術、通信和GPS定位技術及語音識別技術,實現具有多種功能的盲人行動輔助系統。
控制器之間通過無線通信模塊來實現通信。其中主控制器樹莓派及其所控制的外圍設備安裝在馬甲上作為系統的核心馬甲端,協控制器STM32及其所控制的外圍設備安裝在導盲杖上構成導盲杖端。同時采用掛耳式耳機與震動模塊對系統感知到的外界環境進行反饋,將信息經過處理后以語音和震動的形式傳達給盲人。綜上,系統的組成部分為馬甲端+導盲杖端,模塊間相互作用,達到輔助盲人行進的目的。系統整體結構如圖1所示。
1" 系統設計主要任務
系統主要利用樹莓派4B開發板和STM32開發板搭建具有斑馬線識別功能、紅綠燈識別功能、安全避障功能和一鍵求助功能,以及人機交互功能的可穿戴式導盲系統。設計任務分為3大部分:數據采集模塊、數據處理模塊、人機交互模塊。
數據采集模塊負責采集當前盲人所處環境信息,并將信息傳遞給處理器。根據系統設計可以看出,需要采集的環境信息包括:障礙物信息、斑馬線信息、紅綠燈信息,當盲人使用一鍵求助功能時,系統還需要獲取當前盲人所處位置的GPS數據。其中,障礙物信息通過超聲波、紅外傳感器進行獲取,圖像信息通過USB攝像頭獲取,位置信息通過GPS模塊獲取。
數據處理模塊根據數據采集模塊采集到的數據,作出對當前環境的判斷,決定是否需要提醒盲人及以什么方式進行提醒。該部分是導盲系統的核心,其作用類似于人類的大腦。
人機交互模塊完成的任務是數據的雙向傳遞。即將處理器處理的結果以盲人易于接受的方式(震動及語音)傳遞給盲人,并且盲人能通過語音、按鍵的方式對系統進行操作。
1.1" 數據采集模塊
障礙物信息采集。最直觀體現的障礙物信息就是障礙物與盲人之間的距離,將障礙物距離信息傳遞給盲人,就起動了躲避前方障礙物的功能。考慮到盲人行進過程中身體每個部分都有可能碰到障礙物,所以選擇在人體上、下2個地方進行障礙物信息采集。目前最常用的測距技術是超聲波測距及紅外測距。從模塊成本角度看,超聲模塊價格更低,但超聲測距適合工作在動作幅度不大的環境中,當超聲測距模塊動作幅度較大時,測量就會失效。在這種情況下就選擇使用價格稍高,但更加穩定的紅外測距方式。結合盲人行動時身體運動特點和其他因素,上身部位選用超聲波測距,下身部位采用紅外測距。
圖像信息采集。在室外車輛密集的十字路口,不按照交通燈指示或偏離斑馬線都將嚴重威脅盲人的人身安全。導盲系統通過對攝像頭采集的實時圖像進行分析,將紅綠燈、斑馬線的信息以語音的形式對盲人進行提示,從而輔助盲人安全通過路口。
GPS位置數據采集。當盲人迷失方向,需要求助時,向家人提供準確的位置信息是最有效的求助手段。常用的GPS模塊是NEO-6M、ATK1218-BD模塊及GSM/GPS功能結合模塊,考慮到短信模塊、GPS模塊都采用UART協議,而樹莓派只有一個硬件串口,沒法同時外接2個使用UART通信的模塊,所以選用具有GSM/GPRS和GPS功能的SIM808模塊,樹莓派通過串口向SIM808模塊發送AT命令,實現對模塊的控制。
1.2" 數據處理模塊
一鍵求助功能。當盲人迷失方向或遇到危險時,通過按下一個求助按鍵,系統會向緊急聯系人發送帶有GPS位置信息的短信,SIM808模塊采用NMEA0183協議將帶有定位信息的數據發送給樹莓派,樹莓派對數據進行解析,拼接成短信,再通過SIM808模塊將短信發送給緊急聯絡人,從而實現短信求助功能,并且盲人還可通過按下一個電話按鍵向緊急聯系人撥打電話,實現電話求助功能。
在實際使用時,每個盲人的緊急聯系人都有所不同,所使用的號碼也不相同,所以系統應具備設定緊急聯系人號碼的功能。實現號碼設定功能,有很多不同的方法,例如矩陣鍵盤加屏幕、語音設定或遠程設定等方式。盲人很難通過矩陣鍵盤設定號碼,并且家屬也不可能每次都很及時地在盲人身邊設定號碼,所以采用遠程設定是最合理的方案。
由于系統上的號碼是固定的,所以通過短信設定號碼的方案是最切合實際使用場景的方案。盲人家屬向系統發送固定格式的短信,系統對短信內容進行解析,實現設定號碼的功能,并且根據短信內容的不同,可以分別設定求助短信接收號碼及撥打電話的號碼。其設定號碼的原因是一樣的,只不過短信內容不同。同時,為防止系統因掉電而造成緊急聯系人號碼的丟失,將設定的緊急聯系人號碼保存在文件中,系統每次上電啟動時,從文件中讀取緊急聯系人號碼。
斑馬線識別功能。斑馬線是由一條條相互平行且等間距的白色條紋組成。一般在使用過程中,由于攝像頭位置及拍攝角度問題,畫面中并不一定包含完整的斑馬線,同時要考慮實際生活中的斑馬線會出現殘缺的情況。根據以上這些特征,利用OpenCV的直方圖均衡化、中值濾波、形態學開運算和矩陣提取函數設計一種基于圖像增強、矩形判別及最大類間方差的識別算法。斑馬線識別流程如圖2所示。
紅綠燈識別功能。綜合考慮紅綠燈形狀、顏色特征,利用OpenCV的顏色空間轉換、顏色過濾、圖像反二值化函數設計了一種使用顏色過濾、形狀判斷的識別算法。為了提高系統響應速度、減輕控制器運算壓力,進行紅綠燈判別的先決條件是已經檢測到斑馬線。紅綠燈狀態識別流程如圖3所示。
1.3" 人機交互模塊
語音模塊。該功能模塊應具備語音輸出及語音識別2個功能。語音輸出用于將處理后的環境信息傳遞給盲人,語音識別實現盲人通過說話對系統進行操控。考慮系統使用環境,在正常工作時模塊一直處于語音輸出狀態,用于將實時的環境信息傳遞給盲人。當盲人有使用語音操控系統的需求時,通過一個按鍵激活模塊的語音識別功能,當識別完畢后,再次回到語音播放的功能。在系統中,語音輸出的內容有:前方障礙物提示、斑馬線提示、紅綠燈狀態提示及系統狀態提示。其中系統狀態提示為以語音的形式提示盲人當前系統所處的工作狀態及需要盲人進行的下一步操作。當盲人有語音識別需求并且按下語音識別按鍵后,模塊將當前正在播放的語音輸出完畢后,以語音的形式提醒盲人接下來可以講話,緊接著關閉語音輸出功能,開啟語音識別。
震動模塊。通過安裝在導盲杖上的震動馬達模塊,實現將當前環境中的下身部位距障礙物的距離信息通過設定的不同震動強度傳遞給盲人,使盲人能夠快速分辨障礙物距自己的大致距離。為了使不同的震動強度容易被分辨出來,僅在2 m內設置2種震動強度。
按鍵模塊。盲人通過裝在導盲杖上的4位獨立按鍵模塊可以實現發送求助短信、撥打電話、接聽電話及開啟語音識別的功能。每個按鍵對應一個功能,在導盲杖上,利用STM32微控制器的定時中斷固定時間間隔讀取4位獨立按鍵模塊的值來確定哪一個按鍵被按下,獲取的按鍵信息由STM32微控制器通過無線模塊發送至樹莓派,繼而控制對應模塊進行相應的工作。盲人可以在使用過程中根據實際需求,對導盲系統進行操控。
2" 系統軟件整體設計
2.1" 馬甲端設計
為了實現系統功能并提高系統性能,整個系統馬甲端軟件采用多線程的方式進行開發,線程之間通過共享變量的方式通信,以確保整個系統正常有序的運轉。本系統運轉時共有3個主要線程,分別是主線程、LD3320線程及SIM808線程,3個線程各司其職,共同完成系統的馬甲端功能。
主線程實現。主線程通過安裝在馬甲上的超聲波模塊進行障礙物測距并判別是否需要輸出語音提醒避障,通過USB攝像頭獲取道路實時圖像進行斑馬線和紅綠燈狀態識別的任務。有播放音頻需求時,則通過共享變量向LD3320線程傳遞播放音頻的需求。
SIM808線程實現。當盲人按下導盲杖端的按鍵并由STM32微控制器將信息發送到樹莓派時,馬甲端系統需要能夠較快地對盲人的操作作出響應。所以,需要一個線程專門負責接收導盲杖端的按鍵數據并對其進行處理,由于按鍵所觸發的操作大都需要SIM808模塊完成,所以該線程還負責有關SIM808的所有操作,如撥打電話、接聽電話、發送具有GPS位置信息的短信。
LD3320線程實現。因為系統對外界信息的處理結果需要通過語音實時反饋給用戶并且實時獲取用戶的語音指令,所以需要一個線程專門負責有關LD3320語音識別模塊的操作,如設置語音識別模式、讀取語音識別結果,也就是有關LD3320的操作都由這個線程負責完成。
2.2" 導盲杖端設計
導盲杖端采用STM32C8T6開發板作為控制器,實現障礙物震動提醒及向樹莓派端發送按鍵信息的功能。由于按鍵是隨機按下的,而STM32C8T6想讀取到按鍵數據,就需要一直監聽按鍵是否被按下,但同時又需要處理紅外傳感器采集的距離數據,以判別前方是否有障礙物,若有障礙物還需要以震動方式提示盲人,所以導盲杖端采用定時器中斷最為合適,以達到及時獲取按鍵數據并發送給樹莓派端,同時對測距數據進行處理和反饋效果。
3" 系統部分測試
進行功能模塊的開發,以達到預期功能要求,通過對每個功能模塊不斷測試,驗證每個功能模塊的穩定性,消除功能模塊中存在的bug,從而保證系統整體開發時,不需要考慮所調用功能接口是否存在問題,只需要注意整體邏輯是否存在缺陷。通過不斷對整個導盲系統進行測試,消除系統中潛在的bug,從而保證導盲系統可以穩定可靠地工作。
3.1" 語音識別功能測試
在進行語音識別功能測試時,采用按鍵作為觸發語音識別的條件,以模擬導盲系統中觸發語音識別的情況。在進行語音識別功能測試時,采用按鍵作為觸發語音識別的條件,導盲杖端的語音識別對應的按鍵被按下時,由STM32微控制器通過無線模塊將按鍵信息發送至樹莓派端,由樹莓派控制語音識別模塊開啟語音識別功能。語音識別測試效果如圖4所示。
3.2nbsp; 一鍵求助功能測試
實現一鍵求助功能最核心的器件是SIM808通信模塊。在進行一鍵求助功能相關測試時,用按鍵模擬導盲系統中的觸發條件,導盲杖端的SIM808通信模塊對應的按鍵被按下時,由STM32微控制器通過無線模塊將按鍵信息發送至樹莓派端,由樹莓派控制SIM808模塊完成相應的功能。發送求助短信測試效果如圖5所示。
撥打電話聯系緊急聯絡人,在通話正常結束后,掛斷電話。接聽來電,在通話正常結束后,掛斷電話。撥打電話和接聽來電測試效果如圖6所示。
4" 結束語
本文結合超聲波測距技術、紅外線測距技術、圖像處理技術、通信和GPS定位技術及語音識別技術,提出了一種基于人工智能技術的多信息融合可穿戴式導盲系統的設計方案,完成了系統的具體實現,有一定的實用價值。
參考文獻:
[1] 胡娟.基于超聲波與圖像識別的盲人導航眼鏡研究與實現[D].成都:電子科技大學,2016.
[2] 孫玉飛.基于ARM平臺的盲杖硬件系統設計和實現[D].哈爾濱:哈爾濱工業大學,2016.
[3] MOHAPATRA S, ROUT S H, TRIPATHI V, et al.Smart walking stick for blind integrated with SOS navigation system[C]//2018 2nd International Conference on Trends in Electronics and Informatics(ICOEI),2018.
[4] CROCE D,GIARRE L,PASCUCCI F,et al. An indoor and outdoor navigation system for visually impaired people[J].IEEE Access,2019(7):170406-170418.
[5] 霍一.椒鹽噪聲識別與濾波算法改進的研究[D].北京:北京建筑大學,2020.