本發明屬于圖像識別技術領域,尤其涉及一種基于OpenCV圖像識別的盲人智能拐杖控制系統及方法。
背景技術:
圖像識別技術是人工智能的一個重要領域,是利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術。圖像識別經歷了三個發展階段:文字識別、數字圖像處理與識別和物體識別。文字識別的研究始于1950年,應用于字母、數字和符號的識別,以及從印刷文字到手工文字的識別;數字圖像處理與識別的研究始于1965年,數字圖像相比于模擬圖像具有存儲方便可壓縮、傳輸不易失真等優勢,為圖像識別技術的發展提供強大的動力;物體的識別主要是指對三維世界的客體和環境的感知及認識,屬于高級的計算機視覺范疇,它是以數字圖像處理與識別為基礎,結合人工智能、系統學等學科的研究方向,其研究成果被廣泛應用在各種工業及探測機器人上。目前,市場上盲人使用的最多的就是傳統的導盲拐杖和導盲犬,由于導盲犬的訓練周期長、成本較高、動物習性不好控制等諸多問題,所以更多的人選擇拐杖。然而傳統意義上的盲人拐杖的結構簡單,實現的功能也比較普通,存在很多的不足,諸如不能對前方將要靠近的障礙物進行語音提醒、不能在盲人遇到緊急狀況下向家人求助等。國內學者研制的隨身便攜式導盲儀,雖然其體積小,輕便好用,但沒有輔助支撐功能,對身有殘疾以及腿腳不便的人,仍然需要拐杖輔助行走等技術不足。
綜上所述,針對目前市場上盲人智能拐杖安全性低、功能單一,無法實現較好的導盲效果這一問題,結合圖像識別技術,提出了一種基于OpenCV圖像識別的盲人拐杖控制系統。
技術實現要素:
本發明的目的在于提供一種基于OpenCV圖像識別的盲人拐杖控制系統及方法,旨在解決目前市場上智能拐杖安全性低、功能單一,無法實現較好的導盲效果的這一問題。
本發明是這樣實現的,一種基于OpenCV圖像識別的盲人拐杖控制系統,所述基于OpenCV圖像識別的盲人拐杖控制系統設置有:
路況檢測模塊,用于實現對前方未知路況的檢測,當遇到前方的障礙物時,系統會做出相應的響應提醒盲人用戶;
緊急呼叫模塊,采用SIM900A通信模塊,用于盲人用戶實現在通過控制智能拐杖上的按鍵向指定好的電話號碼撥打電話,實現了一鍵撥打電話;
人員定位模塊,利用Wi-Fi定位技術,通過檢測Wi-Fi信號強度,結合KNN算法來實現定位。
進一步,所述路況檢測模塊包括:
模型構建模塊,利用SURF算法進行特征值的提取,使用OpenCV來檢測特征點,并抽取其特征點描述符,把提取出來的特征值傳遞給OpenCV進行訓練,得到預先指定數量的類別;統計出每張圖像樣本的特征點在各個類別中出現的頻率,構造出每張圖片的bag ofwords;
訓練分類模塊,利用SVM分類器進行分類,對每一個類別都訓練一個二元分類器;對于待分類圖片的特征向量,使用每一個分類器計算分在該類的可能性,選擇可能性最高的類別作為這個特征向量的類別;
實時場景輸入模塊,通過按鍵來對當前畫面進行捕捉,對其進行模型的構建,并將其特征向量作為系統的輸入數據進行識別分類,最終以語音播報的形式反饋給盲人用戶。
進一步,所述基于OpenCV圖像識別的盲人拐杖控制方法的模型構建模塊包括:
(1)通過對大數據樣本進行圖像預處理,主要是對原圖像樣本進行歸一化處理,使得圖像的一些特征在特定變換下具有不變的性質,進而對每個圖像樣本進行SURF特征點提取,SURF整體思想流程等同于SIFT,而整個過程中采用了與SIFT不同的方法,為了實現尺度不變性的特征點檢測與匹配,SURF算法利用Hessian矩陣確定候選點,生成尺度空間,然后用非極大值抑制初步確定特征點和精確定位特征點,確并定特征點的主方向,最后構造SURF特征點描述算子,從而可以得到每個樣本的特征值;
(2)利用K-means算法將提取的每個樣本的特征值劃分成k個聚類,以空間中k(本系統中目標分類的類別k分別為:樹、臺階、汽車和人行橫道)個點為中心進行聚類,對最靠近他們的對象歸類。通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果,以達到同一聚類中的對象相似度較高,不同聚類中的對象相似度較小,從而得到k組向量,每個向量都代表某個類別的feature的中心點;
(3)構造Bag OfWords模型,即圖像中所有圖像塊的特征向量得到的直方圖,BOW是用來表示圖像的描述特征的。統計這K個聚類在每個樣本特征值中所占的比例,通過K-means聚類算法后,得到k個新的聚類中心,即得到了特征直方圖的一個基,然后將圖像的特征點聚類到k個已經生成的詞典(即n個聚類中心)中,并且統計落入每個詞典中的特征點的個數。最終可以得到一幅圖像的特征直方圖,這樣就可以將每張圖片表示成K維數值向量。
本發明的另一目的在于提供一種所述基于OpenCV圖像識別的盲人拐杖控制系統的基于OpenCV圖像識別的盲人拐杖控制方法,所述緊急呼叫模塊采用SIM900A通信模塊,安裝SIM卡,插上耳機和耳麥后通過控制智能拐杖上的按鍵向指定好的電話號碼撥打電話。
本發明的另一目的在于提供一種所述基于OpenCV圖像識別的盲人拐杖控制系統的基于OpenCV圖像識別的盲人拐杖控制方法,所述人員定位模塊通過檢測Wi-Fi信號強度,結合KNN算法來實現定位。
進一步,所述基于OpenCV圖像識別的盲人拐杖控制方法的人員定位方法包括:
1)、通過Wi-Fi Info獲取當前位置附近的RSSI信息,利用開源的Wi Fi Manager類庫,可以使應用程序方便地實現Wi-Fi連接,其中封裝好的Wi-Fi掃描函數可輕松掃描設備通信范圍內的所有AP熱點,同時可顯示接入點的SSID、MAC地址、IP和經量化處理的RSSI;
2)、利用機器學習相關的匹配算法,對實測數據與儲存在程序中的數據進行對比,搜索到一組和測量典型匹配的數據。通過待測點接收到來自第j個AP的RSSI和第i個參考點接收到來自第j個AP的RSSI值算出歐幾里得距離dis。每個參考點都有兩個參數第一個是在該位置某一時刻接收Wi-Fi1的信號強度,第二個是在該位置另一時刻接收Wi-Fi2的信號強度。然后利用KNN算法在dis中從小到大選擇K個參考點,通過參考點的實際坐標使用均值法計算出待測點的坐標,進而估算出待測點的位置。
本發明的另一目的在于提供一種安裝有所述基于OpenCV圖像識別的盲人拐杖控制系統的拐杖。
本發明提供的基于OpenCV圖像識別的盲人拐杖控制系統及方法,基于OpenCV圖像識別技術來實現其路況識別的功能,實時幫助盲人用戶了解前方的路況;有效地保證盲人的出行安全問題。
本發明與現有技術相比,具有以下優勢:
(1)本發明沒有借助外界的超聲波等輔助硬件即可實現識別功能,實用性強,開發成本低,能耗少。本發明基于Visual Studio2013并使用C++語言在Windows平臺下進行開發,因此開發成本低。
(2)本發明采用了SURF特征提取算法進行特征值的提取,安全性高,效率相對較高,SURF特征提取算法是實質上是改進板的SIFT算法,一般來說,SURF算法的效率是SIFT算法的3倍左右,而檢測出的特征點的個數是SIFT算法的1/3左右,當然也和圖像大小、紋理復雜程度、算法參數設置有關;對于SURF算法,它采用Hessian矩陣確定候選點,然后進行非極大抑制,降低了計算復雜度。SURF算法的主要特點是快速性,同時也具有尺度不變的特性,對光照變化和仿射、透視變化也具有較強的魯棒性。
(3)本發明采用了K-means算法對提取的特征值進行聚類訓練,通過不斷地取離聚類中心最近均值的方法,最終確定聚類的類別;該算法采用EM思想,算法快速、簡單、對大數據集有較高的效率并且是可伸縮性的、時間復雜度近于線性,而且適合挖掘大規模數據集。
(4)用戶不需要任何的專業知識便可對軟件熟練使用,用戶操作體驗相對好,通過拐杖上僅有的三個物理按鍵便可直接實現預期的各項功能。
附圖說明
圖1是本發明實施例提供的基于OpenCV圖像識別的盲人拐杖控制系統結構示意圖;
圖中:1、路況檢測模塊;2、緊急呼叫模塊;3、人員定位模塊。
圖2是本發明實施例提供的模型構建模塊的構建流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
下面結合附圖對本發明的應用原理作詳細的描述。
如圖1所示,本發明實施例提供的基于OpenCV圖像識別的盲人拐杖控制系統包括:
路況檢測模塊1,用于實現對前方未知路況的檢測,當遇到前方的障礙物(樹、汽車、臺階、人行橫道和紅綠燈),做出相應的響應提醒盲人用戶。
緊急呼叫模塊2,采用SIM900A通信模塊,用于盲人用戶實現在通過控制智能拐杖上的按鍵向指定好的電話號碼撥打電話,實現了一鍵撥打電話。
人員定位模塊3,利用Wi-Fi定位技術,通過檢測Wi-Fi信號強度,結合KNN算法來實現定位。
路況檢測模塊1包括:模型構建模塊、訓練分類模塊和實時場景輸入模塊三大模塊組成。
1)模型構建模塊,利用SURF算法進行特征值的提取,使用OpenCV來檢測特征點,并抽取其特征點描述符,把提取出來的特征值傳遞給OpenCV進行訓練,得到預先指定數量的類別。最后,統計出每張圖像樣本的特征點在各個類別中出現的頻率,進而構造出每張圖片的bag ofwords。當傳入一張圖片時,系統就會構造出這張圖片的BOW與事先訓練好的模型進行比較分類。
2)、訓練分類模塊。訓練分類模塊主要利用SVM分類器進行分類,使用經典的1vs all方法實現多類分類。對每一個類別都訓練一個二元分類器。訓練好后,對于待分類圖片的特征向量(也就是該圖片的BOW),使用每一個分類器計算分在該類的可能性,然后選擇那個可能性最高的類別作為這個特征向量的類別,也就是該待分類圖像所屬的類別。
3)、實時場景輸入模塊。實時場景載入模型主要是通過按鍵來對當前畫面進行捕捉,對其進行模型的構建,并將其特征向量作為系統的輸入數據進行識別分類,最終以語音播報的形式反饋給盲人用戶。
緊急呼叫模塊2,主要是采用SIM900A通信模塊,盲人用戶在使用時,首先在該模塊上安裝一張有效的SIM卡,插上耳機和耳麥后就可以通過控制智能拐杖上的按鍵向指定好的電話號碼撥打電話,實現了一鍵撥打電話的功能。
人員定位模塊3,主要利用Wi-Fi定位技術,通過檢測Wi-Fi信號強度,結合KNN算法來實現定位,具體實現過程如下:
1)、通過Wi-Fi Info獲取當前位置附近的RSSI信息,測量到待定位的地方AP的信號強度和物理地址。
2)、利用機器學習相關的匹配算法,對實測數據與儲存在程序中的數據進行對比,搜索到一組和測量典型匹配的數據,進而估算出待測點的位置。
如圖2所示,本發明實施例提供的模型構建模塊的構建方法包括:
S201:通過對大數據樣本進行圖像預處理,進而對每個圖像樣本進行SURF特征點提取,得到每個樣本的特征值;
S202:利用K-means算法將提取的每個樣本的特征值劃分成k個聚類,從而得到k組向量,每個向量都代表某個類別的feature的中心點,也就是說,這k類中的每一類就相當于是圖片的“單詞”,即該系統中目標分類的類別:樹、臺階、汽車、人行橫道和紅綠燈。
S303:構造Bag OfWords模型,BOW是用來表示圖像的描述特征的。統計這K個聚類在每個樣本特征值中所占的比例,從而可將每張圖片表示成K維數值向量。
本發明提供了一種基于OpenCV圖像識別的盲人智能拐杖系統,OpenCV提供的視覺處理算法非常豐富,加上其開源的特性,不需要添加新的外部支持也可以完整的編譯鏈接生成執行程序,所以用它可以來做算法的移植,OpenCV的代碼經過適當改寫可以正常的運行在DSP系統和單片機系統中,最終用于實現預期的功能。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。