Skip to content

Commit 5aa737e

Browse files
flubstepdrakejwong
andauthored
Add Keypoints type to annotations and predictions (#278)
* Add keypoints type * Update nucleus/annotation.py Co-authored-by: Drake Wong <40375132+drakejwong@users.noreply.github.com> * Add keypoints classes to __all__ * Resolve unit test issues * Update CHANGELOG.md Co-authored-by: Drake Wong <40375132+drakejwong@users.noreply.github.com>
1 parent 7b6f15d commit 5aa737e

File tree

10 files changed

+486
-5
lines changed

10 files changed

+486
-5
lines changed

CHANGELOG.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
# Changelog
2+
23
All notable changes to the [Nucleus Python Client](https://github.com/scaleapi/nucleus-python-client) will be documented in this file.
34

45
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
56
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
67

8+
## [0.10.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.10.0)) - 2022-04-21
9+
10+
### Added
11+
12+
- `KeypointsAnnotation` added
13+
- `KeypointsPrediction` added
14+
715
## [0.9.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.9.0) - 2022-04-07
816

917
### Added
@@ -14,147 +22,177 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1422
- Full support for passing parameters to evaluation configurations
1523

1624
## [0.8.4](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.8.4) - 2022-04-06
25+
1726
- Changing `camera_params` of dataset items can now be done through the dataset method `update_items_metadata`
1827

1928
## [0.8.3](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.8.3) - 2022-03-29
2029

2130
### Added
31+
2232
- new Validate functionality to intialize scenario tests without a threshold, and to set test thresholds based on a baseline model.
33+
2334
## [0.8.2](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.8.2) - 2022-03-18
2435

2536
### Added
37+
2638
- a fix to the CameraModels enumeration to fix export of camera calibrations for 3D scenes
2739

2840
## [0.8.1](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.8.0) - 2022-03-18
2941

3042
### Added
43+
3144
- slice.items_generator() and dataset.items_generator() to allow for export of dataset items at any scale.
3245

3346
## [0.8.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.8.0) - 2022-03-16
3447

3548
### Added
49+
3650
- mask_url can now be a local file for segmentation annotations or predictions, meaning local upload is now supported for segmentations
3751
- Camera params for sensor fusion ingest now support additional camera params to accommodate fisheye camera, etc.
3852
- More detailed parameters to control for upload in case of timeouts (see dataset.upload_predictions, dataset.append, and dataset.upload_predictions)
3953

4054
### Fixed
55+
4156
- Artificially low concurrency for local uploads (all local uploads should be faster now)
4257
- Client no longer uses the deprecated (and now removed) segmentation-specific server endpoints
4358
- Fixed a bug where retries for local uploads were not working properly: should improve local upload robustness
4459

4560
### Removed
46-
- client.predict, client.annotate, which have been marked as deprecated for several months.
4761

62+
- client.predict, client.annotate, which have been marked as deprecated for several months.
4863

4964
## [0.7.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.7.0) - 2022-03-09
5065

5166
### Added
67+
5268
- `LineAnnotation` added
5369
- `LinePrediction` added
5470

5571
## [0.6.7](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.7) - 2021-03-08
5672

5773
### Added
74+
5875
- `get_autotag_refinement_metrics`
5976
- Get model using `model_run_id`
6077
- Video API change to require `image_location` instead of `video_frame_location` in `DatasetItems`
78+
6179
## [0.6.6](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.6) - 2021-02-18
6280

6381
### Added
82+
6483
- Video upload support
6584

6685
## [0.6.5](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.5) - 2021-02-16
6786

6887
### Fixed
88+
6989
- `Dataset.update_autotag` docstring formatting
7090
- `BoxPrediction` dataclass parameter typing
7191
- `validate.scenario_test_evaluation` typo
7292

7393
## [0.6.4](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.4) - 2021-02-16
7494

7595
### Fixes
96+
7697
- Categorization metrics are patched to run properly on Validate evaluation service
7798

7899
## [0.6.3](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.3) - 2021-02-15
79100

80101
### Added
102+
81103
- Add categorization f1 score to metrics
82-
104+
83105
## [0.6.1](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.1) - 2021-02-08
84106

85107
### Added
108+
86109
- Adapt scipy and click dependencies to allow Google COLAB usage without update
87-
110+
88111
## [0.6.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.6.0) - 2021-02-07
89112

90113
### Added
114+
91115
- Nucleus CLI interface `nu`. Installation instructions are in the `README.md`.
92116

93117
## [0.5.4](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.5.4) - 2022-01-28
94118

95119
### Added
120+
96121
- Add `NucleusClient.get_job` to retrieve `AsyncJob`s by job ID
97122

98123
## [0.5.3](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.5.3) - 2022-01-25
99124

100125
### Added
126+
101127
- Add average precision to polygon metrics
102128
- Add mean average precision to polygon metrics
103129

104130
## [0.5.2](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.5.2) - 2022-01-20
105131

106132
### Added
133+
107134
- Add `Dataset.delete_scene`
108135

109136
### Fixed
137+
110138
- Removed `Shapely` dependency
111139

112140
## [0.5.1](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.5.1) - 2022-01-11
113141

114142
### Fixed
143+
115144
- Updated dependencies for full Python 3.6 compatibility
116145

117146
## [0.5.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.5.0) - 2022-01-10
118147

119148
### Added
149+
120150
- `nucleus.metrics` module for computing metrics between Nucleus `Annotation` and `Prediction` objects.
121151

122152
## [0.4.5](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.5) - 2022-01-07
123153

124154
### Added
155+
125156
- `Dataset.scenes` property that fetches the Scale-generated ID, reference ID, type, and metadata of all scenes in the Dataset.
126157

127158
## [0.4.4](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.4) - 2022-01-04
128159

129160
### Added
161+
130162
- `Slice.export_raw_items()` method that fetches accessible (signed) URLs for all items in the Slice.
131163

132164
## [0.4.3](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.3) - 2022-01-03
133165

134166
### Added
167+
135168
- Improved error messages for categorization
136169

137170
### Changed
171+
138172
- Category taxonomies are now updatable
139173

140174
## [0.4.2](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.2) - 2021-12-16
141175

142176
### Added
177+
143178
- `Slice.name` property that fetches the Slice's user-defined name.
144179
- The Slice's items are no longer fetched unnecessarily; this used to cause considerable latency.
145180
- `Slice.items` property that fetches all items contained in the Slice.
146181

147182
### Changed
183+
148184
- `Slice.info()` now only retrieves the Slice's `name`, `slice_id`, and `dataset_id`.
149185
- The Slice's items are no longer fetched unnecessarily; this used to cause considerable latency.
150186
- This method issues a warning to use `Slice.items` when attempting to `items`.
151187

152188
[###](###) Deprecated
189+
153190
- `NucleusClient.slice_info(..)` is deprecated in favor of `Slice.info()`.
154191

155192
## [0.4.1](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.1) - 2021-12-13
156193

157194
### Changed
195+
158196
- Datasets in Nucleus now fall under two categories: scene or item.
159197
- Scene Datasets can only have scenes uploaded to them.
160198
- Item Datasets can only have items uploaded to them.
@@ -163,6 +201,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
163201
## [0.4.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.4.0) - 2021-08-12
164202

165203
### Added
204+
166205
- `NucleusClient.modelci` client extension that houses all features related to Model CI, a continuous integration and testing framework for evaluation machine learning models.
167206
- `NucleusClient.modelci.UnitTest`- class to represent a Model CI unit test.
168207
- `NucleusClient.modelci.UnitTestEvaluation`- class to represent an evaluation result of a Model CI unit test.
@@ -172,12 +211,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
172211
## [0.3.0](https://github.com/scaleapi/nucleus-python-client/releases/tag/v0.3.0) - 2021-11-23
173212

174213
### Added
214+
175215
- `NucleusClient.datasets` property that lists Datasets in a human friendlier manner than `NucleusClient.list_datasets()`
176216
- `NucleusClient.models` property, this is preferred over the deprecated `list_models`
177217
- `NucleusClient.jobs` property. `NucleusClient.list_jobs` is still the preferred method to use if you filter jobs on access.
178218
- Deprecated method access now produces a deprecation warning in the logs.
179219

180220
### Deprecated
221+
181222
- Model runs have been deprecated and will be removed in the near future. Use a Model directly instead. The following
182223
functions have all been deprecated as a part of that.
183224
- `NucleusClient.get_model_run(..)`

nucleus/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
"DatasetItem",
1515
"DatasetItemRetrievalError",
1616
"Frame",
17+
"Keypoint",
18+
"KeypointsAnnotation",
19+
"KeypointsPrediction",
1720
"LidarScene",
1821
"LineAnnotation",
1922
"LinePrediction",
@@ -51,6 +54,8 @@
5154
BoxAnnotation,
5255
CategoryAnnotation,
5356
CuboidAnnotation,
57+
Keypoint,
58+
KeypointsAnnotation,
5459
LineAnnotation,
5560
MultiCategoryAnnotation,
5661
Point,
@@ -123,6 +128,7 @@
123128
BoxPrediction,
124129
CategoryPrediction,
125130
CuboidPrediction,
131+
KeypointsPrediction,
126132
LinePrediction,
127133
PolygonPrediction,
128134
SegmentationPrediction,

0 commit comments

Comments
 (0)