資料介紹
描述
注意:我已經(jīng)清理了代碼并升級(jí)了庫(kù),還創(chuàng)建了一個(gè)可以在您的計(jì)算機(jī)上運(yùn)行的本地版本。查看Github 存儲(chǔ)庫(kù)。
Teachable Machine是谷歌開(kāi)發(fā)的一款基于網(wǎng)絡(luò)的人工智能工具,可以讓你在沒(méi)有任何人工智能知識(shí)的情況下訓(xùn)練和使用人工智能模型。用于假人的 AI 工具。整潔,對(duì)吧?
但它可以做的不僅僅是簡(jiǎn)單地在網(wǎng)絡(luò)瀏覽器中展示機(jī)器學(xué)習(xí)嗎?它也可以是一個(gè)實(shí)用的工具嗎?
有趣的是,Teachable Machine 網(wǎng)站上有一個(gè)名為Tiny Sorter的演示,它使用p5.js (在線 JavaScript 編輯器/編譯器)與帶有伺服的 Arduino Leonardo 對(duì)話。所以完全有可能在你的電腦上運(yùn)行 AI 并做一些有用的事情。
本教程是關(guān)于如何讓 Teachable Machine AI 將其識(shí)別結(jié)果輸出到外部設(shè)備,例如微控制器。我的方法和 Tiny Sorter 演示的方法不一樣,但是原理是相似的。這對(duì)于那些對(duì)人工智能知之甚少但有興趣將其用于他們的創(chuàng)客或物理計(jì)算項(xiàng)目的人來(lái)說(shuō)尤其有用。
(注意:以下步驟僅在 Windows 10 上測(cè)試。)
這種方法的優(yōu)點(diǎn):
無(wú)需人工智能知識(shí)
快速、簡(jiǎn)單和免費(fèi)的模型訓(xùn)練/托管
幾乎不需要安裝任何東西
如果您已經(jīng)有電腦,成本相當(dāng)?shù)?/p>
只要您知道如何對(duì)它們進(jìn)行編程以讀取串行輸入并執(zhí)行操作,就可以在任何微控制器上使用
這種方法的缺點(diǎn):
必須在您的計(jì)算機(jī)上進(jìn)行識(shí)別,從而減少微控制器的范圍/移動(dòng)性
電腦需要互聯(lián)網(wǎng)連接
人工智能模型有局限性,可能會(huì)得到錯(cuò)誤的讀數(shù),無(wú)法進(jìn)一步定制
在微控制器端調(diào)試可能更困難
一些人工智能專(zhuān)家可能會(huì)告訴你這很可愛(ài),但不是真的。是的,好吧...
第 1 步:生成并上傳您的 AI 模型
當(dāng)你訓(xùn)練你的模型時(shí),我會(huì)使用 0 類(lèi)作為背景圖像(什么都沒(méi)有),然后要識(shí)別的東西會(huì)被命名為“1”、“2”、“3”……等等。這將使設(shè)備更容易讀取結(jié)果。
對(duì)于圖像識(shí)別,您可以移動(dòng)對(duì)象以提高 AI 準(zhǔn)確性,并且每個(gè)對(duì)象之間應(yīng)該有足夠的差異。
或者,如果您正在訓(xùn)練聲音識(shí)別模型,請(qǐng)確保首先輸入足夠的背景噪聲樣本。和上面一樣,我會(huì)把要識(shí)別的聲音命名為“1”、“2”、“3”......
模型完成訓(xùn)練后,單擊導(dǎo)出模型而不是選擇Tensorflow.js ->上傳。完成后復(fù)制模型鏈接。(目前聲音識(shí)別只能選擇 Tensorflow.js。)
第 2 步:準(zhǔn)備 p5.js 腳本
p5.j??s 腳本模板可以在這里找到:
圖像識(shí)別:https ://editor.p5js.org/krantas/sketches/IKUf43rB
聲音識(shí)別:https ://editor.p5js.org/krantas/sketches/3wZ9hAwG
或者你可以在這里找到完整的代碼。手勢(shì)識(shí)別版我沒(méi)做過(guò),不過(guò)應(yīng)該很容易修改。
這個(gè)腳本基本上是 Teachable Machine 和 p5.js 的示例代碼的組合??偣灿?個(gè)文件:
sketch.js(主要代碼)
index.html(導(dǎo)入庫(kù))
樣式.css
p5.serialport.js(串口功能)
您可以登錄 p5.js 并復(fù)制/保存您的腳本。您只需要更改兩個(gè)地方:
計(jì)算機(jī)上微控制器的串行端口(參見(jiàn)步驟 4)
您的模型的鏈接(步驟 1)
注意:稍后我會(huì)看看是否可以將這兩個(gè)代碼都更新到新的 p5.js 1.0。
記得把 COM__ 改成你的串口!
第 3 步:對(duì)您的微控制器進(jìn)行編程
您的設(shè)備(在本例中為 BBC micro:bit)將需要自己的程序才能讀取串行輸入并對(duì)其進(jìn)行處理。
串行輸出是字符串或字符,沒(méi)有換行符(如 \r\n)。
以下示例是通過(guò)點(diǎn)亮我的 BBC micro:bit 上的不同 LED 來(lái)指示接收到的圖像識(shí)別結(jié)果:
結(jié)果 1(BPI:bit ESP32 板)- 紅色 LED(引腳 0)
結(jié)果 2(帶屏蔽的 Arduino Nano 33 IoT)- 綠色 LED(引腳 1)
結(jié)果 3(Adafruit Metro M4 Express)- 藍(lán)色 LED(引腳 2)
結(jié)果 0(僅背景) - 白色 LED(引腳 8)
串口輸出波特率為 9600。由于 micro:bit 的默認(rèn)速率是 115200,所以我不得不一開(kāi)始就重新設(shè)置它。
?
let result = "" serial.redirect( SerialPin.USB_TX, SerialPin.USB_RX, BaudRate.BaudRate9600 ) basic.forever(function () { result = serial.readString() if (result == "0") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 1) } else if (result == "1") { pins.digitalWritePin(DigitalPin.P0, 1) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 0) } else if (result == "2") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 1) pins.digitalWritePin(DigitalPin.P2, 0) pins.digitalWritePin(DigitalPin.P8, 0) } else if (result == "3") { pins.digitalWritePin(DigitalPin.P0, 0) pins.digitalWritePin(DigitalPin.P1, 0) pins.digitalWritePin(DigitalPin.P2, 1) pins.digitalWritePin(DigitalPin.P8, 0) } })
?
第 4 步:連接設(shè)備的串行端口
下載并解壓p5.js串口控制程序。將您的設(shè)備連接到 USB 并運(yùn)行p5.serialcontrol.exe (適用于 Windows)。您可能必須將其設(shè)置為允許在您的防病毒程序中運(yùn)行。
程序啟動(dòng)后,打開(kāi)設(shè)備的串行端口。如果您不確定,請(qǐng)打開(kāi)設(shè)備管理器以查看它具有哪個(gè) COM 端口。
當(dāng)您需要將代碼閃存到板上時(shí),請(qǐng)記住關(guān)閉 p5.serialcontrol 中的 COM 端口!否則會(huì)被屏蔽。
在 p5.js 草圖中連接并設(shè)置串口后,一切都會(huì)好起來(lái)的。
第 5 步:利用 AI 的力量!
返回 p5.js 腳本編輯器并單擊運(yùn)行。片刻之后,腳本旁邊會(huì)出現(xiàn)一個(gè)網(wǎng)絡(luò)攝像頭窗口。您可能會(huì)看到設(shè)備的串口燈閃爍,表示它接收到的數(shù)據(jù)。
如果您忘記打開(kāi)串口,則不會(huì)發(fā)生任何錯(cuò)誤。p5.j??s 腳本將照常運(yùn)行。
在下面的演示中,我確實(shí)可以將圖像識(shí)別結(jié)果發(fā)送到我的 micro:bit:
這里的另一個(gè)演示是使用 Arduino Nano 和迷你伺服來(lái)指示聲音識(shí)別結(jié)果:(背景噪音不是結(jié)果。只有當(dāng)模型識(shí)別到某些東西時(shí)才會(huì)返回結(jié)果。)
結(jié)果 1(彈指) - 轉(zhuǎn)為 0 度
結(jié)果 2(鼓掌)——轉(zhuǎn)身 180 度
?
#include Servo myservo; char result; void setup() { Serial.begin(9600); myservo.attach(9); myservo.write(90); } void loop() { while (Serial.available() > 0) { result = Serial.read(); switch (result) { case '1': myservo.write(0); break; case '2': myservo.write(180); break; } } delay(100); }
?
我在最后添加了一個(gè)小延遲,因?yàn)樗欧枰恍r(shí)間來(lái)完成它的轉(zhuǎn)動(dòng)。
下面是基于 3 個(gè)標(biāo)簽控制兩個(gè) LED 的 Arduino 代碼。
?
char result = '0'; void setup() { Serial.begin(9600); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { if (Serial.available() > 0) { result = Serial.read(); } switch (result) { case '1': digitalWrite(7, HIGH); digitalWrite(8, LOW); break; case '2': digitalWrite(7, LOW); digitalWrite(8, HIGH); break; default: digitalWrite(7, LOW); digitalWrite(8, LOW); } }
?
遠(yuǎn)程控制的可能性?
可以控制不直接連接到計(jì)算機(jī)的東西。一種可能的方法是使用微控制器上的 HC-05 藍(lán)牙模塊作為無(wú)線串口。
如果您使用的是 micro:bit,您可以使用一個(gè)簡(jiǎn)單地通過(guò)“無(wú)線電”功能將結(jié)果重新發(fā)送給其他人。
- 人工智能是干嘛的 人工智能在金融行業(yè)的應(yīng)用 0次下載
- Nindamani:基于人工智能的機(jī)械除草機(jī)器人
- 物體檢測(cè)人工智能機(jī)器人
- 基于ESP32-CAM的人工智能機(jī)器人設(shè)計(jì)資料 3次下載
- 使用超聲波傳感器模塊制作非接觸式任何東西
- The Irrigator:人工智能驅(qū)動(dòng)的灌溉機(jī)器人
- 基于人工智能(AI)的巡線機(jī)器人
- 智能防盜防火及照明控制系統(tǒng)
- 基于DSP控制器的油氣安全智能巡檢機(jī)器人 41次下載
- 基于DSP和PC的農(nóng)業(yè)機(jī)器人控制系統(tǒng) 18次下載
- 人工智能的倫理智能體應(yīng)用及相關(guān)研究 7次下載
- 如何才能讓人工智能更加智能 2次下載
- 人工智能行業(yè)發(fā)展?fàn)顩r如何?人工智能行業(yè)研究報(bào)告詳細(xì)資料免費(fèi)下載 15次下載
- 企業(yè)如何使用人工智能來(lái)快速定位自己的用戶? 2次下載
- 機(jī)器人編程C語(yǔ)言與人工智能 0次下載
- 人工智能與機(jī)器人的區(qū)別 3055次閱讀
- 如何創(chuàng)建FPGA控制的機(jī)器人手臂 1152次閱讀
- 什么是人工智能?人工智能的分類(lèi)和應(yīng)用介紹 1.1w次閱讀
- 機(jī)器學(xué)習(xí)是如何工作的? 人工智能與機(jī)器學(xué)習(xí)實(shí)例 2081次閱讀
- 人工智能發(fā)展的條件有哪些 9029次閱讀
- 關(guān)于人工智能的機(jī)器學(xué)習(xí)一些知識(shí) 963次閱讀
- 人工智能與機(jī)器學(xué)習(xí)的區(qū)別 4213次閱讀
- 人工智能時(shí)代硬件和軟件如何彼此影響 1w次閱讀
- 淺談人工智能客戶服務(wù)的未來(lái) 4359次閱讀
- 人工智能帶給實(shí)際的作用 1.4w次閱讀
- 淺析人工智能技術(shù)在傳感器中的應(yīng)用 9644次閱讀
- 人工智能AI在機(jī)器人運(yùn)動(dòng)控制領(lǐng)域盤(pán)點(diǎn)簡(jiǎn)介 6948次閱讀
- 工業(yè)機(jī)器人和人工智能的區(qū)別詳細(xì)概述 8210次閱讀
- 人工智能之機(jī)器學(xué)習(xí)與深度學(xué)習(xí)介紹 875次閱讀
- 在軟件測(cè)試行業(yè)中機(jī)器人和人工智能到底承擔(dān)著什么重任 2398次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論