百度定製化影像開放平臺訓練評測

pythontab發表於2018-03-13

背景介紹

百度在去年11月推出了定製化影像訓練服務(https://ai.baidu.com/customize/app/model/)。隨著深度學習在影像處理方面的成熟,基於CNN的遷移學習被證明是非常有效的。越來越多的傳統業務和網際網路業務,都面臨著提高效率和自動化的業務升級需求。甚至在一些需要實時處理海量圖片的場合,例如電商圖片搜尋等場景,利用圖片搜尋到相似商品已經變得和文字搜尋一樣成為一個剛需了。

深度學習領域一直缺乏人才,傳統公司沒有辦法訓練自己的深度學習模型。並且,業務主導的公司往往沒有辦法積累幾十萬資料量來訓練一個深度學習的模型。頭部的AI公司往往在人才儲備和資料上有著無可比擬的優勢。因此,科技巨頭往往形成了一個資料和人才的壟斷地位。

今年初,Google推出了AutoML服務,它的目標是:無需機器學習專業知識和能力即可訓練高質量的定製化模型。自此,科技巨頭紛紛走入了壯士斷腕的陣列,犧牲自己的模型盈利空間,為非AI專業人士丟擲服務工具幫助他們生成屬於自己業務場景的模型。不過,如今Google的AutoML服務仍然是Alpha模式,網上也沒有看到任何文件說明。

這次百度推出了基於小樣本的影像訓練服務,而且把資料、建模、測試、部署、上線等一系列過程集合在了網站上。使用者只需要點點滑鼠即可得到屬於自己的模型,而且是免費的,可謂非常的良心。

訓練流程

訓練自己的模型其實非常容易,簡單地說,只要四步即可得到資料自己的模型。

百度_定製化影像訓練_深度學習_影像處理-1

1. 建立模型:登入百度賬號後提交基礎資訊,點選“建立模型”,填寫模型名稱和使用場景,即可開始建立模型。

 百度_定製化影像訓練_深度學習_影像處理-2

2. 上傳資料集:按照格式要求整理圖片,上傳訓練圖片壓縮包,完成訓練集準備。

百度_定製化影像訓練_深度學習_影像處理-3

3. 訓練模型:選擇資料集中的訓練資料,進行訓練,支援對同一模型多次迭代。

百度_定製化影像訓練_深度學習_影像處理-4

4.校驗模型:訓練完成後可進行效果校驗,提交校驗圖片,校驗模型準確度。

百度_定製化影像訓練_深度學習_影像處理-5

5. 模型上線: “訓練完成”的模型即可申請模型上線,預計當天即可完成上線,上線後在“我的模型”檢視“上線詳情”,獲得專有的定製影像識別API,同時參考API文件(http://ai.baidu.com/docs#/ImageClassify-API/564753d3)即可正常使用。

 百度_定製化影像訓練_深度學習_影像處理-6

6. 擴充套件訓練:後續如有識別型別擴充套件的需求,可以進入“資料集管理”,繼續上傳新的壓縮包,或者基於單個分類標籤進行擴充。

 百度_定製化影像訓練_深度學習_影像處理-7

訓練結果

所有模型的截圖

百度_定製化影像訓練_深度學習_影像處理-8

Caltech 101

地址:http://www.vision.caltech.edu/Image_Datasets/Caltech101/

101種物品識別。準確率95.18%,F1-score 0.93。總體準確度是可以接受的,我這裡開啟了具體結果檢視了一下每個類別的準確度:

木桶:精確度100.00% F1-score 1.00

百度_定製化影像訓練_深度學習_影像處理-9

螞蟻:精確度88.89% F1-score 0.89

百度_定製化影像訓練_深度學習_影像處理-10

錨:精確度81.82% F1-score 0.72

百度_定製化影像訓練_深度學習_影像處理-11

可以發現,模型的generalization能力還是不夠。對於簡單的、一致性比較高的物體識別率達到了100%。而對於複雜的螞蟻外形,可以看到準確度只有89%。對於複雜外形的錨,而且還經常有遮擋和伴隨物等情況下,模型能力進一步得到挑戰,準確度下降到了82%。這個網路也顯示了複雜度不夠的一些特點。也許用更加深一點的網路效果會更好。值得注意的是,F1下降到了0.72,說明recall的分數已經到了更加低的位置。也就是說,如果應用是遺漏損失比準確識別的收益高的場景,這個模型會造成比較大的損失。

Flowers(5 classes with 4242 images):

資料:https://www.kaggle.com/alxmamaev/flowers-recognition/data

準確率91.89% F1-score 0.92

百度_定製化影像訓練_深度學習_影像處理-12

可以看到,複雜影像,特別是數量不是單一的情況下,準確度下降的比較厲害。不過如果用人作為基準比較的話,還在非常可以接受的程度。

Food(20 classes x 1000 images):

資料:https://www.vision.ee.ethz.ch/datasets_extra/food-101/

準確率82.18% F1-score 0.82

百度_定製化影像訓練_深度學習_影像處理-13

這個資料集很有名氣,也很有挑戰性。因為食物不像花那樣有固定的樣式,形狀和材質都有很大的變化,而且還伴隨著配料、位置等不確定因素。對機器來說,難度可謂非常大。業界最好的結果,用到了ResNet或其他非常深的網路,在101分類和每類1000個樣本的情況下達到了90%以上的準確度。

最後是所有模型的截圖

百度_定製化影像訓練_深度學習_影像處理-14

總結

可見,百度的影像訓練服務,在一些場景下效果非常不錯,而在一些場景下顯得力不從心。不過,這已經是從零到一的飛躍,讓非AI人士也可以體會一把自己訓練模型的快感。並且真正的可以用來服務於自己的業務。真心為這些AI浪尖的兄弟們舉個大寫的贊。

建議

1.給出訓練過程的一些細節,例如資料上傳、訓練模型的進度,精確顯示可以減少等待的煩躁。

2.允許多個模型同時訓練,這樣客戶可以加快尋找到最優的訓練資料集的過程。

3.提供熱力圖(Heatmap),方便使用者對不同類之間結果進行觀察和理解。

4.可以給出網路架構的選項,不同的模型架構在的資料集上的表現也會不一樣。

5.給出一些技術文件,增加透明度。例如學習速度、Train和Validation set的比例、提前終止的條件、Optimizer的選擇等。

6.甚至讓一些超參可以手動調節,也許民間高手可以提供更優的引數集。


相關文章