Win10環境下YOLO5 快速配置與測試


目錄

  • 一、更換官方源
  • 二、安裝Pytorch+CUDA(python版本)
  • 三、YOLO V5 配置與驗證
  • 四、數據集測試
  • 五、小結

 

     不想看前面,可以直接跳到標題: 一、更換官方源

     在 YOLO V5 官方gayhub頁面(https://github.com/ultralytics/yolov5),看到如下內容:

1 Requirements
2 Python 3.8 or later with all requirements.txt dependencies installed, including torch>=1.6. To install run:
3 
4 $ pip install -r requirements.txt

      所以,為了避免不必要麻煩,python請換成3.8版本!同時也要提前打開 requirements.txt文件(見下文),了解其依賴庫版本。我這里事先安裝好Anaconda3-2020.07-Windows-x86_64,對應Python3.8。

      打開requirement.txt文件,內容如下。

 1 # pip install -r requirements.txt
 2 Cython 3 matplotlib>=3.2.2 4 numpy>=1.18.5 5 opencv-python>=4.1.2 6 pillow 7 # pycocotools>=2.0 8 PyYAML>=5.3 9 scipy>=1.4.1 10 tensorboard>=2.2 11 torch>=1.6.0 12 torchvision>=0.7.0 13 tqdm>=4.41.0

一、更換官方源

        由於YOLO V5 最近才出,清華等國內源似乎沒有跟上步調(例如:服務器中沒有Python3.8安裝包),所以,這里使用官方源(要是你能找到合適國內源下載也行啊)。換源請參考:https://www.cnblogs.com/winslam/p/13347331.html

或者更簡單的方法:手動打開 C:\Users\Administrator\.condarc文件,修改后,為如下內容

1 ssl_verify: true
2 show_channel_urls: true

【注:需要提前安裝Anaconda3-2020.07-Windows-x86_64(去anaconda官網下就行了),對應Python3.8; 當你看到這篇博客的時候,說不定YOLO V5 頁面的安裝需求變為Python3.9...】

     打開如上圖紅圈內的命令行窗口,本篇博客下述所有指令將在其上進行操作,而不是win自帶CMD or powershell

二、安裝Pytorch+CUDA(python版本)

     先創建conda虛擬環境,取名字為pytorch

1 conda create -n pytorch python=3.8
2 conda activate pytorch # 激活虛擬環境

     在pytorch官網,我們作出如下圖選擇,然后復制生成的腳本指令。

# 在pytorch官方選擇相關依賴庫版本,將其自動生成的安裝命令拷貝,在命令行執行,即:
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install ipython

 【注:cu101表示CUDA10.1版本,已經集成到上述pytorch中】

 

-----------------------------------------------------------------------------------------------------------------【如果上述成功安裝了pytorch等庫,則忽略這一段處理】----------------------------------------------------------------------------------------------------------------

       注:上述第一行指令執行后,系統回去指定鏈接下載相關包。如果下載網速太慢或導致錯誤,可將名為 xxx.whl的下載鏈接粘貼到 IDM 或者迅雷中下載;其下載鏈接會在控制台中打印出來,你應該能看到。例如:

torch==1.6.0: https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-win_amd64.whl

torvision==0.7.0:     https://download.pytorch.org/whl/cu102/torchvision-0.7.0-cp38-cp38-win_amd64.whl

(從其拓展名也知道,該庫僅支持python3.8,上述所有庫的集合在鏈接:https://download.pytorch.org/whl/torch_stable.html )

下載到本地怎么安裝?例如我將 torch 用迅雷下載好的庫放到D盤根目錄,那么使用pip安裝該庫的指令如下:

pip install d:/torch-1.6.0-cp38-cp38-win_amd64.whl

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------          

         安裝完畢后,需要檢查下。根據我的經驗,當一句命令行安裝多個庫,有時候總是會后漏網之魚。執行以下指令:

conda list

      我們看到torch 和 torchvision都有了,而且版本符合yolo v5 工程中requirement.txt 文件的要求。如果你發現如torchvision沒有安裝,這時候,只需要重復上述pip install......安裝步驟即可。【注:上圖torch顯示版本是:1.6.0+cu101,如果你顯示的是1.6.0,表示你安裝的是cpu版本】

      至此,我們已經安裝了合適yolo v5的pytorch版本(GPU版)、ipython等(下面會安裝requirment.txt中要求的剩余依賴庫,比較簡單)。這時候,可以簡單測試、驗證下pytorch與torchvision是否安裝成功:

# 在控制台鍵入 ipython,然后逐條輸入如下指令,
# 或者在ide中新建test.py,然后復制如下代碼,然后運行可行
ipython import torch torch.cuda.is_available()
import torchvision
torchvision.__version__

 輸出:

true;

totch161 + cu101

torchvision + cu101

證明GPU能夠為pytorch加速

     接着安裝其余依賴,CD進入yolo源碼目錄,執行以下指令:

pip install -r requirements.txt

三、YOLO V5 配置與驗證

去如下網站下載yolo5源碼,我這里解壓放在F盤根目錄:

git clone https://github.com/ultralytics/yolov5.git

在命令行鍵入如下指令(測試yolo5源碼包中自帶圖片 bus.jpg):

1 python  detect.py --source ./inference/images/bus.jpg

其中bus.jpg式輸入圖像,輸出的效果圖保存在F:\yolov5-master\inference\output 路徑下。

            

        

在命令行鍵入如下指令,使用攝像頭進行目標檢測,使用默認權重文件:

(pytorch) F:\yolov5-master>python detect.py --source 0

四、數據集測試(沒興趣可以忽略)

在網站:https://public.roboflow.ai/

https://public.roboflow.ai/object-detection/mask-wearing

下載”人類是否戴口罩“的檢測數據集,在頁面按ctrl+F搜索mask,可能需要梯子。由於口罩檢測是二分類,所以修改yolov5/models/yolov5s.yaml,將nc = 80修改為nc = 2,因為數據集中只有maskno-mask2個類別

        接着修改mask/data.yaml文件內容為:

train: ../mask/train/images
val: ../mask/valid/images
#注:上述train 、val表示的路徑,是相對於yolov5中源碼的路徑!
nc: 2
names: ['mask', 'no-mask']

       執行以下命令,開始訓練

cd yolov5
python train.py --img 640 --batch 16 --epochs 300 --data ../mask/data.yaml --cfg models/yolov5s.yaml --weights '' 

      可以看到,100多張圖,訓練了2小時。訓練過程,我看過資源管理器,顯存被占用了4Gb,GPU占用率一直很低,這是什么原因呢?

(我已經搞清楚訓練很慢的原因,原因是:yolo5源碼默認開啟CPU多線程加載圖片,所以很慢,需要在源碼中修改,--worker = 0,或者在上面訓練指令中新增,具體如下:

1 python train.py --img 640 --batch 16 --epochs 300 --data ../mask/data.yaml --cfg models/yolov5s.yaml --weights ''  --worker 0

)

      執行以下命令,我們用單目攝像頭來檢測口罩:

pytorch) F:\yolov5-master> python detect.py --source 0 --weights runs/exp5/weights/best.pt

      可以看到一個帥氣的老哥.............口罩雖然被檢測出來了,但是置信度有點低。

五、小結(沒興趣可以忽略)

      YOLO V5作為新秀,和V4原理相似度極高,他們性能差不多,但是V4:偏於學術,容易工程化,而V5生而服務於工程化,結論:V5更香!

     【實踐證明:在Python環境下,咱們在安裝torch的時候,安裝了python版本的cuda后,是不用再安裝NVIDIA官網的cuda,這時候顯卡加速有效。如果部署到C++ OpenCV工程中,可以用CPU跑,至於GPU跑,應該還是要安裝CUDA+cuDnn

如下圖,這里是沒有在win10系統中安裝CUDA,但是在python的conda虛擬環境中安裝了python版本的cuda,所以你看,還是有加速效果。猜想:之所以國內很多博客在教學安裝pytorch環境中都要安裝cuda環境的原因很可能是pytorch早期版本必須這樣?還是一個吃螃蟹大佬搞錯,導致后面的“復制粘貼”者都搞錯?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM