Google Cloud使用筆記(六):使用 Cloud AutoML Vision訓練影像辨識模型(Tensorflow Lite)

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

#20200504更新Google官方課程:

請先:

1. 選定 Project 並確定有啟用 Billing account
2. 開啟 Cloud AutoML 以及 Storage 的 API

1. 進到該 Project 並打開 Cloud Shell
2. 在 Cloud Shell 輸入以下指令

gcloud config set project cloud-vision-api-on-birdsPROJECT=$(gcloud config get-value project) && BUCKET="${PROJECT}-vcm"#創建Bucket
gsutil mb -p ${PROJECT} -c regional -l us-central1 gs://${BUCKET}
PROJECT=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT \    --member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \    --role="roles/ml.admin" gcloud projects add-iam-policy-binding $PROJECT \    --member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \    --role="roles/storage.admin"

創立自己的圖片庫並進行標籤

  1. 進入到 AutoML Vision 的頁面
  2. 點選 新增資料集
### 20200224-12:38更新,我自己測試dataset.csv的方法是會產生一些奇怪錯誤的,建議可以直接使用方式1上傳圖片 ####匯入圖片的兩個方式(每種標籤(label)建議最少 100張圖片)(推薦)1.從本地端上傳圖片,支援 JPEG, PNG, ZIP (每次上傳最高 500張圖片),並且在bucket中建立資料夾(例如:Oriolus-chinensis與Oriolus-tenuirostris)。直接到映像檔的欄位進行標記(全選->標記成OOO),接著再上傳另一個label的圖片再進行標記。- (注意)1.1匯入圖片到映像檔需要一段時間,請耐心等待
— 2.建立CSV檔案,CSV檔案的內容範例如下,並上傳到GoogleStorage例如:dataset.csv(前方為檔案路徑,後方為標籤)(標籤盡量不要用任何符號,純字母就好)
gs://<project_ID>-vcm/OnionGingerGarlic/Onion/98.jpg,Onion
gs://<project_ID>-vcm/OnionGingerGarlic/Onion/99.jpg,Onion
gs://<project_ID>-vcm/OnionGingerGarlic/Ginger/1.jpg,Ginger
gs://<project_ID>-vcm/OnionGingerGarlic/Ginger/10.jpg,Ginger
- 2.1快速產生CSV資料的方法(若使用方法1可直接跳過)如果我們使用Python的Google圖片下載工具進行下載(google-images-download)
下載回來後,我們要如何將這些檔名快速變成文字資料呢?
1.建立file.bat的檔案,透過文字編輯工具加入以下內容REM
dir /b /on > list2.txt
雙擊執行後在list.txt中可以看到所有的檔案名稱,請自行刪除不要的檔名2.建立一個Python程式,加入以下內容:with open ('list2.txt','r') as f:
for i in f:
base_url = 'gs://project-ID-vcm/Oriolus-tenuirostris/'
final_url = base_url + i +',Oriolus_tenuirostris'
print(final_url)
此時第一個label的所有圖片路徑都已經產生了,我們先將它保存到dataset.csv的檔案當中,再進行第二個label的圖片路徑製作,以此類推直到完成所有的label

訓練模型

這部分就比前面的步驟輕鬆許多,只需點擊訓練->開始訓練

接著分別設定:
1.
模型名稱
2.Cloud Hosted(雲端API)或是Edge(離線使用)
3.模型成效(必須在準確度與執行速度上抉擇),我選擇Best trade-off
4.設定訓練時間(每個帳戶有15小時的免費訓練時間,以本專案為例,由於只有1000張圖片以內的關係,只需3小時就可完成)

評估模型

Image for post
Image for post

測試及使用

如下圖所示,我們可以將該模型:輸出成TF Lite、TensorFlow.js、Core ML、Container、Coral的格式。

也就是說可以在Android裝置上、網頁上、iOS及MacOS上、容器上及Coral運算棒上,使用這個影像分類模型。

也可以透過部署模型的方式,將這個模型變成線上API,直接使用。

Image for post
Image for post

Written by

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store