Hướng phát triển mở rộng bài toán nhận dạng biển số xe

Một phần của tài liệu Hệ thống nhận dạng biển số xe bằng OpenCV full Code (Trang 34)

b. Phương pháp thực hành

3.4.2. Hướng phát triển mở rộng bài toán nhận dạng biển số xe

3.4.2.1 Nhận xét

Từ những kết quả thu được (phần 4.1) em thấy giải quyết bài toán nhận dạng biến số xe theo hướng “ phân ngưỡng tìm đối tượng” có những ưu điểm sau:

Ưu điểm: Thuật toán cải đặt nhanh. tìm vùng biến số và cách ly ký tự với tỉ

lệ thành công cao ( ở những biên số thông thường). tìm được ở những ảnh tự nhiên, vùng biến số bị nghiêng.

Nhược điểm: Nhận dạng kém với những biên số có sự tương phản với ánh

nên thấp như biển nền đỏ, nền bị mờ, những biển số có đường viễn mảnh, biển số có lắp những thiết bị trang trí. biển bị bóng lóa do ánh sáng, và những biên có phần chữ số không rõ ràng.

Vì vậy. đề bài toán phát huy hiệu quả tốt nhất thì thiết bị quan sát cần đặt ờ vị trí phù hợp. Đẻ thu được những ảnh không có bóng sáng và hiện thị toàn bộ biển số xe. Phương pháp nảy xử lý được ảnh bất kỷ vì vậy có thể được đùng vào việc quan sát quản lý giao thông.

Bài toán mô phỏng động cơ cần hoàn thiện hơn khi thêm cảm biến chạm để báo cho động cơ có thể tự dừng lại khi đến 1 giới hạn nhất định.

3.4.2.2. Hướng phát triển của bài toán.

Nâng cao hiệu quả chương trình, tách ly các kí tự trong biển số trong các trường hợp biên số bị nhiều nhiễu. mắt mắt thông tin đo nhiều từ điều kiện môi

trường. tìm vùng biển số trong ảnh có độ tương phản giữa biển số và nền thấp. Đặc biệt là biển xe có nên màu đỏ chữ trắng.

Phát triển chương trình thành module phần cửng. Có khả năng tương thích với các thiết bị quan sát như camera.

Kết hợp chương trình với những chương trình nhận dạng khác đẻ hồ trợ tốt hơn cho việc quản lý phương tiện giao thông. Ví dụ: kết hợp với chương trình nhận dạng chữ viết đề đưa biển số về dạng ký tự trên máy tính giúp công việc quản lý bến bãi...

Nghiên cứu theo hưởng một ứng dụng cụ thê như : giám sát phương tiện giao thông. xử lý vi phạm giao thông, quản lý xe tại các bãi giữ xe, các kho vật tư....

Bài toán có thể áp dụng cho bãi đỗ xe dễ dàng kiểm soát tốt hơn bằng thẻ RFID.

3.4.3. Ứng dụng thực tiễn của hệ thống nhận dạng biển số xe

Hệ thống nhận dạng biển số xe được xây dựng nhằm mục đích giám sát, kiểm soát các phương tiện. Dưới đây chúng ta để cập đến một số ứng dụng phổ biến đối với hệ thống nhận dạng biển số xe:

- Hệ thống nhận dạng biển số xe có thể phát triển lên đến tự động quét thẻ khi ra vào bến bãi, cửa sẽ tự động mở không cần đến người điều khiển khi nhận dnagj đúng biển số đã quét.

- Lưu trữ lại tất cả những biển số, người dùng đã ra vào bến bãi, thống kê số lượt ra vào/ ngày với công nghệ lưu trữ, xuất thông tin chính xác, có thể từ biển số xác định được chủ xe để dễ quản lý hơn và có thể hướng phát triển đến nhận diện cả khuôn mặt và đối sánh với chủ sở hữu phương tiện được gửi trong bến bãi.

KẾT LUẬN

Sự phát triển của công nghệ thông tin đĩ có những tác động tích cực đến nhiều mặt của đời sống xã hội trong đó phải kể tới lĩnh vực giám sát tự động. Trong giám sát tự động. việc giám sát đối với các phương tiện giao thông là một vẫn đẻ nỗi trội. Nhiều chính phủ, thành phố trên thế giớ đã xây dựng hệ thống giám sát tự động đối với các phương tiện giao thông của mình. Và hệ thống giám sát đều lấy biển số xe là mục tiêu giám sát.

Ở nước ta, các hệ thống giám sát tự động nói cung và hệ thông nhận dạng biển số xe nói riêng cũng đang được chú trọng tuy nhiên nó vẫn còn là lĩnh vực cần nhiều công sức đầu tư đẻ cải thiện phường pháp cũng như tỷ lệ tìm hiển thành công.

Đa phần các công tác quản lý, xử lý đối với các phương tiện giao thông đều cần nhân lực con người. Báo cáo nhằm mục đích tìm hiểu bài toán hệ nhận dnagj biển số xe với mục đích đê quản lý, giám sát các phương tiện giao thông.

Với mục đích xây dựng lên bài toán nhận dạng biển số xe này, em hy vọng sau này có thể làm tài liệu tham khảo để hướng đến phát triển nhưng công nghệ tự động ngày càng tiên tiến, hiện đại hơn.

PHỤ LỤC

 Các thư viện cần cài

opencv-python imutils

pytesseract numpy as np openpyxl

 Code bài toán Nhận dạng biển số xe với OpenCV

import cv2 import imutils import pytesseract import numpy as np import openpyxl import matplotlib.pyplot as plt from PIL import Image

max_size = 5000 min_size = 900

image = cv2.imread( "006.JPG") image = cv2.resize(image, (640, 480))

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) gray = cv2.bilateralFilter(gray, 11, 17, 17)

edged = cv2.Canny(gray, 100, 120) cv2.imshow(" anh canny", edged)

#cv2.imshow(" anh lam min", gray)

(cnts,_) = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

cnts = sorted(cnts, key=cv2.contourArea, reverse=True)[:5] NumberPlateCnt = []

tmp = image.copy() count = 0

for c in cnts:

peri = cv2.arcLength(c, True)

approx = cv2.approxPolyDP(c, 0.02 * peri, True) cv2.drawContours(tmp,[c],-1,(0,0,128), 2) plate = approx break if len(approx) == 4: NumberPlateCnt.append(approx) if NumberPlateCnt is None:

print("khong nhan duoc bien so") else:

for plate in NumberPlateCnt:

cv2.drawContours(image,[plate],-1,(0,255,0),3) #cv2.imshow("anh da duoc nhan bien so",image) mask = np.zeros(gray.shape, np.uint8)

new_image = cv2.drawContours(mask, [plate], 0, 255, -1, ) new_image = cv2.bitwise_and(image , image, mask=mask)

(x, y) = np.where(mask == 255) (topx, topy) = (np.min(x), np.min(y))

(bottomx, bottomy) = (np.max(x), np.max(y))

Cropped = gray[topx-1:bottomx + 1, topy -1:bottomy +1] #cv2.imshow('Anh cat bien so', Cropped)

cv2.imwrite('anh bien so.jpg',Cropped)

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract- OCR\tesseract.exe"

image = cv2.imread( 'anh bien so.jpg' )

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (3,3), 0)

thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))

opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1) invert = 255 - opening

data = pytesseract.image_to_string(invert, lang='eng', config='--psm 12') print("THONG TIN NHAN DIEN :")

print(data) #cv2.imshow('thresh', thresh) #cv2.imshow('opening', opening) #cv2.imshow('invert', invert) cv2.waitKey(0) cv2.destroyAllWindows()

 Code bài toán điều khiển động cơ DC

int in2=6; int nutnhanlen=10; int nutnhanxuong=11; void setup() { pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(nutnhanlen, INPUT_PULLUP); pinMode(nutnhanxuong, INPUT_PULLUP); } void loop() { int trangthainutlen=digitalRead(nutnhanlen); int trangthainutxuong=digitalRead(nutnhanxuong); if(trangthainutlen==0 && trangthainutxuong!=0){ tien();

}

else if (trangthainutlen!=0 && trangthainutxuong==0){ lui(); } else {dung();} } void tien(){ digitalWrite(in1,HIGH); digitalWrite(in2,LOW); } void lui(){

digitalWrite(in1,LOW); digitalWrite(in2,HIGH);} void dung(){ digitalWrite(in1,LOW); digitalWrite(in2,LOW); }

TÀI LIỆU THAM KHẢO Tiếng Việt

[1] Giáo trình môn học PGS.TS Đỗ Năng Toàn,TS Phạm Việt Bình xuất bản tháng 11 năm 2007

[2] Các trang wed dạy trí tuệ nhân tạo, xử lý ảnh MI AI, các trang wed về lập trình Arduino IDE…

Tiếng Anh

[3] learing OpenCV_computer vission with the OpenCV Library_Gảy Nreadki & Kaenler

[4] https://docs.opencv.org/

[5] https://vi.wikipedia.org/wiki/

Một phần của tài liệu Hệ thống nhận dạng biển số xe bằng OpenCV full Code (Trang 34)

Tải bản đầy đủ (DOCX)

(42 trang)
w