Commit 870672c2 authored by yaoht's avatar yaoht
Browse files

fix README

parent fcfce60d
Python/Result.jpg

121 KB | W: | H:

Python/Result.jpg

121 KB | W: | H:

Python/Result.jpg
Python/Result.jpg
Python/Result.jpg
Python/Result.jpg
  • 2-up
  • Swipe
  • Onion skin
opencv-contrib-python==4.6.0.66
numpy
argparse
\ No newline at end of file
# YoloV8 # YoloV8
## 模型介绍 ## 论文
YoloV8是一种单阶段目标检测算法,该算法在YOLOV5的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。
## 模型结构 ## 模型结构
YoloV8模型的主要改进思路有以下几点: YoloV8是一种单阶段目标检测算法,该算法在YOLOV5的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。
<img src=./Doc/yolov8.png style="zoom:100%;" align=middle>
## 算法原理
- 骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。 YOLOv8算法通过将图像划分为不同大小的网格,预测每个网格中的目标类别和边界框,利用特征金字塔结构和自适应的模型缩放来实现高效准确的实时目标检测。
- 骨干网络和 Neck 部分将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,大幅提升了模型性能。
- Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free. - Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free.
- Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss. - Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss.
- 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度 - 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度
<img src=./Doc/yolov8_model.jpg style="zoom:100%;" align=middle>
## Python版本推理 ## 环境配置
下面介绍如何运行Python代码示例,Python示例的详细说明见Doc目录下的Tutorial_Python.md。 ### Docker(方法一)
### 下载镜像
下载MIGraphX镜像: 拉取镜像:
```shell ```shell
docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.0.0-centos7.6-dtk23.04.1-py38-latest docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.0.0-centos7.6-dtk23.04.1-py38-latest
``` ```
### 设置Python环境变量 创建并启动容器:
```shell
docker run --shm-size 16g --network=host --name=yolov8_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/yolov8_migraphx:/home/yolov8_migraphx -it <Your Image ID> /bin/bash
# 激活dtk
source /opt/dtk/env.sh
```
### Dockerfile(方法二)
```shell
cd ./docker
docker build --no-cache -t yolov8_migraphx:2.0 .
docker run --shm-size 16g --network=host --name=yolov8_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/yolov8_migraphx:/home/yolov8_migraphx -it <Your Image ID> /bin/bash
# 激活dtk
source /opt/dtk/env.sh
```
## 数据集
根据提供的样本数据,进行目标检测。
## 推理
### Python版本推理
下面介绍如何运行Python代码示例,Python示例的详细说明见Doc目录下的Tutorial_Python.md。
#### 设置环境变量
```shell ```shell
export PYTHONPATH=/opt/dtk/lib:$PYTHONPATH export PYTHONPATH=/opt/dtk/lib:$PYTHONPATH
``` ```
### 安装依赖 #### 安装依赖
```shell ```shell
# 进入python示例目录 # 进入python示例目录
cd <path_to_yolov8_migraphx>/Python cd <path_to_yolov8_migraphx>/Python
# 安装依赖 # 安装依赖
pip install -r requirements.txt pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
``` ```
### 运行示例 #### 运行示例
YoloV8模型的推理示例程序是YoloV8_infer_migraphx.py,使用如下命令运行该推理示例: YoloV8模型的推理示例程序是YoloV8_infer_migraphx.py,使用如下命令运行该推理示例:
...@@ -60,42 +95,24 @@ cd Python/ ...@@ -60,42 +95,24 @@ cd Python/
python YoloV8_infer_migraphx.py --staticInfer python YoloV8_infer_migraphx.py --staticInfer
``` ```
程序运行结束后,在当前目录生成YOLOV8静态推理检测结果可视化图像Result.jpg
<img src="./Resource/Images/Result.jpg" alt="Result" style="zoom: 50%;" />
2. 动态推理 2. 动态推理
```shell ```shell
python YoloV8_infer_migraphx.py --dynamicInfer python YoloV8_infer_migraphx.py --dynamicInfer
``` ```
程序运行结束会在当前目录生成YoloV8动态推理检测结果可视化图像Result0.jpg、Result1.jpg。 ### C++版本推理
<img src="./Resource/Images/Result0.jpg" alt="Result_2" style="zoom: 50%;" />
<img src="./Resource/Images/Result1.jpg" alt="Result1" style="zoom: 50%;" />
## C++版本推理
下面介绍如何运行C++代码示例,C++示例的详细说明见Doc目录下的Tutorial_Cpp.md。 下面介绍如何运行C++代码示例,C++示例的详细说明见Doc目录下的Tutorial_Cpp.md。
### 下载镜像
下载MIGraphX镜像: #### 构建工程
```shell
docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.0.0-centos7.6-dtk23.04.1-py38-latest
```
### 构建工程
```shell ```shell
rbuild build -d depend rbuild build -d depend
``` ```
### 设置环境变量 #### 设置环境变量
将依赖库依赖加入环境变量LD_LIBRARY_PATH,在~/.bashrc中添加如下语句: 将依赖库依赖加入环境变量LD_LIBRARY_PATH,在~/.bashrc中添加如下语句:
...@@ -109,7 +126,7 @@ export LD_LIBRARY_PATH=<path_to_yolov8_migraphx>/depend/lib64/:$LD_LIBRARY_PATH ...@@ -109,7 +126,7 @@ export LD_LIBRARY_PATH=<path_to_yolov8_migraphx>/depend/lib64/:$LD_LIBRARY_PATH
source ~/.bashrc source ~/.bashrc
``` ```
### 运行示例 #### 运行示例
YoloV8示例程序编译成功后,执行如下指令运行该示例: YoloV8示例程序编译成功后,执行如下指令运行该示例:
...@@ -127,26 +144,64 @@ cd build/ ...@@ -127,26 +144,64 @@ cd build/
./YOLOV8 0 ./YOLOV8 0
``` ```
程序运行结束后,会在当前目录生成YOLOV8静态推理检测结果可视化图像Result.jpg
<img src="./Resource/Images/Result.jpg" alt="Result" style="zoom:50%;" />
2. 动态推理 2. 动态推理
```shell ```shell
./YOLOV8 1 ./YOLOV8 1
``` ```
程序运行结束会在build目录生成YoloV8动态shape推理检测结果可视化图像Result0.jpg、Result1.jpg。 ## result
### Python版本
静态推理:
python程序运行结束后,会在当前目录生成YOLOV8静态推理检测结果可视化图像。
<img src="./Python/Result.jpg" alt="Result" style="zoom: 50%;" />
动态推理:
python程序运行结束后,会在当前目录生成YoloV8动态推理检测结果可视化图像。
<img src="./Python/Result0.jpg" alt="Result_2" style="zoom: 50%;" />
<img src="./Python/Result1.jpg" alt="Result1" style="zoom: 50%;" />
### C++版本
静态推理:
C++程序运行结束后,会在build目录生成YOLOV8静态推理检测结果可视化图像。
<img src="./Resource/Images/Result.jpg" alt="Result" style="zoom:50%;" />
动态推理:
C++程序运行结束后,会在build目录生成YoloV8动态shape推理检测结果可视化图像。
<img src="./Resource/Images/Result0.jpg" alt="Result" style="zoom:50%;" /> <img src="./Resource/Images/Result0.jpg" alt="Result" style="zoom:50%;" />
<img src="./Resource/Images/Result1.jpg" alt="Result" style="zoom:50%;" /> <img src="./Resource/Images/Result1.jpg" alt="Result" style="zoom:50%;" />
### 精度
## 应用场景
### 算法类别
`目标检测`
### 热点应用行业
`交通`,`教育`,`化工`
## 源码仓库及问题反馈 ## 源码仓库及问题反馈
https://developer.hpccube.com/codes/modelzoo/yolov8_migraphx https://developer.hpccube.com/codes/modelzoo/yolov8_migraphx
## 参考 ## 参考资料
https://github.com/ultralytics/ultralytics https://github.com/ultralytics/yolov8
Resource/Images/Result.jpg

487 KB | W: | H:

Resource/Images/Result.jpg

124 KB | W: | H:

Resource/Images/Result.jpg
Resource/Images/Result.jpg
Resource/Images/Result.jpg
Resource/Images/Result.jpg
  • 2-up
  • Swipe
  • Onion skin
Resource/Images/Result0.jpg

183 KB | W: | H:

Resource/Images/Result0.jpg

184 KB | W: | H:

Resource/Images/Result0.jpg
Resource/Images/Result0.jpg
Resource/Images/Result0.jpg
Resource/Images/Result0.jpg
  • 2-up
  • Swipe
  • Onion skin
Resource/Images/Result1.jpg

488 KB | W: | H:

Resource/Images/Result1.jpg

490 KB | W: | H:

Resource/Images/Result1.jpg
Resource/Images/Result1.jpg
Resource/Images/Result1.jpg
Resource/Images/Result1.jpg
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment