ExtremeNet训练自己的数据

环境

labelme数据转换coco格式用python2,labelme, Ubuntu16.04, python3.7

数据准备

  1. 下载转labelme到coco格式的脚本:https://github.com/wucng/TensorExpand.git
  2. 将1中下载的
    1
    2
    labelme2COCO.py
    TensorExpand/TensorExpand/Object detection/Data_interface/MSCOCO/labelme data

拷贝到labelme的文件夹中

  1. 在labelme标注文件中执行

    1
    python labelme2COCO.py
  2. 3如果正确,将生产new.json,coco格式的标签文件

    1
    mv new.json instances_train2017.json
  3. 下载ExtremeNet,

    1
    https://github.com/xingyizhou/ExtremeNet.git

将图片数据放在

1
ExtremeNet/data/coco/images

中, 将coco格式的标签文件放在

1
ExtremeNet/data/coco/annotations

  1. 1
    2
    3
    cd ExtremeNet/tools
    ```
    执行

python python gen_coco_extreme_points.py

1
生成

instances_extreme_train2017.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
文件

### 安装ExtremeNet

<https://github.com/xingyizhou/ExtremeNet#installation>

### 测试EXtremeNet

<https://github.com/xingyizhou/ExtremeNet#demo>

### 训练

1. 修改
```/
db/coco_extreme.py

56行,我这里模型有3类,改为

self._cat_ids = [1, 2, 3]
  1. utils/debugger.py 103行 num_classes改为类别数,我改为3
  2. demo.py改class_name, 修改为自己的类别名称,推理的时候用
  3. db/detection.py8行改类别数,我改为self._configs["categories"]= 3
  4. models/py_utils/_cpools/exkp.py修改330的num_class为3
  5. ExtremeNet.json修改categories为3, 根据机器情况修改batch_size, max_iter, stepsize, snapshot, chunk_size
  6. 修改model/py_utils/ExtremeNet.py19行out_dim,我修改为3
  7. 执行训练python train.py ExtremeNet