README.md 3.96 KB
Newer Older
dcuai's avatar
dcuai committed
1
# CenterNet
dengjb's avatar
dengjb committed
2
3
4
5
6
7
## 论文
`Objects as Points`<br>
[论文链接](https://arxiv.org/pdf/1904.07850.pdf)<br>
`Probabilistic two-stage detection`<br>
[论文链接](https://arxiv.org/abs/2103.07461)
## 模型结构
dengjb's avatar
dengjb committed
8
Centernet对于输入图像(512,512,3),下采样率为4,CenterNet将得到平面大小为(128,128)的输出。CenterNet的prediction head也由三个分支组成,分别为heatmap head,dimension head和offset head。
dengjb's avatar
dengjb committed
9
10
11
12
13
14
![模型结构](resources%2Fimg.png)
## 算法原理
 CenterNet是一种anchor free的目标检测算法,就是直接回归检测到的物体而不是回归anchors,不需要提前设定anchors
![img_1.png](resources%2Fimg_1.png)
## 环境配置
### Docker(方法一)
dengjb's avatar
dengjb committed
15

dengjb's avatar
dengjb committed
16
```
dcuai's avatar
dcuai committed
17
18
docker pull  image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal:/opt/hyhal:ro --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash
dengjb's avatar
dengjb committed
19
20
21
22
23
24
25
26
27
28
29
cd /path/workspace/
pip install mmdet==3.2.0 -i https://mirrors.aliyun.com/pypi/simple/
```
### Dockerfile(方法二)
```
cd ./docker
docker build --no-cache -t mmdet:3.0 .
docker run -it -v /path/your_code_data/:/path/your_code_data/ --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash
cd /path/workspace/
```
### Anaconda(方法三)
chenzk's avatar
chenzk committed
30
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.sourcefind.cn/tool/
dengjb's avatar
dengjb committed
31
```
dcuai's avatar
dcuai committed
32
33
34
35
36
DTK软件栈: dtk24.04.1
python: python3.10
torch: 2.1.0
torchvision: 0.16.0
mmcv: 2.0.1
dengjb's avatar
dengjb committed
37
38
39
40
41
42
43
44
45
46
47
48
49
50

```

Tips:以上dtk软件栈、python、torch、mmcv等DCU相关工具版本需要严格一一对应

2、其他非特殊库直接按照requirements.txt安装

```
cd workspace/
pip install mmdet==3.2.0 -i https://mirrors.aliyun.com/pypi/simple/
```

## 数据集
COCO2017(在网络良好的情况下,如果没有下载数据集,程序会默认在线下载数据集)
dcuai's avatar
dcuai committed
51
52
53
54
55
- 官方下载地址:
  - [训练数据](http://images.cocodataset.org/zips/train2017.zip)
  - [验证数据](http://images.cocodataset.org/zips/val2017.zip)
  - [测试数据](http://images.cocodataset.org/zips/test2017.zip)
  - [标签数据](https://github.com/ultralytics/yolov5/releases/download/v1.0/coco2017labels.zip)
dengjb's avatar
dengjb committed
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

数据集的目录结构如下:

```
├── images 
│   ├── train2017
│   ├── val2017
│   ├── test2017
├── labels
│   ├── train2017
│   ├── val2017
├── annotations
│   ├── instances_val2017.json
├── LICENSE
├── README.txt 
├── test-dev2017.txt
├── train2017.txt
├── val2017.txt

```

## 训练
- 数据集放置位置默认为当前目录下 data/
- 如需要变更数据集目录 请修改 configs/\_base_\/datasets/coco_detection.py 下的 data_root
```python
bash ./train.sh
```
## 推理
- 可使用官方模型权重进行推理,也可使用自己训练模型权重进行推理
- 这里以官方模型推理举例[[下载地址:centernet-update_r50-caffe_fpn_ms-1x_coco_20230512_203845-8306baf2.pth](https://download.openmmlab.com/mmdetection/v3.0/centernet/centernet-update_r50-caffe_fpn_ms-1x_coco/centernet-update_r50-caffe_fpn_ms-1x_coco_20230512_203845-8306baf2.pth)]
```python
# 官方推理代码
python demo/image_demo.py demo/demo.jpg ./configs/centernet/centernet-update_r50-caffe_fpn_ms-1x_coco.py --weights centernet-update_r50-caffe_fpn_ms-1x_coco_20230512_203845-8306baf2.pth --device cuda
```
## result
![demo.jpg](resources%2Fdemo.jpg)
dcuai's avatar
dcuai committed
92
### 精度
dengjb's avatar
dengjb committed
93
|       模型名称       | batchsize | amp混精 |  Box AP  |
dengjb's avatar
dengjb committed
94
95
96
97
98
99
100
101
|:----------------:|:---------:|:-----:|:----:|
| centernet-update |    16     |  off  | 40.1 |
## 应用场景
### 算法类别
`目标检测`
### 热点应用行业
`金融,交通,教育`
## 源码仓库及问题反馈
dcuai's avatar
dcuai committed
102
- https://developer.sourcefind.cn/codes/modelzoo/centernet_mmcv
dengjb's avatar
dengjb committed
103
104
## 参考资料
- https://github.com/open-mmlab/mmdetection/tree/v3.2.0