IceVision: An Agnostic Object Detection Framework

We just released IceVision version 0.4.0. We now supports RetinaNet. We are sharing a Colab notebook that shows how to train a RetinaNet model using the fastai latest version.

RetinaNet shares some code similarities with Faster-RCNN: you can switch between the 2 models just by replacing faster_rcnn by retinanet. We also support all compatible backbones.

RetinaNet Notebook:
Backbones for Faster-RCNN, Mask-RCNN, Retina:

What is IceVision?

  • IceVision is an Object-Detection Framework that connects to different libraries/frameworks such as Fastai, Pytorch Lightning, and Pytorch with more to come.

  • Features a Unified Data API with out-of-the-box support for common annotation formats (COCO, VOC, etc.)

  • Supports EfficientDet (Ross Wightman’s implementation), Faster-RCNN, Mask-RCNN, and RetinaNet (Torchvision implementations)

  • Features unique to IceVision such as auto-detecting and auto-fixing of invalid data.

  • The IceData repo hosts community maintained parsers and custom datasets

  • Provides flexible model implementations with pluggable backbones

  • Helps researchers reproduce, replicate, and go beyond published models

  • Enables practitioners to get moving with object detection technology quickly



If you have any questions, you can contact us here:


Thanks a lot for this framework! It is I think this is the first object detection framework that includes all the benefits of fastai, so great work!

The good news: I tested the efficientdet notebook on a custom dataset I have, and it worked perfectly!

The bad news: I wasn’t able to make the FixedDataSplitter work. Do you have a working example that can be used in order to understand how to best use the FixedDataSplitters?


[EDIT] I finally managed to use it. I was trying to split according to the file names with extensions (file.png), whereas it seems like the library expects names without the extension (‘file’ instead of ‘file.png’). Still think having one or two examples there would be useful :slight_smile:.


Thanks a lot for the feedback @sebderhy, I’m happy to know you’re able to train efficientdet on your custom dataset.

We are working a lot on improving the documentation and will make sure to include some examples on how to use FixedDataSplitter. For now, just to clarify, what you have to pass to it is whatever you returning for imageid on your parser.

If you have more questions or would like to share your work with the community (we would love that) our discord forum would be a good place to do that =)


IceVision now supports Keypoints and beyond. Kudos to @FraPochetti who led the efforts to integrate the Keypoints in IceVision.

In IceVision, Keypoints are not hardcoded. We provide a KeyPoints class. User can instantiate any keypoints they like: from human to animals to objects, etc.!

We are very happy to rely on fastai v2 to train those beasts :dragon:

If you need any help, please let us know

Notebook (OCHuman DataSet):
Help / Questions:


@jerbly has kindly accepted to present us his end-to-end pipeline on how to:
Create a Game using IceVision and AzureML

Bonus: Getting familiar with both VGG Image Annotator and AzureML.

When: Saturday December 12th 11AM EST (4PM UTC)


Today, I will be presenting: FCOS - Fully Convolutional One Stage Detector


  • Introduction to Object Detection Architectures
  • FCOS
  • FCOS vs RetinaNet: Similarities & Differences
  • Code Exploration
  • Discussion

Feel free to join us

When: Tuesday Dec. 22nd 11AM EST (4PM UTC)
:tv: Channel: # live-coding


We started posting our IceVision Presentations on our new YouTube channel. For those who missed one of them, here are the 2 first recorded ones:

My presentation about: FCOS - Fully Convolutional One Stage Detector

Rob Cole’s presentation about: Deploying Models using NVIDIA Jetson

More videos in the pipeline.


@lgvaz will present tomorrow:

:tada: IceVision Parser/Record New API :tada:

The foundation of a major IceVision new capability:

  • Multitask Training :rocket::rocket::rocket:

Feel free to join our active discussion about the new API and on how to concretely implement multitask training with some interesting use-cases.

When: Tuesday March 9th - 10:30AM EST (3:30PM UTC)
:tv:Channel: # live-coding


Super Super excited to announce :tada:IceVision 0.7 :tada:

:white_check_mark: Multi-Task Training to efficiently combine object detection, segmentation, classification models
:white_check_mark: MMDetection, Torchvision, and EfficientDet Support
:white_check_mark: Data auto-fixing

To play with the Object Detection Colab notebook:

Github Repo:

Docs: (more tutorials)

Please share far and wide, and help us to spread the word.

Huge Thank You


Hi Farid, thanks for all the awesome work.

But, I am not able to join discord channel.It always says invalid-invite…

So kindly, help me out with this…


@MuhammadAli Sorry for the late response. Please try this link:

If it doesn’t work, let me know

To our fastai friends:

:loudspeaker: YOLOv5 is now supported in IceVision :loudspeaker:

You can train it with the awesome fastai library! We support the 4 models (small, medium, large, and xlarge). The results are really impressive in term of both speed and accuracy. @FraPochetti (who led our YOLOv5 integration project) was able to train YOLOv5s on cpu :fire:

If you have any questions, let us know.

Colab NB:


For those interested in Multi-Task datasets / models, here is a :movie_camera:Video Overview of a recent paper.

:newspaper:Paper: Multi-Task Self-Training (MuST) for Learning General Representations

1 Like

Hi Farid,

Thanks for working on Icevision. I just run getting_started_object_detection.ipynb. How can I export the model (onnx) to use it inference on Windows please.
I tried the following but got errors:

torch.randn(1, 3, 480, 480).cuda(),
with open(“SortPattern_vocab.txt”, “w”) as f:

TypeError: RetinaNet object argument after ** must be a mapping, not Tensor

Thanks again