賈浩東
(西安交通大學附屬中學,陜西西安,710043)
目前,隨著人工智能技術的不斷發展與控制芯片處理能力的不斷提高,智能機器人在現實生活中的應用也越來越廣泛。作為智能機器人的一個重要的組成部分,視覺識別系統也越來越受到人們的重視[1]。智能機器人的視覺識別系統是指利用計算機或微處理器來實現系統對現實世界信息的感知與識別,主要是通過目標對象的紋理、顏色、形狀等信息提取其關鍵特征,進而完成對環境中指定目標對象的識別。機器人視覺系統主要致力于令機器人的核心控制芯片具有從二維圖像獲取到現實世界中三維環境信息的能力。這不但包括對現實世界中三維物體的位置、形狀、運動等信息的感知,而且能對其進行深度地識別與反饋。
本文以ROS平臺為基礎,搭建了針對移動機器人的目標識別系統。系統可通過Adaboost算法使移動機器人自動識別區域中的目標對象,對于移動機器人領域的研發具有較高的理論及實際應用價值。中。ROS也支持一種類似于代碼共享的云平臺,不同位置的開發者可通過該平臺實現相關項目的協同開發與聯合發布?;谏鲜鏊枷?,ROS可以使一個項目實現從底層文件系統到上層用戶接口完全獨立研發。與此同時, ROS工具包也能將項目的所有內容整合到一起。
ROS(Robot Operating System)是一個開源的、廣泛適用于機器人的開發與應用的操作平臺。它不但為機器人開發者提供包括機器人硬件抽象,底層驅動與控制,模塊間消息傳遞等功能。而且也包含用于獲取、編譯、和跨平臺運行程序所需的工具和API接口[2]。
為機器人開發者提供代碼和功能上的支持是ROS平臺的主要開發宗旨[3]。它提供了一個分布式的運行平臺,平臺中各獨立的、分布式運行的模塊被封裝在開源通用的ROS程序包和功能包
機器人目標識別算法的實現主要依賴ROS平臺。該平臺的運行架構是一種使用經過特殊集成與封裝的通信機制實現平臺中各子模塊間松耦合連接的處理架構,ROS平臺提供若干種不同類型的通訊方式,包括基于服務(Service)的同步遠程過程調用通訊、基于話題(Topic)的異步數據通訊,此外還支持服務器對用戶輸入的指定的參數信息的存儲與應用。ROS系統中模塊間的通信采用點對點的通信方式。系統中的每一個模塊可設置為一個節點(node),節點之間的通信協議采用訂閱(subscribe)和發布(publ ish)的形式。通信前在系統中建立一個話題(topic)。在每個節點中發布方在此話題中發布相應的通信數據,接收方訂閱相應的通信數據并完成相應的通信。圖1為機器人系統中圖像處理節點示意,在該節點中我們訂閱“ /image_raw”話題中的消息,在節點中完成相應的識別,再將識別結果發布至“dj i_sdk/image_raw”中,其余節點可訂閱該話題上的消息,完成其余功能。
移動機器人目標識別系統采用了NVIDIA公司生產的Jetson TK1作為開發平臺,該平臺基于嵌入式Linux系統,具有豐富的接口,搭載了圖像采集模塊,整個系統具備小型化、低功耗、低成本、高靈活性等顯著特點[4]。Jetson TK1是NVIDIA嵌入式Linux開發平臺,其核心處理器具備與現代桌面GPU相同的高級功能和架構,同時具有移動芯片的低功耗,可連續在繁重的工作量下運作。因此,本文所設計算法的代碼實現可以輕松的在TK1上完成,具有與桌面相似的GPU加速性能水平。

圖1 ROS系統節點通信示意圖
本系統的圖像識別算法采Freund和Schapire提出的Adaboost算法,該算法的檢測模型由多個弱分類器級聯組成。Adaboost算法在訓練的過程中不需要預先設定每個弱分類器的錯誤率下限,而是通過弱學習的過程自適應地調整個分類器的錯誤率,因此該算法在不需要提供弱學習器先驗信息的前提下仍保證了極高的檢測和識別率,在提出之后得到了廣泛的應用。
通過Adaboost算法實現對指定目標對象的識別的過程主要由模型訓練和目標對象識別兩個部分組成。模型訓練是指根據給定的樣本,提取訓練集中圖片的特征組成訓練集(如Haar-l ike小波特征、HOG特征等),并以此為基礎不斷調整模型中各弱分類器的參數,使給定樣本中模型的最終的分類誤差最低;對象識別是指在模型訓練完成的基礎上,對于輸入圖像的特征,利用算法模型計算得出該圖像的分類信息,根據分類結果實現對象的識別。
Adaboost算法的主要訓練流程如下[4],其中hj(x ) = Pw(y = 1 |x ) - Pw(y = - 1 |x),反映了屬于正樣本和屬于負樣本之間的概率差。
(1)給定訓練集的樣本(x1,y1) ,( x1,y1), … ,( xN, yN),對于正樣本令 yi= 1 ;負樣本,令 yi=-1。對樣本中的各權重按照下式進行初始化,式中l為正樣本個數,m為負樣本個數;

(2)給定分類器個數T,對于 t = 1 ,…,T
①對于每個輸入的特征j,得到弱分類器 ht∈[-1 , 1];
②計算弱分類器 ht分類誤差,選出最優的弱分類器 ht;

最終經過上述訓練過程得到Adaboost的數學模型,在目標識別的過程中,本系統通過提取目標圖像的Haar關鍵特征,然后將特征輸入Adaboost模型中進行目標識別[5]。具體檢測過程如下所示:首先,初始化檢測窗口并載入訓練模型的各參數值;其次,按照一定的方向移動檢測窗口,提取窗口內的Haar特征,直至檢測窗口遍歷整個圖像;然后,利用訓練好的Adaboost模型對目標進行檢測,若發現目標則在圖形中標出被檢測的目標,否則按照一定的倍數對檢測窗口進行放大,再次按照上述步驟進行一次圖像遍歷;不斷的放大檢測窗口并對目標圖像執行上述遍歷的過程,直至檢測窗口超過原圖像的一半大小,并輸出最終的檢測結果。該過程的具體過程如圖2所示。

圖2 目標識別系統識別目標的流程圖
經過上述過程,機器人利用Adaboost算法最終完成了在指定區域內自動對目標的識別與檢測。圖3展示了機器人利用該目標識別系統進行人臉識別的結果,結果表明,該系統對單目標和多目標都有很強的目標識別能力。

圖3 目標識別系統在人臉識別過程中的運行結果
本文利用開源的ROS機器人平臺,提出并設計了一種移動機器人目標識別系統,該系統通過視覺傳感器采集圖像信息并上傳至機器人主控芯片,主控芯片上運行的ROS平臺上利用Adaboost算法實現了對指定區域內對目標的實時識別與檢測。
本文提出的基于ROS平臺的機器人目標系統充分利用ROS分布式計算與實時交互的特性,不但降低了開發難度,而且提高了目標識別的效率及效果[6],使移動機器人能夠自動識別目標區域內的對象,為后續移動機器人的自主運行、精確定位以及自主避障的相關研究奠定了一定的基礎。
[1]劉潔,平雪良,齊飛,蔣毅.基于視覺跟蹤的機器人測量方法與實現[J].應用光學.2016,37(05):686-692.
[2]劉曉帆,趙彬.基于ROS的移動機器人平臺系統設計[J/OL].微型機與應用.2017,(11):54-56+59.
[3]左 軒 塵 ,韓 亮 亮 ,莊 杰 ,石 琪 琦 ,黃 煒 .基 于 ROS 的空間機器人人機交互系統設計[J].計算機工程與設計 ,2015,36(12):3370-3374.
[4]文學志,方巍,鄭鈺輝.一種基于類Haar特征和改進AdaBoost分類器的車輛識別算法[J].電子學報 .2011,5:1121-1126.
[5]李婷俐.基于多特征級聯分類器的道路車輛檢測方法研究[D].湖南大學.2012-05.
[6]劉彬.基于ROS和OpenCV的云服務系統與人臉識別應用[J].科技廣場.2016,11:40-43.