導論
1.1 物件偵測應用情境:針對不同的運算設備,分別設計多個的模型。
1.2 目的:本文認為物件實時偵測應用在不同情境,需要的不是設計多個模型;而是單一模型藉由模型縮放技術,衍生出一套可以部署在不同設備的物件檢測器。
1.3 Paper Servey
相關文獻
CSPDarknet53:YOLOv4之Bckbone,其深度為65、瓶頸比例為1、跨階寬度增加率為2,貼近上述最佳模型特徵,故本文以其進行模型縮放Baseline。
1.4 實時物件偵測
one-stage演算法:
僅需要一階段CNN操作,就可以獲得模型預測輸出。
推論時間固定
two-stage演算法:
從第一階段CNN中獲得高分區域提案,再將該提案輸入第二階段CNN,獲得模型預測輸出。
推論時間受到「高分區域提案」數量(m)影響,不是固定的。
小結:為了符合實時偵測,故選用推論時間固定的one-stage演算法。此外,目前最準確的one-stage物件偵測為anchor-based,故本文以YOLOv4進行模型縮放。
模型縮放
3.1 傳統模型縮放方法
3.2 Scaled YOLOv4縮放原則
一般縮放(CSP-ized YOLOv4)
選擇ResNet、ResNext和Darknet,分析不同模型縮放方式的FLOPs。
觀察圖像大小α、Depth層數β與Width通道數γ等縮放因子,變化時導致的FLOPs量變化。
圖像大小α、Depth層數β與Width通道數γ等縮放因子,呈現平方、線性與平方關係。(原文Table1中,Width與Depth位置應對調,如下圖)
將CSPNet應用於ResNet、ResNeXt與Darknet模型,均降低了FLOPs量,故本文選擇CSP-ized作為縮放的最佳模型。
Low-End縮放(YOLOv4-tiny)
推論速度除了受到FLOPs量、模型大小影響,還有Low-End Device的硬體限制。包括:記憶體頻寬、記憶體訪問成本、動態存取記憶體流量。
使計算複雜度小於O(whkb²):
輕量化模型著重在參數利用的有效性,故選擇DenseNet與OSANet比較計算複雜度。
前者為O(whgbk)、後者為O(max(whbg, whg²k)),且k << g < b,計算複雜度OSANet≤DenseNet,故採用之。
OSA模塊:為了解決DenseNet記憶體訪問成本過高的問題而生。
最小化/平衡特徵圖尺寸
在卷積後維持相同數量的通道
評估Low-End Device計算成本需考慮設備功耗,其受記憶體訪問成本(MAC)影響。
不等式運算發現:當卷積計算的輸入與輸出通道數相同,可以得到MAC最小值。
卷積運算暫存(CIO)最小化
Hight-End縮放(YOLOv4-large)
物件偵測模型可調整縮放因子與位置,包括:Input、Backbone與Neck,如下圖。
one-stage物件偵測需要預測圖像中物件位置與大小,物件大小的預測能力,受到像量特徵的感受域影響。而FPN架構顯示感受域與stage息息相關,
本文最終採用的縮放策略:「先縮放 {input size, #stage} ,再根據實時偵測應用情境,進一步縮放 {width,depth} 」。
Scaled YOLOv4架構
4.1 CSP-ized YOLOv4(YOLOv4-scp)
Backbone
Neck
4.2 YOLOv4-tiny
圖片來自於Windows版YOLOv4-tiny目标检测实战:训练自己的数据集。
Backbone:CSPOSANet with PCB
Neck和Stage通道數 :沿用YOLOv3-tiny設計。
4.3 YOLOv4-large
實驗比對
5.1 Ablation study
CSP-ized YOLOv4
YOLOv4-tiny
YOLOv4-large:比較模型從頭訓練與微調後的準確度。先從頭訓練300回合,再微調150回合,獲得較高的準確度。
5.2 與其他先進的物件偵測模型比對
CSP-ized YOLOv4:與準確度相近的EfficientDet-D3比較,CSP-ized YOLOv4推論速度為兩倍。
YOLOv4-large:與準確度相近的EfficientDet比較,YOLOv4-large推論速度顯著較佳。
(對照圖修改自本文中Table11)
YOLOv4-tiny
讓我們繼續看下去...