创建名字叫yolov5的环境,python为3.8版本
conda create -n yolov5 python=3.8
PyPI 镜像使用
https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
设置默认镜像:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
查看CUDA版本
Pytorch官方地址:PyTorch
pip install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu102
接着在Yolov5下载地址中把项目下载下来:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
配置环境:pip install -r requirements.txt
修改numpy为最新版本:
模型测试:
python detect.py
在yolov5-master工程下的runs/detect/exp下查看测试图片:
准备好视频:将视频按照5秒一帧把帧图保存下来:
代码如下:
videoCaptureSlice.ipynb
import cv2
import matplotlib.pyplot as plt
# 打开视频文件
video = cv2.VideoCapture("./BVN.mp4")
# 读取一帧
ret,frame = video.read()
plt.imshow(frame)
plt.imshow(cv2.cvtColor(frame,cv2.COLOR_BGR2RGB))
video = cv2.VideoCapture("./BVN.mp4")
num = 0 # 计数器
save_step = 5 #间隔帧
while True:
ret,frame = video.read()
if not ret:
break
num += 1
if num % save_step == 0:
cv2.imwrite("./images/" + str(num) + '.jpg',frame)
代码文件链接:
然后安装labelImg,在终端输入
conda activate yolov5
pip install labelImg
然后在终端输入labelImg
- 先点击Open Dir打开images,images存放待标注的图片;
- 然后点击Change Save Dir存放labels,labels是一个空文件。
- 点击View,将Auto Save mode打勾✔
进行标注:
按W(w)键可以开始标注,然后定位后进行拖拽标注。按A(a)和D(d)键可以上下翻动
标注好的一张展示:
标注好后将images和labels文件夹里面的文件分别对等的划分成训练集和验证集:
datasets文件夹的具体存放位置在yolov5-master的子目录:
接着复制一份yolov5项目的data文件夹里的coco128.yaml文件,将其内容修改如下,并且命名为bvn.yaml
准备完毕:可以进行模型训练了!!!!!!!!
训练完毕之后,可以利用tensorboard查看:tensorboard --logdir runs
在yolov5-master工程下的runs/train/exp下查看训练保存的图片和权重weights:
模型检测:
import torch
#Model
model = torch.hub.load("./","custom",path="runs/train/exp12/weights/best.pt",source="local")
#Images
img = "./datasets/images/train/30.jpg"
#Inference
results = model(img)
#Results
results.show()
#获取图片array
results.render()[0]
检测效果如下:
检测视频:
python detect.py --weights runs/train/exp12/weights/best.pt --source datasets/BVN.mp4 --view-img