Yolov5—实现目标检测(win10)

Yolov5—实现目标检测(win10)

该方法可以在win10上实现Yolov5的目标检测,配置前需要安装Anaconda3

一、环境配置

源码下载地址:https://github.com/ultralytics/yolov5.git

推荐使用B站up主修改好的文件配置Yolov5环境。(链接点这里:提取码为“ugpg”

Pytorch:1.5.1
Cuda:10.1
Python:3.7

创建好虚拟环境([可以参考B站up主的配置视频]

  1. 打开Anaconda Prompt(Anaconda3)配置相关环境
conda create -n yolov5 python=3.7 #创建yolov5 (python3.7)环境
conda activate yolov5  #切换到yolov5环境
conda install pytorch torchvision cudatoolkit=10.1 #安装cuda10.1
pip install -U -r requirements.txt  #安装依赖包。

之后使用Yolov5一定要切换到Yolov5环境

conda activate yolov5 #切换到yolov5环境
  1. 安装pycocotools
    记得切换到cocoapi/PythonAPI路径在执行剩下安装步骤
 cd cocoapi/PythonAPI  #切换路径 安装pycocotools
 python setup.py build_ext install
  1. 安装apex
  cd apex-master #切换路径安装apex
   pip install -r requirements.txt #安装依赖包
   python setup.py install
  1. 使用电脑摄像头检测Yolov5是否配置成功
python detect.py --source 0 --weights="weights/yolov5x.pt" #socrce 0 表示从摄像头输入图像

二、准备数据集

可以使用up主提供的数据集(提取码为“1hfu”)格式为 yolov5 文章后面使用该数据集进行训练

检测目标:图片中的壶和书
在这里插入图片描述

数据集存放格式如下

coco
    -image
        - train2017#存放训练图片
            - x.jpg
        - val2017##存放验证图片
    -label
        - train2017#存放训练label
            - x.txt
        - val2017#存放验证label

数据集需要放在yolov5 data目录下面(如下图所示)
在这里插入图片描述

三、修改相关文件

1.修改coco128.yaml文件

coco128.yaml等文件路径为.. /yolov5_material/yolov5-master/data

将文件中的nc:80, 修改为nc:2(nc为要训练数据的类别个数)

将names:[’ ‘,’ '] 改为 names: [‘hu’, ‘shu’] (names 为要训练数据的类别名)

# COCO 2017 dataset http://cocodataset.org - first 128 training images
# Download command:  python -c "from yolov5.utils.google_utils import gdrive_download; gdrive_download('1n_oKgR81BJtqk75b00eAjdv03qVCQn2f','coco128.zip')"
# Train command: python train.py --data ./data/coco128.yaml
# Dataset should be placed next to yolov5 folder:
#   /parent_folder
#     /coco128
#     /yolov5


# train and val datasets (image directory or *.txt file with image paths)
train: ./data/coco/images/train2017/
val: ./data/coco/images/val2017/

# number of classes
#nc: 80
nc:2

# class names
# names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
#         'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
#         'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
#         'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
#         'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
#         'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
#         'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
#         'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
#         'hair drier', 'toothbrush']

names: ['hu', 'shu']
  1. 在 yolov5l .yaml, yolov5m.yaml,yolov5x.yaml,yolov5s.yaml 中选择你使用的模型,修改该文件的nc(类别数目)【推荐使用yolov5s.yaml,他的训练速度最快】
yolov5l .yaml等文件路径为.. /yolov5_material/yolov5-master/models

修改nc值

 #nc: 80  
 nc:2  # number of classes

四、Yolov5s模型训练

在配置好的环境中输入下面的代码进行模型训练

python train.py --img 640 --data data/coco128.yaml --cfg models/yolov5x.yaml --weights weights/yolov5s.pt --batch-size 8 --epochs 100 
#img 640 为模型输入图片的分辨率为640
#batchsize 为每个batch中训练样本的数量
#epochs为模型迭代次数
#可以根据自己电脑的配置进行调节batchsize 和 epochs

执行完该段代码之后,会在weights目录下产生best.pt文件
,可以通过该文件对新输入的图片进行目标检测。

训练模型时会产生如下图像
在这里插入图片描述

五、对新输入的图片进行目标检测

python detect.py --source 00000.bmp --weights="weights/best.pt" --view-img

执行之后会在窗口显示检测结果
检测结果如图所示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45652435/article/details/113095444