1

我目前正在創建圖像數據集以使用Caffe來訓練,驗證和測試基本的自定義ConvNet。自定義Caffe數據集中的圖像均值減法?

具體來說,我收集了我的JPG圖像(RGB),並且現在決定如何預處理我的網絡圖像。我正在尋求對圖像應用基本的標準化,例如減去圖像的平均值以使圖像「居中」。

的ImageNet教程http://caffe.berkeleyvision.org/gathered/examples/imagenet.html提到這個操作,描述瞭如何通過將LMDB到compute_image_mean可執行的$CAFFE_HOME/build/tools產生平均.binaryproto文件的數據集。

我已經完成了這項工作,現在我的培訓LMDB有一個.binaryproto文件。據我瞭解,這個文件基本上包含了傳入的LMDB中所有圖像的平均像素值的表示。因此,我猜想它正在存儲某種形式的包含三個通道的像素值的數組。


問題:

如何使用這個.binaryproto文件來執行平均減法?

我應該爲每個LMDB(train,validate,test)創建單獨的.binaryproto文件嗎?還是應該先創建一個包含數據集中所有圖像的LMDB,然後從中生成平均值,並將減法應用於所有子集?

任何意見將不勝感激。

回答

2

您需要僅使用您的訓練集獲得.binaryproto文件,並在訓練,驗證以及測試時使用它。

這是因爲如果您採用所有圖像的均值,則您將在訓練期間向網絡間接提供有關驗證和測試圖像的性質的信息,這可能會幫助其執行更好的操作。

正如你可能知道的那樣,你需要將它添加到你的prototxt文件中的數據層transform_param下。

layer { 
    name: "data" #the name 
    # other attributes 
    transform_param { 
     mean_file: "path/to/training/binaryproto" 
    } 
} 

This questionstats.stackexchange.com也指相同的查詢,這也鏈接到this useful resource

相關問題