在卷積神經網路中,為了避免邊緣畫素點不能有效得到使用,同時,在卷積之後,被不斷壓縮的情況,我們有乙個重要的操作叫做padding,翻譯為填充,主要是通過在周圍填充一定量的畫素點來避免上述兩種問題的產生。
如上圖所示,紅色區域為原始影象,我們需要將其周圍做好填充,使其成為乙個更大的圖畫,避免卷積結束後出現畫素點的損失,從而避免了神經網路無法加深的問題。
在python的numpy庫函式中,該函式已經被封裝好。
arr1d = np.array([1,2,3,4])
>>> arr1 = np.pad(arr1d, ((2,2)), 'constant')
>>> arr1
array([0, 0, 1, 2, 3, 4, 0, 0])
arr1 = np.pad(arr1d, ((2,2)), 'edge')
>>> arr1
array([1, 1, 1, 2, 3, 4, 4, 4])
>>> arr1 = np.pad(arr1d, ((2,2)), 'linear_ramp')
>>> arr1
array([0, 0, 1, 2, 3, 4, 2, 0])
>>> arr1 = np.pad(arr1d, ((2,2)), 'maximum')
>>> arr1
array([4, 4, 1, 2, 3, 4, 4, 4])
>>> arr1 = np.pad(arr1d, ((2,2)), 'mean')
>>> arr1
array([2, 2, 1, 2, 3, 4, 2, 2])
>>> arr1 = np.pad(arr1d, ((2,2)), 'median')
>>> arr1
array([2, 2, 1, 2, 3, 4, 2, 2])
>>> arr1 = np.pad(arr1d, ((2,2)), 'minimum')
>>> arr1
array([1, 1, 1, 2, 3, 4, 1, 1])
>>> arr1 = np.pad(arr1d, ((2,2)), 'reflect')
>>> arr1
array([3, 2, 1, 2, 3, 4, 3, 2])
>>> arr1 = np.pad(arr1d, ((3,3)), 'reflect')
>>> arr1
array([4, 3, 2, 1, 2, 3, 4, 3, 2, 1])
>>> arr1 = np.pad(arr1d, ((4,4)), 'reflect')
>>> arr1
array([3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, 2])
>>> arr1 = np.pad(arr1d, ((2,2)), 'symmetric')
>>> arr1
array([2, 1, 1, 2, 3, 4, 4, 3])
>>> arr1 = np.pad(arr1d, ((2,2)), 'wrap')
>>> arr1
array([3, 4, 1, 2, 3, 4, 1, 2])
但是如何呼叫還是要注意,首先,卷積操作基於整個影象,而通常一副彩色圖是由三個二維矩陣組成的立體三維陣列,所以,卷積核也是三維的,相應的,卷積運算就在兩個維度上展開,卷積核的移動式向右,向下,再向右,向下,直到遍歷結束為止,因此,我們的填充操作只在兩個軸上進行,也就是我們通常意義的x軸和y軸,但問題的關鍵在於,當我們在python中,用np.array定義了乙個三維陣列之後,怎麼把每乙個緯度對映到我們通常所理解的三維上呢!這塊是我個人的理解,不知道對不對,理論上一幅圖,我們是要在x和y軸兩個方向上做改變,但是,如果將三色圖看成乙個立體的,我們的改變實際上發生在x和z兩個方向上,如果我們將每種通道的畫素值(rgb)分別儲存在乙個二維陣列裡,就得到了乙個三維陣列,而對應的緯度計算時shape的第乙個值與的表示正好相反,所以,需要我們對後兩位進行作用。
如圖所示,不過,一般的資料集都會考慮到這一點,所以,在運算元據集的時候,座標順序表示依然是正確的,只需要作用前兩位填充即可。
WaitForSingleObject函式的使用
程式舉例 1 建立對話方塊應用程式,專案名稱為mytestthread 2 新增按鈕,命名為啟動和停止,在對話方塊中增加編輯框,id為idc time,3 增加成員變數,handle m hthread 2 此為執行緒的控制代碼 4 定義全域性變數,用來控制線程的執行與否 volatile bool...
cvCreateVideoWriter函式使用
cvcreatevideowriter函式使用 2011 11 04 15 47 例如,cv fourcc p i m 1 是mpeg 1 codec,cv fourcc m j p g 是motion jpeg codec cv fourcc m p 4 2 mpeg 4.2 codec cv f...
CentimetersToPoints函式出錯
在word開發中,碰到centimeterstopoints函式呼叫出錯,提示未指定的錯誤的問題。解決辦法為修改centimeterstopoint函式 匯入msword.olb後的centimeterstopoint函式如下 修改後的centimeterstopoint函式如下,紅色表示的部分為增...