張柯凡 吉野 薄健博 黃名哲



摘 要:室內導航尋路是物聯網智能家居的一個重要應用場景,文中設計了一種基于深度學習的室內簡單環境尋路算法,包括物體捕捉與追蹤、周圍環境感知、路徑規劃、抓取返回四個重要過程。其中,捕捉與追蹤采用TOP技術對目標進行標注與距離判斷。周圍環境感知采用神經網絡深度學習方法,通過訓練并自我對弈對網絡進行激勵,從而不斷更新網絡,在路徑規劃的柵格法中尋求最優路徑。抓取返回過程采用垂直下落抓取方法并對柵格進行最短路徑計算,從而以最短路徑返回,完成全過程。
關鍵詞:移動機器人;尋路算法;深度學習;神經網絡;路徑規劃;環境感知
中圖分類號:TP39文獻標識碼:A文章編號:2095-1302(2020)04-00-04
0 引 言
自物聯網技術提出以來,尋路算法便成為智能化的重要研究方向。自動尋路的目的是為了讓物體能夠在給定或任意區域中,通過算法躲避障礙,前進到最終目的地執行目標。尋路算法的核心是躲避障礙和最優路徑的選擇,通過計算快速、準確到達目的地。
本文嘗試將深度學習、神經網絡引入自動尋路算法中。尋路過程分為目標物體捕捉與追蹤、機器人周圍環境感知、路徑規劃、抓取物體四個部分,具體如下:
(1)在目標物體捕捉過程中使用OpenCV轉換涂抹區域,通過歸中算法追蹤目標;
(2)在機器人周圍環境感知中引入深度學習和神經網絡技術,輸出判斷可用路徑的條數并不斷對自身進行訓練,提高判斷準確度;
(3)在路徑規劃中采取柵格法,不斷搜集存儲更新當前已獲取的信息,從而進行最優路徑判斷;
(4)在抓取物體過程中,采取最有兼容性的垂直下落抓取方式。
根據此思路設計了室內簡單環境尋路并自動抓取物體返回的算法系統,最終驗證了此系統的可行性。
1 室內簡單環境下的尋路算法
1.1 算法的應用場景
本算法適用于簡單的室內環境中帶有目標的尋路場景。例如大學生機器人大賽或水中機器人競賽等障礙物簡單、場地相對開闊、目標物體位置明顯且在一定高度始終可視的場景下,可應用在移動機器人與機械臂的組合結構上,結構示意圖如圖1所示。
1.2 算法研究現狀
迄今為止,對于室內尋路算法的研究主要集中于探討兩大課題。一是對室內路徑規劃系統的研發,以室內感知系統、智能教室為典型代表;二是通過移動機器人實現室內尋路的任務,該領域的研究重點在于對機器人本身性能及算法的不斷改進,而對于尋路算法的功能完善相對滯后。
在尋路算法中,最符合室內系統需求的是基于圖論的圖搜索算法,即從初始位置到目標位置進行搜索的算法。當今,與尋找路徑相關的算法約有17種,有學者對其中的若干尋路算法進行了科學實踐,而測試結果表明,有三種算法具有相對更好的可行性,分別是TQQ算法、DKA算法與DKD算法。
室內尋路算法研究的改進在一定程度上改善了室內尋路系統中對于最優路徑選擇的問題。但值得注意的是,室內尋路算法需要滿足不同應用環境下不同的應用需求,作為應用系統的支撐。因此,研究者很大部分能夠對典型或具體的環境提出最優算法,但是在實際系統的應用過程中僅占少數,其原因在于設計會受到不同環境及其他限制條件的約束,所以尋路算法還有待研究出更加完善的路徑尋找方式。根據以上所述,本文利用神經網絡與深度學習對室內最優路徑算法進行優化處理,使之能夠應用于室內服務機器人上。相較于原有的尋路算法,該算法擁有更強的可靠性與魯棒性。
2 算法總體設計思路
本算法分為目標物體捕捉與追蹤、機器人周圍環境感知、路徑規劃、抓取物體。算法流程如圖2所示。
首先,通過設置在機械臂上的景深鏡頭依靠用戶在APP上的手動涂抹來捕捉目標物體,之后使用歸中算法對目標物體進行實時追蹤,確定機器人與物體的相對位置,并判斷目標物體周圍環境狀況,如圖3所示。
其次,通過設置在移動機器人上的景深鏡頭拍攝機器人周圍的全景圖片并處理為深度圖像,使用神經網絡來判斷場景下的可能路徑數量及各路徑的方位。
之后,使用A*或柵格等尋路算法,通過收集到的信息進行路徑規劃。
最后,當目標物體進入機械臂的抓取范圍時,操作機械臂抓取物體。
3 算法具體設計思路
3.1 物體捕捉與追蹤
物體捕捉與追蹤是系統確定目標物體的過程,通過設置在機械臂上的景深鏡頭依靠用戶在APP上的手動涂抹來捕捉目標物體,之后使用歸中算法對目標物體進行實時追蹤,以達到確定機器人與物體相對位置并判斷目標物體周圍環境狀況的目的。步驟如下所示。
(1)將用戶涂抹的區域使用 OpenCV轉換為一個矩形方框[1],使用歸中算法確保配合攝像頭移動,使目標物體始終位于攝像頭拍攝的畫面中心,獲得機器人與目標物體的相對方向d。
(2)獲得攝像頭拍攝的深度圖像及目標物體與相鄰環境的顏色深度差df,如圖4所示。
(3)記錄d和df以備后續使用。
在第(3)步中使用景深鏡頭[2]來拍攝深度圖。景深是指相機對焦點前后相對清晰的成像范圍。景深的提取有多種途徑,主要有基于雙目視覺提取景深和利用測距設備獲取深度信息,即TOF技術。前者通過攝像頭對同一場景在不同角度進行拍攝,獲取兩幅具有視差的圖像,并進行攝像機標定與圖像的預處理后,通過立體匹配圖像間的視差信息,結合標定數據將視差轉化為現實世界中物體的深度信息。后者通過發射光線并接收反射光線實現深度信息的實時提取。這種方法原理簡單,測距速度高,同時可以避免陰影與遮擋等問題,但相對的,對信號處理系統的時間分辨率要求較高。為提高測量精度,一般情況下,實際的飛行測量系統采用時間調制類別的光束。在實際對比兩種方法的適用性后,選用雙目視覺提取景深的技術,利用帶有景深攝像頭的 iPhone實現這一功能,通過調用AVFoundation框架生成深度圖像。
首先利用機械臂上已有的景深攝像頭獲取當前對應的環境顏色值與深度值,所獲取的圖像要確保目標物體處于畫面的中央位置,將攝像頭獲取的圖像信息傳輸到操作者的手機上,進而利用操作者手機上預先編寫好的應用程序對目標物體進行涂抹,使得目標物體的RGB值、深度值與周圍環境有明顯差別,始終保證目標物體處于攝像頭視野的中央位置。在小車行動過程中,機械臂上的景深攝像頭始終對準目標物體,面向方向始終與目標物體所在位置保持一致,以有效保證小車每次行動都朝向目標物體移動,在一定程度上確保小車移動方向的準確性。
3.2 機器人周圍環境感知
僅僅獲取了機器人和目標物體之間的方位信息并不能有效規劃路徑,還需要獲取機器人周圍的環境信息。在本算法中,使用了卷積神經網絡來獲取小車周圍的可用路徑條數。使用卷積神經網絡判斷可用路徑的優點在于:它可以模擬人類大腦對事物進行主觀學習,從而避免人工標定特征帶來的局限性,降低編寫程序過程中對圖像處理所需專業經驗的依賴[3]。
近年來,由于高算力GPU對深度學習的訓練和推理提供了強大支持,使得在特定領域模擬人類學習的過程成為可能。如今基于強化學習開發的系統已經在圖像識別領域取得了較大突破,使人們認識到,在圖像處理領域,人工智能已經可以按照設定的要求進行自我學習。其本質是自始至終地訓練同一個神經網絡,在不斷試錯的過程中自我提升。
3.2.1 神經網絡結構
神經網絡p=f (s)的輸入是景深攝像頭拍攝的360°全景深度圖像,將圖像轉換為二維向量,輸入神經網絡。
網絡是18層卷積神經網絡,分別使用3個具有32個3×3過濾器、3個具有64個3×3過濾器、4個具有128個3×3過濾器、4個具有256個3×3過濾器的卷積層,然后添加一個ReLu激活函數以增加網絡間的非線性關系,使用1個具有4個1×1過濾器的卷積層,通過一個大小與輸入一致的神經元全鏈接層,使用softmax函數計算出棋盤上每個像素是可行路徑的概率。這樣的網絡對于筆者現有的設備來說,可以達到較快的訓練和預測速度。
優化器使用AdamOptimizer[4]。其中,學習速率通過每一次預測后與預先給出的樣本通道位置對比后的結果精準程度進行動態調整,這樣能夠比固定學習速率的輸出更準確。AdamOptimizer的更新規則如下:
(1)
參數設定見表1所列。
3.2.2 神經網絡的訓練方法
在本算法中,筆者基于強化學習的方法,依靠自我對弈從始至終訓練同一個神經網絡。強化學習模擬生物在特定環境中,在給定獎勵或懲罰的刺激下實現自我學習的過程[5]。
在訓練過程中,輸入的每一組深度圖都帶有預先標定的可行通道位置,在每次預測后,對比神經網絡的預測結果,對在通道范圍內的預測進行激勵。筆者給出的獎勵信號見
表2所列。
使用結果反向傳播更新網絡。其中,損失函數選擇平方損失,其優點是計算較為方便,計算過程中使用的歐氏距離是一種很好的相似性度量標準,在不同的表示域變換后特征性質不變。
(2)
式中:Y為真實值;X為預測結果。
3.3 路徑規劃
本文采用柵格法[6]進行路線規劃。
問題的重點在于如何使小車在保持一定效率的同時實現小車隨機游走和路徑規劃兩種方案的實現,而非將整個屋子走過一遍從而到達目標位置,并在取得物品后對比總路徑,選擇總路徑最短的路線返回,從而得到相對高效的方式。
環境與系統實現的前提如下:
(1)房間的障礙物位置情況不可知,空間為掃地機器人的數倍以方便有足夠的空間進行移動與機械臂回旋;
(2)小車行走地面光滑,只允許有隨機設置的障礙物存在,防止外界因素干擾;
(3)小車前進速度勻速,與方向結合判斷當前位置與目標間的距離;
(4)小車轉向時可在不干擾機械臂攝像頭的情況下自我旋轉360°;
(5)掃地機器人在運行之前會得到房間的地圖和自身位置;
(6)假設機器人的初始位置在坐標原點(使用者)處。
節點與規劃地圖的方法如下所示。
(1)選擇將屋子進行柵格化,并將柵格中每一個理論上可到達的柵格作為一個節點。
(2)如圖5所示,首先在房間內隨機放置障礙物,將柵格模型抽象為標識矩陣,矩陣對應位置的標記表示柵格對應位置的狀態,0表示當前節點位置;1對應該節點位置無障礙物可正常到達;2表示對應位置存在障礙物不可到達。
(3)小車搭載速度傳感器,可借由速度傳感器時刻記錄小車速度與目標方向,并計算自己走過的路徑長度與目標間的距離,從而獲悉自己當前所在節點位置信息。
小車搭載景深攝像頭,可以360°掃描全景,判斷周圍四個方向的節點上是否存在障礙物,并輸入至神經網絡,記錄當前節點信息,判斷完畢后選擇與目標間距離最短的節點方向前進,隨后每到一個新節點便掃描周圍節點并更新節點信息,進而使用深度優先搜索算法按照離目標最近路線不停探索,實現地圖柵格信息的確認。最后記錄小車走過的路徑與路徑長度,自動規劃地圖,到達目標后地圖便初步設置完成。隨著目標位置的改變可多次使用,逐漸補充位置節點信息。重復以上過程即可完成路徑規劃。
3.4 抓取物體
到達固定位置后,此時機械臂上的攝像頭采集到的景深距離等于或小于規定可抓取范圍,且待抓取物體已處于機械臂下方,利用轉軸將攝像頭調整至目標物體正上方,采取垂直下落式抓法,判定抓取到目標物體后抬起機械臂,之后按照小車已規劃好的地圖進行最優路徑判斷,根據最優路徑返回至起始點。抓取流程如圖6所示。
景深距離判斷:設置全局變量可抓取范圍,并實時判斷與目標物體的距離,一旦接近便下達停止移動命令。
抓取物體過程:如圖7所示,根據固定程序,利用轉軸將一號攝像頭向下轉動,并時刻根據算法判斷是否轉動至與地面垂直或與目標物體、機械爪處于同一直線,之后傳遞命令給機械臂,機械爪垂直向下運動,利用固定程序判斷機械爪可伸縮范圍內是否抓取到目標物體,控制機械臂帶著目標物體一起向上升起,直至無法升起后,傳遞命令給小車,準備返回。
返回過程:Dijkstra算法[7]是從一個頂點到其余各頂點的最短路徑算法,解決的是有權圖中最短路徑問題。迪杰斯特拉算法的主要特點是以起始點為中心向外層層擴展,擴展到終點為止。適用于返回最優路徑中的單源最短路徑。利用小車行進過程中的地圖進行最優路徑規劃,采用Dijkstra算法進行無向圖最優路徑計算,之后按照最優路徑控制小車返回原點。
4 實驗結果與分析
本實驗將尋路過程分為目標物體捕捉與追蹤、機器人周圍環境感知、路徑規劃、抓取物體四個部分。
深度學習與神經網絡相結合引入自動尋路算法。通過景深攝像頭完成對物體的捕捉和追蹤及周圍環境的感知,對目標進行標注與距離判斷后采用神經網絡深度學習方法,通過自我對弈來激勵網絡不斷更新。
路徑規劃方面采用柵格法尋求最優路徑,記錄當前地區位置信息,之后采用垂直下落抓取方法抓取目標,以最短路徑返回。
據此思路設計了室內簡單環境尋路并自動抓取物體后返回的算法系統,最終小車可按照計劃成功到達目的地并抓取目標返回,同時還在內部生成了地圖的大致信息,結果較好地驗證了系統的可行性。
5 結 語
當今社會上自動智能機器人逐漸普及,要使得機器人能在不同的環境(比如室內家庭)順利完成動作,需要將各種情況考慮在內。本文提出利用深度學習使得機器自主學習。以神經網絡為基礎,方便機器人在變化的環境中執行相同任務時,可以通過對環境的自我多次嘗試來實現使用者的目的,并制造出一個能判斷環境后自主規劃前進路線并完成交代任務的神經網絡。利用智能小車搭載機械臂,通過自然語言交流、機器視覺探知周圍環境的模式,自動抓取用戶需要的物品,未來可采用可調節高度的小車做進一步完善。
參考文獻
[1]劉培軍,馬明棟,王得玉.基于OpenCV圖像處理系統的開發與實現[J].計算機技術與發展,2019,29(3):127-131.
[2]韓芳芳,段發階,王凱,等.機器人視覺檢測系統中相機景深問題的研究與建模[J].傳感技術學報,2010(12):1744-1747.
[3] SIMONYAN K ,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[Z].arXiv preprint arXiv:1409.1556,2014.
[4]崔廣新,李殿奎.基于AdamOptimizer自編碼的手寫數字識別研究[J].佳木斯大學學報(自然科學版),2018,36(3):363-366.
[5]劉建,黃嬌潔.一種算法對于深層神經網絡訓練速度的提升[J].電腦知識與技術,2019,15(24):207-209.
[6]劉梅.基于柵格化視覺的機器人路徑優化研究[J].計算機與數字工程,2018,46(8):1548-1552.
[7]孟慶偉,張冬姣.基于Dijkstra最短路徑算法的優化及應用研究
[J].電子商務,2014(12):60-61.
[8]高歡斌.基于深度學習的室內定位算法研究[D].成都:電子科技大學,2016.
[9]楊伊璇.基于深度學習的蜂窩信號室內定位算法[J].中國電子科學研究院學報,2019(9):943-947.
[10]單明媚,王華通,鄭浩嵐,等.視頻運動目標跟蹤算法研究綜述
[J].物聯網技術,2019,9(7):76-78.