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

Báo cáo môn học trí tuệ nhân tạo đề tài ứng dụng kỹ thuật học máy trong nhận dạng biển số xe

20 16 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 đề Ứng dụng kỹ thuật học máy trong nhận dạng biển số xe
Tác giả Đỗ Trung Nghĩa, Nguyễn Ngọc Ánh, Hà Thị Ngọc Lan, Phùng Quang Nhật, Lê Văn Thao
Người hướng dẫn Th.S Đoàn Thị Thanh Hằng
Trường học Trường đại học công nghệ GTVT
Chuyên ngành Trí tuệ nhân tạo
Thể loại Báo cáo môn học
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 3,81 MB

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

Nội dung

Tổng quan các bước thực hiện: - Bao gồm 4 bước như trên để phát hiện biển số: Định vị biển số Bước 1: hay còn gọi là phát hiện biển số: tìm khung chữ nhật gồm x, y, width, height bao lấy

Trang 1

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

Báo cáo môn học: Trí tuệ nhân tạo

Đề tài: Ứng dụng kỹ thuật học máy trong nhận dạng biển số xe

Giảng viên hướng dẫn : Th.S Đoàn Thị Thanh Hằng

Nhóm 9 - Lớp: 70DCTT23

Hà Nội, tháng 12 năm 2021

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT

KHOA CÔNG NGHỆ THÔNG TIN

Báo cáo môn học: Trí tuệ nhân tạo

Đề tài: Ứng dụng kỹ thuật học máy trong nhận dạng biển số xe Giảng viên hướng dẫn : Th.S Đoàn Thị Thanh Hằng

Nhóm 9 - Lớp: 70DCTT23 Thành viên

Đỗ Trung Nghĩa Nguyễn Ngọc Ánh

Hà Thị Ngọc Lan Phùng Quang Nhật

Lê Văn Thao

Hà Nội, tháng 12 năm 2021

Trang 3

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU 3

1.1 Đặt vấn đề: 4

1.2 Bố cục đề tài: 4

CHƯƠNG 2: TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG BIỂN SỐ XE 5

2.1.Trạng thái bài toán: 5

2.2 Tổng quan các bước thực hiện: 5

CHƯƠNG 3: QUY TRÌNH NHẬN DẠNG BIỂN SỐ XE 7

3.1 Tách biển số xe: 7

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

3.1.2 Tìm vùng màu trắng: 8

3.1.3 Xác định vùng chứa biển số: 9

3.1.4 Khử nhiễu: 10

3.1.5 Chỉnh mức xám: 10

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

3.1.7 Cắt biển số chính xác: 12

3.2 Định vị ký tự: 12

3.2.1 Tổng quan về định vị kí tự: 12

3.2.2 Nhị phân biển số xe: 13

3.2.3 Chuẩn hóa biển số xe: 14

3.2.4 Phân đoạn ký tự 15

3.3.Nhận dạng ký tự(SVM) 18

3.1 SVM hoạt động như thế nào 18

3.2 Margin trong SVM 19

3.3 Ứng dụng 20

Trang 4

CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề:

Ngày nay trên thế giới bên cạnh việc tăng trưởng kinh tế là sự phát triển của các ngành khoa học kỹ thuật nói chung, mà trong đó ngành công nghiệp sản xuất các phương tiện giao thông lại là một trong những ngành có tốc độ phát triển cực nhanh Sự phát triển

ấy, được thể hiện rõ ràng nhất thông qua hình ảnh các phương tiện giao thông trên thế giới ngày một tăng cao và đa dạng Tuy nhiên, điều đó lại gây ra một áp lực đối với những người và cơ quan các cấp quản lý, làm cho công tác quản lý và giám sát sẽ khó khăn hơn

1.2 Bố cục đề tài:

Chương 2 bao gồm trạng thái bài toán và các bước thực hiện nhận diện biển số xe Chương 3 bao gồm các quy trình nhận dạng biển số xe Phần cuối là kết luận và tài liệu tham khảo

Trang 5

CHƯƠNG 2: TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG BIỂN SỐ XE 2.1.Trạng thái bài toán:

Hình 2.1: Sơ đồ tổng quát

2.2 Tổng quan các bước thực hiện:

- Bao gồm 4 bước như trên để phát hiện biển số:

Định vị biển số

Bước 1: hay còn gọi là phát hiện biển số: tìm khung chữ nhật gồm (x, y, width, height) bao lấy biển số trong ảnh Nếu tìm thấy thì cắt biển số ra để xử lý bước tiếp theo, kết quả của bước này là ảnh biển số đã cắt

Trang 6

Hình 2.2: Mẫu tách biển số Bước 2: Định vị ký tự hay còn gọi là tìm vị trí của ký tự trên biển số đã cắt Kết quả của bước này là các ký tự màu đen, sau đó resize tất cả về cùng 1 kích thước Bước này dùng thuật toán

Hình 2.3: Mẫu tách kí tự Bước 3: Nhận dạng ký tự bằng thuật toán Machine Learning, trong trường hợp này

là SVM để phân lớp các ký tự

Hình 2.4: Mẫu nhận diện kí tự

 Cuối cùng là dùng SVM để nhận dạng ký tự

Bước 4: Sắp xếp các kết quả nhận dạng và hiển thị ký tự theo định dạng biển số xe máy

Trang 7

CHƯƠNG 3: QUY TRÌNH NHẬN DẠNG BIỂN SỐ XE 3.1 Tách biển số xe:

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

Bước 1: Định nghĩa vài thông số cho bài toán như: Kích thước biển số lớn nhất và kích thước biển số nhỏ nhất Tùy bài toán mà định nghĩa Ví dụ bài toán trông xe vào bãi thì camera để gần, kích thước biển số to hơn nhưng nếu bài toán nhận diện xe đi qua cửa bằng camera trên cao chẳng hạn thì kích thước biển số sẽ nhỏ hơn

Bước 2: Load ảnh và thực hiện resize(thay đổi) về kích thước mong muốn

Bước 3: Chuyển về đen trắng và thực hiện thuật toán tìm cạnh

Bước 4 Tìm các viền có trong hình.:

Bước 5: Với các viền tìm được ở bước 4, lặp qua 1 lượt và chọn viền lớn nhất hội đủ các điều kiện:

 Có 4 cạnh (sau khi đã approx): vì biển số là đối tượng có 4 cạnh

 Có kích thước nằm trong vùng kích thước đã định nghĩa ở bước 1

 Contour đó sẽ là biển số chúng ta cần tìm

Bước 6: Tiến hành tìm các điểm góc của viền nói trên và trích hình ảnh biển số ra khỏi hình ảnh của xe

Hình 3.1: Sơ đồ tổng quát xác định vùng chứa biển số xe

Trang 8

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

3.1.2 Tìm vùng màu trắng:

- Vì biển số màu trắng nên người thực hiện sẽ nhị phân hóa ảnh bằng cách gắn giá trị cho các pixel trắng là 1, còn ngược lại là 0

 Đầu tiên, chúng ta sẽ biến đổi ảnh gốc thành ảnh xám (có mức sáng từ 0 đến 255), sau đó nhị phân hóa với một ngưỡng thích hợp

 Nếu ảnh được chụp vào ban đêm hay ban ngày nhưng ít ánh sáng thì mức ngưỡng sẽ là 120 Còn ban ngày, nhiều ánh sáng là 190

- Vấn đề ở đây là làm sao chúng ta nhận biết được đó là ảnh sáng hay ảnh tối? Người thực hiện đã dựa vào lược đồ mức xám ( histogram – tần số xuất hiện của mức xám) của ảnh Nếu tần số xuất hiện các pixel có giá trị <64 thì đó là ảnh tối, ngược lại là ảnh sáng

- Ví dụ cho 2 ảnh gốc có biển số như nhau:

Trang 9

Hình 3.3: Ảnh sáng tối.

Ảnh sau khi nhị phân hóa sẽ như sau:

Hình 3.4: Ảnh sau khi nhị phân

3.1.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:

 0.75 < chiều cao / chiều ngang < 0.91

 16000 ≤ S_pixel_trắng ≤ 61000

 ≤ S_pixel_trắng / S_biển số ≤ 0.7

- Với:

 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

Trang 10

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

- Sau điều kiện thứ nhất, sẽ có những vùng trắng không chứa biển số nhưng có tỉ số giữa chiều cao và chiều ngang phù hợp thì vẫn được chọn Ta sẽ loại bỏ những vùng này bằng điều kiện thứ hai – diện tích vùng trắng Vì khoảng cách từ webcam tới xe cố định (ta lấy trước khoảng cách chụp ) nên số lượng pixel trắng chứa trong biển số cố định

- Đối với điều kiện thứ ba, nếu biển số nằm ngay ngắn thì tỉ số là 0.7 còn nếu biển

số bị nghiêng, sẽ xuất hiện pixel đen nên tỉ số này giảm còn 0.38

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

3.1.4 Khử nhiễu:

Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh:

 Nhiễu hệ thống: là nhiễu có quy luật có thể thử bằng các phép biến đổi

 Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân -> khắc phục bằng các phép lọc

3.1.5 Chỉnh mức xám:

Trang 11

- Nhằm khắc phục tính không đồng đều của hệ thống gây ra Thông thường có hai hướng tiếp cận:

 Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành một bó trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng

 Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh

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

- Sau khi xác định được vùng nào chứa biển số, ta tiến hành cắt biển số trên ảnh màu RBG Do sự tương đồng của ảnh nhị phân và ảnh màu RBG nên toạ độ một pixel trên ảnh nhị phân tương ứng tọa độ trên ảnh màu RBG Do đó khi xác định được tọa độ trên ảnh nhị phân, ta dùng tọa độ này để cắt trên ảnh màu RBG

- Khi ta cắt biển số ra khỏi ảnh mà biển số bị nghiêng thì ta tiến hành cắt theo hình chữ nhật lớn hơn hình chữ nhật lớn thực sự một lượng biên an toàn để tránh việc mất thông tin biển số

Hình 3.7: 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 Trong bước này, ta không cắt biển số ra khỏi ảnh ngay mà chỉ cắt vùng chứa biển số Việc cắt này có thể xem như là cắt thô

Trang 12

Hình 3.8: Ảnh chụp ban đầu

Hình 3.9: Ảnh sau khi cắt thô

3.1.7 Cắt biển số chính xác:

- Sau khi xoay biển số về phương thẳng đứng ta thực hiện việc cắt biển số Đây là một việc rất quan trọng, kết quả của nó quyết định tới kết quả của hệ thống nhận dạng biển số

- Ta thực hiện lại việc chọn vùng biển số nhưng với biên là 0 pixel và 3 điều kiện chính xác hơn:

 1600 < diện tích vùng trắng < 6100

 0.73 < width/height < 0.77

 0.6 < số pixel trắng / số pixel đen < 0.7

Hình 3.10: Biển số sau khi cắt hoàn chỉnh

- Sau khi cắt được biển số ta tiến hành phân đoạn ký tự

3.2 Định vị ký tự:

3.2.1 Tổng quan về định vị kí tự:

Kết quả của khối tách biển số là một ảnh màu RGB có chứa biển số xe Để nhận dạng các ký tự trong biến số, ta tiến hành phân đoạn ký tự trong biến số Phân đoạn ký tự

là việc cắt các ký tự trong biển số xe

Trang 13

Sau khi nhận kết quả của khối tách biển số, khối phân đoạn ký tự bắt đầu tiến hành tách từng ký tự trong biến số Trước khi phân đoạn ký tự, ảnh của biến số được chuyển thành ảnh nhị phân Ảnh nhị phân được chuẩn hóa về kích chuẩn, sau đó tiến hành cắt các ký tự Kết quả của quá trình phân đoạn là một ma trận chứa các ảnh đen trắng của ký tự

Hình 3.11: Sơ đồ khối phân đoạn ký tự

3.2.2 Nhị phân biển số xe:

- Đây là bước quan trọng để nhận dạng biển số xe Bước này sẽ tìm mức ngưỡng tối

ưu, sau đó tiến hành nhị phân hóa ảnh với ngưỡng vừa tìm được ( nhằm làm tăng độ tương phản của ký tự với nền biển số)

- Vì đôi khi biển số xe được chụp có độ sáng không đồng nhất mà có thể chuyển dần

từ sáng sang tối hoặc ngược lại Đây là lý do chính mà tách ngưỡng toàn phần (global thresholding) bị lỗi Chính vì lý do này mà em đã chọn tách ngưỡng thích ứng (adaptive thresholding) để nhị phân hóa ảnh đầu vào Tách ngưỡng thích ứng tốt hơn tách ngưỡng toàn phần trong đa số trường hợp nhưng lại làm cho chương trình chậm hơn do có tính ngưỡng cục bộ cho từng pixel

- Nếu ảnh lớn, độ phân giải cao thì đây là một vấn đề Tuy nhiên biển số xe có kích thước khá nhỏ nên tốc độ chương trình sẽ không bị ảnh hưởng mấy

Trang 14

Hình 3.12: Ảnh qua quá trình nhị phân hóa

3.2.3 Chuẩn hóa biển số xe:

Biển số xe được chuẩn hóa sau đó được lấy bù

Hình 3.13: Hình sau khi chuẩn hóa

Trang 15

Hình 3.14: Thuật toán giải chuẩn hóa biển số

3.2.4 Phân đoạn ký tự

Ma trận nhị phân của biến số chính là ngõ vào chương trình phân vùng ký tự Trước khi phân vùng ký tự, ta chia ma trận ảnh biển số thành từng hàng và lần lượt đưa từng hàng vào chương trình phân vùng Tuy nhiên ở đây, ta chỉ tiến hành nhận dạng ký tự của hàng 2 nên ta chỉ ngõ của chương trình phân vùng ký tự là ma trận của hàng 2

Để phân chia thành nhiều ma trận ký tự từ ma trận biến số, ta dựa vào tổng số pixel mức 1 ( mức 1 là màu trắng - màu của ký tự, mức 0 là màu đen - màu nền ) Với ma trận của hàng 2 sau khi đã chia đôi, giữa 2 ký tự có rất ít pixel có mức 1 ( trong trường hợp lý tưởng, thì sẽ là mức 0 ) Như vậy khi cộng giá trị các pixel theo từng cột, như hình

ta thấy giá trị tại các vùng giữa 2 ký tự thấp ( đây cũng à tổng số pixel mức 1 ) Từ đó, giải thuật phân vùng sẽ những vùng này vào giá trị của nó nhỏ hơn những vùng lân cận

và sẽ phân chia theo từng vùng Ở đây, ta sẽ tìm 4 phân vùng với 4 ký tự

Hình 3.15: Tổng số các bit theo 1 hàng của biển số Chương trình có lựa chọn 2 thông số: Min_area và digit_width

 Min_area là diện tích cho phép nhỏ nhất của 1 ký tự, là tích của giá trị cột lớn nhất với độ rộng của phân vùng đó

Trang 16

Hình 3.16: Hình thể hiện thông số Min_area

 Digit_width là độ rộng tối đa cho phép của 1 phân vùng ký tự

Hình 3.17: Hình thể hiện thông số Digit_width

 Sau khi phân vùng được các ký tự ta tiến hành cắt các ký tự ra khỏi biến số

Trang 17

Hình 3.18: Các ký tự được cắt khỏi biển số

 Dưới đây là sơ đồ giải thuật phân vùng 9 ký tự trên biển số xe:

Hình 3.19: Giải thuật phân vùng ký tự

3.2.4.1 Chương trình chia đôi biển số

Đây là chương trình đơn giản, biến số sau khi được chuẩn hóa về kích thước [50 150] thì kích thước từng hàng sau khi chia đôi là [25 150]

3.2.4.2 Chương trình phân vùng từng ký tự

Trang 18

- Chương trình con này thực hiện việc tìm vùng ranh giữa 2 ký tự, tương ứng giữa

2 vùng ranh giới liên tiếp sẽ là vùng ký tự, chương trình sẽ trả về vị trí của vùng ký tự Tuy nhiên, chương trình cũng có thể trả về vùng ký tự lớn hơn 9 do ảnh hưởng của môi trường Trường hợp này ta vẫn có thể tối ưu chương trình để tăng độ chính xác

- Với kết quả trả về nhỏ hơn 9, ta sẽ xóa xá pixel tại các vùng ranh giới ( gần các giá trị bằng 0 ) Điều này làm cho việc thực hiện chương trình chính xác hơn

- Với kết quả trả về lớn hơn 9 ( nghĩa là có 1 hay nhiều vùng không chứa ký tự ), ta

sẽ lấy 9 vùng có diện tích lớn nhất ( thông thường vùng không có ký tự nhỏ hơn các vùng

có ký tự)

3.3.Nhận dạng ký tự(SVM)

3.1 SVM hoạt động như thế nào

- Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ liệu Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một loại dữ liệu

 Quy tắc 1: để chọn 1 hyper-lane, chọn một hyper-plane để phân chia hai lớp tốt nhất Trong ví dụ này chính là đường B

đến đường hyper-plane Trong hình dưới đây là đường C

Trang 19

 SVM có khả năng mạnh trong việc chấp nhận ngoại lệ

3.2 Margin trong SVM

Trang 20

Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương ứng với các phân lớp Trong ví dụ quả táo quả lê đặt trên mặt bàn, margin chính là khoảng cách giữa cây que và hai quả táo và lê gần nó nhất Điều quan trọng ở đây đó là phương pháp SVM luôn cố gắng cực đại hóa margin này, từ đó thu được một siêu phẳng tạo khoảng cách xa nhất so với 2 quả táo và lê Nhờ vậy, SVM có thể giảm thiểu việc phân lớp sai (misclassification) đối với điểm dữ liệu mới đưa vào

3.3 Ứng dụng

- Thuật toán: với mỗi ảnh 2D chuyển thành ảnh 1D Sau đó ghép các ảnh 1D thành ảnh 2D dùng để huấn luyện

- Ảnh ký tự 2D và chuyển sang 1D

Ngày đăng: 13/07/2023, 16:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w