1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe

43 4 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 đề Nhận diện biển số xe
Tác giả Nguyễn Hoàng Phương, Đào Gia Bảo, Phạm Song Đức Nguyên, Lê Hoàng Phi Ngân, Nguyễn Đăng Trình, Đoàn Đăng Khoa
Người hướng dẫn GVHD: Trần Anh Quân
Trường học Trường Đại Học Giao Thông Vận Tải TP. Hồ Chí Minh
Chuyên ngành Hệ thống giao thông thông minh
Thể loại Đề tài
Năm xuất bản 2025
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 43
Dung lượng 4,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU (7)
    • I. Tổng quan (7)
    • II. Nhiệm vụ đề tài (7)
  • CHƯƠNG 2: TỔNG QUAN BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE (9)
    • I. Khái niệm biển số xe (9)
    • II. Xử lý ảnh và Opencv (9)
    • III. Hướng giải quyết (11)
  • CHƯƠNG 3: PHÁT HIỆN VỊ TRÍ VÀ TÁCH BIỂN SỐ XE (13)
    • I. Hướng giải quyết (13)
    • II. Chuyển ảnh xám và nhị phân hóa động (14)
      • 1. Chuyển ảnh xám (ảnh nhị phân) (14)
      • 2. Nhị phân hóa (15)
      • 3. Nhị phân hóa với ngưỡng động (15)
    • III. Tăng độ tương phản (16)
      • 1. Phép toán hình học (16)
      • 2. Tăng độ tương phản (19)
    • IV. Giảm nhiễu bằng bộ lọc Gauss (19)
      • 1. Nhiễu (19)
      • 2. Bộ lọc Gauss (20)
    • V. Phát hiện cạnh Canny (Canny Edge Detection) (21)
      • 1. Giảm nhiễu (Noise Reduction) (21)
      • 2. Tính toán Gradient (Gradient Calculation) (21)
      • 3. Loại bỏ những điểm không phải là cực đại ( Non-maximum Suppression) (22)
      • 4. Lọc ngưỡng (Double Thresholding) (22)
    • VI. Lọc biển số với Contour (24)
      • 1. Một số phương pháp tìm contour (24)
      • 2. Lọc biển số (27)
  • CHƯƠNG 4: PHÂN ĐOẠN KÝ TỰ (28)
    • I. Xoay và căn chỉnh biển số (28)
    • II. Tìm vùng đối tượng (29)
    • III. Tìm và tách đối tượng (30)
  • CHƯƠNG 5: NHẬN DIỆN KÝ TỰ (31)
    • I. Tổng quan về lý thuyết (31)
      • 1. AI( Artificial Intelligent) (31)
      • 2. Machine Learning (31)
      • 3. Thuật toán KNN(K-Nearest Neighbor) (32)
    • II. Hướng giải quyết (35)
  • CHƯƠNG 6: KẾT QUẢ THỰC HIỆN (39)
    • I. Cách thức đo đạc, thử nghiệm (39)
    • II. Kết quả và giải thích (39)
  • CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (40)
    • I. Kết luận (40)
    • II. Hướng phát triển (40)
  • TÀI LIỆU THAM KHẢO (43)

Nội dung

Hệ thống nhận diện biển số xe tự động ANPR - Automatic Number PlateRecognition sử dụng các thuật toán xử lý ảnh và học máy để nhận dạng biển số xe từhình ảnh hoặc video.. Các hệ thống nà

GIỚI THIỆU

Tổng quan

Hệ thống “nhận diện biển số xe” tự động đang ngày càng phát triển và đóng vai trò quan trọng trong công nghệ nhận dạng và xử lý ảnh Hệ thống này không chỉ giúp tự động nhận diện biển số mà còn hỗ trợ trong nhiều lĩnh vực như giám sát giao thông, quản lý bãi đỗ xe và an ninh Khi giao thông trở nên phức tạp và mật độ xe cộ gia tăng, việc áp dụng công nghệ nhận diện biển số xe giúp nâng cao hiệu quả quản lý giao thông và giảm thiểu sự phụ thuộc vào nguồn lực con người.

Hệ thống nhận diện biển số xe tự động (ANPR) sử dụng thuật toán xử lý ảnh và học máy để nhận dạng biển số từ hình ảnh hoặc video, giúp kiểm soát giao thông và thu phí tự động ANPR cũng hỗ trợ bảo mật khu vực hạn chế và theo dõi phương tiện di chuyển Trong bãi đỗ xe, hệ thống này tự động ghi nhận biển số xe ra vào, tối ưu hóa quản lý và nâng cao trải nghiệm người dùng Bên cạnh đó, ANPR còn được áp dụng trong giám sát an ninh, giúp nhận dạng và theo dõi phương tiện tại các khu vực nhạy cảm, hỗ trợ phát hiện và ngăn ngừa hành vi vi phạm hoặc tội phạm.

Sự phát triển công nghệ đã biến hệ thống nhận diện biển số xe thành công cụ thiết yếu trong các thành phố thông minh, nâng cao hiệu quả và độ chính xác trong quản lý giao thông, đồng thời cải thiện an toàn và tiện ích cho người dân.

Nhiệm vụ đề tài

Nghiên cứu về xử lý ảnh và nhận dạng biển số xe tập trung vào việc áp dụng các phương pháp xử lý ảnh cơ bản nhằm cải thiện khả năng nhận diện Các vấn đề như ánh sáng yếu và độ phân giải thấp được giải quyết thông qua các kỹ thuật nâng cao, giúp tăng cường độ chính xác trong việc nhận dạng biển số xe.

Tìm hiểu về biển số xe tại Việt Nam bao gồm việc nghiên cứu cấu trúc và phân loại biển số, nhằm tối ưu hóa hệ thống nhận dạng phương tiện Các quy định liên quan đến biển số xe giúp phân biệt các loại xe khác nhau, góp phần nâng cao hiệu quả quản lý giao thông.

Phân tích các công đoạn chính của bài toán nhận dạng biển số xe:

Phát hiện vị trí và tách biển số xe: Sử dụng các thuật toán như lọc Canny để phát hiện biển số.

Phân đoạn ký tự biển số: Tách biệt các ký tự trong biển số để nhận dạng chính xác.

Nhận dạng ký tự: Áp dụng thuật toán OCR và mạng nơ-ron sâu (CNN) để nhận dạng ký tự.

Triển khai hệ thống nhận dạng biển số xe tự động nhằm xây dựng một hệ thống tích hợp các quy trình, phục vụ cho việc giám sát giao thông và quản lý bãi đỗ xe một cách hiệu quả.

Thử nghiệm và đánh giá hiệu quả của hệ thống là rất quan trọng, bao gồm việc kiểm tra độ chính xác, tốc độ và khả năng ứng dụng trong các điều kiện thực tế.

TỔNG QUAN BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE

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

Tại Việt Nam, biển số xe cơ giới là tấm biển gắn trên mỗi phương tiện, giúp nhận diện và quản lý giao thông Biển số này được cấp bởi cơ quan công an, trong khi xe quân sự do Bộ Quốc phòng cấp khi mua mới hoặc chuyển nhượng.

Biển số xe được làm từ hợp kim nhôm sắt, có hình dạng chữ nhật hoặc gần vuông, với các ký tự bao gồm chữ cái và con số Lưu ý rằng, biển số xe dân sự không sử dụng các chữ cái I, J, O, Q, trong khi chữ R chỉ dành riêng cho xe rơ-moóc và sơ-mi rơ-moóc.

Biển số xe không chỉ chứa thông tin về vùng và địa phương quản lý phương tiện, mà còn giúp xác định thông tin về chủ sở hữu hoặc đơn vị mua xe, cùng với thời gian mua xe, góp phần vào công tác an ninh Đặc biệt, mỗi biển số đều có hình Quốc huy Việt Nam được dập nổi.

Tại Việt Nam, biển số xe ô tô và xe máy chuyên dùng được phân loại thành hai loại: biển dài (cao 110mm, dài 520mm) và biển ngắn (cao 165mm, dài 330mm) Biển số xe được quản lý dựa trên mã định danh của chủ sở hữu, bao gồm cá nhân và tổ chức Nếu tổ chức chưa có mã định danh, biển số sẽ được quản lý theo mã số thuế hoặc giấy tờ tương đương Khi chủ xe thay đổi thông tin về trụ sở hoặc nơi cư trú, họ vẫn được giữ số biển số xe định danh.

Biển số xe tại Việt Nam thường có từ 7 đến 9 ký tự, với chiều cao chữ và số là 80 mm và chiều rộng là 40 mm Các thông số này là cơ sở để xây dựng hệ thống nhận diện biển số, giúp phân biệt và nhận diện chính xác các biển số xe trong quá trình xử lý ảnh và nhận dạng ký tự.

Xử lý ảnh và Opencv

Xử lý ảnh là một nhánh quan trọng của xử lý tín hiệu số, tập trung vào nghiên cứu và ứng dụng các phương pháp thao tác và phân tích hình ảnh kỹ thuật số Lĩnh vực này đang phát triển mạnh mẽ, đặc biệt trong những năm gần đây, với nhiều ứng dụng trong các ngành công nghiệp khác nhau Xử lý ảnh bao gồm bốn lĩnh vực chính.

Xử lý nâng cao chất lượng ảnh giúp cải thiện độ rõ nét và loại bỏ nhiễu, đồng thời điều chỉnh độ sáng, độ tương phản cùng các yếu tố khác để tăng cường chất lượng hình ảnh.

Nhận dạng ảnh là quá trình phân loại và xác định các đối tượng hoặc đặc điểm trong hình ảnh, bao gồm việc nhận diện khuôn mặt, biển số xe và các vật thể trong môi trường xung quanh.

Nén ảnh giúp giảm kích thước tệp mà vẫn giữ được chất lượng hình ảnh, từ đó tiết kiệm dung lượng lưu trữ và thuận tiện hơn trong việc truyền tải qua các kênh truyền thông.

Truy vấn ảnh là phương pháp tìm kiếm hình ảnh dựa trên các đặc điểm cụ thể như màu sắc, hình dạng và các thuộc tính khác Phương pháp này hỗ trợ các ứng dụng tìm kiếm hình ảnh trực tuyến, giúp người dùng dễ dàng tìm thấy hình ảnh phù hợp với yêu cầu của họ.

Sự phát triển mạnh mẽ của công nghệ xử lý ảnh đã mang lại nhiều lợi ích đáng kể cho cuộc sống hàng ngày và được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau.

Chỉnh sửa ảnh đã trở thành một phần quan trọng trong nhiếp ảnh chuyên nghiệp, với các phần mềm như Photoshop được sử dụng phổ biến để làm đẹp và tạo ra những hiệu ứng đặc biệt.

Nén ảnh: Giúp tiết kiệm không gian lưu trữ và đảm bảo việc truyền tải ảnh qua Internet trở nên nhanh chóng và hiệu quả.

Nhận dạng biển số xe và khuôn mặt là công nghệ quan trọng, được ứng dụng phổ biến trong các hệ thống an ninh và giao thông, mang lại khả năng nhận diện nhanh chóng và chính xác.

Nhận dạng chữ viết qua các hệ thống OCR (Nhận dạng Ký tự Quang học) cho phép chuyển đổi văn bản từ hình ảnh sang định dạng số, góp phần vào việc số hóa tài liệu và nâng cao hiệu quả công việc.

Xử lý ảnh thiên văn và y tế đóng vai trò quan trọng trong việc phân tích hình ảnh, hỗ trợ chẩn đoán và nghiên cứu bệnh tật OpenCV (Open Computer Vision) là một thư viện mã nguồn mở nổi bật trong lĩnh vực này, được phát triển bằng C/C++ Thư viện này nổi bật với tốc độ xử lý nhanh, rất phù hợp cho các ứng dụng yêu cầu thời gian thực và hỗ trợ nhiều ngôn ngữ lập trình như C/C++, Python và Java.

OpenCV hỗ trợ nhiều hệ điều hành như Windows, Linux, và MacOS, cùng với các nền tảng di động Android và iOS Nó còn có một cộng đồng người dùng đông đảo với hơn.

OpenCV đã thu hút 47 nghìn thành viên và có hơn 6 triệu lượt tải về, chứng tỏ sức hấp dẫn và tính hiệu quả của nó Các ứng dụng của OpenCV rất đa dạng và phong phú.

Nhận dạng ảnh: Phát hiện và phân loại các đối tượng trong hình ảnh.

Xử lý hình ảnh: Tăng cường, làm sắc nét, hoặc chỉnh sửa hình ảnh để phục vụ các mục đích chuyên môn.

Phục hồi hình ảnh/video: Sử dụng các thuật toán để phục hồi hình ảnh hoặc video bị hỏng hoặc mất dữ liệu.

Thực tế ảo: Tạo ra các môi trường ảo hoặc tích hợp các đối tượng ảo vào thế giới thực qua hình ảnh.

Các ứng dụng khác bao gồm nền tảng cho robot tự động, xe tự lái, phân tích dữ liệu y tế và nhiều lĩnh vực khác trong khoa học và công nghệ.

Hướng giải quyết

Hiện nay, trên toàn cầu, có nhiều phương pháp khác nhau để nhận diện biển số xe Trong đồ án này, nhóm sẽ áp dụng một quy trình gồm ba bước chính để giải quyết vấn đề này.

Phát hiện và tách biển số xe là bước đầu tiên trong quá trình xử lý hình ảnh Chúng ta sẽ áp dụng các kỹ thuật xử lý ảnh và thị giác máy tính để xác định vị trí của biển số trong hình ảnh, sau đó tách biển số ra từ hình ảnh được cung cấp bởi camera.

Phân đoạn biển số xe là bước quan trọng sau khi đã tách được biển số, bao gồm việc xác định các khu vực chứa từng ký tự Quá trình này giúp chuẩn bị dữ liệu cho bước nhận diện ký tự, đảm bảo độ chính xác trong việc xử lý thông tin.

Hệ thống sử dụng thuật toán nhận dạng ký tự quang học (OCR) để nhận diện từng ký tự trên biển số xe, sau đó chuyển đổi chúng thành mã ASCII tương ứng Điều này giúp hệ thống dễ dàng xử lý và lưu trữ thông tin biển số xe dưới dạng số liệu số.

PHÁT HIỆN VỊ TRÍ VÀ TÁCH BIỂN SỐ XE

Hướng giải quyết

Sơ đồ dưới đây sẽ tóm gọn các bước để xác định và tách biển số xe từ clip:

Để xác định và tách biển số xe từ video, chúng ta bắt đầu bằng cách tách từng khung hình để xử lý Phương pháp chính là tìm sự khác biệt đột ngột về cường độ ánh sáng giữa biển số và môi trường xung quanh Đầu tiên, ảnh màu sẽ được chuyển đổi thành ảnh xám để loại bỏ dữ liệu màu sắc, giảm độ phức tạp trong xử lý Tiếp theo, độ tương phản của ảnh được cải thiện thông qua các phép toán hình thái học như Top Hat và Black Hat, giúp làm nổi bật biển số xe và tạo điều kiện thuận lợi cho quá trình xử lý nhị phân.

Để giảm nhiễu và nâng cao hiệu quả nhận diện, bộ lọc Gaussian sẽ được áp dụng, giúp loại bỏ các chi tiết không cần thiết và tăng tốc độ xử lý mà vẫn giữ nguyên các đặc trưng quan trọng của biển số.

Sau khi thực hiện tiền xử lý ảnh, chúng ta sẽ xác định ngưỡng động (Adaptive Threshold) để phân tách thông tin giữa biển số và nền Tiếp theo, thuật toán phát hiện cạnh Canny sẽ được áp dụng để trích xuất các cạnh của biển số, giúp làm nổi bật những chi tiết quan trọng.

Trong quá trình xử lý ảnh, máy tính có thể nhầm lẫn giữa biển số xe và các chi tiết nhiễu khác Để khắc phục vấn đề này, chúng ta cần áp dụng bước lọc dựa trên tỷ lệ chiều rộng/chiều cao hoặc diện tích của biển số, từ đó xác định chính xác biển số xe Cuối cùng, thuật toán vẽ Contour sẽ được sử dụng để bao quanh và xác định vị trí của biển số trong ảnh.

Chuyển ảnh xám và nhị phân hóa động

1 Chuyển ảnh xám (ảnh nhị phân) Ảnh xám (Grayscale) là loại ảnh chỉ có các sắc thái xám từ đen đến trắng, với 256 cấp độ xám từ 0 đến 255 Mỗi pixel trong ảnh xám được biểu diễn bằng 8 bits (1 byte), thay vì 24 bits như trong ảnh màu Việc chuyển ảnh sang ảnh xám giúp giảm khối lượng thông tin, tăng tốc độ xử lý và đơn giản hóa thuật toán.

Trong đồ án này, nhóm em sẽ chuyển đổi ảnh xám từ không gian màu HSV thay vì RGB Không gian HSV bao gồm ba thành phần chính: Hue (vùng màu), Saturation (độ bão hòa), và Value (cường độ sáng), giúp cải thiện khả năng xử lý ảnh dưới ảnh hưởng của ánh sáng môi trường Chúng ta sẽ tách giá trị cường độ sáng (Value) từ hệ màu HSV để tạo ra ảnh xám, phù hợp với bài toán nhận diện biển số xe Ảnh nhị phân được tạo ra với các giá trị điểm ảnh biểu diễn bằng hai màu: 0 (Đen) và 1 (Trắng).

Hình 2.1 Hình đã chuyển xám

Quá trình nhị phân hóa là việc chuyển đổi một ảnh xám thành ảnh nhị phân, trong đó mỗi pixel chỉ có giá trị 0 hoặc 1.

Cường độ sáng của một điểm ảnh được ký hiệu là I(x,y), trong khi giá trị cường độ sáng của điểm ảnh trong ảnh nhị phân được gọi là INP(x,y) Để thực hiện quá trình nhị phân hóa, ta so sánh giá trị cường độ sáng của từng điểm ảnh với một ngưỡng nhị phân T, với điều kiện 0 < x < chiều ngang ảnh và 0 < y < chiều dọc ảnh.

Cách này giúp chuyển đổi ảnh xám thành ảnh nhị phân, đơn giản hóa các đặc điểm hình ảnh để phục vụ cho các bước xử lý tiếp theo.

3 Nhị phân hóa với ngưỡng động

Việc sử dụng ngưỡng cố định cho quá trình nhị phân hóa trên toàn ảnh gặp nhiều thách thức, đặc biệt khi ảnh có các vùng quá sáng hoặc quá tối Điều này có thể dẫn đến mất chi tiết nếu áp dụng ngưỡng trung bình Thay vào đó, nhị phân hóa với ngưỡng động cho phép tính toán ngưỡng riêng biệt cho từng khu vực, mang lại kết quả chính xác hơn Phương pháp này được thực hiện qua ba bước chính.

Chia ảnh thành các vùng nhỏ. Áp dụng thuật toán để tìm ngưỡng T phù hợp cho mỗi vùng.

Để thực hiện nhị phân hóa cho từng vùng, cần xác định ngưỡng T bằng nhiều phương pháp khác nhau Trong đồ án này, nhóm sử dụng thuật toán ADAPTIVE THRESH GAUSSIAN C từ thư viện OpenCV, thuật toán này tính giá trị trung bình của các điểm xung quanh điểm cần xét, áp dụng phân phối Gauss và điều chỉnh ngưỡng bằng cách trừ đi một hằng số C cho phù hợp với từng khu vực.

Hình 2.3 Nhị phân hóa ảnh ngưỡng động

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

Xử lý hình thái học là một kỹ thuật sử dụng phần tử cấu trúc để phân tích và thao tác với cấu trúc hình học của hình ảnh Phương pháp này giúp thay đổi hoặc làm nổi bật các đặc tính hình học của đối tượng trong ảnh, từ đó cải thiện chất lượng và độ rõ nét của hình ảnh.

Phép toán hình thái học, ban đầu áp dụng cho ảnh nhị phân, đã được mở rộng cho cả ảnh xám và màu Hai phép toán cơ bản là giãn nở (Dilation) và co (Erosion), từ đó phát triển thêm các phép toán như đóng (Closing), mở (Opening), Top Hat và Black Hat.

Phép co (Erosion): Giảm kích thước đối tượng, tách biệt các đối tượng dính nhau,làm mỏng và tìm cấu trúc xương

12 Ảnh gốc Ảnh sau khi dùng phép co

Phép giãn nở (Dilation) là kỹ thuật giúp mở rộng kích thước của đối tượng trong ảnh, lấp đầy các khoảng trống nhỏ và kết nối các vùng biên rời rạc lại với nhau Kết quả là hình ảnh sau khi áp dụng phép giãn nở sẽ có sự liên kết chặt chẽ hơn giữa các đối tượng.

Phép mở là quá trình trong xử lý ảnh, bao gồm việc co ảnh trước và sau đó giãn nở, nhằm loại bỏ các chi tiết lồi nhỏ và làm mềm mượt đường viền của đối tượng Kết quả là ảnh được cải thiện với các đường viền rõ ràng và tự nhiên hơn.

Phép đóng là kỹ thuật xử lý ảnh giúp làm mượt đường viền của đối tượng, lấp đầy các khoảng trống nhỏ và loại bỏ các lỗ hổng li ti trên ảnh Quá trình này bao gồm việc giãn ảnh trước, sau đó thực hiện thao tác đóng để cải thiện chất lượng hình ảnh.

Phép Top Hat là kỹ thuật xử lý ảnh, được sử dụng để làm nổi bật các chi tiết sáng nhỏ trên nền tối bằng cách lấy hiệu giữa ảnh gốc và ảnh sau khi thực hiện phép mở Phương pháp này thường được áp dụng để tăng cường độ rõ nét cho các vùng sáng trong ảnh.

Phép Black Hat là phương pháp trừ đi ảnh gốc từ ảnh đã đóng, giúp làm nổi bật các chi tiết tối trên nền sáng Kỹ thuật này hỗ trợ phát hiện các khu vực tối bị che khuất hoặc không rõ ràng.

14 Ảnh gốc Ảnh sau khi dùng phép black hat

2 Tăng độ tương phản Để tăng độ tương phản cho biển số xe, nhóm em sẽ áp dụng hai phép toán hình thái học: Top Hat và Black Hat Cụ thể, ảnh gốc sẽ được cộng với ảnh kết quả từ phép Top Hat và trừ đi ảnh kết quả từ phép Black Hat Cách làm này giúp các chi tiết sáng trở nên rõ nét hơn, các chi tiết tối càng tối hơn, qua đó làm nổi bật biển số so với nền, tăng hiệu quả nhận diện. Ảnh gốc Ảnh sau khi tăng tương phản

Giảm nhiễu bằng bộ lọc Gauss

Nhiễu trong ảnh là các điểm nhỏ, giống như hạt, làm giảm chất lượng hình ảnh.

Có ba loại nhiễu chính:

Nhiễu cộng: Thêm giá trị ngẫu nhiên vào mỗi điểm ảnh.

Nhiễu nhân: Nhân tín hiệu hình ảnh với một yếu tố ngẫu nhiên.

Nhiễu xung xuất hiện dưới dạng các đột biến sáng hoặc tối đột ngột, thường có tần số cao Để loại bỏ nhiễu này, các bộ lọc thông thấp hoặc bộ lọc trung bình được sử dụng nhằm làm mượt ảnh và giữ lại các chi tiết quan trọng.

Bộ lọc Gaussian là một trong những công cụ quan trọng trong xử lý ảnh, hoạt động bằng cách tích chập ảnh đầu vào với mặt nạ Gaussian để tạo ra ảnh đầu ra Bộ lọc này chú trọng vào các điểm ảnh xung quanh, với trọng số phụ thuộc được tính theo hàm Gaussian, một dạng hàm phân phối chuẩn Hàm Gaussian có hình dạng chuông, với giá trị cao gần trung tâm và giảm dần khi xa trung tâm, giúp làm mịn ảnh và hiệu quả trong việc loại bỏ nhiễu.

Hình 4.2 Ma trận lọc Gauss

Trong một bức ảnh một chiều, điểm ảnh ở trung tâm có trọng số cao nhất, trong khi trọng số của các điểm ảnh xa trung tâm sẽ giảm dần theo khoảng cách Do đó, những điểm ảnh gần trung tâm sẽ đóng góp nhiều hơn vào giá trị của điểm ảnh trung tâm.

Phát hiện cạnh Canny (Canny Edge Detection)

Phương pháp phát hiện cạnh Canny Edge Detection được lựa chọn để nhận diện các cạnh trong ảnh nhờ vào việc cải tiến so với các kỹ thuật truyền thống, giúp giảm thiểu tác động của nhiễu và nâng cao khả năng phát hiện các biên yếu Giải thuật Canny thực hiện qua bốn bước chính.

1 Giảm nhiễu (Noise Reduction) Để giảm nhiễu và làm mờ ảnh, ta sử dụng một mặt nạ Gauss có kích thước 5x5. Kích thước này giúp làm mờ ảnh hiệu quả, đồng thời phù hợp với yêu cầu của giải thuật Canny trong việc phát hiện cạnh, vì nó có khả năng loại bỏ nhiễu mà không làm mất đi các thông tin biên quan trọng.

2 Tính toán Gradient (Gradient Calculation)

Trong bước này, chúng ta áp dụng phương pháp Sobel để tính toán độ dốc của ảnh bằng cách sử dụng hai bộ lọc Sobel: một cho hướng X (Kx) và một cho hướng Y (Ky) Các ma trận Sobel 3x3 sẽ thực hiện việc tính toán đạo hàm theo hai hướng, Gx và Gy.

Sau khi tính toán được Gx và Gy, ta tính độ lớn gradient G và hướng θ bằng công thức:

Hướng gradient θ sẽ được làm tròn về một trong bốn hướng chính: ngang (0 độ), chéo phải (45 độ), dọc (90 độ) và chéo trái (135 độ).

3 Loại bỏ những điểm không phải là cực đại ( Non-maximum Suppression)

Sau khi tính toán gradient, bước tiếp theo là loại bỏ những điểm không phải là cực đại Một bộ lọc 3x3 được áp dụng để xác định xem điểm ảnh tại mỗi vị trí có phải là cực đại trong hướng gradient hay không Nếu điểm ảnh là cực đại so với các điểm xung quanh, nó sẽ được giữ lại; ngược lại, giá trị gradient của nó sẽ bị loại bỏ (đặt về 0) Quy trình này chỉ so sánh điểm ảnh trung tâm với hai điểm xung quanh theo hướng gradient.

Khi hướng gradient là 0 độ, ta so sánh điểm ảnh trung tâm với các điểm bên trái và bên phải Ngược lại, khi hướng gradient là 45 độ, việc so sánh được thực hiện với các điểm ở góc trên bên phải và góc dưới bên trái của điểm trung tâm.

Hình 5.3 Loại bỏ những điểm không phải cực đại

4 Lọc ngưỡng (Double Thresholding) Ở bước cuối cùng, ta thực hiện lọc ngưỡng kép để xác định các điểm cạnh Các điểm có giá trị gradient lớn hơn ngưỡng cao (max_value) sẽ chắc chắn là các điểm cạnh

18 và được giữ lại Những điểm có giá trị gradient nhỏ hơn ngưỡng thấp (min_value) sẽ bị loại bỏ.

Các điểm có giá trị gradient nằm giữa hai ngưỡng sẽ được kiểm tra xem có liền kề với các điểm có gradient lớn hơn ngưỡng cao hay không Nếu có sự liền kề, điểm đó sẽ được giữ lại; nếu không, nó sẽ bị loại bỏ.

Sau khi hoàn thành các bước của phương pháp Canny, chúng ta có thể nhận diện các cạnh trong ảnh Tuy nhiên, kết quả có thể chứa một số chi tiết thừa hoặc nhiễu Để nâng cao chất lượng và chỉ giữ lại các cạnh quan trọng, kỹ thuật vẽ contour có thể được áp dụng nhằm lọc và trích xuất chính xác các chi tiết như biển số xe.

Kết hợp các bước trong giải thuật Canny giúp phát hiện biên ảnh một cách chính xác và hiệu quả, đồng thời giảm thiểu tác động của nhiễu và các yếu tố không cần thiết trong ảnh.

Hình 5.5 Ảnh sau khi phát hiện biên Canny

Lọc biển số với Contour

1 Một số phương pháp tìm contour a Thuật toán Square Tracing

Thuật toán Square Tracing bắt đầu từ pixel ở góc dưới bên trái và di chuyển lên trên cho đến khi phát hiện một pixel có giá trị bằng 1 Khi gặp pixel này, thuật toán sẽ tuân theo các quy tắc đã được xác định.

Nếu gặp pixel có giá trị bằng 1, thuật toán rẽ trái.

Nếu gặp pixel có giá trị bằng 0, thuật toán rẽ phải.

Quá trình này tiếp tục cho đến khi thuật toán quay lại pixel ban đầu

Hình 6.1-1 Thuật toán Square Tracing

Thuật toán sẽ cho kết quả chính xác khi trở về pixel ban đầu với hướng di chuyển giống như lần đầu Nếu quay lại pixel ban đầu nhưng không khớp với hướng ban đầu, kết quả sẽ sai Square Tracing chỉ hoạt động hiệu quả trên các đối tượng 4-connected.

Hình 6.1-2 Thuật toán Square Tracing chạy đúng Hình 6.1-3Thuật toán Square Tracing chạy sai b Thuật toán Moore-Neighbor

Thuật toán Moore-Neighbor khác với Square Tracing ở chỗ khi gặp pixel có giá trị 1 (pixel start), nó sẽ quay lại pixel trước và tiếp tục di chuyển theo hướng 8-connected theo chiều kim đồng hồ cho đến khi gặp pixel khác có giá trị 1 Điều kiện kết thúc của thuật toán cũng tương tự như thuật toán Square Tracing.

Hình 6.1-4 Thuật toán Moore-Neighbor. c Thuật toán Suzuki’z Tracing

Thuật toán Suzuki’s Tracing trong thư viện OpenCV là công cụ hiệu quả để phát hiện biên của vật thể Nó không chỉ xác định được biên ngoài (Outer) mà còn phân biệt được biên trong (Hole) của vật thể, mang lại khả năng phân tích hình ảnh chính xác hơn.

Trong OpenCV, hàm findContours được sử dụng để thực hiện thuật toán Suzuki's Tracing với các tham số như sau:

Hàm này có các tham số quan trọng như: "image", là ảnh nhị phân cần tìm biên; "contours", dùng để lưu trữ các đường biên đã tìm được dưới dạng vector các điểm; và "hierarchy", chứa thông tin về số lượng đường biên, xếp hạng theo kích thước và phân loại biên ngoài hay biên trong.

CV_RETR_EXTERNAL: Chỉ lấy các đường biên bên ngoài. CV_RETR_LIST: Lấy tất cả các đường biên.

CV_RETR_CCOMP: Lấy tất cả các đường biên và chia chúng thành hai cấp (biên ngoài và biên trong).

CV_RETR_TREE: Lấy tất cả các đường biên và tạo một hệ thống phân cấp đầy đủ. method:

CV_CHAIN_APPROX_NONE: Lưu tất cả các điểm của đường viền.

CV_CHAIN_APPROX_SIMPLE: Sử dụng ít điểm hơn, ví dụ, một hình chữ nhật chỉ cần 4 điểm.

CV_CHAIN_APPROX_TC89_L1 hoặc

CV_CHAIN_APPROX_TC89_KCOS : Sử dụng thuật toán Tech-Chin.

Hình 6.1-5 Vẽ contour với Opencv

Sau khi áp dụng thuật toán tìm biên, chúng ta sẽ lọc ra biển số từ các đường biên phát hiện Đầu tiên, các đường biên được xấp xỉ theo hình đa giác, chỉ chọn những đa giác có 4 cạnh Quá trình này giúp lưu lại vị trí các đỉnh của đa giác trong một mảng, với số cạnh tương ứng với số đỉnh và chiều dài của mảng.

Hình 6.2-1 Contour trước khi xấp xỉ đa giác.

Hình 6.2-2 Contour sau khi xấp xỉ đa giác

Để lọc chính xác biển số trong ảnh, ta tính toán tỷ lệ cao/rộng và diện tích phù hợp, loại bỏ những đối tượng không phải biển số Sau đó, dựa trên các tọa độ của các đỉnh đã được tính toán, ta sẽ cắt ảnh biển số để tách các ký tự trong biển số cho các bước tiếp theo.

Chú ý rằng trong quá trình xử lý, ảnh nhị phân sẽ được sử dụng để tăng tốc độ xử lý và giảm thiểu thời gian tính toán.

PHÂN ĐOẠN KÝ TỰ

Xoay và căn chỉnh biển số

Khi chụp ảnh biển số, hình ảnh không phải lúc nào cũng được ghi lại từ góc chính diện, mà có thể bị lệch sang trái hoặc phải, hoặc méo mó không đồng đều, dẫn đến việc quá trình nhận dạng dễ bị sai lệch.

Hình 1.1 - Ảnh biển số chưa xoay Phương pháp nhóm em dùng để xoay ở đây là:

1 Lọc tọa độ 2 đỉnh A và B nằm dưới cùng biển số

2 Từ 2 đỉnh có tọa độ lần lượt: A(x1, y1) và B(x2, y2) có thể tính cạnh đối và cạnh kề của tam giác ABC

3 Sau đó tính góc quay BAC ^ = tan −1 ( cạnℎ cạnℎ đối kề ) = tan − 1 ( BC AC )

4 Xoay ảnh theo chiều đã tính, trường hợp góc A nằm cao hơn góc B thì cho góc quay âm

Hình 1.2 - Ảnh biển số đã xoay

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

Bắt đầu từ ảnh nhị phân, chúng ta xác định các đường viền (contour) cho các ký tự màu trắng và sau đó tạo hình chữ nhật bao quanh chúng Tuy nhiên, quá trình tìm kiếm các contour này có thể bị nhiễu, dẫn đến việc xử lý không chính xác.

Để giải quyết vấn đề, chúng ta sẽ chuyển đổi màu ảnh từ BGR sang HSV Thông thường, màu GRAY được sử dụng thay cho HSV do độ chính xác không cao Màu HSV được biểu diễn thông qua ba thông số.

1.H(Hue): vùng chừa màu sắc

Chúng ta sử dụng thuật toán AI adaptive threshold để làm nổi bật các phần mong muốn trong hình ảnh Khác với phương pháp truyền thống áp dụng ngưỡng cho toàn bộ ảnh, adaptive threshold chỉ áp dụng cho từng vùng nhỏ, giúp cải thiện hiệu quả trong điều kiện ánh sáng kém.

Hình 2.2 – Ảnh tìm vùng đối tượng

Trong hình ảnh này, các đường màu vàng biểu thị các đường contour, và khi so sánh với ảnh nhị phân trước đó, ta nhận thấy có nhiều đường bị nhiễu như viền biển số, dấu gạch và dấu chấm Sau khi áp dụng các điều kiện thay đổi, các đường vẽ sẽ bao quanh các ký tự một cách rõ ràng hơn.

Tìm và tách đối tượng

Sau khi nhận diện các ký tự thông qua hình chữ nhật và xác định tọa độ bốn góc của ký tự, chúng ta có thể sử dụng hình ảnh của ký tự đã được cắt để phục vụ cho giai đoạn “Nhận diện ký tự”.

Hình 3.1 - Ảnh kí tự sau khi cắt

NHẬN DIỆN KÝ TỰ

Tổng quan về lý thuyết

Quá trình nhận dạng thực chất là việc chuyển đổi ma trận tương ứng với các ký tự thành mã ASCII tương ứng Để hiểu rõ hơn về nhận diện, chúng ta cần xem xét ngành khoa học trí tuệ nhân tạo (AI).

Trí tuệ nhân tạo (AI) là một lĩnh vực trong khoa học máy tính, chuyên phát triển hệ thống và máy móc có khả năng thực hiện các nhiệm vụ mà trước đây chỉ con người có thể làm, bao gồm tư duy, học hỏi và giải quyết vấn đề Trong những năm gần đây, AI đã bùng nổ mạnh mẽ, đặc biệt từ năm

2015 Phần lớn trong số đó liên quan đến những tiện ích sẵn có của GPU khiến cho việc xử lý song song nhanh, rẻ và mạnh mẽ hơn.

Bên trong AI bao gồm hai khối nhỏ là Máy học (Machine learning) và Học sâu (Deep learning).

Machine Learning (Học máy) là một lĩnh vực trong AI (Trí tuệ nhân tạo) và khoa học máy tính, cho phép máy tính tự cải thiện thông qua dữ liệu và kinh nghiệm đã học Công nghệ này có khả năng đưa ra phán đoán và quyết định mà không cần lập trình cụ thể, mở ra nhiều ứng dụng tiềm năng trong cuộc sống.

Machine Learning hoạt động bằng cách sử dụng một tập dữ liệu huấn luyện bao gồm các mẫu dữ liệu đầu vào và đầu ra (nhãn) Qua đó, máy tính học cách nhận biết đặc điểm và mối liên hệ giữa đầu vào và đầu ra Sau khi huấn luyện, mô hình có khả năng dự đoán hoặc phân loại các dữ liệu đầu vào mới Trong đề tài này, tập dữ liệu mẫu sẽ là hình ảnh các chữ số và ký tự biển số Việt Nam, được gán nhãn mã ASCII tương ứng để máy tự học.

Machine Learning được phân ra thành nhiều loại khác nhau nhưng nổi bật là 2 loại:Học có giám sát và học không giám sát.

2.1 - Ảnh minh họa phân loại Machine Learning a Học có giám sát

Học có giám sát là thuật toán mà dữ liệu huấn luyện bao gồm cả dữ liệu đầu vào và đầu ra tương ứng, nhằm xây dựng hàm số ánh xạ chính xác từ dữ liệu đầu vào sang dữ liệu đầu ra Các ứng dụng phổ biến của học có giám sát bao gồm nhận diện ký tự, dự đoán giá cổ phiếu và phân loại thư rác.

Phương pháp này sử dụng dữ liệu huấn luyện không gắn nhãn, cho phép thuật toán tự phát hiện cấu trúc và nhóm dữ liệu tương tự Các ứng dụng của nó bao gồm phân nhóm khách hàng, phát hiện bất thường trong dữ liệu và giảm chiều dữ liệu để tối ưu hóa tính toán và lưu trữ.

3 Thuật toán KNN(K-Nearest Neighbor)

Có 2 thuật toán nổi bật trong giới là KNN(K-Nearest Neighbor) và CNN(Convolutional Neural Network) Nhưng được lựa chọn áp dụng đa số là thuật toán KNN bởi nó đơn giản trong việc nhận diện biển số, thay vì dùng CNN thuật toán mang độ phức tạp cao và thường chỉ áp dụng cho các bài toán nhận diện lớn và phức tạp.

K-nearest neighbors là thuật toán học máy có giám sát, đơn giản và dễ triển khai. Thường được dùng trong các bài toán phân loại và hồi quy Về ý tưởng là gán kết quả với dữ liệu training gần giống với mẫu nhất.

KNN hoạt động theo quy trình gồm 4 bước chính:

1 Xác định tham số K (số láng giềng gần nhất).

2 Tính khoảng cách từ điểm đang xét đến tất cả các điểm trong tập dữ liệu cho trước.

3 Sắp xếp các khoảng cách đó theo thứ tự tăng dần.

4 Xét trong tập K điểm gần nhất với điểm đang xét, nếu số lượng điểm của loại nào cao hơn thì coi như điểm đang xét thuộc loại đó.

Việc xác định loại điểm phụ thuộc vào hệ số K và trọng số khoảng cách mà người dùng chọn cho phù hợp với bài toán Ví dụ, với K = 3, điểm sẽ thuộc loại B, trong khi với K = 6, nó thuộc loại A Ngoài ra, người dùng có thể áp dụng trọng số cao hơn cho những điểm gần hơn, hoặc sử dụng K = 1 để tối ưu hóa kết quả đầu ra.

Thông thường việc tính khoảng cách đến các điểm sẽ theo công thức Euclid: d ( x , y )= √ ∑ i ( x i − y i ) 2

Khi so sánh các biến, có thể bỏ qua dấu căn bậc hai Nếu khoảng cách giữa các biến quá lớn, chẳng hạn như biến x lớn hơn xấp xỉ 1.000.000 lần, cần phải chuẩn hóa dữ liệu theo công thức phù hợp.

Công thức X ∗ = X − min(X) / (max(X) − min(X)) giúp đánh giá khả năng tiêu thụ của các dòng xe ô tô mới Ví dụ, một công ty muốn đưa xe mới vào thị trường sẽ tổng hợp dữ liệu về dung tích xi lanh, giá tiền, màu sơn và diện tích xe từ các dòng xe đã có Trong đó, Z được sử dụng để biểu thị khả năng tiêu thụ, với Z = 0 cho biết xe sẽ ế và Z = 1 cho biết xe sẽ bán chạy.

3.2 - Ảnh xét khả năng tiêu thụ của xe

Ta chuẩn hóa dữ liệu:

Để chuẩn hóa dữ liệu, chúng ta cần tính toán khoảng cách giữa điểm cần xét và các dữ liệu đã cho Cần lưu ý rằng đối với các biến định tính, nếu giá trị khác nhau, khoảng cách sẽ là 1, còn nếu giống nhau, khoảng cách sẽ là 0.

Ví dụ ta tính khoảng các giữa dòng xe 6 và 1: d (6 , 1 )= √ (0.34 − 1 ) 2 +( 0.43 − 0.85 ) 2 + 1 2 +(0.89 − 0.22 ) 2

Sau khi tính toán, nếu chọn K=1, kết quả Z đạt 1; với K=3 và K=5, Z đều bằng 0 Phương pháp này có những ưu điểm và nhược điểm nhất định.

 Dễ sử dụng và cài đặt

 Độ phức tạp tính toán nhỏ

 Việc dự đoán kết quả rất đơn giản

 Với K nhỏ, khi gặp nhiễu dễ đưa ra kết quả không chính xác

 Cần nhiều thời gian lưu trainning set và nếu test tăng lên sẽ tốn rất nhiều thời gian

Hướng giải quyết

Ở giai đoạn cuối này được thực hiện theo những bước sau:

1 Tạo tập dữ liệu để huấn luyện

2 Huấn luyện mô hình KNN

3 Đưa hình ảnh từ bước “Phân đoạn kí tự” vào mô hình KNN đã tạo để đưa ra kết quả

4 In ra kết quả biển số

Để nhận diện ký tự hiệu quả, bước đầu tiên và thứ hai là tạo ra mô hình KNN riêng biệt với mã nguồn chính, giúp tiết kiệm thời gian khi cần nhận diện sau này Chúng ta sẽ tạo tập dữ liệu từ phần mềm Paint bằng cách viết các chữ số và ký tự (trừ O, I, J) với phông chữ “Biển số xe Việt Nam” và xoay các ký tự này ở các góc khác nhau Kết quả thu được sẽ là tập hình ảnh đa dạng phục vụ cho quá trình huấn luyện.

Trong bước 2.1, chúng ta tiến hành xử lý dữ liệu đầu vào bằng cách thiết lập ngưỡng, vẽ contour và cắt từng ký tự Để giảm độ phức tạp do kích thước ký tự khác nhau, hình ảnh sẽ được chuẩn hóa về kích thước 30x20 pixels Thay vì đưa từng ký tự vào mô hình nhận diện, chúng ta sẽ gán nhãn cho các ký tự này bằng phím bấm trên máy tính Sau khi hoàn tất việc gán nhãn, hai file txt sẽ được lưu lại: classifications.txt để lưu mã ASCII của các ký tự và flattened_images.txt để lưu giá trị điểm ảnh của hình ảnh ký tự, với mỗi hình ảnh 20x30 pixel chứa tổng cộng 600 điểm ảnh có giá trị 0 hoặc 255.

Trong bước 3 và 4, chúng ta đưa ảnh vào và tính khoảng cách đến tất cả các điểm trong mẫu, từ đó tạo ra mã ASCII đại diện cho hình ảnh Cuối cùng, chúng ta in biển số xe ra hình Tại Việt Nam, có hai loại biển số: biển một hàng và biển hai hàng Để phân biệt hai loại biển số này, chúng ta dựa vào vị trí của các ký tự; nếu ký tự nằm trong 1/3 chiều cao thấp nhất của biển số, nó sẽ được xếp vào hàng một, ngược lại sẽ thuộc hàng hai.

2.3 - Ảnh trước khi nhận diện

2.4 - Ảnh sau khi nhận diện

2.5 – Ảnh hiển thị ở ảnh gốc

KẾT QUẢ THỰC HIỆN

Ngày đăng: 03/05/2025, 21:12

HÌNH ẢNH LIÊN QUAN

Sơ đồ dưới đây sẽ tóm gọn các bước để xác định và tách biển số xe từ clip: - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Sơ đồ d ưới đây sẽ tóm gọn các bước để xác định và tách biển số xe từ clip: (Trang 13)
Hình 2.1 Hình đã chuyển xám - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 2.1 Hình đã chuyển xám (Trang 14)
Hình 2.3 Nhị phân hóa ảnh ngưỡng động - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 2.3 Nhị phân hóa ảnh ngưỡng động (Trang 16)
Hình 3.1 Ví dụ về phần tử cấu trúc Phép toán hình thái học, ban đầu dùng cho ảnh nhị phân, đã được mở rộng cho ảnh xám và màu - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 3.1 Ví dụ về phần tử cấu trúc Phép toán hình thái học, ban đầu dùng cho ảnh nhị phân, đã được mở rộng cho ảnh xám và màu (Trang 16)
Hình 4.2 Ma trận lọc Gauss - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 4.2 Ma trận lọc Gauss (Trang 20)
Hình 4.1 Hình nhiễu - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 4.1 Hình nhiễu (Trang 20)
Hình 5.3 Loại bỏ những điểm không phải cực đại - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 5.3 Loại bỏ những điểm không phải cực đại (Trang 22)
Hình 5.4 Lọc ngưỡng - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 5.4 Lọc ngưỡng (Trang 23)
Hình 5.5 Ảnh sau khi phát hiện biên Canny - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 5.5 Ảnh sau khi phát hiện biên Canny (Trang 24)
Hình 6.1-1 Thuật toán Square Tracing - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 6.1 1 Thuật toán Square Tracing (Trang 24)
Hình 6.1-5 Vẽ contour với Opencv - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 6.1 5 Vẽ contour với Opencv (Trang 27)
Hình 1.2 - Ảnh biển số đã xoay - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 1.2 Ảnh biển số đã xoay (Trang 28)
Hình 1.1 - Ảnh biển số chưa xoay Phương pháp nhóm em dùng để xoay ở đây là: - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 1.1 Ảnh biển số chưa xoay Phương pháp nhóm em dùng để xoay ở đây là: (Trang 28)
Hình 2.1 - Ảnh nhị phân - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 2.1 Ảnh nhị phân (Trang 29)
Hình 3.1 - Ảnh kí tự sau khi cắt - Môn học chuyên Đề hệ thống giao thông thông minh Đề tài nhận diện biển số xe
Hình 3.1 Ảnh kí tự sau khi cắt (Trang 30)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w