論文閱讀: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 $ ...

October 9, 2021 · 1 min · yanz

Spatial Pyramid Matching

論文閱讀:Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories 作者Svetlana Lazebnik, Cordelia Schmid, Jean Ponce Abstract 本論文提出一個方法來進行場景辨識 將影像劃分成越來越細的子區域 並計算每個子區域內的局部特徵直方圖 Feature extration 可以分成兩種特徵 weak features oriented edge points visual vocabulary較少 strong features SIFT visual vocabulary較多 Spatial Pyramid Matching Create Pyramid Histogram 右上圓圓像細胞的是輸入的影像 左邊三個level是本篇文章提出的一個分割方法 隨著level提高, 分割的數量逐漸增加, 概念就跟金字塔一樣 從level 0來看,將輸入的影像經過特徵萃取 每個點代表不同的Bag Of Visual Words 計算每個特徵個別總和並用直方圖表示,如level 0下的長條形 而在level 0最終可以得到一個1*3的向量來表達這張影像 到level 1部分,將影像切成4等份 因此下面的直方圖也會有四份 順序是對應著圖中的紅色數字進行量化 level 1就可以得到1*12的向量 level 2就可以得到1*48 再拿這些向量去對其他影像進行比對 Pyramid Matching 在原論文3.1節寫到如何匹配 ...

June 14, 2021 · 1 min · yanz

cs131 lecture 10 Clustering-K-means clustering

k means clustering 流程 隨機初始化群心$c_1,…,c_K$與迭代次數$t$ 計算隸屬矩陣$\delta^t$,得到新的分群結果 由分群結果更新群心 增加迭代次數$t$,重複步驟2~4,直到到達設定停止條件(到達迭代次數上限或群心不在大幅變動) 參數定義: $t$:迭代次數 $K$:群數 $N$:輸入的資料數量 $x_j$:輸入的第$j$筆資料 $c^t_i$:第$t$次第$k$群的群心 $\delta^t$:第$t$次的隸屬矩陣,定義第$j$個資料對應第$c$個群心的距離,矩陣大小為K*N 流程: k means clustering特性 不同的初始化群心位置會有不同結果 對球形的數據有較好的fit結果 * 需要決定參數k 選擇參數k的方法 不同的群數使得結果不同,決定群數變成非常重要的問題 以分群的角度來看,分群的目的為,群內的變異性越小越好,群跟群之間的變異性越大越好 翻成白話來說就是:同一群內的資料越聚集越好,群跟群之間的資料離越遠越好 這裡介紹一個常用來自動選擇群數k的方法:Elbow method Elbow Method Elbow method的核心思想是,運用前面所說分群的特性來定義一個objective function來找到輸入資料對應最好的分群結果,通常使用群內樣本的距離和來量測 如下圖所示,選擇的k值隨著群數分越多,數值越小,但可以發現前期變化很大,到後面逐漸變小 而群數設定為2時的轉折最大,像是手肘彎曲的地方,這時elbow method就選擇該輸入的資料分為2群最適合 k-means 優缺點 Unsupervised learning 原理簡單好實現 可擴展至大型的數據集,適應不同的dataset 保證收斂 可以預先初始化群心中心 需先設定參數k(使用elbow method可以解決這問題) 輸入資料需標準化到同一尺度空間 初始化群中心影響分群結果 群心容易被異常資料(outliers)影響,造成群心偏移 容易陷入局部最佳解 參考 k-Means Advantages and Disadvantages

March 28, 2021 · 1 min · yanz

Efficient Graph-Based Image Segmentation

在stanford中的cs131課程提到的Graph-based segmentation,剛好介紹到這篇論文,就來研讀一下。 論文網址:Felzenszwalb, Pedro F., and Daniel P. Huttenlocher. “Efficient graph-based image segmentation.” International journal of computer vision 59.2 (2004): 167-181. 本篇論文是基於圖的(Graph-Based)影像分割演算法,提出一個有效率的影像分割方式,並且影像分群的的結果是有意義的。 主要動機 過往的某些方法並沒有考慮到漸變的影像,使得分割結果不符合預期 問題描述 影像 $G$ 是由像素集合V與無向邊 $E$ 連接一組點對$(v_i, v_j)$,並且具有權重 $w(v_i, v_j)$,權重是由兩像素點之間的差異來產生 S是在影像G分割出來的一個區塊,並以 $G’=(V,E’)$ 表示, 其中$ E’\in E$ 斷定為分割公式定義 斷定兩區域$C_1,C2$是否存在邊界分割,是基於量測兩個區域$C_1,C2$之間的相異性,以及評估區塊內部各自元素的相異性程度 $Dif(C_1, C_2)是兩區域之間的差異,差異是指將組件C_1中的節點v_i連接到C_2中的節點v_j的最小權重邊$ $Int(C)$是計算同一區域內兩兩像素點之間的最大權重 $MInt(C_1, C_2)$是個別區域內的內部差異 $\tau(C)是一個閾值,由設定參數k來控制最後產生的群集大小$ 演算法流程 計算每個像素8相連或4相連的不相似度 將edge E按照不相似度non-decreasing排序edge權重得到$o_1,o_2,…,o_m$ 開始分割動作,初始分割區域為$S^0$, 其中每個像素點$v_i$是獨立的一個區域 重複步驟並定義$q=1,…m$ $S^q$的初始區域是由$S^{q-1}$組成, 定義$v_i, v_j$ 是一組前q小的edge權重對應的點對$o_q = (v_i, v_j) $ 檢查點對合成條件是否符合, 合成條件參考$D(C1, C2)$, 符合則合併, 否則維持分割結果S並繼續執行到結束 測試結果 使用的測試資料是COIL database, 對不同的影像大小使用不同的參數k ...

March 25, 2021 · 1 min · yanz