在簡單了解了CNN的架構之後,今天來介紹物件偵測的模型Yolo v1(You Only Look Once),雖然現在Yolo已經出到了v5(應該?),但是從頭開始了解Yolo的演變和進化也是很有幫助的,先上Yolo v1的架構圖:)。
要是我前幾天的文章寫得能讓各位看懂的話,相信大家都看到架構圖應該不會是一頭霧水了...吧?
輸入為1張448x448的圖像,在經過許多卷積層和池化層後,最後再透過兩個全連接層,輸出結果為7x7x30,另外說一下,在卷積和池化層底下的s-2代表著步長,之前有提到過,下面來說一下這7x7x30是甚麼樣的東西。
首先我們注意到,在第一張圖的最後結果上有很多框框,那就是Yolo的物件框,物件框會框住欲辨識的對象,而這個框框也是模型要學習、訓練的,並且Yolo將輸入的圖片,切割成7x7的區域,從模型的輸出可以發現,卷積層將特徵擷取的結果經過全連接層之後輸出,如下圖所示。
最後的7x7存取了很多用於物件辨識的資訊,而這資訊總共有30個,所以才會是7x7x30,而這個30裡面有些甚麼呢?
首先每一個格子會產生兩個物件框,如果要辨識的物體的中心在這個格子裡,便會由這個格子的物件框來框住物體,之後再計算這兩個物件框的Confidence Score,並採用分數高的物件框,然後Confidence Score是這樣算的:
第一項是是該格中的物體是某類別的機率,第二項則是該格中有沒有物體,有為1沒有則為0,最後則是計算物件框和我們所框出的物件框的重合程度,也就是IOU。
這個30裡面有:
而我們上面提到每格有2個物件框,所以會長這樣,(w,h,x,y,c)*2+20=30。
今天就到這邊,明天會再介紹他的Loss Function,到時會更了解這30個資訊要拿來做甚麼:)。
資料來源:
https://medium.com/%E7%A8%8B%E5%BC%8F%E5%B7%A5%E4%BD%9C%E7%B4%A1/yolo-v1-%E7%89%A9%E4%BB%B6%E5%81%B5%E6%B8%AC-%E8%AB%96%E6%96%87%E6%95%B4%E7%90%86-935bfd51d5e0
https://blog.csdn.net/c20081052/article/details/80236015