天天看點

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

基于YOLO+ResNet50的手勢識别

目錄

  • 基于YOLO+ResNet50的手勢識别
    • (一)項目背景以及系統環境
      • 1.1 項目背景
      • 1.2 硬體環境
      • 1.3 作業系統
      • 1.4 主要界面
      • 1.5 開發工具
    • (二)前期準備
      • 2.1 前言
      • 2.2 資料集準備
      • 2.3 Yolo資料集的标注
      • 2.4 ResNet50資料集
    • (三)Yolo V3
      • 簡介
      • 3.1 模型訓練
      • 3.2 模型測試
      • 3.3 結果分析
    • (四)ResNet50
      • 4.1模型訓練
      • 4.2模型測試
      • 4.3結果分析
    • (五)YoloV5
      • 5.1簡介
      • 5.2 輸入端
        • 5.2.1 Mosaic資料增強。
        • 5.2.2 自适應錨框計算
        • 5.2.3 自适應圖檔縮放
      • 5.3Backbone
        • 5.3.1 Focus結構
        • 5.3.2 CSP結構
        • 5.3.3Neck
      • 5.4輸出端
        • 5.4.1 Bounding Box 損失函數
        • 5.4.2nms非極大值抑制
      • 5.5模型訓練
        • 5.5.1第一次訓練情況
        • 5.5.2第二次訓練情況
        • 5.5.3第三次訓練情況
    • (六)YoloV5優化
      • 6.1簡介
        • 6.1.1 模型假設
      • 6.2 DC與PC
        • 6.2.1逐通道卷積(Depthwise Convolution)
        • 6.2.2逐點卷積(Pointwise Convolution)
      • 6.3模型測試
    • (七) 結語

(一)項目背景以及系統環境

本文所使用的深度學習架構為pytorch-gpu-1.7.1版本,python3.7版本,需要在特定的系統環境中運作。本文搭建實驗所需要的系統環境如下所示。

1.1 項目背景

​ 近年來,計算機視覺技術蓬勃發展,為生産和生活帶來了巨大的變革。像是刷臉支付、無人駕駛等已經上市或即将走向成熟的技術,極大便利了我們的日常生活。但是我們觀察到,目前市場上尚未出現一款完善的針對會議示範控制的計算機視覺産品。同時,由于新冠疫情的影響,加深了人們對于非接觸式互動的需求,人們迫切需要一款非接觸式的人機互動系統,來解決傳統以鍵鼠為代表的接觸式互動帶來的衛生隐患。于是,為了填補這一大市場漏洞,我們團隊研究并開發出了這一款基于手勢識别的會議控制系統,借此提高會議的操作便利性和直覺性。

1.2 硬體環境

系統最低配置要求:

GPU:GTX 550Ti(不支援A卡); CPU:i3三代及以上。

推薦配置:

GPU:GTX 1050Ti及以上(不支援A卡);CPU:i3五代及以上。

1.3 作業系統

實驗平台所使用的作業系統為windows10。安裝的支援庫隻要有python3.7,OpenCV-Python以Pytorch-gpu-1.7.1版本。

1.4 主要界面

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

1:程式調用預設攝像頭。

2:確定開始時,使用者手臂處于放松狀态,程式将通過人物的位置自動确定基準參數,如:起始左右手鎖定、人物起始位置、動作啟動線等。

3:通過算法,程式實時追蹤手的位置和特征狀态并和對左右手的區分,并将結果實時回報給預測對象。手離開動作起始線(即圖中橫線)後開始捕獲動作軌迹,再次回到起始線下後輸出預測結果到終端。

4:也可以設定控制模式,可以選擇進行對PPT和圖檔管理器的操作(詳情參考示範視訊)。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

1.5 開發工具

開發工具:

硬體資訊表
硬體名稱 規格 用途
攝像頭 雜牌720P 擷取視訊流
影馳顯示卡 GTX1660 骁将 提供算力
CPU I3-9100F 完成預測
軟體資訊表
軟體名稱 版本 說明
Python 3.7 主要運作環境
JDK 1.8 實作預測輸出
Pytorch 1.7.1 算法使用架構
CUDA 11.0 提供GPU指令集架構

算法技術:

模型 作用
YoloV3 目标檢測v1.0
YoloV5s 目标檢測v2.0
MoblieNetV3_YoloV5s 目标檢測v3.0
Resnet50 特征提取

(二)前期準備

2.1 前言

​ 深度學習是一種通過大量資料不斷的學習進而能夠對未知資料進行檢測識别的技術。是以為使手勢識别模型能夠自動及有效地對手勢進行識别,需要先對手資料采取大量的高品質的資料,以便能夠得到良好的識别模型。我們使用Yolo模型對目标進行檢測,再從檢測的結果的基礎上使用ResNet50模型對手的二十一點進行特征的提取,再根據輸出的二十一點的坐标進行手勢的判斷。

2.2 資料集準備

​ 本項目所采集的手為會議場景下的基本手勢。Yolo模型的資料集使用LabelImg工具進行辨別圖檔。

​ Resnet模型的資料集使用開源項目的資料集https://codechina.csdn.net/EricLee/handpose_x進行訓練。

2.3 Yolo資料集的标注

【資料标注】

本文采用的YoloV3算法是一種監督式學習方法,是以需要對輸入到Yolo網絡的圖像資料進行标注即添上對應的标簽,并且還需要滿足該網絡對圖像資料格式的要求。本文使用LabelImg工具完成對手圖像資料的标注工作,标注示意圖如下圖所示。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

注意檔案路徑不要有中文!!

【标注檔案】

在使用LabelImg工具對手進行圖像資料進行标注時,會生成.xml檔案。其内容如下所示。

<annotation>
	<folder>JPEGImages</folder>
	<filename>0-19.jpg</filename>
	<path>D:\data\JPEGImages\0-19.jpg</path>
	<source>
		<database>Unknown</database>
	</source>
	<size>
		<width>624</width>
		<height>832</height>
		<depth>3</depth>
	</size>
	<segmented>0</segmented>

	<object>
		<name>Hand</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>384</xmin>
			<ymin>241</ymin>
			<xmax>426</xmax>
			<ymax>286</ymax>
		</bndbox>
	</object>
</annotation>
           

在使用LabelImg工具對手進行标注而生成的.xml檔案中記錄的内容如上所示。其中‘folder’辨別所在檔案夾的名稱;‘filename’表示手圖像的名稱;‘path’表示手語圖像資料存放的路徑;‘size’表示圖像的大小和深度;‘object’中的name為目标物體;最後的‘bndbox’存放的是邊框坐标資訊。示例中目标物體Hand的坐标資訊為(384,241) (426,286),其中前者表示邊框的左上角坐标資訊,後者代表邊框的右下邊的坐标資訊。

2.4 ResNet50資料集

【資料标記】

本次手部關鍵點使用https://codechina.csdn.net/EricLee/handpose_x提供的資料集進行訓練。

【标注檔案】

{

“maker”: “Eric.Lee”,

“date”: “2021-02-01”,

“info”: [{“bbox”: [0.0,0.0,0.0,0.0],

“pts”: {

“0”: {“x”: 78,“y”: 95},“1”: {“x”: 72,“y”: 82},“2”: {“x”: 65,“y”: 72},

“3”: {“x”: 59,“y”: 69},“4”: {“x”: 55,“y”: 55},“5”: {“x”: 59,“y”: 65},

“6”: {“x”: 38,“y”: 69},“7”: {“x”: 36,“y”: 72},“8”: {“x”: 38,“y”: 72},

“9”: {“x”: 55,“y”: 72},“10”: {“x”: 36,“y”: 80},

“11”: {“x”: 38,“y”: 84},“12”: {“x”: 42,“y”: 91},

“13”: {“x”: 55,“y”: 82},“14”: {“x”: 36,“y”: 90},

“15”: {“x”: 40,“y”: 97},“16”: {“x”: 44,“y”: 99},

“17”: {“x”: 55,“y”: 93},“18”: {“x”: 40,“y”: 97},

“19”: {“x”: 42,“y”: 103},“20”: {“x”: 46,“y”: 103}}}]

}

首先非常感謝作者Eric.Lee辛苦做的訓練集并開源分享出來,對此表示由衷的感謝。"maker"就是資料集的作者;"date"制作的日期;"info"中的"pts"裡面的資料就是手部的二十一個關鍵點的坐标。

(三)Yolo V3

簡介

​ Yolo (You Only Look Once)。

​ 【Darknet-53】

​ Yolo V3 采用了 Darknet-53 的網絡結構(含有 5 組殘差子產品)來提取特征。其網絡結構采用了橫縱交叉結構,并采用了連串的 3×3 和 1×1 卷積。其中, 3×3 的卷積增加通道數,而 1×1 的卷積在于壓縮 3×3 卷積後的特征表示,同時 Darknet-53 為了防止池化帶來的低級特征的丢失,采用了全卷積層,并且引 入了 residual 結構。這意味着網絡結構可以更好地利用 GPU,進而使其評估效率更高、速度更快。Darknet-53 作為特征提取層,最終每個預測任務得到的特 征大小為 [3×(4+1+C)]。每個 grid cell 預測 3 個預測框,4 代表 4 是邊界框中心坐标 bx,by,以及邊界框 bw,bh,1 代表預測值,C 代表預測類别。最終 YoloV3 可以擷取(16×10+32×20+64×40)個特征向量

​ 【網絡結構】

​ 模型結構如下圖:

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

3.1 模型訓練

​ 由于訓練資料集僅有1000張左右,擔心資料量較少不足以支撐模型的訓練,是以通過對資料集進行左右與上下鏡像處理來增強訓練資料集,運作資料處理文 件後,得到資料增強後的圖檔共4000張左右。

​ 訓練過程batch_size設定為8,初始learn_rate設定為1e-3。主幹特征提取網絡中,當機訓練可以加快訓練速度,也可以在訓練初期防止權重被破壞,是以我們的 Init_Epoch起始世代設定為0,Freeze_Epoch當機訓練世代設定為50。訓練完一個Epoch之後,batch_size設定為4,将初始learn_rate設定為1e-4, Init_Epoch 起始世代設定為50,Freeze_Epoch當機訓練世代設定為100。

​ 下圖為三次訓練後儲存的模型檔案,最終的Total_Loss在2.2左右。

​ 從此可以看出loss收斂在2附近,考慮到繼續訓練可能會産生過拟合現象,訓練完三次之後,停止訓練。訓練結束,得到最終的檢測模型。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

3.2 模型測試

通過測試集上測試模型的檢測效果,如下圖所示。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

從上圖可以看出檢測效果非常好,訓練好的模型可以準确識别出不同圖檔,不同形狀的手。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

選取了一些光線不足,噪點增加,目标被遮擋以及目标在複雜環境的圖像進行測試,分析算法的環境适用性,如上圖所示。在上圖中,可以看出在灰暗環境,複雜背景的情況下,算法在不良條件環境下也可以做出正确的判斷。

3.3 結果分析

【FPS】

在用攝像頭進行測試中發現FPS在20-30之間。還是比較快的檢測速度。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

【mAP】

通常使用mAP來評估檢測準确率,mAP的值越大,證明檢測效果越好,在本次實驗中,因為檢測目标隻有手這一類物體,是以在數值上,mAP的值等于AP值,AP值為召回率(ReCall)與準确率(Precision)所圍成的R-P曲線面積;使用原YoloV3算法對同一資料集進行一次訓練,對比三次檢測檢測的效果如下圖所示。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 由于在測試結果中,發現第三次的模型存在比較嚴重的過拟合現象,是以使用第二次訓練的模型。

(四)ResNet50

在上述YoloV3完成手的檢測後,需要對手進行單手二十一個特征點提取,即可對具體的手勢進行判斷,在實際會議中,并非每個人的手都在操作,即攝影裝置的手勢識别是一個開放集上的手勢識别問題,其本質是度量學習。必須知道是哪一部分的人在進行手勢操作。我們以ResNet50為基本架構對單手二十一點進行特征提取,采用Wing_Loss對訓練過程進行監督,使得模型的識别具備較高類間可分性與類内緊湊性。

Wing loss的手部關鍵點檢測算法,該方法利用級聯回歸方法以及轉換機制,通過級聯兩個卷積神經網絡,利用第一階段産生的形狀向平均形狀轉換得到的轉換矩陣,進而将手部圖檔進行轉換,第二階段減小手部姿态對關鍵點檢測的影響。為了能夠利用全手的特征資訊,同時平衡誤差對關鍵點的影響提出了wing loss函數,兼顧大小誤差對手部關鍵點準确性的影響。

Wingloss函數如下

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别
【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

4.1模型訓練

【網絡結構】

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

在神經網絡中,殘差網絡可以在不影響網絡性能的前提下解決梯度消失和梯度爆炸這兩個問題。

殘差網絡通過加入ShortCutConnections,變得更易于優化。ResNet50是一個性能優良的殘差網絡模型,它包含49個卷積層和1個全連接配接層。

在ResNet50殘差網絡模型下,對比分析不同數量級的學習率對驗證集正确率的影響,可以得到如下結論:

⑴ 學習率lr在過大的時候(lr=1e-2),損失函數難以收斂,導緻誤差較大,驗證集的準确率在80%附近劇烈波動。

⑵ 學習率lr在過小的時候(lr=1e-4),損失函數在逐漸收斂,但是收斂速度太慢。

⑶ 當選擇學習率lr=1e-3,則損失函數值收斂比較迅速。

通過以上分析我們最終選擇學習率lr=1e-4。

4.2模型測試

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

在上述測試中我們可以看出,ResNet50對于手的特征提取還是十分有效的,隻要能檢測出目标,就能高效提取出手的特征。

4.3結果分析

​ 下圖為ResNet50訓練的Loss結果。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 我們可以發現最終的MeanLoss和BestLoss都在逐漸收斂于0.099左右。雖然可以不斷疊代下取,使得模型對特征的提取效果更加顯著,但考慮到GPU算力, 時間以及其他問題,我們便到此停止訓練ResNet50的模型。

(五)YoloV5

5.1簡介

​ 2020年4月23日YoloV4釋出,2020年6月10日YoloV5釋出。YoloV4對YoloV3的各個部分都進行了很多的整合創新,而YoloV5則是對YoloV4的細節進行優化。在本次實驗中初始的目标檢測模型是使用YoloV3,但由于YoloV3的檢測效果的精度在複雜環境下稍有不足,例如當目标被遮擋時,雖然能檢測出目标,當還是由于精度不高的問題,影響了後續手勢的判斷,以至我們的模型從YoloV3更改為YoloV5,并對YoloV5模型進行主幹網絡的換取,以便後續的ResNet50能更好提取特征。

【網絡結構】

​ YoloV5的結構與YoloV4很相似,但是還有細節上的差別。

5.2 輸入端

5.2.1 Mosaic資料增強。

​ V5的輸入端沿用了V4的Mosaic資料增強的方式,通過随機縮放,随機剪裁,随機排布的方式進行拼接,對于小目标檢測的效果有明顯提高。

5.2.2 自适應錨框計算

​ 在傳統的Yolo算法中,針對不同的資料集,都會有初始設定的長寬的秒框,那麼在網絡訓練中,網絡在初始錨框的基礎上輸出預測框,進而與真實框進 行對比,計算兩者差距,再反向傳播,疊代網絡參數。V5對于V3、V4再這方面并不是固定的,而是将這個功能嵌入到了代碼當中,每次訓練中,都會自适 應計算不同訓練集中最佳的錨框值。

5.2.3 自适應圖檔縮放

​ 在V5中對這方面進行了改進,首先是計算出縮放系數,原始圖檔的長寬都乘以最小的縮放系數,得到原本需要填充的高度。再對32(V5的網絡經過5次 下采樣,而2的5次方=32。是以至少要去掉32的倍數)取餘,得到像素點,再除以2,即得到圖檔高度兩端需要填充的數值通過這種簡單的改進,推理速度得 到了37%的提升

5.3Backbone

5.3.1 Focus結構

​ V3、V4中并沒有Focus結構,Focus結構是V5模型的一個創新點。其中關鍵點就是進行切片操作。比如下圖的切片操作。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

5.3.2 CSP結構

​ Yolov4網絡結構中,借鑒了CSPNet的設計思路,在主幹網絡中設計了CSP結構。v5與v4不同點在于,v4中隻有主幹網絡使用了CSP結構。而v5中設計了兩 種CSP結構,以Yolov5s網絡為例,CSP1_X結構應用于Backbone主幹網絡,另一種CSP2_X結構則應用于Neck中。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 與yolov3的殘差結構對比的話。

CSPnet結構并不算複雜,就是将原來的殘差塊的堆疊進行了一個拆分,拆成左右兩部分:

​ 主幹部分繼續進行原來的殘差塊的堆疊

另一部分則像一個殘差邊一樣,經過少量處理直接連接配接到最後。(Part 2)

是以可以認為CSP中存在一個大的殘差邊。(Part1)

5.3.3Neck

​ Yolov5現在的Neck和Yolov4中一樣,都采用FPN+PAN的結構,但在Yolov5剛出來時,隻使用了FPN結構,後面才增加了PAN結構,此外網絡中其他部分也 進行了調整。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 上圖為原始的PANet的結構,可以看出來其具有一個非常重要的特點就是特征的反複提取,在(a)裡面是傳統的特征金字塔結構,在完成特征金字塔從 下到上的特征提取後,還需要實作(b)中從上到下的特征提取。

​ Yolov4的Neck結構中,采用的都是普通的卷積操作。而Yolov5的Neck結構中,采用借鑒CSPnet設計的CSP2結構,加強網絡特征融合的能力

5.4輸出端

5.4.1 Bounding Box 損失函數

​ Yolov5中采用其中的GIOU_Loss做Bounding box的損失函數。

​ 先計算兩個框的最小閉包區域面積 (同時包含了預測框和真實框的最小框的面積),再計算出IoU,再計算閉包區域中不屬于兩個框的區域占閉包區域的比重,最後用IoU減去這個比重得到GIoU。

圖檔了解如下

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

兩個框的最小閉包區域面積 = 紅色矩形面積

​ IoU = 黃色框和藍色框的交集 / 并集

​ 閉包區域中不屬于兩個框的區域占閉包區域的比重 = 藍色面積 / 紅色矩陣面積

GIoU = IoU - 比重

5.4.2nms非極大值抑制

​ 在目标檢測的後處理過程中,針對很多目标框的篩選,通常需要nms操作。因為CIOU_Loss中包含影響因子v,涉及groudtruth的資訊,而測試推理時,是沒有groundtruth的。是以Yolov4在DIOU_Loss的基礎上采用DIOU_nms的方式,而Yolov5中采用權重nms的方式。

5.5模型訓練

5.5.1第一次訓練情況

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

第一次訓練結果

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 在上圖中我們可以看出,上方的八個名額都在不斷收斂于某一個值,但還是還沒停止收斂,在測試集中的表現如下

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 左圖為原始的标簽檔案的顯示,右邊為第一次的預測結果。可以看出雖然大部分的目标都已經檢測出來了,但是精度還是不足。于是我們進行了第二次的訓練。

5.5.2第二次訓練情況

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 在上方的八張圖,我們可以看出,在縮小範圍的情況下,還是在波動,還沒完全收斂,但是已經有了收斂迹象,在這裡不得不提V5模型的資料增強

​ 如下圖所示。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 通過資料增強,我們可以增加資料量,有益于防止過拟合現象。但是由于資料還沒有完全收斂,是以我們就有了第三次的訓練。

5.5.3第三次訓練情況

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

第三次的訓練結果,由于在訓練到中途發現過拟合現象,并且馬上停止訓練。

由于中途停止并沒有生成相關曲線,是以開啟攝像頭在明亮、灰暗、被遮掩的環境下進行測試,效果呈現不錯。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

測試的過程中,我們發現速度方面,V5s的檢測速度十分優秀。

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

(六)YoloV5優化

6.1簡介

6.1.1 模型假設

【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别
【目标檢測】你想知道的手勢識别都在這裡 【YOLO】網絡基于YOLO+ResNet50的手勢識别

​ 【模型優化】

​ 介于YoloV5的輕便小巧的特點,我們的優化方案是将V5小巧的優點繼續發揚,将原生V5中的網絡結構替換成MoblieNetV3。在mobilenet中,會有深度可分 離卷積(depthwise separable convolution)由depthwise(DW)和pointwise(PW)兩個部分結合起來,用來提取特征feature map。相比正常的卷積操作,其參數 數量和運算成本比較低。

​ 【深度可分離卷積】

​ 深度可分離卷積主要分為兩個過程,分别為逐通道卷積(Depthwise Convolution)和逐點卷積(Pointwise Convolution)。

6.2 DC與PC

6.2.1逐通道卷積(Depthwise Convolution)

​ DC的一個卷積核負責一個通道,一個通道隻被一個卷積核卷積,這個過程産生的feature map通道數和輸入的通道數完全一樣。一張5×5像素、三通道彩色輸 入圖檔(shape為5×5×3),DC首先經過第一次卷積運算,DW完全是在二維平面内進行。卷積核的數量與上一層的通道數相同(通道和卷積核一一對應)。所 以一個三通道的圖像經過運算後生成了3個Feature map。

​ DC完成後的Feature map數量與輸入層的通道數相同,但無法擴充Feature map。而且這種運算對輸入層的每個通道獨立進行卷積運算,并沒有有效的利用不同 通道在相同空間位置上的feature資訊。是以需要Pointwise Convolution來将這些Feature map進行組合生成新的Feature Map。

6.2.2逐點卷積(Pointwise Convolution)

​ PC的運算與正常卷積運算非常相似,它的卷積核的尺寸為 1×1×M,M為上一層的通道數。是以這裡的卷積運算會将上一步的map在深度方向上進行權重組 合,生成新的Feature map。有幾個卷積核就有幾個輸出Feature map。經過PC之後,同樣輸出了4張Feature map,與正常卷積的輸出次元相同。

6.3模型測試

【模型測試】

對改模型進行測試之後發現其檢測模型非常輕量,隻有不到5M的模型。我們從最初的四百兆到現在的不到五兆,我們通過對模型不斷的壓縮,以便後續的 适配移動端裝置。雖然模型的簡化了,但是我們也發現精度沒有之前的高效,是以也引發了我們的後續思考,有可能是新測試的資料的問題,也有可能是優化模 型之後導緻特征丢失的問題。我們将在後續不斷進行完善,使得網絡在輕量的情況下,精度也能跟上。

(七) 結語

​ 這是我們團隊的參加第十二屆服務外包與創新創業大賽的題目(A12),然而并沒有晉級,雖然很遺憾,但是這半年來,我們收獲了很多,測試到淩晨四點,改網絡,改文檔改到頭秃。

​ 也感謝每一位團隊小夥伴的辛苦付出。

​ 現在是大二,雖然學長安慰我們說除了ACM其他都是水賽,但是我們還是很希望拿獎,也希望明年決賽答辯現場能有我們的位置。

繼續閱讀