前言:
???深度學(xué)習(xí)新紀(jì)元,828 B2B 企業(yè)節(jié) Flexus X 實(shí)例特惠!想要高效訓(xùn)練 YOLOv10 模型,實(shí)現(xiàn)精準(zhǔn)圖像識(shí)別?Flexus X 以卓越算力,助您輕松駕馭大規(guī)模數(shù)據(jù)集,加速模型迭代,讓 AI 智能觸手可及。把握此刻,讓創(chuàng)新不再受限!
???本實(shí)驗(yàn)演示從 0 到 1 部署 YOLOv10 深度學(xué)習(xí) AI 大模型的環(huán)境搭建、模型訓(xùn)練、權(quán)重使用,以及各項(xiàng)指標(biāo)解讀。實(shí)驗(yàn)環(huán)境為 Flexus 云服務(wù)器 X 實(shí)例 服務(wù)器,配置:4vCPUs | 12GiB
環(huán)境準(zhǔn)備
購買服務(wù)器配置
本次實(shí)驗(yàn)使用的是 Flexus 云服務(wù)器 X 實(shí)例 服務(wù)器。
在性能設(shè)置中我選擇了自定義模式,使用了 4vCPUs | 12GiB,因?yàn)楸敬我獙?shí)驗(yàn)的是 yolov10 的部署與應(yīng)用,Windows 操作系統(tǒng)具有更加直觀的用戶界面和強(qiáng)大的圖形支持,我選擇了公共鏡像 Windows Server 2022 數(shù)據(jù)中心版。以上配置僅供參考,并非硬性要求!
連接服務(wù)器
在華為云服務(wù)器控制臺(tái)中找到我們剛剛購買的服務(wù)器,將彈性公網(wǎng) IP 地址復(fù)制下來。
快捷鍵 Windows + R 打開運(yùn)行窗口,輸入 mstsc,回車!
輸入計(jì)算機(jī):彈性公網(wǎng) IP 地址;用戶名:MicrosoftAccountAdministrator,單擊“確定”。
然后輸入密碼,就成功的連接到我們的服務(wù)器了。
如果忘記密碼了,可以在操作列中點(diǎn)擊重置密碼,重新設(shè)置我們的服務(wù)器密碼。
安裝 Python
我們先來安裝 python3,打開官網(wǎng)地址
Download Python | Python.org
在官網(wǎng)下一個(gè)大于大于 3.8 的 python 安裝包(官方建議使用 3.9 的版本),選擇 amd64 的 exe 版本
安裝的時(shí)候勾選最底下的幫我們添加環(huán)境變量
等待片刻,出現(xiàn)下面這個(gè)界面就是安裝成功了。
CMD 打開控制臺(tái)小黑窗,執(zhí)行 python -V 和 pip -V 查看 python 版本與 pip 版本,看看我們的環(huán)境變量是否設(shè)置成功。
安裝 Pytorch
到官網(wǎng)安裝 Pytorch
Start Locally | PyTorch
在安裝之前看看自己買的服務(wù)器是否有 GPU,可以使用命令來查看
查看 CPU 型號(hào):cat /proc/cpuinfo | grep "model name"
查看 GPU 型號(hào)(Nvidia GPU):nvidia-smi --query-gpu=gpu_name --format=csv
查看 GPU 型號(hào)(AMD Radeon GPU):sudo lshw -C display
因?yàn)槲疫@臺(tái)是只有 CPU 的,因此在官網(wǎng)中選擇 Stable(穩(wěn)定版),系統(tǒng) Linux,用 pip 來安裝吧,然后 Compute Platform 選擇 CPU,然后把 Run this Command:中的命令???cmd 打開黑窗口執(zhí)行。
我這里執(zhí)行的是
pip3 install torch torchvision torchaudio 直接執(zhí)行可能會(huì)很慢,我在后面加上指定鏡像源,切換為國內(nèi)鏡像 pip3 install torch torchvision torchaudio -i https://pypi.mirrors.ustc.edu.cn/simple/
出現(xiàn)如下畫面即是成功下載完成。
部署 YOLOv10
YOLOv10 是 YOLO(You Only Look Once)系列的最新版本,由清華大學(xué)的研究人員開發(fā),旨在進(jìn)一步提高實(shí)時(shí)目標(biāo)檢測(cè)的效率和準(zhǔn)確性。以下是對(duì) YOLOv10 的詳細(xì)介紹:
之前的 YOLO 版本在后處理和模型架構(gòu)方面仍存在不足,特別是依賴于非最大抑制(NMS)進(jìn)行后處理,這限制了模型的端到端部署并增加了推理延遲。YOLOv10 通過消除 NMS 和優(yōu)化模型組件,旨在解決這些問題,實(shí)現(xiàn)更高的性能和效率。
拉取 YOLOv10 代碼并安裝相關(guān)依賴
打開 YOLOV0 的 GItHub 代碼庫,將源碼下載到本地,解壓。
GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection
解壓完成后,打開命令行窗口,cd 到源碼的工作目錄,執(zhí)行下面兩個(gè)命令。
當(dāng)以上相關(guān)依賴都安裝完畢后,執(zhí)行以下訓(xùn)練命令測(cè)試我們的環(huán)境(此步驟可跳過)。
yolo detect train data=coco.yaml model=yolov10s.yaml epochs=5 batch=256 imgsz=640
第一次執(zhí)行會(huì)自動(dòng)下載官方提供的訓(xùn)練案例文件,需要等待較長時(shí)間。
數(shù)據(jù)集準(zhǔn)備
YOLOv10 作為實(shí)時(shí)目標(biāo)檢測(cè)模型,理論上支持多種類型的數(shù)據(jù)集,只要這些數(shù)據(jù)集符合 YOLOv10 的輸入格式和標(biāo)注要求。具體來說,YOLOv10 可以支持的數(shù)據(jù)集包括但不限于以下幾種類型:
1.通用目標(biāo)檢測(cè)數(shù)據(jù)集:如 COCO(Common Objects in Context)數(shù)據(jù)集,這是一個(gè)大型、豐富的圖像數(shù)據(jù)集,用于目標(biāo)檢測(cè)、分割、關(guān)鍵點(diǎn)檢測(cè)等多種任務(wù)。YOLOv10 在 COCO 數(shù)據(jù)集上取得了顯著的性能提升,展現(xiàn)出優(yōu)異的精度-效率平衡能力。
2.特定領(lǐng)域數(shù)據(jù)集:YOLOv10 也可以應(yīng)用于特定領(lǐng)域的數(shù)據(jù)集,如交通標(biāo)志檢測(cè)數(shù)據(jù)集、人臉檢測(cè)數(shù)據(jù)集、車輛檢測(cè)數(shù)據(jù)集等。這些數(shù)據(jù)集通常針對(duì)特定場(chǎng)景或任務(wù)進(jìn)行收集和標(biāo)注,以滿足特定領(lǐng)域的需求。
3.自定義數(shù)據(jù)集:用戶還可以根據(jù)自己的需求創(chuàng)建自定義數(shù)據(jù)集,并使用 YOLOv10 進(jìn)行訓(xùn)練和測(cè)試。自定義數(shù)據(jù)集需要按照 YOLOv10 的輸入格式進(jìn)行標(biāo)注和組織,包括圖像文件、標(biāo)簽文件以及可能的數(shù)據(jù)集配置文件等。
通常來說,我們需要將標(biāo)注結(jié)果與原圖按比例分配到三個(gè)文件夾中
如你有 100 張標(biāo)注了的圖片,大約 80 張圖片用于訓(xùn)練數(shù)據(jù),約 10 張圖片用于驗(yàn)證數(shù)據(jù),約 10 張圖片用于測(cè)試數(shù)據(jù)
train 路徑用于訓(xùn)練模型,val 路徑用于驗(yàn)證模型,test 路徑用于測(cè)試模型。在訓(xùn)練和驗(yàn)證期間,模型將在不同的數(shù)據(jù)集上進(jìn)行訓(xùn)練和驗(yàn)證,以便評(píng)估模型的性能。在測(cè)試期間,模型將使用整個(gè)數(shù)據(jù)集進(jìn)行測(cè)試,以確定其性能指標(biāo)
需要注意的是:訓(xùn)練過的圖片通常不能用于驗(yàn)證數(shù)據(jù)。這是因?yàn)樵谟?xùn)練期間,模型已經(jīng)對(duì)這些圖片進(jìn)行了訓(xùn)練,并學(xué)會(huì)了識(shí)別這些圖片中的對(duì)象和場(chǎng)景類別。
因?yàn)閿?shù)據(jù)標(biāo)注要花費(fèi)大量的時(shí)間,這里直接拿出我最愛的皮卡丘標(biāo)注數(shù)據(jù)
400多張“皮卡丘”原圖與標(biāo)注結(jié)果以及yolov8的訓(xùn)練結(jié)果best.pt權(quán)重和ONNX格式文件_yolov8權(quán)重轉(zhuǎn)onnx資源-CSDN文庫
在這個(gè)壓縮包中有皮卡丘圖片與標(biāo)注信息,還有 yolov8 的訓(xùn)練好的權(quán)重文件,我們只留下 images 和 labels 用來訓(xùn)練 yolov10 版本的權(quán)重。
因?yàn)槲冶容^懶,能用代碼解決的事就用代碼,下面我們使用 python 對(duì)數(shù)據(jù)集進(jìn)行隨機(jī)分配。
修改下面代碼中 66-67 行中的
src_data_folder = '數(shù)據(jù)集路徑' target_data_folder = '處理后的數(shù)據(jù)集'
因?yàn)樵?yolo 訓(xùn)練中,我們并不需要將圖片和標(biāo)注結(jié)果分開存放,因此我們將 train 和 val 中的 images 和 labels 里的文件都全部移出來,然后將這兩個(gè)文件夾刪掉即可。
要注意的是,不管是 train 還是 val 都需要檢查是否包含這么一個(gè) classes.txt 文件,如果沒有的話需要自己手動(dòng)補(bǔ)上,因?yàn)槲疫@里的素材只有一個(gè)皮卡丘目標(biāo),并且標(biāo)注為 1 了,所以只寫了一個(gè) 1。
訓(xùn)練數(shù)據(jù)集的配置文件
參考路徑 C:yolov10-mainultralyticscfgdatasets 找到 voc.yaml,復(fù)制一份,自定義一個(gè)名字
執(zhí)行完識(shí)別命令后,可在輸出信息中看到識(shí)別結(jié)果文件所在位置,detectpredict(數(shù)字會(huì)自動(dòng)疊加)
任意打開一張圖片,找出識(shí)別前的圖片對(duì)比一下,皮卡丘已經(jīng)被框出來了,并打上我們?cè)O(shè)置的 pkq 標(biāo)簽。
至此~我們就完成了 YOLOv10 目標(biāo)檢測(cè)模型的訓(xùn)練與識(shí)別工作了!整個(gè)實(shí)驗(yàn)操作下來,F(xiàn)lexus 云服務(wù)器 X 實(shí)例的表現(xiàn)都是非常出色的!
審核編輯 黃宇
-
AI
+關(guān)注
關(guān)注
87文章
30833瀏覽量
268997 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121145 -
華為云
+關(guān)注
關(guān)注
3文章
2472瀏覽量
17415
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論