CenterNet代码结构

1. CenterNet代码结构主要部分:

CenterNet
    |
    |--data  # 数据存放
    |
    |--models   # 训练好的模型
    |
    |--src   # 源码

1.1 源码结构:

src # 源码结构
  |
  |-- lib    # 本项目的lib
  |
  |-- tools  # 使用的工具
  |
  |-- _init_path.py  # 将lib加入sys.path, 使得调用库的第一顺位目录为本项目的lib
  |
  |-- demo.py # 给出的方便实用的demo
  |
  |-- main.py # 整体流程
  |
  |-- test.py # 显然,是test

1.1.1 lib结构:

lib  # 本部分是作者自己写的模块
  | 
  |-- datasets  # 构建dataset
  |
  |-- detectors # 构建detector
  | 
  |-- external  # 引入的外部库,如nms
  |
  |-- models    # 网络模型
  |
  |-- trains    # 训练过程
  | 
  |-- utils     # 工具:如image_augumentation
  |
  |-- logger.py # 日志记录
  |
  |-- opt.py    # 定义和处理命令行参数

1.1.1.1. datasets结构:

datasets  
  |
  |---dataset  # 解析各数据集
        |---coco.py     # Coco数据集
        |---coco_hp.py  # Coco human pose
        |---kitti.py    # kitti
        |---pascal.py   # PascalVOC
  |
  |---sample   # 针对不同的网络提取所需数据
        |---ctdet.py       # CenterNet
        |---ddd.py         # 3D Detection
        |---exdet.py       # ExtremeNet
        |---multi_pose.py  # 
  |
  |---data_factory.py  # 整合dataset和sample,构建完整的pipeline

'''
实际上,一般构建Dataset我们都会继承torch.utils.data.Dataset, 
       一般都会重写__init__ 、__getitem__ 和 __len__ 三个函数,
这里,__init__、__len__在dataset实现,而 __getitem__在sample中
'''

1.1.2 tools结构:

tools  # 大部分是各数据集的验证模块以及处理工具
  |
  |-- kitti_aval  # kitti数据集的验证
  |
  |-- voc_eval_lib 
  |
  |-- _init_path # 将lib加入sys.path
  |
  |-- calc_coco_overlap.py # 计算IoU相关
  |
  |-- convert_hourglass_weight.py
  |
  |-- convert_kitti_to_coco.py
  |
  |-- eval_coco.py
  |
  |-- eval_coco_hp.py
  |
  |-- merge_pascal_json.py
  |
  |-- reval.py 
  |
  |-- vis_pred.py 

你可能感兴趣的:(CenterNet)