1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần ngôn ngữ lập trình python Đề tài xây dựng hệ thống nhận diện biển số xe

39 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Nhận Diện Biển Số Xe
Tác giả Trương Hoàng Hiệp, Nguyễn Đức Quang Thắng
Người hướng dẫn ThS. Trần Thị Minh Thu
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 39
Dung lượng 9,48 MB

Nội dung

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN--- ---BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN NGÔN NGỮ LẬP TRÌNH PYTHON ĐỀ TÀI: XÂY DỰNG HỆ THỐNG NHẬN DIỆN BIỂN SỐ XE Sinh viên thực hiện : TRƯƠ

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN

-

-BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

NGÔN NGỮ LẬP TRÌNH PYTHON

ĐỀ TÀI:

XÂY DỰNG HỆ THỐNG NHẬN DIỆN BIỂN SỐ XE

Sinh viên thực hiện : TRƯƠNG HOÀNG HIỆP

: NGUYỄN ĐỨC QUANG THẮNG Giảng viên hướng dẫn : ThS TRẦN THỊ MINH THU

Trang 2

Hà Nội, tháng 11 năm 2024 PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

Trương Hoàng Hiệp

Trang 3

MỤC LỤC

Trang

LỜI MỞ ĐẦU 1

CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN 2

1.1 Khái quát đề tài 2

1.2 Mục tiêu 2

1.3 Phương pháp nghiên cứu 2

1.4 Phạm vi 3

1.5 Phân tích yêu cầu 3

1.5.1 Yêu cầu chức năng 3

1.5.2 Yêu cầu phi chức năng 3

1.6 PyQt5 và Qt Designer 3

1.6.1 Qt 3 1.6.2 PyQt 4 1.6.3 Qt Designer 5

1.7 Trí tuệ nhân tạo 5

1.7.1 Khái niệm 5

1.7.2 Ứng dụng của AI trong thực tế 6

1.8 Tổng quan bài toán nhận dạng biển số xe 6

1.8.1 Khái niệm biển số xe 6

1.8.2 Đặc điểm của biển số xe 6

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 8

2.1 Tổng quan về ngôn ngữ lập trình python 8

2.1.1 Sơ lược về ngôn ngữ lập trình Python 8

2.1.1.1 NguVn gốc cái tên “python” 8

2.1.1.2 Tính năng của Python 8

2.1.1.3 Công cụ lập trình Python-Pycharm 9

2.1.2 Ứng dụng của python 9

2.1.2.1 Xử lý ảnh và Open CV 9

2.1.2.2 Hướng giải quyết 10

2.2 Phân tích và thiết kế hệ thống 10

2.2.1 Phân tích yêu cầu 10

Trang 4

2.2.1.1 Yêu cầu chức năng 10

2.2.1.2 Yêu cầu hệ thống 11

2.2.2 Biểu đV ca sử dụng 11

2.2.2.1 Chức năng đưa dữ liệu vào 11

2.2.2.2 Chức năng đưa ra ảnh đã threshold 11

2.2.2.3 Chức năng đưa ra các contour tìm được 11

2.2.2.4 Chức năng nhận dạng và hiển thị biển số xe 11

2.2.3 Thiết kế hệ thống 12

2.2.4 Phát hiện vị trí và tách biển số xe 13

2.2.4.1 Hướng giải quyết 13

2.2.4.2 Chuyển sang ảnh xám 14

2.2.4.3 Tăng độ tương phản 14

2.2.4.4 Giảm nhiễu bằng bộ lọc Gaussian 15

2.2.4.5 Phát hiện cạnh Canny 16

2.2.4.6 Vẽ contour 18

2.2.5 Phân đoạn kí tự 20

2.2.5.1 Xoay biển số 20

2.2.5.2 Tìm vùng đối tượng 22

2.2.5.3 Tìm và tách kí tự 22

2.2.6 Nhận diện kí tự 22

2.2.6.1 Thuật toán KNN 22

2.2.6.2 Hướng giải quyết 24

CHƯƠNG 3: CHƯƠNG TRÌNH DEMO 27

3.1 Một số hình ảnh của chương trình 27

3.2 Code của chương trình 29

KẾT LUẬN 32 TÀI LIỆU THAM KHẢO 33

Trang 5

DANH MỤC HÌNH ẢNH

Trang

Hình 2.1 Các bước chính trong nhận dạng biển số xe 10

Hình 2.2 Biểu đV use-case 12

Hình 2.3 Lưu đV nhận dạng biển số xe 13

Hình 2.4 Black hat 14

Hình 2.5 Top Hat 15

Hình 2.6 Ảnh sau khi tăng tương phản 15

Hình 2.7 Ảnh sau khi lọc Gaussian 16

Hình 2.8 Loại bỏ những điểm không là cực đại 17

Hình 2.9 Lọc ngưỡng 18

Hình 2.10 Ảnh sau khi phát hiện biên canny 18

Hình 2.11 Vẽ Contour với OpenCV 20

Hình 2.12 Ảnh biển số chưa xoay 21

Hình 2.13 Ảnh biển số đã xoay 21

Hình 2.14 Tìm vùng đối tượng 22

Hình 2.15 Ví dụ về KNN 23

Hình 2.16 Tập dữ liệu kí tự 25

Hình 2.17 Biển số trước khi nhận diện 25

Hình 2.18 Biển số sau khi nhận diện 25

Hình 2.19 Biển số xe được in lên ảnh gốc 26

Hình 3.1 Ảnh demo nhận dạng biển số xe từ ảnh 27

Hình 3.2 Ảnh demo nhận dạng mặt số và chữ 28

Hình 3.3 Ảnh demo nhận dạng video 28

Hình 3.4 Tải lên mô hình KNN và hiển thị ảnh lên gốc lên GUI 29

Hình 3.5 Hàm showtime và hiển thị video lên GUI 29

Hình 3.6 Hàm để truy xuất thông tin tỉnh của biển số 30

Hình 3.7 Cắt và nhận diện kí tự 30

Hình 3.8 Lọc vùng biển số 31

Trang 6

LỜI MỞ ĐẦU

Sự phát triển mạnh mẽ của công nghệ thông tin trong những năm gần đây

đã tạo nên những thay đổi to lớn đối với cuộc sống con người Nó ngày càngkhẳng định được vai trò của mình trong sự phát triển chung của xã hội.Trongthời đại ngày nay mọi việc con người có thể làm thì hầu như máy móc cũng cóthể làm được đó là nhờ những người lập trình viên đã biến những chiếc máy tính

và những ngoại vi của nó trở thành những hệ thống thông minh có thể thực hiệnbất cứ công việc gì

Đơn giản như công việc gửi xe, chỉ vài năm trước đây khi đi đến bất kìbãi gửi xe nào chúng ta cũng thấy tất cả xe đều phải được nhân viên coi xe gibằng giấy, việc này là vô cũng bất tiện và nhiều rủi ro như giấy rất dễ bị hư hao,rách hoặc dính nước…không những vậy việc ghi giấy không thể tránh khỏi saisót khi người nhân viên coi xe một thoáng mất tập trung và ghi sai, vì vậy rấtmất thời gian Trong khuôn khổ chương trình đã học, cũng như yêu cầu của báo

cáo kết thúc môn, em đã viết một chương trình: “XÂY DỰNG HỆ THỐNG NHẬN DIỆN BIỂN SỐ XE”.

Song vì thời gian có hạn, và còn thiếu nhiều kinh nghiệm và kỹ năng cònhạn chế Nên chắc chắn không tránh khỏi những thiếu sót Vì vậy em rất mongnhận được nhiều ý kiến đóng góp từ thầy cô và bạn bè để chúng em hoàn thànhtốt đề tài này

Chân thành cảm ơn thầy cô!

Trang 7

CHƯƠNG 1: KHẢO SÁT VÀ XÁC LẬP DỰ ÁN

1.1 Tổng quan bài toán nhận dạng biển số xe

1.1.1 Tổng quan về bài toán

Nhận diện biển số xe (Automatic License Plate Recognition - ALPR) làmột bài toán quan trọng trong lĩnh vực thị giác máy tính và xử lý hình ảnh, đượcnghiên cứu và ứng dụng rộng rãi trên toàn thế giới Công nghệ này cho phép tựđộng phát hiện, trích xuất và nhận dạng các ký tự trên biển số xe từ hình ảnhhoặc video Ứng dụng của ALPR không chỉ giúp cải thiện hiệu quả quản lý giaothông mà còn đóng vai trò quan trọng trong các hệ thống giám sát an ninh vàquản lý bãi đỗ xe

Bài toán nhận diện biển số xe bắt đầu được nghiên cứu từ những năm

1970, khi các hệ thống camera và máy tính dần được tích hợp trong giao thông.Ban đầu, công nghệ này chỉ hoạt động trên hình ảnh tĩnh và đòi hỏi thiết bị phầncứng đặc biệt với độ phân giải cao Tuy nhiên, với sự phát triển của công nghệmáy tính và trí tuệ nhân tạo (AI), hệ thống ALPR hiện nay có thể xử lý hình ảnh

từ camera giám sát thông thường và nhận diện biển số trong thời gian thực với

độ chính xác cao

1.1.2 Hiện trạng của bài toán

Hiện nay, công nghệ nhận diện biển số xe (ALPR) đã được triển khai rộngrãi trên toàn cầu với nhiều giải pháp thương mại tiên tiến, áp dụng trong các lĩnhvực như giao thông, an ninh, và quản lý đỗ xe Các hệ thống ALPR hiện đại sửdụng trí tuệ nhân tạo (AI) và học sâu (deep learning) để tăng độ chính xác, khảnăng nhận diện trong thời gian thực và hoạt động hiệu quả trong các điều kiệnmôi trường khác nhau

Các công nghệ nhận diện biển số xe hiện nay được tích hợp với nhiều hệthống khác nhau, chẳng hạn như:

Trang 8

 Camera giám sát giao thông: Camera được lắp đặt tại các nút giao thông,trạm thu phí hoặc dọc theo các tuyến đường cao tốc để theo dõi và pháthiện vi phạm giao thông như vượt đèn đỏ, đi sai làn.

 Hệ thống quản lý bãi đỗ xe tự động: ALPR giúp tự động nhận diện vàtheo dõi xe ra vào các bãi đỗ, quản lý hiệu quả hơn mà không cần đếnnhân viên điều khiển thủ công

 Giám sát an ninh: Công nghệ này được tích hợp trong các hệ thốngcamera an ninh, giúp nhận diện và theo dõi các phương tiện khả nghi hoặc

có liên quan đến tội phạm

1.1.3 Ưu, nhược điểm của bài toán

Với sự tiến bộ của trí tuệ nhân tạo và xử lý hình ảnh, ALPR ngày càngđược sử dụng rộng rãi trong nhiều ứng dụng như giám sát giao thông, quản lýbãi đỗ xe và hỗ trợ an ninh công cộng Tuy nhiên, như bất kỳ công nghệ nàokhác, ALPR cũng có những ưu điểm nổi bật nhưng đVng thời cũng gặp phải một

số hạn chế cần khắc phục

Ưu điểm của nhận diện biển số xe:

 Tự động hóa giúp tiết kiệm nhân lực và chi phí

 Tăng cường giám sát an ninh và phát hiện vi phạm hiệu quả

 Xử lý thời gian thực với độ chính xác cao

 Dễ dàng tích hợp với các hệ thống giao thông và an ninh khác

Nhược điểm của nhận diện biển số xe:

 Hạn chế trong điều kiện xấu (mưa, sương mù, ánh sáng kém)

 Khó nhận diện biển số bị mờ, che khuất

 Khác biệt về định dạng biển số giữa các khu vực

 Chi phí đầu tư cao cho hệ thống phần cứng và phần mềm

 Lo ngại về quyền riêng tư khi giám sát phương tiện

Trang 9

1.1.4 Khái niệm biển số xe

Ở Việt Nam, biển kiểm soát xe cơ giới (hay còn gọi tắt là biển kiểmsoát, biển số xe) là tấm biển gắn trên mỗi xe cơ giới, được cơ quan công an cấp(đối với xe quân sự do Bộ Quốc phòng cấp) khi mua xe mới hoặc chuyểnnhượng xe Biển số xe được làm bằng hợp kim nhôm sắt, có dạng hình chữnhật hoặc hơi vuông, trên đó có in và số chữ (biển xe dân sự không dùng cácchữ cái I, J, O, Q, W Chữ R chỉ dùng cho xe rơ-moóc, sơ-mi rơ-moóc) cho biết:Vùng và địa phương quản lý, các con số cụ thể khi tra trên máy tính còn cho biếtdanh tính người chủ hay đơn vị đã mua nó, thời gian mua nó phục vụ cho côngtác an ninh, đặc biệt trên đó còn có hình Quốc huy Việt Nam dập nổi

1.1.5 Đặc điểm của biển số xe

Tiêu chuẩn về kích thước: Ở mỗi nước thường có tiêu chuẩn về kíchthước nhất định, còn riêng Việt Nam tỉ lệ kích thước giữa các biển số là gần nhưgiống nhau Biển số xe có 2 loại, kích thước như sau: Loại biển số dài có chiềucao 110 mm, chiều dài 470 mm; loại biển số ngắn có chiều cao 200 mm, chiềudài 280 mm nên ta sẽ giới hạn tỉ lệ cao/rộng là 3.5 ≤ cao/rộng ≤ 6.5 (biển mộthàng) và 0.8 ≤ cao/rộng ≤ 1.5 (biển hai hàng)

Số lượng kí tự trong biển số xe nằm trong khoảng [7,9] Chiều cao củachữ và số: 80mm, chiều rộng của chữ và số: 40mm

Từ những đặc điểm trên ta có thể thiết lập nhưng thông số, điều khiển đểlọc chọn những đối tương phù hợp mà ta cần

1.2 Xác lập dự án

1.2.1 Mục tiêu

- Xây dựng được chương trình giúp người dùng nhận dạng được các biển

số thông qua các hình ảnh hoặc camera đầu vào

- Chương trình có thể nhận dạng được số xe một cách chính xác và in nó ramàn hình

- Hiểu rõ hơn về các thuật toán nhận dạng và cách hoạt động nhằm nângcao hiểu biết về công nghệ hiện nay

Trang 10

1.2.2 Yêu cầu

- Độ chính xác cao: Nhận diện đúng ký tự trên biển số, ngay cả khi biển số bị

mờ hoặc nghiêng

- Xử lý thời gian thực: Nhận diện nhanh khi xe di chuyển với tốc độ cao

- Hoạt động trong mọi điều kiện: Phải hoạt động tốt trong các điều kiện thờitiết và ánh sáng khác nhau

- Nhận diện biển số đa dạng: Xử lý được nhiều kiểu dáng, màu sắc và địnhdạng biển số khác nhau

- Tính ổn định và mở rộng: Hệ thống phải hoạt động ổn định và dễ mở rộngkhi cần

1.2.3 Phạm vi

- Nhận diện ký tự trên biển số xe

- Tự động nhập lại các ký tự

- Xác định tỉnh/thành phố dựa trên mã biển số

- Thiết kế giao diện người dùng (UI)

1.3 Kế hoạch triển khai

1.3.1 Phương pháp nghiên cứu

- Tìm hiểu về ngôn ngữ lập trình Python

- Tìm hiểu về công cụ lập trình Pycharm

- Tìm hiểu về các thư viện hỗ trợ lập trình

- Tham khảo các chức năng, các điểm ưu nhược của các ứng dụng đã có, từ

đó quyết định các ứng dụng và hướng phát triển

- Tham khảo và lâ Šp trình giao diê Šn cho ứng dụng

- Phân tích các chức năng và yêu cầu cần có

- Nghiên cứu về cách thức hoạt động của bài toán nhận dạng

- Nghiên cứu và hiểu được thuật toán của bài toán nhận dạng biển số xe

- Kiểm thử phần mềm, sửa chữa và phát triển thêm các ý tưởng mới

- Xây dựng báo cáo hoàn chỉnh

Trang 11

1.3.2 Ngôn ngữ, công cụ sử dụng

- Ngôn ngữ lập trình Python

- Visual Code Studio 2022

1.4 Phân tích yêu cầu

1.4.1 Yêu cầu chức năng

- Người dùng ấn vào button “Chọn ảnh” để upload ảnh lên hệ thống

- Sau khi ảnh được cập nhật lên hệ thống người dùng nhấn “Nhận dạng”

- Hệ thống sẽ tự động nhận diện mặt chữ và số trên biển và ghi vào hệ thống

1.4.2 Yêu cầu phi chức năng

- Cấu hình nhẹ, dễ cài đặt

- Giao diện thân thiện dễ sử dụng

- Giúp người dùng có thể xác định được nơi đăng kí của biển số xe (VD: HàNội, TP HCM, Bắc Ninh, Thái Nguyên,…)

PyQt được phát triển bởi Riverbank Computing Limited

Các class của PyQt5 được chia thành các module, bao gVm:

- QtCore : là module bao gVm phần lõi không thuộc chức năng GUI, ví dụdùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams, URLs,mime type, threads hoặc processes

Trang 12

- QtGui : bao gVm các class dùng cho việc lập trình giao diện (windowingsystem integration), event handling, 2D graphics, basic imaging, fonts và text.

- QtWidgets : bao gVm các class cho widget, ví dụ : button, hộp thoại, …được sử dụng để tạo nên giao diện người dùng cơ bản nhất

- QtMultimedia : thư viện cho việc sử dụng âm thanh, hình ảnh, camera,…

- QtBluetooth : bao gVm các class giúp tìm kiếm và kết nối với các thiết bị cógiao tiếp với phần mềm

- QtNetwork : bao gVm các class dùng cho việc lập trình mạng, hỗ trợ lậptrình TCP/IP và UDP client , server hỗ trợ việc lập trình mạng

- QtPositioning : bao gVm các class giúp việc hỗ trợ xác định vị

- Enginio : module giúp các client truy cập các Cloud Services của Qt

- QtWebSockets : cung cấp các công cụ cho WebSocket protocol

- QtWebKit : cung cấp các class dùng cho làm việc với các trình duyệt Web ,dựa trên thư viện WebKit2

- QtWebKitWidgets : các widget cho WebKit

- QtXml : các class dùng cho làm việc với XML file

- QtSvg : dùng cho hiển thị các thành phần của SVG file

- QtSql : cung cấp các class dùng cho việc làm việc với dữ liệu

- QtTest : cung cấp các công cụ cho phép test các đơn vị của ứng dụng vớiPyQt5

1.5.3 Qt Designer

Qt Designer là mô Št công cụ Qt để thiết kế và xây dựng giao diện ngườidùng đV họa (GUI) với Qt Widget Bạn có thể soạn và tùy chỉnh các cửa sổ hoặchộp thoại của mình theo cách bạn sẽ thấy (What you see is what you get –Những gì bạn đang thấy là những gì bạn sẽ nhận được) và kiểm tra chúng bằngcác kiểu và độ phân giải khác nhau

Các tiện ích và biểu mẫu được tạo bằng Qt Designer tích hợp liền mạchvới mã được lập trình, sử dụng cơ chế vị trí và tín hiệu của Qt để bạn có thể dễdàng gán hành vi cho các phần tử đV họa Tất cả các thuộc tính được đặt

Trang 13

trong Qt Designer có thể được thay đổi động trong mã Hơn nữa, các tính năngnhư quảng cáo widget và plugin tùy chỉnh cho phép bạn sử dụng các thành phầncủa riêng mình với Qt Designer

1.6 Trí tuệ nhân tạo

1.6.1 Khái niệm

AI (Artificial intelligence) là trí thông minh nhân tạo Nó là sự mô phỏngcác quá trình trí tuệ của con người bằng máy móc, đặc biệt là các hệ thống hệmáy tính Các ứng dụng cụ thể của AI bao gVm xử lý các ngôn ngữ tự nhiên,nhận dạng giọng nói và thị giác, quản lý hệ thống

Bản chất của AI là mô hình, thuật toán được huấn luyện trên một tập dữliệu để giải quyết một bài toán rất cụ thể AI giống như một đứa bé sơ sinh vậy,

nó bắt đầu thu nhận hình ảnh và học cách phân loại Nó chỉ có thể nhận diệngương mặt ba, mẹ hoặc ông bà chứ không thể làm gì khác nữa

Hiện nay, công nghệ AI có 3 hướng chính:

- Xử lý hình ảnh (Computer Vision)

- Xử lý ngôn ngữ tự nhiên (Natural Language Processing)

- Xử lý tín hiệu âm thanh (Audio Signal Processing)

Trong đV án này, đề tài em thực hiê Šn chủ yếu phát triển theo hướng xử lýhình ảnh

Trang 14

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.1 Tổng quan về ngôn ngữ lập trình python

2.1.1 Sơ lược về ngôn ngữ lập trình Python

Phiên bản sử dụng trong báo cáo: Python 3.12

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đanăng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Pythonđược thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngôn ngữ

có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lậptrình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần

gõ phím tối thiểu

2.1.1.1 Ngu|n gốc cái tên “python”

Tên "Python" không xuất phát từ loài rắn, mà từ chương trình hài kịch nổitiếng của Anh là Monty Python's Flying Circus Khi Guido van Rossum, ngườisáng lập ngôn ngữ lập trình Python, phát triển nó vào cuối những năm 1980, ôngmuốn một cái tên ngắn gọn, độc đáo và hơi hài hước Ông là một fan hâm mộcủa chương trình hài này, nên đã lấy tên "Python" để đặt cho ngôn ngữ củamình

Monty Python’s Flying Circus là một loạt chương trình hài phát sóng vàocuối những năm 1960 và đầu những năm 1970, nổi tiếng với phong cách hàihước đặc trưng, bất ngờ, và kỳ quặc

2.1.1.2 Tính năng của Python

- Có thể chạy python trên hầu hết các nền tảng khác nhau

- Ngôn ngữ thông dịch cấp cao

- Thư viê Šn tiêu chuẩn lớn

Trang 15

2.1.1.3 Công cụ lập trình Python-Visual Studio Code

Phiên bản sử dụng trong đề tài: Visual Studio Code 2022

Microsoft Visual Studio là môi trường phát triển tích hợp (IDE) đượcthiết kế dành cho giới lập trình viên và các nhà phát triển ứng dụng Đây là công

cụ hỗ trợ phát triển phần mềm mạnh mẽ của Microsoft, cho phép người dùngviết, dịch mã và gỡ lỗi các ứng dụng dựa trên nhiều ngôn ngữ lập trình khácnhau như C++, C#, Visual Basic, Python, JavaScript Visual Studio bao gVmmột trình biên tập mã nguVn, các công cụ gỡ lỗi và xây dựng ứng dụng đa nềntảng Nó giúp tăng năng suất và hiệu quả công việc cho các lập trình viên

2.1.2 Ứng dụng của python

Python đóng vai trò quan trọng trong việc phát triển các hệ thống nhậndiện biển số xe nhờ vào khả năng mạnh mẽ trong xử lý ảnh và trí tuệ nhân tạ

- Trích xuất dữ liệu từ trang web (web scraping)

- machine Learning, data visualization, data analysis

- Xây dựng trang web với các framework như Django và Flask

- Phát triển game với Pygame

- Phát triển ứng dụng điện thoại với các framework như Kivyo.Đặc biệt phải

kể đến đó chính là xử lý ảnh và Open CV

2.1.2.1 Xử lý ảnh và Open CV

Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý làảnh Đây là một phân ngành khoa học mới rất phát triển trong những năm gầnđây Xử lý ảnh gVm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạngảnh, nén ảnh và truy vấn ảnh Sự phát triển của xử lý ảnh đem lại rất nhiều lợiích cho cuộc sống của con người Ngày nay xử lý ảnh đã được áp dụng rất rộngrãi trong đời sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe,nhận dạng khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế, OpenCV (Open Computer Vision) là một thư viện mã nguVn mở hàngđầu cho xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc

Trang 16

viết bằng C/C++, vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với cácứng dụng liên quan đến thời gian thực Opencv có các interface cho C/C++,Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOSOpenCV có cộng đVng hơn 47 nghìn người dùng và số lượng download vượtquá 6 triệu lần Opencv có rất nhiều ứng dụng như:

2.1.2.2 Hướng giải quyết

Hiện nay trên thế giới đã có rất nhiều cách tiếp cận khác nhau với việcnhận dạng biển số xe, tuy nhiên trong phạm vi đề tài này em sẽ giải quyết vấn đềtheo 3 bước chính:

1 Phát hiện vị trí và tách biển số xe từ một hình ảnh có sẵn từ đầu vào là camera

2 Phân đoạn các kí tự có trong biển số xe

3 Nhận diện các kí tự đó rVi đưa về mã ASCII

Hình 2.1 Các bước chính trong nhận dạng biển số xe

2.2 Phân tích và thiết kế hệ thống

2.2.1 Phân tích yêu cầu

2.2.1.1 Yêu cầu chức năng

- Có thể đọc dữ liệu ảnh đầu vào

Trang 17

- Hiển thị biển số nhận dạng được ra màn hình

- Có giao diện dễ sử dụng

2.2.1.2 Yêu cầu hệ thống

- Chương trình chạy trên hệ điều hành windows

- Chương trình được viết trên Visual Studio Code

- Phiên bản Python 3.12

2.2.2 Biểu đ| ca sử dụng

2.2.2.1 Chức năng đưa dữ liệu vào

- Các tác nhân: Người dùng

- Điều kiện trước: Người dùng phải chọn ảnh/video đầu vào

- Điều kiện sau: Hệ thống nhận được ảnh/video

- Mô tả: Ca sử dụng này người dùng thực hiện nạp dữ liệu đầu vào và

hệ thống đọc được dữ liệu ảnh/video

2.2.2.2 Chức năng đưa ra ảnh đã threshold

- Các tác nhân: hệ thống

- Điều kiện trước: Có ảnh đầu vào

- Điều kiện sau: Hệ thống đưa ra bức ảnh đã threshold

- Mô tả: Ca sử dụng này nhằm đưa ra ảnh sau khi threshold để dễ dàngnhận dạng biển số xe

2.2.2.3 Chức năng đưa ra các contour tìm được

- Các tác nhân: Hệ thống

- Điều kiện trước: Ảnh đã qua xử lý và được tách biển số ra

- Điều kiện sau: Hiển thị các contour tìm được

- Mô tả: Ca sử dụng này nhằm đưa ra các contour tìm được để nhậndạng dễ dàng

2.2.2.4 Chức năng nhận dạng và hiển thị biển số xe

- Các tác nhân: Hệ thống

- Điều kiện trước: Ảnh đã qua xử lý

Trang 18

- Điều kiện sau: Hệ thống đưa ra kết quả sau khi nhận dạng và in lênảnh gốc

- Mô tả: Đưa ra kết quả nhận dạng được

Hình 2.2 Biểu đồ use-case

2.2.3 Thiết kế hệ thống

Hệ thống tự động nhận dạng biển số xe là hệ thống có khả năng phân tích,

xử lý hình ảnh biển số xe trên các hình ảnh chụp được từ các thiết bị thu hình,cho kết quả đầu ra là chuỗi ký tự trên biển số NguVn hình ảnh cho ứng dụng córất nhiều nhưng thường là hình ảnh được thu nhận trực tiếp từ camera Đầu vàocủa hệ thống là ảnh phương tiện giao thông có biển số xe Đầu ra là chuỗi ký tựtrên biển số xe

Trang 19

số giữa phông nền, hỗ trợ cho việc xử lý nhị phân sau này Sau đó, ta giảm nhiễubằng bộ lọc Gauss để loại bỏ những chi tiết nhiễu có thể gây ảnh hưởng đến quátrình nhận diện, đVng thời làm tăng tốc độ xử lý.

Việc lấy ngưỡng sẽ giúp ta tách được thông tin biển số và thông tin nền, ởđây em chọn lấy ngưỡng động (Adaptive Threshold) Tiếp đó ta sử dụng thuậttoán phát hiện cạnh Canny để trích xuất những chi tiết cạnh của biển số Trongquá trình xử lý máy tính có thể nhầm lẫn biển số với những chi tiết nhiễu, việclọc lần cuối bằng các tỉ lệ cao/rộng hay diện tích của biển số sẽ giúp xác định

Ngày đăng: 22/01/2025, 14:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w