Comments (4)
Would this do the job?
if keypoints is None:
result = cursed(image=image, keypoints=[])
processed_keypoints = None
else:
result = cursed(image=image, keypoints=keypoints)
processed_keypoints = result["keypoints"]
processed_image = result["image"]
if processed_keypoints is None:
=> self_supervision
else:
=> supervision
from albumentations.
Yep, that's pretty much how I solved it too. But having to manually check each time a Compose is called should not be client code responsibility in my opinion. Also, keep in mind that bounding boxes must be considered in this check as well, further messing the code up.
Wouldn't it be so much better like this?
keys_to_targets: dict[str, Any] = get_stuff_to_transform(...)
processed = compose(**keys_to_targets)
from albumentations.
It is hard to distinguish if person did not pass boxes or keypoints for a reason, like in your case, or just forgot about it.
But we can add functionality and pass keypoints = None
in the case when keypoints are missing, but user still wants transform to work.
I think, in such case:
keys_to_targets: dict[str, Any] = get_stuff_to_transform(...)
processed = compose(**keys_to_targets)
will work
from albumentations.
Addressed in #1697
from albumentations.
Related Issues (20)
- [Performance] Vecorize bounding boxes and keypoints
- [Feature request] Add apply_to_batch
- The bbox obtained with HorizontalFlip has a pixel difference HOT 2
- Augmentation outputs Incorrect Bounding Boxes Values HOT 4
- module 'albumentations' has no attribute 'IAASharpen’ HOT 1
- [Tech debt] Enable typing checks with "numpy.typing.mypy_plugin"
- [Bug] RandomShadow HOT 1
- How It's works "Normalize" function HOT 2
- [Feature Request] Add multichannel support to RandomShadow
- [Tech debt] Remove scikit-learn as depencency
- check_for_updates error HOT 1
- UserWarning: Got proce ssor for bboxes, but no transform to process it HOT 3
- Error "Key image is not in available keys" for empty transform HOT 2
- Min-max normalization resulting in nan values on all-zero arrays HOT 2
- [Performance] Move addition to albucore
- [Performance] Move add + multiply to albucore
- [Performance] Move power to albucore
- [Performance] Move normalize to albiucore
- [Performance] Move add_weighted to albucore
- Check_for_updates TimeoutError: The read operation timed out
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from albumentations.