【Arduino首次接觸就上手】快速執行AI圖像辨識

筆者之前出了一篇[LinkIt 7697也能玩AI圖像辨識][註1]文章,是有關於我們在Teachable

Machine網頁訓練出使用者需要的模型之後,可以匯出並部署於電腦上執行AI影像推論,最後於電腦終端再外接LinkIt 7697接受電腦指令來控制LED或伺服機…..等外接裝置,這樣就可以製作出很多很有趣的軟硬體專題喔。

於是筆者就想,如果將LinkIt 7697換成是【Arduino首次接觸就上手】套件呢?結果是可以的,而且程式都是差不多的,以下就來分享筆者是如何做出來的吧!

作者/攝影 許鈺莨
時間

20分鐘

難度

★★☆☆☆

材料表 機器人王國購買【Arduino首次接觸就上手】連結

  • 電腦*1台
  • Arduino首次接觸就上手*1組

硬體介紹

筆者所使用的【Arduino首次接觸就上手】套件非常的方便,所需的感測器都已經模組化,焊在開發板上,不需要額外使用傳輸線來連接(當然使用者要用開發板以外的感測器還是需要用傳輸線外接啦~)。下圖為【Arduino首次接觸就上手】套件介紹。

若要了解【Arduino首次接觸就上手】套件的詳細使用,請至CAVEDU教育團隊網站[註2]

專題說明

筆者使用【Arduino首次接觸就上手】套件的無源蜂鳴器及OLED顯示模組,當電腦辨識到不同圖像時將會發出不同聲音及OLED會顯示不同的物件名稱。

  • 流程圖

專題步驟解說

  • AI圖像辨識的模型訓練完成並匯出至電腦

本篇所訓練的模型是在Teachable Machine網頁訓練完後,匯出至電腦,使用者可以根據自己的專案需求來訓練出不同的模型,但固定為四種不同類別。以本篇為例,順序分別是LinIt7697、Raspberry、Mouse、Other (反指標,前三類之外的類別)。建議類別順序要先定義好,因為會影響到Arduino程式。

 

模型訓練並匯出至電腦的作法請參閱[LinkIt 7697也能玩AI圖像辨識][註1]文章。

LinIt7697 Raspberry Mouse Other(我的手)

這邊也提供Teachable Machine網頁訓練專案的小提醒,也強烈建議使用者養成這個習慣,若使用者做到一個階段要交給下一個人沿用,或是使用者想要擴充類別的話,可以將網頁的圖片收集專案存成副檔名為.tm的檔案,欲訓練時可以將檔案重新上傳,重點是不怕網頁突然斷線,或當機而重新收集Dataset。

步驟1-1:若圖片收集完成,將Teachable Machine網頁檔案下載到電腦端

步驟1-2:將.tm檔案上傳到Teachable Machine網頁

步驟1-3:檔案資料夾改名稱

若訓練完畢的模型,下載後檔案會命名為converted_tflite_quantized.zip,為了不要和其他的模型檔搞混,請解壓縮後更改資料夾名稱,資料夾中會有label.txt和model.tflite檔案。以本篇為例,筆者將資料夾更改為first_arduino_model

  • 【Arduino首次接觸就上手】的前置作業

步驟2-1:下載Arduino首次接觸就上手-圖形化介面軟體[註3]

建議下載到C磁碟機根目錄中。

使用【Arduino首次接觸就上手】套件前,必須要先下載圖形化介面軟體,因為筆者是要使用圖形化介面軟體解壓縮後,裡面所夾帶Arduino IDE 1.8.5版本的編譯器來撰寫。

步驟2-2 : 安裝【Arduino首次接觸就上手】的驅動程式[註4]

燒錄程式前時,電腦需要安裝驅動程式才能跟【Arduino首次接觸就上手】溝通,之後再執行AI圖像辨識也會需要。

 

步驟2-3:下載程式並改寫程式 [註5]

下載後,請解壓縮至C槽根目錄的testAI資料夾中,因最後會與執行Python程式的指令有關。

先將OLED_tone_AI.ino程式開啟,並改寫程式,需對照模型檔資料夾中的label.txt順序。以本篇辨識的物品名稱為例,顯示改寫行數如下圖所示。

請改寫7~10行程式,此為設定【Arduino首次接觸就上手】OLED顯示的字。

步驟2-4:將程式上傳至【Arduino首次接觸就上手】

將【Arduino首次接觸就上手】與電腦用USB連接起來後,先到”裝置管理員”看序列埠號,以筆者為例,序列埠號為COM3。

已經知道序列埠號為COM3後,再到Arduino IDE中,找到Tools🡪COM,選擇COM3

之後按箭頭上傳程式。

  • AI圖像辨識結合【Arduino首次接觸就上手】

前面提到過,最後將執行Python檔案,在電腦上進行圖像辨識後,硬體裝置會因為電腦辨識到的物品而有相對應的輸出,以下說明執行程式的指令。

當然【Arduino首次接觸就上手】依舊還是要連接在電腦,而由前段文章已知序列埠號為COM3,接下來執行Python檔案。

步驟3-1:切換至範例資料夾

開啟Anaconda Prompt(testAI)視窗後,在視窗中輸入指令

行數 指令
1 >cd \
2 >cd testAI\ALL_code

步驟3-2:執行Python檔案指令

指令
>python TM2_WEBCAM_adv_4_item_first_Arduino.py –model first_arduino_model –video 0 –com 3

說明:

模型存放資料夾:來自Teachable Machine匯出 Tensorflow Lite 模型所設定的資料夾。

攝影機編號:每個攝影機在電腦的編號可能都會不盡相同,使用者需自行測試確認。

序列埠編號 : 為電腦與LinkIt7697溝通的USB燒錄的編號。

 

執行成果

 

影片展示

 

相關文章與資源連結
[註1] LinkIt 7697也能玩AI圖像辨識: 

https://blog.cavedu.com/2020/12/15/linkit-7697-ai/

[註2] 【Arduino首次接觸就上手】詳細介紹

https://cavedu.com/2020/11/23/grove-beginner-kit-for-arduino/

[註3]【Arduino首次接觸就上手】-圖形化介面軟體下載

連結: https://drive.google.com/drive/folders/1iHQyfQvjbS4lhob-3mF5auntte_G86_f

[註4]【Arduino首次接觸就上手】的驅動程式下載

連結: https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

[註5] 【Arduino首次接觸就上手】所有程式碼下載

連結: https://pse.is/3tmpgg

 

2 thoughts on “【Arduino首次接觸就上手】快速執行AI圖像辨識

發佈留言

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