caffe用matlab提特徵和python提特徵值不同?重要的地方要注意!看“後篇”理解處__python

來源:互聯網
上載者:User

前篇:自己的歪曲理解

前段時間用matlab提特徵,畢竟我是小白,matlab對我來講是最容易編程的了(雖然,大牛的變成結構很好,我的就只能浪費時間複雜度了,唉~~~),但是效果還是可以的。

最近需要用python來改寫代碼,從昨天白天到今天上午,我用python提出來的特徵竟然和matlab不一樣。。。。天哪。。。。怎麼可能呢。同樣的結構,同樣的參數,同樣的圖片,怎麼可能不一樣呢。

後來,我仔細對比了兩個代碼,發現了下面兩點需要特別注意的地方。

1. 注意,python中
transformer=caffe.io.Transformer({'data': net.blobs['data'].data.shape})
這句話中圖片的大小是(160,160,3)
之後transformer.set_transpose('data', (2,0,1))中圖片的大小變為(3,160,160)
而transformer.set_mean('data', np.load(meanFile))中,mean檔案的大小是(3,160,160),所以為了遷就mean檔案的維數,故意將data維數變換了一下。
但是,進caffe,維數要變成(160,160,3)啊,(好麻煩,但是大神肯定有好方法,我不知道,希望各位指點我~~~在這裡,xinyu謝過大家了~~~),所以,又加了一句transformer.set_channel_swap('data', (2,1,0))。這裡為什麼是(2,1,0),而不是(1,2,0),是因為要和我的matlab匹配,我的matlab裡是height*width*3的,所以這裡就是這樣的。這個大家提特徵的時候也要注意。
2. 特大注意。
matlab裡匯入圖片的時候是(0,255)的是把,但是。python匯入caffe裡的可不是哦。caffe.io.load_image(image)這句話中,caffe匯入的圖片是(0,1)的。
我天,我這一晚上加一上午,就發現了這一個問題,天哪。。。
是的,如果你想要和你的matlab一樣的結果,那麼,你的這裡要寫成caffe.io.load_image(image)*255。

經過折騰,終於一樣了。。。
這很重要,大家一定要留意了。

總結:
1 維數問題
2 caffe輸入圖片問題

後篇:網友的好心協助

以為自己特別有理的時候,出現了一位網上的朋友(csdn號:nusit_305,太感謝他了),告訴我我的理解是錯誤的,來自於我對python庫理解的不深刻,以及caffe python介面理解不深刻。誤導大家了。著實不好意思。

下面是正確解釋:

(1)python內建的映像庫讀入的映像是H*W*C維度順序,caffe是使用opencv,讀入的映像是C*H*W維度順序,io.set_transpose()功能是實現H*W*C轉換為C*H*W,這樣就統一成N*C*H*W的blob中資料格式。
(2)讀取的映像正常是RGB通道儲存,使用io.set_channel_swap()是將RGB轉換成BGR通道順序。
(3)不是caffe匯入的圖片是(0,1),原因是python介面使用的matplotlib庫,這個庫載入的圖片數值是[0,1],可以使用介面函數set_raw_scale(‘data’,255)實現[0,1]–>[0,255].

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.