NHẬN DẠNG BIỂN số XE (có code) ........................................... NHẬN DẠNG BIỂN số XE (có code) ........................................... NHẬN DẠNG BIỂN số XE (có code) ........................................... NHẬN DẠNG BIỂN số XE (có code) ...........................................
Trang 1NHẬN DẠNG BIỂN SỐ XE
Trang 2MỤC LỤC
DANH MỤC CÁC HÌNH VẼ vii
DANH MỤC CÁC TỪ VIẾT TẮT viii
CHƯỚNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 GIỚI THIỆU ĐỀ TÀI 1
1.1.1 Đặt vấn đề 1
1.1.2 Khái quát về xử lý ảnh và nhận dạng biển số 1
1.1.3 Phân loại ứng dụng nhận dạng biển số xe 2
1.2 PHẦM MỀM VISUAL STUDIO VÀ THƯ VIỆN EMGUCV 4
1.2.1 Phần mềm Visual Studio 2015 4
1.2.2 Thư viện xử lý ảnh EmguCV 4
CHƯƠNG 2 PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ XE 6
2.1 MỘT SỐ KHÁI NIỆM CƠ BẢN 6
2.1.1 Ảnh và điểm ảnh 6
2.1.2 Các cách phân loại ảnh 6
2.1.3 Các giai đoạn xử lý ảnh 7
2.2 XÁC ĐỊNH VÙNG CHỨA BIỂN SỐ XE 8
2.2.1 Phân ngưỡng và tìm vùng đối tượng 8
2.2.2 Một số đặc điểm về biển số xe ở Việt Nam 8
2.2.3 Phát hiện vùng chứa biển số 9
2.2.4 Nhận dạng các kí tự 11
CHƯƠNG 3 KẾT QUẢ MÔ PHỎNG 13
3.1 THIẾT KẾ WINDOW FORMS 12
3.2 KẾT QUẢ NHẬN DẠNG 13
CHƯƠNG 4 KẾT LUẬN 13
4.1 NHẬN XÉT 14
4.2 HƯỚNG PHÁT TRIỂN 14
Trang 3TÀI LIỆU THAM KHẢO 15 PHỤ LỤC 16
Trang 4DANH MỤC CÁC HÌNH VẼ
HÌNH 1-1 QUẢN LÝ BÃI GIỮ XE BẰNG NHẬN DẠNG BIỂN SỐ 2
HÌNH 1-2 GIAO DIỆN CỦA VISUAL STUDIO 2015 4
HÌNH 2-1 ẢNH MÀU, ẢNH MỨC XÁM VÀ ẢNH NHỊ PHÂN 7
HÌNH 2-2 CÁC BƯỚC XỬ LÝ ẢNH CƠ BẢN 7
HÌNH 2-3 MỘT SỐ LOẠI BIỂN SỐ XE THÔNG DỤNG 9
HÌNH 2-4 CÁC BƯỚC PHÁT HIỆN VÙNG CHỨA BIỂN SỐ XE 10
HÌNH 3-1 GIAO DIỆN CHƯƠNG TRÌNH CHÍNH 12
HÌNH 3-2 CÔNG CỤ DEBUG 12
HÌNH 3-3 KẾT QUẢ NHẬN DẠNG BIỂN SỐ 13
HÌNH 3-4 CÁC LOẠI BIỂN KHÔNG NHẬN DẠNG ĐỦ KÍ TỰ 13
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
ANPR Automatic number Plate Recognition
OCR Optical Character Recognition
RGB Red Green Blue
CHƯƠNG 1:TỔNG QUAN VỀ ĐỀ TÀI 1.1.GIỚI THIỆU ĐỀ TÀI
1.1.1 Đặt vấn đề
Trang 6Ngà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ácngành khoa học kỹ thuật nói chung, mà trong đó ngành công nghiệp sản xuất cácphươ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ệngiao 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 ramộ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
Và đây cũng là một trong những vấn nạn ở Việt Nam Công tác quản lý phương tiệngiao thông nói chung và quản lý ôtô, xe máy là vô cùng phức tạp…cũng như côngtác phát hiện, xử phạt các hành vi vi phạm giao thông, chống trộm,…sẽ tốn nhiềuthời gian và công sức hơn
Để làm giảm áp lực trong công tác quản lý, kiểm soát phương tiện giao thông, trênthế giới đã nhanh chóng xây dựng hệ thống giám sát tự động đối với các phươngtiện giao thông Và các hệ thống giám sát đều lấy biển số xe là mục tiêu giám sát
Để xây dựng hệ thống quản lý giao thông tự động thì “ Bài toán nhận dạng biển sốxe” là tiền đề để xây dựng những mô hình quản lý đó Hệ thống này đã được sửdụng rộng rãi tuy nhiên ở Việt Nam đây vẫn là một lĩnh vực mới mẻ
Trang 7Hình 1-1 Quản lý bãi giữ xe bằng nhận dang biển số
1.1.2 Khát quát v x lý nh và nh n d ng bi n s : ề ử ả ậ ạ ể ố
Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máytính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này Hai nhiệm vụ cơ bản củaquá trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cungcấp cho các quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển
Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhận ảnh dạng sốhoặc tương tự) gửi đến máy tính Dữ liệu ảnh được lưu trữ ở định dạng phù hợp vớiquá trình xử lý Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnhnhằm thay đổi cấu trúc ảnh phù hợp với các ứng dụng khác nhau
Hệ thống nhận dạng biển số xe là hệ thống có khả năng phân tích hình ảnh và xácđịnh biển số trên xe, thông qua video, thiết bị ghi hình và hình ảnh Sau cùng là xácđịnh các thông tin như: chủ sở hữu xe, theo dõi xe với tốc độ chậm,
Trang 81.1.3 Phân loại ứng dụng nhận dạng biển số xe:
Ứng dụng nhận dạng biển số xe là ứng dụng có khả năng phân tích hình ảnh và xácđịnh biển số xe từ các hình ảnh chụp được từ các thiết bị thu hình Nguồn hình ảnhcho ứng dụng có rất nhiều Và phát triển, hình ảnh được trực tiếp thu nhận từcamera Trong đề tài chỉ dừng lại ở mức xác định được biển số xe (xác định cácchữ) từ các bức ảnh
Có nhiều cách thức khác nhau để phân loại các ứng dụng nhận dạng biển số
xe Một trong những cách đơn giản là phân loại ứng dụng nhận dạng biển số xethông qua mục đích sử dụng Có thể chia ứng dụng nhận dạng biển số xe thành hailoại sau:
*Lo i 1: Gi i h n vung nhin:a ơ a
-Đầu vào: Ảnh thu trực tiếp từ các thiết bị ghi nhận ảnh kỹ thuật số Ảnh được ghinhận thường chỉ giới hạn trong vùng có biển số xe
-Nguyên lý hoạt động: Các phương tiện giao thông phải chạy với một tốc độ đủchậm để máy ghi nhận hình ảnh co thể thu được ảnh vùng biển số xe
*Loại 2: Không giới hạn vùng nhìn:
-Đầu vào: Ảnh đầu vào thu được từ các thiết bị ghi hình tự động, không phụ thuộcvào góc độ, các đối tượng xung quanh, ảnh không cần bắt buộc chỉ chụp vùng chứabiển số xe, mà có thể ảnh tổng hợp như chứa them các đối tượng như người, cây,đường phố , miễn là vùng biển số xe phải đủ rõ để có thể thực hiện nhận dạng đượccác ký tự trong vùng đó
-Nguyên lý hoạt động: Do đặc tính không giới hạn vùng nhìn mà ảnh đầu vào có thểthu được từ một thiết bị ghi hình (camara, máy ảnh…) Và do đó, công việc đầu tiên
là dò tìm trong ảnh, để xác định đúng vùng nào là biển số xe Sau đó, thực hiện táchvùng và nhận dạng Vì không phụ thuộc vào hình ảnh thu được nên có thể dùng ứngdụng tại nhiều nơi
Trang 91.2 PHẦN MỀM VISUAL STUDIO 2015 VÀ THƯ VIỆN EMGUCV1.2.1 Phần mềm Visual studio 2015
Visual Studio là m tộ môi trường tích h p t Microsoft Nó đợ ừ ược s d ng đử ụ ểphát tri nể chương trinh máy tính cho Microsoft Windows, cũng nh các trangưweb, các ng d ng web và các d ch v web.ứ ụ ị ụ
Visual Studio h tr nhi u ngôn ng l p trinh khác nhau và cho phép các l pỗ ợ ề ữ ậ ậtrinh viên biên t p mã và g l i đ h tr (m c đ khác nhau) v i h u h t cácậ ỡ ỗ ể ỗ ợ ứ ộ ơ ầ ếngôn ng l p trinh, cung c p m t d ch v ngôn ng c th t n t i.ữ ậ ấ ộ ị ụ ữ ụ ể ồ a ng d ngỨ ụnày được xây d ng trong ngôn ng bao g m C, C ++,VB,C# ự ữ ồ
Tính năng chính của chương trình Visual Studio là biên tập code, sửa lỗi và thiết kế Window Forms…
Hình 1-2 Giao diện của Visual Studio 2015
1.2.2 Thư viện xử lý ảnh EmguCV
OpenCV (Open Computer Vision) là m t th vi n mã ngu n m chuyên dungộ ư ệ ồ ở
đ x lý các v n đ liên quan đ n th giác máy tính Nh m t h th ng các gi iể ử ấ ề ế ị ờ ộ ệ ố ảthu t chuyên bi t, t i u cho vi c x lý th giác máy tính, vi v y tính ng d ngậ ệ ố ư ệ ử ị ậ ứ ụ
c a OpenCV là r t l n.ủ ấ ơ EmguCV là m tộ cross flatform.NET, m t th vi n x lýộ ư ệ ử
Trang 10hinh nh m nh dành riêng cho ngôn ng C#, cho phép g i đả a ữ ọ ượ ch c năngc ứ
c aủ OpenCV t NET.ừ
L i th cua EmguCV là đợ ế ược vi t hoàn toàn b ng C#ế ằ ,có th ch y trên b t kỳể a ấ
n n t ng h tr nào.ề ả ỗ ợ
Tính ng d ng c a EmguCV là r t l n, có th k đ n nh nh n d ng nhứ ụ ủ ấ ơ ể ể ế ư ậ a ả( nh n d ng khuôn m t, các v t th …),x lý nh (kh nhi u, đi u ch nh đậ a ặ ậ ể ử ả ử ễ ề ỉ ộsáng … ),nh n d ng c ch và còn r t nhi u ng d ng khác n a.ậ a ử ỉ ấ ề ứ ụ ữ
Trang 11CHƯƠNG 2:PHƯƠNG PHÁP NHẬN DẠNG BIỂN SỐ XE
2.1 MỘT SỐ KHÁI NIỆM CƠ BẢN:
g i là m t ph n t nh.ọ ộ ầ ử ả
M c xám: Là k t qu c a s bi n đ i tứ ế ả ủ ự ế ổ ương ng 1 giá tr đ sáng c a 1 đi mứ ị ộ ủ ể
nh v i 1 giá tr nguyên d ng Thông th ng nó xác đ nh trong [0, 255] tuỳ
thu c vào giá tr mà m i đi m nh độ ị ỗ ể ả ược bi u di n Các thang giá tr m c xámể ễ ị ứthông thường: 16, 32, 64, 128, 256 (M c 256 là m c ph d ng Lý do: t kỹứ ứ ổ ụ ừ
Trang 12thu t máy tính dung 1 byte (8 bit) đ bi u di n m c xám M c xám dung 1ậ ể ể ễ ứ ứbyte bi u di n: 2ể ễ 8 =256 m c, t c là t 0 đ n 255).ứ ứ ừ ế
2.1.2 Các cách phân loại ảnh
nh nh phân: Giá tr xám c a t t c các đi m nh ch nh n giá tr 1 ho c 0 nh
v y m i đi m nh trong nh nh phân đậ ỗ ể ả ả ị ược bi u di n b i 1 bit nh xám: Giáể ễ ở Ả
tr xám n m trong [0, 255] nh v y m i đi m nh trong nh nh phân đị ằ ư ậ ỗ ể ả ả ị ược
Hình 2-1 Ảnh màu, ảnh mức xám và ảnh nhị phân
2.1.3 Các giai đo n x lý nh ạ ử ả
Gồm các bước:
Trang 13-Thu nhận ảnh: ảnh được thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máy quét, ảnh vệ tinh biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trong máy tính, có thể hiển thị ra các thiết bị ngoại vi.
-Tiền xử lý (Image Processing): quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnhtốt lên theo mục đích sử dụng
-Phân đoạn và biểu diễn ảnh
-Nhận dạng và nội suy ảnh
Hình 2-2 Các bước xử lý ảnh cơ bản
2.2 XÁC ĐỊNH VÙNG CHỨA BIỂN SỐ XE
2.2.1 Phân ngưỡng và tìm vùng đối tượng
Ý tưởng: nh n th y các vung bi n s là các vung đ c tr ng có hinh ch nh t, ậ ấ ể ố ặ ư ữ ậ
có t l kích thỉ ệ ươc theo tiêu chu n Vi v y sau khi tách ngẩ ậ ường và tim vung (EmguCV h tr findContours) ta tim nh ng vung có t l theo kích thỗ ợ ữ ỷ ệ ươc
gi ng v i t l c a bi n s xe Đ có th l c các vung bi n s m t l n n a thi ố ơ ỉ ệ ủ ể ố ể ế ọ ể ố ộ ầ ữ
ta ti p t c tim s vung con trên vung bi n s và so sánh v i s lế ụ ố ể ố ơ ố ượng ký t c aự ủ
bi n s ể ố
G m 2 bồ ươc:
-Bươc 1: Tim vung bi n s V i nh xám đ u vào th c hi n phân ngể ố ơ ả ầ ự ệ ưỡng ( ho c dò biên canny) và tim đ i tặ ố ượng Tách các đ i tố ượng có t l r ng/dài ỉ ệ ộtrong ph m vi bi n s đ làm ngu n cho ba ể ố ể ồ ươc 2
-Bươc 2: Tách riêng t ng ký t trên bi n s : Ti n hành tim đ i từ ự ể ố ế ố ượng trên ngu n do bồ ươc 1 cung c p sau đó so sánh s đ i tấ ố ố ượng nh n đậ ược có trung
v i s ký t tên các bi n s xe không N u kh p v i tiêu chu n thi đó là nh ngơ ố ự ể ố ế ơ ơ ẩ ữvung bi n s có kh năng là bi n s xe cao nh t Tách riêng t ng ký t đ ể ố ả ể ố ấ ừ ự ể
nh n d ng.ậ a
2.2.2 Một số đặc diểm biển số xe ở Việt Nam
Trang 14m i n c th ng có tiêu chu n v kích th c nh t đ nh Đ i v i n c ta,
bi n s xe qui đ nh khá đ ng đ u cho m i lo i xe, t l chi u dài, r ng cho ể ố ị ồ ề ỗ a ỷ ệ ề ộ
m i lo i xe là nh nhauỗ a ư :
-Đ i v i lo i xe có m t hàng ký t thi t l dài/r ng là: 3.5 ố ơ a ộ ự ỉ ệ ộ ≤W / H ≤ 4.5
-Đ i v i lo i xe có hai hàng ký t thi t l dài/r ng là: 0.8 ố ơ a ự ỉ ệ ộ ≤W / H ≤1.4
T nh ng đ c đi m này, ta có có th xác đ nh đừ ữ ặ ể ể ị ược các vung con th a mãn thi ỏ
kh năng ch a bi n s là r t cao.ả ứ ể ố ấ
Mỗi ký tự thường có tỷ lệ kích thước chiều rộng, chiều cao tương ứng với chiều dài
và rộng của biển số xe Ví dụ, chiều cao của mỗi ký tự luôn nhỏ hơn 85% chiều caocủa biển số xe và luôn lớn hơn 33% chiều cao của biển xe Còn chiều rộng của ký
tự không lớn hơn 20% chiều dài của biển số xe Mỗi ký tự của biển số xe được xemnhư là một vùng liên thông con Do đó, chúng ta có thể đếm vùng liên thông conthỏa mãn tích chất đó là ký tự Chú ý số ký tự trên biển số xe là từ 6 đến 10 ký tự ởnước ta chỉ có số ký tự trên mỗi biền số xe nằm trong khoảng 6 đến 9 ký tự
Hình 2-3 Một số loại biển số xe thông dụng
2.2.3 Phát hiện vùng chứa biển số
Trang 15Sơ đồ các bước phát hiện vùng chứa biển số xe.
Hình 2-4 Các bước phát hiện vùng chứa biển số xe
Bước 1: Biến đối ảnh xám và lọc ảnh
-Ảnh đầu vào là một ảnh bất kỳ, được chuyển về ảnh có 256 mức xám và tiến hànhlọc ảnh giảm nhiễu
Bước 2: Nhị phân hóa ảnh
- Việc sử dụng ảnh mức xám không làm giảm đi tính đa năng của ứng dụng Trênthực tế, ảnh mức xám vẫn được sử dụng nhiều, và nhiều thiết bị ghi hình cũng cókhả năng tự chuyển ảnh màu thành ảnh mức xám Tuy nhiên, nếu để ảnh mức xámthì việc phát hiện biên không hiệu quả, vì sự thay đổi liên tục của các mức xám làmcho việc xác định biên không phải dễ dàng, và việc tìm ra các vùng liên tục của biênkhá hạn chế Vì vậy, chúng ta thực hiện chuyển ảnh về dạng nhị phân để thực hiệnviệc lấy biên nhanh hơn
Trang 16Bước 3: Tiến hành phân ngưỡng hoặc phát hiện biên
-Có hai quá trình phân ngưỡng đó là phân ngưỡng tự động và phân ngưỡngkhông tự động
-Khi ta tiến hành phân ngưỡng sẽ làm hiện rõ vùng biển số, trong giai đoạn này
ta có thể sử dụng các phương pháp phát hiện biên
Bước 4: Tìm đường bao đối đượng
-Khi có ảnh thu được ở bước 3 chúng ta tiến hành tìm các vùng biên là đối tượngriêng để trích các vùng và lấy thông số của các vùng như là tọa độ điểm của cáccạnh, diện tích của vùng
Bước 5: Tách vùng biển số
-Tìm đường bao đối tượng với tiêu chí tỉ lệ 3.5 ≤ W H ≤ 4.5 ho c 0.8 ặ ≤ W H ≤1.4
đ tim ra nh ng vung có th là bi n s nh t.ể ữ ể ể ố ấ
-Ti n hành c t các vung có th là bi n s nh t trên nh đ làm ngu n cho giaiế ắ ể ể ố ấ ả ể ồ
đo n c t ký t đ làm m u cho các quá trinh nh n d ng ký t a ắ ự ể ẫ ậ a ự
2.2.4 Nh n d ng các kí t ậ ạ ự
Nh n d ng ký t quang h c (OCR)ậ a ự ọ là lo i ph n m m máy tính đa ầ ề ượ ac t o ra đ ểchuy n các hinh nh c a ch vi t tay ho c ch đánh máy (thể ả ủ ữ ế ặ ữ ường được quét
b ng máy scanner) thành các văn b n tài li u.ằ ả ệ
Trong đ tài này chúng ta s d ng Tesseract OCR đ nh n d ng cáckí t chề ử ụ ể ậ a ự ữ
và s trong bi n s xe.ố ể ố
Trang 17
CHƯƠNG 3:KẾT QUẢ MÔ PHỎNG3.1 THIẾT KẾ WINDOW FORMS
Giao diện chương trình nhận dạng biển số:
Hình 3-1 Giao diện chương trình chính
Trang 18-Chữ bị bóng sáng do kính lắp hoặc bị đèn chiếu làm nhòe.
Trang 19-Ảnh bị che mất một phần nhỏ làm mất đi một phần ký tự hoặc ký tự dính liền vớiđường viền của biển làm quá trình tìm đối tượng nhầm chữ số và viền của biển làmột đối tượng.
-Ảnh có nhiều nhiễu không rõ, nhiều nhiễu sẽ làm các ký tự gần nhau sẽ được tính gần như là một đối tượng
Hình 3-4 Các loại biển không nhận dạng đủ kí tự
Ngoài ra, chương trình cũng không nhận dạng dược các loại biển nền đỏ (xanh) chữtrắng
CHƯƠNG 4:KẾT LUẬN4.1 NHẬN XÉT
Sự phát triển của công nghệ thông tin đã có tác động đến nhiều mặt của đời sống xãhội trong đó phải kể đến lĩnh vực giám sát tự động Trong giám sát tự động, việcgiám sát đối với các phương tiện giao thông là một vấn đề nổi trội Nhiều chínhphủ, thành phố trên thế giới đã xây dựng hệ thống giám sát tự động đối với cácphương tiện giao thông của mình Và các hệ thống giám sát đều lấy biển số xe làmục tiêu giám sát
Ở nước ta, các hệ thống giám sát tự động nói chung và các hệ thống nhận dạng biển
số xe nói riêng chưa được chú ý tới và nó cũng là một lĩnh vực tương đối mới mẻ
Đa phần các công tác quản lý, xử lý đối với các phương tiện giao thông đều cầnnhân lực là con người Đề tài này nhằm mục đích tìm hiểu bài toán giám sát, quản
lý các phương tiện giao thông một cách tự động thông qua việc “Nhận dạng biển số
Trang 20xe” Tôi hy vọng rằng trong thời gian không xa các hệ thống này được sử dụngnhiều nhằm hỗ trợ một phần công tác giám sát, quản lý các phương tiện giao thôngmột cách hiệu quả hơn.
4.2 HƯỚNG PHÁT TRIỂN
Nâng cao hiệu quả chương trình, tách ly các kí tự trong biển số trong các trườnghợp biển số bị nhiều nhiễu, mất mát thông tin do nhiễu từ điều kiện môi trường, tìmvùng biển số trong ảnh có độ tương phản giữa biển số và nền thấp Đặc biệt là biển
TÀI LIỆU THAM KHẢO
[1] tailieu.vn
[2] https://www.visualstudio.com/
[3] http://www.emgu.com/wiki/index.php/Documentation
Trang 22/// <param name="colorImage">Source color image.</param>
/// <param name="thresholdValue">Value used for thresholding.</param> /// <param name="processedGray">Resulting gray image.</param>
/// <param name="processedColor">Resulting color image.</param>
public int IdentifyContours(Bitmap colorImage, int thresholdValue, bool invert, out Bitmap processedGray, out Bitmap processedColor, out List<Rectangle> list)
{
List<Rectangle> listR = new List<Rectangle>();
#region Conversion To grayscale
Image<Gray, byte> grayImage = new Image<Gray, byte>(colorImage); //grayImage = grayImage.Resize(400, 400,