Skip to content

Commit 51ef6db

Browse files
authored
Merge pull request #2629 from openvinotoolkit/mergeback/1.4.4-to-1.5.0
Mergeback 1.4.4 to releases/1.5.0
2 parents 16dd688 + e459f1f commit 51ef6db

File tree

39 files changed

+1209
-120
lines changed

39 files changed

+1209
-120
lines changed

.github/workflows/publish.yml

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build and upload to PyPI
1+
name: Build and upload to internal PyPI
22

33
on:
44
workflow_dispatch: # run on request (no need for PR)
@@ -40,17 +40,22 @@ jobs:
4040
name: Publish package
4141
needs: [build_wheels, build_sdist]
4242
environment: pypi
43-
runs-on: ubuntu-latest
43+
runs-on: [self-hosted, linux, x64, dev]
4444
permissions: write-all
4545
steps:
46+
- name: Set up Python
47+
uses: actions/setup-python@v4
48+
with:
49+
python-version: "3.10"
50+
- name: Install dependencies
51+
run: python -m pip install twine
4652
- name: Download artifacts
4753
uses: actions/download-artifact@v3
4854
with:
4955
# unpacks default artifact into dist/
5056
# if `name: artifact` is omitted, the action will create extra parent dir
5157
name: artifact
5258
path: dist
53-
# to determine where to publish the source distribution to PyPI or TestPyPI
5459
- name: Check tag
5560
id: check-tag
5661
uses: actions-ecosystem/action-regex-match@v2
@@ -66,15 +71,18 @@ jobs:
6671
tag: ${{ github.ref }}
6772
overwrite: true
6873
file_glob: true
69-
- name: Publish package distributions to PyPI
70-
if: ${{ steps.check-tag.outputs.match != '' }}
71-
uses: pypa/[email protected]
72-
with:
73-
password: ${{ secrets.PYPI_API_TOKEN }}
74-
- name: Publish package distributions to TestPyPI
75-
if: ${{ steps.check-tag.outputs.match == '' }}
76-
uses: pypa/[email protected]
77-
with:
78-
password: ${{ secrets.TESTPYPI_API_TOKEN }}
79-
repository-url: https://test.pypi.org/legacy/
80-
verbose: true
74+
- name: Check dist contents
75+
run: twine check dist/*
76+
- name: Publish package dist to internal PyPI
77+
run: |
78+
export no_proxy=${{ secrets.PYPI_HOST }}
79+
export REPOSITORY_URL=http://${{ secrets.PYPI_HOST }}:${{ secrets.PYPI_PORT }}
80+
twine upload --verbose --repository-url $REPOSITORY_URL dist/* -u ${{ secrets.PYPI_USER }} -p ${{ secrets.PYPI_PASSWORD }}
81+
- name: Clean up dist
82+
if: ${{ always() }}
83+
run: |
84+
if OUTPUT=$(ls | grep -c dist)
85+
then
86+
echo "Cleaning up dist directory"
87+
rm -r dist
88+
fi

CHANGELOG.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,35 @@ All notable changes to this project will be documented in this file.
3737
- OpenVINO(==2023.0) IR inference is not working well on 2-stage models (e.g. Mask-RCNN) exported from torch>=1.13.1
3838
- NNCF QAT optimization is disabled for MaskRCNN models due to CUDA runtime error in ROIAlign kernel on torch==2.0.1
3939

40+
## \[v1.4.4\]
41+
42+
### Enhancements
43+
44+
- Update ModelAPI configuration(<https://github.com/openvinotoolkit/training_extensions/pull/2564>)
45+
- Add Anomaly modelAPI changes (<https://github.com/openvinotoolkit/training_extensions/pull/2563>)
46+
- Update Image numpy access (<https://github.com/openvinotoolkit/training_extensions/pull/2586>)
47+
48+
### Bug fixes
49+
50+
- Fix IBLoss enablement with DeiT-Tiny when class incremental training (<https://github.com/openvinotoolkit/training_extensions/pull/2595>)
51+
- Fix mmcls bug not wrapping model in DataParallel on CPUs (<https://github.com/openvinotoolkit/training_extensions/pull/2601>)
52+
- Fix h-label loss normalization issue w/ exclusive label group of singe label (<https://github.com/openvinotoolkit/training_extensions/pull/2604>)
53+
- Fix division by zero in class incremental learning for classification (<https://github.com/openvinotoolkit/training_extensions/pull/2606>)
54+
- Fix saliency maps calculation issue for detection models (<https://github.com/openvinotoolkit/training_extensions/pull/2609>)
55+
- Fix h-label bug of missing parent labels in output (<https://github.com/openvinotoolkit/training_extensions/pull/2626>)
56+
57+
## \[v1.4.3\]
58+
59+
### Enhancements
60+
61+
- Re-introduce adaptive scheduling for training (<https://github.com/openvinotoolkit/training_extensions/pull/2541>)
62+
4063
## \[v1.4.2\]
4164

4265
### Enhancements
4366

44-
- Bump datumaro version to 1.5.0rc0 (<https://github.com/openvinotoolkit/training_extensions/pull/2470>)
67+
- Upgrade nncf version to 2.6.0 (<https://github.com/openvinotoolkit/training_extensions/pull/2459>)
68+
- Bump datumaro version to 1.5.0 (<https://github.com/openvinotoolkit/training_extensions/pull/2470>, <https://github.com/openvinotoolkit/training_extensions/pull/2502>)
4569
- Set tox version constraint (<https://github.com/openvinotoolkit/training_extensions/pull/2472>)
4670
- Add model category attributes to model template (<https://github.com/openvinotoolkit/training_extensions/pull/2439>)
4771

@@ -305,7 +329,7 @@ All notable changes to this project will be documented in this file.
305329
- Enhance `find` command to find configurations of supported tasks / algorithms / models / backbones
306330
- Introduce `build` command to customize task or model configurations in isolated workspace
307331
- Auto-config feature to automatically select the right algorithm and default model for the `train` & `build` command by detecting the task type of given input dataset
308-
- Improve [documentation](https://openvinotoolkit.github.io/training_extensions/latest/guide/get_started/introduction.html)
332+
- Improve [documentation](https://openvinotoolkit.github.io/training_extensions/1.0.0/guide/get_started/introduction.html)
309333
- Improve training performance by introducing enhanced loss for the few-shot transfer
310334

311335
### Bug fixes

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
---
66

77
[Key Features](#key-features)
8-
[Installation](https://openvinotoolkit.github.io/training_extensions/latest/guide/get_started/installation.html)
9-
[Documentation](https://openvinotoolkit.github.io/training_extensions/latest/index.html)
8+
[Installation](https://openvinotoolkit.github.io/training_extensions/stable/guide/get_started/installation.html)
9+
[Documentation](https://openvinotoolkit.github.io/training_extensions/stable/index.html)
1010
[License](#license)
1111

1212
[![PyPI](https://img.shields.io/pypi/v/otx)](https://pypi.org/project/otx)
@@ -55,7 +55,7 @@ OpenVINO™ Training Extensions supports the following computer vision tasks:
5555
- **Action recognition** including action classification and detection
5656
- **Anomaly recognition** tasks including anomaly classification, detection and segmentation
5757

58-
OpenVINO™ Training Extensions supports the [following learning methods](https://openvinotoolkit.github.io/training_extensions/latest/guide/explanation/algorithms/index.html):
58+
OpenVINO™ Training Extensions supports the [following learning methods](https://openvinotoolkit.github.io/training_extensions/stable/guide/explanation/algorithms/index.html):
5959

6060
- **Supervised**, incremental training, which includes class incremental scenario and contrastive learning for classification and semantic segmentation tasks
6161
- **Semi-supervised learning**
@@ -75,7 +75,7 @@ OpenVINO™ Training Extensions provides the following usability features:
7575

7676
### Installation
7777

78-
Please refer to the [installation guide](https://openvinotoolkit.github.io/training_extensions/latest/guide/get_started/installation.html).
78+
Please refer to the [installation guide](https://openvinotoolkit.github.io/training_extensions/stable/guide/get_started/installation.html).
7979

8080
Note: Python 3.8, 3.9 and 3.10 were tested, along with Ubuntu 18.04, 20.04 and 22.04.
8181

@@ -91,7 +91,7 @@ Note: Python 3.8, 3.9 and 3.10 were tested, along with Ubuntu 18.04, 20.04 and 2
9191
- `otx demo` allows one to apply a trained model on the custom data or the online footage from a web camera and see how it will work in a real-life scenario.
9292
- `otx explain` runs explain algorithm on the provided data and outputs images with the saliency maps to show how your model makes predictions.
9393

94-
You can find more details with examples in the [CLI command intro](https://openvinotoolkit.github.io/training_extensions/latest/guide/get_started/cli_commands.html).
94+
You can find more details with examples in the [CLI command intro](https://openvinotoolkit.github.io/training_extensions/stable/guide/get_started/cli_commands.html).
9595

9696
---
9797

docs/source/guide/explanation/algorithms/classification/hierarhical_classification.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Dataset Format
3939
.. _hierarchical_dataset:
4040

4141
For hierarchical image classification, we created our custom dataset format that is supported by `Datumaro <https://github.com/openvinotoolkit/datumaro>`_.
42-
An example of the annotations format and dataset structure can be found in our `sample <https://github.com/openvinotoolkit/training_extensions/tree/develop/data/datumaro_h-label>`_.
42+
An example of the annotations format and dataset structure can be found in our `sample <https://github.com/openvinotoolkit/training_extensions/tree/develop/tests/assets/datumaro_h-label>`_.
4343

4444
To use OpenVINO™ Training Extensions with this format, it is required to pass dataset root paths directly to the CLI command:
4545

@@ -66,4 +66,4 @@ We use the same model templates as for Multi-class Classification. Please, refer
6666
.. Incremental Learning
6767
.. ********************
6868
69-
.. To be added soon
69+
.. To be added soon

docs/source/guide/explanation/algorithms/object_detection/object_detection.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,26 @@ In addition to these models, we supports experimental models for object detectio
117117
`Deformable_DETR <https://arxiv.org/abs/2010.04159>`_ is `DETR <https://arxiv.org/abs/2005.12872>`_ based model, and it solves slow convergence problem of DETR. `DINO <https://arxiv.org/abs/2203.03605>`_ improves Deformable DETR based methods via denoising anchor boxes. Current SOTA models for object detection are based on DINO.
118118
`Lite-DINO <https://arxiv.org/abs/2303.07335>`_ is efficient structure for DINO. It reduces FLOPS of transformer's encoder which takes the highest computational costs.
119119

120+
.. note::
121+
122+
For using experimental templates, you should specify full path of experimental template. Ex) otx build src/otx/algorithms/detection/configs/detection/resnet50_dino/template_experimental.yaml --task detection
123+
124+
In addition to these models, we supports experimental models for object detection. These experimental models will be changed to official models within a few releases.
125+
126+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+-----------------+
127+
| Template ID | Name | Complexity (GFLOPs) | Model size (MB) |
128+
+===========================================================================================================================================================================================================================+=====================+=====================+=================+
129+
| `Custom_Object_Detection_Gen3_Deformable_DETR <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/detection/resnet50_deformable_detr/template_experimental.yaml>`_ | Deformable_DETR | 165 | 157.0 |
130+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+-----------------+
131+
| `Custom_Object_Detection_Gen3_DINO <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/detection/resnet50_dino/template_experimental.yaml>`_ | DINO | 235 | 182.0 |
132+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+-----------------+
133+
| `Custom_Object_Detection_Gen3_ResNeXt101_ATSS <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/detection/resnext101_atss/template_experimental.yaml>`_ | ResNeXt101-ATSS | 434.75 | 344.0 |
134+
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+---------------------+-----------------+
135+
136+
`Deformable_DETR <https://arxiv.org/abs/2010.04159>`_ is `DETR <https://arxiv.org/abs/2005.12872>`_ based model, and it solves slow convergence problem of DETR. `DINO <https://arxiv.org/abs/2203.03605>`_ improves Deformable DETR based methods via denoising anchor boxes. Current SOTA models for object detection are based on DINO.
137+
Although transformer based models show notable performance on various object detection benchmark, CNN based model still show good performance with proper latency.
138+
Therefore, we added a new experimental CNN based method, ResNeXt101-ATSS. ATSS still shows good performance among `RetinaNet <https://arxiv.org/abs/1708.02002>`_ based models. We integrated large ResNeXt101 backbone to our Custom ATSS head, and it shows good transfer learning performance.
139+
120140
.. note::
121141

122142
For using experimental templates, you should specify full path of experimental template. Ex) otx build src/otx/algorithms/detection/configs/detection/resnet50_dino/template_experimental.yaml --task detection

docs/source/guide/release_notes/index.rst

Lines changed: 111 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,31 @@
11
Releases
2-
========
2+
########
33

4-
***************
5-
[v1.4.0] (3Q23)
6-
***************
4+
.. toctree::
5+
:maxdepth: 1
6+
7+
v1.4.3 (4Q23)
8+
-------------
9+
10+
- Re introduce adaptive scheduling for training
11+
12+
v1.4.2 (4Q23)
13+
-------------
14+
15+
- Upgrade nncf version to 2.6.0
16+
- Bump datumaro version to 1.5.0
17+
- Set tox version constraint
18+
- Add model category attributes to model template
19+
- Minor bug fixes
20+
21+
v1.4.1 (3Q23)
22+
-------------
23+
24+
- Update the README file in exportable code
25+
- Minor bug fixes
26+
27+
v1.4.0 (3Q23)
28+
-------------
729

830
- Support encrypted dataset training
931
- Add custom max iou assigner to prevent CPU OOM when large annotations are used
@@ -13,10 +35,23 @@ Releases
1335
- Add new object detector DINO
1436
- Add new visual prompting task
1537
- Add new object detector ResNeXt101-ATSS
38+
- Introduce channel_last parameter to improve the performance
39+
- Decrease time for making a workspace
40+
- Set persistent_workers and pin_memory as True in detection task
41+
- New algorithm for Semi-SL semantic segmentation based on metric learning via class prototypes
42+
- Self-SL for classification now can recieve just folder with any images to start contrastive pretraining
43+
- Update OpenVINO version to 2023.0, and NNCF verion to 2.5
44+
- Improve XAI saliency map generation for tiling detection and tiling instance segmentation
45+
- Remove CenterCrop from Classification test pipeline and editing missing docs link
46+
- Switch to PTQ for sseg
47+
- Minor bug fixes
48+
49+
v1.3.1 (2Q23)
50+
-------------
51+
- Minor bug fixes
1652

17-
***************
18-
[v1.3.0] (2Q23)
19-
***************
53+
v1.3.0 (2Q23)
54+
-------------
2055

2156
- Support direct annotation input for COCO format
2257
- Action task supports multi GPU training
@@ -25,21 +60,69 @@ Releases
2560
- Support auto adapting batch size
2661
- Support auto adapting num_workers
2762
- Support noisy label detection for detection tasks
63+
- Make semantic segmentation OpenVINO models compatible with ModelAPI
64+
- Support label hierarchy through LabelTree in LabelSchema for classification task
65+
- Enhance exportable code file structure, video inference and default value for demo
66+
- Speedup OpenVINO inference in image classificaiton, semantic segmentation, object detection and instance segmentation tasks
67+
- Refactoring of ONNX export functionality
68+
- Minor bug fixes
69+
70+
v1.2.4 (3Q23)
71+
-------------
72+
- Per-class saliency maps for M-RCNN
73+
- Disable semantic segmentation soft prediction processing
74+
- Update export and nncf hyperparameters
75+
- Minor bug fixes
76+
77+
v1.2.3 (2Q23)
78+
-------------
79+
80+
- Improve warning message for tiling configurable parameter
81+
- Minor bug fixes
2882

29-
*************
30-
v1.2.0 (1Q23)
31-
*************
83+
v1.2.1 (2Q23)
84+
-------------
85+
86+
- Upgrade mmdeploy==0.14.0 from official PyPI
87+
- Integrate new ignored loss in semantic segmentation
88+
- Optimize YOLOX data pipeline
89+
- Tiling Spatial Concatenation for OpenVINO IR
90+
- Optimize counting train & inference speed and memory consumption
91+
- Minor bug fixes
92+
93+
v1.2.0 (2Q23)
94+
-------------
3295

3396
- Add generating feature cli_report.log in output for otx training
3497
- Support multiple python versions up to 3.10
3598
- Support export of onnx models
3699
- Add option to save images after inference in OTX CLI demo together with demo in exportable code
37100
- Support storage cache in Apache Arrow using Datumaro for cls, det, seg tasks
38101
- Add noisy label detection for multi-class classification task
102+
- Clean up and refactor the output of the OTX CLI
103+
- Enhance DetCon logic and SupCon for semantic segmentation
104+
- Detection task refactoring
105+
- Classification task refactoring
106+
- Extend OTX explain CLI
107+
- Segmentation task refactoring
108+
- Action task refactoring
109+
- Optimize data preprocessing time and enhance overall performance in semantic segmentation
110+
- Support automatic batch size decrease when there is no enough GPU memory
111+
- Minor bug fixes
112+
113+
v1.1.2 (2Q23)
114+
-------------
115+
116+
- Minor bug fixes
117+
118+
119+
v1.1.1 (1Q23)
120+
-------------
121+
122+
- Minor bug fixes
39123

40-
*************
41124
v1.1.0 (1Q23)
42-
*************
125+
-------------
43126

44127
- Add FP16 IR export support
45128
- Add in-memory caching in dataloader
@@ -50,10 +133,24 @@ v1.1.0 (1Q23)
50133
- Add embedding of inference configuration to IR for classification
51134
- Enable VOC dataset in OTX
52135
- Add mmcls.VisionTransformer backbone support
136+
- Parametrize saliency maps dumping in export
137+
- Bring mmdeploy to action recognition model export & Test optimization of action tasks
138+
- Update backbone lists
139+
- Add explanation for XAI & minor doc fixes
140+
- Refactor phase#1: MPA modules
141+
142+
143+
v1.0.1 (1Q23)
144+
-------------
145+
146+
- Refine documents by proof review
147+
- Separate installation for each tasks
148+
- Improve POT efficiency by setting stat_requests_number parameter to 1
149+
- Minor bug fixes
150+
53151

54-
*************
55152
v1.0.0 (1Q23)
56-
*************
153+
-------------
57154

58155
- Installation through PyPI
59156
- Package will be renamed as OpenVINO™ Training Extensions

requirements/api.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
22
# API Requirements. #
3-
attrs>=21.2.0
3+
attrs==23.1.*
44
networkx>=2.6,<=2.8.0
55
numpy>=1.21.0,<=1.23.4 # np.bool was removed in 1.24.0 which was used in openvino runtime
66
omegaconf>=2.1.1
77
opencv-python>=4.5
8-
pymongo
9-
scikit-learn>=1.0.2
8+
pymongo==4.5.*
9+
scikit-learn==1.3.*
1010
Shapely>=1.7.1,<=1.8.0
1111
imagesize==1.4.1
12-
dill>=0.3.6
12+
dill==0.3.*

requirements/base.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
22
# Base Algo Requirements. #
3-
natsort>=6.0.0
4-
prettytable
5-
protobuf>=3.20.0
3+
natsort==8.1.*
4+
prettytable==3.9.*
5+
protobuf==3.20.*
66
pyyaml
7-
datumaro~=1.5.0
8-
psutil
9-
scipy>=1.8
10-
bayesian-optimization>=1.2.0
11-
tensorboard>=2.11.0
12-
multiprocess
7+
datumaro==1.5.1rc3
8+
psutil==5.9.*
9+
scipy==1.10.*
10+
bayesian-optimization==1.4.*
11+
tensorboard==2.15.*; python_version >= '3.9'
12+
tensorboard==2.14.*; python_version < '3.9'
13+
multiprocess==0.70.*
1314
pynvml==11.*

0 commit comments

Comments
 (0)