寫在前面:
如果你們打這屆比賽時,還有我們所保留的內存卡,那么插上即可運行(因為內存卡里我們已經配置好所有的環境)
本文提供兩種環境的配置
一種是基于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訓練自己的數據集(原理解析+代碼實踐)_嗶哩嗶哩_bilibili
https://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/B01
https://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