齊麗麗
【摘 ?要】當前形勢下,我國經濟快速發(fā)展,科學技術不斷進步。隨著人工智能和虛擬現(xiàn)實技術的不斷發(fā)展,人機交互系統(tǒng)已經成為當前的研究熱點.目前,人機交互系統(tǒng)主要采取了行為識別(手勢交互)、三維交互、語音交互、觸覺交互和多通道交互等技術.作為行為識別技術中的一個重要研究分支,機器視覺方法實時性、魯棒性較強,具有易于實現(xiàn)、交互性較好等優(yōu)點.可以協(xié)助移動機器人完成目標跟蹤、自主導航和避障.本文也將利用機器人視覺技術,對人體圖像、姿勢動作進行識別和處理,以期實際應用于特種機器人、服務機器人及智能家居等領域.
【關鍵詞】機器視覺;人機交互;Kinect;圖像處理
引言
機器視覺和機器人技術已被廣泛應用于工業(yè)生產中,在許多應用中也會將兩種技術結合起來使用,但目前生產中的此類應用一般只適用于一個固定的工序,比如利用機器視覺判斷出外觀瑕疵的產品,再用機器人將故障品挑出。這類應用中往往要求被檢測產品處于相對固定的位置,機器人才能精確地取放。也就是說,傳統(tǒng)技術只實現(xiàn)了部分的感知和活動功能,但缺乏大腦,這就制約了機器人技術的應用場景。本文研究一種利用動態(tài)機器視覺實現(xiàn)完整感知,實時掌握環(huán)境中的對象狀態(tài),借助人工智能技術接收感知信息并提出對策策略,給機器人的行動提供指導,以此提升人機交互的智能化水平,使得機器人更加接近人。
1整體設計
首先,在上位機層面,通過Kinect感應器,實時捕捉深度圖像和RGB圖像.然后,利用OpenNI和NITE技術框架,編寫人體姿態(tài)識別處理程序(手勢和人體骨骼),將用戶的手部或者肢體動作在空間中的坐標位移進行分類處理.最后,將對應的操控指令通過串口驅動程序發(fā)送至單片機執(zhí)行,從而實現(xiàn)對人體動作的識別.
2深度圖像和RGB圖像獲取
深度圖像的獲取是由紅外線發(fā)射器和CMOS紅外攝像機共同完成的,只要Kinect感應器接收到了光編碼的紅外圖案,其內置的PrimeSense的PS1080芯片就會把這個圖案與存儲在芯片內存中的參考圖像相比較,經過系統(tǒng)校準后,就轉換成了一個VGA尺寸的場景深度圖像,用戶通過OpenNI的API即可訪問這個圖像.RGB圖像的獲取則相對簡單,通過Kinect自帶的標準RGB攝像機及其數(shù)據鏡像功能,即可訪問RGB圖像.
3人工智能模塊
人工智能是當前炙手可熱的研究課題,當前人工智能技術的快速發(fā)展不僅得益于硬件處理速度的快速提高,也受益于業(yè)內企業(yè)、個人共享了大量研究成果,使得人工智能技術不僅不再遙不可及,甚至可以在較低的成本內實現(xiàn)。延續(xù)上一節(jié)的圍棋案例,要實現(xiàn)人機對弈,需要開發(fā)機器人的大腦,也就是基于人工智能的圍棋AI。在海量的開源代碼中,我們找到GitHub用戶BrianLee(brilee)發(fā)布了一個開源圍棋算法引擎,邏輯控制并不復雜,分為三層神經網絡。第一層是策略網絡(policynetwork),用于預測對手的落子,準確率較高但會耗費較多系統(tǒng)資源,策略網絡輸出可能落子概率分布列表。第二個神經網絡也是一個策略網絡,用于判斷不同落子產生的局面的優(yōu)劣評估,這一層網絡速度較快,但預測準確率不高。還有一個神經網絡是一個價值網絡(valuenetwork),用于遠期勝負預測。最后,根據第二個神經網絡和第三個神經網絡的量化評估值進行加權計算,然后取得一個最優(yōu)結果。要運行人工智能應用,需要搭建一個運行人工智能的硬件平臺。由于CPU是為常規(guī)計算設計,而GPU的并行特性使其具備更強的浮點運算能力。對于基于多層的神經網絡算法的深度學習技術,每層神經網絡包含權重和偏置的矩陣,這就要求系統(tǒng)平臺能提供較大帶寬的內存來訪問神經網絡,以進行海量的浮點運算。
4機器人模塊
4.1機器人選用
在選擇機器人前,需要考慮以下幾個因素:第一,選用何種控制模式,是點位控制還是連續(xù)軌跡控制;第二,使用何種驅動方式,是液壓、氣壓還是電氣驅動;第三,需要多少負重;第四,是選用市面上的通用機器人還是定制專用機器人。以圍棋對弈為例,顯然我們需要點位控制模式,考慮機器視覺攝像頭、吸盤等附屬裝置大約需要5kg負重,為了快速構建原型,我們可以選擇一款電控的通用機械臂式機器人,來確保其運動范圍足以覆蓋整個圍棋棋盤。
4.2機器人怎樣與主機通信
機器人與主機間通信可以通過RS232串口、以太網等和各種工業(yè)控制總線。以常用的RS232串口通信為例,串口通信按位發(fā)送和接收數(shù)據,并需要設置波特率、數(shù)據位、停止位和奇偶校驗等參數(shù)。在機器人端和主機端必須設置這些參數(shù)相匹配。程序示例1是一個基于ABB機器人平臺的通信程序,這樣的一個小程序就能夠實現(xiàn)主機和ABB機器人的通信,當然,還需要主機端編寫的通信工具才能正常使用。這里需要在主機端定義通信的協(xié)議。例如,我們的協(xié)議為X00Y00Z00I00,其中X代表主機AI計算完成后得到的列,Y代表主機AI計算完成后得到的行,而Z和I代表運動次數(shù)。這樣機器人就可以按照AI的指令,在制定位置放下棋子或取出棋子。
5手勢識別和人體骨骼識別
5.1手勢識別
以用手勢控制小車運動為例.用戶向Kinect感應器揮手,開啟識別功能:手勢向左、右滑動,分別控制小車左、右轉彎;上下滑動,分別控制小車前進、后退;用手勢畫出一個圓形,小車剎停.主要的程序流程是:(1)啟用Kinect對象的深度圖、手勢和手部函數(shù),用揮手手勢命令Kinect開始手部跟蹤;(2)設定NITE的手點控制器和圓形探測器,跟隨用戶手部動作,實時更新手部向量(Processing向量PVector),并在屏幕上通過坐標映射繪制手部跟蹤點;(3)為了檢測左右、上下?lián)]手和畫圓的動作,還要添加監(jiān)聽器,并且編寫NITE回調函數(shù).函數(shù)通過計算手部位置向量的數(shù)據變化來識別動作,如,本文采用的方法為監(jiān)測手部位置向量的x方向位置變動,超過設定的閾值(50mm),則認為向左(右)揮手的動作發(fā)生;(4)通過串口驅動程序,向單片機發(fā)送指令,執(zhí)行相應動作.
5.2人體骨骼識別
Kinect感應器能夠識別追蹤20個主要的人體骨骼點,利用各關節(jié)點的三維坐標數(shù)據可以計算得出關節(jié)轉角,實現(xiàn)對人體姿態(tài)的識別.進一步的,將人體姿態(tài)映射為機械臂的執(zhí)行動作,就能實現(xiàn)機械臂模仿人體動作的控制方式.以人體右肩關節(jié)作為控制關節(jié)為例,主要的程序流程是:(1)啟用Kinect對象的深度圖和人體關節(jié),注冊發(fā)現(xiàn)新用戶、丟失用戶、姿勢偵測等相關回調函數(shù).當監(jiān)測到設定的觸發(fā)姿態(tài)后使用NITE進行骨骼校準;(2)開始跟蹤人體骨骼,實時獲取各個關節(jié)的向量,并存儲各個關節(jié)的最新位置;(3)以右肩部位置為中點,從遠端到近端方向,分別提取右肘部、右肩部、左肩部的向量(PVector對象),通過反正切函數(shù)計算三點連線所形成的角度,得到右肩關節(jié)的轉動角度,然后輸出相應的控制值.
結語
人機交互,具有易于實現(xiàn)、交互性較好等優(yōu)點,可以廣泛應用于服務機器人、智能家居、機器人教學、工業(yè)控制、體感游戲設計等領域.同時,該系統(tǒng)在消除擾動和深度圖像中的空洞及噪聲點等方面還存在空白,在空間人體姿態(tài)識別、點云分析、3D掃描打印等方面還有待深入開發(fā),這將是下一步的努力方向.
參考文獻:
[1]劉杰,黃進,田豐,等.連續(xù)交互空間下的混合手勢交互模型[J].軟件學報,2017,28(8):2080-2095.
[2]劉動,李一鳴,王培亮.淺談工業(yè)機器人的發(fā)展與應用[J].卷宗,2016,6(3):741.
[3]路璐,田豐,戴國忠,等.融合觸、聽、視覺的多通道認知和交互模型[J].計算機輔助設計與圖形學學報,2014,26.
(作者單位:國家知識產權局專利局專利審查協(xié)作湖北中心)