三、影像訓練

Web:AI 影像辨識分為 影像分類 以及 物件追蹤,可以使用 Web:AI 開發板拍攝影像上傳至 Webduino 影像訓練平台進行影像訓練,將訓練完成的模型下載,再使用程式積木執行影像辨識。

影像辨識流程

進行影像辨識的流程中,需要先分別建立影像分類,接著選擇要建立的模型種類 ( 影像分類、物件追蹤 ),並將分類放入模型中,就可以使用模型來進行影像辨識了。

A. 登入影像訓練平台

  1. 點擊連結進入 Webduino 影像訓練平台

    ![登入畫面](../assets/images/upload_c05bf863042a5e058ff175a0bdfc1ecf.png =600x)

  2. 點擊「Register」按鈕註冊帳號或使用 Google、FB 帳號直接登入。

    ![同意授權](../assets/images/upload_5c92d56778b31b686d9116fe16d79bfd.png =600x)

  3. 點擊「同意授權」,進入 Webduino 影像訓練平台。

B. 建立分類

  1. 在 Webduino 影像訓練平台中可以看到左側的側邊欄有「分類」和「模型」兩個選項,點擊「分類」進入分類列表。

    ![分類列表](../assets/images/upload_95f140f81372466c615d54ec195f0268.png =600x)

  2. 點擊藍色「新增」按鈕,跳出「建立分類」視窗。

    ![建立分類](../assets/images/upload_8a3c86c0cd8325837d4ccdddf39badb0.png =600x)

    • 輸入分類名稱,請勿輸入中文、空格、符號
    • 選擇分享狀態
    • 影像上傳方式點選「Web:AI」,進入下一步

    ![](../assets/images/upload_51dee50233ff9b3067dbde3e1179b8e7.jpg =600x)

    • 輸入要拍照的數量
    • 輸入 Web:AI 開發板的 DeviceID
    • 選擇是否旋轉鏡頭
      • 是:使用後鏡頭 ( 鏡頭在螢幕背面 )
      • 否:使用前鏡頭 ( 鏡頭和螢幕在同一側 )

    目前因為鏡頭旋轉功能外殼尚未上市,因此旋轉鏡頭選項不需勾選,敬請期待!

  3. 點擊「建立分類」按鈕

    ![](../assets/images/upload_26143c122bdc6adeac5cf1bb124805fa.png =600x)

  4. 看到「傳送指令成功」訊息,就可以開始使用 Web:AI 開發板拍照。

C. 使用開發板拍攝影像

傳送指令成功後,開發板會重新啟動,進入拍照模式。

拍照模式

  • 左上角白色數字:目前拍照張數

  • L 按鈕:拍攝照片

  • R 按鈕:調整白框大小

  • 中間白色方框:拍照時,讓拍攝物件跟方框相當大小

拍攝物件跟方框相當大小時按下 L 按鈕 拍攝,並且稍微轉動角度,拍攝不同角度影像。

上傳影像

  1. 拍完設定的照片數量後,畫面會變全黑,開始上傳圖片。

    ![](../assets/images/upload_bc218c4a4f6d483fed0da9390e9418d6.png =600x)

  2. 等待上傳完成後,畫面中央會顯示白色 ok,正下方顯示上傳時間。

    ![](../assets/images/upload_746aa7aef3c1e1fb295eb7470ad46a11.png =600x)

  3. 點擊視窗中的 ✕ 或「回到主畫面」,將視窗關閉。

建立 2~4 個分類

進行影像辨識時,模型內需要放入 2~4 個分類才能進行辨識,
因此重複上述 建立分類使用開發板拍攝影像 步驟,建立兩個以上的分類。

D. 建立模型

  1. 建立完分類後,在左側的側邊欄選擇「模型」,進入模型列表。

    ![模型列表](../assets/images/upload_23e1965f689c02c67697c9a98e97bb72.png =600x)

  2. 點擊藍色「新增」按鈕,跳出「新增模型」視窗。

    ![](../assets/images/upload_4aee1e16f5e3bd4278a1d948575f85c7.png =600x)

    • 輸入模型名稱,請勿輸入中文、空格、符號或使用過的名稱
    • 選擇模型種類 ( 影像分類、物件追蹤 )
      ![](../assets/images/upload_04e57bcc782a11a41b773fd0286a7fb7.png =560x)
    • 選擇分享狀態
    • 模型建立方式點選「挑選分類」
  3. 從分類列表中點選 2~4 個要進行影像辨識的分類,點擊「建立模型」。

    ![新增模型](../assets/images/upload_3d978d4eed334b5f7460c9d2a847be91.png =600x)

  4. 等待模型訓練完成後,就可以在模型列表中找到建立的模型,並且可以看到模型內的分類名稱以及模型種類

    ![](../assets/images/upload_e70d83463d16c7cc32c71c18eed6018f.png =600x)

    因為物件追蹤的演算法較複雜,因此訓練時間較久是正常的!

E. 下載模型

  1. 點擊要進行影像辨識的模型,跳出「模型選項」視窗。

    a. 點擊下載模型。

    ![模型選項](../assets/images/upload_421b3cf5d2bacd5a44e760e55acbaab2.png =600x)

    b. 輸入開發板 Device ID。

    ![](../assets/images/upload_85120262df264ff7c6ef18185de48ff0.jpg =600x)

    c. 點擊「下載模型」後傳送指令。

    ![](../assets/images/upload_8bb31a114b474f607cfd999f12b2de6d.png =600x)

  2. 點擊「下載模型」按鈕,出現「傳送指令成功」訊息即開始下載模型。

    ![下載模型](../assets/images/upload_4c9f64a09ca70542b7bd7cf1a83c276b.png =600x)

  3. 完成 100% 後,畫面會顯示 ok 字樣代表完成下載,就可以開始進行影像辨識了。

F. 使用程式積木執行影像辨識

在程式積木平台中,可以分別使用影像分類和物件追蹤積木,來達到不同的影像辨識。

影像分類

  1. 先依照上面步驟,將訓練過的影像分類模型下載到 Web:AI 開發板中。

  2. 開啟 Web:AI 程式積木平台。

  3. 使用「設定模型」積木,輸入模型名稱,

在陣列內放入和分類數量相同的積木,按照模型列表的分類順序輸入分類名稱
並將寬、高都輸入 224。

  • 使用 Webduino 影像訓練平台訓練的模型尺寸為 224*224。
  • 自行使用其它工具訓練,則需輸入各別的尺寸。

  1. 在下方加入「無限重複」積木,裡面放入「開始辨識影像」積木和「LCD 顯示文字」積木。

  2. 「LCD 顯示文字」積木內放入「字串組合」積木,後方放入「取得辨識到的影像 ( 名稱 )」積木、「文字」積木輸入底線、「取得辨識到的影像 ( 信心度 )」積木。

  3. 程式編輯完成後,按下右上角綠色「執行」按鈕,出現「正在努力搬運 Blockly 中...」和「正在組裝積木...」,讀取結束後 Web:AI 開發板會自動開啟辨識畫面。

  4. 使用鏡頭對準辨識物件就能看到文字顯示辨識結果和信心度。

    ![影像辨識結果](../assets/images/upload_18ff3d4a326a6123cb54fb20940150f9.png =600x)

若要使用其它模型來進行影像辨識,需要回到步驟 下載模型,再次下載模型。

物件追蹤

  1. 先依照上面步驟,將訓練過的物件追蹤模型下載到 Web:AI 開發板中。

  2. 開啟 Web:AI 程式積木平台。

  3. 使用「設定模型」積木,輸入模型名稱,

在陣列內放入和分類數量相同的積木,按照模型列表的分類順序輸入分類名稱
並將寬、高都輸入 224。

  • 使用 Webduino 影像訓練平台訓練的模型尺寸為 224*224。
  • 使用開發板預設的模型請輸入 320*240。
  • 自行使用其它工具訓練,則需輸入各別的尺寸。

  1. 在下方加入「無限重複」積木,裡面放入「開始偵測物件」積木和「LCD 顯示文字」積木。

  2. 編輯物件追蹤的相關程式,讓偵測時可以讀取到模型 ( 陣列 ) 內的分類,並且在螢幕上顯示需要的數值,如下圖設定:

  3. 將編輯好的程式放在「開始偵測物件」積木下方。

  4. 程式編輯完成後,按下右上角「執行」按鈕,出現「正在努力搬運 Blockly 中…」和「正在組裝積木…」,讀取結束後 Web:AI 開發板會自動開啟辨識畫面。

  5. 使用鏡頭對準辨識物件就能看到白框顯示辨識結果和座標。

    ![](../assets/images/upload_530ef50e37b082fdaea2397df9d0832f.png =600x)