為什麼YOLO論文(v1)裡面,經過第一層卷積層以後,448x448的image size會變成224x224

王柏鈞
2 min readNov 27, 2020

--

AIA學員提問紀錄

為什麼YOLO論文(v1)裡面,經過第一層卷積層以後,448x448的image size會變成224x224

paper 原文: https://arxiv.org/pdf/1506.02640.pdf

根據論文介紹

==> K (Kernel size) = 7

==> S (stride) = 2

關鍵應該是在於,雖然論文只有寫這兩個參數,不過實作的source code裡面,有偷偷針對某些層(包括第一層)做padding,對第一層而言,其padding的大小是3

==> P (padding) = 3

然後輸入圖片的size是448x448

==> W = 448

所以根據公式: output width = [ W — K + 2xP ]/ S +1

第一層卷積的輸出size應該是:

[ 448–7 + 2x3] / 2 + 1

= 223.5 + 1

然後根據卷積(conv.)計算方式,當stride != 1,並且得到的結果有小數點的時候,最後面的那個卷積核不能完整計算的部分會被捨去,所以上面得到的223.5會無條件捨去,變成223。

所以為了讓原始影像的資訊完整的被輸入,source code才會有3的padding。犧牲掉padding出來的像素點就可以保持原始影像的完整。

最後被向下取整的223 + 1 = 224,變成第一層卷積層的輸出

以上。

學員問我的時候我還愣了一下,想說怎麼會問這個,這才發現論文寫的實在潦草。

另外也發現之乎那邊好像找不到答案,想說分享一下。

btw: 之乎那邊還有人在唬爛,手寫了一串公式然後偷偷在中間突然+1

ㄎㄎ

ref:

https://stackoverflow.com/....../how-to-calculate-the......
https://blog.csdn.net/caomin1hao/article/details/80601255

--

--

No responses yet