曾瑋宸 劉 茜
(上海工程技術大學,上海,201620)
隨著人工智能技術的不斷發展,手勢識別技術的應用領域越來越大,利用手勢識別技術,可以實現遠程控制[1]、虛擬現實[2]、生活助理[3]等功能。手勢識別技術按照識別原理的不同主要分為基于圖像分析的手勢識別和基于傳感器的手勢識別。圖像分析識別是通過攝像頭獲取手指關節圖像,然后在經過特定的圖像識別算法對手勢進行分析,可以裸手識別,但是圖像識別受環境影響,在背景復雜、光線較暗的地方識別準確率會下降,由于攝像頭通常不能伴隨人一起移動,難以適應運動、旅游等情況[4];傳感器識別是在手上佩戴智能手套或者其他可穿戴傳感器設備,通過傳感器測量彎曲[5]、肌電[6]、慣性[7]等信號,然后用特定算法對這些信號進行分析后獲得手勢信息。
本研究基于包覆紡紗技術,紡制了兼具優良彈性和導電性的鍍銀錦綸氨綸包覆紗,將該紗線和彈性手套相結合,制備了能檢測手指關節彎曲變形的應變傳感器。基于這種傳感器,設計了一個手勢識別系統,包括具有信號采集和傳輸功能的硬件設備,以及對信號進行分析的識別算法和軟件,可以實現對人體靜態手勢的識別。
氨綸復絲(155 dtex,海寧凱威紡織有限公司),鍍銀錦綸復絲(155 dtex,單位電阻30Ω/cm,大致遠防輻射面料有限公司),彈性手套(錦綸材質,雙層結構,常熟馨宏手套有限公司)。
XS(08)XT型單紗強力儀(旭賽儀器有限公司),B35型萬用表(利利普光電科技有限公司)。
以氨綸復絲為芯紗,鍍銀錦綸復絲為外包紗,在包覆紡紗機上紡制彈性導電包覆紗線,保持包覆機的成紗卷繞速度不變,通過控制外包紗纏繞軸的速度控制外包紗線纏繞在單位長度芯紗上的根數。本研究控制包覆紗的包覆度在20捻/cm~40捻/cm,紡制了5種包覆度的包覆紗。
包覆紗的機械性能在單紗強力儀上測試,在機器上定速拉伸不同包覆度的紗線測量斷裂強力與斷裂伸長率的關系,測試標準為GB/T 3916—2013《紡織品 卷裝紗 單根紗線斷裂強力和斷裂伸長率的測定(CRE法)》,結果如圖1所示。

圖1 不同包覆度紗線的應力-應變曲線
從圖1可以看出,隨著包覆度的增加,紗線的斷裂強力減小,斷裂伸長率增加。斷裂伸長率增加是因為包覆度增加使得單位長度包覆紗上纏繞鍍銀錦綸外包紗的總長度變長,拉伸時伸長量增加;斷裂強力的減小是因為紗線的斷裂強力取決于紗線上的弱節,紗線越長越可能出現弱節。
包覆紗的傳感性能通過單紗強力儀和萬用表測量,在紗線兩端夾持夾頭,連接萬用表,測量紗線拉伸時的電阻變化率,測試結果如圖2所示。
從圖2中可以看出,隨著紗線的拉伸,紗線的電阻變化率不斷變大,這是因為包覆紗的拉伸帶動紗線表面外包紗的伸長,使得外包紗表面銀鍍層厚度變薄,長度變長,總體電阻增大。將圖2曲線求導得到靈敏度-應變曲線,如圖3所示。

圖2 不同包覆度紗線的電阻變化率-應變曲線
由圖3可以看出,拉伸過程中,包覆紗的靈敏度不斷增大,說明拉伸過程中紗線的電阻變化率不斷增大。不同紗線的最大靈敏度和包覆度呈反比,這是因為拉伸斷裂時不同紗線的電阻變化量相似,而包覆度大的紗線應變大,電阻變化率小,靈敏度低。

圖3 不同包覆度紗線的靈敏度-應變曲線
選擇紗線應該考慮紗線性能和傳感器應用的匹配,本研究設計的傳感器主要考慮紗線的靈敏度和拉伸應力。靈敏度小的紗線難以監測拉伸時的電阻變化,拉伸應力大的紗線會增加手指彎曲時受到的阻力。綜上所述,本研究選擇包覆度為30捻/cm的彈性導電包覆紗用于傳感器制備。
將制備得到的彈性導電包覆紗通過縫紉的方式和手套相結合,縫紉前先用筆在縫紉的位置做好記號,縫紉的距離和手指的長度有關,然后脫下手套,將彈性導電包覆紗穿入縫紉針,進行縫紉,為了保證手套整體的美觀和穿戴舒適性,紗線浮于雙層織物之間,通過結點的方式固定紗線并且和表層織物連接,具體縫紉方式如圖4所示。

圖4 包覆紗在縫紉手套上的示意圖
圖4(a)中藍色線條表示彈性導電包覆紗,浮于雙層織物之間,黑色結點表示紗線和手套的固定點,為了方便后續測試,紗線經過一個彎折后回到初始縫紉點附近。從圖4(b)效果圖中可以看到,表面只能看到一些結點,保證了手套整體結構的美觀。將每個關節下方結點的紗線通過導線和電阻測量儀連接,就可以通過電阻大小的變化了解手指關節的彎曲程度。
電阻的大小只是一個初步的信息,人們更關心的是比較直觀的信息,比如當前的手勢信息、各個關節的彎曲狀態,因此需要通過一定的算法對數據進行轉換處理。
2.2.1 電阻-關節彎曲度轉換和區間比例算法
人的手指因為粗細、長短等特征的不同,在手指彎曲時彈性導電紗的拉伸應變長度不同,電阻值也不相同,如果在手勢識別的過程中以某個人的手勢模型設計標準模型的話難免產生誤差,因此需要探尋規律,設計一種通用的模型來減小誤差,增加手勢識別的準確率。
經過觀察研究發現,不同人的手指盡管差異較大,但是每個手指關節的彎曲范圍都是相似的,例如大拇指的指間關節彎曲范圍約為0°到90°,掌指關節彎曲范圍約為0°到60°,關節彎曲的度數又稱為關節彎曲度,可以先將電阻值轉換為關節彎曲度,然后進行手勢識別。本研究邀請了5名青年人作為測試者,探究關節彎曲程度和電阻值之間的關系。讓測試者佩戴手套連接電阻測量裝置,控制關節彎曲角度,每次彎曲10°,逐漸彎曲手指關節至最大程度,繪制電阻-關節彎曲度曲線,以食指的指間關節為例,電阻和關節彎曲度的關系測試結果如圖5所示。

圖5 食指指間電阻和關節彎曲度的關系曲線
從圖5中可以看出,不同測試者之間手指電阻-關節彎曲度的對應關系曲線差距很大,最大和最小電阻值、曲線斜率都不一致,難以找出統一規律,但發現電阻的變化曲線具有一定的線性規律,因此將每次測量的最大和最小電阻值作為基準區間的下限和上限,以百分比的形式表示當前電阻值在這個區間的位置,將電阻值轉換為電阻區間位置,見式(1)。

繪制不同測試者的電阻區間位置-關節彎曲度曲線,結果如圖6所示。

圖6 食指指間電阻區間位置和關節彎曲度的關系曲線
由圖6可以發現,對于不同測試者,雖然相同關節彎曲度對應的電阻值不相同,但是電阻值在最小電阻值到最大電阻值的這個區間內的位置基本一致,測試其他手指關節后發現具有相同的規律,因此本研究通過將電阻值轉換成電阻區間位置的方式進行校準,經過測量得到電阻區間位置對應關節彎曲度的規律見表1。

表1 不同手指電阻區間位置和關節彎曲度的關系
從表1的數據中只能得到整10°的關節彎曲度情況下的電阻區間位置,為了實現數據的精確對應,需要進行數據擬合,從而得到不同手指關節彎曲度和電阻區間位置的關系。線性擬合后發現每組擬合表達式的相關系數都接近1,線性相關性好。
2.2.2 關節彎曲度-特征值轉換和區間分類算法
利用模型校準得到的通用區間模型,可以知道當前電阻值對應的關節彎曲度,但一個手有5個手指、10個關節,每個關節的最大彎曲度在60°~110°之間,如果以關節彎曲度取整數進行手勢比對,總計會有6110~11110個數據表示不同的手勢,并且許多數據對應的是同一個手勢,難以進行手勢識別和手勢數據庫的構建,因此需要將關節彎曲度的范圍平均分成幾個部分,便于計算和識別。表達一個關節的彎曲程度至少要3個級別:伸直、半彎曲、全彎曲,因此最少要將彎曲度區間分為3份,均分份數越多,識別越精確,但是計算量和識別時間也越長,出現多個特征值對應一個手勢的情況,反之份數少、識別快,數據庫構建簡單,但是識別準確率下降,出現一個特征值對應多個手勢的情況。由于一個特征值對應多個手勢會導致不能識別,而多個特征值對應一個手勢只是增加了計算量,且在實際情況中一個手勢可以對應多個特征值。通過預試驗發現均分5份時不出現一對多的情況,因此將均分份數定為5份,均分后每份長度都為整數,便于計算,見表2。

表2 特征值下不同關節對應的關節彎曲度區間
將每一份依次以1~5的5個自然數作為彎曲程度特征值,通過綜合10個關節的特征值就可以得到一個10位數的手勢特征值。以手勢“數字1”為例,數組a()存儲每個關節的數據,其中a(1)~a(5)代表大拇指到小拇指的指間關節,a(6)~a(10)代表大拇指到小拇指的掌指關節,數據轉換流程見表3。

表3 手勢“數字1”的數據轉換流程
將a(1)到a(10)的特征值組合起來就變成了一個10位數的手勢特征值“3155521555”,用于表示手勢“數字1”。
為了實現手勢識別功能,需要先在數據庫中添加一些基礎的手勢,由于手勢是一種主觀的信息,因此本研究邀請了20名試驗者對預設手勢的構建進行參與討論,先收集所有試驗者提出的手勢,然后進行集中討論,對提出的手勢模型進行刪減修改,最終選擇出包括阿拉伯數字、英文短語、招呼手勢等21種預設手勢,對每種手勢都進行兩個方向的拍照,讓手勢的展示更為生動形象。
顯示手勢時,程序會展示手勢名稱和手勢圖片來告知用戶的當前手勢,手勢名稱在數據庫中以字符串的形式保存,而圖片文件不便于保存在數據庫中,因此將圖片保存在硬盤中,將圖片的地址保存在數據庫中,在圖片展示時先讀取數據庫中的圖片地址,然后找到對應圖片來進行展示。
為了實現手勢識別設備的人機交互功能,需要設計一種面向用戶的電腦軟件,使得用戶可以在電腦上進行操作。本研究基于Visual Studio 2008軟件設計了一個手勢識別軟件,可以實現數據讀取、模型校準、詳細信息、手勢識別和手勢建立功能,所有功能數據流程圖如圖7所示。

圖7 手勢識別軟件各項功能的流程圖
數據讀取可以建立軟件和電阻值信息之間的聯系并實時讀取電阻值。
模型校準功能界面如圖8所示。數據表格負責記錄各個關節對應的最大、最小和當前電阻值。

圖8 模型校準功能的界面
詳細信息查看的界面如圖9所示,表格中用彎曲自由度表示各個手指關節的彎曲程度。

圖9 詳細信息查功能的界面
手勢識別功能是最主要的功能,在主界面上直接顯示,手勢識別功能的界面如圖10所示,有單次識別和持續識別兩個按鈕,還有兩個圖片框用來顯示每個手勢對應的兩個圖片。

圖10 手勢識別功能的界面
新建手勢功能屬于手勢識別系統的額外功能,可以讓用戶根據自己的需要增加手勢。
手勢識別系統的測試主要包括識別準確率和識別延遲測試。準確率是指手勢識別系統對一系列手勢識別的正確率,正確率越高,表明手勢識別系統的識別準確程度越高;識別延遲是指手勢識別成功所用的時間,時間越短,識別的延遲越低。
測試儀器:手勢識別設備、電腦、攝像機。
測試方法:邀請了10名測試者,5名青年男性,5名青年女性,他們的身高、體重和手指長度等個人信息都各不相等,讓這些測試者擺出預定的手勢,測試預設手勢數據集的識別準確率,然后每個人自由添加一些手勢到手勢數據庫中,再進行測試。手勢識別的時間比較短,人為的方式難以記錄這個時間,需要在測試的過程中用攝像頭輔助記錄識別過程,然后在電腦上通過視頻剪輯或者慢速回放的方式得出延遲時間。
對于不同的手勢集,手勢識別系統準確率的測試結果見表4。

表4 不同手勢集的手勢識別測量準確率
從表4中可以看出,總體的手勢識別準確率為90.59%,預設手勢集的識別準確率為96.67%,遠大于測試者新增手勢集的測試準確率80.77%,這可能是因為預設手勢集都是具有代表性和權威性的手勢,并且經過了測試和調整,數據設計完善,成功率高,而新增的手勢集都是首次添加到數據庫中的手勢,測試者也沒有考慮到手勢可能具有的多種情況,因此在測試中的準確率比較低。
對于不同性別的測試者,手勢識別系統準確率的測試結果見表5。

表5 不同性別測試者的手勢識別測量準確率
從表5中可以看出,男性的手勢識別準確率為92.94%,女性的識別準確率為88.24%,略微小于男性,這可能是因為男性的手比女性的要大,佩戴時可以完全撐滿手套,而女性的手穿戴手套時可能留有空隙,造成識別誤差。
手勢識別系統識別延遲測試結果見表6。

表6 手勢識別系統識別的延遲
從表6中可以看出,手勢識別系統的平均延遲為0.175 s左右,單次識別的延遲大于持續識別。最大延遲在0.20 s左右,最小延遲在0.15 s左右,這可能是因為手勢復雜程度不同,簡單手勢能夠更快地識別,而復雜手勢需要更多識別時間。
本研究紡制了鍍銀錦綸氨綸包覆紗,制備了手套結構的手指彎曲應變傳感器,基于這種傳感器設計了一種Visual Studio框架的手勢識別系統,總體的手勢識別準確率為90.59%,識別延遲短。后續應開發可以隨身攜帶、質量輕的便攜式電阻測量設備,提高測量精準度,設計更先進的算法,提高手勢識別準確率。相信基于傳感器開發手勢識別系統在智能可穿戴領域會有廣闊的應用前景,能為人們提供更好的服務。