|

就用OpenVINO 來推論Teachable Machine模型吧!(2022.1 版)

   
作者:Felix Lin

Intel OpenVINO 在今年(2022)迎來最大幅度的版本更新,除更便利開發者進行操作外,也對 API 進行優化,整題效能提升也支援 Dynamic Shape 和 Preprocessing 等(詳細改動項目可參閱 Jack 大撰寫的文章)。筆者在去年也寫過使用 Google Teachable Machine(下以 ”TM” 代稱)快速訓練模型並搭配 OpenVINO(當時版本為2021.4 LTS) 執行轉換與推論的文章。而於此時此刻若要用 OpenVINO 推論 Teachable Machine 模型又該如何呢?一起來了解看看吧!(註:筆者的開發環境為Ubuntu 20.04 + OpenVINO 2022.1,不同環境指令略有不同,但流程與操作原理都是相通的!)

STEP1: 訓練 Teachable Machine 模型

取得資料集 Dataset

為便利訓練模型,這次我們使用 TensorFlow flowers 這個小型資料集,總共有3670張影像。影像尺寸約在240x240上下,總體資料集大小為221MB,分類為以下五種類別:

  • daisy (雛菊)
  • dandelion (蒲公英)
  • roses (玫瑰)
  • sunflowers (向日葵)
  • tulips (鬱金香)

在終端機使用以下指令來取得資料集,並且將其解壓縮(也可以將網址貼在瀏覽器即可自動進行下載、於視窗操作搬移與解壓縮):

# 建立工作資料夾

mkdir ~/openvino_tm

cd ~/openvino_tm

# 取得 tf_flowers dataset

wget https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz

# 解壓縮資料夾於當前目錄

tar zxvf flower_photos.tgz -C .

訓練模型Training Model

開啟瀏覽器到TM網站,選擇標準尺寸的影像分類專案,並且使用檔案新增資料的方式,將資料集內各分類的照片上傳。由於資料集檔案數量相當多,而 TM 的遷移學習模型也不需要太多的資料量,故筆者這裡選擇各分類的前 100 張照片上傳作為訓練資料,其餘的可做後續測試資料使用。

訓練 Teachable Machine 影像分類模型

依序上傳完成並將類別名稱修改為對應的花名,即可點選 “Train Model” 按鈕,約莫一分鐘的時間即可訓練完成,過程中也請避免切換瀏覽器分頁或是執行其他高耗能運算。

匯出模型 Export Model

訓練完成後到Preview階段,可以先隨機從資料集撈幾張照片丟進去測試,看是否能順利做出正確分類。須留意的是,如果照片大小並非正方形上傳後會被裁切,可能會造成影像特徵消失而失準。

確認了模型可用性後即點選 “Export Model” 按鈕,並選擇 TensorFlow 的 saved model 格式,由於 TM 使用的框架是 TensorFlow.js,這邊需要等待一段時間進行轉換。轉換完成後會自動下載一個名為 converted_savedmodel.zip 的壓縮檔,裡面就是標準 TensorFlow 2 的儲存格式了,下一步就是要將其轉換為 OpenVINO 推論所使用的 IR (Intermediate Representation) 檔。

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Lin Felix

Author: Lin Felix

長期出沒在南部地區的Maker社群,致力於推廣從實作中學習的精神。熱愛胡搞瞎搞,喜歡嘗試新事物。現職為亞堤教育團隊講師與創客閣樓召集人。

Share This Post On

2 Comments

  1. Ciou Yu-Jyun

    mo –saved_model_dir model.savedmodel -s 127.5 –reverse_input_channels –mean_values [127.5,127.5,127.5] –input_shape [1,224,224,3]

    請教 我在執行這指令,沒有找到mo指令,我應該要到執行優化? 謝謝
    使用ubuntu

    Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *