垃圾分類--環境配置

寫在前面:

如果你們打這屆比賽時,還有我們所保留的內存卡,那么插上即可運行(因為內存卡里我們已經配置好所有的環境)

本文提供兩種環境的配置

一種是基于yolov8:YOLOv8 - Ultralytics YOLO Docshttps://docs.ultralytics.com/models/yolov8/(這是官網,進不去的話,需要科學上網)

另一種是基于飛漿:飛槳AI Studio星河社區-人工智能學習與實訓社區https://aistudio.baidu.com/overview

jetson nano教程:重點是燒錄鏡像、換源、更改輸入設置。
Jetson Nano 從入門到實戰(案例:Opencv配置、人臉檢測、二維碼檢測)_jetson nano 從入門到實戰(案例:opencv配置、人臉檢測、二維碼檢測)-CSDN博客https://blog.csdn.net/qianbin3200896/article/details/103760640?spm=1001.2014.3001.5506

環境配置

我們所使用的時第二種,所以先說第二種,可以按照之前學長所給出的教程進行配置:jetson nano部署paddle Inference環境全過程_jetson paddle-CSDN博客https://blog.csdn.net/pdsrzbypdbyz/article/details/144172807?spm=1001.2014.3001.5506

按照上述環境配置好之后,將garbageCan該文件夾拖到nano上,運行代碼即可

cd garbageCan/code
python3.7 test_tt.py

通過網盤分享的文件:garbageCan
鏈接: https://pan.baidu.com/s/1yZ733DwlhyQ8h4zVlJCwOA?pwd=g824 提取碼: g824?

如果你們用的是SUB國產板子(后面會講),需要先創建虛擬環境,然后在虛擬環境里進行配置,否則會與系統環境產生沖突。在虛擬環境里配置好飛漿的環境之后運行如下代碼:

conda activate garbage #先激活虛擬環境,虛擬環境的名字根據你們的所創建的來
cd garbageCan/code
sudo python3.7 test_tt.py
輸入密碼即可運行(密碼:yahboom)

上述的test_tt.py是最終的代碼?需要接入攝像頭(我們用的是USB)、超聲波、stm32等等
test_tt.py代碼的邏輯如下:

?

如果有報錯,可以粘貼給AI,根據AI的提示來解決報錯問題(報錯的種類很多,在這里不能一一贅述)

若想查看攝像頭的位置可以運行如下代碼:

cd garbageCan/code
python3.7 test_8000.py

如下圖所示:

比賽時不會讓你用鍵盤執行上述代碼,需要寫一個開機自啟動腳本(只需上電后即可自動運行上述代碼)。
可以根據如下教程來:Jetson nano開機自啟動python程序_jetson nano設置開機啟動c++he python程序-CSDN博客https://blog.csdn.net/BluErroR/article/details/121640814?spm=1001.2014.3001.5506
Jetson nano開機自啟動程序-CSDN博客https://blog.csdn.net/qq_40672115/article/details/128140321?spm=1001.2014.3001.5506

如果執行不成功,可以加上sudo(以最高權限進行執行)
如:sudo gnome-session-properties

模型的訓練:


?

上述就是第二種環境的所有操作。

二、

再說第一種,因為第一種未能在省賽之前跑出來,所以沒有完整的垃圾分類代碼,在這里我只演示如何配置環境以及運行

我們在進行環境配置之前,推薦先創建一個虛擬環境,虛擬環境與系統環境相隔開,能減少不必要的麻煩

創建虛擬環境

一、先下載miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

二 安裝Conda

bash Miniconda3-latest-Linux-x86_64.sh

三、初始化&&創建并激活環境

conda init
conda create --name yolo_v8 python=3.8  # 指定 Python 版本,如果需要
conda activate yolo_v8

?激活環境之后(上述所激活的環境為yolo_v8)接著進行如下操作:

一、更新系統
?

sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-dev python3-venv -y

二、安裝pytorch

pytorch是深度學習的框架,提供了眾多的yolo所需的依賴以及GPU的加速支持

1.需要安裝對應版本的pytorch,用如下代碼來查看自己的jetPack版本
?

cat /etc/nv_tegra_release  # 查詢JetPack版本(如JP4.6=L4T 32.7)

2.安裝對應版本PyTorch?

①、適用于JetPack?4.6+?(CUDA?10.2):

wget?https://nvidia.box.com/shared/static/ssf2s7g6zai470t8jppzldw7mvb6v0g6.whl?-O?torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl
pip3?install?numpy?torch-1.12.0a0+2c916ef.nv22.3-cp38-cp38-linux_aarch64.whl


②、適用于JetPack?5.x?(CUDA?11.4+):
?

wget?https://developer.download.nvidia.com/compute/redist/jp/v50/pytorch/torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl
pip3?install?numpy?torch-2.0.0+nv23.05-cp38-cp38-linux_aarch64.whl

我們應該是第①個,因為cuda版本是10.2
我在下載pytorch時,老是遇到網絡的問題,可以將nano連接自己的熱點(注意將自己熱點的AP頻段設置為2.4GHz)

三、安裝yolov8依賴

pip3 install ultralytics
pip3 install matplotlib opencv-python-headless
sudo apt install libcanberra-gtk-module -y  # 解決OpenCV GTK警告

創建好虛擬并配置好環境之后,先激活虛擬環境并進行如下操作:
?

python3 #先激活python環境,python激活的是python2環境,我們python的版本為3.8所以要python3
from ultralytics import YOLO
model = YOLO("yolov8n.pt")  # 會自動下載模型
results = model.predict('https://ultralytics.com/images/bus.jpg', save=True)

接下來就會有推理的結果

上面配置環境時會有各種各樣的問題,同樣的可以將報錯粘貼給AI,根據AI的提示進行解決報錯,切記不要按部就班的粘貼AI所給的代碼

模型的訓練:

nano的性能肯定是不足以訓練模型,所以還是要在本地進行訓練。可參考下面的教程:
重點參考:如何標注自己的數據集?如何配置環境?如何訓練模型?
使用YOLOv8訓練自己的數據集(原理解析+數據標注說明+訓練教程+圖形化系統開發)_yolov8 訓練自己的數據集-CSDN博客https://blog.csdn.net/ECHOSON/article/details/141301902?ops_request_misc=%257B%2522request%255Fid%2522%253A%252213716dea88c48b47a9f27f8c4177a9cd%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=13716dea88c48b47a9f27f8c4177a9cd&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-141301902-null-null.nonecase&utm_term=yolov8&spm=1018.2226.3001.4450【大作業-18】手把手教你用YOLOv8訓練自己的數據集(原理解析+代碼實踐)_嗶哩嗶哩_bilibilihttps://www.bilibili.com/video/BV1KHp2eREFZ/?spm_id_from=333.1387.favlist.content.click提供一份我訓練時的代碼:

import torchfrom ultralytics import YOLOdef train_yolov8():# 設置訓練參數data = "F:/deeplearning/fire/Fire Detection.v1i.yolov8/data.yaml"//yaml文件model = "F:/deeplearning/ultralytics-main/mode/yolov8n.pt"//借助的模型epochs = 300//訓練的輪數imgsz = 640/圖像大小project = "F:\\deeplearning\\ultralytics-main\\runs"//訓練的結果應該保存在哪個位置workers = 2//算力的調用# 實例化YOLO模型yolo_model = YOLO(model)# 使用train()方法開始訓練results = yolo_model.train(data=data,epochs=epochs,imgsz=imgsz,project=project,workers=workers,device = torch.device('cuda' if torch.cuda.is_available() else 'cpu'),#device = ('cpu'),batch = 2)# 打印訓練結果print(results)if __name__ == "__main__":train_yolov8()#print(torch.cuda.is_available())

與nano相互交換文件:

可以使用WinSCP該軟件
可以在網盤里下載:
鏈接: https://pan.baidu.com/s/1tm7xodM1spyv3nTPKtZhRw?pwd=mi27 提取碼: mi27?
--來自百度網盤超級會員v4的分享

燒錄鏡像的APP:

可以使用balenaEtcher軟件
通過網盤分享的文件:balenaEtcher-Setup-1.18.4.exe
鏈接: https://pan.baidu.com/s/1rC2IK7Z6jnbP5yge_D8DBw?pwd=cv3h 提取碼: cv3h?
--來自百度網盤超級會員v4的分享

格式化的APP:

可以使用SD Card Formatter軟件
通過網盤分享的文件:SD Card Formatter.exe
鏈接: https://pan.baidu.com/s/1dMbzS7yjeQrDrBD9dHSQrg?pwd=5wf8 提取碼: 5wf8?
--來自百度網盤超級會員v4的分享

(格式化時選擇Overwrite format,慢速格式化,防止損壞內存卡)

nano板子:

?

上面所述的板子是國產SUB的板子(JETSON NANO B01)?

該板子不可以進行sudo apt update && sudo apt upgrade -y軟件包更新操作,切記!切記!切記!!!(用該板子時配置環境時,跳過軟件包更新這一步驟即可)

該板子的學習網站

JETSON NANO B01https://www.yahboom.com/study/jetson-nanoJetson nano A01/B01https://www.yuque.com/yahboomtechnology/yahboom_support/kgdd5m#UCREB該板子燒錄的是人家的鏡像(不可以燒錄官方鏡像),已經給提供了眾多環境,所以有很大的學習空間,更深的開發就交給你們了

鏡像鏈接:
通過網盤分享的文件:TF卡使用鏡像(載板卡槽)
鏈接: https://pan.baidu.com/s/1iTD-OdpcKibm2eAB4FfUkA?pwd=vbdc 提取碼: vbdc?
--來自百度網盤超級會員v4的分享

另一種是英偉達官方板子按照之前給的教程即可玩轉Jetson Nano(一) 開機準備與遠程連接設置_ubuntu裝jtop命令-CSDN博客https://blog.csdn.net/iracer/article/details/104453423?spm=1001.2014.3001.5506

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898200.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工具(十二):Java導出MySQL數據庫表結構信息到excel

一、背景 遇到需求&#xff1a;將指定數據庫表設計&#xff0c;統一導出到一個Excel中&#xff0c;存檔查看。 如果一個一個弄&#xff0c;很復雜&#xff0c;耗時長。 二、寫一個工具導出下 廢話少絮&#xff0c;上碼&#xff1a; 2.1 pom導入 <dependency><grou…

Postman 新手入門指南:從零開始掌握 API 測試

Postman 新手入門指南&#xff1a;從零開始掌握 API 測試 一、Postman 是什么&#xff1f; Postman 是一款功能強大的 API 開發與測試工具&#xff0c;支持 HTTP 請求調試、自動化測試、團隊協作等功能。無論是開發人員還是測試工程師&#xff0c;都可以用它快速驗證接口的正確…

運維工具推薦 -- 寶塔面板:一鍵部署服務器

標題&#xff1a;寶塔面板&#xff1a;一鍵部署服務器&#xff0c;輕松管理你的云端世界 引言 在數字化時代&#xff0c;服務器管理對于個人開發者、中小企業或站長來說既是機遇也是挑戰。手動配置服務器環境耗時費力&#xff0c;而 寶塔面板 作為一款 免費開源、功能全面 的服…

【軟件工程】03_軟件需求分析

3.1 系統分析 1. 系統分析概述 系統分析是一組統稱為計算機系統工程的活動。它著眼于所有的系統元素,而非僅僅局限于軟件。系統分析主要探索軟件項目的目標、市場預期、主要的技術指標等,其目的在于幫助決策者做出是否進行軟件項目立項的決定。 2. 可行性分析(Feasibility …

WD5202L超低成本 Buck 電源芯片的特性與應用電路解析, 將市電轉換為 5V 電壓

WD5202L&#xff1a;超低成本 Buck 電源芯片的特性與應用電路解析 在現代電子設備的小型化、低成本化趨勢下&#xff0c;對電源管理芯片的性能、成本和尺寸提出了嚴苛要求。WD5202L 作為一款超低成本的 Buck 電源芯片&#xff0c;憑借其獨特的特性&#xff0c;在眾多應用場景中…

UART轉AHB模塊ModelSim仿真

一、簡介 UART轉AHB模塊用于實現一種簡單的通過上位機控制FPGA內部寄存器的方式。上位機通過串口助手發送讀寫寄存器的指令&#xff0c;UART轉AHB模塊接收指令后解析出地址&#xff0c;命令&#xff0c;數據信息&#xff0c;然后轉成AHB總線格式輸出。這時UART轉AHB模塊相當于A…

Qt5.15.2實現Qt for WebAssembly與示例

目錄 1.什么是Qt for WebAssembly&#xff1f; 1.1 什么是 WebAssembly&#xff1f; 1.2 WebAssembly 的優勢 1.3 什么是 Qt for WebAssembly&#xff1f; 1.4 Qt for WebAssembly 的特點 1.5 編譯過程 1.6 運行時環境 注意&#xff01;&#xff01;&#xff01;注意&am…

AGI大模型(8):提示詞的安全與防護

1 前言 著名的「奶奶漏洞」&#xff0c;?套路把 AI 繞懵。 2 常?的提示詞攻擊技術 2.1 同類型?標劫持 同類?標劫持攻擊&#xff0c;特別是在同類型任務的背景下&#xff0c;涉及到攻擊者通過?法?段控制模型&#xff0c;并迫使其執行與原始任務性質相同但?標不同的操作…

使用redis客戶端中對于json數據格式的存儲和讀取

代碼背景&#xff1a; 現在有一個json格式的數據&#xff0c;但是由于redis客戶端上面沒辦法直接創建/導入json的數據格式。 故考慮現在redis客戶端上先存儲一個名為"old_order"的string類型的的源數據。 思路&#xff1a; 由于直接使用redisTemplate獲取自動導入…

專題三搜索插入位置

1.題目 題目分析&#xff1a; 給一個目標值&#xff0c;然后要在排序的整數數組中&#xff0c;找到跟目標值一樣的&#xff0c;如果沒有就把這個值插入進去&#xff0c;然后返回插入后的下標。 2.算法原理 根據題目的時間復雜度可以知道要用二分&#xff0c;開始劃分區域&…

Redis監控:從睜眼瞎到千里眼的進化史

各位在Redis迷霧中摸黑的探險家們&#xff01;今天我們要給Redis裝上"天眼系統"——從連自己內存爆了都不知道的睜眼瞎&#xff0c;進化到連每秒哪個鍵被摸了幾次都門兒清的監控狂魔&#xff01;準備好迎接《Redisの楚門世界》了嗎&#xff1f;&#x1f441;? 第一幕…

雙緩沖機制(含原理、優勢、實現方式、應用場景)

雙緩沖機制 一、雙緩沖機制的原理二、雙緩沖的典型應用場景三、雙緩沖的優勢四、雙緩沖的實現方式1. 硬件級雙緩沖2. 軟件級雙緩沖3. 性能提升對比 五、雙緩沖的挑戰與解決方案六、總結 雙緩沖機制是一種通過使用兩個緩沖區&#xff08;Buffer A 和 Buffer B&#xff09;來優化…

Linux 進程的創建、終止、等待與程序替換函數 保姆級講解

目錄 一、 進程創建 fork函數 二、進程的終止&#xff1a; 1. 想明白&#xff1a;終止是在做什么&#xff1f; 2.進程終止的3種情況&#xff1f; a.退出碼是什么&#xff1f;存在原因&#xff1f;為什么int main&#xff08;&#xff09;return 0? b.第三種進程終止的情況…

深入了解Linux —— git三板斧

版本控制器git 為了我們方便管理不同版本的文件&#xff0c;就有了版本控制器&#xff1b; 所謂的版本控制器&#xff0c;就是能夠了解到一個文件的歷史記錄&#xff08;修改記錄&#xff09;&#xff1b;簡單來說就是記錄每一次的改動和版本迭代的一個管理系統&#xff0c;同…

STM32---FreeRTOS事件標志組

一、簡介 事件標志位&#xff1a;用一個位&#xff0c;來表示事件是否發生 事件標志組&#xff1a;一組事件標志位的集合&#xff0c;可以簡單的理解時間標志組&#xff0c;就是一個整體。 事件標志租的特點&#xff1a; 它的每一個位表示一個時間&#xff08;高8位不算&…

在centOS Linux系統搭建自動化構建工具Jenkins

前言 在工作中發現公司使用Jenkins實現自動化部署項目方案&#xff0c;于是閑著自己也搗鼓一下&#xff0c;網上查閱相關部署資料&#xff0c;順便記錄操作步驟&#xff0c;所以有了下面這篇的文章。 部署完之后&#xff0c;安裝前端項目所需環境&#xff0c;比如node環境&am…

Git下載安裝(保姆教程)

目錄 1、Git下載 2、Git安裝&#xff08;windows版&#xff09; &#xff08;1&#xff09;啟動安裝程序 &#xff08;2&#xff09;閱讀許可協議 &#xff08;3&#xff09;選擇安裝路徑 &#xff08;4&#xff09;選擇組件 &#xff08;5&#xff09;選擇開始菜單文件夾…

深入理解嵌入式開發中的三個重要工具:零長度數組、container_of 和 typeof

在嵌入式開發中,內核開發者經常需要處理復雜的數據結構和動態內存分配。零長度數組、container_of 宏和 typeof 是內核開發中三個非常重要的工具,它們在結構體管理、內存操作和類型處理中發揮著關鍵作用。本文將詳細探討這三個工具的功能、應用場景及其在內核開發中的重要性。…

【react】react中的<></>和React Fragment的用法及區別詳解

目錄 1、<>是什么 2、為什么要使用<>&#xff1f; 3、如何使用<>&#xff1f; 基本用法 需要傳遞屬性時&#xff08;如key&#xff09; 使用效果 注意事項 總結 4、React Fragment 與空標簽&#xff08;<>&#xff09;詳解 1. Fragment 的用…

【人工智能】使用Python實現時間序列異常檢測:從基礎到深度學習模型的全方位探索

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 時間序列異常檢測是數據分析領域中的重要課題,廣泛應用于金融、醫療、工業監控等多個行業。本篇文章深入探討了時間序列異常檢測的基本技術…