論文閱讀:Fast Branch Convolutional Neural Network for Traffic Sign Recognition
論文連結:Fast Branch Convolutional Neural Network for Traffic Sign Recognition 簡介 論文使用深度學習架構來辨識交通號誌,辨識交通號誌是高級駕駛輔助系統的重要部分,像是方向號誌、限速號誌、各種警示號誌等等 論文遇到的挑戰是影像成像受到室外環境的複雜變化,如失真、惡劣天氣、過度曝光、曝光不足、運動模糊、褪色、複雜背景,造成辨識方法更具挑戰性 使用傳統的電腦視覺辨識方法在這多變的影像是很難以用單一個演算法流程得到穩健的辨識模型,因此使用CNN架構的模型來辨識 CNN往往需要大量的參數處理來得到結果,因此要達到即時辨識模型會有一定的難度,但目前也有許多即時的CNN模型,例如:YOLO 受生物機制的啟發,論文提出一個新的架構Branch Convolution Neural Network (BCNN),在神經系統中,簡單、反射動作會在神經系統較低層次做快速反應,困難的動作會在高階的神經系統處裡後做反應,例如:在容易區分的交通號誌圖片,人眼只看一部份也可以很快的辨識出來,套用在CNN上,沒有必要通過所有CNN參數才得到結果 CNN模型對資料的處理 CNN模型在輸入交通標誌資料有以下特性 CNN模型傾向於將原始混淆圖像空間轉換為線性可分離空間,並將同一類標籤的樣本聚集再一起 越難辨識到的交通標誌是與相同類別標籤樣本距離越遠的,表示模型辨識不到特徵 模型對形狀的辨識能力比辨識限速能力好,模型前期將三角形和菱形分隔開來,CNN模型參考圖形內標示較後期才分離不同數字 Branch Convolution Neural Network CNN和BCNN的差別在於,BCNN會在層與層之間分支輸出結果,如圖所示,傳統的CNN模型會在最後Softmax層輸出結果,BCNN模型會在其中一個分支進行預測,因此可以提高模型的預測時間 所有的樣本都不需要經過整個CNN模型,參考前段介紹的生物學機制,簡單好辨識的影像在前期的layer預測,較難的影像在後期的layer輸出結果 BCNN model訓練流程: 訓練分支分類器 評估和偏移分類器 最佳化分支分類器 fine-tune model 分支分類器 Branch Classifier 分支分類器是用來快速、高精度的輸出結果,因此false negatives是允許的,但false positives是不行的 因此簡單來說分支分類器: 簡單且快速 robust與高精度 只輸出足夠置信度的樣本 由於分支分類器是使用線性分類器,使用k-folder來訓線性分類器,但分類器分的精度太高,也是沒有意義的,例如:分類結果為一個空間只有一個正樣本,他的precision是1,但recall可能非常低,因此設定precision與recall的threshold是必要的 再來就是要考慮到底要在哪幾層加入分類器,當遇到難以識別的樣本,並不會在分支分類器輸出結果,因此需要謹慎考慮分類器的插入位置與數量 迭帶搜索最佳組合流程 將分支分類器的組合編碼到[0,1]之間 設定$T_{save} $為目標函數 隨機產生不同種的分支分類器組合 計算$ T_{save} $ 迭代到指定次數或找到$ T_{save} $符合閾值的組合 其中$ T_{save} $表示的是節省的時間,因此要最大化目標函數 $ T_{save} $公式: 參數定義 $ l_i, i=0,1,2…n+1, 表示CNN第i層, l_{n+1}是輸出的layer, l_0是輸入的layer $ ...