「技術分享」 用 Google Vision API 一秒辨識中卷、軟絲、花枝、魷魚,不再當菜市場冤大頭

Khan Lee
OakMega大橡科技
Apr 6, 2019

這次想要利用 Google Vision API 做一個辨識中卷(透抽)、軟絲、花枝、魷魚的圖像辨識模型,非常適合沒有太多機器學習知識又需要上菜市場買菜的媽媽們閱讀。(我知道這個交集很可能是 null)

廢話不多說,Vision API 是 Google 開出來的一個服務,可以讓不會自己建立機器學習模型的人,也能輕易地建立一個圖片分類器。

想瞭解一下機器學習的可以看一下這一篇

這次練習齁,大概有以下幾個步驟,

  1. 申請 GCP 專案並打開 GCP AutoML
  2. 蒐集這些十腳軟體動物的圖片
  3. 在 GCP 建立一個 storage bucket 並上傳圖片
  4. 打開 AutoML 頁面動一動你的手指完成模型

是不是非常簡單啊?

開始之前,還是建議大家瞭解一下中卷、軟絲、花枝、魷魚以及章魚,有什麼差別,推薦大家看這個

好!開始第一步,申請 GCP,這邊麻煩大家直接看這個一步一步做。

申請完 GCP 後,還要去 AutoML 網頁確定是否有 Enable API。

完成後,我們就可以去 Google 抓一些中卷、軟絲……等等的圖片,並將他們分別存入我們預先開好的資料夾。資料夾形式如下

seafood - cuttlefish
- neritic
- softneritic
- squid
- octopus
  • cuttlefish 代表花枝
  • neritic 代表中卷(透抽、小卷)
  • softneritic 代表軟絲
  • squid 代表魷魚
  • octopus 代表章魚

抓圖片的時候,我是遇到了一些問題,就是太多圖片都是煮成料理的圖片,那將會影響我們圖像學習的效率,所以我挑了幾張,有興趣一起跟著做的來這邊下載吧!

解壓縮後應該會有五個已經有圖片的資料夾,另外加上一個 index.csv 還有 test.py。

index.csv 內容如下,

gs://first-850611-vcm/seafood/cuttlefish/0_demo.jpg,cuttlefish
gs://first-850611-vcm/seafood/cuttlefish/1_demo.jpg,cuttlefish
gs://first-850611-vcm/seafood/cuttlefish/2_demo.jpg,cuttlefish
gs://first-850611-vcm/seafood/cuttlefish/3_demo.jpg,cuttlefish
...

是待會要丟給 AutoML 的檔案。

test.py 則是為了要整理下載到的圖片以及產生 index.csv 所寫的 python 檔案。

如果你已經下載好我的壓縮檔案,恭喜你已經完成一半了!

第三步,我們要在 GCP Storage 開啟一個 bucket,名稱需要是

<your-project-id>-vcm

舉例來說,我開啟的 bucket 名稱就是 first-850611-vcm 這樣。

開啟後,我們在 first-850611-vcm 再建立一個名為 seafood 的資料夾,然後將 cuttlefish、neritic、softneritic、squid、octopus 還有 index.csv 都上傳上去 seafood 這個資料夾。

到這邊,我們完成了第三步!

最後一步,我們打開 AutoML 網頁,在右上角選擇你的專案名稱,並點擊 Get started with AutoML

接著我們點擊上方的 NEW DATASET 來增加要學習的資料。

輸入 Dataset name,隨意輸入可以辨識就好。

再選擇 Select a CSV 這個選項並且輸入

gs://<your-project-id>-vcm/seafood/index.csv

舉例來說像我就要輸入

gs://first-850611-vcm/seafood/index.csv

然後點擊 CREATE DATASET 等待訓練資料上傳。

上傳完後,將會顯示我們要訓練的圖片以及標籤!

跟著我們點擊上方的 TRAIN

他會警告說什麼,我們圖片太少啊~之類的。

身為一個工程師,贏要衝輸要縮,像這種就是沒在怕的硬訓練下去,一起勇敢地點下 START TRAINING

Training budget 選擇 free 方案,然後點擊 START

經歷了漫長的等待,我們 model 訓練好後,就可以點擊上方的 PREDICT 前往測試我們的 model 學習成果。

我們將分別上傳一張中卷和魷魚的照片來給 model 辨識。

這是中卷
這是魷魚

我們的 model 預測的結果如下圖

可以看到,Google 真的是非常的厲害啊!!!!!!!!!!!

我們還要機器學習工程師幹嘛?機器學習工程師都可以辭職去當魚販惹QQ

好拉!不得不說,Vision AutoML 真的很強,在這種少量圖片的情況下,還可以有這樣精準的學習成果。

這麼有趣的東西,絕對不能讓他在這邊停止,下一章我們繼續研究怎麼串接這個 model 的 API 讓這個模型可以真正的被新手媽媽給使用,讓新手媽媽再也不怕被婆婆罵中卷買成魷魚,成為解決婆媳問題的一把屠龍刀!!

工商時間:

如果貴司有需要在 LINE 聊天機器人上做任何與機器學習整合的功能,如:圖片辨識、語音辨識甚至是影片辨識,歡迎寄信到以下信箱詢問。

service@oakmega.com

--

--