資料介紹
描述
垃圾分類器項目,被親切地稱為“它去哪兒了?!”,旨在讓扔東西更快、更可靠。
該項目使用在Lobe中訓練的機器學習 (ML) 模型, 這是一個對初學者友好的(無代碼!)ML 模型構建器,用于識別對象是否進入垃圾、回收、堆肥或危險廢物。然后將該模型加載到 Raspberry Pi 4 計算機上,使其可以在任何可能找到垃圾箱的地方使用!
本教程將指導您如何使用 Python3 中的 Lobe TensorFlow 模型在 Raspberry Pi 上創建自己的垃圾分類器項目。
難度:初學者++(一些關于電路和編碼的知識很有幫助)
閱讀時間:5分鐘
構建時間:60 - 90 分鐘
成本:~70 美元(包括 Pi 4)
在我們開始之前
此項目假設您從無頭配置中完全設置的 Raspberry Pi 開始。???這是一個初學者友好的指南,介紹如何做到這一點。
它還有助于了解以下內容:
1.熟悉樹莓派
- ?這里有一個方便的入門指南!
- 也很有幫助:?Pi 相機入門
2.閱讀和編輯Python代碼(你不需要從頭開始編寫程序,只需編輯)
3.閱讀Fritzing接線圖
4.使用面包板
找出你的垃圾去哪里
美國的每個城市(我假設是全球)都有自己的垃圾/回收/堆肥/等。采集系統。這意味著要制作準確的垃圾分類器,我們需要 1) 構建自定義 ML 模型(我們將在下一步中介紹這一點——無需代碼!)和 2) 知道每塊垃圾的去向。
由于我并不總是知道我用來訓練模型的每個項目的正確垃圾箱,我使用了上面顯示的西雅圖公用事業傳單,還有這個方便的“它去哪里了?” 西雅圖市的查找工具!通過查找您所在城市的垃圾收集實用程序并仔細閱讀其網站,查看您所在城市的可用資源。
在 Lobe 中創建自定義 ML 模型

什么是洛貝?
Lobe是一款易于使用的工具,擁有將機器學習理念變為現實所需的一切。向它展示您希望它做什么的示例,它會自動訓練一個自定義機器學習模型,該模型可以為邊緣設備和應用程序導出。它不需要任何經驗即可開始。您可以免費在自己的計算機上進行訓練!
以下是有關如何使用 Lobe 的快速概述:
1. 打開 Lobe 程序并創建一個新項目。


2. 拍攝或導入照片并將它們標記為適當的類別。稍后我們將在項目的軟件部分需要這些標簽。
導入照片有兩種方式:
- 直接從您的計算機網絡攝像頭拍攝物品照片,或
從您的計算機導入現有照片(通過單張照片或文件夾/數據集上傳)。
- 請記住,照片文件夾名稱將用作類別標簽名稱,因此請確保它與任何現有標簽匹配!
- 從您的計算機導入現有照片(通過單張照片或文件夾/數據集上傳)。請記住,照片文件夾名稱將用作類別標簽名稱,因此請確保它與任何現有標簽匹配。
另外:我最終使用了這兩種方法,因為您擁有的照片越多,您的模型就越準確。


3.使用“播放”功能測試模型的準確性。更改距離、照明、手的位置等,以識別模型的準確位置和不準確位置。根據需要添加更多照片。

4. 準備就緒后,以TensorFlow (TF) Lite 格式導出 Lobe ML 模型。

提示:
在導入照片之前,列出您需要的所有類別以及如何標記它們(例如“垃圾”、“回收”、“堆肥”等)
- 注意:使用與上面“Lobe Model Labels”照片中所示相同的標簽,以減少您需要更改的代碼量。
- 在導入照片之前,列出您需要的所有類別以及如何標記它們(例如“垃圾”、“回收”、“堆肥”等)注意:使用與“Lobe”中所示相同的標簽模型標簽”照片,以減少您需要更改的代碼量。
- 包括一個“非垃圾”類別,其中包含照片中可能包含的任何其他內容(例如您的手和手臂、背景等)
- 如果可能,從 Pi 相機拍照并導入 Lobe 。這將大大提高模型的準確性!
- 需要更多照片嗎?查看Kaggle上的開源數據集,包括這個垃圾分類圖像集!
- 需要更多幫助?在 Reddit 上與Lobe 社區聯系!
建造它:硬件!

1. 小心地將 Pi 相機連接到 Pi(訪問Pi Foundation 入門指南了解更多信息)。

2. 按照接線圖將按鈕和 LED 連接到 Pi GPIO 引腳。
- 按鈕:將按鈕的一個引腳連接到 GPIO 引腳 2。通過電阻器將另一個引腳連接到 GPIO GND 引腳。
- 黃色 LED :將正極(較長)腿連接到 GPIO 引腳 17。通過電阻器將另一腿連接到 GPIO GND 引腳。
- 藍色 LED :將正極連接到 GPIO 引腳 27。通過電阻器將另一條連接到 GPIO GND 引腳。
- 綠色 LED :將正極連接到 GPIO 引腳 22。通過電阻器將另一條連接到 GPIO GND 引腳。
- 紅色 LED:將正極連接到 GPIO 引腳 23。通過電阻器將另一條連接到 GPIO GND 引腳。
- 白色 LED :將正極連接到 GPIO 引腳 24。通過電阻器將另一條連接到 GPIO GND 引腳。
3. 建議在焊接或永久連接之前在面包板上測試您的電路并運行程序。為此,我們需要編寫并上傳我們的軟件程序,所以讓我們進行下一步吧!
編碼:軟件!
1. 在您的 PC 上,打開WinSCP 并連接到您的 Pi。在 Pi 的主目錄中創建一個 Lobe 文件夾,并在該目錄中創建一個模型文件夾。
2. 將生成的 Lobe TF 文件夾內容拖到 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

4. 從此repo下載垃圾分類器代碼 (rpi_trash_classifier.py)到 Pi 上(單擊“代碼”按鈕,如圖 1 所示)。
- 喜歡復制/粘貼?在此處獲取原始代碼。
- 喜歡下載到您的計算機上?將存儲庫/代碼下載到您的計算機上,然后通過 WinSCP(或您首選的遠程文件傳輸程序)將 Python 代碼傳輸到 Pi。
5. 將硬件連接到 Pi 的 GPIO 引腳后,通讀示例代碼并根據需要更新任何文件路徑:
- 第 29 行:Lobe TF 模型的文件路徑
- 第 47 和 83 行:通過 Pi 相機捕獲的圖像的文件路徑
6. 如有必要,更新代碼中的模型標簽以與您的 Lobe 模型中的標簽完全匹配(包括大小寫、標點符號等):
- 第 57 行:“垃圾”
- 第 60 行:“回收”
- 第 63 行:“堆肥”
- 第 66 行:“危險廢物設施”
- 第 69 行:“不是垃圾!”
7. 在終端窗口中使用 Python3 運行程序:
python3 rpi_trash_classifier.py
測試它:運行程序!

計劃概述
首次運行程序時,加載 TensorFlow 庫和 Lobe ML 模型需要一些時間。當程序準備好捕捉圖像時,狀態燈(白色 LED)將閃爍。
拍攝圖像后,程序會將圖像與 Lobe ML 模型進行比較并輸出結果預測(第 83 行)。輸出決定打開哪個燈:黃色(垃圾)、藍色(回收)、綠色(堆肥)或紅色(危險廢物)。
如果沒有任何指示燈亮,狀態指示燈返回脈沖模式,則表示拍攝的圖像“不是垃圾”,即重新拍照!
捕獲圖像
按下按鈕捕獲圖像。請注意,您可能需要按住按鈕至少 1 秒,程序才能注冊按下。建議拍攝一些測試圖像,然后在桌面上打開它們以更好地了解相機視圖和框架。
為了讓用戶有時間定位物體并調整相機的光線水平,大約需要 5 秒才能完全捕捉到圖像。您可以在代碼中更改這些設置(第 35 和 41 行),但請記住,Pi Foundation 建議至少 2 秒來調整光照水平。
故障排除
最大的挑戰是確保捕獲的圖像符合我們的預期,因此請花一些時間查看圖像并將預期結果與指示 LED 輸出進行比較。如有必要,您可以將圖像傳遞給 Lobe ML 模型,以進行直接推理和更快的比較。
需要注意的幾點:
- TensorFlow 庫可能會拋出一些警告消息——這是示例代碼中使用的版本的典型情況。
- 預測標簽必須與 led_select() 函數中所寫的完全一致,包括大小寫、標點符號和間距。如果您有不同的 Lobe 型號,請務必更改這些設置。
- Pi 需要穩定的電源。Pi 的電源燈應該是明亮的、穩定的紅色。
- 如果一個或多個 LED 未按預期亮起,請使用以下命令強制它們亮起進行檢查:
red_led.on()
(可選)構建它:完成您的電路!

現在我們已經測試并在必要時調試了我們的項目,使其按預期工作,我們準備焊接我們的電路!
注意:如果您沒有烙鐵,您可以跳過此步驟。一種替代方法是在電線連接處涂上熱膠(此選項將允許您稍后修復/添加/使用東西,但更容易損壞),或使用環氧樹脂或類似的永久性膠水(此選項將更耐用但這樣做后您將無法使用電路或可能的 Pi)
快速評論我的設計選擇(照片 1):
- 我為 LED 和 Pi GPIO 選擇了母跳線,因為它們允許我移除 LED 并交換顏色或在需要時移動它們。如果您想使連接永久化,您可以跳過這些。
- 同樣,我為按鈕選擇了 JST 連接器。
繼續建設!
1. 將每根母跳線切成兩半(是的,全部剪掉!)。使用剝線鉗,去除大約 1/4 英寸(1/2 厘米)的電線絕緣層。

2. 對于每個 LED,將 220Ω 電阻器焊接到負(較短)腿。

3. 剪下一小塊約 1" (2cm) 的熱縮管,然后將 LED 和電阻連接處推過。確保另一個電阻支腳可以接觸到,然后加熱熱縮管直到它固定接頭。

4. 將每個 LED 插入一對母跳線。

5.標記跳線(例如用膠帶),然后將跳線焊接到印刷電路板 (PCB) 上。使用 perma Proto 板,您可以使用在面包板設置中使用的相同位置。
6. 接下來,使用(切割)母跳線將每個 LED 連接到其各自的 Pi GPIO 引腳。焊接并標記跳線,以便裸金屬通過 PCB 連接到正極 LED 腿。
注意:焊接此線的位置取決于您的 PCB 布局。您也可以將此線直接焊接到正極 LED 跳線上。

7. 將 220Ω 電阻器焊接到 JST 連接器的負極(黑色)端。
8. 將 JST 連接器和電阻器焊接到按鈕上。
9. 連接按鈕連接器和 GPIO 引腳之間的 M-to-F 跳線(提醒:黑色為 GND)。
10. 將連接 PCB 涂上熱膠或環氧樹脂,以獲得更安全的連接。
注意:如果您選擇使用環氧樹脂,將來您可能無法將 Pi 的 GPIO 引腳用于其他項目。如果您對此感到擔憂,請添加 GPIO 帶狀電纜并將跨接線連接到該電纜。
(可選)構建它:案例!
為您的樹莓派創建一個外殼,將相機、按鈕和 LED 固定到位,同時保護樹莓派。
設計您自己的外殼或按照下面的構建說明快速制作紙板外殼的原型!

在小紙板箱的頂部,追蹤按鈕、狀態燈、識別燈和 pi 攝像頭窗口的位置。
- 注意:Pi 相機窗口應約為 3/4" x 1/2"。
2.用你的精密刀,切掉痕跡。
- 注意:您可能需要隨時測試尺寸

3. 可選:給外殼涂漆!我選擇了噴漆:)

4.為Pi相機剪出一個矩形“窗口”蓋并粘在盒子內側

5. 最后,切出 Pi 電源線的插槽。
- 建議首先安裝所有電子設備,以找到 pi 電源線插槽的最佳位置。
安裝和部署!

而已!您已準備好安裝和部署您的項目!將外殼放在垃圾桶上方,插入 Pi,然后運行程序以獲得更快、更可靠的減少浪費的方法。耶!
往前走
- 通過Lobe Reddit 社區與其他人分享您的項目和想法!
- 查看Lobe Python GitHub 存儲庫,了解有關如何使用 Python 部署更廣泛的 Lobe 項目的一般概述
- 問題或項目請求?對此項目發表評論或直接與我們聯系:AskAMaker@microsoft.com
- ML-01-SC 手冊
- 使用Google Coral和Raspberry Pi進行ML鳥類識別
- 使用Pi和Python制作藝術、游戲等
- 垃圾分類開源硬件
- 基于Arduino和傳感器制作智能垃圾桶
- 基于ML的鳥類和松鼠檢測器(Raspberry Pi和AWS)
- 通過短信實現的智能垃圾分類和監控系統
- 物聯網智能垃圾分類垃圾桶液位指示器系統
- 生活垃圾數據化分類回收方法及其回收系統(機械部分) 0次下載
- 基于BP神經網絡分類器的垃圾文本過濾模型 43次下載
- 智能語音識別分類垃圾桶的設計資料合集 35次下載
- 使用51單片機設計智能垃圾桶的詳細資料和程序免費下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- 基于深度置信網絡的垃圾短信分類技術 6次下載
- 垃圾分類回收系統設計報告 39次下載
- 智能垃圾回收箱功能實驗 489次閱讀
- 串聯型PI和并聯型PI調節器的比較 4739次閱讀
- PI調節器的概念及設計 1.8w次閱讀
- 基于卷積神經網絡的垃圾圖像分類算法 1128次閱讀
- 如何通過STMicroelectronics的STM32微控制器開始使用ML 1464次閱讀
- PI調節器介紹及設計 7122次閱讀
- 利用Arduino Mega 2560制作一個干濕垃圾分離器 2749次閱讀
- 帶你從頭構建文本分類器 3640次閱讀
- 如何吧垃圾代碼進行垃圾分類詳細指南說明 4099次閱讀
- 智能垃圾桶傳感器應用解決方案 5554次閱讀
- 如何使用機器視覺技術進行垃圾分類 6452次閱讀
- 如何制作能夠分類120種小狗的圖像分類器 3460次閱讀
- 智能垃圾桶有哪些功能及特點_智能垃圾桶市場前景_智能垃圾桶怎么用 1.7w次閱讀
- pi調節器原理_pi調節器電路圖_pi調節器參數作用 8.2w次閱讀
- 傳感器超詳細分類大匯總 3593次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產業鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應晶體管的數據手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論