爲了給出一點上下文:我對機器學習相當陌生,我已閱讀並看過一些關於CNN如何工作的教育視頻。如何處理CNN模型中的不同輸入大小
到目前爲止,我已經試過兩個模型,一個隨機的CNN模型和Google的Inception v3模型。我可以理解隨機的人CNN模型和那裏發生的事情。我不明白的是如何使它適用於不同尺寸或旋轉的不同輸出尺寸。讓我來解釋我在做什麼:
我基本上想要能夠將圖片(包含徽標)分類爲品牌。例如,你給我一張包含星巴克標誌的照片,我們的模型會告訴你它是星巴克。每張照片只有一個標誌(對於我的情況)。首先嚐試使用初始模型:嘗試20,000次迭代,使用2,000張星巴克收據圖片,2,000張沃爾瑪收據圖片和2000張與星巴克或沃爾瑪無關的隨機圖片,以便我也可以將圖片歸類爲「無論如何」。有88%的準確性,不夠好,交叉熵不低於0.4,然後我試圖從這些圖片裁剪標誌,並再次嘗試。這一次,在裁剪後的照片上它會像魅力一樣工作,但是在包含星巴克徽標或沃爾瑪的大圖片上,它會失敗。
與DeepLogo的方式同樣的事情:https://github.com/satojkovic/DeepLogo
它運作良好,具有32×32的圖片,但一旦我更改輸入的大小,它失敗。
我該如何克服這個問題?
編輯:我使用這個再培訓的盜夢空間模型之上:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/image_retraining
讓我們說你的網絡需要128 x 128的圖像。一旦獲得圖像,將其較短的一側調整爲128並保持縱橫比。採用128×128尺寸的各種(標記)作物來訓練一幅完全卷積的神經網絡,用於處理不同作物的圖像。在最後一層,您可以添加平均/最大池,然後添加一個FC層作爲分類器。 –
使用CNN時,您的輸入圖像應始終與您在網絡上搜索此尺寸圖像上的特徵所用的網絡相同。網絡的輸出在所有情況下都是相同的大小,因爲您爲網絡定義了一個具有大小的結構。 但是,您可以調整圖像大小並填充它們以保持相同的寬高比。 – Mathias
@ ParagS.Chandakkar啊我明白了,所以基本上都是遍歷圖片。我肯定會嘗試,但我有一個問題:假設我的標誌是128 x 128,我所有的訓練數據是128 x 128.現在我有一個1024 x 256圖片和該標誌,具有相同的大小( 128×128)存在於這張圖片中,如果我保持寬高比並調整大小,它會使標誌變小,我將無法對它進行分類。對? – Peyman