資料介紹
描述
垃圾分類器項目,被親切地稱為“它去哪兒了?!”,旨在讓扔東西更快、更可靠。
該項目使用在Lobe中訓練的機器學習 (ML) 模型, 這是一個對初學者友好的(無代碼?。㎝L 模型構(gòu)建器,用于識別對象是否進入垃圾、回收、堆肥或危險廢物。然后將該模型加載到 Raspberry Pi 4 計算機上,使其可以在任何可能找到垃圾箱的地方使用!
本教程將指導您如何使用 Python3 中的 Lobe TensorFlow 模型在 Raspberry Pi 上創(chuàng)建自己的垃圾分類器項目。
難度:初學者++(一些關(guān)于電路和編碼的知識很有幫助)
閱讀時間:5分鐘
構(gòu)建時間:60 - 90 分鐘
成本:~70 美元(包括 Pi 4)
在我們開始之前
此項目假設您從無頭配置中完全設置的 Raspberry Pi 開始。???這是一個初學者友好的指南,介紹如何做到這一點。
它還有助于了解以下內(nèi)容:
1.熟悉樹莓派
- ?這里有一個方便的入門指南!
- 也很有幫助:?Pi 相機入門
2.閱讀和編輯Python代碼(你不需要從頭開始編寫程序,只需編輯)
3.閱讀Fritzing接線圖
4.使用面包板
找出你的垃圾去哪里
美國的每個城市(我假設是全球)都有自己的垃圾/回收/堆肥/等。采集系統(tǒng)。這意味著要制作準確的垃圾分類器,我們需要 1) 構(gòu)建自定義 ML 模型(我們將在下一步中介紹這一點——無需代碼?。┖?2) 知道每塊垃圾的去向。
由于我并不總是知道我用來訓練模型的每個項目的正確垃圾箱,我使用了上面顯示的西雅圖公用事業(yè)傳單,還有這個方便的“它去哪里了?” 西雅圖市的查找工具!通過查找您所在城市的垃圾收集實用程序并仔細閱讀其網(wǎng)站,查看您所在城市的可用資源。
在 Lobe 中創(chuàng)建自定義 ML 模型
什么是洛貝?
Lobe是一款易于使用的工具,擁有將機器學習理念變?yōu)楝F(xiàn)實所需的一切。向它展示您希望它做什么的示例,它會自動訓練一個自定義機器學習模型,該模型可以為邊緣設備和應用程序?qū)С觥?/font>它不需要任何經(jīng)驗即可開始。您可以免費在自己的計算機上進行訓練!
以下是有關(guān)如何使用 Lobe 的快速概述:
1. 打開 Lobe 程序并創(chuàng)建一個新項目。
2. 拍攝或?qū)胝掌⑺鼈儤擞洖檫m當?shù)念悇e。稍后我們將在項目的軟件部分需要這些標簽。
導入照片有兩種方式:
- 直接從您的計算機網(wǎng)絡攝像頭拍攝物品照片,或
從您的計算機導入現(xiàn)有照片(通過單張照片或文件夾/數(shù)據(jù)集上傳)。
- 請記住,照片文件夾名稱將用作類別標簽名稱,因此請確保它與任何現(xiàn)有標簽匹配!
- 從您的計算機導入現(xiàn)有照片(通過單張照片或文件夾/數(shù)據(jù)集上傳)。請記住,照片文件夾名稱將用作類別標簽名稱,因此請確保它與任何現(xiàn)有標簽匹配。
另外:我最終使用了這兩種方法,因為您擁有的照片越多,您的模型就越準確。
3.使用“播放”功能測試模型的準確性。更改距離、照明、手的位置等,以識別模型的準確位置和不準確位置。根據(jù)需要添加更多照片。
4. 準備就緒后,以TensorFlow (TF) Lite 格式導出 Lobe ML 模型。
提示:
在導入照片之前,列出您需要的所有類別以及如何標記它們(例如“垃圾”、“回收”、“堆肥”等)
- 注意:使用與上面“Lobe Model Labels”照片中所示相同的標簽,以減少您需要更改的代碼量。
- 在導入照片之前,列出您需要的所有類別以及如何標記它們(例如“垃圾”、“回收”、“堆肥”等)注意:使用與“Lobe”中所示相同的標簽模型標簽”照片,以減少您需要更改的代碼量。
- 包括一個“非垃圾”類別,其中包含照片中可能包含的任何其他內(nèi)容(例如您的手和手臂、背景等)
- 如果可能,從 Pi 相機拍照并導入 Lobe 。這將大大提高模型的準確性!
- 需要更多照片嗎?查看Kaggle上的開源數(shù)據(jù)集,包括這個垃圾分類圖像集!
- 需要更多幫助?在 Reddit 上與Lobe 社區(qū)聯(lián)系!
建造它:硬件!
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 的主目錄中創(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
4. 從此repo下載垃圾分類器代碼 (rpi_trash_classifier.py)到 Pi 上(單擊“代碼”按鈕,如圖 1 所示)。
- 喜歡復制/粘貼?在此處獲取原始代碼。
- 喜歡下載到您的計算機上?將存儲庫/代碼下載到您的計算機上,然后通過 WinSCP(或您首選的遠程文件傳輸程序)將 Python 代碼傳輸?shù)?Pi。
5. 將硬件連接到 Pi 的 GPIO 引腳后,通讀示例代碼并根據(jù)需要更新任何文件路徑:
- 第 29 行:Lobe TF 模型的文件路徑
- 第 47 和 83 行:通過 Pi 相機捕獲的圖像的文件路徑
6. 如有必要,更新代碼中的模型標簽以與您的 Lobe 模型中的標簽完全匹配(包括大小寫、標點符號等):
- 第 57 行:“垃圾”
- 第 60 行:“回收”
- 第 63 行:“堆肥”
- 第 66 行:“危險廢物設施”
- 第 69 行:“不是垃圾!”
7. 在終端窗口中使用 Python3 運行程序:
python3 rpi_trash_classifier.py
測試它:運行程序!
計劃概述
首次運行程序時,加載 TensorFlow 庫和 Lobe ML 模型需要一些時間。當程序準備好捕捉圖像時,狀態(tài)燈(白色 LED)將閃爍。
拍攝圖像后,程序會將圖像與 Lobe ML 模型進行比較并輸出結(jié)果預測(第 83 行)。輸出決定打開哪個燈:黃色(垃圾)、藍色(回收)、綠色(堆肥)或紅色(危險廢物)。
如果沒有任何指示燈亮,狀態(tài)指示燈返回脈沖模式,則表示拍攝的圖像“不是垃圾”,即重新拍照!
捕獲圖像
按下按鈕捕獲圖像。請注意,您可能需要按住按鈕至少 1 秒,程序才能注冊按下。建議拍攝一些測試圖像,然后在桌面上打開它們以更好地了解相機視圖和框架。
為了讓用戶有時間定位物體并調(diào)整相機的光線水平,大約需要 5 秒才能完全捕捉到圖像。您可以在代碼中更改這些設置(第 35 和 41 行),但請記住,Pi Foundation 建議至少 2 秒來調(diào)整光照水平。
故障排除
最大的挑戰(zhàn)是確保捕獲的圖像符合我們的預期,因此請花一些時間查看圖像并將預期結(jié)果與指示 LED 輸出進行比較。如有必要,您可以將圖像傳遞給 Lobe ML 模型,以進行直接推理和更快的比較。
需要注意的幾點:
- TensorFlow 庫可能會拋出一些警告消息——這是示例代碼中使用的版本的典型情況。
- 預測標簽必須與 led_select() 函數(shù)中所寫的完全一致,包括大小寫、標點符號和間距。如果您有不同的 Lobe 型號,請務必更改這些設置。
- Pi 需要穩(wěn)定的電源。Pi 的電源燈應該是明亮的、穩(wěn)定的紅色。
- 如果一個或多個 LED 未按預期亮起,請使用以下命令強制它們亮起進行檢查:
red_led.on()
(可選)構(gòu)建它:完成您的電路!
現(xiàn)在我們已經(jīng)測試并在必要時調(diào)試了我們的項目,使其按預期工作,我們準備焊接我們的電路!
注意:如果您沒有烙鐵,您可以跳過此步驟。一種替代方法是在電線連接處涂上熱膠(此選項將允許您稍后修復/添加/使用東西,但更容易損壞),或使用環(huán)氧樹脂或類似的永久性膠水(此選項將更耐用但這樣做后您將無法使用電路或可能的 Pi)
快速評論我的設計選擇(照片 1):
- 我為 LED 和 Pi GPIO 選擇了母跳線,因為它們允許我移除 LED 并交換顏色或在需要時移動它們。如果您想使連接永久化,您可以跳過這些。
- 同樣,我為按鈕選擇了 JST 連接器。
繼續(xù)建設!
1. 將每根母跳線切成兩半(是的,全部剪掉?。?/font>使用剝線鉗,去除大約 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 涂上熱膠或環(huán)氧樹脂,以獲得更安全的連接。
注意:如果您選擇使用環(huán)氧樹脂,將來您可能無法將 Pi 的 GPIO 引腳用于其他項目。如果您對此感到擔憂,請?zhí)砑?GPIO 帶狀電纜并將跨接線連接到該電纜。
(可選)構(gòu)建它:案例!
為您的樹莓派創(chuàng)建一個外殼,將相機、按鈕和 LED 固定到位,同時保護樹莓派。
設計您自己的外殼或按照下面的構(gòu)建說明快速制作紙板外殼的原型!
在小紙板箱的頂部,追蹤按鈕、狀態(tài)燈、識別燈和 pi 攝像頭窗口的位置。
- 注意:Pi 相機窗口應約為 3/4" x 1/2"。
2.用你的精密刀,切掉痕跡。
- 注意:您可能需要隨時測試尺寸
3. 可選:給外殼涂漆!我選擇了噴漆:)
4.為Pi相機剪出一個矩形“窗口”蓋并粘在盒子內(nèi)側(cè)
5. 最后,切出 Pi 電源線的插槽。
- 建議首先安裝所有電子設備,以找到 pi 電源線插槽的最佳位置。
安裝和部署!
而已!您已準備好安裝和部署您的項目!將外殼放在垃圾桶上方,插入 Pi,然后運行程序以獲得更快、更可靠的減少浪費的方法。耶!
往前走
- 通過Lobe Reddit 社區(qū)與其他人分享您的項目和想法!
- 查看Lobe Python GitHub 存儲庫,了解有關(guān)如何使用 Python 部署更廣泛的 Lobe 項目的一般概述
- 問題或項目請求?對此項目發(fā)表評論或直接與我們聯(lián)系:AskAMaker@microsoft.com
- ML-01-SC 手冊
- 使用Google Coral和Raspberry Pi進行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)(機械部分) 0次下載
- 基于BP神經(jīng)網(wǎng)絡分類器的垃圾文本過濾模型 43次下載
- 智能語音識別分類垃圾桶的設計資料合集 32次下載
- 使用51單片機設計智能垃圾桶的詳細資料和程序免費下載
- 《愛上Raspberry Pi》中譯版-電子書籍.pdf 0次下載
- 基于深度置信網(wǎng)絡的垃圾短信分類技術(shù) 6次下載
- 垃圾分類回收系統(tǒng)設計報告 39次下載
- 智能垃圾回收箱功能實驗 298次閱讀
- 串聯(lián)型PI和并聯(lián)型PI調(diào)節(jié)器的比較 3535次閱讀
- PI調(diào)節(jié)器的概念及設計 1.6w次閱讀
- 基于卷積神經(jīng)網(wǎng)絡的垃圾圖像分類算法 935次閱讀
- 如何通過STMicroelectronics的STM32微控制器開始使用ML 1338次閱讀
- PI調(diào)節(jié)器介紹及設計 6235次閱讀
- 利用Arduino Mega 2560制作一個干濕垃圾分離器 2459次閱讀
- 帶你從頭構(gòu)建文本分類器 3288次閱讀
- 如何吧垃圾代碼進行垃圾分類詳細指南說明 3994次閱讀
- 智能垃圾桶傳感器應用解決方案 5351次閱讀
- 如何使用機器視覺技術(shù)進行垃圾分類 6290次閱讀
- 如何制作能夠分類120種小狗的圖像分類器 3373次閱讀
- 智能垃圾桶有哪些功能及特點_智能垃圾桶市場前景_智能垃圾桶怎么用 1.6w次閱讀
- pi調(diào)節(jié)器原理_pi調(diào)節(jié)器電路圖_pi調(diào)節(jié)器參數(shù)作用 8w次閱讀
- 傳感器超詳細分類大匯總 3508次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多