"...centerface_pytorch.git" did not exist on "49a371b22676d050a19771d02ad6e2a2c2542969"
README.md 3.46 KB
Newer Older
yaoht's avatar
yaoht committed
1
# YOLOX
yaoht's avatar
yaoht committed
2
3
4
5
6
7
8

## 论文

https://arxiv.org/abs/2107.08430

## 模型结构

yaoht's avatar
yaoht committed
9
YOLOX是一种单阶段目标检测算法,该算法以YoloV3(Darknet53作为backbone)作为基线,在Decoupled Head,Data Aug,Anchor Free 和样本匹配(SimOTA)添加了一些新的改进思路,使其速度与精度都得到了极大的提升。
yaoht's avatar
yaoht committed
10
11
12
13
14
15


<img src=./Doc/yolox_model.png style="zoom:100%;" align=middle>

## 算法原理

yaoht's avatar
yaoht committed
16
YOLOX算法的改进简单总结主要有三点,decoupled head、anchor-free以及advanced label assigning strategy(SimOTA)。
yaoht's avatar
yaoht committed
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



## 环境配置

### Docker(方法一)

拉取镜像:

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

创建并启动容器:

```shell
docker run --shm-size 16g --network=host --name=yolox_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/yolox_migraphx:/home/yolox_migraphx -it <Your Image ID> /bin/bash

# 激活dtk
source /opt/dtk/env.sh
```

### Dockerfile(方法二)

```shell
cd ./docker
docker build --no-cache -t yolox_migraphx:2.0 .

docker run --shm-size 16g --network=host --name=yolox_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/yolox_migraphx:/home/yolox_migraphx -it <Your Image ID> /bin/bash

# 激活dtk
source /opt/dtk/env.sh
```

## 数据集

根据提供的样本数据,进行目标检测。

## 推理

### Python版本推理

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

#### 设置环境变量

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

#### 安装依赖

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

# 安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```

#### 运行示例

yaoht's avatar
yaoht committed
79
YOLOX模型的推理示例程序是yolox_infer_migraphx.py,使用如下命令运行该推理示例:
yaoht's avatar
yaoht committed
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


1. 静态推理

```shell
python yolox_infer_migraphx.py --staticInfer
```



### C++版本推理

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


#### 构建工程

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

#### 设置环境变量

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

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

然后执行:

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

#### 运行示例

yaoht's avatar
yaoht committed
117
YOLOX示例程序编译成功后,执行如下指令运行该示例:
yaoht's avatar
yaoht committed
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

```shell
# 进入yolox migraphx工程根目录
cd <path_to_yolox_migraphx>

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

1. 静态推理

```shell
./YOLOX 0
```


## result

### Python版本

静态推理:

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

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


### C++版本

静态推理:

C++程序运行结束后,会在build目录生成YOLOX静态推理检测结果可视化图像。

yaoht's avatar
yaoht committed
151
<img src="./Resource/Images/Result_cpp.jpg" alt="Result" style="zoom:50%;" />
yaoht's avatar
yaoht committed
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175



### 精度



## 应用场景

### 算法类别

`目标检测`

### 热点应用行业

`交通`,`教育`,`化工`

## 源码仓库及问题反馈

https://developer.hpccube.com/codes/modelzoo/yolox_migraphx

## 参考资料

https://github.com/Megvii-BaseDetection/YOLOX