1259 views
#### 回到 [`教學大綱`](https://md.kingkit.codes/s/siSKyknlU) / [`Web:AI 程式積木`](https://md.kingkit.codes/s/X4vMmbtp_) <style> blockquote.announcement { background-color: #f4aa14; height: 50px; width: 100%; display: flex; justify-content: center; border-left: none; } blockquote.announcement p { color: white; height: 100%; align-items: center; display: flex; } .announcement a { background-color: rgba(0, 0, 0, 0.2); text-decoration: none; padding: 6px 16px; border: 1px; border-radius: 8px; color: #fff; line-height: 30px; } </style> <blockquote class="announcement"> <p> Webduino 學習手冊網站即將改版,提供您更好的閱讀體驗!<a href="https://resource.webduino.io/docs/webai" target="_blank" rel="noopener" >搶先試用</a > </p> </blockquote> # 物件追蹤 Web:AI 影像辨識分為 **影像分類** 以及 **物件追蹤**,可以使用 Web:AI 開發板拍攝影像上傳至 Webduino 影像訓練平台進行影像訓練,將訓練完成的模型下載,再使用程式積木執行影像辨識。 本章節將會介紹「物件追蹤」積木的使用方式。 ## 下載物件追蹤模型 在使用物件追蹤前,需要先訓練好模型,並下載至開發板中,訓練流程歡迎參考:[三、影像訓練](https://md.kingkit.codes/s/mopjgVaZU)。按照步驟下載後,就可以使用「物件追蹤」積木進行操作了。 另外,也可以直接使用已經訓練完成的「小怪獸模型」,內建在開發板中不需要重新訓練及下載模型。 ## 設定物件追蹤模型 在操作物件追蹤前,需要先使用「設定物件追蹤模型」積木對模型作設定。 ![](/uploads/upload_97f798f5724f2a66ecc226e130018997.jpg) - 模型:物件追蹤使用的模型。 - 分類:模型中的分類,使用半形逗號「,」分隔。 - 辨識門檻:物件追蹤的精準度,門檻越高代表偵測越像才會辨識成功,預設為 0.5。 - 鏡頭反轉:在使用特定外殼時會有前後鏡頭功能,因此需要勾選讓鏡頭反轉,避免畫面上下顛倒。 > 如果是使用無外殼的 Web:AI 開發板,使用預設的不勾選。 - 寬高:影像的尺寸大小。 1. 內建「小怪獸模型」,使用的尺寸: - 寬:320 - 高:224 2. [Webduino 影像訓練平台](https://vision.webduino.io/) 訓練的模型,使用的尺寸: - 寬:224 - 高:224 3. 使用自行訓練的模型,需要手動輸入。 在「設定物件追蹤模型」積木中可以選擇要使用的模型,選擇的模型必須和下載到開發板中的板子一致,才能順利進行辨識。 ![](/uploads/upload_21d3cc0c20de32a7f4c57215bc3d776e.png) 選擇模型方式又會依據使用的平台及建立方式而不同,如下: - ### 選擇模型 ( 線上版 ) 點擊「模型」,可以從下拉選單中選擇想使用的模型,選單中的模型會根據 [Webduino 影像訓練平台](https://vision.webduino.io/) 列出可使用的影像分類模型,也可以選擇開發板內建的 **小怪獸模型 ( 預設模型 )**。 ![](/uploads/upload_dbf7e9a32bb8838a990fa3dd489b3592.jpg) - ### 選擇模型 ( 安裝版 ) 在「模型」中手動輸入,並將「分類」反白複製後貼上。 > 因為分類的順序會影像到是否能正常辨識,為確保順序正確,建議直接將分類反白複製。 ![](/uploads/upload_ae8f3f322f44afec3e12d1f4c56b5ccc.jpg) - 使用小怪獸模型 ( 預設模型 ) 1. 使用「設定模型積木」。在「模型」中手動輸入模型名稱 monster 2. 在「分類」中手動輸入分類 green,yellow,red,blue 2. 辨識門檻:0.1 ( 建議 ) 3. 鏡頭反轉:在使用特定外殼時會有前後鏡頭功能,因此需要勾選讓鏡頭反轉,避免畫面上下顛倒。 > 如果是使用無外殼的 Web:AI 開發板,使用預設的不勾選。 5. 寬高:影像的尺寸大小。寬:320;高:224。 填寫範例: ![](/uploads/upload_6ee323b7c20f5f63ee1c17a88b87d5d0.png) - 使用 Webduino 影像訓練平台訓練的模型 1. 使用「自訂模型積木」。 2. 填寫分類:在影像訓練平台選擇欲使用的模型,將「分類」反白複製後貼上。 > 因為分類的順序會影像到是否能正常辨識,為確保順序正確,建議直接將分類反白複製。 ![](/uploads/upload_ae8f3f322f44afec3e12d1f4c56b5ccc.jpg) 3. 填寫 anchor 資訊:在影像訓練平台點擊欲使用的模型,選擇「模型資訊」>「複製」。將複製的內容,填入積木的「anchor」欄位。 ![](/uploads/upload_fadf2d8f933321a03585abc2a596fdc1.gif) 3. 辨識門檻:0.5 ( 建議 ) 4. 鏡頭反轉:在使用特定外殼時會有前後鏡頭功能,因此需要勾選讓鏡頭反轉,避免畫面上下顛倒。 > 如果是使用無外殼的 Web:AI 開發板,使用預設的不勾選。 6. 寬高:影像的尺寸大小。寬:224;高:224。 填寫範例: ![](/uploads/upload_bb721bf21d8688f16b00f2c0e35b6953.png) - ### 選擇模型 ( 新增自訂模型 ) 如果是自行將模型燒錄進開發板,或是將模型檔案放在 SD 卡中,就需要使用「新增自訂模型」,如下方步驟: 1. 點擊「新增自訂模型」。 2. 輸入模型名稱,按下確定。 3. 模型選單中出現自訂模型,後方會標示 **( 自訂 )** 4. 在「分類」填入自訂模型的分類順序 ## 開始偵測物件 使用「開始偵測物件」積木來觸發影像辨識的進行。 因為這塊積木代表觸發 1 次物件追蹤,如果需要重複觸發,就需要在外層放上「無限重複」積木。 ![](/uploads/upload_27aa790cf95ff9db5294d9df1b840e8b.png) ## 取得所有物件 當開始辨識時,使用「取得所有物件」積木來取得偵測到的物件。 積木裡面需要填入分類的名稱。 ![](/uploads/upload_41c2c3450b6a2e6766038edb6a535789.png) 使用時可以搭配「變數」積木,讓後續程式更方便撰寫,如下方程式為:將偵測到的「分類 green」用變數命名為「objGroup」。 ![](/uploads/upload_c64000adb0b2347ae0d3d749d4e1b51e.png) ## 物件資訊 當開始辨識時,可以使用「物件資訊」積木來顯示辨識到的資訊,包含:x 座標、y 座標、寬、高、信心度。( 信心度最高為 1、最低為 0,若信心度越高,代表偵測錯誤的可能性越低。) > 因為影像訓練辨識的結果會落在一個區間範圍內,若信心度為 90%,代表有 90% 的機率真正的結果會落在這個區間範圍內。 ![](/uploads/upload_88123d415bc525a5ca7d6d5de7660644.png) ## 範例:物件追蹤內建小怪獸模型 #### ➤ 前往 [`範例連結`](https://ai-blockly.webduino.io/?hashid=vzYQQQZjm6#/) 1. 先選擇要使用的模型,如範例是使用開發板內建的小怪獸模型「monster ( 預設模型 )」。 > 如果不使用內建模型,就需要先從 [Webduino 影像訓練平台](https://vision.webduino.io/) 下載。 > 有關如何訓練影像模型,歡迎參考:[三、影像訓練](https://md.kingkit.codes/s/mopjgVaZU)。 2. 使用「設定物件追蹤模型」積木,選擇使用的模型。 ![](/uploads/upload_ff8eb029745adb0bb1d5102eb1609e8f.png) 3. 使用「無限重複」積木,放入「開始偵測物件」積木,代表不斷觸發物件追蹤。 ![](/uploads/upload_5c554f74a0d25541309ca409ed40c63d.png) 4. 使用「變數」積木,將偵測到的所有「分類 green」命名為「greenGroup」。 ![](/uploads/upload_a047c40154e91ae194d63539628e697b.png) 5. 使用「邏輯」積木及「陣列長度」積木,當偵測到的「green」數量 ≥ 1,會執行後方程式。 > 當鏡頭偵測到的綠色小怪獸數量 ≥ 1,就會執行後方程式。 ![](/uploads/upload_be9fd458ac6eb9dedc9118cc4b80a22c.png) 6. 在執行後方放入「變數」積木,將「陣列 greenGroup」的第一項命名為「green」。 > 因為物件追蹤可以同時追蹤多個物件,但是只能同時顯示單一物件的資訊,所以設定為「陣列 greenGroup」中的第一個。 ![](/uploads/upload_6943d7d1fc6dde1d9dbdabe0065dc54f.png) 7. 在後方放入「顯示文字」積木,顯示「變數 green」的資訊。 > 當偵測到綠色小怪獸時,顯示「Green Monster!( x 座標,y 座標 )」 ![](/uploads/upload_2e1df523b6b44510fa94d7d4e847c313.png) 8. 將積木組合後,按下部署即可追蹤小怪獸,並顯示綠色小怪獸的座標位置。 ![](/uploads/upload_b0a73531d00d5e1d4ce5f622ee83929e.png) 9. 另外再重複步驟 4~7,將放入其它 3 隻小怪獸的程式,按下部署後即可追蹤 4 隻小怪獸,並顯示座標位置。 ![](/uploads/upload_254d4929a77ea282371f5cf89b10a34b.png) > 因為程式設計方式,所以同時追蹤 4 隻小怪獸時只會顯示綠色小怪獸的資訊。