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

Feature/sg 1060 yolo nas pose #1611

Merged
merged 410 commits into from
Nov 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
410 commits
Select commit Hold shift + click to select a range
e2f7238
crowdpose_yolo_nas_pose_s
BloodAxe Sep 6, 2023
af7fd3a
crowdpose_yolo_nas_pose_s
BloodAxe Sep 7, 2023
63e0db1
crowdpose_yolo_nas_pose_s
BloodAxe Sep 7, 2023
ba2e1fc
crowdpose_yolo_nas_pose_s
BloodAxe Sep 7, 2023
4dfd98f
coco2017_yolo_nas_pose_s_ema_less_mosaic
BloodAxe Sep 7, 2023
471d3f4
coco2017_yolo_nas_pose_s_less_mosaic
BloodAxe Sep 7, 2023
d308ed3
coco2017_yolo_nas_pose_s_ema_less_mosaic_higher_final_lr_fp32
BloodAxe Sep 8, 2023
9d81f9f
coco2017_yolo_nas_pose_s_ema_less_mosaic_higher_final_lr_fp32
BloodAxe Sep 8, 2023
934e7f0
coco2017_yolo_nas_pose_s_ema_less_mosaic_lr_focal
BloodAxe Sep 8, 2023
1312707
shared head
BloodAxe Sep 8, 2023
7003d7a
YoloNASPoseBoxesPostPredictionCallback
BloodAxe Sep 9, 2023
7123057
New head design
BloodAxe Sep 10, 2023
7465649
Another recipe with less zoom out, no crowd images
BloodAxe Sep 11, 2023
e421113
Another recipe with less zoom out, no crowd images
BloodAxe Sep 11, 2023
a78c9b3
Another recipe with less zoom out, no crowd images
BloodAxe Sep 11, 2023
9d05290
coco2017_yolo_nas_pose_shared_s_ema_less_mosaic_lr_bce_local
BloodAxe Sep 12, 2023
c2fae2d
coco2017_yolo_nas_pose_shared_s_ema_less_mosaic_lr_bce_local
BloodAxe Sep 12, 2023
1dd5382
Update scores
BloodAxe Sep 12, 2023
3138c77
Cleanup old configs, keep one config that gives best AP score
BloodAxe Sep 12, 2023
716e2ec
Shortened recipe
BloodAxe Sep 12, 2023
bd94c93
coco2017_yolo_nas_pose_shared_s_384_short
BloodAxe Sep 12, 2023
a4d84fe
Tune short recipe
BloodAxe Sep 12, 2023
70128f6
Tune short recipe
BloodAxe Sep 12, 2023
16ba7e5
Tune short recipe
BloodAxe Sep 12, 2023
df02b12
Tune short recipe
BloodAxe Sep 12, 2023
82bdf88
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-respect-crowd
BloodAxe Sep 12, 2023
dc9e1e5
coco2017_yolo_nas_pose_s_local
BloodAxe Sep 12, 2023
9242e97
Update settings of crowd_annotations_action to mask_as_normal since t…
BloodAxe Sep 12, 2023
10c1066
coco2017_yolo_nas_pose_shared_s_local
BloodAxe Sep 13, 2023
39987e2
Update default params
BloodAxe Sep 13, 2023
3335146
Update default params
BloodAxe Sep 13, 2023
bf32df9
Update DEKR recipe
BloodAxe Sep 14, 2023
11ea75e
M variant
BloodAxe Sep 15, 2023
43424e7
M variant
BloodAxe Sep 15, 2023
27bab2d
Put more correct min_deltha
BloodAxe Sep 15, 2023
71ac597
Put more correct min_deltha
BloodAxe Sep 15, 2023
937ebfa
Put more correct min_deltha
BloodAxe Sep 15, 2023
81a3216
Adding placeholders for YOLO-NAS-POSE
BloodAxe Sep 15, 2023
80005bf
Rename detection model export test file
BloodAxe Sep 15, 2023
62c6488
Adding export API support for pose estimation
BloodAxe Sep 16, 2023
ef7fb1f
Adding export API support for pose estimation
BloodAxe Sep 16, 2023
df4780c
Added tmp hack
BloodAxe Sep 16, 2023
15a1507
multiply_by_pose_oks
BloodAxe Sep 17, 2023
f227a52
assigner_multiply_by_pose_oks
BloodAxe Sep 17, 2023
550cd86
ExperimentImprove visualization
BloodAxe Sep 18, 2023
1e5a17d
Update CrowdPose dataset
BloodAxe Sep 19, 2023
14c5b23
Crowdpose
BloodAxe Sep 19, 2023
90c2abb
Crowdpose
BloodAxe Sep 19, 2023
df3caed
Crowdpose
BloodAxe Sep 19, 2023
028059d
crowdpose_yolo_nas_pose_s_no_crowd_no_ema_local
BloodAxe Sep 20, 2023
882790a
Lower LR
BloodAxe Sep 20, 2023
b901ab9
Proxy recipe
BloodAxe Sep 20, 2023
a6d009d
crowdpose_yolo_nas_pose_s_proxy
BloodAxe Sep 20, 2023
61801af
crowdpose_yolo_nas_pose_s_proxy
BloodAxe Sep 20, 2023
175f3c4
crowdpose_yolo_nas_pose_s_proxy
BloodAxe Sep 20, 2023
bf5941f
New architectures
BloodAxe Sep 22, 2023
46f637b
Fix WANDB params
BloodAxe Sep 22, 2023
026bb02
Fix WANDB params
BloodAxe Sep 22, 2023
8e66e72
Fix WANDB params
BloodAxe Sep 22, 2023
052e103
Fix WANDB params
BloodAxe Sep 22, 2023
19689d1
New architectures
BloodAxe Sep 23, 2023
ab44117
M
BloodAxe Sep 23, 2023
851f885
L
BloodAxe Sep 23, 2023
4769e32
M
BloodAxe Sep 23, 2023
d633dc1
coco2017_yolo_nas_pose_l_resume
BloodAxe Sep 24, 2023
7e5d3ad
coco2017_yolo_nas_pose_m_resume
BloodAxe Sep 24, 2023
63679e7
Added fix to _is_more_extreme which would ensure callback would not c…
BloodAxe Sep 24, 2023
740cc2c
Reduce LR
BloodAxe Sep 24, 2023
a5e1d9b
Reduce LR
BloodAxe Sep 24, 2023
07caf1d
Change EMA paramass
BloodAxe Sep 24, 2023
2a93fd9
Export and scores
BloodAxe Sep 25, 2023
0031189
Merge remote-tracking branch 'origin/feature/SG-1060-yolo-nas-pose-ne…
BloodAxe Sep 25, 2023
a2c0c4f
Export
BloodAxe Sep 26, 2023
4127264
Fix bug of not saving simplified model
BloodAxe Sep 26, 2023
08c8d66
Optimize head return types for better inference efficiency
BloodAxe Sep 26, 2023
314e7e9
Metrics
BloodAxe Sep 27, 2023
a0e23a1
Yolo NAS Pose N
BloodAxe Sep 27, 2023
03a1f6b
Only EarlyStop no batch visualization
BloodAxe Sep 27, 2023
6a0dced
coco2017_yolo_nas_pose_l_no_ema
BloodAxe Sep 27, 2023
4050320
Only EarlyStop no batch visualization
BloodAxe Sep 27, 2023
bfdc792
Removing old architectures
BloodAxe Sep 28, 2023
93452fe
Notebook for evaluation on COCO
BloodAxe Sep 28, 2023
1200c7c
Remove unnecessary recipies
BloodAxe Sep 28, 2023
6db055e
Simplify the metric -> pass entire sample to the metric
BloodAxe Sep 28, 2023
8a24125
Simplify recipe
BloodAxe Sep 28, 2023
f93f73c
coco2017_yolo_nas_pose_n_resume
BloodAxe Sep 28, 2023
b27ac4a
Simplify recipe
BloodAxe Sep 28, 2023
b0df5da
Transforms overhaul & refactoring
BloodAxe Sep 28, 2023
cc4f519
Transforms overhaul & refactoring
BloodAxe Sep 28, 2023
a02fe92
Remove KeypointsImageToTensor transform - this will be done in collat…
BloodAxe Sep 28, 2023
5214bde
Fix collate fn to do image layout change HWC->CHW
BloodAxe Sep 28, 2023
c505d41
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
fb8a906
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
4fa24d7
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
e056a1f
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
c036a43
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
4d2e958
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
d5994b5
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
ee462ba
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
2269e1a
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
51c9c23
Attempt to optimize efficiency
BloodAxe Sep 28, 2023
7dc958a
Refactor sample
BloodAxe Sep 29, 2023
196d0a9
Simplify recipe
BloodAxe Sep 29, 2023
1758d9c
New keypoint transform
BloodAxe Sep 29, 2023
b5c367b
Lower dropout rates & heavy augs
BloodAxe Sep 29, 2023
294e7c7
crowdpose_yolo_nas_pose_s
BloodAxe Sep 29, 2023
35754ce
Improve visualization of pose gt by showing whether it is crowd targe…
BloodAxe Sep 30, 2023
5c48acb
Make convert_to_tensor a bit more efficient by avoiding creating a te…
BloodAxe Sep 30, 2023
f36d1a0
Compute metric on CPU (Surprisingly it is faster, since amount of dat…
BloodAxe Sep 30, 2023
19891e8
Improve speed of computing focal loss
BloodAxe Sep 30, 2023
e8bc5ce
New batch of training experiments
BloodAxe Sep 30, 2023
1039cc4
New batch of training experiments
BloodAxe Sep 30, 2023
238e41c
Introduce sample-centric keypoint transforms
BloodAxe Oct 2, 2023
efeb4ef
Cleanup leftovers
BloodAxe Oct 2, 2023
48cb6c7
Update numbers
BloodAxe Oct 2, 2023
59b20ef
Add benchmark results
BloodAxe Oct 3, 2023
fa1f79d
Fixed way of checking transforms that require additional samples
BloodAxe Oct 3, 2023
88cef73
Docstrings
BloodAxe Oct 3, 2023
a29f58a
:attr -> :param
BloodAxe Oct 3, 2023
c797100
Added docs clarifying behavior of mosaic & mixup
BloodAxe Oct 3, 2023
7b1b9ee
Added docs clarifying behavior of mosaic & mixup
BloodAxe Oct 3, 2023
0d00668
Improved tests
BloodAxe Oct 3, 2023
a445917
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release
BloodAxe Oct 3, 2023
f388fcc
Additional docstrings & typing annotations
BloodAxe Oct 3, 2023
5b24d06
Merge remote-tracking branch 'origin/feature/SG-1060-yolo-nas-pose-re…
BloodAxe Oct 3, 2023
ebc5980
Focal-EIOU loss
BloodAxe Oct 3, 2023
a7c97ce
Added missing additional_samples_count field
BloodAxe Oct 4, 2023
b84817d
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release
BloodAxe Oct 4, 2023
57e616d
Fixed predict implementation for pose
BloodAxe Oct 4, 2023
e0b4958
Added docstrings
BloodAxe Oct 4, 2023
4a21438
KeypointsRemoveSmallObjects
BloodAxe Oct 4, 2023
53ecb3e
KeypointsRemoveSmallObjects
BloodAxe Oct 4, 2023
8c01e0e
Merge feature branch with keypoint transforms
BloodAxe Oct 4, 2023
f8839b6
Metric class to use data samples
BloodAxe Oct 4, 2023
fdc0b77
New dataset classes
BloodAxe Oct 4, 2023
a290b5d
Reverting back old files to keep & update dataset recipies
BloodAxe Oct 5, 2023
c0d22ca
Simplified rescoring dataset params YAML file by using coco_pose_comm…
BloodAxe Oct 5, 2023
6f97b8a
Removed old docs
BloodAxe Oct 5, 2023
37387c4
Remove space
BloodAxe Oct 5, 2023
577804c
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release
BloodAxe Oct 5, 2023
f00635b
Merge branch 'feature/SG-1060-yolo-nas-pose-release' into feature/SG-…
BloodAxe Oct 5, 2023
ea54e0f
Introduce AbstractPoseEstimationPostPredictionCallback interface and …
BloodAxe Oct 5, 2023
ccf553e
Cherry pick changes to post-prediction, visualization and metric
BloodAxe Oct 5, 2023
9a87609
Remove unwanted references to new datasets
BloodAxe Oct 5, 2023
fd30331
Remove YoloNASPoseCollateFN
BloodAxe Oct 5, 2023
764f682
Make heavy augs a default training param for M & L
BloodAxe Oct 5, 2023
14f090b
Remove dropout
BloodAxe Oct 5, 2023
4311ca1
Fixed unit test
BloodAxe Oct 5, 2023
ba5cf41
Update YoloNAS-M score
BloodAxe Oct 6, 2023
4f4457d
Merge
BloodAxe Oct 6, 2023
fd41b71
Feature/sg 1060 yolo nas pose release pr to add datasets and metric (…
BloodAxe Oct 9, 2023
81091b7
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release
BloodAxe Oct 9, 2023
fe9288d
Merge branch 'feature/SG-1060-yolo-nas-pose-release' into feature/SG-…
BloodAxe Oct 9, 2023
1ecec90
Document YoloNASPose loss
BloodAxe Oct 9, 2023
a1284be
Squashed changes with YoloNASPose & Loss
BloodAxe Oct 9, 2023
e43b793
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 9, 2023
2d01377
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release-add-…
BloodAxe Oct 9, 2023
89a1c05
Fixed attribute name that was not renamed
BloodAxe Oct 10, 2023
f558633
Remove print statement
BloodAxe Oct 10, 2023
3ed26ff
Remove print statement
BloodAxe Oct 10, 2023
359dcf6
Fixed attribute name that was not renamed
BloodAxe Oct 10, 2023
928da84
Improve docstrings to use 'Num Keypoints' instead of magic number 17
BloodAxe Oct 10, 2023
0e540e5
Fixed PoseNMS export to work with custom number of keypoints
BloodAxe Oct 10, 2023
e85c517
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 10, 2023
f26afa9
Remove outdated test
BloodAxe Oct 10, 2023
920308a
Update recipes
BloodAxe Oct 10, 2023
8dc7647
Added docstrings
BloodAxe Oct 10, 2023
0e23800
Simplify forward/forward_eval
BloodAxe Oct 10, 2023
15cef48
Simplify forward/forward_eval
BloodAxe Oct 10, 2023
5d62578
Remove any2device_no_grad
BloodAxe Oct 10, 2023
41df734
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 10, 2023
8803c6a
_insert_heads_list_params
BloodAxe Oct 10, 2023
295b0c7
_insert_heads_list_params
BloodAxe Oct 10, 2023
40f0476
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 10, 2023
a0df63e
Update ExtremeBatchCaseVisualizationCallback
BloodAxe Oct 10, 2023
dc4f6c2
Document visualization callback better
BloodAxe Oct 11, 2023
c8d6616
Added YoloNASPose test
BloodAxe Oct 11, 2023
0474536
Merge master
shaydeci Oct 11, 2023
e0d448f
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 11, 2023
94a15fc
Added tests
BloodAxe Oct 11, 2023
74ea314
Refactor the way we generate usage instructions. Should be easier to …
BloodAxe Oct 11, 2023
c2c5ccd
Revert rename
BloodAxe Oct 11, 2023
ee2afa3
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 11, 2023
213c0cb
Dataset & Visualization callback
BloodAxe Oct 11, 2023
d43cf2b
Merge branch 'master' into feature/SG-1060-yolo-nas-pose-release-add-…
BloodAxe Oct 12, 2023
408b5d0
Improve docstrings
BloodAxe Oct 12, 2023
e8b3f18
Improved docstrings
BloodAxe Oct 12, 2023
b2ff5e9
Improved docstrings
BloodAxe Oct 12, 2023
90bca43
Improved docstrings
BloodAxe Oct 12, 2023
84aa12b
Improved docstrings
BloodAxe Oct 12, 2023
f5ad113
Rename bboxes -> bboxes_xyxy
BloodAxe Oct 12, 2023
1a3697d
Example colab for evaluation of ONNX model
BloodAxe Oct 12, 2023
ceb8e54
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 12, 2023
fe00d56
Rename bboxes -> bboxes_xyxy
BloodAxe Oct 12, 2023
5d6f7a8
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 12, 2023
632d62d
Fixed instructions text
BloodAxe Oct 12, 2023
439f71e
Merge branch 'feature/SG-1060-yolo-nas-pose-release-add-model-and-los…
BloodAxe Oct 12, 2023
052e49d
Merge changes after code review back to main branch
BloodAxe Oct 12, 2023
fb680c0
Improve efficiency of training
BloodAxe Oct 12, 2023
97e8312
Remove files
BloodAxe Oct 12, 2023
5762db2
Update numbers
BloodAxe Oct 13, 2023
5afcccd
Update animal pose
BloodAxe Oct 13, 2023
91c9e2b
Added integration tests for YoloNASPose
BloodAxe Oct 13, 2023
23776e3
Fix bug in replace head
BloodAxe Oct 13, 2023
8e77c15
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 15, 2023
3959b29
Add pretrain weights
BloodAxe Oct 25, 2023
e0f3bbd
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 25, 2023
ba576fc
Added export notebook example
BloodAxe Oct 25, 2023
201f634
Update integration test
BloodAxe Oct 25, 2023
efe7ea6
Updating branch for merge
BloodAxe Oct 25, 2023
c6fe5be
Updating branch for merge
BloodAxe Oct 25, 2023
779c304
Remove AnimalPoseDataset
BloodAxe Oct 25, 2023
bbfed74
Update markdown text
BloodAxe Oct 25, 2023
b35f786
Update markdown text
BloodAxe Oct 25, 2023
82c1995
Revert
BloodAxe Oct 25, 2023
fdf24cb
Added license
BloodAxe Oct 25, 2023
a070115
Improve debug text in transfer_weights
BloodAxe Oct 25, 2023
a6c234e
Revert
BloodAxe Oct 25, 2023
39da354
Cleanup recipes
BloodAxe Oct 25, 2023
51f8988
Revert
BloodAxe Oct 25, 2023
d5fec78
Cleanup recipes
BloodAxe Oct 25, 2023
bc60952
Revert
BloodAxe Oct 25, 2023
4b05fed
Update notebooks
BloodAxe Oct 26, 2023
ac2d57e
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 26, 2023
7ff4c82
Update mkdocs to include pose estimation
BloodAxe Oct 26, 2023
b0de5c8
Update docs
BloodAxe Oct 26, 2023
b5cb0a3
Revert test
BloodAxe Oct 26, 2023
65db36c
Put back YAML file
BloodAxe Oct 26, 2023
500eb8d
Added check to print license for YoloNAS-POSE
BloodAxe Oct 26, 2023
897d9e8
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Oct 26, 2023
246c31e
Fixed bug in _pad_image that did not support pad_value=(R,B,G) input
BloodAxe Nov 1, 2023
e70b2d6
Merge branch 'master' into feature/SG-000-fix-pad-image
BloodAxe Nov 1, 2023
10d1280
Merge remote-tracking branch 'origin/master' into feature/SG-1060-yol…
BloodAxe Nov 1, 2023
c601888
Merge fixbranch
BloodAxe Nov 1, 2023
94226e2
Added images & updated links to notebooks
BloodAxe Nov 3, 2023
4bef44b
Added images & updated links to notebooks
BloodAxe Nov 3, 2023
5b04f91
Added pop dataset_class from dataloader params
BloodAxe Nov 3, 2023
26b5cde
Update quickstart
BloodAxe Nov 3, 2023
deb9c86
Merge remote-tracking branch 'origin/master' into feature/SG-1060-yol…
BloodAxe Nov 3, 2023
fae7167
Added missing rgb2bgr conversion
BloodAxe Nov 4, 2023
86661b3
Added missing rgb2bgr conversion
BloodAxe Nov 4, 2023
628f9b2
Merge master
BloodAxe Nov 6, 2023
aabb40d
Disable visualization of samples by default
BloodAxe Nov 6, 2023
20e6435
Added docstrings
BloodAxe Nov 6, 2023
86e4073
Updated additional resoruces section with link to recipies docs
BloodAxe Nov 6, 2023
f4bc277
successor -> derivative
BloodAxe Nov 6, 2023
3ee6e21
Re-run notebook
BloodAxe Nov 6, 2023
5bace5a
Fixed recipe to code test
BloodAxe Nov 6, 2023
c7c1be5
Re-run notebook
BloodAxe Nov 6, 2023
18d53aa
Merge branch 'master' into feature/SG-1060-yolo-nas-pose
BloodAxe Nov 6, 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
16 changes: 16 additions & 0 deletions LICENSE.YOLONAS-POSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# YOLO-NAS-POSE License

These model weights or any components comprising the model and the associated documentation (the "Software") is licensed to you by Deci.AI, Inc. ("Deci") under the following terms:
© 2023 – Deci.AI, Inc.

Subject to your full compliance with all of the terms herein, Deci hereby grants you a non-exclusive, revocable, non-sublicensable, non-transferable worldwide and limited right and license to use the Software. If you are using the Deci platform for model optimization, your use of the Software is subject to the Terms of Use available here (the "Terms of Use").

You shall not, without Deci's prior written consent:
(i) resell, lease, sublicense or distribute the Software to any person;
(ii) use the Software to provide third parties with managed services or provide remote access to the Software to any person or compete with Deci in any way;
(iii) represent that you possess any proprietary interest in the Software;
(iv) directly or indirectly, take any action to contest Deci's intellectual property rights or infringe them in any way;
(V) reverse-engineer, decompile, disassemble, alter, enhance, improve, add to, delete from, or otherwise modify, or derive (or attempt to derive) the technology or source code underlying any part of the Software;
(vi) use the Software (or any part thereof) in any illegal, indecent, misleading, harmful, abusive, harassing and/or disparaging manner or for any such purposes. Except as provided under the terms of any separate agreement between you and Deci, including the Terms of Use to the extent applicable, you may not use the Software for any commercial use, including in connection with any models used in a production environment.

DECI PROVIDES THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS OF THE SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ sweeper_test:

# Here you define a list of notebooks we want to execute and convert to markdown files
NOTEBOOKS_TO_RUN := src/super_gradients/examples/model_export/models_export.ipynb
NOTEBOOKS_TO_RUN += src/super_gradients/examples/model_export/models_export_pose.ipynb
BloodAxe marked this conversation as resolved.
Show resolved Hide resolved
NOTEBOOKS_TO_RUN += notebooks/what_are_recipes_and_how_to_use.ipynb
NOTEBOOKS_TO_RUN += notebooks/transfer_learning_classification.ipynb
NOTEBOOKS_TO_RUN += notebooks/how_to_use_knowledge_distillation_for_classification.ipynb
Expand Down
119 changes: 119 additions & 0 deletions YOLONAS-POSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# YOLO-NAS-POSE
### A Next-Generation, Pose Estimation Foundational Model generated by Deci’s Neural Architecture Search Technology

Deci is thrilled to announce the release of a new object detection model, YOLO-NAS-POSE - a derivative of [YOLO-NAS](YOLONAS.md),
pose estimation architecture, providing superior real-time object detection capabilities and production-ready performance.
Deci's mission is to provide AI teams with tools to remove development barriers and attain efficient inference performance more quickly.

![YOLO-NAS-POSE](documentation/source/images/yolo_nas_pose_frontier_t4.png)

The new YOLO-NAS-POSE delivers state-of-the-art (SOTA) performance with the unparalleled accuracy-speed performance, outperforming other models such as YOLOv8-Pose, DEKR and others.

Deci's proprietary Neural Architecture Search technology, [AutoNAC™](https://deci.ai/technology/), generated the architecture of YOLO-NAS-POSE model.
The AutoNAC™ engine lets you input any task, data characteristics (access to data is not required), inference environment and performance targets,
and then guides you to find the optimal architecture that delivers the best balance between accuracy and inference speed for your specific application.
In addition to being data and hardware aware, the AutoNAC engine considers other components in the inference stack, including compilers and quantization.

| Model | AP | Latency (ms) |
|------------------|-------|--------------|
| YOLO-NAS N | 59.68 | 2.35 ms |
| YOLO-NAS S | 64.15 | 3.29 ms |
| YOLO-NAS M | 67.87 | 6.87 ms |
| YOLO-NAS L | 68.24 | 8.86 ms |

AP numbers in table reported for COCO 2017 Val dataset and latency benchmarked for 640x640 images on Nvidia T4 GPU.
No flip-TTA was used.

Similarly to YOLO-NAS, YOLO-NAS-POSE architecture employs quantization-aware blocks and selective quantization for optimized performance.
In fact YOLO-NAS-POSE is a derivative of YOLO-NAS and uses same backbone and neck as YOLO-NAS.
Only the head is different and is optimized by AutoNAC for pose estimation task.
That enables us to use transfer learning and fine-tune YOLO-NAS-POSE starting from YOLO-NAS weights.


## Quickstart

### Extract predicted poses

```python
import super_gradients

yolo_nas = super_gradients.training.models.get("yolo_nas_pose_l", pretrained_weights="coco_pose").cuda()
model_predictions = yolo_nas.predict("https://deci-pretrained-models.s3.amazonaws.com/sample_images/beatles-abbeyroad.jpg", conf=0.5).show()

prediction = model_predictions[0].prediction # One prediction per image - Here we work with 1 image, so we get the first.

bboxes = prediction.bboxes_xyxy # [Num Instances, 4] List of predicted bounding boxes for each object
poses = prediction.poses # [Num Instances, Num Joints, 3] list of predicted joints for each detected object (x,y, confidence)
scores = prediction.scores # [Num Instances] - Confidence value for each predicted instance
```

![YOLO-NAS-POSE Predict Demo](documentation/source/images/yolo_nas_pose_predict_demo.jpg)

### Recipes

We provide training recipies for training YOLO-NAS-POSE on COCO, CrowdPose and AnimalPose datasets.

#### COCO 2017

* [super_gradients/recipes/coco2017_yolo_nas_pose_n.yaml](src/super_gradients/recipes/coco2017_yolo_nas_pose_n.yaml)
* [super_gradients/recipes/coco2017_yolo_nas_pose_s.yaml](src/super_gradients/recipes/coco2017_yolo_nas_pose_s.yaml)
* [super_gradients/recipes/coco2017_yolo_nas_pose_m.yaml](src/super_gradients/recipes/coco2017_yolo_nas_pose_m.yaml)
* [super_gradients/recipes/coco2017_yolo_nas_pose_l.yaml](src/super_gradients/recipes/coco2017_yolo_nas_pose_l.yaml)


## Additional resources

Louis-Dupont marked this conversation as resolved.
Show resolved Hide resolved
<table>
<tr>
<td>
<a target="_blank" href="https://colab.research.google.com/drive/1O4N5Vbzv0rfkT81LQidPktX8RtoS5A40">
<img src="./documentation/assets/SG_img/colab_logo.png" /> Predict poses with YoloNAS Pose Model
</a>
</td>
</tr>
<tr>
<td>
<a target="_blank" href="https://colab.research.google.com/drive/1agLj0aGx48C_rZPrTkeA18kuncack6lF">
<img src="./documentation/assets/SG_img/colab_logo.png" /> Fine-Tune YoloNAS Pose on AnimalPose dataset Notebook
</a>
</td>
</tr>
<tr>
<td>
<a target="_blank" href="documentation/source/YoloNASPoseQuickstart.md">
Documentation: YOLO-NAS-POSE Quickstart
</a>
</td>
</tr>
<tr>
<td>
<a target="_blank" href="documentation/source/Recipes_Training.md">
Documentation: Recipies
</a>
</td>
</tr>
<tr>
<td>
<a target="_blank" href="documentation/source/models_export_pose.md">
Documentation: YOLO-NAS-POSE Export
</a>
</td>
</tr>


<tr>
<td>
Join our <a target="_blank" href="https://discord.gg/2v6cEGMREN">
Discord Community
</a>
</td>
</tr>
</table>


## LICENSE

The YOLO-NAS-POSE model is available under an open-source license with pre-trained weights available for non-commercial use on SuperGradients, Deci's PyTorch-based, open-source, computer vision training library.
With SuperGradients, users can train models from scratch or fine-tune existing ones, leveraging advanced built-in training techniques like Distributed Data Parallel, Exponential Moving Average, Automatic mixed precision, and Quantization Aware Training.

License file is available here: [YOLO-NAS-POSE WEIGHTS LICENSE](LICENSE.YOLONAS-POSE.md)
45 changes: 45 additions & 0 deletions documentation/source/YoloNASPoseQuickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# YOLO-NAS-POSE Quickstart
<div>
<img src="images/yolo_nas_pose_frontier_t4.png" width="750">
</div>

Deci’s leveraged its proprietary Neural Architecture Search engine (AutoNAC) to generate YOLO-NAS-POSE - a new object
detection architecture that delivers the world’s best accuracy-latency performance.

The YOLO-NAS-POSE model incorporates quantization-aware RepVGG blocks to ensure compatibility with post-training
quantization, making it very flexible and usable for different hardware configurations.

In this tutorial, we will go over the basic functionality of the YOLO-NAS-POSE model.


## Instantiate a YOLO-NAS-POSE Model

```python
from super_gradients.training import models
from super_gradients.common.object_names import Models

yolo_nas_pose = models.get(Models.YOLO_NAS_POSE_L, pretrained_weights="coco_pose")
```

## Predict

```python
prediction = yolo_nas_pose.predict("https://deci-pretrained-models.s3.amazonaws.com/sample_images/beatles-abbeyroad.jpg")
prediction.show()
```
<div>
<img src="images/yolo_nas_pose_predict_demo.jpg" width="750">
</div>

## Export to ONNX & TensorRT

```python
yolo_nas_pose.export("yolo_nas_pose.onnx")
```

Please follow our [Pose Estimation Models Export](models_export_pose.md) tutorial for more details.

## Evaluation using pycocotools

We provide example notebook to evaluate YOLO-NAS POSE using COCO protocol.
Please check [Pose Estimation Models Export](https://github.com/Deci-AI/super-gradients/blob/master/notebooks/yolo_nas_pose_eval_with_pycocotools.ipynb) tutorial for more details.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 9 additions & 3 deletions documentation/source/model_zoo.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,13 @@ All the available models are listed in the column `Model name`.

### Pretrained Pose Estimation PyTorch Checkpoints

| Model | Model Name | Dataset | Resolution | AP (No TTA / H-Flip TTA / H-Flip TTA+Rescoring) | Latency b1<sub>T4</sub> | Latency b1<sub>T4</sub> including IO | Latency (Production)**<sub>Jetson Xavier NX</sub> |
|-----------------|-----------------|-------------|------------|-------------------------------------------------|-------------------------|--------------------------------------|:-------------------------------------------------:|
| DEKR_W32_NO_DC | dekr_w32_no_dc | COCO2017 PE | 640x640 | 63.08 / 64.96 / 67.32 | 13.29 ms | 15.31 ms | 75.99 ms |
| Model | Model Name | Dataset | Resolution | AP (No TTA / H-Flip TTA / H-Flip TTA+Rescoring) | Latency b1<sub>T4</sub> | Latency b1<sub>T4</sub> including IO | Latency (Production)**<sub>Jetson Xavier NX</sub> |
|----------------|-----------------|-------------|------------|-------------------------------------------------|-------------------------|--------------------------------------|:-------------------------------------------------:|
| DEKR_W32_NO_DC | dekr_w32_no_dc | COCO2017 PE | 640x640 | 63.08 / 64.96 / 67.32 | 13.29 ms | 15.31 ms | 75.99 ms |
| YoloNAS POSE N | yolo_nas_pose_n | COCO2017 PE | 640x640 | 59.68 / N/A / N/A | N/A | 2.35 ms | 15.99 ms |
| YoloNAS POSE S | yolo_nas_pose_s | COCO2017 PE | 640x640 | 64.15 / N/A / N/A | N/A | 3.29 ms | 21.01 ms |
| YoloNAS POSE M | yolo_nas_pose_m | COCO2017 PE | 640x640 | 67.87 / N/A / N/A | N/A | 6.87 ms | 38.40 ms |
| YoloNAS POSE L | yolo_nas_pose_l | COCO2017 PE | 640x640 | 68.24 / N/A / N/A | N/A | 8.86 ms | 49.34 ms |


## Implemented Model Architectures
Expand Down Expand Up @@ -141,4 +145,6 @@ Devices[https://arxiv.org/pdf/1807.11164](https://arxiv.org/pdf/1807.11164)


### Pose Estimation

- [HRNet DEKR](https://github.com/HRNet/HigherHRNet-Human-Pose-Estimation) - Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regression [https://arxiv.org/pdf/2104.02300.pdf](https://arxiv.org/pdf/2104.02300.pdf)
- YoloNAS Pose
Loading