簡體   English   中英

神經網絡預處理過程中的圖像大小調整方法

[英]Image resizing method during preprocessing for neural network

我是機器學習的新手。 我正在嘗試從一組圖像(120 個品種的斯坦福犬組)創建一個輸入矩陣 (X) 來訓練卷積神經網絡。 我的目標是通過使每個像素成為單獨的列來調整圖像大小並將每個圖像變成一行。

如果我直接將圖像調整為固定大小,圖像會因擠壓或拉伸而失去其原創性,這並不好(第一種解決方案)。

我可以通過固定寬度或高度來調整大小,然后裁剪它(所有結果圖像的大小都與 100x100 相同),但可以裁剪圖像的關鍵部分(第二種解決方案)。

我正在考慮另一種方法,但我確定。 假設我想要每個圖像 10000 列。 我將調整圖像大小,使總像素數約為 10000 像素,而不是將圖像大小調整為 100x100。 因此,大小為 50x200、100x100 和 250x40 的圖像都將轉換為 10000 列。 對於 52x198 等其他尺寸,將考慮 10296 個像素中的前 10000 個像素(第三種解決方案)。

我上面提到的第三個解決方案似乎保留了圖像的原始形狀。 但是,由於並非所有圖像的大小都相同,因此在轉換為一行時可能會失去所有這些獨創性。 我想知道你對這個問題的評論。 如果您能將我指向我可以了解該主題的來源,那也將很棒。

解決方案 1(簡單地調整輸入圖像的大小)是一種常見的方法。 除非您的縱橫比與預期的輸入形狀非常不同(或者您的目標類具有嚴格的幾何約束),否則您通常仍然可以獲得良好的性能。

正如您所提到的,解決方案 2(裁剪圖像)的缺點是可能會排除圖像的關鍵部分。 您可以通過在原始圖像的多個子窗口上運行分類來解決這個問題(即,通過以適當的步幅水平和/或垂直跨過輸入圖像對多個 100 x 100 子圖像進行分類)。 然后,您需要決定如何組合您的多個分類結果。

解決方案 3 將不起作用,因為卷積網絡需要知道圖像尺寸(否則,它不知道哪些像素水平和垂直相鄰)。 因此,您需要傳遞具有明確尺寸(例如,100 x 100)的圖像,除非網絡需要從假定尺寸展平的數組。 但是,如果您只是傳遞一個包含 10000 個像素值的數組,而網絡不知道(或無法假設)圖像是 100 x 100、50 x 200 還是 250 x 40,則網絡無法應用卷積濾波器正確。

解決方案 1 顯然是最容易實現的,但您需要平衡更改圖像縱橫比的可能影響與運行和組合每個圖像的多個分類所需的工作量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM