Number Plate Detection With Supervise.ly

Number Plate Detection With Supervise.ly

What is Supervisely?

There are many open-sourced implementations of state of the art neural network architectures. But deep learning models are very “data-hungry”.

“ Deep learning algorithms have many parameters that need to be tuned and therefore need a lot of data in order to come up with somewhat generalizable models. So, in that sense, having a lot of data is key to coming up with good training sets for those approaches.” Xavier Amatriain, VP of Engineering at Quora.

And it is not a secret that in most cases data scientist spends most of the time on training data preparation:

  • Creating private datasets
  • Merging their with several public datasets in different formats
  • Adding various data augmentations

And while he does these, there is a high probability of making a lot of mistakes or doing something wrong during data preparation.

Supervisely solves these problems. It offers the best of simplicity and performance — it is the web-based framework that allows to import all the most famous public datasets, to create own datasets with integrated annotation tool, merge and export datasets to different formats with various number of augmentations and much more.

No alt text provided for this image

The first step is to register on Supervise.ly.

No alt text provided for this image

Create a Workspace.

Click on the Workspace to navigate to Projects.

Here, We can Upload the Image data we want to annotate.

I used images of rear view of car for Number plate detection.

No alt text provided for this image

Annotating the Images:

For Annotation, We have to annotate every image one by one.

No alt text provided for this image

Data preparation for training takes most of data scientists's time. In addition, there is a high probability of mistakes while performing such process. Supervisely solved this issue by designing a special language named DTL that allows to fully automate data manipulation: merge projects and datasets, make classes mapping, various augmentations of images and annotations, save to different formats and more.

No alt text provided for this image

We can add DTL plugin in Supervisely and use it to increase our prepared dataset.


No alt text provided for this image


To use DTL , navigate to Projects and click on the 3-dot menu. There you can see the option to run DTL. As we want to train our dataset in future, we will select "Create train set"


No alt text provided for this image

Here, DTL asks how we want to increase our dataset. Click on Start and Supervisely will start creating new dataset.


No alt text provided for this image

Till here, We have successfully increased and annotated our dataset.

Next, we have to train a new model on our own dataset. For this, Just navigate to Neural Networks and select "Add Neural Network"

No alt text provided for this image

Here, It gives us a library of pre-trained models. Each model here is a combination of model weights and neural network architecture also known as NN plugin.

No alt text provided for this image
No alt text provided for this image



Asoon as we Click on Train, Suervisely shows an error "No agents available". This is because we have to use our own machine to train the model.



Adding Our own Cluster to Supervisely:

No alt text provided for this image

To add our own Cluster, just navigate to Cluster and click on Add. Now we just have to run this command on our machine and supervisely will automatically do all the setup for us.

Note : The machine we are adding should have a GPU otherwise we will not be able to use Neural Nework

As i don't have GPU in my laptop, I used AWS instance as an agent.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

If everything goes right, You can will your cluster status "Running"


Now, Lets again go to Neural Networks and train our dataset:

No alt text provided for this image

It asks for the agent that we just added.

We also have to select input project.


No alt text provided for this image

It asks for the name for output model. After that it shows the code configuration of Mask R-CNN that will be used to train the dataset. Click on run and it will start training the Dataset.

No alt text provided for this image

After the model is successfully trained, Lets test it :

No alt text provided for this image



Test Image




Output

No alt text provided for this image

We can download the trained model and further use it to test on other images.

We can further improve this project by Extracting text from the detected Plate. This problem can be solved using OCR(Optical Character Recognition) which can be helpful in extracting alphanumeric characters from cropped Number Plate images.

Note:

  • By default, AWS doesn't allow everyone to create GPU instances, for this we have to request a limit increase using the Amazon EC2 console. You will get an e-mail as soon as your limit increase request gets approved.
No alt text provided for this image


Atul Yadav

Android Developer | 4+ Years | Kotlin, Java, Jetpack, MVVM, Firebase, REST APIs | Open to Work

4 年

Great.

Kapil Meena

Software Engineer @ Rapyuta Robotics || NIT-B'2023

4 年

Great work

Mayank Gaur

DevOps Engineer @Fiftyfive Technologies

4 年

Nice one ?? ...it will really save lot of time building rcnns

MUKESH KUMAR SANDELA

Web Development | RHEL8 | MLOps | DevOps | Python |

4 年

well done bro

要查看或添加评论,请登录

Gaurav Yadav的更多文章

  • Hosting Wordpress on AWS with maximum Security

    Hosting Wordpress on AWS with maximum Security

    Task Write a Infrastructure as code using terraform, which automatically create a VPC. In that VPC we have to create 2…

    2 条评论
  • Jenkins Automation Using Groovy

    Jenkins Automation Using Groovy

    In this tutorial I tried to Show how to use Groovy script to build a Jenkins pipeline. Groovy is suitable for beginners…

    1 条评论
  • Deploying Prometheus and Grafana over Kubernetes

    Deploying Prometheus and Grafana over Kubernetes

    Task: Creating Docker images for Prometheus & Grafana. Deploying Prometheus & Grafana as pods on top of Kubernetes by…

  • Setting Up WordPress On AWS Using Amazon EKS

    Setting Up WordPress On AWS Using Amazon EKS

    Tasks: Kubernetes Cluster using AWS EKS. Integrate EKS with EC2,EBS,LB,EFS.

  • Deploying Openstack on AWS

    Deploying Openstack on AWS

    Probably everyone with OpenStack hands-on experience would agree that sometimes it could be hard and frustrating to…

    3 条评论
  • Kubernetes deployment and Monitoring using Jenkins

    Kubernetes deployment and Monitoring using Jenkins

    Task: Using Jenkins Server on Rhel, Create a job chain of job1, job2, job3 and job4 using build pipeline plugin in…

    1 条评论
  • Infrastructure as Code with AWS and Terraform

    Infrastructure as Code with AWS and Terraform

    For This Task, I first created an Amazon Machine Image(AMI) from an instance in which I configured Jenkins and Apache…

    20 条评论
  • CI/CD Pipeline Using Kubernetes

    CI/CD Pipeline Using Kubernetes

    Task Description 1. Create container image that’s has Linux and other basic configuration required to run Slave for…

    4 条评论
  • Hyperparameter Tuning using MLOps

    Hyperparameter Tuning using MLOps

    The percentage of AI models created but never put into production in large enterprises has been estimated to be as much…

    2 条评论
  • Facial Recognition using Transfer Learning

    Facial Recognition using Transfer Learning

    Transfer learning is a machine learning method where a model developed for a task is reused as the starting point for a…

    1 条评论

社区洞察

其他会员也浏览了