Releases: oke-aditya/quickvision
Announcing Quickvision !
Quickvision is here !
A simple Computer Vision Library for PyTorch and Lightning !
Brief summary
- Quickvision provides easy training API to Computer Vision Models.
- It is completely based on PyTorch and supports PyTorch Lightning too.
- Quickvision assembles building blocks from torchvision and is highly inspired from torchvison.
- It does not abstract any PyTorch code, the only data format used is
Tensor
and has no custom classes implemented on top. - Quickvision is a library and not a framework, so it has super low dependencies.
- It also provides a simple PyTorch interface, we tend to avoid writing abstract classes on top of
nn.Module
. - We keep the library minimal, only to PyTorch, torchvision and optionally PyTorch Lightning.
How does Quickvision help in CV Tasks ?
-
The most painful procedure is creating models, supporting different architectures and long training loops.
It takes lot of time to write tested, stable and efficient training pipelines. -
Quickvision has already implemented these for you ! You can simple
- Create your own model or from Quickvision.
- Train it using Quickvision engines.
- Have your trained model back !
We expect our engines to be stable and mature over releases and testing, which would mean you would not have to worry about model creating and loading. We also calculate metrics on fly in PyTorch for models, these are written in PyTorch and do not use any other APIs.
- Quickvision give you full flexibility of PyTorch, you may use customize your training loops combining
train_step
andval_step
methods of our models. Feel free to experiment and leave the long training loops to us 😃
Features in Release 0.1
In this initial open sourcing, we have provided training APIs for detection as well as classification tasks.
- Supported some torchvision CNNs training.
- Supported Detection models from torchvision Faster RCNN #7 and Retina Net #6 .
- Supported DETR (Detection Transformers) for Object detection transfer learning through
torch.hub
#21 - Supports Some backbones which can be trained through CNN Trainer.
- Supported Pretrained weights other than imagenet for few models #27 .
- Have Sanity Fir APIs for all the above models #46 #51 .
- PyTorch Lightning trainers for all above.
- Added lot of tutorials and notebooks for users to learn #52 . We hope you get the feel of library and use it.
Thanks to our awesome contributors @hassiahk @ramaneswaran for helping in this release.
- Note that this current release requires PyTorch 1.7 and torchvision 0.8.1.
FAQs about Quickvision: -
- Will this support fastai, ignite, catalyst, TensorFlow, Keras, etc ?
No, it will not, it is only based on torchvision and PyTorch Lightning (optionally).
- Does this have internal data representation and complex classes ?
No, it only abstracts code and avoids use of mixins, multiple inheritances and such confusions.
We deal only in Tensors
and hence it is much easier to use.
- Does it provides Augmentations ?
We avoid binding to any augmentations and leave that flexibility to user. You may use any augmentation library such as Torchvision, Albumentations, etc. This is left entirely to end users, as augmentations heavily depend on datasets and user's choice of libraries.
- Is Quickvision a Framework ?
No ! This is mere extension to torchvision. We do not wish to be a framework.
A framework is end to end library that would do Data loading, Preprocessing, Model Creation, Training, Post Processing and Visualization.
Quickvision only accelerates the the Model Creation and Training parts.
We feel that rest part are better left to end user for wiser decisions.
- Is Quickvision limited to Object Detection ?
No ! It is a Computer Vision library, which would later extend to other tasks as well.
Right now we support Image Classification and Object Detection.
- Quickvision is very similar to torchvision then why is it there ?
Torchvision is great, in fact quickvision is created taking heavy inspirations and ideas from torchvision, we have tried to keep API similar. In a way Quickvision extends torchvision, we would love to host other computer vision tasks, more models and their implementations, provide a clean training API. It does not intend to substitute torchvision instead use it as base.
0.1.0rc4: Adds Detr sanity fns (#51)
* Adds Detr sanity fns * bug fixes
0.1.0rc3
Update setup.py
0.1.0rc2
Tries re releasing
0.1.0rc1: fixes cuda tests (#32)
* fixes cuda tests * fix bug * tries fixing detr * Fix GPU test for detr