mirror of https://github.com/open-mmlab/mmyolo.git
add v0.1.3 changelog (#275)
parent
7f14183082
commit
abcde7679a
|
@ -71,6 +71,11 @@ And the figure of P6 model is in [model_design.md](docs/en/algorithm_description
|
|||
|
||||
## What's New
|
||||
|
||||
💎 **v0.1.3** was released on 10/11/2022:
|
||||
|
||||
1. Fix training failure when saving best weights based on mmengine 0.3.1
|
||||
2. Fix `add_dump_metric` error based on mmdet 3.0.0rc3
|
||||
|
||||
💎 **v0.1.2** was released on 3/11/2022:
|
||||
|
||||
1. Support [YOLOv5/YOLOv6/YOLOX/RTMDet deployments](https://github.com/open-mmlab/mmyolo/blob/main/configs/deploy) for ONNXRuntime and TensorRT
|
||||
|
@ -137,6 +142,7 @@ For different parts from MMDetection, we have also prepared user guides and adva
|
|||
|
||||
- [Data flow](docs/en/advanced_guides/data_flow.md)
|
||||
- [How to](docs/en/advanced_guides/how_to.md)
|
||||
- [Plugins](docs/en/advanced_guides/plugins.md)
|
||||
|
||||
## Overview of Benchmark and Model Zoo
|
||||
|
||||
|
|
|
@ -71,6 +71,11 @@ P6 模型图详见 [model_design.md](docs/zh_CN/algorithm_descriptions/model_des
|
|||
|
||||
## 最新进展
|
||||
|
||||
💎 **v0.1.3** 版本已经在 2022.11.10 发布:
|
||||
|
||||
1. 基于 mmengine 0.3.1 修复保存最好权重时训练失败问题
|
||||
2. 基于 mmdet 3.0.0rc3 修复 `add_dump_metric` 报错 (#253)
|
||||
|
||||
💎 **v0.1.2** 版本已经在 2022.11.3 发布:
|
||||
|
||||
1. 支持 ONNXRuntime 和 TensorRT 的 [YOLOv5/YOLOv6/YOLOX/RTMDet 部署](https://github.com/open-mmlab/mmyolo/blob/main/configs/deploy)
|
||||
|
@ -147,6 +152,7 @@ MMYOLO 用法和 MMDetection 几乎一致,所有教程都是通用的,你也
|
|||
|
||||
- [数据流](docs/zh_cn/advanced_guides/data_flow.md)
|
||||
- [How to](docs/zh_cn/advanced_guides/how_to.md)
|
||||
- [插件](docs/zh_cn/advanced_guides/plugins.md)
|
||||
|
||||
- [解读文章和资源汇总](docs/zh_cn/article.md)
|
||||
|
||||
|
|
|
@ -21,10 +21,7 @@ def parse_args():
|
|||
parser.add_argument('config', help='Config file')
|
||||
parser.add_argument('checkpoint', help='Checkpoint file')
|
||||
parser.add_argument(
|
||||
'--out-dir',
|
||||
default='',
|
||||
help='Path to output directory, '
|
||||
'if the user not set this flag then will show each image')
|
||||
'--out-dir', default='./output', help='Path to output file')
|
||||
parser.add_argument(
|
||||
'--target-layers',
|
||||
default=['backbone'],
|
||||
|
@ -41,6 +38,8 @@ def parse_args():
|
|||
'--device', default='cuda:0', help='Device used for inference')
|
||||
parser.add_argument(
|
||||
'--score-thr', type=float, default=0.3, help='Bbox score threshold')
|
||||
parser.add_argument(
|
||||
'--show', action='store_true', help='Show the featmap results')
|
||||
parser.add_argument(
|
||||
'--channel-reduction',
|
||||
default='select_max',
|
||||
|
@ -112,7 +111,7 @@ def main():
|
|||
|
||||
model = init_detector(args.config, args.checkpoint, device=args.device)
|
||||
|
||||
if not os.path.exists(args.out_dir):
|
||||
if not os.path.exists(args.out_dir) and not args.show:
|
||||
os.mkdir(args.out_dir)
|
||||
|
||||
if args.preview_model:
|
||||
|
@ -158,8 +157,7 @@ def main():
|
|||
filename = os.path.relpath(image_path, args.img).replace('/', '_')
|
||||
else:
|
||||
filename = os.path.basename(image_path)
|
||||
out_file = None if args.out_dir != '' else os.path.join(
|
||||
args.out_dir, filename)
|
||||
out_file = None if args.show else os.path.join(args.out_dir, filename)
|
||||
|
||||
# show the results
|
||||
shown_imgs = []
|
||||
|
@ -183,14 +181,13 @@ def main():
|
|||
arrangement=args.arrangement)
|
||||
shown_imgs.append(shown_img)
|
||||
|
||||
# Add original image
|
||||
shown_imgs.append(img)
|
||||
shown_imgs = auto_arrange_images(shown_imgs)
|
||||
|
||||
progress_bar.update()
|
||||
if out_file:
|
||||
mmcv.imwrite(shown_imgs[..., ::-1], out_file)
|
||||
else:
|
||||
|
||||
if args.show:
|
||||
visualizer.show(shown_imgs)
|
||||
|
||||
print(f'All done!'
|
||||
|
|
|
@ -46,7 +46,7 @@ def main():
|
|||
if args.deploy:
|
||||
switch_to_deploy(model)
|
||||
|
||||
if not os.path.exists(args.out_dir):
|
||||
if not os.path.exists(args.out_dir) and not args.show:
|
||||
os.mkdir(args.out_dir)
|
||||
|
||||
# init visualizer
|
||||
|
|
|
@ -14,3 +14,12 @@ How to
|
|||
:maxdepth: 1
|
||||
|
||||
how_to.md
|
||||
|
||||
|
||||
Plugins
|
||||
************************
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
plugins.md
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
# Plugins
|
|
@ -1,5 +1,30 @@
|
|||
# Changelog
|
||||
|
||||
## v0.1.3(10/11/2022)
|
||||
|
||||
### New Features
|
||||
|
||||
1. Support CBAM plug-in and provide plug-in documentation (#246)
|
||||
2. Add YOLOv5 P6 model structure diagram and related descriptions (#273)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
1. Fix training failure when saving best weights based on mmengine 0.3.1
|
||||
2. Fix `add_dump_metric` error based on mmdet 3.0.0rc3 (#253)
|
||||
3. Fix backbone does not support `init_cfg` issue (#272)
|
||||
4. Change typing import method based on mmdet 3.0.0rc3 (#261)
|
||||
|
||||
### Improvements
|
||||
|
||||
1. `featmap_vis_demo` support for folder and url input (#248)
|
||||
2. Deploy docker file refinement (#242)
|
||||
|
||||
#### Contributors
|
||||
|
||||
A total of 10 developers contributed to this release.
|
||||
|
||||
Thank @kitecats, @triple-Mu, @RangeKing, @PeterH0323, @Zheng-LinXiao, @tkhe, @weikai520, @zytx121, @wanghonglie, @hhaAndroid
|
||||
|
||||
## v0.1.2(3/11/2022)
|
||||
|
||||
### Highlights
|
||||
|
|
|
@ -53,3 +53,4 @@ The detailed instruction of MMYOLO is as follows.
|
|||
|
||||
- [Data flow](https://mmyolo.readthedocs.io/en/latest/advanced_guides/index.html#data-flow)
|
||||
- [How to](https://mmyolo.readthedocs.io/en/latest/advanced_guides/index.html#how-to)
|
||||
- [Plugins](https://mmyolo.readthedocs.io/en/latest/advanced_guides/index.html#plugins)
|
||||
|
|
|
@ -14,3 +14,12 @@ How to
|
|||
:maxdepth: 1
|
||||
|
||||
how_to.md
|
||||
|
||||
|
||||
插件
|
||||
************************
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
plugins.md
|
||||
|
|
|
@ -27,7 +27,7 @@ model = dict(
|
|||
<details open>
|
||||
<summary><b>支持的插件</b></summary>
|
||||
|
||||
- [x] [CBAM](mmyolo/models/plugins)
|
||||
- [x] [CBAM](https://github.com/open-mmlab/mmyolo/blob/dev/mmyolo/models/plugins/cbam.py#L84)
|
||||
- [x] [GeneralizedAttention](https://github.com/open-mmlab/mmcv/blob/2.x/mmcv/cnn/bricks/generalized_attention.py#L13)
|
||||
- [x] [NonLocal2d](https://github.com/open-mmlab/mmcv/blob/2.x/mmcv/cnn/bricks/non_local.py#L250)
|
||||
- [x] [ContextBlock](https://github.com/open-mmlab/mmcv/blob/2.x/mmcv/cnn/bricks/context_block.py#L18)
|
||||
|
|
|
@ -1,5 +1,30 @@
|
|||
# 更新日志
|
||||
|
||||
## v0.1.3(10/11/2022)
|
||||
|
||||
### 新特性
|
||||
|
||||
1. 支持 CBAM 插件并提供插件文档 (#246)
|
||||
2. 新增 YOLOv5 P6 模型结构图和相关说明 (#273)
|
||||
|
||||
### Bug 修复
|
||||
|
||||
1. 基于 mmengine 0.3.1 修复保存最好权重时训练失败问题
|
||||
2. 基于 mmdet 3.0.0rc3 修复 `add_dump_metric` 报错 (#253)
|
||||
3. 修复 backbone 不支持 `init_cfg` 问题 (#272)
|
||||
4. 基于 mmdet 3.0.0rc3 改变 typing 导入方式 (#261)
|
||||
|
||||
### 完善
|
||||
|
||||
1. `featmap_vis_demo` 支持文件夹和 url 输入 (#248)
|
||||
2. 部署 docker 文件完善 (#242)
|
||||
|
||||
### 贡献者
|
||||
|
||||
总共 10 位开发者参与了本次版本
|
||||
|
||||
谢谢 @kitecats, @triple-Mu, @RangeKing, @PeterH0323, @Zheng-LinXiao, @tkhe, @weikai520, @zytx121, @wanghonglie, @hhaAndroid
|
||||
|
||||
## v0.1.2(3/11/2022)
|
||||
|
||||
### 亮点
|
||||
|
|
|
@ -53,5 +53,6 @@ MMYOLO 文件结构和 MMDetection 完全一致。为了能够充分复用 MMDet
|
|||
|
||||
- [数据流](https://mmyolo.readthedocs.io/zh_CN/latest/advanced_guides/index.html#id1)
|
||||
- [How to](https://mmyolo.readthedocs.io/zh_CN/latest/advanced_guides/index.html#how-to)
|
||||
- [插件](https://mmyolo.readthedocs.io/zh_CN/latest/advanced_guides/index.html#id3)
|
||||
|
||||
6. [解读文章和资源汇总](article.md)
|
||||
|
|
|
@ -10,14 +10,15 @@ from mmyolo.registry import MODELS
|
|||
|
||||
|
||||
class ChannelAttention(BaseModule):
|
||||
"""ChannelAttention
|
||||
"""ChannelAttention.
|
||||
|
||||
Args:
|
||||
channels (int): The input (and output) channels of the
|
||||
ChannelAttention.
|
||||
reduce_ratio (int): Squeeze ratio in ChannelAttention, the intermediate
|
||||
channel will be ``int(channels/ratio)``. Default: 16.
|
||||
channel will be ``int(channels/ratio)``. Defaults to 16.
|
||||
act_cfg (dict): Config dict for activation layer
|
||||
Default: (dict(type='ReLU'), dict(type='Sigmoid')).
|
||||
Defaults to dict(type='ReLU').
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
|
@ -57,7 +58,7 @@ class SpatialAttention(BaseModule):
|
|||
"""SpatialAttention
|
||||
Args:
|
||||
kernel_size (int): The size of the convolution kernel in
|
||||
SpatialAttention. Default: 7.
|
||||
SpatialAttention. Defaults to 7.
|
||||
"""
|
||||
|
||||
def __init__(self, kernel_size: int = 7):
|
||||
|
@ -82,29 +83,27 @@ class SpatialAttention(BaseModule):
|
|||
|
||||
@MODELS.register_module()
|
||||
class CBAM(BaseModule):
|
||||
"""Convolutional Block Attention Module.
|
||||
"""Convolutional Block Attention Module. arxiv link:
|
||||
https://arxiv.org/abs/1807.06521v2.
|
||||
|
||||
arxiv link: https://arxiv.org/abs/1807.06521v2
|
||||
Args:
|
||||
in_channels (int): The input (and output) channels of the CBAM.
|
||||
reduce_ratio (int): Squeeze ratio in ChannelAttention, the intermediate
|
||||
channel will be ``int(channels/ratio)``. Default: 16.
|
||||
channel will be ``int(channels/ratio)``. Defaults to 16.
|
||||
kernel_size (int): The size of the convolution kernel in
|
||||
SpatialAttention. Default: 7.
|
||||
SpatialAttention. Defaults to 7.
|
||||
act_cfg (dict): Config dict for activation layer in ChannelAttention
|
||||
Defaults: dict(type='ReLU').
|
||||
Defaults to dict(type='ReLU').
|
||||
init_cfg (dict or list[dict], optional): Initialization config dict.
|
||||
Defaults to None.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
in_channels: int,
|
||||
reduce_ratio: int = 16,
|
||||
kernel_size: int = 7,
|
||||
act_cfg: dict = dict(type='ReLU'),
|
||||
init_cfg: OptMultiConfig = None,
|
||||
):
|
||||
def __init__(self,
|
||||
in_channels: int,
|
||||
reduce_ratio: int = 16,
|
||||
kernel_size: int = 7,
|
||||
act_cfg: dict = dict(type='ReLU'),
|
||||
init_cfg: OptMultiConfig = None):
|
||||
super().__init__(init_cfg)
|
||||
self.channel_attention = ChannelAttention(
|
||||
channels=in_channels, reduce_ratio=reduce_ratio, act_cfg=act_cfg)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
|
||||
__version__ = '0.1.2'
|
||||
__version__ = '0.1.3'
|
||||
|
||||
from typing import Tuple
|
||||
|
||||
|
|
Loading…
Reference in New Issue