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

xây dựng hệ thống phát hiện phương tiện xe máy ô tô vượt đèn đỏ hay lấn làn

72 3 0

Đ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 Phát Hiện Phương Tiện Xe Máy Ô Tô Vượt Đèn Đỏ Hay Lấn Làn
Định dạng
Số trang 72
Dung lượng 3,16 MB

Cấu trúc

  • CHƯƠNG I TỔNG QUAN (9)
    • 1.1. Lý do chọn đề tài (9)
    • 1.2. Nội dung đề tài (10)
    • 1.3. Giới hạn đề tài (13)
    • 1.4. Mục tiêu (13)
  • CHƯƠNG II CƠ SỞ LÝ THUYẾT (14)
    • 2.1. Tìm hiểu về thư viện xử lý ảnh OpenCV (14)
    • 2.2. Không gian màu và các phép biến đổi (16)
      • 2.2.1. Không gian màu (16)
      • 2.2.2. Các phép biến đổi không gian màu (20)
    • 2.3. Phương pháp nhận diện biển số xe (License Plate Recognition) (21)
      • 2.3.1. Thu nhận hình ảnh từ Camera (21)
      • 2.3.2. Tách biển số xe (23)
      • 2.3.3. Phân đoạn ký tự (41)
      • 2.3.4. Nhận dạng ký tự (46)
    • 2.4. Phương pháp phát hiện vi phạm vượt đèn đỏ và lấn làn (57)
      • 2.4.1. Phát hiện phương tiện vượt đèn đỏ (57)
      • 2.4.2. Phát hiện phương tiện đi không đúng làn đường quy định (61)
  • CHƯƠNG III PHÂN TÍCH THIẾT KẾ HỆ THỐNG (61)
    • 3.1. Biểu đồ phân cấp chức năng (61)
    • 3.2. Mô hình tổng quan hệ thống (62)
      • 3.2.1. Mô hình use case (62)
      • 3.2.2. Danh sách các tác nhân và mô tả (64)
      • 3.2.3. Danh sách use case và mô tả (64)
    • 3.3. Đặc tả các yêu cầu chức năng hệ thống (Functional) (65)
      • 3.3.1. Nhận dạng biển số xe (66)
      • 3.3.2. Phát hiện phương tiện vượt đèn đỏ (67)
      • 3.3.3. Phát hiện phương tiện lấn làn (68)
      • 3.3.4. Truy vấn cơ sở dữ liệu (70)
    • 3.4. Thiết kế giao diện chương trình (72)
  • CHƯƠNG IV XÂY DỰNG VÀ CÀI ĐẶT (72)
    • 4.1. Công cụ lựa chọn xây dựng hệ thống (72)
    • 4.2. Một số code chính trong chương trình (73)
    • 4.3. Kết quả đạt được (73)
    • 4.4. Thử nghiệm hệ thống (73)
  • KẾT LUẬN (73)
  • TÀI LIỆU THAM KHẢO (74)

Nội dung

TỔNG QUAN

Lý do chọn đề tài

Với sự phát triển của khoa học kỹ thuật và nhu cầu di chuyển ngày càng tăng, lưu lượng giao thông cũng gia tăng đáng kể Sự gia tăng số lượng phương tiện giao thông đã tạo ra nhiều thách thức trong việc quản lý và xử phạt các vi phạm giao thông Do đó, việc triển khai hệ thống xử lý vi phạm giao thông tự động bằng Camera trở nên cần thiết Hệ thống này có khả năng tự động "đọc" và "hiểu" biển số xe, giúp phát hiện các vi phạm giao thông một cách hiệu quả.

Trong luận văn này, tác giả đã phát triển hệ thống phát hiện vi phạm giao thông cho xe máy và ô tô, nhằm giảm thiểu nhân lực trong việc giám sát và đảm bảo tính chính xác trong việc xử lý vi phạm Hệ thống camera kiểm soát giao thông được kết hợp với công nghệ xử lý video và hình ảnh để xác định các lỗi vi phạm, ghi nhận biển số và hình ảnh của phương tiện Đồng thời, hệ thống cũng tra cứu mức xử phạt tương ứng, tạo văn bản xử phạt hành chính cho các trường hợp vi phạm, và cung cấp báo cáo thống kê về số lượng và loại lỗi vi phạm.

Nội dung đề tài

Đề tài nghiên cứu tập trung vào việc phân tích video và hình ảnh biển số của xe ô tô và xe máy tham gia giao thông Phạm vi nghiên cứu bao gồm xử lý hình ảnh để xác định các lỗi vi phạm như vượt đèn đỏ, lưu thông sai quy định và dừng đỗ không đúng nơi quy định Ngoài ra, nghiên cứu cũng sẽ thực hiện phân tách biển số (4, 5 số) của các phương tiện và phát triển phương pháp xuất văn bản xử phạt vi phạm hành chính cho những lỗi này.

Hệ thống được giới thiệu trong luận văn này chỉ bao gồm một số tính năng cơ bản do hạn chế về thời gian, nhưng có tiềm năng phát triển và mở rộng trong tương lai Các tính năng dự kiến của hệ thống sẽ được cải thiện để đáp ứng nhu cầu ngày càng tăng.

- Xác định phương tiện vượt đèn đỏ

- Xác định phương tiện lưu thông, dừng đỗ không đúng làn đường quy định (lấn tuyến)

- Xác định biển số của phương tiện

- Kết xuất ra văn bản xử phạt vi phạm hành chính

- Báo cáo thống kê số lượng phương tiện giao thông vi phạm và các lỗi vi phạm theo từng ngày, từng tháng.

Hệ thống này bao gồm phần cứng và phần mềm, trong đó phần cứng chủ yếu là Camera để thu nhận hình ảnh Phần mềm sẽ phân tích hình ảnh nhằm trích xuất các ký tự trên biển số xe và phát hiện lỗi mà xe đó vi phạm Hệ thống được cấu thành từ ba khối chức năng chính.

Hệ thống camera ghi hình bao gồm hai loại: một camera tương tự lắp đặt trên vạch dừng đèn đỏ để phát hiện vi phạm, với khoảng cách từ camera đến mặt đường được tính toán dựa trên thông số kỹ thuật của camera; và một camera kỹ thuật số có độ phân giải cao, được đặt xa trụ đèn tín hiệu giao thông, nhằm chụp ảnh phương tiện từ phía sau để nhận diện biển số và xác định trạng thái đèn tín hiệu.

Hình 1.1 : Sơ đồ minh họa vị trí gắn camera trên đường.

Khối xử lý và phân tích hình ảnh là chương trình hoạt động trên máy tính, có nhiệm vụ tiếp nhận dữ liệu hình ảnh từ camera thông qua phần mềm đi kèm Chương trình này thực hiện việc xử lý và phân tích hình ảnh để xác định các lỗi vi phạm, đồng thời phân tách biển số của phương tiện và lưu trữ hình ảnh của các phương tiện vi phạm.

Khối kết xuất văn bản là một chương trình đi kèm với khối xử lý và phân tích hình ảnh, có nhiệm vụ đề xuất mức phạt tương ứng với lỗi vi phạm Chương trình này không chỉ tạo ra văn bản xử phạt mà còn cung cấp các báo cáo thống kê liên quan.

Quá trình thu nhận biển số xe được thực hiện theo sơ đồ sau:

Hình 1.2 : Sơ đồ quá trình nhận dạng.

Khối tách biển số có nhiệm vụ sử dụng các phương pháp xử lý ảnh để xác định và cắt ra biển số từ hình ảnh chụp Kết quả thu được là ảnh màu RGB (Đỏ Xanh Lục Xanh Dương) của biển số Tuy nhiên, việc này rất khó khăn do không xác định được vị trí chính xác của biển số và còn phụ thuộc vào độ sáng của bức ảnh.

Sau khi tách biển số, bước tiếp theo là phân đoạn ký tự, trong đó chúng ta tách riêng từng ký tự có trong biển số Quá trình này tạo ra một tập hợp các ảnh riêng biệt cho từng ký tự, phục vụ cho việc nhận dạng Mỗi ảnh ký tự được chuyển đổi thành ảnh trắng đen để dễ dàng xử lý.

Nhận dạng ký tự là quá trình quan trọng trong việc phân đoạn biển số, giúp tách rời các ký tự và tạo thành một chuỗi ký tự Chuỗi này sau đó được đưa vào khối nhận dạng để thực hiện việc nhận diện từng ký tự một cách chính xác.

Giới hạn đề tài

Sự đa dạng về định dạng và độ sáng của biển số xe gây khó khăn trong việc nhận diện Quá trình nhận dạng phụ thuộc vào kỹ thuật xử lý ảnh và trích xuất biển số từ hình ảnh, do đó, sự khác biệt về độ sáng làm tăng độ phức tạp trong việc nhận diện.

Do thời gian thực hiện đềtài không cho phép nên người thực hiện giới hạn các biển số và điều kiện như sau :

- Biển số có chữ đen, nền trắng, có 2 hàng, số ký tự là 8

- Biển số phải còn nguyên vẹn, không bị tróc sơn hay rỉ sét, không bị che khuất

- Góc nghiêng của biển số không quá 45 0 so với phương ngang

- Hình chụp biển số không bị mờ, ký tự biển số còn phân biệt, nhận dạng được bằng trực quan

 Không bị nhiễu bởi ánh sáng làm ảnh chụp bị chói.

Mục tiêu

Đề tài đặt những mục tiêu sau:

- Tìm hiểu về phương pháp xử lý ảnh : phát hiện và nhận diện biển số, phát hiện phương tiện vi phạm giao thông.

- Hạn chế những vấn đề bất cập của việc phát hiện vi phạm giao thông (vượt đèn đỏ, lấn làn) hiện nay

- Xây dựng một mô hình hệ thống phát hiện phương tiện vi phạm giao thông.

CƠ SỞ LÝ THUYẾT

Tìm hiểu về thư viện xử lý ảnh OpenCV

OpenCV (Open Computer Vision Library) là thư viện do Intel phát triển, được giới thiệu vào năm 1999 và hoàn thiện phiên bản 1.0 vào năm 2006 Thư viện này bao gồm khoảng 500 hàm được viết bằng ngôn ngữ C, tương thích với các hệ điều hành như Windows, Linux, và Mac OS OpenCV đóng vai trò quan trọng trong việc xác lập chuẩn giao tiếp, dữ liệu và thuật toán cho lĩnh vực Computer Vision, đồng thời tạo điều kiện cho việc nghiên cứu và phát triển ứng dụng trong lĩnh vực này.

Trước khi OpenCV ra đời, lĩnh vực xử lý ảnh thiếu công cụ chuẩn, với các đoạn mã do các nhà nghiên cứu tự viết thường không đồng nhất và không ổn định Các bộ công cụ thương mại như Matlab, Simulink và Halcon có giá cao, chỉ phù hợp cho các công ty phát triển ứng dụng lớn Bên cạnh đó, nhiều giải pháp kèm theo thiết bị phần cứng thường là mã nguồn đóng và được thiết kế riêng, gây khó khăn cho việc mở rộng ứng dụng.

OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử lý ảnh số vì các ưu điểm sau :

OpenCV là một công cụ mạnh mẽ được Intel phát triển, tối ưu hóa cho xử lý và phân tích ảnh Với cấu trúc dữ liệu hợp lý và thư viện giao diện, OpenCV tích hợp sẵn khả năng truy xuất thiết bị phần cứng, giúp phát triển ứng dụng nhanh chóng và hiệu quả.

OpenCV là một công cụ mã nguồn mở miễn phí, được cấp phép theo giấy phép BSD, mang lại sự linh hoạt cho nghiên cứu và phát triển Nhờ vào khả năng thay đổi và mở rộng các mô hình và thuật toán, OpenCV trở thành lựa chọn lý tưởng cho các dự án nghiên cứu và phát triển trong lĩnh vực xử lý ảnh và thị giác máy tính.

OpenCV đã trở thành một công cụ phổ biến kể từ năm 1999, thu hút sự quan tâm của nhiều người dùng, bao gồm các công ty lớn như Microsoft, IBM, Sony, Siemens và Google, cũng như các nhóm nghiên cứu tại các trường đại học danh tiếng như Stanford, MIT, CMU và Cambridge Sự phát triển này đã dẫn đến việc hình thành nhiều diễn đàn hỗ trợ và cộng đồng người dùng, cung cấp một kênh thông tin phong phú và hữu ích cho việc tham khảo và tra cứu.

Tổ chức thư viện OpenCV khá đơn giản, bao gồm 4 module chính :

Hình 2.1 Sơ đồ các module chính của OpenCV.

CXCORE chứa các định nghĩa về kiểu dữ liệu cơ sở, bao gồm các cấu trúc dữ liệu cho ảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h Ngoài ra, CXCORE cung cấp đại số tuyến tính, phương pháp thống kê, và các chức năng để duy trì và điều khiển chuỗi Một số chức năng đồ họa cơ bản để vẽ trên ảnh cũng được tích hợp trong CXCORE.

- CV : chứa các thuật toán về xử lý ảnh và định kích cỡ Camera.Các chức năng hình họa máy tính cũng được đặt ở đây.

- MLL (Machine Learning) : chứa các công cụ, thuật toán về học máy.

- HighGUI : chứa các giao diện vào ra cơ bản.

Không gian màu và các phép biến đổi

2.2.1 Không gian màu : a) Không gian màu RGB :

RGB là không gian màu phổ biến trong đồ họa máy tính và các thiết bị kỹ thuật số Nguyên tắc cơ bản của không gian màu này là sự kết hợp của ba màu chính: đỏ, xanh lá cây và xanh dương.

3 màu sắc cơ bản : màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác.

Ảnh số được mã hóa bằng 24 bit, với 8 bit cho mỗi kênh màu R, G và B, cho phép mỗi kênh nhận giá trị từ 0 đến 255 Sự kết hợp của các giá trị này tạo ra khoảng 16.7 triệu màu sắc khác nhau Ví dụ, màu đen (0, 0, 0), màu trắng (255, 255, 255), màu vàng (255, 255, 0) và màu tím đậm (64, 0, 128) là những minh chứng cho điều này Nếu sử dụng 16 bit để mã hóa mỗi kênh màu, tổng số màu sắc có thể đạt tới 3*2^16, tạo ra một dải màu rất phong phú.

Hình 2.2 : Không gian mầu RGB. b) Không gian màu HSV :

HSV và HSL là hai không gian màu phổ biến trong chỉnh sửa và phân tích ảnh, cũng như trong lĩnh vực thị giác máy tính Cả hai hệ thống này dựa trên ba thông số chính để mô tả màu sắc.

H = Hue: màu sắc, S = Saturation: độ đậm đặc, sự bảo hòa, V = value: giá trị cường độ sáng.

Không gian màu này thường được biểu diễn dưới dạng hình trụ hoặc hình nón.

Hình 2.3 : Không gian mầu HSV.

Trường biểu diễn màu sắc (Hue) được thể hiện qua vòng tròn từ 0 đến 360 độ, bắt đầu với màu đỏ (red primary) tại 0 độ, tiếp theo là màu xanh lục (green primary) trong khoảng 0-120 độ Khu vực từ 120 đến 240 độ chuyển tiếp từ màu xanh lục sang xanh lơ (green primary - blue primary), và từ 240 đến 360 độ là sự chuyển đổi từ màu đen trở lại màu đỏ.

Hình 2.4 : Hình tròn biểu diễn màu sắc (Hue).

Theo cách biểu diễn không gian màu hình trụ, giá trị độ sáng (V) được thể hiện bằng chiều cao từ đáy hình trụ lên, nằm trong khoảng từ 0 đến 1, với V = 0 là tối nhất và V = 1 là sáng nhất Giá trị bão hòa của màu sắc (S) được đo từ tâm hình trụ ra đến mặt trụ, với S cũng nằm trong khoảng từ 0 đến 1; S = 0 tại tâm hình trụ là nơi màu sắc nhạt nhất, trong khi S = 1 ở mặt trụ là nơi màu sắc đậm đặc nhất.

Mỗi giá trị (H, S, V) sẽ xác định một màu sắc, cung cấp thông tin chi tiết về sắc thái, độ đậm đặc và độ sáng của màu đó Trong khi đó, không gian màu CMYK cũng đóng vai trò quan trọng trong việc mô tả và tái tạo màu sắc.

CMYK là không gian màu chủ yếu trong ngành in ấn, sử dụng bốn màu cơ bản để pha trộn mực in Ba màu chính được sử dụng là Cyan (xanh lơ), Magenta (hồng xẫm) và Yellow (vàng), từ đó tạo ra các màu sắc khác nhau Chẳng hạn, sự kết hợp giữa hồng xẫm và vàng cho ra màu đỏ, trong khi hồng xẫm và xanh lơ tạo thành màu xanh lam Mặc dù ba màu này có thể tạo ra màu đen, nhưng màu đen thu được không phải là đen tuyệt đối và thường có độ tương phản lớn Để tiết kiệm mực in, ngành in thường thêm màu đen vào quy trình, tạo nên hệ màu CMYK.

K là ký hiệu cho màu đen (Black), có thể do chữ B đã được sử dụng để biểu thị màu xanh (Blue), nên người ta chọn chữ cái cuối cùng là K để đại diện cho màu đen.

Nguyên lý hoạt động của hệ màu CMYK dựa trên việc loại bỏ thành phần màu trắng từ nền giấy trắng khi các màu C (cyan), M (magenta), Y (yellow) được in lên với tỷ lệ khác nhau, tạo ra màu sắc mong muốn Để in màu đen, thay vì kết hợp cả ba màu, người ta sử dụng màu đen trực tiếp Điều này khác với hệ RGB, nơi màu sắc được tạo ra từ sự kết hợp của các thành phần màu.

Hình 2.5 : Không gian màu CYMK.

2.2.2 Các phép biến đổi không gian màu : a) Chuyển đổi RGB sang CMYK và ngược lại :

Để chuyển đổi không gian màu từ RGB sang CMYK, trước tiên cần chuyển RGB sang CMY, sau đó xác định thành phần K Thành phần K là yếu tố phụ dùng để in các điểm màu đen trong hệ màu CMYK Công thức chuyển đổi từ RGB sang CMY sẽ giúp thực hiện quá trình này một cách chính xác.

Việc xác định giá trị của K là một thách thức, vì nó phụ thuộc vào nhà sản xuất công nghệ in Tuy nhiên, từ góc độ lý thuyết, có thể chấp nhận rằng giá trị này có thể được xem xét và phân tích một cách hợp lý.

Nếu K = 100, thì C = M = Y =0 (trương hợp in màu đen)

Nếu 0< K < 100: C = (C'/2.55 - K) * 100 /(100 - K), M = (M'/2.55 - K) * 100 /(100 - K), Y = (Y'/2.55 - K) *100 /(100 - K) và K = K Trong đó, C, M, Y, K được làm tròn tới để lấy chỉ số nguyên. b) Chuyển đổi RGB sang HSV và ngược lại :

Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B) ta chuyển sang không gian HSV như sau: Đặt M = Max(R, G, B), m = Min(R, G, B) và C = M - m.

S = C/V Trong trường hợp V hoặc C bằng 0, S = 0. Để chuyển từ HSV sang RGB ta làm như sau:

Giả sử ta có không gian màu HSV với H = [0, 360], S = [0, 1], V = [0, 1] Khi đó, ta tính C = VxS H' = H/60.

X = C(1 - |H' mod2 -1|) Ta biểu diễn hệ (R1, G1, B1) như sau: Đặt m = V - C và ta có kết quả cuối cùng: (R, G, B) = (R1 + m, G1 + m, G1+m).

Phương pháp nhận diện biển số xe (License Plate Recognition)

Phương pháp nhận diện biển số xe, hay còn gọi là License Plate Recognition (LPR), bao gồm ba bước chính: thu nhận hình ảnh từ camera, tách biển số xe và phân đoạn ký tự.

2.3.1 Thu nhận hình ảnh từ Camera : Đây là khâu quan trọng nhất của hệ thống bởi vì nếu ảnh chụp bị mờ hay nhiễu thì khi đưa vào nhận dạng sẽ không được.Để chụp ảnh thì ta có thể sử dụng Camera.Khi lựa chọn thiết bị thì ta cần quan tâm tới các thông số quyết định tới chất lượng ảnh như :

Độ phân giải hình ảnh ảnh hưởng trực tiếp đến chất lượng hiển thị; độ phân giải càng cao thì hình ảnh càng sắc nét Trong nhiều ứng dụng không yêu cầu độ rõ nét cao, độ phân giải 420 Television Lines (TV Lines) là lựa chọn chấp nhận được.

Hình 2.6 : Lines of Horizontal Resolution (LoHR).

Số điểm ảnh (CCD Total Pixels) là yếu tố quyết định chất lượng hình ảnh; số điểm ảnh càng cao thì chất lượng hình ảnh càng tốt Tuy nhiên, chất lượng hình ảnh tốt đồng nghĩa với dung lượng ảnh lớn, điều này ảnh hưởng đến bộ nhớ lưu trữ và tốc độ đường truyền.

- Điều kiện hoạt động của thiết bị :

Cường độ ánh sáng nhỏ nhất (Minimum Illumination) được đo bằng Lux, cho biết mức độ ánh sáng tối thiểu mà camera cần để hoạt động hiệu quả Trong điều kiện ánh sáng yếu, chỉ những camera có chức năng hồng ngoại mới có thể hoạt động Cụ thể, ánh nắng mặt trời có cường độ 4000 lux, trong khi trời có mây đạt 1000 lux Ánh sáng từ đèn tuýp có cường độ khoảng 500 lux, và khi trời có mây, cường độ giảm còn 300 lux Đối với đèn tuýp đỏ, cường độ ánh sáng cũng là 500 lux, trong khi đèn trắng là 300 lux và ánh sáng trắng sáng chỉ đạt 1 lux Đặc biệt, vào ban đêm không có trăng, cường độ ánh sáng chỉ còn 0.0001 lux.

Camera quan sát có chức năng Auto Iris là loại thiết bị thông minh, tự động điều chỉnh ánh sáng để cải thiện chất lượng hình ảnh Đặc điểm nổi bật của camera này là khả năng tự động khuyếch đại ánh sáng từ nguồn sáng nhỏ, giúp người dùng dễ dàng quan sát trong điều kiện ánh sáng yếu.

Nguồn cung cấp cho camera quan sát chủ yếu là 12 VDC và 24 VDC, với nhiều công ty cung cấp bộ chuyển đổi nguồn để sử dụng trực tiếp từ nguồn 220VAC Về nhiệt độ hoạt động, hầu hết các camera cho phép hoạt động trong dải từ -10°C đến 50°C; nếu sử dụng trong điều kiện khắc nghiệt, nên chọn camera chuyên dụng cho công nghiệp Độ ẩm cho phép thường là 90% RH, đảm bảo hiệu suất hoạt động của camera trong môi trường ẩm ướt.

2.3.2.1 Tổng quan về tách biển số :

Tách biển số là một bước quan rất quan trọng trong quá trình nhận dạng biển số xe.Khối tách biển số xe được chia làm 2 giai đoạn chính :

- Giai đoạn 1 : định vị trí của biển số trong ảnh chụp từ Camera.

- Giai đoạn 2 : dùng các giải thuật để cắt biển số xe ra khỏi ảnh chụp và xoay biển số xe về phương ngang.

Hình 2.7 : Sơ đồ tổng quát của khối tách biển số.

Việc định vị biển số xe dựa vào các đặc điểm như hình dạng và màu sắc của biển số so với nền Biển số xe thường có hình chữ nhật với kích thước chiều dài và rộng cố định Chúng ta có thể tìm các vùng có hình tứ giác và tính tỉ lệ giữa hai chiều của hình so với khoảng giá trị nhất định để xác định xem vùng đó có chứa biển số hay không Thêm vào đó, màu sắc của biển số cũng đóng vai trò quan trọng, với hầu hết các biển số xe Việt Nam có nền trắng và chữ đen Bằng cách kết hợp hai yếu tố này, chúng ta có thể xác định chính xác vùng chứa biển số.

Sau khi xác định vị trí biển số xe, chúng ta tiến hành cắt biển số theo hai bước Bước đầu tiên là cắt một vùng rộng hơn vùng chứa biển số, sau đó tìm góc nghiêng và xoay biển số về phương thẳng đứng Bước hai là cắt biển số ra khỏi vùng đã xác định Thực hiện quy trình cắt qua hai bước này giúp tăng độ chính xác, đảm bảo biển số được cắt nguyên vẹn mà không bị cắt phạm vào chữ Tuy nhiên, nếu ảnh bị chói, độ tương phản không đồng đều hoặc bị che khuất, kết quả tách biển số có thể không chính xác.

Phần tách biển số sử dụng rất nhiều giải thuật và phương pháp xử lý đối với ảnh số như sơ đồ sau đây:

Hình 2.8 : Sơ đồ chi tiết của khối tách biển số.

Để nhị phân hóa ảnh biển số màu trắng, chúng ta gán giá trị 1 cho các pixel trắng và 0 cho các pixel khác Quy trình bắt đầu bằng việc chuyển đổi ảnh gốc thành ảnh xám với độ sáng từ 0 đến 255 Sau đó, ảnh sẽ được nhị phân hóa dựa trên ngưỡng phù hợp: 120 cho ảnh chụp vào ban đêm hoặc ban ngày với ít ánh sáng, và 190 cho ảnh chụp vào ban ngày với nhiều ánh sáng.

Để xác định liệu một bức ảnh là sáng hay tối, người thực hiện đã sử dụng lược đồ mức xám (histogram) để phân tích tần số xuất hiện của các mức xám trong ảnh Cụ thể, nếu tần số xuất hiện của các pixel có giá trị nhỏ hơn 64, bức ảnh được coi là tối; ngược lại, nếu giá trị lớn hơn hoặc bằng 64, bức ảnh sẽ được xem là sáng.

Ví dụ cho hai ảnh gốc có biển số như sau:

Hình 2.9 : Ảnh tối và ảnh sáng. Ảnh sau khi nhị phân hóa sẽ như sau :

Hình 2.10 : Ảnh sau khi nhị phân. Đây là sơ đồ thuật giải của bước tìm và tách vùng màu trắng :

Hình 2.11 : Sơ đồ thuật giải tìm và tách vùng màu trắng.

2.3.2.3 Xác định vùng chứa biển số : Ảnh nhận được sau khi nhị phân hóa sẽ có nhiều vùng màu trắng, và biển số sẽ nằm trong vùng màu trắng thỏa điều kiện :

- Chiều cao là H { H = start(i).Boundingbox(4) }

- Chiều ngang là W { W = start(i).Boundingbox(3) }

- Diện tích vùng trắng là S_pixel_trắng { S_pixel_trắng = start(i).Area }

- Diện tích biển số là S_biển số{ S_biển số= W × H }

Tỉ số 2 kích thước của biển số là 0.75 nhưng khi bị nghiêng thì là 0.91.

Hình 2.12 : Hình dạng biển số khi bị nghiêng.

Sau khi áp dụng điều kiện đầu tiên, những vùng trắng không có biển số nhưng có tỉ số chiều cao và chiều ngang phù hợp vẫn có thể được chọn Tuy nhiên, điều kiện thứ hai sẽ loại bỏ những vùng này dựa trên diện tích Do khoảng cách cố định từ camera đến xe, số lượng pixel trắng trong biển số cũng sẽ ổn định Cuối cùng, điều kiện thứ ba xác định rằng nếu biển số thẳng hàng, tỉ số sẽ là 0.7, trong khi nếu biển số bị nghiêng, sự xuất hiện của pixel đen sẽ làm giảm tỉ số xuống còn 0.38.

Hình 2.13 : Biển số sau khi nhị phân.

2.3.2.4 Cắt vùng chứa biển số :

Sau khi xác định vùng chứa biển số, chúng ta tiến hành cắt biển số từ ảnh màu RBG Vì ảnh nhị phân và ảnh màu RBG có sự tương đồng, tọa độ của một pixel trên ảnh nhị phân sẽ tương ứng với tọa độ trên ảnh màu RBG Do đó, khi đã xác định tọa độ trên ảnh nhị phân, chúng ta sử dụng tọa độ này để thực hiện việc cắt trên ảnh màu RBG.

Khi cắt biển số ra khỏi ảnh, nếu biển số bị nghiêng, cần cắt theo hình chữ nhật lớn hơn kích thước thực tế của biển số Điều này giúp đảm bảo không mất thông tin quan trọng của biển số, bằng cách tạo ra một khoảng biên an toàn xung quanh.

Hình 2.14 : Hình thể hiện vùng ảnh cần tách ra với biên an toàn.

Trong chương trình, người thực hiện chọn vùng biên an toàn là 30 pixel.

Phương pháp phát hiện vi phạm vượt đèn đỏ và lấn làn

2.4.1 Phát hiện phương tiện vượt đèn đỏ : Để xác định được một phương tiện có vi phạm vượt đèn đỏ hay không ta cần thực hiện 2 bước :

Để xác định thời điểm đèn tín hiệu giao thông chuyển sang đèn đỏ, có nhiều phương pháp khác nhau như đồng bộ hóa thời gian hệ thống với thời gian đèn đỏ, sử dụng vi mạch tích hợp trong đèn giao thông để báo về máy xử lý, hoặc áp dụng công nghệ xử lý ảnh.

Khi đèn tín hiệu giao thông chuyển sang màu đỏ, nhiều phương tiện vẫn không dừng lại trước vạch mà tiếp tục di chuyển Có nhiều phương pháp để xác định các phương tiện vi phạm này, giúp nâng cao an toàn giao thông.

 Sử dụng camera : khi phương tiện vi phạm vào một vùng định sẵn trên camera là vùng vượt đèn đỏ thì xác định phương tiện đó vượt đèn đỏ.

2.4.1.1 Xác định thời điểm đèn tín hiệu giao thông chuyển sang đèn đỏ bằng phương pháp xử lý ảnh : a) Biến đổi Hough :

Biến đổi Hough là một kỹ thuật hiệu quả để tách các đặc điểm của hình dáng trong ảnh nhị phân Phương pháp này thường được sử dụng trong nhận diện đối tượng với hình dạng đa dạng Biến đổi Hough có khả năng giải quyết nhiều bài toán, từ việc tìm đường thẳng đơn giản đến các hình phức tạp như hình tròn, hình elip và các hình dạng khác, miễn là chúng có thể được biểu diễn bằng toán học.

Circle Hough Transform (CHT) là một phương pháp phát hiện một vật thể hình tròn.Biến đổi này được thực hiện như sau :

Với một phương trình đường tròn có dạng :

Trong một ảnh 2D, khi biết tọa độ tâm đường tròn (a, b) và bán kính r, ta có thể xác định được hình dạng của đường tròn Để phát hiện biên của đường tròn, phương pháp dò biên Canny có thể được áp dụng.

Kỹ thuật phát hiện biên Canny, được phát triển bởi John F Canny tại phòng thí nghiệm MIT vào năm 1986, là một phương pháp hiệu quả để phát hiện biên trong ảnh nhiễu Canny đã xác định các mục tiêu chính cho việc phát hiện biên và đề xuất một phương pháp tối ưu nhằm đạt được những mục tiêu này Phương pháp Canny đã trở thành một tiêu chuẩn trong lĩnh vực xử lý ảnh.

Canny đưa ra 3điểm chính mà một phương pháp phát hiện biên phải xác định được, đó là :

- Tỉ lệ sai thấp: Nghĩa là phải tìm ra tất cả các biên và không có đường biên nào bị bỏ sót.

Các điểm biên cần được xác định một cách chính xác, với khoảng cách giữa các điểm biên trong thuật toán và biên thực tế phải được tối ưu hóa để đạt được độ chính xác cao nhất.

- Đáp ứng điểm đơn biên: Không được phép chỉ ra nhiều biên trong khi chỉ có một biên tồn tại.

Thuật toán Canny được xây dựng dựa trên ba tiêu chí chính nhằm tìm ra giải pháp tối ưu cho việc phát hiện biên Canny giả định rằng nhiễu trong ảnh tuân theo phân bố Gauss, và ông coi phương pháp tìm biên như một bộ lọc chập có khả năng làm mịn nhiễu đồng thời xác định vị trí cạnh Thách thức lớn nhất là phát triển bộ lọc tối ưu nhất cho mục đích này.

Phương pháp xử lý ảnh xác định thời điểm đèn tín hiệu giao thông chuyển sang đèn đỏ được thực hiện trong đề tài qua các bước sau :

- Bước 1 : Tìm vùng đèn đỏ: khoanh vùng được vùng đèn đỏ trên Camera.

- Bước 2: Cắt vùng ảnh đèn đỏ ra để tiến hành xử lý.

Hình 2.49 : Khoanh vùng và cắt vùng đèn đỏ trên Camera.

Bước 3: Chuyển đổi không gian màu của ảnh đèn đỏ sang không gian màu HSV Ảnh được chụp từ camera thường là ảnh RGB Phép biến đổi từ RGB sang HSV đã được trình bày ở mục 2.2.2.

Hình 2.50 : Chuyển đổi ảnh vùng đèn đỏ từ không gian màu RGB sang HSV.

- Bước 4 : Lấy về ảnh kênh màu H (kênh màu Hue là kênh màu sắc) với bộ lọcCanny để lấy ra vùng biên của đèn đỏ hình tròn.

Hình 2.51 : Ảnh kênh màu Hue với bộ lọc Canny lấy ngưỡng mầu đỏ.

Bước 5: Áp dụng biến đổi Hough Circles để kiểm tra xem hình ảnh từ bước 4 có chứa hình tròn của đèn đỏ hay không Nếu phát hiện hình tròn, tín hiệu đèn đỏ sẽ được kích hoạt; ngược lại, nếu không có hình tròn, tín hiệu đèn đỏ sẽ được tắt.

2.4.1.2 Phát hiện phương tiện vượt đèn đỏ : Để xác định lỗi vi phạm vượt đèn đỏ của phương tiện tham gia giao thông cần sử dụng hình ảnh từ hai camera Camera 2 dùng để xác định đèn tín hiệu giao thông đang sáng ở đèn nào Camera 1 dùng để xác định phương tiện có dừng lại phía sau vạch dừng đèn đỏ hay không, nếu phát hiện vị trí của phương tiện vượt quá vạch dừng trong lúc trạng thái đèn tín hiệu giao thông đang sáng màu đỏ thì lỗi vi phạm vượt đèn đỏ được ghi nhận.

Hình 2.49 : Lỗi vi phạm vượt đèn đỏ. Để xác định được đèn đỏ ta thực hiện các bước sau :

- Phân vùng ảnh đèn đỏ.

Chuyển đổi ảnh từ định dạng RGB sang HSV, sau đó trích xuất kênh màu H để áp dụng thuật toán Hough Circle nhằm phát hiện vòng tròn của đèn đỏ Nếu đèn đỏ đang sáng, sẽ xuất hiện vòng tròn, ngược lại, nếu không sáng, sẽ không có vòng tròn nào.

2.4.2 Phát hiện phương tiện đi không đúng làn đường quy định : Để xác định lỗi đi không đúng làn đường quy định của phương tiện tham gia giao thông sử dụng hình ảnh từ Camera 02 (Camera phía sau).Khi phương tiện lấn qua vùng quy định là lấn làn thì hệ thống sẽ ghi nhận.

Hình 2.50 : Lỗi vi phạm đi không đúng làn đường quy định.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Biểu đồ phân cấp chức năng

Từ những chức năng ta xác định trong chương I.Ta xây dựng biểu đồ phân cấp chức năng hệ thống như sau :

Hình 3.1 : Biểu đồ phân cấp chức năng.

Chú thích hình vẽ trong biểu đồ phân cấp chức năng :

Hình 3.2 : Chú thích biểu đồ phân cấp chức năng.

Mô hình tổng quan hệ thống

Dựa trên các chức năng chính của hệ thống, chúng tôi đã xây dựng biểu đồ Use case tổng quan, mô tả mối tương tác giữa người dùng và hệ thống.

Hình 3.3 : Mô hình use case tổng quan về hệ thống.

Chú thích hình vẽ trong mô hình use case :

Hình 3.4 : Chú thích hình vẽ trong mô hình use case.

3.2.2 Danh sách các tác nhân và mô tả :

Tác nhân Mô tả tác nhân Ghi chú

Phụ trách giám sát, điều khiển hệ thống thông qua các chức năng được cung cấp.

Bảng 3.1 : Bảng danh sách các tác nhân và mô tả.

3.2.3 Danh sách use case và mô tả :

Dựa trên các chức năng con đã phân tích trong phần 3.1, chúng tôi đã xây dựng các biểu đồ Use case con để mô tả sự tương tác giữa người dùng và hệ thống Danh sách các biểu đồ Use case con được trình bày trong bảng dưới đây.

ID Tên Use Case Mô tả ngắn gọn Use Case Ghi chú

Module nhận dạng biển số xe

UC002 Nhận dạng biển số xe

Mô tả các chức năng nhận dạng biển số xe

Chức năng chính của chương trình nhận dạng biển số xe từ file ảnh, file video.

UC003 Phát hiện phương tiện vượt đèn đỏ

Mô tả chức năng phát hiện phương tiện vượt đèn đỏ

Chức năng được gọi khi menu phát hiện đèn đỏ được enable

UC004 Phát hiện phương tiện lấn làn

Mô tả chức năng phát hiện phương tiện lấn làn

Chức năng được gọi khi menu phát hiện lấn làn được enable Module truy vấn cơ sở dữ liệu

UC005 Truy vấn cơ sở dữ liệu

Chức năng truy vấn cơ sở dữ liệu bao gồm việc sao lưu thông tin về biển số xe vi phạm, cho phép người dùng tra cứu biển số xe vi phạm theo biển số cụ thể, cũng như tra cứu theo thời gian vi phạm Những chức năng này giúp nâng cao khả năng quản lý và theo dõi các vi phạm giao thông một cách hiệu quả.

Các chức năng được thực hiện qua các button trên giao diện chính.

Bảng 3.2 : Bảng danh sách các use case và mô tả.

Đặc tả các yêu cầu chức năng hệ thống (Functional)

Mỗi mô hình use case trong Bảng 3.2 đại diện cho một chức năng cụ thể của hệ thống Dưới đây, chúng ta sẽ mô tả chi tiết từng chức năng chính, bao gồm mục đích, mô tả chức năng, các tác nhân liên quan, và các điều kiện cần thiết để chức năng hoạt động hiệu quả.

3.3.1 Nhận dạng biển số xe : a) Mô hình use case :

Mục đích: Nhận dạng được biển số xe

Mô tả: Mô tả chức năng nhận diện biển số xe

Tác nhân: Người dùng Điều kiện trước:

- Người dùng phải có file ảnh hay file video về biển số xe

Luồng sự kiện chính (Basic flows)

1 Người dùng mở chương trình.

1.1.Người dùng tiến hành load hình ảnh bằng cách click vào menu Open Image Source.

1.2.Người dùng tiến hành load video bằng cách click vào menu Open Video Source.

3.1 Hệ thống nhận dạng biển số và hiển thị tại text box biển số xe.

3.2.Người dùng bấm nút bấm Bắt lỗi từ Camera để bắt được biển sô xe.Hệ thống sẽ nhận dạng biển số và hiển thị tại text box biển số xe

- Không load được file ảnh hoặc file video. Điều kiện sau: Hiển thị được biển sô xe

Bảng 3.3 : Bảng đặc tả chức năng nhận dạng biển số xe. b) Biểu đồ :

Nhận dạng biển số xe

Load hình ảnh và hiển thị

Capture video và hiển thị

Phát hiện biển số và cắt biển số

Hình 3.5 : Mô hình use case chức năng nhận diện biển số xe.

3.3.2 Phát hiện phương tiện vượt đèn đỏ : a) Mô hình use case :

Mục đích: Phát hiện được phương tiện vượt đèn đỏ

Mô tả: Khi đèn đỏ được bật thì hệ thống detect ra và phát hiện những phương tiện vi phạm vào vùng vượt đèn đỏ.

Tác nhân: Người dùng Điều kiện trước:

- Menu chức năng phát hiện đèn đỏ được bật.

- Detect ra được đèn đỏ được bật.

Luồng sự kiện chính (Basic flows)

1 Người dùng mở chương trình.

2 Người dùng chọn mở file video.

3 Người dùng enable menu phát hiện vượt đèn đỏ.

4 Hệ thống phát hiện đèn đỏ và nhận dạng biển số xe phương tiện vi phạm vùng đèn đỏ.

- Không load được file video. Điều kiện sau: Phát hiện được phương tiện vượt đèn đỏ

Bảng 3.4 : Bảng đặc tả chức năng phát hiện phương tiện vượt đèn đỏ. b) Biểu đồ :

Phát hiện phương tiện vượt đèn đỏ

Chọn vùng đèn đỏ và vùng phát hiện vượt đèn đỏ

Phát hiện vượt đèn đỏ

Hình 3.6 : Mô hình use case chức năng phát hiện vượt đèn đỏ.

3.3.3 Phát hiện phương tiện lấn làn : a) Mô hình use case :

Mục đích: Phát hiện được phương tiện lấn làn

Mô tả: Hệ thống phát hiện những phương tiện vi phạm vào vùng lấn làn.

Tác nhân: Người dùng Điều kiện trước:

- Menu chức năng phát hiện lấn làn được bật

Luồng sự kiện chính (Basic flows)

1 Người dùng mở chương trình.

2 Người dùng chọn mở file video.

3 Người dùng enable menu phát lấn làn được bật.

4 Hệ thống nhận dạng biển số xe phương tiện vi phạm vùng lấn làn.

- Không load được file video. Điều kiện sau: Phát hiện được phương tiện lấn làn

Bảng 3.5 : Bảng đặc tả chức năng phát hiện phương tiện lấn làn. b) Biểu đồ :

Phát hiện phương tiện lấn làn

Chọn vùng phát hiện lấn làn

Hình 3.7 : Mô hình use case chức năng phát hiện lấn làn.

3.3.4 Truy vấn cơ sở dữ liệu : a) Mô hình use case :

Mục đích: Truy vấn cơ sở dữ liệu : lưu biển số xe vi phạm, truy vấn biển số xe vi phạm theo biển số xe hoặc thời gian.

Mô tả: Lưu biển số xe vi phạm, truy vấn biển số xe vi phạm theo biển số xe hoặc thời gian.

Tác nhân: Người dùng Điều kiện trước:

- Hệ thống kết nối thành công tới cơ sở dữ liệu.

Luồng sự kiện chính (Basic flows)

1 Người dùng mở chương trình.

2.1 Người dùng bấm nút lưu biển số xe vi phạm khi phát hiện được biển số xe vi phạm.

2.2 Người dùng nhập biển số xe vào text box tìm kiếm biến số xe và bấm nút tìm kiếm.

2.3 Người dùng chọn khoảng ngày tháng rồi bấm nút thống kê.

Khi chọn dữ liệu ngày tháng, cần lưu ý rằng ngày bắt đầu không được lớn hơn ngày kết thúc Để đảm bảo quy trình xử lý diễn ra suôn sẻ, cần sao lưu và tra cứu biển số xe vi phạm từ cơ sở dữ liệu một cách chính xác.

Bảng 3.6 : Bảng đặc tả chức năng truy vấn cơ sở dữ liệu. b) Biểu đồ :

Truy vấn cơ sở dữ liệu

Sao lưu biển số xe vi phạm

Tra cứu biển số xe vi phạm theo biển số xe

Tra cứu biển số xe vi phạm theo thời gian

Hình 3.8 : Mô hình use case chức năng truy vấn cơ sở dữ liệu.

Thiết kế giao diện chương trình

Picture Box hiển thị ảnh hay video gốc Picture Box hiển thị ảnh capture Picture Box hiển thị ảnh biển số

Lỗi vi phạm Thống kê Tra cứu vi phạm

Nhập biển số xe vi phạm

Nhập ngày tìm bắt đầu Nhập ngày tìm kết thúc

Biển số xe vi phạm

Lưu cơ sở dữ liệu

Hình 3.9 : Giao diện chính của chương trình.

XÂY DỰNG VÀ CÀI ĐẶT

Ngày đăng: 18/08/2022, 12:49

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Phạm Hữu Khang. Kỹ thuật lập trình ứng dụng C#.Net. Tập 2, tập 3 - Nhà xuất bản Lao Động – Xã hội., 2002.Tiếng Anh Sách, tạp chí
Tiêu đề: Kỹ thuật lập trình ứng dụng C#.Net". Tập 2, tập 3 - Nhàxuất bản Lao Động – Xã hội., 2002
Nhà XB: Nhàxuất bản Lao Động – Xã hội.
[5] Jesse Liberty. Programing C#. Publisher: O'Reilly, First Edition July 2001, ISBN: 0-596-00117-7, 680 tr.Trang Web Sách, tạp chí
Tiêu đề: Programing C#. "Publisher: O'Reilly, First Edition July 2001,ISBN: 0-596-00117-7, 680 tr
[8] Trang web: http://duriangroup.wordpress.com[9] Trang web: http://dot.net.vn Link
[10] Trang web: http://congdongcviet.com/ Link
[1] GS.TSKH. Hoàng Kiếm, TS. Đỗ Phúc, TS. Đỗ Văn Nhơn, Giáo trình môn Cơ Sở Tri Thức và ứng dụng Khác
[2] GS.TSKH.Hoàng Kiếm.Chuyên đề Công nghệ tri thức và ứng dụng Khác
[3] Nguyễn Thanh Bình. Phân tích và thiết kế hệ thống hướng đối tượng Khác
[6] Wikipedia www.wikipedia.org/wiki/ Khác
[7] Trang web: www.codeproject.com Khác

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

TÀI LIỆU LIÊN QUAN

w