0.YOLOv8代码运行
yolov8的运行与前几代基本一致,因此可以参考此篇博客。
博客地址
0.1代码下载
YOLOv8官方下载地址
下载后直接打开,导入到项目中
本文主要展示使用yolov8的目标检测。
0.2下载所需要的包
如果使用了anoconda的话,首先进入anoconda环境,运行命令
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ ultralytics==0.0.59
pip install -e ultralytics
0.3使用自身的数据集
在v8文件夹内创建一个自己的data文件夹,存入需要使用的yml文件,
0.4修改代码
之前版本的代码核心配置文件都是嵌入到代码中的,但是新版的yolov8的代码是单独的,找到下图中的文件打开,可以看到这是我们需要填写修改的地方。
1.YOLOv8的主要改进点
1.1 yolov8的网络结构图
1.2Backbone
使用的依旧是CSP的思想,YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;
C3模块
C2f模块
1.2 SPPF
SPP,空间金字塔池化。
SPPF,是在yolov5中出现的。
相关的改进有SPP,SPPF,simSPPF,ASPP,RFB,SPPCSPC
1.3 PAN-FPN
FPN是自顶向下,将高层的强语义特征传递下来,对整个金字塔进行增强,不过只增强了语义信息,对定位信息没有传递。PAN就是针对这一点,在FPN的后面添加一个自底向上的金字塔,对FPN补充,将低层的强定位特征传递上去。
YOLOv8的neck结构图