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.
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.)
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?
Thanks,
Sebastien
[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 .
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
Multi-Task Training to efficiently combine object detection, segmentation, classification models
MMDetection, Torchvision, and EfficientDet Support
Data auto-fixing
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
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.onnx.export(
learn.model,
torch.randn(1, 3, 480, 480).cuda(),
âSortPattern.onnxâ,
input_names=[âClassifyâ],
output_names=[âDefectsâ]
)
with open(âSortPattern_vocab.txtâ, âwâ) as f:
f.write("\n".join(list(learn.dls.vocab)))
TypeError: RetinaNet object argument after ** must be a mapping, not Tensor
Thanks for working on this library. Looks great!
I tried to use it and it, cannot get it installed, just the import line causes all sort of errors (importing from sahi, torch). I tried it in collab and my own Linux box.
Hello,
I have a TBX11K data set of Chest X-Rays with COCO formatted annotations.
There is one big image directory with multiple subdirectories. Then there is one main JSON annotations directory with multiple annotation COCO files inside.
How would I use parser to set the annotation file path rather than directory since there is more than one annotation JSON COCO formatted file in that annotation directory? The parser constructor seems to assume there is only one annotation file per directory? I am confused.
Here is the TBX11K directory. I need to input the images and COCO annotations into the IceVision datasets and then train/test a detection model (e.g. faster RCNN with SWIN).
main dir: annotations
child dir: json
all_test.json
all_train.json
all_val.json
images dir: imgs
subdir1: all_test_train
subdir2: extra
subdir3: health
subdir4: sick
subdir5: tb
BTW - Can this all still work with new python 3.11 or higher?
Manuel Steele