Supervise.ly [Image annotation and data management]

Iterate from image annotation to accurate neural networks 10x faster

ANKUR DHAKAR
4 min readJul 11, 2020

--

Supervise.ly is a powerful platform for computer vision development, where individual researchers and large teams can annotate and experiment with datasets and neural networks.

Tasks to be created:-

Create a project designed to solve the real use case,
using either transfer learning example existing Mask-RCNN, VGG16, etc.
or creating new model of Mask-RCNN, GANs, RNN, etc. to solve any real
case problems or new problems.

Necessary requirements:-
1. Make your own custom dataset using supervisely
2. Either create a new model or using existing model as transfer learning
3. Launch the training on aws cloud

Prerequisites:-

  1. Create a free account on supervise.ly and AWS cloud.
  2. Collect dataset for annotations and tagging the objects which we want to be segmented.

Here we start our journey of using a complete cycle from annotation to the neural network training using transfer learning on the Mask-RCNN model ( pre-trained on coco weights).

Step1:-

Create a team and then your own workspace for the project.

Now we a workspace named mask-rcnn-ws.

Step2:-

Upload your custom dataset(images). [ Drag and Drop on the dashboard ]

Step3:-

Annotate the uploaded dataset(images).

Step4:-

Augmentation on the dataset to increase the count of images in the dataset using DTL.

[
{
"dst": "$data",
"src": [
"fish/*"
],
"action": "data",
"settings": {
"classes_mapping": "default"
}
},
{
"dst": "$flip_vert",
"src": [
"$data"
],
"action": "flip",
"settings": {
"axis": "vertical"
}
},
{
"dst": "Console Dataset_Aug",
"src": [
"$data",
"$resized_result",
"$resized_result2",
"$noise_result",
"$flip_vert"
],
"action": "supervisely",
"settings": {}
},
{
"action": "resize",
"src": [
"$data"
],
"dst": "$resized_result",
"settings": {
"width": 800,
"height": -1,
"aspect_ratio": {
"keep": true
}
}
},
{
"action": "noise",
"src": [
"$data"
],
"dst": "$noise_result",
"settings": {
"mean": 10,
"std": 60
}
},
{
"action": "resize",
"src": [
"$data"
],
"dst": "$resized_result2",
"settings": {
"width": 300,
"height": -1,
"aspect_ratio": {
"keep": true
}
}
}
]

Step4:-

After augmentation on the dataset. Create a train set using instance segmentation(Mask-R-CNN).

Step5:-

Add a pre-trained model (e.g. Mask-R-CNN is a conceptually simple, flexible, and general framework for object instance segmentation. Our approach efficiently detects objects in an image while simultaneously generating a high-quality segmentation mask for each instance.
Pretrained on COCO ) for Transfer Learning.

Step6:-

Initialize worker node for supervise.ly

Step7:-

Start training the pre-trained model(Mask-R-CNN) on the training dataset(obtained after instance segmentation).

Step8:-

We require testing data for testing our newly created model. upload testing data on supervise.ly ( simple drag and drop)

Step9:-

After training, supervise.ly automatically saves the model named training.
So we can do testing on this newly trained model.

Step10:-

And as your testing and training finishes, then terminate your running instances as it will costs you accordingly.

This way we can use supervise.ly, for the entire computer vision lifecycle and various real use-cases.

P.S.
Any questions or suggestions are welcome.

--

--

ANKUR DHAKAR

I am pursuing masters in computer science from BITS Pilani Hyderabad Campus, and passionate about Linux administration and security, Cloud Computing, and CNCF.