我们简单将 YOLOX 复现过程拆分为3 个步骤,分别是:(1)推理精度对齐(2)训练精度对齐(3)重构。 #(偷偷注释掉)为了方便将官方开源权重迁移到 MMDetection 中,在推理精度对齐过程中,我们没有修改任何模型代码,而且简单的复制开源代码,分别插入 MMDetection 的 backbone 和 head 文件夹下,这样就只需要简单的替换模型 k...
MMDetection 中导入的 MMCV 已经实现了带有 warmup 策略的余弦调度策略,但是比较麻烦的是指数 warmup 策略公式不太一样,并且不具有在最后 15 个 epoch 采用固定最小学习率的功能。为了解决上述问题,且不更改依赖 MMCV 版本,我们是在 MMDetection 中继承了原先的 CosineAnnealingLrUpdaterHook,并重写了相关方法。 class...
具体报错信息由于在内网无法呈现到此,但是我在mmdet的github官方项目中找到了该问题:https://github.com/open-mmlab/mmdetection/issues/7298 截止到目前,该问题被定义为yolox的bug,目前很多评论多以训练图片对应的xml标注文件中不存在标注框,但是我对自己的数据进行了检查,不存在该描述问题,所以也不是空标注问题导致。
可以发现,其前处理流程比较简单:先采用保持宽高比的 resize,然后右下 padding 成指定大小输出,最后是归一化。 在MMDetection 中可以直接通过修改配置文件来支持上述功能: test_pipeline = [dict(type='LoadImageFromFile'),dict(type='MultiScaleFlipAug',img_scale=img_scale,flip=False,transforms=[dict(type='Res...
使用mmdetection微调YOLOX 我们有一个名为DeepPCB的开源PCB缺陷数据集?. 该数据集由1500个图像对组成,每个图像对具有一个无缺陷模板图像和一个具有缺陷的图像,该图像具有6种常见类型缺陷的边界框注释,即open, mouse-bite, short, spur, spurious copper, 和pin-hole。
mmdetection_yolox训练流程一. ***制***制:registry可以看成是一个类映射到一个字符串的映射。from mmcv.cnn import MODELS as MMCV_MODELS from mmcv.utils import Registry #1. 创建注册表(表里填写映射) MODELS = Registry('models', parent=MMCV_MODELS) #2.将类模块注册到注册表中(字符串和类之间映射)...
YOLOX 过滤了小bboxes,而 MMDetection 版本没有做 np.array 转换成 float 后,图像总体均值会有 0.5 左右的差异,而 MMDetection 和 YOLOX 转浮点的时机不同,会造成 0.5 左右的均值像素误差 然而经测试,以上原因均不是导致训练误差的原因,经测试,对齐后的两个 Dataset,image 和 bbox 的误差均在 1e-4 以内...
使用mmdetection微调YOLOX 我们有一个名为DeepPCB的开源PCB缺陷数据集⁵. 该数据集由1500个图像对组成,每个图像对具有一个无缺陷模板图像和一个具有缺陷的图像,该图像具有6种常见类型缺陷的边界框注释,即open, mouse-bite, short, spur, spurious copper, 和pin-hole。
MMDetection: 2.16.0+22c990f 2022-04-02 02:54:37,270 - mmdet - INFO - Distributed training: True 2022-04-02 02:54:38,052 - mmdet - INFO - Config: optimizer = dict( type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005,
使用mmdetection微调YOLOX 我们有一个名为DeepPCB的开源PCB缺陷数据集⁵. 该数据集由1500个图像对组成,每个图像对具有一个无缺陷模板图像和一个具有缺陷的图像,该图像具有6种常见类型缺陷的边界框注释,即open, mouse-bite, short, spur, spurious copper, 和pin-hole。