Summer 2021 — Task 8

Malay Kaushik
3 min readAug 14, 2021

Task Description 📄

📌 In this task :
👉Create a model that will detect a car in a live stream or video and recognize characters on number plate of the car .
👉Secondly , it will use the characters and fetch the owners information using RTO API’s .
👉Create a Web portal where all this information will be displayed (using html,css,and js)
📌 Note : You may create your own detection model .
👉 Make a blog/article/video explaining this task step by step.
❄️ Submit the link of blog/article or video link

So here is my another blog on my task-8

Source code for Number Plate Detection System-

!pip install easyocr
!pip install imutils
import cv2
from matplotlib import pyplot as plt
import numpy as np
import imutils
import easyocr
img = cv2.imread('car.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(cv2.cvtColor(gray, cv2.COLOR_BGR2RGB))
bfilter = cv2.bilateralFilter(gray, 11, 17, 17) #Noise reduction
edged = cv2.Canny(bfilter, 30, 200) #Edge detection
plt.imshow(cv2.cvtColor(edged, cv2.COLOR_BGR2RGB))
keypoints = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contours = imutils.grab_contours(keypoints)
contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]
location = None
for contour in contours:
approx = cv2.approxPolyDP(contour, 10, True)
if len(approx) == 4:
location = approx
break
locationmask = np.zeros(gray.shape, np.uint8)
new_image = cv2.drawContours(mask, [location], 0,255, -1)
new_image = cv2.bitwise_and(img, img, mask=mask)
plt.imshow(cv2.cvtColor(new_image, cv2.COLOR_BGR2RGB))(x,y) = np.where(mask==255)
(x1, y1) = (np.min(x), np.min(y))
(x2, y2) = (np.max(x), np.max(y))
cropped_image = gray[x1:x2+1, y1:y2+1]
plt.imshow(cv2.cvtColor(cropped_image, cv2.COLOR_BGR2RGB))reader = easyocr.Reader(['en'])
result = reader.readtext(cropped_image)
result
text = result[0][-2]
font = cv2.FONT_HERSHEY_SIMPLEX
res = cv2.putText(img, text=text, org=(approx[0][0][0], approx[1][0][1]+60), fontFace=font, fontScale=1, color=(0,255,0), thickness=2, lineType=cv2.LINE_AA)
res = cv2.rectangle(img, tuple(approx[0][0]), tuple(approx[2][0]), (0,255,0),3)
plt.imshow(cv2.cvtColor(res, cv2.COLOR_BGR2RGB))

Step-1

First of all Install and Import all the require directories

Step-2

Give the image name and now with the help of the image we will trace the Number plate

Step-3

So now we have got the location

Step-4

Now with the help of the reader function we will get the number plate

Step-5

Now finally the Number plate have been detected

Now we have finally got our Number plate in the form of text and now we will enter the Number plate initials on our web page we have made to get the required details …..

STEP-6

So now here is our web page where we have to enter the Number plate initials to get the Vehicle Information

So now when you will click on display , the detailed Vehicle information will be displayed

Hence now we have got the detailed vehicle information and our task-8 is successfully completed..

--

--