2021SC@SDUSC
以下是PaddleDetection的配置文件的代码,我经过阅读后,在代码的关键部分和难理解的部分加上了备注:
'''
tree -f#显示显示完整路径
tree -d#显示所有文件夹
└── PaddleDetection #主目录
├── configs #存放配置文件
│ ├──_base_ 各个模块配置
├── dataset #存放数据集,数据集下载脚本,对应各数据集文件夹
│ ├── coco #80类 #物体
│ ├── fddb #1类 #人脸 通常用来评估人脸检测算法
│ ├── mot # 多目标跟踪
│ ├── roadsign_voc #车道线数据 4类
│ ├── voc #20类 #物体
│ └── wider_face #1类 人脸
├── deploy #部署相关
│ ├── cpp #C++部署
│ │ ├── cmake #cmake文件
│ │ ├── docs #部署文档
│ │ ├── include #库头文件
│ │ ├── scripts #依赖库配置脚本,build脚本
│ │ └── src #源码
│ └── python #python部署
├── ppdet #飞桨物体检测套件
│ ├── core #核心部分
│ │ └── config #实例、注册类的配置
│ ├── data #数据处理
│ │ ├── shared_queue #共享队列(数据多线程)
│ │ ├── source #各种数据集类
│ │ ├── tests #测试
│ │ ├── tools #工具(转coco数据格式)
│ │ └── transform #数据增强模块
│ ├── ext_op #增加op
│ │ ├── src #op实现源码
│ │ └── test #op测试
│ ├── modeling #模型结构
│ │ ├── architectures #网络结构
│ │ ├── backbones #主干网络
│ │ ├── heads #头(RPN、loss)
│ │ ├── losses #头(loss)
│ │ ├── mot #多目标跟踪(tracking)
│ │ ├── necks #颈(FPN)
│ │ ├── proposal_generator #建议框生成(anchor、rpnhead)
│ │ ├── reid #重识别
│ │ └── tests #测试
│ ├── py_op #一些前后处理
│ └── utils #实用工具
└── tools #训练,测试,验证,将来还有模型导出
'''
基本设计
#ppdet/core/workspace.py
#如何通过cfg来注册、创建类
from __future__ import absolute_import
from __future__ import print_function
from __future__ import division
import importlib
import os
import sys
import yaml
import copy
import collections
from .config.schema import SchemaDict, SharedConfig, extract_schema
from .config.yaml_helpers import serializable
__all__ = [
'global_config',
'load_config',
'merge_config',
'get_registered_modules',
'create',
'register',
'serializable',
'dump_value',
]
#__all__变量的值是一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称。通过在模块文件中设置 __all__ 变量