Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade mmyolo version to v0.6.0 #1

Merged
merged 44 commits into from
Oct 8, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
557f304
[Fix] Fix typos in the YOLOv8 diagram (#621)
RangeKing Mar 6, 2023
bda1050
[Feature] YOLOv5 supports using mask annotation to optimize bbox (#565)
Nioolek Mar 6, 2023
3568585
Add yolov8 deepstream config (#633)
triple-Mu Mar 6, 2023
69b43e6
[Feature] Support YOLOv5u inference (#624)
RangeKing Mar 7, 2023
421be53
[Docs] Add Multi-scale training and testing (#630)
hhaAndroid Mar 7, 2023
b4bf125
fix the browse_dataset for visualization of test and val (#641)
tang576225574 Mar 8, 2023
dab0548
optimize the convert_kd_ckpt_to_student.py file (#647)
tang576225574 Mar 9, 2023
3118eef
delete easydeploy register (#634)
triple-Mu Mar 9, 2023
cbf5a80
Adjust the order of package imports in boxam_vis_demo.py (#655)
RangeKing Mar 13, 2023
71fc567
[Docs] Add an ionogram example in MMYOLO application (#643)
VoyagerXvoyagerx Mar 13, 2023
6341f0e
Use num_base_priors to init bias instead of 3 (#658)
Nioolek Mar 14, 2023
624602c
fix installaion en doc error (#662)
zgzhengSEU Mar 17, 2023
8d67cea
fix yolox-l ckpt link (#677)
Ben-Louis Mar 20, 2023
5a96fcd
[Docs] Add training and testing tricks (#659)
hhaAndroid Mar 20, 2023
ae90f5a
add en doc warning_notes (#690)
kitecats Mar 27, 2023
ac6f7e1
FAQ translate (#693)
xin-li-67 Mar 29, 2023
77f9d1a
[Docs] Add en doc training_testing_tricks (#691)
kitecats Mar 29, 2023
bb43aa1
[Docs] Fix typos in the YOLOv7 diagram (#710)
RangeKing Apr 8, 2023
933fbb7
Fixed some errors in the documentation. (#714)
zhangrui-wolf Apr 8, 2023
e02c558
Add case_sensitive=False to get_files_list to also return images with…
kikefdezl Apr 17, 2023
1e266da
[Enhance] New easydeploy for extending new features. (#732)
triple-Mu Apr 17, 2023
927e0a4
Support setting the cache_size_limit parameter and support mmdet 3.0.…
hhaAndroid Apr 18, 2023
1aa1ecd
Support model-only inference (#733)
triple-Mu Apr 20, 2023
9f3adc4
[FEATURE] Support YOLOv6 3.0 inference (#744)
Qingrenn Apr 25, 2023
600343e
[Feature] Support YOLOv5 instance segmentation (#735)
JosonChan1998 Apr 27, 2023
5f447b2
update readme of project project (#757)
kitecats May 4, 2023
887d3dd
Update docs.txt (#766)
RangeKing May 10, 2023
e820315
Fix copypaste in yolov5-ins l/x config (#756)
JosonChan1998 May 10, 2023
6ecebdb
Support yolox-pose based on mmpose (#694)
yechenzhi May 15, 2023
37d5fcb
Update installation.md (#775)
danielhonies May 15, 2023
f08126a
Add 15_minutes_object_detection.ipynb (#632)
RangeKing May 15, 2023
65663d5
[Docs] Fixed the wrong url. (#764)
Lum1104 May 15, 2023
a3b6ae1
Fix lazy import of mmpose (#778)
hhaAndroid May 17, 2023
1e5372e
fix gardcam error using in mmdet (#779)
hhaAndroid May 17, 2023
106bec4
update deploy docs (#785)
huayuan4396 Jun 12, 2023
85958c8
[Fix] Fix ppyoloerandomcrop (#817)
Nioolek Jul 19, 2023
9aff22b
[Fix] fix path of analyze_logs.py in log_analysis.md (#831)
FeiGeChuanShu Aug 15, 2023
514a100
Fix typo (#828)
keonly Aug 15, 2023
729bdac
[Docs] Create 15 minutes instance segmentation tutorial. (#765)
Lum1104 Aug 15, 2023
fa86dd2
add changelog (#851)
hhaAndroid Aug 15, 2023
8c4d9dc
Bump version to 0.6.0
hhaAndroid Aug 15, 2023
f382d64
Merge remote-tracking branch 'upstream/main' into mmyolo-v0.6.0
guyleaf Oct 4, 2023
8e66bc8
Update scripts
guyleaf Oct 5, 2023
30d22f1
Revert "Update scripts"
guyleaf Oct 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Support yolox-pose based on mmpose (open-mmlab#694)
* add

* reproduce map

* add typehint and doc

* format code

* replace key

* add ut

* format

* format

* format code

* fix ut

* fix ut

* fix comment

* fix comment

* fix comment

* [WIP][Feature] Support yolov5-Ins training

* fix comment

* change data flow and fix loss_mask compute

* align the data pipeline

* remove albu gt mask key

* support yolov5 ins inference

* fix multi gpu test

* align the post_process with v8

* support training

* support training

* code formatting

* code formatting

* Support pad_param type (open-mmlab#672)

* add half_pad_param

* fix default fast_test

* fix loss weight compute

* add models

* add dataset1

* add dataset2

* add dataset3

* add configs

* re commit __init__

* re commit __init__

* re commit

* del local

* add typo

* del PoseToDetConverter and BBoxKeypoints

* del local changes

* fix mask rescale, add segment merge, fix segment2bbox

* fix pipeline

* add dataset

* fix typo

* add resize in mmyolo

* fix typo

* del local

* del local changes

* del local changes

* fix dir name

* fix dir name

* add FilterAnnotations

* fix typo

* new config for yolox-pose

* fix typo

* fix typo

* fix clip and fix mask init

* del pose dataset changes

* fix YOLOv5DetDataPreprocessor

* del local file

* fix typo

* del init_cfg

* simplify config

* fix batch size

* fix batch size

* fix typo

* code formatting

* code formatting

* code formatting

* code formatting

* fix bug for FilterAnnotations

* simpler way for FilterAnnotations

* update config

* [Fix] fix load image from file

* shorten eval time

* fix typo

* add large model

* [Add] Add docs and more config

* [Fix] config type and test_formatting

* [Fix] fix yolov5-ins_m packdetinputs

* hand rebase from yolov5-ins

* use new PackDetInputs

* rebase fix typo

* add mapping table

* fix typo

* add weight

* del typo

* del typo

* add results

* install mmpose, Keypoints note, context manager, predict, ota rename

* fix test

* add unittest for pose_sim_ota_assigner and yolox_head

* add unittest for pose_sim_ota_assigner and yolox_head

* fix typo

---------

Co-authored-by: Nioolek <379319054@qq.com>
Co-authored-by: josonchan <josonchan1998@163.com>
Co-authored-by: Nioolek <40284075+Nioolek@users.noreply.github.com>
Co-authored-by: huanghaian <huanghaian@sensetime.com>
  • Loading branch information
5 people authored May 15, 2023
commit 6ecebdbbd5b4456557f9a010559a590ec1474afd
1 change: 1 addition & 0 deletions .dev_scripts/gather_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ def get_dataset_name(config):
name_map = dict(
CityscapesDataset='Cityscapes',
CocoDataset='COCO',
PoseCocoDataset='COCO Person',
YOLOv5CocoDataset='COCO',
CocoPanopticDataset='COCO',
YOLOv5DOTADataset='DOTA 1.0',
Expand Down
181 changes: 181 additions & 0 deletions configs/_base_/pose/coco.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
dataset_info = dict(
dataset_name='coco',
paper_info=dict(
author='Lin, Tsung-Yi and Maire, Michael and '
'Belongie, Serge and Hays, James and '
'Perona, Pietro and Ramanan, Deva and '
r'Doll{\'a}r, Piotr and Zitnick, C Lawrence',
title='Microsoft coco: Common objects in context',
container='European conference on computer vision',
year='2014',
homepage='http://cocodataset.org/',
),
keypoint_info={
0:
dict(name='nose', id=0, color=[51, 153, 255], type='upper', swap=''),
1:
dict(
name='left_eye',
id=1,
color=[51, 153, 255],
type='upper',
swap='right_eye'),
2:
dict(
name='right_eye',
id=2,
color=[51, 153, 255],
type='upper',
swap='left_eye'),
3:
dict(
name='left_ear',
id=3,
color=[51, 153, 255],
type='upper',
swap='right_ear'),
4:
dict(
name='right_ear',
id=4,
color=[51, 153, 255],
type='upper',
swap='left_ear'),
5:
dict(
name='left_shoulder',
id=5,
color=[0, 255, 0],
type='upper',
swap='right_shoulder'),
6:
dict(
name='right_shoulder',
id=6,
color=[255, 128, 0],
type='upper',
swap='left_shoulder'),
7:
dict(
name='left_elbow',
id=7,
color=[0, 255, 0],
type='upper',
swap='right_elbow'),
8:
dict(
name='right_elbow',
id=8,
color=[255, 128, 0],
type='upper',
swap='left_elbow'),
9:
dict(
name='left_wrist',
id=9,
color=[0, 255, 0],
type='upper',
swap='right_wrist'),
10:
dict(
name='right_wrist',
id=10,
color=[255, 128, 0],
type='upper',
swap='left_wrist'),
11:
dict(
name='left_hip',
id=11,
color=[0, 255, 0],
type='lower',
swap='right_hip'),
12:
dict(
name='right_hip',
id=12,
color=[255, 128, 0],
type='lower',
swap='left_hip'),
13:
dict(
name='left_knee',
id=13,
color=[0, 255, 0],
type='lower',
swap='right_knee'),
14:
dict(
name='right_knee',
id=14,
color=[255, 128, 0],
type='lower',
swap='left_knee'),
15:
dict(
name='left_ankle',
id=15,
color=[0, 255, 0],
type='lower',
swap='right_ankle'),
16:
dict(
name='right_ankle',
id=16,
color=[255, 128, 0],
type='lower',
swap='left_ankle')
},
skeleton_info={
0:
dict(link=('left_ankle', 'left_knee'), id=0, color=[0, 255, 0]),
1:
dict(link=('left_knee', 'left_hip'), id=1, color=[0, 255, 0]),
2:
dict(link=('right_ankle', 'right_knee'), id=2, color=[255, 128, 0]),
3:
dict(link=('right_knee', 'right_hip'), id=3, color=[255, 128, 0]),
4:
dict(link=('left_hip', 'right_hip'), id=4, color=[51, 153, 255]),
5:
dict(link=('left_shoulder', 'left_hip'), id=5, color=[51, 153, 255]),
6:
dict(link=('right_shoulder', 'right_hip'), id=6, color=[51, 153, 255]),
7:
dict(
link=('left_shoulder', 'right_shoulder'),
id=7,
color=[51, 153, 255]),
8:
dict(link=('left_shoulder', 'left_elbow'), id=8, color=[0, 255, 0]),
9:
dict(
link=('right_shoulder', 'right_elbow'), id=9, color=[255, 128, 0]),
10:
dict(link=('left_elbow', 'left_wrist'), id=10, color=[0, 255, 0]),
11:
dict(link=('right_elbow', 'right_wrist'), id=11, color=[255, 128, 0]),
12:
dict(link=('left_eye', 'right_eye'), id=12, color=[51, 153, 255]),
13:
dict(link=('nose', 'left_eye'), id=13, color=[51, 153, 255]),
14:
dict(link=('nose', 'right_eye'), id=14, color=[51, 153, 255]),
15:
dict(link=('left_eye', 'left_ear'), id=15, color=[51, 153, 255]),
16:
dict(link=('right_eye', 'right_ear'), id=16, color=[51, 153, 255]),
17:
dict(link=('left_ear', 'left_shoulder'), id=17, color=[51, 153, 255]),
18:
dict(
link=('right_ear', 'right_shoulder'), id=18, color=[51, 153, 255])
},
joint_weights=[
1., 1., 1., 1., 1., 1., 1., 1.2, 1.2, 1.5, 1.5, 1., 1., 1.2, 1.2, 1.5,
1.5
],
sigmas=[
0.026, 0.025, 0.025, 0.035, 0.035, 0.079, 0.079, 0.072, 0.072, 0.062,
0.062, 0.107, 0.107, 0.087, 0.087, 0.089, 0.089
])
29 changes: 29 additions & 0 deletions configs/yolox/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,35 @@ The modified training parameters are as follows:
1. The test score threshold is 0.001.
2. Due to the need for pre-training weights, we cannot reproduce the performance of the `yolox-nano` model. Please refer to https://github.com/Megvii-BaseDetection/YOLOX/issues/674 for more information.

## YOLOX-Pose

Based on [MMPose](https://github.com/open-mmlab/mmpose/blob/main/projects/yolox-pose/README.md), we have implemented a YOLOX-based human pose estimator, utilizing the approach outlined in **YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss (CVPRW 2022)**. This pose estimator is lightweight and quick, making it well-suited for crowded scenes.

<div align=center>
<img src="https://user-images.githubusercontent.com/26127467/226655503-3cee746e-6e42-40be-82ae-6e7cae2a4c7e.jpg"/>
</div>

### Results

| Backbone | Size | Batch Size | AMP | RTMDet-Hyp | Mem (GB) | AP | Config | Download |
| :--------: | :--: | :--------: | :-: | :--------: | :------: | :--: | :------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| YOLOX-tiny | 416 | 8xb32 | Yes | Yes | 5.3 | 52.8 | [config](./pose/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco_20230427_080351-2117af67.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco_20230427_080351.log.json) |
| YOLOX-s | 640 | 8xb32 | Yes | Yes | 10.7 | 63.7 | [config](./pose/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco_20230427_005150-e87d843a.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco_20230427_005150.log.json) |
| YOLOX-m | 640 | 8xb32 | Yes | Yes | 19.2 | 69.3 | [config](./pose/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco_20230427_094024-bbeacc1c.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco_20230427_094024.log.json) |
| YOLOX-l | 640 | 8xb32 | Yes | Yes | 30.3 | 71.1 | [config](./pose/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco.py) | [model](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco_20230427_041140-82d65ac8.pth) \| [log](https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco_20230427_041140.log.json) |

**Note**

1. The performance is unstable and may fluctuate and the highest performance weight in `COCO` training may not be the last epoch. The performance shown above is the best model.

### Installation

Install MMPose

```
mim install -r requirements/mmpose.txt
```

## Citation

```latex
Expand Down
48 changes: 48 additions & 0 deletions configs/yolox/metafile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,51 @@ Models:
Metrics:
box AP: 47.5
Weights: https://download.openmmlab.com/mmyolo/v0/yolox/yolox_m_fast_8xb32-300e-rtmdet-hyp_coco/yolox_m_fast_8xb32-300e-rtmdet-hyp_coco_20230210_144328-e657e182.pth
- Name: yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco
In Collection: YOLOX
Config: yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco.py
Metadata:
Training Memory (GB): 5.3
Epochs: 300
Results:
- Task: Human Pose Estimation
Dataset: COCO
Metrics:
AP: 52.8
Weights: https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco/yolox-pose_tiny_8xb32-300e-rtmdet-hyp_coco_20230427_080351-2117af67.pth
- Name: yolox-pose_s_8xb32-300e-rtmdet-hyp_coco
In Collection: YOLOX
Config: yolox-pose_s_8xb32-300e-rtmdet-hyp_coco.py
Metadata:
Training Memory (GB): 10.7
Epochs: 300
Results:
- Task: Human Pose Estimation
Dataset: COCO
Metrics:
AP: 63.7
Weights: https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco/yolox-pose_s_8xb32-300e-rtmdet-hyp_coco_20230427_005150-e87d843a.pth
- Name: yolox-pose_m_8xb32-300e-rtmdet-hyp_coco
In Collection: YOLOX
Config: yolox-pose_m_8xb32-300e-rtmdet-hyp_coco.py
Metadata:
Training Memory (GB): 19.2
Epochs: 300
Results:
- Task: Human Pose Estimation
Dataset: COCO
Metrics:
AP: 69.3
Weights: https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco_20230427_094024-bbeacc1c.pth
- Name: yolox-pose_l_8xb32-300e-rtmdet-hyp_coco
In Collection: YOLOX
Config: yolox-pose_l_8xb32-300e-rtmdet-hyp_coco.py
Metadata:
Training Memory (GB): 30.3
Epochs: 300
Results:
- Task: Human Pose Estimation
Dataset: COCO
Metrics:
AP: 71.1
Weights: https://download.openmmlab.com/mmyolo/v0/yolox/pose/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco_20230427_041140-82d65ac8.pth
14 changes: 14 additions & 0 deletions configs/yolox/pose/yolox-pose_l_8xb32-300e-rtmdet-hyp_coco.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
_base_ = ['./yolox-pose_m_8xb32-300e-rtmdet-hyp_coco.py']

load_from = 'https://download.openmmlab.com/mmyolo/v0/yolox/yolox_l_fast_8xb8-300e_coco/yolox_l_fast_8xb8-300e_coco_20230213_160715-c731eb1c.pth' # noqa

# ========================modified parameters======================
deepen_factor = 1.0
widen_factor = 1.0

# =======================Unmodified in most cases==================
# model settings
model = dict(
backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
14 changes: 14 additions & 0 deletions configs/yolox/pose/yolox-pose_m_8xb32-300e-rtmdet-hyp_coco.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
_base_ = ['./yolox-pose_s_8xb32-300e-rtmdet-hyp_coco.py']

load_from = 'https://download.openmmlab.com/mmyolo/v0/yolox/yolox_m_fast_8xb32-300e-rtmdet-hyp_coco/yolox_m_fast_8xb32-300e-rtmdet-hyp_coco_20230210_144328-e657e182.pth' # noqa

# ========================modified parameters======================
deepen_factor = 0.67
widen_factor = 0.75

# =======================Unmodified in most cases==================
# model settings
model = dict(
backbone=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
neck=dict(deepen_factor=deepen_factor, widen_factor=widen_factor),
bbox_head=dict(head_module=dict(widen_factor=widen_factor)))
Loading