資料介紹
描述
垃圾分類器項目,被親切地稱為“它去哪兒了?!”,旨在讓扔?xùn)|西更快、更可靠。
該項目使用在Lobe中訓(xùn)練的機(jī)器學(xué)習(xí) (ML) 模型, 這是一個對初學(xué)者友好的(無代碼!)ML 模型構(gòu)建器,用于識別對象是否進(jìn)入垃圾、回收、堆肥或危險廢物。然后將該模型加載到 Raspberry Pi 4 計算機(jī)上,使其可以在任何可能找到垃圾箱的地方使用!
本教程將指導(dǎo)您如何使用 Python3 中的 Lobe TensorFlow 模型在 Raspberry Pi 上創(chuàng)建自己的垃圾分類器項目。
難度:初學(xué)者++(一些關(guān)于電路和編碼的知識很有幫助)
閱讀時間:5分鐘
構(gòu)建時間:60 - 90 分鐘
成本:~70 美元(包括 Pi 4)
在我們開始之前
此項目假設(shè)您從無頭配置中完全設(shè)置的 Raspberry Pi 開始。???這是一個初學(xué)者友好的指南,介紹如何做到這一點。
它還有助于了解以下內(nèi)容:
1.熟悉樹莓派
- ?這里有一個方便的入門指南!
- 也很有幫助:?Pi 相機(jī)入門
2.閱讀和編輯Python代碼(你不需要從頭開始編寫程序,只需編輯)
3.閱讀Fritzing接線圖
4.使用面包板
找出你的垃圾去哪里
美國的每個城市(我假設(shè)是全球)都有自己的垃圾/回收/堆肥/等。采集系統(tǒng)。這意味著要制作準(zhǔn)確的垃圾分類器,我們需要 1) 構(gòu)建自定義 ML 模型(我們將在下一步中介紹這一點——無需代碼!)和 2) 知道每塊垃圾的去向。
由于我并不總是知道我用來訓(xùn)練模型的每個項目的正確垃圾箱,我使用了上面顯示的西雅圖公用事業(yè)傳單,還有這個方便的“它去哪里了?” 西雅圖市的查找工具!通過查找您所在城市的垃圾收集實用程序并仔細(xì)閱讀其網(wǎng)站,查看您所在城市的可用資源。
在 Lobe 中創(chuàng)建自定義 ML 模型
![pYYBAGNkdsKAbl5eAACvNMRtjYA983.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdsKAbl5eAACvNMRtjYA983.png)
什么是洛貝?
Lobe是一款易于使用的工具,擁有將機(jī)器學(xué)習(xí)理念變?yōu)楝F(xiàn)實所需的一切。向它展示您希望它做什么的示例,它會自動訓(xùn)練一個自定義機(jī)器學(xué)習(xí)模型,該模型可以為邊緣設(shè)備和應(yīng)用程序?qū)С觥?/font>它不需要任何經(jīng)驗即可開始。您可以免費在自己的計算機(jī)上進(jìn)行訓(xùn)練!
以下是有關(guān)如何使用 Lobe 的快速概述:
1. 打開 Lobe 程序并創(chuàng)建一個新項目。
![pYYBAGNkdsWAIDlJAADUfVRdIAg391.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdsWAIDlJAADUfVRdIAg391.png)
![poYBAGNkdsiAMYcSAABY7cUfwsE614.png](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdsiAMYcSAABY7cUfwsE614.png)
2. 拍攝或?qū)胝掌⑺鼈儤?biāo)記為適當(dāng)?shù)念悇e。稍后我們將在項目的軟件部分需要這些標(biāo)簽。
導(dǎo)入照片有兩種方式:
- 直接從您的計算機(jī)網(wǎng)絡(luò)攝像頭拍攝物品照片,或
從您的計算機(jī)導(dǎo)入現(xiàn)有照片(通過單張照片或文件夾/數(shù)據(jù)集上傳)。
- 請記住,照片文件夾名稱將用作類別標(biāo)簽名稱,因此請確保它與任何現(xiàn)有標(biāo)簽匹配!
- 從您的計算機(jī)導(dǎo)入現(xiàn)有照片(通過單張照片或文件夾/數(shù)據(jù)集上傳)。請記住,照片文件夾名稱將用作類別標(biāo)簽名稱,因此請確保它與任何現(xiàn)有標(biāo)簽匹配。
另外:我最終使用了這兩種方法,因為您擁有的照片越多,您的模型就越準(zhǔn)確。
![poYBAGNkdsuAfWU2AAHuyNki8O0556.png](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdsuAfWU2AAHuyNki8O0556.png)
![pYYBAGNkds6AVJokAAHiMZ65KBI527.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkds6AVJokAAHiMZ65KBI527.png)
3.使用“播放”功能測試模型的準(zhǔn)確性。更改距離、照明、手的位置等,以識別模型的準(zhǔn)確位置和不準(zhǔn)確位置。根據(jù)需要添加更多照片。
![pYYBAGNkdtCAUO2gAAA6ci_t4r4055.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdtCAUO2gAAA6ci_t4r4055.png)
4. 準(zhǔn)備就緒后,以TensorFlow (TF) Lite 格式導(dǎo)出 Lobe ML 模型。
![pYYBAGNkdtOAFY9OAAED7v0lLWI397.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdtOAFY9OAAED7v0lLWI397.png)
提示:
在導(dǎo)入照片之前,列出您需要的所有類別以及如何標(biāo)記它們(例如“垃圾”、“回收”、“堆肥”等)
- 注意:使用與上面“Lobe Model Labels”照片中所示相同的標(biāo)簽,以減少您需要更改的代碼量。
- 在導(dǎo)入照片之前,列出您需要的所有類別以及如何標(biāo)記它們(例如“垃圾”、“回收”、“堆肥”等)注意:使用與“Lobe”中所示相同的標(biāo)簽?zāi)P蜆?biāo)簽”照片,以減少您需要更改的代碼量。
- 包括一個“非垃圾”類別,其中包含照片中可能包含的任何其他內(nèi)容(例如您的手和手臂、背景等)
- 如果可能,從 Pi 相機(jī)拍照并導(dǎo)入 Lobe 。這將大大提高模型的準(zhǔn)確性!
- 需要更多照片嗎?查看Kaggle上的開源數(shù)據(jù)集,包括這個垃圾分類圖像集!
- 需要更多幫助?在 Reddit 上與Lobe 社區(qū)聯(lián)系!
建造它:硬件!
![pYYBAGNkdteAKUTWAAYO9TZ8IsU775.jpg](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdteAKUTWAAYO9TZ8IsU775.jpg)
1. 小心地將 Pi 相機(jī)連接到 Pi(訪問Pi Foundation 入門指南了解更多信息)。
![poYBAGNkdtqAbL2YAAJJPoQrUA8174.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdtqAbL2YAAJJPoQrUA8174.jpg)
2. 按照接線圖將按鈕和 LED 連接到 Pi GPIO 引腳。
- 按鈕:將按鈕的一個引腳連接到 GPIO 引腳 2。通過電阻器將另一個引腳連接到 GPIO GND 引腳。
- 黃色 LED :將正極(較長)腿連接到 GPIO 引腳 17。通過電阻器將另一腿連接到 GPIO GND 引腳。
- 藍(lán)色 LED :將正極連接到 GPIO 引腳 27。通過電阻器將另一條連接到 GPIO GND 引腳。
- 綠色 LED :將正極連接到 GPIO 引腳 22。通過電阻器將另一條連接到 GPIO GND 引腳。
- 紅色 LED:將正極連接到 GPIO 引腳 23。通過電阻器將另一條連接到 GPIO GND 引腳。
- 白色 LED :將正極連接到 GPIO 引腳 24。通過電阻器將另一條連接到 GPIO GND 引腳。
3. 建議在焊接或永久連接之前在面包板上測試您的電路并運行程序。為此,我們需要編寫并上傳我們的軟件程序,所以讓我們進(jìn)行下一步吧!
編碼:軟件!
1. 在您的 PC 上,打開WinSCP 并連接到您的 Pi。在 Pi 的主目錄中創(chuàng)建一個 Lobe 文件夾,并在該目錄中創(chuàng)建一個模型文件夾。
2. 將生成的 Lobe TF 文件夾內(nèi)容拖到 Pi 上。記下文件路徑:/home/pi/Lobe/model
3. 在 Pi 上,打開終端并通過運行以下 bash 命令下載適用于 Python3 的 lobe-python 庫:
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_armv7l.whl
pip3 install lobe
![pYYBAGNkdt6AYPZBAAGZwAoZkOM056.png](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdt6AYPZBAAGZwAoZkOM056.png)
4. 從此repo下載垃圾分類器代碼 (rpi_trash_classifier.py)到 Pi 上(單擊“代碼”按鈕,如圖 1 所示)。
- 喜歡復(fù)制/粘貼?在此處獲取原始代碼。
- 喜歡下載到您的計算機(jī)上?將存儲庫/代碼下載到您的計算機(jī)上,然后通過 WinSCP(或您首選的遠(yuǎn)程文件傳輸程序)將 Python 代碼傳輸?shù)?Pi。
5. 將硬件連接到 Pi 的 GPIO 引腳后,通讀示例代碼并根據(jù)需要更新任何文件路徑:
- 第 29 行:Lobe TF 模型的文件路徑
- 第 47 和 83 行:通過 Pi 相機(jī)捕獲的圖像的文件路徑
6. 如有必要,更新代碼中的模型標(biāo)簽以與您的 Lobe 模型中的標(biāo)簽完全匹配(包括大小寫、標(biāo)點符號等):
- 第 57 行:“垃圾”
- 第 60 行:“回收”
- 第 63 行:“堆肥”
- 第 66 行:“危險廢物設(shè)施”
- 第 69 行:“不是垃圾!”
7. 在終端窗口中使用 Python3 運行程序:
python3 rpi_trash_classifier.py
測試它:運行程序!
![poYBAGNkduCAMCj-AABCnNvXb-g902.png](https://file.elecfans.com/web2/M00/77/81/poYBAGNkduCAMCj-AABCnNvXb-g902.png)
計劃概述
首次運行程序時,加載 TensorFlow 庫和 Lobe ML 模型需要一些時間。當(dāng)程序準(zhǔn)備好捕捉圖像時,狀態(tài)燈(白色 LED)將閃爍。
拍攝圖像后,程序會將圖像與 Lobe ML 模型進(jìn)行比較并輸出結(jié)果預(yù)測(第 83 行)。輸出決定打開哪個燈:黃色(垃圾)、藍(lán)色(回收)、綠色(堆肥)或紅色(危險廢物)。
如果沒有任何指示燈亮,狀態(tài)指示燈返回脈沖模式,則表示拍攝的圖像“不是垃圾”,即重新拍照!
捕獲圖像
按下按鈕捕獲圖像。請注意,您可能需要按住按鈕至少 1 秒,程序才能注冊按下。建議拍攝一些測試圖像,然后在桌面上打開它們以更好地了解相機(jī)視圖和框架。
為了讓用戶有時間定位物體并調(diào)整相機(jī)的光線水平,大約需要 5 秒才能完全捕捉到圖像。您可以在代碼中更改這些設(shè)置(第 35 和 41 行),但請記住,Pi Foundation 建議至少 2 秒來調(diào)整光照水平。
故障排除
最大的挑戰(zhàn)是確保捕獲的圖像符合我們的預(yù)期,因此請花一些時間查看圖像并將預(yù)期結(jié)果與指示 LED 輸出進(jìn)行比較。如有必要,您可以將圖像傳遞給 Lobe ML 模型,以進(jìn)行直接推理和更快的比較。
需要注意的幾點:
- TensorFlow 庫可能會拋出一些警告消息——這是示例代碼中使用的版本的典型情況。
- 預(yù)測標(biāo)簽必須與 led_select() 函數(shù)中所寫的完全一致,包括大小寫、標(biāo)點符號和間距。如果您有不同的 Lobe 型號,請務(wù)必更改這些設(shè)置。
- Pi 需要穩(wěn)定的電源。Pi 的電源燈應(yīng)該是明亮的、穩(wěn)定的紅色。
- 如果一個或多個 LED 未按預(yù)期亮起,請使用以下命令強(qiáng)制它們亮起進(jìn)行檢查:
red_led.on()
(可選)構(gòu)建它:完成您的電路!
![pYYBAGNkduWAOFvOAAeaK2o-6FM166.jpg](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkduWAOFvOAAeaK2o-6FM166.jpg)
現(xiàn)在我們已經(jīng)測試并在必要時調(diào)試了我們的項目,使其按預(yù)期工作,我們準(zhǔn)備焊接我們的電路!
注意:如果您沒有烙鐵,您可以跳過此步驟。一種替代方法是在電線連接處涂上熱膠(此選項將允許您稍后修復(fù)/添加/使用東西,但更容易損壞),或使用環(huán)氧樹脂或類似的永久性膠水(此選項將更耐用但這樣做后您將無法使用電路或可能的 Pi)
快速評論我的設(shè)計選擇(照片 1):
- 我為 LED 和 Pi GPIO 選擇了母跳線,因為它們允許我移除 LED 并交換顏色或在需要時移動它們。如果您想使連接永久化,您可以跳過這些。
- 同樣,我為按鈕選擇了 JST 連接器。
繼續(xù)建設(shè)!
1. 將每根母跳線切成兩半(是的,全部剪掉?。?。使用剝線鉗,去除大約 1/4 英寸(1/2 厘米)的電線絕緣層。
![poYBAGNkdumAS84oAAWnCWBDUVs004.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdumAS84oAAWnCWBDUVs004.jpg)
2. 對于每個 LED,將 220Ω 電阻器焊接到負(fù)(較短)腿。
![pYYBAGNkdu-AXDVXAAZcU0GzNbc785.jpg](https://file.elecfans.com/web2/M00/78/13/pYYBAGNkdu-AXDVXAAZcU0GzNbc785.jpg)
3. 剪下一小塊約 1" (2cm) 的熱縮管,然后將 LED 和電阻連接處推過。確保另一個電阻支腳可以接觸到,然后加熱熱縮管直到它固定接頭。
![poYBAGNkdveASTmmAAhGqbW8sQ4703.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdveASTmmAAhGqbW8sQ4703.jpg)
4. 將每個 LED 插入一對母跳線。
![poYBAGNkdv2AMFGOAAmfG687QBk696.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdv2AMFGOAAmfG687QBk696.jpg)
5.標(biāo)記跳線(例如用膠帶),然后將跳線焊接到印刷電路板 (PCB) 上。使用 perma Proto 板,您可以使用在面包板設(shè)置中使用的相同位置。
6. 接下來,使用(切割)母跳線將每個 LED 連接到其各自的 Pi GPIO 引腳。焊接并標(biāo)記跳線,以便裸金屬通過 PCB 連接到正極 LED 腿。
注意:焊接此線的位置取決于您的 PCB 布局。您也可以將此線直接焊接到正極 LED 跳線上。
![poYBAGNkdwSAbpX5AAffEzYwE9Q593.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdwSAbpX5AAffEzYwE9Q593.jpg)
7. 將 220Ω 電阻器焊接到 JST 連接器的負(fù)極(黑色)端。
8. 將 JST 連接器和電阻器焊接到按鈕上。
9. 連接按鈕連接器和 GPIO 引腳之間的 M-to-F 跳線(提醒:黑色為 GND)。
10. 將連接 PCB 涂上熱膠或環(huán)氧樹脂,以獲得更安全的連接。
注意:如果您選擇使用環(huán)氧樹脂,將來您可能無法將 Pi 的 GPIO 引腳用于其他項目。如果您對此感到擔(dān)憂,請?zhí)砑?GPIO 帶狀電纜并將跨接線連接到該電纜。
(可選)構(gòu)建它:案例!
為您的樹莓派創(chuàng)建一個外殼,將相機(jī)、按鈕和 LED 固定到位,同時保護(hù)樹莓派。
設(shè)計您自己的外殼或按照下面的構(gòu)建說明快速制作紙板外殼的原型!
![poYBAGNkdwqAHz1_ABBIk6iKNbo244.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdwqAHz1_ABBIk6iKNbo244.jpg)
在小紙板箱的頂部,追蹤按鈕、狀態(tài)燈、識別燈和 pi 攝像頭窗口的位置。
- 注意:Pi 相機(jī)窗口應(yīng)約為 3/4" x 1/2"。
2.用你的精密刀,切掉痕跡。
- 注意:您可能需要隨時測試尺寸
![poYBAGNkdxOAR3IJAAusVySa_I0312.jpg](https://file.elecfans.com/web2/M00/77/81/poYBAGNkdxOAR3IJAAusVySa_I0312.jpg)
3. 可選:給外殼涂漆!我選擇了噴漆:)
![poYBAGNkdxuAThjUABSvpnJGxLs933.jpg](https://file.elecfans.com/web2/M00/77/82/poYBAGNkdxuAThjUABSvpnJGxLs933.jpg)
4.為Pi相機(jī)剪出一個矩形“窗口”蓋并粘在盒子內(nèi)側(cè)
![pYYBAGNkdyCAALWqAAangf3C6D8056.jpg](https://file.elecfans.com/web2/M00/78/14/pYYBAGNkdyCAALWqAAangf3C6D8056.jpg)
5. 最后,切出 Pi 電源線的插槽。
- 建議首先安裝所有電子設(shè)備,以找到 pi 電源線插槽的最佳位置。
安裝和部署!
![poYBAGNkdyOAECL4AAEYhexTMjI531.jpg](https://file.elecfans.com/web2/M00/77/82/poYBAGNkdyOAECL4AAEYhexTMjI531.jpg)
而已!您已準(zhǔn)備好安裝和部署您的項目!將外殼放在垃圾桶上方,插入 Pi,然后運行程序以獲得更快、更可靠的減少浪費的方法。耶!
往前走
- 通過Lobe Reddit 社區(qū)與其他人分享您的項目和想法!
- 查看Lobe Python GitHub 存儲庫,了解有關(guān)如何使用 Python 部署更廣泛的 Lobe 項目的一般概述
- 問題或項目請求?對此項目發(fā)表評論或直接與我們聯(lián)系:AskAMaker@microsoft.com
- ML-01-SC 手冊
- 使用Google Coral和Raspberry Pi進(jìn)行ML鳥類識別
- 使用Pi和Python制作藝術(shù)、游戲等
- 垃圾分類開源硬件
- 基于Arduino和傳感器制作智能垃圾桶
- 基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)
- 通過短信實現(xiàn)的智能垃圾分類和監(jiān)控系統(tǒng)
- 物聯(lián)網(wǎng)智能垃圾分類垃圾桶液位指示器系統(tǒng)
- 生活垃圾數(shù)據(jù)化分類回收方法及其回收系統(tǒng)(機(jī)械部分) 0次下載
- 基于BP神經(jīng)網(wǎng)絡(luò)分類器的垃圾文本過濾模型 43次下載
- 智能語音識別分類垃圾桶的設(shè)計資料合集 35次下載
- 使用51單片機(jī)設(shè)計智能垃圾桶的詳細(xì)資料和程序免費下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- 基于深度置信網(wǎng)絡(luò)的垃圾短信分類技術(shù) 6次下載
- 垃圾分類回收系統(tǒng)設(shè)計報告 39次下載
- 智能垃圾回收箱功能實驗 489次閱讀
- 串聯(lián)型PI和并聯(lián)型PI調(diào)節(jié)器的比較 4739次閱讀
- PI調(diào)節(jié)器的概念及設(shè)計 1.8w次閱讀
- 基于卷積神經(jīng)網(wǎng)絡(luò)的垃圾圖像分類算法 1128次閱讀
- 如何通過STMicroelectronics的STM32微控制器開始使用ML 1464次閱讀
- PI調(diào)節(jié)器介紹及設(shè)計 7122次閱讀
- 利用Arduino Mega 2560制作一個干濕垃圾分離器 2749次閱讀
- 帶你從頭構(gòu)建文本分類器 3640次閱讀
- 如何吧垃圾代碼進(jìn)行垃圾分類詳細(xì)指南說明 4099次閱讀
- 智能垃圾桶傳感器應(yīng)用解決方案 5554次閱讀
- 如何使用機(jī)器視覺技術(shù)進(jìn)行垃圾分類 6452次閱讀
- 如何制作能夠分類120種小狗的圖像分類器 3460次閱讀
- 智能垃圾桶有哪些功能及特點_智能垃圾桶市場前景_智能垃圾桶怎么用 1.7w次閱讀
- pi調(diào)節(jié)器原理_pi調(diào)節(jié)器電路圖_pi調(diào)節(jié)器參數(shù)作用 8.2w次閱讀
- 傳感器超詳細(xì)分類大匯總 3593次閱讀
下載排行
本周
- 1DeepSeek:從入門到精通
- 5.36 MB | 9次下載 | 1 積分
- 2IP6823 支持 qi 認(rèn)證的無線充電發(fā)射控制 SOC
- 1.01 MB | 1次下載 | 免費
- 3IP6824? 全集成QI?無線充電發(fā)射控制SOC
- 1.22 MB | 1次下載 | 免費
- 4PESD18VY1BBIF保護(hù)二極管規(guī)格書
- 4.56MB | 次下載 | 免費
- 574HC4050緩沖器規(guī)格書
- 217.58KB | 次下載 | 免費
- 674HC193;74HC7193二進(jìn)制加減計數(shù)器規(guī)格書
- 327.93KB | 次下載 | 免費
- 774HC73-Q100雙JK觸發(fā)器規(guī)格書
- 220.85KB | 次下載 | 免費
- 8ASW3410 USB3.1高速數(shù)據(jù)開關(guān)切換規(guī)格書
- 1.39 MB | 次下載 | 免費
本月
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 41次下載 | 1 積分
- 3PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 4PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 5GD32F4xx用戶手冊
- 14.49MB | 14次下載 | 免費
- 6DeepSeek:從入門到精通
- 5.36 MB | 9次下載 | 1 積分
- 7dsPIC33EDV64MC205電機(jī)控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 8STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935124次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73813次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論