申燕萍
(1.常州工業職業技術學院 信息工程學院,江蘇 常州 213164;2.江蘇大學 計算機科學與通信工程學院,江蘇 鎮江 212000)
隨著當代計算機與網絡通信技術快速發展,智能家居系統受到人們的密切關注,在智能家居系統中,機器人逐漸進入人們日常生活[1]。機器人抓取研究被廣泛應用到軍事及工業等領域并作為機器人領域重點研究方向。但是實際的機器人抓取卻只能完成提前設定好的任務,一旦遇到復雜的設定環境,抓取任務就會失敗[2]。為了滿足實際生活需要,對這方面的要求更加嚴格,保證它不僅僅局限于預先設定程序,而且對不同需要抓取的目標在非穩定的環境下進行合理的抓取,以達到更加準確的抓取目的[3]。因此,該研究是具有實際意義與價值的。智能機器人的抓取研究由于抓取的形態、位置等因素變得相對困難,采用了一種可以直接搜索有效位置的方法,該方法是通過在編碼器的改進下學習目標位置的多模態特征學習,采用卷積神經網絡模型學習目標,獲取最優抓取位置,并預測出目標位置處的二維圖像坐標系下的坐標以及旋轉角度。采用上述兩種方法進行掃描并提取目標物體所標記的信息時,受到復雜環境及人為干預影響,導致檢測精準度較低。針對該問題,提出了基于CNN深度學習的機器人抓取位置檢測方法,無需人工干預,通過監督學習,可獲取目標物體在機器人坐標系下的姿態,進而完成抓取動作。
在深度學習目標檢測領域中,大都采用卷積神經網絡模型進行檢測,該檢測模型以其獨特的結構設計被廣泛應用。CNN 采用局部連接與權值共享這兩種設計結構,使系統具有類似生物視覺功能,能夠對圖像數據進行挖掘和語義上的分析,大幅度地減少了網絡模型參數規模的復雜性,提高了檢測精準性[4]。同時CNN 中的特殊層結構具有高度不變性的優點,在平移、傾斜或任意其他形式的變形情況下被設計應用,這也是卷積神經網絡更適合應用于圖像特征學習與表達主要原因,相比于其他神經網絡方法檢測可靠性更高[5]。
CNN 模型的種類較多,但是其基本結構的設計方式大致相同,CNN 模型由輸入層、卷積層、池化層、全連接層、輸出層組成。
1)輸入層:輸入層的作用是取得有效待測數據,它作為CNN的起始層,進行圖像數據的獲取和預處理。輸入層只有一個數據輸出操作,并對這個輸出數據進行圖像隨機剪裁、尺度縮放、去均值化或歸一化等預處理,并把數據圖像的特征圖作為網絡結構層,CNN把每一層輸出的圖像數據信息或含有某種語義特征信息都稱為特征圖[6-8]。
2)卷積層:卷積層是整個CNN的核心層,利用特殊的卷積核核心結構,對輸出的所有數據進行卷積,并把卷積結果以特征圖方式輸出,完成數據特征提取。CNN的卷積層利用卷積核進行數據輸出提取的獨特卷積方式,具有提取精準、效率高的優點,是CNN深度神經網絡重要結構[9]。標準結構如圖1所示。

圖1 卷積層的卷積操作
通過卷積層的卷積操作流程可知,卷積層將局部空間上感受到的信息和特征維度上的信息進行聚合處理,形成一個完整信息聚合體,在卷積層經過多層卷積操作后,得到特征圖[10]。CNN通過輸入特征圖,便可對從全局里面得到的圖像做相應的描述和提取。為了實現不同分層的特征提取和融合,需要學習了解每個卷積核的不同的目標特征,同時輸入多層卷積信息[11]。
3)池化層:池化層在CNN中主要是負責對輸入的數據樣本進行采樣操作。池化層通過對輸入特征圖的各個空間維度上的特征進行切片劃分,并將劃分的特征圖設置為個毫無交點的區域,然后池化每個所對區域的特征[12]。
每個區域的特征圖像在它的池化過程中,需要選取尺寸為2×2,但如果有一些非常大的圖,也可以采用的尺寸,但是這種過大尺寸會造成在池化過程中信息的大量流失。普遍采用平均值和最大值兩種池化方法,過程如圖2所示。

圖2 池化處理
根據均值池化和最大值池化示意圖在每個區域的特征圖像按照的尺寸進行池化時,均值池化是將每個區域內的元素進行均值計算,并作為輸出特征值,或者是把不同區域的相同元素加起來作為輸出特征值。每個元素在不同區域內的最大值作為輸出特征值,這兩種不同的池化方式能夠正確有效地提取不同特征值。
4)全連接層:全連接層位于池化層和輸出層之間,主要負責全連接對最后一個池化和輸出層的特征圖。目前全連接層在CNN中己經逐漸被表面全局均值池化層所替代,可以得到比全連接層更好的效果。全連接層的工作原理與單層前饋神經網絡相同,通過將輸入的高維度特征圖采用卷積的方法降為一維,或者直接將具有特征矩陣的元素排列成一維向量,這兩種降維方法都是為了便于輸出層的分類與處理。
5)輸出層:輸出層是CNN的結尾層,通過對全連接層得到的一維特征向量,采用Logistic回歸或SVM進行分類,或者采用Softmax回歸等概率形式完成特征向量的輸出。輸出層基本采用Softmax回歸的輸出方式,利用邏輯回歸的推廣原理,能夠處理不同形式的分類問題。
將機器人抓取位置模板點按照切線斜率方向進行角度劃分,結合距離匹配定義,得到按照傾角分層的模板匹配距離:
(1)
式(1)中,M為匹配點總數;xi為匹配點投影在機器上的坐標值;mi為機器模板點根據切線斜率方向的第m幅距離映射圖上的取值;Fmi(xi)為映射圖上坐標灰度值。根據上述公式可得到機器模板上匹配點到邊緣坐標圖像點中最近的距離。
為研究按傾角分層的距離對映射圖上坐標灰度值的影響,需保持橫縱坐標變量保持不變,并觀察匹配度函數分布情況,結果如圖3所示。

圖3 匹配度函數分布
由圖3可看出,按傾角分層方法峰值較為明顯,能夠提高匹配度函數靈敏性。引入GA求解匹配方法,匹配步驟如圖4所示。

圖4 匹配最優解流程圖
GA作為CNN深度學習的隨機搜索算法,能夠使種群更加靠近全局最優值,一旦搜索接近峰值時,個體占據排序在最前端。當GA引進一段時間后,以其初始搜索結果為基準,尋找最優解。GA求解方法只能對一個變量進行優化,而相似度函數包含了多個變量,這些變量對于圖像來說是具有獨立意義的,因此,使用該方法能夠在初值附近匹配到最優解。
將CNN深度學習方法應用到機器人抓取位置檢測之中,應先將抓取位置作為深度學習對象,并將目標可抓取位置視為CNN深度學習樣本數據。抓取位置檢測過程可描述為:依據目標物體大小選擇不同方向矩形框,并在目標物體上提取抓取位置,并將抓取位置均勻輸入到CNN深度學習中進行預測。
抓取位置的CNN深度學習結合了多個模態特征信息,其中包括通道彩色圖像信息、深度圖像信息。圖5分別列出了兩種圖像可抓取位置和不可抓取位置信息。

圖5 抓取位置信息
將抓取位置信息進行預處理,將其轉化為符合CNN深度學習的數據格式,以此提高CNN深度學習隱含層提取特征的能力。對于數據的預處理,需先將標記區域對應的模態數據統一轉化為單模態的特征圖尺寸向量;然后將處理后得到的特征向量輸入到多模態特征預訓練過程之中;最后將每層訓練目標最小化函數代入訓練過程之中,由此完成信息預處理。
機器人抓取作業示意圖如圖6所示。

圖6 機器人抓取作業示意圖
利用機器人視覺系統分析給定的場景彩色圖像,推斷出目標物體最優抓取狀態。機器人抓取過程中主要包括抓取點確定和姿態預估兩個階段。采用CNN深度學習法設計具體檢測流程,如下所示:
step1:輸入處理后的抓取位置信息;
step2:以射頻網為基礎,利用邊界框及其分數對信息進行分類研究,實現抓取定位角度的粗估計;
step3:經過信息篩選與排序,獲取邊界框頂點坐標;
step4:簇估計角度,大約定位抓取位置,再細估計角度;
step5:將粗估計與細估計角度值相互融合,獲取抓取角度;
step6:根據邊界框頂點坐標,抓取中心坐標;
step7:輸出檢測結果。
使用旋轉矩形框表示目標物體最優抓取位置,在檢測該位置時,需將包含目標物體的圖像輸入到CNN深度學習過程之中,經過訓練后,選定機器人最合適的抓取位置坐標和所涉及圖像的平面旋轉角。
抓取位置檢測結果顯示如圖7所示。

圖7 抓取位置檢測結果顯示
機器人的抓取方向根據其習慣,定為矩形框長邊方向,表示矩形框相對圖像坐標系橫軸旋轉角度,箭頭表示矩形框旋轉方向。根據該內容,可得到高精準抓取位置檢測結果,利用CNN深度學習方法,獲取清晰顯示結果。
為了驗證基于CNN深度學習的機器人抓取位置檢測方法有效性,實驗環境為Win7操作系統,該系統訓練環境為Matlab R2015a。
3.1.1 數據分析
選用Canon VC-C50型號的單目標相機,具有320×240分辨率,在該相機下獲取的目標物體圖像如圖8所示。

圖8 樣本示例
數據訓練所需的基本數據為50張不同場景中的圖像,抓取角度為0°,無需人工標注邊界框就可獲取抓取位置,通過旋轉圖像將數據擴充到200張,具體擴充方法如下所示:
圍繞邊界框中心點,擴充邊長為原矩形框邊長之和的正方形;以5°間隔將圖形圍繞圓心旋轉一周,能夠保證抓取的位置在圖形中央,方便特征提取,能夠省去修改邊界框的繁瑣步驟;為了減少第1階段定位耗時,需將圖片合并縮減為0°、45°、90°、135°。
3.1.2 角度歸一化處理
因樣本數據規模較小,內部層數多且復雜,使用微軟數據集訓練相關數據作為初始值,并在此基礎上進行微調處理。采用動量法,在大量噪聲環境下對角度進行歸一化處理。
通過機器訓練,使其能夠精準分辨出目標,這是機械視覺學習最簡單有效的模式。機器人會從多個角度確定目標位置,然后將所有位置邊緣點形成一個整體坐標,形成三維立體圖。
在實驗過程中,機器人成功抓起物體,如圖9所示。

圖9 機器人抓取模式
先建立3D模型,再經過一系列分析,可以判斷物體當時所擺放的位置,進而完成一套抓取動作。
該過程中機器人抓取訓練的2個階段時間分別為15小時和1小時,其訓練曲線如圖10所示。

圖10 訓練曲線
由圖10可知:兩個時間階段下的曲線都趨近于收斂狀態。
根據上述內容可知,機器人實際抓取的物體是杯子和球,兩個物體分別放在桌子上和地上。分別采用傳統的改進自動編碼器多模態特征學習、卷積神經網絡模型學習方法和基于CNN深度學習方法分別在訓練時間為15小時和1小時情況下進行對比分析。其中1小時無人工干預,環境簡單;15小時受到人工干預,環境復雜。
1)15小時:在15小時情況下,將3種方法的檢測精準度進行對比分析,結果如圖11所示。
由圖11可知:采用CNN深度學習方法檢測精準度始終維持在85%以上;采用卷積神經網絡模型學習方法檢測精準度始終維持在50%以上;采用改進自動編碼器多模態特征學習方法檢測精準度始終維持在40%以上。由此可知,在15小時情況下,采用CNN深度學習方法檢測精準度較高。
2)1小時:在1小時情況下,將3種方法的檢測精準度進行對比分析,結果如表1所示。

表1 1小時情況下3種方法檢測精準度對比分析
由表1可知:采用CNN深度學習方法檢測精準度較高,在迭代次數為20次時,最高檢測精準度為0.988。而采用其余兩種方法,都比該方法檢測精準度要低,當迭代次數為10次時,卷積神經網絡模型學習方法最高為0.652,最低也高于50%,而改進自動編碼器多模態特征學習方法最高檢測精準度為0.410,最低為0.308。由此可知,在1小時情況下,采用CNN深度學習方法檢測精準度較高。
針對傳統方法存在的問題,提出了基于CNN深度學習的機器人抓取位置檢測方法,并對該方法進行了實驗驗證。在實驗中,通過與改進自動編碼器多模態特征學習方法、卷積神經網絡模型學習方法作對比,實驗結果表明基于CNN深度學習方法能夠較好提取目標位置特征,具有精準檢測效果。相比于以往方法,既提高了檢測方法實時性,又增強了姿態角檢測精度,大大減輕了機器人內存消耗。
在未來研究項目中,使用基于CNN深度學習檢測方法是進一步完善傳統方法的網絡結構,提高機器人抓取位置檢測精準度,并將該方法應用到機器人抓取相關任務之中。針對CNN深度學習領域輕量化研究,較為繁瑣,該領域有著較長的研究周期,很難應用到實際中,所以,權值輕量化的結合需應用到抓取目標位置中,接下來的研究方向可以將重點放在該領域。