日本黃瓜農場主如何使用深度學習和TensorFlow

banq發表於2016-09-07
毫不誇張地說機器學習和深度學習不只是限定在影像等領域,大概一年前,日本自動化移動工業的嵌入系統設計者Makoto Koike
開始幫助他的父母的黃瓜農場,將黃瓜按大小 形狀和顏色等屬性排序分類。

筆直且厚帶有鮮豔顏色的、表面有許多突起的黃瓜被認為是好黃瓜,能賣出高價格。(banq注:有一個個小突起的黃瓜反而賣得好,奇怪了,是買來吃得嗎?)

Makoto很快意識到,將黃瓜按這種標準進行分類排序是非常難的,特別是在黃瓜生長期間,每個黃瓜都有不同顏色、形狀、質量和新鮮度。

在日本,每個農場都有自己的分類標準,並沒有工業界統一標準,在Makoto的農場,他們將黃瓜分類到九個不同類別,這是由其母親做的,收穫季節每天花費8小時做這件事。

排序分類並不容易學習,你不僅要看大小和厚度,還有顏色、表面,小痕跡,是否彎曲,是否有突起,你花費數月時間學習,在繁忙季節也很難僱傭到兼職工人。

市場上有一些自動排序分類者,但是總是在效能和成本方面有限制,小農場不會使用。

Makoto決定自己建立這樣一個機器學習分類系統,下面是他黃瓜排序分類系統的流程圖:

Raspberry Pi3作為主要控制器,透過攝像頭獲取黃瓜的圖片,然後執行一個基於TensorFlow的小型神經元網路,用來檢測抓取的影像是否是一個黃瓜?然後將影像傳送到大型TensorFlow神經網路,這是執行在一個Linx伺服器上,能夠執行更細節的分類。

[img index=1]

Makoto使用TensorFlow案例程式碼Deep MNIST for Experts,只需要對卷積,Pooling池化和最終層進行很小修改,改變網路設計適應黃瓜影像的畫素格式和黃瓜型別數量。

Makoto花費三個月使用7000個由他母親挑選好的黃瓜圖片進行資料集訓練,但是顯然不夠,進行訓練時,識別準確率超過95%,但是實際應用時,降低到70%,一開始他以為這是神經網路的overfitting,也就是神經網路中一些模型只能適合小資料集。

第二個挑戰是,深度學習消耗很大計算機資源,當前排序這是有傳統的windows桌面PC來訓練神經網路模型,儘管將黃瓜圖片已經轉換到80x80的低解析度圖片,針對7000個圖片還是花費了兩三天完成訓練模型。降低解析度就不能識別顏色和表面情況,增加解析度會導致訓練時間延長。

為了提高深度學習,一些大型企業已經開始啟動大規模分散式訓練,但是伺服器成本相當高,Google提供的Cloud ML,這是一種低成本雲平臺用於訓練和預測,可以定製數百個雲伺服器使用TensorFlow進行訓練,你只要按需付費即可。這使得普通開發人員更方便進行深度學習開發。

Makoto熱切等待Cloud ML,這樣可以使用更高解析度圖片,使用更多黃瓜資料進行訓練,能夠改變神經網路各種配置引數和演算法提高識別精確度了。

How a Japanese cucumber farmer is using deep learn

相關文章