2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python实现yolo目标检测_Yolov5—实现目标检测(win10)

python实现yolo目标检测_Yolov5—实现目标检测(win10)

时间:2019-06-28 06:45:13

相关推荐

python实现yolo目标检测_Yolov5—实现目标检测(win10)

Yolov5—实现目标检测(win10)

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

一、环境配置

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

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

Pytorch:1.5.1

Cuda:10.1

Python:3.7

打开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环境

安装pycocotools

记得切换到cocoapi/PythonAPI路径在执行剩下安装步骤

cd cocoapi/PythonAPI #切换路径 安装pycocotools

python setup.py build_ext install

安装apex

cd apex-master #切换路径安装apex

pip install -r requirements.txt #安装依赖包

python setup.py install

使用电脑摄像头检测Yolov5是否配置成功

python detect.py --source 0 --weights="weights/yolov5x.pt" #socrce 0 表示从摄像头输入图像

二、准备数据集

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

检测目标:图片中的壶和书

数据集存放格式如下

coco

-image

- train#存放训练图片

- x.jpg

- val##存放验证图片

-label

- train#存放训练label

- x.txt

- val#存放验证label

数据集需要放在yolov5 data目录下面(如下图所示)

三、修改相关文件

1.修改coco128.yaml文件

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

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

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

# COCO dataset - 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/train/

val: ./data/coco/images/val/

# 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']

在 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

执行之后会在窗口显示检测结果

检测结果如图所示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。