我開發了一個用于圖像圖像分類的卷積神經網絡 (CNN)??晒┪沂褂玫臄祿鄬^?。ㄓ柧毤蜏y試集均約 35k 個圖像)。數據集中的每個圖像的大小各不相同。最小圖像為 30 x 77,最大圖像為 1575 x 5959。我看到了這篇關于如何處理大小不一的圖像的帖子。該帖子確定了以下處理不同尺寸圖像的方法?!癝quash”圖像意味著它們將被調整大小以適應特定尺寸而不保持縱橫比將圖像居中裁剪為特定尺寸。用純色填充圖像到平方大小,然后調整大小。上面的東西的組合這些似乎是合理的建議,但我不確定哪種方法最適合我的情況,其中圖像在尺寸上有顯著差異。我認為調整圖像大小但保持相同的縱橫比(每個圖像具有相同的高度),然后對這些圖像進行中心裁剪是有意義的。有沒有其他人有任何想法?
1 回答

喵喵時光機
TA貢獻1846條經驗 獲得超7個贊
第一個重要的事情是:調整大小會破壞圖像嗎?
盡管圖像大小不同,圖像中所需的元素是否都以相同的比例合理地排列?
如果是,則不應調整大小,使用具有可變輸入大小的模型(盡管有最小值)。
如果不是,調整大小會將您想要的元素帶到類似的比例嗎?
如果是:調整大??!
如果不是:最好考慮其他解決方案
當然,您可以擁有可以識別多種不同尺寸元素的模型,但是差異越大,模型就越強大(我相信這個說法非常合理)
Keras 為您提供了使用不同圖像尺寸的可能性(您實際上并不需要它們都具有相同的尺寸)。
為此,您只需要指定input_shape=(None,None,input_channels)
.
請注意,如果您要創建和合并分支,則需要注意兼容性。
但是,對于不同的形狀,您將無法使用Flatten
圖層。您將需要GlobalMaxPooling2D
或GlobalAveragePooling2D
。其他一些層也僅限于固定大小,但卷積、池化和上采樣層都可以。
困難的部分是你不能在一個 numpy 數組中放置不同的大小。然后你可以:
調整到相同大小的組,沒有太大的變化,使訓練更容易。
根本不一一調整圖像大小和訓練圖像
保持縱橫比并填充側面
但最佳答案取決于您的測試。
添加回答
舉報
0/150
提交
取消