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

Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone

64 1,2K 1

Đ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

Định dạng
Số trang 64
Dung lượng 7,35 MB

Nội dung

Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH

KHOÁ LUẬN TỐT NGHIỆP

NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE TRÊN ANDROID SMARTPHONE

Giảng viên hướng dẫn: TS NGUYỄN ANH TUẤN

Sinh viên thực hiện: NGUYỄN PHƯỢNG ĐÔN - 08520091

NGUYỄN ĐỨC PHÚ - 08520284 Lớp: KTMT03

Khóa: 03

TP Hồ Chí Minh, tháng 2 năm 2013

Trang 2

Vấn đề nhận dạng nói chung và nhận dạng biển số xe nói riêng là bài toán thuhút được sự quan tâm nghiên cứu của nhiều nhà khoa học trên thế giới, đặc biệt

là trong những năm gần đây khi các thiết bị di động như điện thoại di động, máytính bảng ra đời và phổ biến, công với nhu cầu thiết thực hỗ trợ giải quyết vấn đềtrong đời sống như tự động hóa trong các bãi giữ xe,trạm cân, rửa xe hay kiểmsoát lưu lượng, kiểm soát an ninh

Nội dung khóa luận trình bày về nhận dạng biển số xe sử dụng mô hình mạngneural với ứng dụng trên hệ điều hành Android Hướng tiếp cận dựa trên diệnmạo, dùng bộ phân loại mạnh AdaBoots – là sự kết hợp của các bộ phân loại yếudựa trên các đặc trưng Haar-like – để phát hiện vùng chứa biển số, phương pháphình thái học để tiến hành thực hiện phân tách kí tự và nhận dạng kí tự bằngphương pháp được sử dụng phổ biến nhất là mạng neural (neural network) Hệthống đã được thử nghiệm trên thực tế, trong môi trường đủ sáng, thiếu sáng vớimẫu nhận dạng đứng yên bước đầu cho kết quả tốt

Từ khóa: neural network, android, automatic number plate recognition, ANPR,Kohonen network

Trang 3

LỜI CẢM ƠN

Lời đầu tiên chúng em xin được bày tỏ lòng biết ơn sâu sắc nhất tới TS NguyễnAnh Tuấn, khoa Mạng máy tính và Truyền Thông, Đại học Công Nghệ Thôngtin, người đã tận tình hướng dẫn chúng em trong suốt thời gian làm khóa luận tốtnghiệp

Tiếp đến chúng em xin được bày tỏ lòng biết ơn tới các giảng viên khoa Kỹ ThuậtMáy Tính, trường Đại học Công nghệ thông tin – ĐH Quốc Gia TPHCM Cácthầy cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng

em học tập trong suốt những năm đại học, đặc biệt là trong thời gian làm khóaluận tốt nghiệp

Chúng tôi xin cảm ơn các bạn sinh viên lớp KTMT03 trường Đại học Công nghệthông tin, những người bạn nhiệt tình giúp đỡ chúng tôi trong suốt những nămhọc đại học và quá trình thực hiện khóa luận

Cuối cùng lời cảm ơn xin được gửi tới những người thân trong gia đình đã luônbên cạnh động viên, tạo những điều kiện tốt nhất để hoàn thành khóa luận này

TP Hồ Chí Minh, ngày 24 tháng 02 năm 2013

Nguyễn Phượng Đôn - Nguyễn Đức Phú

Trang 4

(Của giảng viên hướng dẫn)

Trang 5

NHẬN XÉT

(Của giảng viên phản biện)

Trang 6

Mục lục v

1.1 Tên khóa luận 1

1.2 Nội dung và giới hạn khóa luận 1

1.2.1 Nội dung khóa luận 1

1.2.2 Giới hạn của khóa luận 3

1.3 Cấu trúc khóa luận 3

2 Tổng quan 4 2.1 Khảo sát 4

2.2 Tổng kết chương 9

3 Hệ thống nhận dạng biển số 11 3.1 Phát hiện vùng chứa biển số xe 11

3.1.1 Đặc trưng Haar-like 12

3.1.2 AdaBoost 14

3.1.3 Hệ thống xác định vùng chứa biển số xe 16

3.1.4 Huấn luyện bộ phân loại 17

3.2 Tách kí tự 20

3.2.1 Chuẩn hóa kích thước ảnh 21

3.2.2 Chuyển đổi ảnh màu về ảnh xám 22

3.2.3 Tăng tính tương phản bằng thuật toán cân bằng hóa lược đồ xám 23

3.2.4 Xác định ngưỡng, nhị phân hóa ảnh 24

3.2.5 Tìm biên, xác định các đường viền (contour) của ảnh nhị phân 26

Trang 7

MỤC LỤC

3.2.6 Tách kí tự dựa trên đặc tính hình thái học 26

3.3 Nhận dạng kí tự 27

3.3.1 Mạng neural sinh học 28

3.3.2 Mạng neural nhân tạo 28

3.3.3 Mạng neural Kohonen 32

3.3.4 Ánh xạ ma trận điểm ảnh vào ma trận giá trị 38

3.4 Tổng kết chương 39

4 Hiện thực hệ thống nhận dạng biển số xe trên android smartphone 41 4.1 Sơ lược hệ điều hành Android 41

4.2 Tính năng của ứng dụng 43

4.3 Cấu trúc ứng dụng 43

4.3.1 Phần Java 44

4.3.2 Phần thư viện 44

4.4 Các lớp trong ứng dụng 44

4.5 Chương trình huấn luyện mạng Kohonen 47

4.6 Hiệu chỉnh kết quả dựa trên cú pháp 49

4.7 Kết quả thực nghiệm 49

4.8 Tổng kết chương 49

5 Kết luận và hướng phát triển 51 5.1 Những kết quả đạt được 51

5.2 Hướng phát triển 52

Trang 8

2.1 Hệ thống nhận dạng được trang bị cho xe tuần tra 5

2.2 Thiết bị thu nhận dữ liệu hình ảnh trên xe 5

2.3 Hệ thống nhận dạng trên xe tuần tra của cảnh sát Úc 6

2.4 Ứng dụng nhận dạng của Biển Bạc ANPR 7

2.5 Ứng dụng nhận dạng trên máy bắn tốc độ 8

2.6 Thiết lập bản ghi CSDL xe vi phạm vượt tốc độ của MT-ATGT2012 8

2.7 Giao diện của ứng dụng MT-BSX 9

3.1 Các dạng cơ bản của đặc trưng Haar-like 12

3.2 Cách tính Integral Image của ảnh 13

3.3 Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh 14

3.4 Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định biển số 15

3.5 Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 16

3.6 Hệ thống xác định vùng chứa biển số xe 16

3.7 Ảnh chụp màn hình quá trình chạy huấn luyện 20

3.8 So sánh các phương thức resize ảnh 22

3.9 Ví dụ về các lớp của một bức ảnh RGB 23

3.10 Chuyển ảnh màu sang ảnh trắng đen 23

3.11 Tăng tính tương phản bằng phương pháp cân bằng lược đồ xám 24

3.12 Cách xác định ngưỡng động 25

3.13 Nhị phân hóa ảnh bằng phương pháp tìm ngưỡng 25

3.14 Thực hiện xác định các đường viền từ ảnh nhị phân 26

3.15 Xác định được các kí tự trên biển số 27

3.16 Các kí tự được tách riêng rẽ 27

3.17 Mô hình mạng neural sinh học 28

3.18 Biểu diễn một neural nhân tạo 30

3.19 Một dạng mạng neural Kohonen 33

3.20 Sơ đồ khối biểu diễn huấn luyện mạng neural Kohonen 37

Trang 9

DANH SÁCH HÌNH VẼ

3.21 Chia lưới kí tự 38

3.22 Ánh xạ ma trận điểm ảnh vào ma trận giá trị 39

4.1 Ảnh chụp màn hình của ứng dụng đang chạy 43

4.2 Sơ đồ lớp chính của ứng dụng 45

4.3 Sơ đồ lớp của mạng neural Kohonen 46

4.4 Ảnh chụp màn hình chương trình huấn luyện mạng Kohonen 48

4.5 Tập kí tự dùng cho việc huấn luyện 48

Trang 10

3.1 Mẫu đầu vào của mạng Kohonen 33

3.2 Trọng số kết nối giữa các neuron trong mạng 33

4.1 Kết quả thử nghiệm 1 49

Trang 11

Chương 1

Giới thiệu

1.1 Tên khóa luận

Nghiên cứu xây dựng chương trình nhận dạng biển số xe trên android smartphone

1.2 Nội dung và giới hạn khóa luận

1.2.1 Nội dung khóa luận

Cùng với sự phát triển kinh tế, gia tăng dân số và nhu cầu đi lại, số lượng các phương tiệntham gia giao thông nói chung và xe máy nói riêng xuất hiện ngày càng nhiều Điều này đặt

ra một yêu cầu lớn trong việc kiểm soát và quản lý loại phương tiện này Thực trạng tại cácđiểm trông giữ xe ở các đô thị lớn tại Việt Nam hiện nay cho thấy một vấn đề bất cập: việc

xử lý thủ công (ghi biển số xe) gây tốn kém tiền thuê nhân công và không hiệu quả, nhất là

ở những bãi đậu xe lớn Một số bãi đỗ xe áp dụng phương pháp quản lý thông minh như ởcác tòa nhà chung cư cao tầng, BigC , tuy nhiên các hệ thống này không phải là tự động

mà là có sự giám sát của các nhân viên trông giữ xe, nguyên tắc hoạt động của chúng đơngiản như sau: đầu tiên camera ghi hình biển số xe và lưu vào cơ sở dữ liệu, tiếp đó một thẻ từđược quẹt qua đầu đọc và chứa thông tin hình ảnh của biển số xe vừa chụp Thẻ từ này đượcgiao cho người gửi xe Khi lấy xe ra, người gửi xe quẹt thẻ qua đầu đọc, mã số thẻ sẽ được sosánh và hiện hình ảnh chụp biển số xe trước đó, nhân viên sẽ quan sát xem biển số xe đã lấy

ra và biển số xe lúc gửi trong cơ sở dữ liệu có trùng nhau không, nếu trùng thì cho qua, nếukhông trùng thì yêu cầu dừng lại Việc này giảm bớt được nhiều công sức trong việc quản lý

xe như ghi vé, xé vé nhưng thực chất về mặt kĩ thuật là đơn giản, ta chỉ cần một camera,một máy tính và một đầu đọc thẻ là làm được Nó không phải là hệ thống nhận dạng biển số

xe tự động

Trang 12

Một yêu cầu đặt ra là cần xây dựng các hệ thống tự động Một trong những hệ thống tự độngnhư vậy là hệ thống tự động nhận dạng biển số xe, đặc trưng của nó là có khả năng thu nhậnhình ảnh cũng như "đọc" và "hiểu" các biển số xe một cách tự động.

Hệ thống như vậy có thể được sử dụng trong rất nhiều ứng dụng như: trạm cân và rửa xe tựđộng hoàn toàn, bãi giữ xe tự động, các hệ thống kiểm soát lưu lượng giao thông hay trongcác ứng dụng về an ninh như tìm kiếm xe mất cắp

Hiện nay nhiều phần mềm đã phát triển trong việc nhận dạng biển số, nhưng đa phần hoạtđộng trên máy tính và các camera được đặt cố định tại một vị trí Với việc bùng nổ thiết bị diđộng cũng như phần cứng và ứng dụng phát triển theo nó, nhu cầu nhận dạng nói chung vànhận dạng biển số xe nói riêng trên thiết bị cầm tay đang là nhu cầu thiết yếu, nó hỗ trợ rấtnhiều trong đời sống hằng ngày, như giúp các chiến sĩ công an đi tuần có được thông tin củachủ phương tiện cũng như phát hiện được xe bị mất cắp thông qua biển số xe

Qua những tìm hiểu trên nhóm đã hướng tới nghiên cứu và phát triển phần mềm nhận dạngbiển số xe trên thiết bị di động với hệ điều hành Android

Việc nhận dạng kí tự trên thiết bị di động không phải mới, nhiều ứng dụng hoạt động rất tốt,

có độ chính xác cao ở trong và ngoài nước Nhiều mã nguồn mở hỗ trợ mạnh mẽ trong việc

xử lý hình ảnh cũng như nhận dạng Nhưng việc nhận dạng mới thực hiện trên văn bản, chưaxuất hiện nhận dạng trên biển số xe Đặc biệt các kí tự trên biển số khác so với các kí tự trênvăn bản, nên muốn nhận dạng được ta phải làm cho ứng dụng hiểu được các kí tự này

Khóa luận sử dụng sự hỗ trợ khá mạnh trong việc xử lí hình ảnh của mã nguồn OpenCV đểnhận dạng vùng biển số cũng như thao tác trên nó, trong giai đoạn nhận dạng kí tự có sửdụng mạng neural network cơ bản Kohonen để nhận dạng Việc kết hợp này bước đầu giúpquá trình phát triển ứng dụng linh hoạt hơn, mang lại hiệu quả khá cao

Khóa luận sẽ làm những việc sau:

1 Tổng hợp dữ liệu cho quá trình huấn luyện hệ thống

2 Tiền xử lý ảnh thu được từ Camera của thiết bị

3 Huấn luyện hệ thống nhằm phát hiện vùng chứa biển số

4 Tách các kí tự có trên biển số

Trang 13

Chương 1 Giới thiệu

5 Nhận dạng các kí tự và hậu xử lí

1.2.2 Giới hạn của khóa luận

Nhận dạng biển số có nhiều vấn đề cần giải quyết, mỗi nước khác nhau có quy định về kíchthước cũng như kí tự riêng khác nhau, bên cạnh đó mỗi loại xe lại có các quy định khác nữa.Quá trình nhận dạng còn phụ thuộc vào điều kiện môi trường, và camera thu nhận ảnh trênthiết bị Do tính phức tạp của nhận dạng, hiện tại khóa luận chỉ tập trung nhận dạng các kí

tự trên biển số xe máy ở Việt Nam trong điều kiện lí tưởng, đủ ánh sáng, các kí tự trên biển

số hiển thị rõ ràng, không bị các vật neo giữ che khuất kí tự và camera trên thiết bị chạy ứngdụng có độ phân giải không quá thấp

Các vấn đề như nhận dạng biển số xe các nước, biển số ngang của xe ô tô, hay trong điềukiện thời tiết mưa, điều kiện ánh sáng không đủ để lưu giữ hình ảnh, camera trên thiết bị chochất lượng thấp hoặc bị loạn màu sắc, các kí tự trên biển số bị che khuất hay mất nét, khônghiển thị rõ ràng đều nằm ngoài tầm vóc của luận văn này

1.3 Cấu trúc khóa luận

Khóa luận được cấu trúc như sau:

• Chương 2 Khảo sát, phân tích đánh giá các hướng nghiên cứu đã có của các tác giảtrong và ngoài nước liên quan đến đề tài; nêu những vấn đề còn tồn tại; chỉ ra nhữngvấn đề mà đề tài cần tập trung, nghiên cứu giải quyết

• Chương 3 Hướng tiếp cận của khóa luận để xây dựng hệ thống nhận dạng biển số

• Chương 4 Hiện thực hệ thống nhận dạng biển số xe trên android smartphone

• Chương 5 Tổng kết khóa luận và một số hướng phát triển tiếp theo của khóa luận

Trang 14

Hệ thống này đã được áp dụng để hỗ trợ kiểm soát lưu lượng, thu thập thông tin, xử lí viphạm cho cảnh sát giao thông Hệ thống thu thập hình ảnh đòi hỏi phải có tầm nhìn rộng, thunhận ảnh nhanh và cho chất lượng ảnh tốt.

Trang 15

Chương 2 Tổng quan

Hình 2.1: Hệ thống nhận dạng được trang bị cho xe tuần tra

Hình 2.2: Thiết bị thu nhận dữ liệu hình ảnh trên xe

Tại Úc:

Một số lực lượng cảnh sát nhà nước, và Bộ Tư pháp (Victoria) đã sử dụng hệ thống ANPR

cả cố định và di động Các lực lượng cảnh sát New South Wales Highway Patrol là những

Trang 16

người đầu tiên sử dụng một hệ thống ANPR camera cố định tại Úc vào năm 2005 Trongnăm 2009, họ bắt đầu một hệ thống ANPR di động (có tên là MANPR) với ba máy ảnh hồngngoại được trang bị cho hạm đội tuần tra đường cao tốc Hệ thống xác định xe không đăng

ký và bị đánh cắp hoặc bị đình chỉ trình điều khiển

Hình 2.3: Hệ thống nhận dạng trên xe tuần tra của cảnh sát Úc

Ngoài ra trên đường phố có sử dụng những thiết bị camera dùng để ghi hình – Closedcircuit television (CCTV), những thiết bị này đã được phát triển ứng dụng nhận dạng biển số

Trang 17

Chương 2 Tổng quan

Hình 2.4: Ứng dụng nhận dạng của Biển Bạc ANPR

MT-ATGT2012: nhận dạng biển số xe từ ảnh chụp của máy bắn tốc độ

Các loại máy bắn tốc độ của CSGT đều đã được trang bị chức năng ghi lại hình ảnh củaphương tiện bị bắn tốc độ Mọi thông tin về ngày giờ, địa điểm, hướng di chuyển, vận tốc,vận tốc giới hạn trên đoạn đường đó (để so sánh) và làn đường chiếc xe đang chạy đều đượchiển thị trên hình ảnh máy bắn tốc độ thu nhận được Vấn đề nhận dạng biển số được tíchhợp trên máy giải quyết vấn đề nhận dạng biển số xe vi phạm, khoanh vùng xác định chínhxác xe bị bắn tốc độ Hình ảnh xe vi phạm vượt tốc độ sau khi đã được nhận dạng biển số vàkhoanh vùng phương tiện, được thiết lập thành bản ghi cơ sở dữ liệu xe vi phạm vượt tốc độ.Khảo sát độ chính xác của phần mềm với các ảnh bắn tốc độ kích thước 4008x3092 (pixels)tốc độ nhận dạng biển số trung bình của Mắt Thần là 1-2 giây (trên cấu hình máy tính thôngthường), hiệu suất nhận dạng biển số đạt đến 98%

Trang 18

Hình 2.5: Ứng dụng nhận dạng trên máy bắn tốc độ.

Hình 2.6: Thiết lập bản ghi CSDL xe vi phạm vượt tốc độ của MT-ATGT2012

MT-BSX3.5 ứng dụng nhận dạng biển số thông qua camera ghi hình và xử lý nhận dạngtrên máy tính tại các điểm giữ xe

Phiên bản mới nhất của ứng dụng này có nhiều cải tiến theo chiều hướng tích cực, chức năng

Trang 19

Chương 2 Tổng quan

nâng cao chất lượng hình ảnh biển số, cắt vùng biển số nâng cao và chồng hình ảnh biển sốlên hình ảnh camera thu nhận được, cho phép nhân viên trông giữ xe dễ dàng quan sát đượcảnh biển số và thao tác nhanh hơn và tính an ninh hơn Hiệu suất nhận dạng biển số xe máyđược cải thiện: Trong phiên bản này, độ chính xác nhận dạng biển số được cải thiện, các tìnhhuống độ sáng của các ký tự trên biển số phân bố không đều, các ký tự hàng trên bị bắn đinh

ốc, hàng ký tự dính mép biển số đều được xử lý triệt để

Hình 2.7: Giao diện của ứng dụng MT-BSX

2.2 Tổng kết chương

Qua khảo sát trên cho thấy mỗi ứng dụng có một ưu điểm nhất định, nhưng ở ứng dụng củaBiển Bạc ANPR thực hiện việc thu nhận ảnh và nhận dạng biển số rất tốt, nhưng ứng dụngnày chỉ hoạt động trên máy tính với sự hỗ trợ thu nhận ảnh từ Camera có chất lượng cao, cácthiết bị này được đặt cố định tại một vị trí, không có tính cơ động, tương tự như hệ thốngnhận dạng MT-BSX của Mắt Thần

Trang 20

Hệ thống nhận dạng MT-ATGT2012 lại hoạt động trên máy bắn tốc độ với sự hỗ trợ rất tốt

từ các phần mềm đi kèm và camera chuyên dụng cho việc thu thập hình ảnh, nhưng hệ thốngkhông có tính phổ thông vì chỉ hoạt động trên thiết bị trong ngành

Các hệ thống nhận dạng ở trong và ngoài nước hiện nay chủ yếu dựa trên bộ xử lí của máytính, vị trí các thiết bị thu hình thường đặt cố định, hay phát triển trên những thiết bị dùngriêng cho ngành nhất định

Nhận thấy điều này, hệ thống chúng tôi phát triển có sự kết hợp giữa OpenCV, hỗ trợ tốttrong việc xử lí hình ảnh, nhận diện các vùng chứa biển số và tách kí tự Nhận diện kí tự ápdụng mô hình mạng neural nhân tạo để cải thiện kết quả nhận dạng Ứng dụng phát triển trên

hệ điều hành Android sử dụng camera trực tiếp trên smartphone cho thấy được tính cơ độngtrong quá trình nhận dạng

Trang 21

Chương 3

Hệ thống nhận dạng biển số

Hệ thống nhận dạng biển số thường được hiện thực bằng cách giải quyết riêng rẽ ba bài toánnhỏ hơn đó là phát hiện vùng chứa biển số, tách kí tự và nhận dạng kí tự Chương này củakhóa luận sẽ lần lượt trình bày hướng tiếp cận và chi tiết thực hiện theo hướng tiếp cận đócủa từng bài toán chia nhỏ nêu trên

3.1 Phát hiện vùng chứa biển số xe

Đây là bước đầu tiên và khó khăn nhất quyết định tới kết quả của toàn bộ hệ thống Mục đíchcủa bước này là trích ra được vùng nhỏ nhất chứa biển số từ ảnh thu được từ camera của điệnthoại Có nhiều phương pháp tiếp cận để thực hiện được nhiệm vụ này nhưng tất cả đều cóthể qui về 3 phương pháp chính sau đây:

• Phương pháp dùng chuyển đổi Hough: dựa vào đặc trưng cạnh biên, áp dụng cácphương pháp xác định đường thẳng như phép biến đổi Hough để phát hiện các cặpđường thẳng gần song song ghép thành một ảnh biển số

• Phương pháp hình thái học: dựa vào đặc trưng hình thái của biển số xe như màu sắc,

độ sang, sự đối xứng để xác định và trích ra ảnh biển số

• Phương pháp khớp mẫu: xem biển số là một đối tượng có khung nền riêng và sử dụngcác cửa sổ dò để trích từng đối tượng đưa qua mạng noron (neural network), trí tuệnhân tạo (artificial intelligence) để phân loại có phải là vùng biển số hay không

Khóa luận không tập trung phát triển một thuật toán hay phương pháp riêng mà sử dụnghướng tiếp cận dựa trên diện mạo, dùng bộ phân loại mạnh AdaBoost - là sự kết hợp của các

bộ phân loại yếu dựa trên các đặc trưng Haar-like - để phát hiện vùng chứa biển số Phươngpháp này được đánh giá là khá đơn giản, nhưng mang lại kết quả phát hiện tương đối cao,

Trang 22

trung bình lên tới trên 98% Phương pháp được cài đặt dựa trên bộ thư viện mã nguồn mởOpenCV.

3.1.1 Đặc trưng Haar-like

Do Viola và Jones công bố năm 2001 [16], gồm 4 đặc trưng cơ bản để xác định đối tượng.Mỗi đặc trưng Haa-like là sự kết hợp của hai hay ba hình chữ nhật “trắng” hay “đen” Để sửdụng các đặc trưng này vào việc xác định những đối tượng tương đối phức tạp, 4 đặc trưngHaar-like cơ bản được mở rộng thêm thành tập đặc trưng cơ bản sau:

Hình 3.1: Các dạng cơ bản của đặc trưng Haar-like

Dùng các đặc trưng trên, ta có thể tính được giá trị của đặc trưng Haar-like là sự chênhlệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:

f (x) = Tổngvùng đen(các mức xám của pixel) − Tổngvùng trắng(các mức xám của pixel)

(3.1)

Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng Haar-like

có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặtngười), do đó sẽ làm cho bộ phân loại dễ hơn

Như vậy có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của cácvùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các

Trang 23

Chương 3 Hệ thống nhận dạng biển số

vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòihỏi tính run-time Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image, là mộtmảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗiphần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bêntrái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toánnày đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh

P (x, y) = X

x 0 ≤x,y 0 ≤y

P(x,y)

Hình 3.2: Cách tính Integral Image của ảnh

Sau khi đã tính được Integral Image, việc tính tổng các giá trị mức xám của một vùng bất

kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau:

Giả sử ta cần tính tổng các giá trị mức xám của vùng D như trong hình3.3, ta có thể tínhnhư sau:

D = A + B + C + D – (A + B) – (A + C) + A (3.3)

Với A + B + C + D chính là giá trị tại điểm P 4 trên Integral Image, tương tự như vậy

A + B là giá trị tại điểm P 2, A + C là giá trị tại điểm P 3, và A là giá trị tại điểm P 1 Vậy

ta có thể viết lại biểu thức tính D ở trên như sau:

Trang 24

Hình 3.3: Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh

Tiếp theo, để chọn các đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola và Jones

sử dụng một phương pháp máy học được gọi là AdaBoost AdaBoost sẽ kết hợp các bộ phânloại yếu để tạo thành một bộ phân loại mạnh Với bộ phân loại yếu chỉ cho ra câu trả lời chínhxác chỉ hơn việc đoán một cách ngẫn nhiên một chút, còn bộ phân loại mạnh có thể đưa racâu trả lời chính xác trên 60%

3.1.2 AdaBoost

AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boosting đượcFreund và Schapire đưa ra vào năm 1995 Adaboost cũng hoạt động trên nguyên tắc kết hợptuyến tính các weak classifiers để hình thành một strong classifier

Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) đểđánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak classifiers đượcxây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weakclassifier kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫuđược nhận dạng đúng bởi weak classifier vừa xây dựng Bằng cách này weak classifer sau cóthể tập trung vào các mẫu mà các weak classifiers trước nó làm chưa tốt Sau cùng, các weakclassifers sẽ được kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-liketheo mô hình phân tầng (cascade) như sau:

Trang 25

Là biển số

Là biển số

Là biển số

Không là biển số

Hình 3.4: Mô hình phân tầng kết hợp các bộ phân loại yếu để xác định biển số

Trong đó, hklà các bộ phân loại yếu, được biểu diễn như sau:

fk: giá trị của đặc trưng Haar-like

pk: hệ số quyết định chiều của phương trình

AdaBoost sẽ kết hợp các bộ phân loại yếu thành bộ phân loại mạnh như sau:

H(x) = sign(a1h1(x) + a2h2(x) + + anhn(x)) (a = alpha) (3.6)

Với: a ≥ 0 là hệ số chuẩn hoá cho các bộ phân loại yếu

Trang 26

H1(x) H2(x) H3(x) H(x)

Weak Classifer1

Weak Classifer2

Weak Classifer3

Strong Classifer

Hình 3.5: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh

3.1.3 Hệ thống xác định vùng chứa biển số xe

Image

Điều chỉnh thông số AdaBoost

Một tập nhỏ các đặc trưng Cấu trúc phân tầng

Chọn đặc trưng

Tính các đặc trưng nhanh từ nhiều tỉ lệ

Ước lượng các đặc trưng

Hình 3.6: Hệ thống xác định vùng chứa biển số xe

Trang 27

Chương 3 Hệ thống nhận dạng biển số

Như trong hình 3.6, từ ảnh gốc ban đầu, tính Integral Image, là mảng 2 chiều với phần tử(x, y) sẽ được tính bằng tổng của các phần tử (x0, y0) với x0 < x và y0 < y, mục đích là đểtính nhanh tổng của các giá trị mức xám của một vùng hình chữ nhật bất kỳ trên ảnh gốc.Các vùng ảnh con này sẽ được đưa qua các hàm Haar cơ bản để ước lượng đặc trưng, kết quảước lượng sẽ được đưa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trưng không

có khả năng là đặc trưng của biển số xe Chỉ có một tập nhỏ các đặc trưng mà bộ điều chỉnhAdaBoost cho là có khả năng là đặc trưng của biển số xe mới được chuyển sang cho bộ quyếtđịnh kết quả (là tập các bộ phân loại yếu có cấu trúc như trong hình3.4) Bộ quyết định sẽtổng hợp kết quả là biển số xe nếu kết quả của các bộ phân loại yếu trả về là biển số xe

Mỗi bộ phân loại yếu sẽ quyết định kết quả cho một đặc trưng Haar-like, được xác địnhngưỡng đủ nhỏ sao cho có thể vượt được tất cả các bộ dữ liệu mẫu trong tập dữ liệu huấnluyện (số lượng ảnh biển số xe trong tập huấn luyện là rất lớn) Trong quá trình xác định vùngchứa biển số xe, mỗi vùng ảnh con sẽ được kiểm tra với các đặc trưng trong chuỗi các đặctrưng Haar-like, nếu có một đặc trưng Haar-like nào cho ra kết quả là biển số xe thì các đặctrưng khác không cần xét nữa Thứ tự xét các đặc trưng trong chuỗi các đặc trưng Haar-like

sẽ được dựa vào trọng số (weight) của đặc trưng đó do AdaBoost quyết định dựa vào số lần

và thứ tự xuất hiện của các đặc trưng Haar-like

3.1.4 Huấn luyện bộ phân loại

Để có thể nhận dạng biển số xe theo phương pháp tiếp cận dựa trên diện mạo đã trình bàytại phần trên, trước hết cần thực hiện huấn luyện bộ phân loại dùng cho quá trình nhận dạng.Nhiệm vụ huấn luyện bộ phân loại thực sự là một thử thách bởi như đã đề cập tại phần trướcquá trình này yêu cầu một tập dữ liệu mẫu rất lớn, nên tiêu tốn rất nhiều thời gian và côngsức Có thể chia quá trình huấn luyện bộ phân loại làm 2 bước chính:

là tập những bức ảnh chứa đối tượng cần nhận dạng

Mẫu negative được lấy từ những bức ảnh tùy ý không chứa đối tượng cần nhận dạng Tất cảnhững bức ảnh này được liệt kê trong một file miêu tả dưới dạng plain-text, ứng với mỗi dòng

Trang 28

trong file miêu tả này sẽ là một bức ảnh.

Khóa luận sử dụng 3000 file ảnh trích từ bộ phim Step Up Revolution làm tập mẫu Negative

Mẫu positive là tập những bức ảnh chứa đối tượng cần nhận dạng, một bức ảnh có thể chứamột hoặc nhiều đối tượng File miêu tả của tập mẫu positive cũng là một file plain-text, mỗidòng sẽ chứa tương ứng với một file ảnh, tiếp sau đó là số lượng đối tượng cần nhận dạng cótrong bức ảnh, tiếp sau đó là tọa độ x, y tương ứng của mỗi đối tượng đó

Khóa luận sử dụng 2000 bức ảnh chứa biển số làm tập mẫu positive Những bức ảnh nàyđược được thu thập (quay và chụp) trong vòng 4 ngày tại nhiều địa điểm của thành phố HồChí Minh, với những điều kiện, thời gian khác nhau

Bước tiếp theo sau khi đã có được file miêu tả của tập mẫu negative và positive là phảitạo bộ mẫu input cho quá trình huấn luyện Để thực hiện điều này, ta sử dụng tiện ích

opencv_createsamplesđược cung cấp sẵn trong thư viện nguồn mở OpenCV

Các tùy chọn của tiện ích opencv_createsamples:

Trang 29

Chương 3 Hệ thống nhận dạng biển số

opencv_createsamples.exe -info positive/ positive.txt -vec data/vector.vec -num 2000 -w 55 -h 40

-info positive/ positive.txt: đường dẫn file miêu tả của tập mẫu positive

-vec data/vector.vec: đường dẫn file output sẽ được tạo ra sau quá trình tạo mẫu

-num 2000: số lượng mẫu là 2000 như đã đề cập

-w 55 -h 40: kích thước của mỗi mẫu sẽ được tạo ra, theo đúng với tỷ lệ của biển số xe(140x190)

Sau khi tạo ra file mẫu dưới dạng vector, mọi thứ đã sẵn sàng để chuyển qua bước kế tiếp đó

là huấn luyện

Huấn luyện

Đây là bước cuối cùng của quá trình huấn luyện nhưng cũng là bước yêu cầu nhiều thời giannhất Mất 6 ngày chạy liên tục để hoàn thành bước này trên một máy tính tương đối mạnh(core I7, 16Gb ram, window 7) Trong suốt quá trình thực thi, 8 nhân của CPU được tận dụngtối đa, luôn trong tình trạng 100% đang sử dụng

Tiện ích opencv_traincascade được sử dụng trong bước này để hoàn tất quá trình huấn luyện.

Cú pháp sử dụng:

opencv_traincascade.exe data data/cascade vec data/vector.vec bg negative/infofile.txt numPos 2000 -numNeg 2999 -numStages 20 -mode ALL -w 55 -h 40

data data/cascade: đường dẫn để lưu kết quả của quá trình huấn luyện

-vec data/vector.vec: đường dẫn file vector được tạo ra trong bước chuẩn bị mẫu từ tập mẫupositive

-bg negative/infofile.txt: đường dẫn file miêu tả của tập mẫu negative

-numPos 2000: số lượng file ảnh của tập mẫu positive

-numNeg 2999: số lượng file ảnh của tập mẫu negative

-numStages 20: số stage mong muốn

-mode ALL: chế độ ALL sẽ sử dụng tất cả các dạng (kể cả mở rộng) của đặc trưng Haar-like-w 55 -h 40: kích thước của tập mẫu

Trang 30

Hình 3.7: Ảnh chụp màn hình quá trình chạy huấn luyện

Sau khi hoàn tất quá trình huấn luyện này, ta sẽ thu được bộ phân loại dưới dạng một filexml dành cho quá trình nhận dạng

3.2 Tách kí tự

Sau khi đã phát hiện được vùng chứa biển số, bài toán tiếp theo cần phải giải quyết là phântách được từng kí tự trên vùng biển số đã thu được, điều này mang lại thuận lợi rất lớn chobước cuối cùng của hệ thống, nhận dạng kí tự

Có rất nhiều phương pháp có thể áp dụng để thực hiện nhiệm vụ này Có thể kể ra ở đâynhư tách tĩnh, lượng tử hóa vector (vector quantization), lược đồ chiếu ngang và dọc (verticaland horizontal projection), mạng noron (neural network), trí tuệ nhân tạo (AI), hình thái học(morphology) Khóa luận này đã lựa chọn phương pháp hình thái học để tiến hành thựchiện phân tách kí tự

Mỗi một kí tự trên biển số sẽ là một đối tượng có đặc điểm hình thái học cụ thể như là chiềucao, chiều rộng, tỉ lệ 2 chiều biến đổi tương đối ít (nếu ảnh chứa vùng biển số đã được đưa

về cùng một kích cỡ) mà dựa vào đó ta có thể tách ra được cụ thể từng kí tự riêng rẽ Từ đó

ra có thuật toán tách kí tự từ ảnh chứa vùng biển số đã thu được như sau:

1 Chuẩn hóa kích thước ảnh

Trang 31

Chương 3 Hệ thống nhận dạng biển số

2 Chuyển đổi ảnh màu về ảnh xám

3 Tăng cao tính tương phản bằng thuật toán cân bằng lược đồ xám

4 Xác định ngưỡng, nhị phân hóa ảnh

5 Tìm biên, xác định các đường viền (contour) của ảnh nhị phân

6 Tách kí tự dựa trên đặc tính về hình thái học

Tiếp theo đây, khóa luận sẽ trình bày cơ bản các bước đã nêu ở trên

3.2.1 Chuẩn hóa kích thước ảnh

Đây là khâu đầu tiên và cũng là đơn giản nhất của thuật toán, chuẩn hóa kích thước ảnh khiến

độ chênh lệch giữa kí tự trên các biển số khác nhau giảm xuống làm cho việc tách kí tự dựatrên đặc tính hình thái học trở nên chính xác hơn Và việc chuẩn hóa kích thước ảnh ở đâuthực tế chỉ đơn giản là thực hiện thay đổi (resize), đưa ảnh về cùng một phân giải đã chọntrước, như khóa luận chọn kích thước này là 680x492 (đây cũng chính là tỷ lệ của một biểnsố)

Có 5 phương thức chính để thực hiện việc thay đổi kích thước ảnh:

• INTER_NEAREST nearest-neighbor interpolation

• INTER_LINEAR bilinear interpolation

• INTER_AREA area interpolation

• INTER_CUBIC bicubic interpolation

• INTER_LANCZOS4 Lanczos interpolation

Trang 32

Ảnh gốc INTER_NEAREST INTER_LINEAR

INTER_LANCZOS4 INTER_CUBIC

INTER_AREA

Hình 3.8: So sánh các phương thức resize ảnh

Qua thực nghiệm, thấy rằng phương thức INTER_NEAREST là phương thức đơn giản

và tốc độ thực thi nhanh nhất, nhưng không đảm bảo chất lượng ảnh Bốn phương thức cònlại mang lại kết quả tương đối tốt và khá giống nhau nên khóa luận quyết định chọn phươngthức INTER_LINEAR do nó đảm bảo được chất lượng ảnh sau khi resize và tốc độ nhanhhơn các phương thức còn lại (không kể INTER_NEAREST)

3.2.2 Chuyển đổi ảnh màu về ảnh xám

Do khâu xác định ngưỡng và nhị phân hóa ảnh chỉ thực hiện được đối với một bức ảnh đơnkênh (single channel) nên ở bước này của thuật toán, khóa luận lại thực hiện một bước biếnđổi đơn giản nữa đó là chuyển đổi ảnh vùng chứa biển số (sau khi đã chuẩn hóa kích thước)

từ ảnh màu (3 channels) sang ảnh xám (grayscale - còn gọi là ảnh trắng đen, 1 channel)

Một bức ảnh màu thường được dựng bằng cách xếp chồng cách kênh màu lên nhau Ví dụmột bức ảnh RGB được hợp thành bởi 3 kênh màu riêng rẽ, kênh đỏ (red), kênh xanh lá cây(green), và kênh xanh dương (blue); còn một bức ảnh CMYK sẽ gồm 4 kênh đó là màu lụclam (cyan), đỏ tươi (magenta), màu vàng (yellow) và màu đen (black)

Ngày đăng: 17/10/2015, 11:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Ed Burnette. Hello, Android: Introducing Google’s Mobile Development Platform.Pragmatic Bookshelf, 2nd edition, 2009. 41 Sách, tạp chí
Tiêu đề: Hello, Android: Introducing Google’s Mobile Development Platform
[2] Yoav Freund and Robert E. Schapire. A decision-theoretic generalization of on-line learning and an application to boosting. In Proceedings of the Second European Con- ference on Computational Learning Theory, EuroCOLT ’95, pages 23–37, London, UK, UK, 1995. Springer-Verlag Sách, tạp chí
Tiêu đề: Proceedings of the Second European Con-ference on Computational Learning Theory
[3] G. Harman. A case study on data interoperability for license plate recognition. In Technologies for Homeland Security, 2008 IEEE Conference on, pages 237 –239, may 2008 Sách, tạp chí
Tiêu đề: Technologies for Homeland Security, 2008 IEEE Conference on
[4] J. Heaton. Introduction to Neural Networks for Java, Second Edition. Heaton Research, 2008. 47 Sách, tạp chí
Tiêu đề: Introduction to Neural Networks for Java, Second Edition
[5] J.S. Kang, M.H. Kang, C.H. Park, J.H. Kim, and Y.S. Choi. Implementation of em- bedded system for vehicle tracking and license plates recognition using spatial relative distance. In Information Technology Interfaces, 2004. 26th International Conference on, pages 167 –172 Vol.1, june 2004 Sách, tạp chí
Tiêu đề: Information Technology Interfaces, 2004. 26th International Conferenceon
[6] Rainer Lienhart and Jochen Maydt. An extended set of haar-like features for rapid object detection. In IEEE ICIP 2002, pages 900–903, 2002 Sách, tạp chí
Tiêu đề: IEEE ICIP 2002
[7] Andres Llana. Wireless application protocol (wap) and mobile wireless access. Infor- mation Systems Security, 11(3):14–21, 2002 Sách, tạp chí
Tiêu đề: Infor-mation Systems Security
[8] R.A. Lotufo, A.D. Morgan, and A.S. Johnson. Automatic number-plate recognition.In Image Analysis for Transport Applications, IEE Colloquium on, pages 6/1 –6/6, feb 1990 Sách, tạp chí
Tiêu đề: Image Analysis for Transport Applications, IEE Colloquium on
[9] M.R. Lynch. Practical automobile number plate recognition by linear weight neural networks. In Toll Systems, IEE Colloquium on, pages 61 –63, oct 1992 Sách, tạp chí
Tiêu đề: Toll Systems, IEE Colloquium on
[11] A. Mutholib, T.S. Gunawan, and M. Kartiwi. Design and implementation of automatic number plate recognition on android platform. In Computer and Communication En- gineering (ICCCE), 2012 International Conference on, pages 540 –543, july 2012 Sách, tạp chí
Tiêu đề: Computer and Communication En-gineering (ICCCE), 2012 International Conference on
[12] Constantine P. Papageorgiou, Michael Oren, and Tomaso Poggio. A general framework for object detection. In Proceedings of the Sixth International Conference on Computer Vision, ICCV ’98, pages 555–, Washington, DC, USA, 1998. IEEE Computer Society Sách, tạp chí
Tiêu đề: Proceedings of the Sixth International Conference on ComputerVision
[13] J. Parker, R.V. Kenyon, and D.E. Troxel. Comparison of interpolating methods for image resampling. IEEE Trans Med Imaging, 2(1):31–9, 1983 Sách, tạp chí
Tiêu đề: IEEE Trans Med Imaging
[14] Mke Rhead, Robert Gurney, Soodamani Ramalingam, and Neil Cohen. Accuracy of automatic number plate recognition (anpr) and real world uk number plate problems.In Security Technology (ICCST), 2012 IEEE International Carnahan Conference on, pages 286 –291, oct. 2012 Sách, tạp chí
Tiêu đề: Security Technology (ICCST), 2012 IEEE International Carnahan Conference on
[15] A. Sharma, A. Dharwadker, and T. Kasar. Moblp: A cc-based approach to vehicle license plate number segmentation from images acquired with a mobile phone camera.In India Conference (INDICON), 2010 Annual IEEE, pages 1 –4, dec. 2010 Sách, tạp chí
Tiêu đề: India Conference (INDICON), 2010 Annual IEEE
[16] Paul Viola and Michael Jones. Rapid object detection using a boosted cascade of simple features. In Proceeding of Conference on Computer Vision and Pattern Recognition, pages 511–518, 2001. 12 Sách, tạp chí
Tiêu đề: Proceeding of Conference on Computer Vision and Pattern Recognition
[17] Paul Viola and Michael Jones. Robust real-time object detection. International Journal of Computer Vision, 57(2):137–154, 2002 Sách, tạp chí
Tiêu đề: International Journalof Computer Vision
[18] J. Wang, D.H. Wang, and S. Chen. Map matching algorithm based on mobile phone location. In Intelligent Computation Technology and Automation (ICICTA), 2011 In- ternational Conference on, volume 1, pages 676 –679, march 2011 Sách, tạp chí
Tiêu đề: Intelligent Computation Technology and Automation (ICICTA), 2011 In-ternational Conference on
[19] Chen Yuan-yuan and Li Jing. A method of number-plate character recognition algo- rithm based on boosting classification. In Communications and Mobile Computing, 2009. CMC ’09. WRI International Conference on, volume 3, pages 263 –267, jan.2009 Sách, tạp chí
Tiêu đề: Communications and Mobile Computing,2009. CMC ’09. WRI International Conference on
[10] Ondrej Martinsky. Algorithmic and mathematical principles of automatic number plate recognition systems. Master’s thesis, BRNO University of Technology, 2007 Khác

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w