周廣證 胡玉芬
(南京理工大學(xué)紫金學(xué)院,江蘇 南京 210046)
隨著計算機技術(shù)的發(fā)展,圖像識別技術(shù)[1]迅速普及到人們的生活中,使人類的生活更加便捷和智能化。圖像識別是利用計算機技術(shù)對圖片中的目標(biāo)進行檢測,其中深度學(xué)習(xí)在現(xiàn)代圖像識別技術(shù)發(fā)展中得到了非常廣泛的應(yīng)用[2]。圖像識別技術(shù)的應(yīng)用場合大致可分為三個方向[3]:(1)對人面部進行檢測的人臉識別;(2)對物體進行檢測的物體識別;(3)對手部發(fā)出動作進行檢測的手勢識別。人臉識別系統(tǒng)的應(yīng)用主要是在高鐵站、公司、學(xué)校等場所,目的是對身份進行認證,確保進入場所人員的安全性。物體識別系統(tǒng)的應(yīng)用場合主要是對貨物的移動進行檢測,在物流快遞分配、零售販賣機、無人售賣方面都有很好的應(yīng)用[4]。手勢識別通常用于使用簡單的手勢控制智能設(shè)備,使計算機能夠理解人類的行動來達到人機交互的目的[5]。本文主要介紹手勢識別技術(shù)在小車控制上的應(yīng)用,通過對手勢信息采集處理,最后實現(xiàn)控制小車的系統(tǒng)。
本文采用公開數(shù)據(jù)集kinect_leap_dataset,其官網(wǎng)地址為:https://lttm.dei.unipd.it/downloads/gesture/。手勢含義規(guī)定如表1所示。
表1 單手手勢定義
原始數(shù)據(jù)集共有1320個樣本。為了防止過擬合,采集后使用數(shù)據(jù)增強技術(shù)對數(shù)據(jù)集進行了擴充。主要利用平移、隨機縮放、翻轉(zhuǎn)變換、添加隨機噪聲等,可以將數(shù)據(jù)集擴充到原始數(shù)據(jù)集的幾十倍。系統(tǒng)的總體框架結(jié)構(gòu)分控制端和執(zhí)行端兩部分,如圖1所示,主要模塊有數(shù)據(jù)采集、數(shù)據(jù)處理、模型處理、結(jié)果處理、通信、小車控制等。
圖1 手勢控制小車流程圖
當(dāng)前目標(biāo)檢測的主流方法(Faster RCNN[6],YOLO)采用的都是深度學(xué)習(xí)架構(gòu),按照算法的流程不同,可將其分為兩類算法:一種是單階段檢測(One stage),另一種是兩階段檢測(Two stage),其主要區(qū)別在于在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計過程中是否有候選區(qū)域的生成。One-stage不會生成區(qū)域建議,只需要單一的網(wǎng)絡(luò)就能達到分類和定位的目的,檢測速度快,但準(zhǔn)確度不高。Two-stage的準(zhǔn)確度高,但速度相對One-stage較慢。Yolov4-Tiny是兩階段檢測,它的速度相比于Faster-RCNN來說快很多。并且Yolov4的特征提取層(Backbone)采用了特征金字塔+下采樣的結(jié)構(gòu),以及在訓(xùn)練時采用Mosaic數(shù)據(jù)增強的方法,所以對于小目標(biāo)檢測也有著不錯的效果。所謂的Mosaic數(shù)據(jù)增強法是將四張隨機縮放和裁剪的圖像拼接在一起,大大豐富了檢測數(shù)據(jù)集。但是Yolov4-Tiny目標(biāo)檢測網(wǎng)絡(luò)也有其缺點,它更少的參數(shù)以及更快的速度都是以犧牲識別準(zhǔn)確率為代價。因為Yolov4-Tiny只選擇了兩層來送入特征金字塔[7],所以對于小物體檢測,以及一個目標(biāo)將另一個目標(biāo)遮擋了一部分是很難檢測到的。但對于獨立出來的物體檢測識別率很高。本項目屬于獨立物體識別,因此用這個算法非常適合。
YOLOv4-Tiny網(wǎng)絡(luò)是YOLOv4的精簡版,屬于輕量化模型,相比于其他版本的輕量化模型,其性能優(yōu)勢顯著,整體網(wǎng)絡(luò)框架主要分為四部分:Input、Backbone、Neck、Head,如圖2所示。
(1)Input部分一般大小分為(416,416,3)和(608,608,3)兩種,圖2中輸入采用(416,416,3)。
(2)Backbone部分主要作用是主干特征提取,采用的是CSPDarknet53-Tiny結(jié)構(gòu),該結(jié)構(gòu)主要是Conv-BN-Leaky和Resblock_body兩大模塊,Conv-BN-Leaky主要是二維卷積及正則化,完成殘差塊堆疊,為了快速將激活函數(shù)修改為LeakyReLU,Resblock_body模塊主要完成兩次殘差特征融合,通過五次降維變成特征圖維度是13,將獲取到的這兩種有效特征層(13,13,512)傳遞給Neck加強特征提取網(wǎng)絡(luò)中,構(gòu)建特征結(jié)構(gòu)。當(dāng)輸入是416×416×3時,CSPDarknet53-Tiny特征結(jié)構(gòu)如圖2Backbone部分所示。
圖2 YOLOv4-Tiny網(wǎng)絡(luò)結(jié)構(gòu)
(3)Neck部分主要是加強特征提取,在特征利用部分,共提取兩個特征層,兩個特征層的shape分別為shape1(26,26,256)、shape2(13,13,512)。利用特征金字塔FPN結(jié)構(gòu)將兩個特征層融合,具體是將最后一個shape2的有效特征層卷積后進行上采樣,然后與上一個shape1的有效特征層進行堆疊并卷積。
(4)Head部分的分類是基于前面Neck部分最終的特征進行分類輸出,支持(26,26,255)、(13,13,255)。因為算法測驗的數(shù)據(jù)集類別支持80種,最后一個維度255=3×85,其中3表示存在3個先驗框,85等于4+1+80,分別代表x_offset、y_offset、h和w、可信度、分類結(jié)果。
本項目Yolov4-Tiny一開始訓(xùn)練了800個epoch,由于數(shù)據(jù)集單一,數(shù)據(jù)集數(shù)量太小,導(dǎo)致過擬合,ok手勢的MAP(均值平均精度)值達到100,550個訓(xùn)練次數(shù)之后訓(xùn)練集小于驗證集(train loss 圖3 訓(xùn)練集的準(zhǔn)確率和損失率 實驗結(jié)果表明,在環(huán)境比較復(fù)雜情況下識別率效果也比較好,能準(zhǔn)確識別出手勢。 本項目在小車上進行實體驗證,根據(jù)電腦單目攝像頭實時采集不同的手勢進行識別,再根據(jù)識別的結(jié)果來驅(qū)動小車運動。在電腦控制端當(dāng)手勢識別輸出分類結(jié)果后通過串口或WIFI無線方式將數(shù)據(jù)傳遞給小車,傳遞數(shù)據(jù)格式采用兩個字節(jié):類型+識別結(jié)果ASCII碼,當(dāng)前類型固定為0X01,方便后續(xù)擴展功能也為了因數(shù)據(jù)亂碼而導(dǎo)致小車的誤解析。在小車上首先使能串口并設(shè)置波特率為9600,小車上的數(shù)據(jù)接收處理是通過識別正確類型后解析識別結(jié)果,根據(jù)識別的結(jié)果調(diào)用相關(guān)函數(shù)控制小車的前進或者后退等行為。不同的方向控制是對小車左右電機的控制,通過H橋式電路來控制電機的正反轉(zhuǎn),并通過PWM控制轉(zhuǎn)速。實驗結(jié)果如圖4(a)(b)所示,其它的手勢一樣效果良好,識別速度快。 圖4 (a)左轉(zhuǎn) 圖4 (b)停止 本實驗主要是搭建Yolov4-Tiny網(wǎng)絡(luò)框架平臺,采用公開數(shù)據(jù)集,通過智能手勢識別來控制小車運行,從實驗搭建的目標(biāo)檢測網(wǎng)絡(luò)效果看,Yolov4-Tiny網(wǎng)絡(luò)識別率高,速度快,MAP值達到90%以上。隨著人工智能對各種應(yīng)用場景的開發(fā)以及各類算法研究的深入,手勢識別在現(xiàn)在人機交互中必將發(fā)展壯大。本項目后續(xù)繼續(xù)增加多個手勢同時出現(xiàn)情況以及多環(huán)境下驗證模型的可靠性、準(zhǔn)確性等。6 執(zhí)行端設(shè)計驗證
7 總結(jié)與展望