柏雪峰,楊 斌
(西南交通大學信息科學與技術學院,四川成都610031)
目前國內外對靜態背景下的視覺跟蹤技術研究相對成熟,在實際應用中得到較好的效果[1-3];但基于當前學術界廣泛運用的新生平臺仿人機器人NAO,除了官方給出的一個不開源的紅球跟蹤實例模塊外,并沒有公布任何基于該平臺的目標識別與跟蹤源代碼;通過測試發現該實例模塊在跟蹤過程中常出現不能識別、錯判和漏跟目標的現象;分析官方給出的識別模塊算法原理,提出改進算法,提升目標識別率和跟蹤靈敏度。主要分為NAO機器人和開發框架、算法實現功能描述和算法的改進與實現三部分。
硬件平臺采用的是法國Aldebaran Robotics機器人公司開發的NAO v4機器人,身高58cm,擁有上下25個自由度,是目前學術界的新興研究平臺之一,具體的結構及各部分如圖1所示[4]。

圖1 NAO v4機器人的結構
Nao機器人每個應用程序由代理、模塊和方法3層組成,具體如圖2所示。代理層為應用程序間提供接口,通過代理應用程序可實現模塊間互調;模塊是應用程序按高內聚、低耦合進行的功能劃分;方法層則負責模塊功能的具體實現,是應用程序開發的主要工作。
NaoQi是NAO的主代理。上電初始化后,系統自動運行NaoQi為用戶提供最基本的功能,如報告當前電量、聯網情況、防摔倒等?;谥鞔?,Nao為開發者提供本地模塊和遠程模塊2種開發方式。本地模塊是將開發的功能模塊上傳到Nao機器人,成為NaoQi主代理下的一個模塊,由主代理調用執行,如圖2所示[4];遠程模塊則是將功能模塊放在PC機上,并為其創建一個代理,通過代理與NaoQi主代理通信,實現遠程調用執行,如圖3所示[4]。

圖2 應用程序本地模型

圖3 遠程模型
NAO v4提供易于傳輸和存儲的YUV422圖像格式,基于人眼對色度的敏感程度低于對亮度的敏感程度,在不會明顯降低圖像質量前提下,降低色度的采樣率[5]。
YUV422圖像是將每個色度信道U和V水平方向的抽樣率降低到亮度信道抽樣率的一半,使每個像素由占用3個字節縮減到2個字節。NAO公司則是采用此格式為攝像頭最原始的顏色空間;4個像素為:[Y0U0V0][Y1U1V1][Y2U2V2][Y3U3V3],在圖像中存放的碼流為:Y0U0Y1VI Y2U2Y3V3,映射出的像素點為:[Y0U0VI][Y1U0VI][Y2U2V3][Y3U2V3][6]。
設計基于NAO機器人的移動目標定位與跟蹤,主要實現人機交互和智能跟蹤制定目標,具體功能如下:
(1)穩坐地面,等待命令。NAO上電,系統初始化后,機器人穩坐在地面上,等待主人給出開始指令。
(2)機器人開始360°全視野范圍搜索,直到找到目標。用戶觸摸開始按鈕,機器人自動站立,等待跟蹤目標特征的給定,如黃色,圓形等。機器人按照查找三部曲尋找目標:通過攝像頭獲取圖像,提取特征點,并與給定的目標特征點進行匹配,若特征一致則進行目標定位;若不一致則繼續查找,直到找到目標。
(3)機器人跟蹤目標。由求得的目標水平和垂直偏角,調整頭部舵機,調用行走函數WalkTo(0,1,0,α),保持機器人朝目標行走,且目標始終在視野中心。循環進行目標跟蹤,直到給出停止跟蹤指令。如遇到目標跟丟,則重新進行目標搜索和跟蹤。處理過程如圖4所示。

圖4 目標識別與定位、跟蹤實現過程
2.2.1 選取YUV顏色空間
顏色是視覺系統對光譜中可視頻段的感知結果,擁有色調、飽和度和亮度3個屬性[7]。顏色空間則是為規范化度量和描述顏色三屬性及各屬性間關系而建立的色彩系統。物體的顏色不僅取決于物體本身,同時由光源、當前環境顏色、視覺系統等多種因數共同決定。目前主流的顏色空間有RGB、HSV、YUV、CMY等[5]。不同環境,選取何種顏色空間,對圖像分割和目標識別尤為重要。
NAO官網的紅球識別模塊算法是基于RGB顏色空間,在光照變化的條件下,相同顏色物體識別效果差距很大,按照離線調好的閾值不能夠有效的得出目標物體,致使在跟蹤測試中出現“不能識別、錯判”現象。
為了降低光照影響,選用由RGB顏色空間線性轉化成的亮度-色度空間,利用它的亮度信號(Y)和色度信號(U、V)是相互獨立的[7]特性和物體的色度信號通常只由物體的構成材料對光線的吸收和反射特性決定,與環境的光照亮度關系并不大的原理,在光照強度變化的環境中,讓目標識別更為準確。同時也能有效避免顏色轉換開銷[8],提高處理速度。
2.2.2 目標識別
給出的圖像處理,首先對一幀圖像進行閾值化,得到目標顏色的二值圖像。其次腐蝕、膨脹去噪。最后采用高斯濾波對圖像進行平滑處理,由圓形檢測得出目標物體的中心坐標。
實驗發現,在光照變化或反光條件下獲得的二值圖像表示目標的區域常有空洞和殘缺現象,直接對二值圖像進行開運算,會加大空洞和殘缺面積,導致后面的圓形檢測出現“不能識別”或“誤判”現象??赏ㄟ^二值圖像周圍像素值決定當前像素值方法,進行去噪操作。
首先,二值化。獲取一幀YUV422格式的圖像,針對目標顏色(比如:黃色),離線訓練找到一個折中的閾值,利用此閾值對U和V分量進行閾值化,分離出目標像素點,將目標區域各像素值置255,其他區域像素值置0,得到二值圖像,如圖5所示。
其次,初步去噪和恢復目標區域。依次判斷每一個像素點的上、下、左、右、左上角、右上角、左下角和右下角8個點的像素值,如至少有4點像素值為255,則將該點像素值置為255,否則置0。
最后,經過腐蝕和膨脹進一步去噪,并通過高斯濾波對圖像進行平滑處理,處理結果如圖6所示。

圖5 源圖像RGB顯示及提取黃色得二值圖像

圖6 清噪和恢復結果及運算、高斯平滑結果圖
2.2.3 目標定位
(1)已有的定位算法
官網給出目標定位是針對NAO v3以前的機器人,使用傳統的單目測距方法,基本思想是:當識別出追蹤目標后,調節NAO機器人頭關節使目標處于視野中心,此時機器人身高為h,再求出紅球在攝像頭處形成的夾角α,以及目標紅球半徑r,如此就可利用勾股定理計算出目標與機器人的距離,在跟蹤過程中如此反復;基本原理如圖7所示[9]。

圖7 單目測距基本原理圖
從圖7中可以得出計算NAO與目標的距離S為:

單目測距的原理固然簡單,且易實現,但通過實際目標跟蹤測試中發現,該方法僅適用靜止物體跟蹤,對于移動物體跟蹤顯得十分笨拙。
(2)改進的測距算法
基于以上分析,借鑒單目測距原理,基于NAO v4的硬件結構及參數,設計了更為準確的測距算法,如圖8所示。

圖8 機器人垂直偏角與水平距離關系圖
由圖8可知,當目標物體出現在機器人視野中心時,有如下關系

變換公式可得

其中h為機器人站立時頸部到腳底的高度,h=459.59mm;α為HeadPitch關節當前偏移角,也即是上面提到的垂直偏移角?,可由系統函數獲得;角度β為NAO機器人嘴部攝像頭硬件位置與水平線的固有夾角,查參數表可得β=39.74;r為目標的半徑,S為目標中心與機器人間的距離。
將h=459.59mm、β=39.74以及α即為?代入公式(3)可得

當r很小時,可得S與?的對應關系為

根據Nao頭部垂直自由度偏角?可以求出對應的目標中心與機器人間的距離S。
算法并不用于實時跟蹤,僅利用它求得目標中心與機器人間的距離S,并制定相應離線數據表;若跟蹤過程要求讓機器人與目標保持S米的距離,則每次只需通過判斷當前垂直偏角直接得出前進、后退和等待3個指令;進而減少處理時間。
(3)目標定位
改進的測距算法只是提供一個離線的數據表,假設機器人已經得知頭部垂直,能讓機器人快速得知當前目標距離;現在給出由目標中心坐標求取機器人攝像頭垂直、水平偏角的方法。
查NAO v4攝像頭參數表,得知NAO機器人垂直視覺范圍是47.64°,水平視覺范圍是60.9°[2]。從目標識別過程中得到目標的中心坐標(x,y),設采集圖像分辨率為640*480,則視野中心坐標為(320,240),從而可以求出目標距離圖像中心點的垂直角度β和水平角度α。其求解算法如下[10-15]。
目標中心與攝像頭主光軸在水平方向上的夾角α為

其中:

由公式(6)-(8)可得到

最后將目標識別計算出的球心坐標(x,y)中的x帶入式(9),從而求出在NAO視野中心的水平偏角α;將α傳給機器人行走函數WalkTo(0,1,0,α)[2],同時由垂直偏角β與上面求得的垂直偏角?的大小關系控制機器人朝目標方向走去、后退或站立等待。
同理利用類似上面的算法可以得到目標中心與攝像頭主光軸在垂直方向上的夾角β為

其中y是目標識別計算出的中心坐標(x,y)中的y,將其帶入式(10)即可求出目標在NAO視野中心的垂直偏角β,在由垂直偏角重新設置NAO機器人的HeadPitch關節值,保證目標一直處于視野中間。
2.2.4 目標搜索
給出的目標跟蹤,只針對目標現已出現在機器人視野。
設計提供機器人在一個“陌生”的環境中對目標進行搜尋的方案。搜尋策略主要分原地查找、走動和旋轉查找3步。當得到查找開始命令,機器人首先進行原地查找操作:在水平和垂直兩個自由度方向扭動頭部,進行可視方向上的全面搜索。其次進行走動操作:根據實際場地情況,朝正前方行走一段距離。最后進行旋轉查找操作:旋轉查找操作其實是3次原地查找和2次向左旋轉120度操作的疊加。如果經歷3步,仍沒搜索到目標,則重復走動和旋轉查找操作直至找到目標。具體實現如圖9所示。
在目標搜尋策略開始,考慮到機器人旋轉操作會占一定的區域,而目標或場地物體可能就在機器人背后的旋轉區域,為避免NAO機器人在旋轉過程中碰到它們引起目標移位或機器人絆倒,所以在搜尋策略的開始只進行原地查找操作,不進行旋轉查找操作。實驗證明策略能夠有效避免機器人在搜尋過程中碰到盲區的物體,讓機器人搜索操作更安全。

圖9 搜尋策略流程圖
通過與官網提供的紅球識別跟蹤模塊作實驗對比表明設計以下幾點的改進:官網識別跟蹤算法不能主動搜索目標,設計可以進行全景搜索;通過在3種光照強度下分別對同一物體進行10次不同角度的目標識別實驗表明:同一光照下,若在物體反光不強烈的角度進行識別,2種算法區別不大;若在物體反光強烈的角度下進行識別,設計算法具有優越性,官網算法常出現大面積的目標空洞和殘缺;在不同光照下,官網對目標物體的識別率明顯降低;設計的定位算法更為精確。但設計仍有許多不足之處,如沒有采集跟蹤目標的運動信息等,這也將是今后的研究重點,使機器人能對跟蹤目標的下一個位置進行預測,實現更為高效、智能的實時跟蹤。
[1] 張娟,毛曉波,陳鐵軍.運動目標跟蹤算法研究綜述[J].計算機應用研究,2009,26(12).
[2] 李谷全,陳忠澤.視覺跟蹤技術研究現狀及展望[J].計算機應用研究,2010,27(8):8-27.
[3] 施家棟,王建中.動態場景下的運動目標檢測與跟蹤[J].北京理工大學學報,2009,29(10):10-29.
[4] Aldebaran Community Website[EB/OL].https://community.aldebaran.com/.
[5] OpenCV 中文論壇[EB/OL].http://www.opencv.org.cn/.
[6] 趙謙,朱華偉,曾召華,等.基于YUV顏色空間特征的目標跟蹤融合算法[J].電視技術,2013,37(9).
[7] Leila Sabeti,Ehsan Parvizi,Q M Jonathan Wu.Visual Tracking Using Color Cameras and Time-of-Flight Range Imaging Sensors[J].Journal of Multimedia,2008,3(2),28-36.
[8] 張生,李龍澍.一種NAO機器人的白線識別方法[J].計算機與現代化,2013,(8),27-29.
[9] 張一鳴,秦世引.基于單目視覺的移動機器人測距方法[J].微計算機信,2008,24(10):223-225.
[10] Xiang Yin,Noboru Noguchi,Jongmin Choi.Development of a target recognition and following system for a field robot[J].Computers and Electronics in Agriculture(IF 1.766),2013 Elsevier.
[11] 孫增圻.Robocup世界杯與中國機器人大賽[J].機器人技術與應用,2010(4):6-11.
[12] Olivier Michel,Yvan Bourquin.Jean-Christophe Baillie RoboCup 2008:Robot Soccer World Cup XII[B].Lecture Notes in Computer Science 2009 Springer.
[13] 杜鑫峰,熊蓉,褚健.仿人足球機器人視覺系統快速識別與精確定位[J].浙江大學學報,2009,43(11):1975-1980.
[14] 李永昌.Robocup中型組足球機器人的自定位與球識別研究[D].廣州:廣東工業大學,2010.
[15] 許恒飛,李龍澍.Robocup標準平臺NAO機器人目標識別與自定位研究[J].工業控制計算機,2013,26(12).