Skip to content

Releases: pytorch/vision

TorchVision 0.29.1 Release

Choose a tag to compare

@atalman atalman released this 30 Sep 19:42
1f1a920

This is a patch release, which is compatible with PyTorch 2.14.1. There are no new features added.

Packaging

  • Relax the PyTorch requirement from torch==2.14.0 to torch>=2.14. TorchVision is now ABI stable with respect to PyTorch 2.14, so it no longer pins an exact PyTorch version (#9683, cherry-pick of #9680)

TorchVision 0.29: ABI stability!

Choose a tag to compare

@NicolasHug NicolasHug released this 02 Sep 15:24

TorchVision 0.29 is out! It comes with two major changes: ABI stability, and deprecation of the image decoders and encoders (now in TorchCodec)!

ABI Stability with torch 2.14

TorchVision is now ABI stable w.r.t. torch 2.14! This means that torchvision 0.29 will be compatible with future versions of torch: 2.15, 2.16, etc. You won’t need to install a new version of TorchVision when you upgrade torch.

As a result, we might stop releasing TorchVision in sync with pytorch. But TorchVision is still actively maintained and developed: we’ll still be pushing releases, just not with the same cadence.

Thanks to Adrian Abeyta @adabeyta for the fantastic porting effort!

PRs: #9524, #9597, #9598, #9605, #9612, #9610, #9614, #9584, #9617, #9618, #9619, #9620, #9582, #9573, #9625, #9623, #9626, #9583, #9633, #9572, #9549, #9533, #9535, #9539, #9543, #9550, #9552, #9555, #9557, #9558, #9554

Image decoders and encoders are deprecated. Use TorchCodec!

The image decoders and encoders in torchvision.io are now deprecated, and they will be removed in a future release. They are now available in torchcodec >= 0.16, where they are significantly more capable. You’ll just need to pip install torchcodec, and you can refer to this migration guide for migrating your code (most APIs for decoding are the same).

This finalizes a clear separation of concerns for the three media-processing libraries of PyTorch: torchcodec is for decoding and encoding all media (images, videos, and audio), while torchvision and torchaudio focus on the transforms.

Bug fixes

[ops] Fix for deformable convolution kernels always running on default stream (#9522)
[ops, MPS] Fix gradient overaccumulation in ROI ops (#9563, #9510)
[transforms] Fix JPEG transform for non-contiguous batches (#9615)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:

Adrian Abeyta, Andrey Talman, Dmitry Nikolaev, Irakli Salia, Jeff Daily , Kasra Ghodsi, Nicolas Hug, Nikita Shulga, Simon Byrne, Yutao Xu, Zhewen

TorchVision 0.28.0 Release

Choose a tag to compare

@atalman atalman released this 08 Jul 18:27
8fb8771

TorchVision 0.28 is out with some small enhancement and bug-fixes:

Enhancements

  • [transforms] Let wrap() preserve metadata for custom TVTensor subclasses (#9490)
  • [transforms] Allow strings for interpolation param in resize transforms (#9461)

Bug fixes

  • [transforms] Fix F.resize on tv_tensors.Mask to honor NEAREST_EXACT interpolation. Previously the interpolation argument was ignored for mask inputs (resize_mask hardcoded NEAREST), so NEAREST_EXACT silently produced plain NEAREST output (#9497)
  • [io] Fix a GIF decoder bug on malformed GIFs that could write outside the allocated tensor's memory (#9520)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:

Andrey Talman, Benson Ma, Jason Fried, Joanne Yun, Nicolas Hug

TorchVision 0.27.1 Release

Choose a tag to compare

@atalman atalman released this 18 Jun 00:45
df56172

This is a patch release, which is compatible with PyTorch 2.12.1. There are no new features added.

TorchVision 0.27 Release

Choose a tag to compare

@NicolasHug NicolasHug released this 13 May 15:55
78839c2

TorchVision 0.27 is out! This is a small release where the main improvement is the addition of the popular lanczos interpolation mode for the v2.Resize transform on CPU. Results are equivalent to PIL's, but you can expect TorchVision to be faster as it leverages AVX2 (on x86) and NEON paths (on ARM).

Improvements

[transforms] Add support for lanczos interpolation mode (#9459)
[transforms] Drastically speed-up Resize on NEON ARM (#9439)
[ops] Vectorize masks_to_boxes for performance (#9358)
[ops, transforms] Add direct XYWH-CXCYWH conversion for better performance (#9326)
[datasets] torchvision.datasets.voc: update dataset and project site URLs (#9216)
[ops] Add support for rotated boxes in box_iou (#9404, #9379)
[ops][MPS] Improve runtime complexity of roi_align (#9100)
[Code quality] #9359, #9364, #9359, #9317, #9409, #9408, #9416, #9411, #4463, #9475, #9427, #9448, #9443, #9396, #9316, #9286, #9324, #9338, #9381, #9386

[Documentation] #9339, #9351, #9323, #9374, #9412, #9378, #9428, #9431, #9474, #9472, #9463, #9440, #9385, #9327, #9334, #8879, #9350, #9392

Bug Fixes

[transforms] Fix incorrect normalization axis in v2.ElasticTransform (#9300)
[transforms] Fix: add clamping to avoid v2.ElasticTransform IndexError when bbox equals canvas size (#9436)
[transforms] Fix tv_tensors.wrap to preserve subclass types for BoundingBoxes and KeyPoints (#9332)
[transforms] Fix CXCYWH to XYXY conversion for integer bounding boxes (#9322)
[ops] Fix masks_to_boxes for empty masks (#9357)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:

Andrew Strelsky, Andrey Talman, David Miguel Susano Pinto, fruet, Joan Salvà Soler, jsalvasoler , Look001122, MPSFuzz , mselim00, Murat Raimbekov, Nicolas Hug , Nikita Shulga, Pierre Moulon, ribbon-otter, Richard Barnes, shrianshChari, Timon Erhart, Ting Lu, Wei Shan Sun, Zhitao Yu

TorchVision 0.26 Release

Choose a tag to compare

@NicolasHug NicolasHug released this 23 Mar 18:40
336d36e

TorchVision 0.26 is out! It is compatible with torch 2.11. It's a small release that comes with the following changes:

Breaking changes and deprecations

The video decoding and encoding utilities of TorchVision, which have been deprecate for a long time, are now removed. This includes torchvision.io.video.*, read_video, write_video, the VideoReader class, etc. Users are encouraged to switch to TorchCodec, which is faster and more stable.

The rare torchvision utilities that were still relying on video decoding (like the video datasets) have been transparently migrated to TorchCodec.

Note: the image decoders and encoders are staying in TorchVision.

(#9341, #9421, #9370, #9366)

Improvements

[ops] Speed up masks_to_boxes on CPU and GPU (#9358)
[ops] Improve runtime complexity of roi_align on MPS (#9100)

Various code quality improvements (#8760, #9364, #9317, #9359, #9334, #9286, #9327)
Various documentation improvements (#9339, #9374, #9323, #9324, #8879, #9350)

Bug Fixes

[transforms] Fix edge case conversion from CXCYWH to XYXY for integer bounding boxes in F.convert_bounding_box_format (#9322)
[transforms] Fix tv_tensors.wrap to preserve subclass types for BoundingBoxes and KeyPoints (#9332)
[transforms] Fix incorrect normalization axis in v2.ElasticTransform (#9300)
[ops] Fix masks_to_boxes for empty masks (#9357)
[io] Fix CPU jpeg and png decoder/encoder error-path leak on malformed inputs (#9434)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:

Adam J. Stewart, Andrey Talman, Jaebeom, MPSFuzz , Murat Raimbekov, Nicolas Hug, ribbon-otter , Roy Hvaara, Salman Chishti, Scott Todd, Zhitao Yu

TorchVision 0.25 Release

Choose a tag to compare

@NicolasHug NicolasHug released this 21 Jan 17:04
8ac84ee

TorchVision 0.25 is out! It is compatible with torch 2.10. It's a small release that comes with the following improvements:

Enhancement

[transforms] KeyPoints aren't clamped by default anymore after a transform. This is a bug-fix that comes with a change of behavior. We also added the SanitizeKeyPoints transform to remove keypoints outside of the image area (#9236, #9235)
[utils] draw_bounding_boxes now supports a label_background_colors parameter (#9204)
[io] Fixed an issue in the GIF decoder (decode_gif, decode_image) which affected some (not all) animated GIFs. (#9241)
[misc] Various code-quality and docs improvements (#9218, #9270, #9250, #9247)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release:

Andrei Moraru, Andrey Talman, Antoine Simoulin , Arun Prakash A, Björn Barz, Huy Do, Nicolas Hug, Sean Gilligan, Wes Castro, Zhitao Yu

TorchVision 0.24.1 Release

Choose a tag to compare

@atalman atalman released this 12 Nov 20:06
d801a34

This is a patch release, which is compatible with PyTorch 2.9.1. There are no new features added.

Torchvision 0.24 release

Choose a tag to compare

@AntoineSimoulin AntoineSimoulin released this 15 Oct 17:30
7a9db90

Improving KeyPoints and Rotated boxes support!

We are releasing a tutorial on how to use KeyPoint transformations in our Transforms on KeyPoints with a preview below!

image

Note

These features are still in BETA status. The API are unlikely to change, but we may have some rough edges and we may make some slight bug fixes in future releases. Please let us know if you encounter any issue!

Detailed changes

Improvements

[ops] Improve efficiency of the box_area and box_iou functions by eliminating the intermediate to "xyxy" conversion (#8992)
[ops] Update box operations to support arbitrary batch dimensions (#9058)
[utils] Add control for the background color of label text boxes (#9204)
[transforms] Add support for uint8 image format to the GaussianNoise transform (#9169)
[transforms] Accelerate the resize transform on machines with AVX512 (#9190)
[transforms] Better error handling in RandomApply for empty list of transforms (#9130)
[documentation] New tutorial for KeyPoints transforms (#9209)
[documentation] Various documentation improvements (#9186, #9180, #9172)
[code quality] Various code quality improvements (#9193, #9161, #9201, #9218, #9160)

Bug Fixes and deprecations

[transforms] Fix output of some geometric transforms for rotated boxes (#9181, #9175)
[transforms] Fix clamping for key points and add sanitization feature (#9236, #9235)
[datasets] Update download links to official repo for the Caltech-101 & 256 datasets (#9205)
[ops] Raise error in drop_block[2,3]d by enforcing odd-sized block sizes (#9157)
[io] Removed deprecated video_reader video decoding backend. (#9208)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release: @alperenunlu, @AndreiMoraru123, @atalman, @AntoineSimoulin, @5had3z, @dcasbol, @GdoongMathew, @hrsvrn, @JonasKlotz, @zklaus, @NicolasHug, @rdong8, @scotts, @get9, @diaz-esparza, @ZainRizvi, @Callidior, and @pytorch/xla-devs

Torchvision 0.23 release

Choose a tag to compare

@AntoineSimoulin AntoineSimoulin released this 06 Aug 17:42
824e8c8

Highlight - Transforming KeyPoints and Rotated boxes!

📦 This release is introducing two highly popular feature requests: Transforms support for KeyPoints and Rotated Bounding Boxes!

  • Rotated Bounding Boxes provide a tighter fit and alignment with rotated and elongated objects, which improves the localization, reduces overlap in densely packed images, and improves isolation of objects in crowded scenes.
  • KeyPoints offer a robust and accurate way to identify and locate specific points of interest within an image or video frame. These features aim at improving developer experience to implement use cases, including detecting & tracking objects, estimating pose, analyzing facial expressions, and creating augmented reality experiences.

We illustrated the use of Rotated Bounding Boxes below. You can expect keypoints and rotated boxes to work with all existing torchvision transforms in torchvision.transforms.v2. You can find some examples on how to use those transformations in our Transforms on Rotated Bounding Boxes tutorials.

image

Note

These features are released in BETA status. The API are unlikely to change, but we may have some rough edges and we may make some slight bug fixes in future releases. Please let us know if you encounter any issue!

Detailed changes

New Features

[transforms] Added support for BoundingBoxes formats and transforms (#9104, #9084, #9095, #9138)
[transforms] Added the KeyPoints to TVTensor and support for transforms (#8817)

Improvements

[utils] Add label background to draw_bounding_boxes (#9018)
[MPS] Add deformable conv2d kernel support on MPS (#9017, #9115)
[documentation] Various documentation improvements (#9063, #9119, #9083, #9105, #9106, #9145)
[code-quality] Bunch of code quality improvements (#9087, #9093, #8814, #9035, #9120, #9080, #9027, #9062, #9117, #9024, #9032)

Bug Fixes

[datasets] Fix COCO dataset to avoid issue when copying the dataset results (#9107)
[datasets] Raise error when download=True for LFW dataset, which is not available for download anymore #9040)
[tv_tensors] Add error message when setting 1D tensor ToImage() (#9114)
[io] Warn when webp is asked to decode into grayscale (#9101)

Contributors

🎉 We're grateful for our community, which helps us improve Torchvision by submitting issues and PRs, and providing feedback and suggestions. The following persons have contributed patches for this release: @AlannaBurke, @Alexandre-SCHOEPP, @atalman, @AntoineSimoulin, @BoyuanFeng, @cyyever, @elmuz, @emmanuel-ferdman, @hmk114, @Isalia20, @NicolasHug, @malfet, @chengolivia, @RhutvikH, @hvaara, @scotts, @alinpahontu2912, @tsahiasher, and @youcefouadjer.