README.md 3.74 KB
Newer Older
yaoht's avatar
yaoht committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# YoloV8

## 模型介绍

YoloV8是一种单阶段目标检测算法,该算法在YOLOV5的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。

## 模型结构

YoloV8模型的主要改进思路有以下几点:

- 骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。
- Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free.
- Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss.
- 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度


## Python版本推理

下面介绍如何运行Python代码示例,Python示例的详细说明见Doc目录下的Tutorial_Python.md。

### 下载镜像

下载MIGraphX镜像: 

```shell
docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.0.0-centos7.6-dtk23.04.1-py38-latest
```

### 设置Python环境变量

```shell
export PYTHONPATH=/opt/dtk/lib:$PYTHONPATH
```

### 安装依赖

```shell
# 进入python示例目录
cd <path_to_yolov8_migraphx>/Python

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

### 运行示例

YoloV8模型的推理示例程序是YoloV8_infer_migraphx.py,使用如下命令运行该推理示例:

```shell
# 进入python目录
cd <path_to_yolov8_migraphx>

# 进入Python目录
cd Python/
```

1. 静态推理

```shell
python YoloV8_infer_migraphx.py --staticInfer
```

程序运行结束后,在当前目录生成YOLOV8静态推理检测结果可视化图像Result.jpg

<img src="./Resource/Images/Result.jpg" alt="Result" style="zoom: 50%;" />

2. 动态推理

```shell
python YoloV8_infer_migraphx.py --dynamicInfer
```

程序运行结束会在当前目录生成YoloV8动态推理检测结果可视化图像Result0.jpg、Result1.jpg。

<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。

### 下载镜像

下载MIGraphX镜像: 

```shell
docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.0.0-centos7.6-dtk23.04.1-py38-latest
```


### 构建工程

```shell
rbuild build -d depend
```

### 设置环境变量

将依赖库依赖加入环境变量LD_LIBRARY_PATH,在~/.bashrc中添加如下语句:

```shell
export LD_LIBRARY_PATH=<path_to_yolov8_migraphx>/depend/lib64/:$LD_LIBRARY_PATH
```

然后执行:

```shell
source ~/.bashrc
```

### 运行示例

YoloV8示例程序编译成功后,执行如下指令运行该示例:

```shell
# 进入yolov8 migraphx工程根目录
cd <path_to_yolov8_migraphx>

# 进入build目录
cd build/
```

1. 静态推理

```shell
./YOLOV8 0
```

程序运行结束后,会在当前目录生成YOLOV8静态推理检测结果可视化图像Result.jpg

<img src="./Resource/Images/Result.jpg" alt="Result" style="zoom:50%;" />

2. 动态推理

```shell
./YOLOV8 1
```

程序运行结束会在build目录生成YoloV8动态shape推理检测结果可视化图像Result0.jpg、Result1.jpg。

<img src="./Resource/Images/Result0.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://github.com/ultralytics/ultralytics