YOLO视觉学习
↪︎初步接触深度学习视觉检测,主要为学习YOLOV8为初步入门使用教程学习🫣
1. 环境配置
(发现基本上的学习历程大部分都卡在了环境搭建😭,所以我尽量把细节和流程写详细一点!)
1.1 安装miniconda
安装miniconda版本为py38windos版本:
🔹https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
【主要用于虚拟环境的配置,在python开发中都可以用的到】
1.2 虚拟环境搭建
- (1) 在conda终端中新建一个名为yolov8的虚拟环境,指定python版本为3.8:conda create -n yolov8 python=3.8【指定python版本位3.8版本】
- (2) 激活/切换到yolov8虚拟环境:conda activate yolov8(虚拟环境名称)
1.3 镜像源配置(主要是方便本地下载)
pypi配置国内清华镜像:(替换为长期,就是将你以后的pip安装下载的通道改为从国内的镜像来下载,大部分的库或者安装都是在国外网站,下载比较慢,所以替换镜像为清华源,还有其他的类似的阿里等等)
🔹https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
1.4 pytorch环境安装
pytorch环境安装:https://pytorch.org/(注意选择合适版本)
1.5安装ultralytics(yolov8):
- (1) 安装zip总文件:
🔹https://github.com/ultralytics/ultralytics - (2) 终端进入文件夹\ultralytics-main输入命令:pip install -e . 【后面的点要带!】
【详细介绍还是不够的话可以参考此b站视频🤗🤗】 - (3) ultralytics官方文档:
🔹https://docs.ultralytics.com/zh/
2. 模型预测及训练使用
2.1 标注图片环境下载
- (1) 下载labelimg:pip install labelimg
- (2) 启动labelimg:labelimg
2.2 训练模型
- (1) 标注完文件将文件创建好:
- Train-项目名
- images
- train:(存放所有照片)
- val:(存放验证集照片)
- labels
- train:(存放所有标注后的.txt)
- val:(存放验证标志.txt)
- classes.txt(标注种类文件)
- images
- Train-项目名
- (2) 创建好放到Train-项目名文件将文件放到datasets文件夹内
- (3) 写好相应的yaml文件之后开始到tarin.py文件填好相应的文件路径和名称,最后开始训练
- 配置.yaml文件示例
1 2 3 4 5 6 7 8 9 10
path: Train-项目名 train: images/train val: images/val test: #可选项 names: 0: 标注时第一个标注对象名称 1: 标注时第二个标注对象名称 nc: 对象种类个数
- train.py文件示例
1 2 3 4 5 6 7
from ultralytics import YOLO model = YOLO('yolov8n.pt') #参考预测模型文件,如果是自己的可以放自己last.pt文件继续训练 model.train(data='配置.yaml',workers=0,epochs=50,batch=16)#后面参数可自行根据训练硬件配置选择 print("训练完成!")
- 配置.yaml文件示例
- (4) 训练完最终模型文件存放在runs/detect/trainxx/weights/xxx.pt
2.3 跑训练模型效果
简单使用示例代码:
|
|
3. 最终训练效果展示
下面是我训练YOLOv8模型后的检测效果照片:(用的是我朋友之前在人民公园跟大爷一起踢毽子的视频,此处肖像权省略略略略😝😝😝,视频太大传不上去,又不想上传到地方托管,所以只取了其中一张照片)
视频:
YOLOv8模型在自定义数据集上的检测效果,数据集我训练的比较少,最终的视频效果一般,后面需要的话还是增大数据训练集
4. 学习心得总结
🔅初步整个学习历程下来还是在配置训练环境,主要是学习到windos系统下的虚拟环境的配置,还有yolov8主要训练流程还有打标工具labelimg下载等等。详细的系统深度学习还有其他的标注工具可以参考小土堆up。后面还有更深度的具体如何实现深度学习的方法,卷积等等算法实现可以为后续深入地学习了解。还有后面如何将YOLO视觉具体应用到类似ROS上,如何视觉和底盘或者机械臂等协同工作的流程还要继续学习研究!本篇只作为初步入门学习使用YOLO😊.