2016-09-29 71 views
1

我需要一個(簡單)任務的人工神經網絡庫(最好是在Python中)。我想訓練它,以便它可以告訴我們一件事情在圖像中。我會通過餵養它大量的圖片,並告訴其還判定是否包含我正在尋找或沒有的事訓練它:基於真假的圖像識別的神經網絡庫

這些映像包含這個東西,返回True (或包含它的概率事情)

這些圖像不包含這個東西,返回False (或包含的東西它的概率)

這樣的圖書館是否已經存在?我對人工神經網絡和圖像識別相當陌生;雖然我理解他們兩人在原則上是如何工作的,但我發現很難爲此任務尋找一個合適的圖書館,甚至在這一領域的研究已被證明是一種挫敗感 - 任何有關正確方向的建議都是非常值得讚賞的。

+0

https://www.tensorflow.org/versions/r0.10/tutorials/index.html –

回答

2

Python中有幾種很好的神經網絡方法,包括TensorFlow,Caffe,Lasagne和sknn(Sci-kit神經網絡)。 sknn提供了一個簡單的開箱即用解決方案,但在我看來,定製更加困難,而且對於大型數據集可能會很慢。

需要考慮的一件事是,您是要使用CNN(卷積神經網絡)還是標準的ANN。使用ANN時,大多數情況下可能需要將圖像「展開」爲矢量,而使用CNN則希望圖像爲立方體(如果是彩色的,則爲正方形)。

以下是Python中的CNN上的good resource。但是,由於您並未真正在做一個多類圖像分類(爲此CNN是當前的黃金標準),並且做了更多的單個對象識別,您可以考慮使用轉換後的圖像方法,例如使用Histogram of Oriented Gradients (HOG)

在任何情況下,神經網絡方法(尤其是使用CNN)的準確性高度依賴於成功的超參數調整。不幸的是,在給定的情況下,超參數值(圖層的數量和大小,學習速率,更新規則,丟失百分比,批量大小等)是最優的還沒有任何一種通用理論。因此,準備好一個良好的培訓,驗證和測試集設置,以適應一個強大的模型。

-1

我不知道任何可以爲你做到這一點的圖書館。我使用了很多Caffe,並可以給你一個解決方案,直到你找到一個可以爲你做的單個庫。

我希望你對ImageNet有所瞭解,並且Caffe有基於ImageNet的trained model

這裏的理念是:

  • 定義什麼是the object。說object = "laptop"
  • objectoutput labels中時,使用Caffe的ImageNet訓練模型,更改代碼以顯示所需的輸出(您提到TRUEFALSE)。

這是我寫的ImageNet tutorial的鏈接。

這裏是你可以嘗試什麼:

  • 看看here。這是我在預測引擎中使用的ImageNet程序的精簡版本。
  • 在第80行中,您將獲得排名前1的預測輸出標籤。在第86行,你會得到前5名預測標籤。寫一行代碼來檢查object是否在output_label中,並根據它返回TRUEFALSE

我明白你正在尋找一個特定的圖書館,我會尋找它,但這是我會在開始時嘗試的。