2017-07-07 136 views
1

我正在運行一個模型來檢測圖像中的一些有趣功能。我有一組圖像測量600x200像素。這些圖像具有我想識別的岩石碎片等特徵。設想一個覆蓋在圖像上的(4x12)網格,我可以使用註釋工具(如((4,9), (3,10), (3,11), (3,12)))手動生成註釋以識別圖像中感興趣的單元格。我可以用Keras構建一個CNN模型,將輸入作爲灰度圖像。但是,我應該如何編碼輸出。這似乎直覺對我的一種方法是把它當作形狀(12,4,1)的稀疏矩陣,只有有趣的細胞具有1,而其他都爲0我的CNN輸出層應該是什麼樣子?

  • 有沒有更好的方式來編碼輸出?
  • 最後一層應該是什麼激活功能?我正在使用ReLU作爲隱藏層。
  • 損失函數應該是什麼?將mean_squared_error工作?
+0

爲什麼不分割你的圖像,並用「小型網絡(4 * 12)」來劃分每個網格區域? –

+0

這些圖像從圓形鑽孔中展平。因此,我對正弦曲線模式感興趣,以識別有趣的地質特徵,而不是其他看起來相似但不是正弦曲線的岩石特徵。 –

回答

2

你的問題實在是類同探測和分割的問題(你可以看到它如here。您提出的方法是因爲在這兩種檢測與分割任務計算你所提出的特徵圖合理是一個平常的一部分。訓練管道但是 - 有幾個問題,你可能會遇到:

  • 內存問題:你需要以應對內存問題要麼處理稀疏張量或使用發電機,
  • 丟失和激活:Keras API目前不支持分段丟失和激活,因此您需要自行實施。 Herehere你可以找到一個關於如何解決這個問題的例子。

在僅檢測到的情況下(不對這一點進行分類),我會建議您使用sigmoidbinary_crossentropy。在分類softmaxcategorical_crossentropy的情況下。

當然 - 還有其他如何解決這個問題的方法。人們可以把它解決爲一種迴歸,你需要預測有什麼有趣的像素。但處理Keras中的變化輸入相當麻煩。

相關問題