TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN KHO DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP KHAI PHÁ ĐỀ TÀI ỨNG DỤNG GIẢI THUẬT K NN CHO BÀI TOÀN NHẬN DIỆN BIỂN SỐ XE MÁY Giáo vi.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN
KHO DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP KHAI PHÁ
ĐỀ TÀI: ỨNG DỤNG GIẢI THUẬT K-NN CHO BÀI TOÀN
NHẬN DIỆN BIỂN SỐ XE MÁY
Giáo viên hướng dẫn: Ts Nguyễn Mạnh Cường Nhóm: 6
Sinh viên thực hiện: Bùi Thanh Sơn - 2018603582
Hoàng Bảo Lộc - 2017602950 Đào Xuân Tùng - 2018600226
Hà Nội, năm 2022
Trang 2MỤC LỤC
MỤC LỤC i
LỜI CẢM ƠN iii
MỞ ĐẦU 1
CHƯƠNG 1 BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE 2
1.1 Khái niệm biển số xe 2
1.2 Xử lý ảnh và Open CV 2
1.3 Hướng giải quyết 3
CHƯƠNG 2 MỘT SỐ KỸ THUẬT HIỆN CÓ 5
2.1 Support Vector Machine (SVM) 5
2.1.1 SVM là gì? 5
2.1.2 SVM làm việc như thế nào? 5
2.1.3 Margin trong SVM 12
2.1.4 Kết luận về bài toán 12
2.2 Kĩ thuật K-láng giếng gần nhất (K-Nearest Neighbor - KNN) 13
2.2.1 Khái niệm 14
2.2.2 Ứng dụng 14
2.2.3 Lưu ý khi sử dụng 15
2.2.4 Ưu nhược điểm 16
CHƯƠNG 3 NHẬN DIỆN BIỂN SỐ XE BẰNG GIẢI THUẬT KNN VÀ OPENCV 17
3.1 PHÁT HIỆN VỊ TRÍ VÀ TÁCH BIỂN SỐ XE 17
3.1.1 Hướng giải quyết 17
3.1.2 Chuyển ảnh xám 18
3.1.3 Tăng độ tương phản 18
3.1.3.1 Phép toán hình thái học 18
3.1.3.2 Tăng độ tương phản 21
3.1.4 Giảm nhiễu bằng bộ lọc Gauss 22
3.1.4.1 Nhiễu 22
3.1.4.2 Bộ lọc Gauss (Gauss filter) 23
3.1.5 Nhị phân hóa với ngưỡng động (Adaptive Threshold) 24
3.1.5.1 Ảnh nhị phân 24
Trang 33.1.5.2 Nhị phân hóa 24
3.1.5.3 Nhị phân hóa với ngưỡng động 24
3.1.6 Phát hiện cạnh Canny (Canny Edge Detection) 25
3.1.7 Lọc biển số với contour 28
3.1.7.1 Một số phương pháp tìm contour 28
3.1.7.2 Lọc biển số 31
3.2 PHÂN ĐOẠN KÍ TỰ 32
3.2.1 Hướng giải quyết 32
3.2.2 Xoay biển số 33
3.2.3 Tìm vùng đối tượng 34
3.2.4 Tìm và tách kí tự 35
3.3 NHẬN DIỆN KÍ TỰ 36
3.3.1 Tổng quan về lý thuyết 36
3.3.1.1 AI (Artificial Intelligent) 36
3.3.1.2 Machine Learning 37
3.3.1.3 Thuật toán KNN (K - Nearest Neighbor) 38
3.3.2 Hướng giải quyết 41
CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 44
4.1 Cách thức đo đạc, thử nghiệm 44
4.2 Kết quả và giải thích 44
4.4 Hạn chế: 50
4.5 Hướng phát triển: 50
TÀI LIỆU THAM KHẢO 52
Trang 4LỜI CẢM ƠN
Lời đầu tiên cho phép chúng em gửi lời cảm ơn sâu sắc tới các thầy côtrong khoa Công nghệ thông tin - Trường Đại học Công Nghiệp Hà Nội,những người đã hết mình truyền đạt và chỉ dẫn cho chúng em những kiếnthức, những bài học quý báu và bổ ích Đặc biệt chúng em xin được bày tỏ sựtri ân và xin chân thành cảm ơn giảng viên Ts Nguyễn Mạnh Cường, ngườitrực tiếp hướng dẫn, chỉ bảo chúng em trong suốt quá trình học tập, nghiêncứu và hoàn thành được bài tập lớn
Nhận dạng biển số xe là một vấn đề quan trọng trong việc kiểm soát cácphương tiện cơ giới và kiểm soát an ninh trên toàn cầu Nhiệm vụ của bài toán
là nhận dạng các chữ và số trên biển số xe trong các hình ảnh và video Đây làmột bài toán rất thường gặp trong thực tế và đã có rất nhiều mô hình được đưa
ra để giải quyết như: K-NN (K-NearestNeighbor) và SVM (Support VectorMachine) Mỗi mô hình đều cho kết quả khá tốt cho bài toán này, tuy nhiên
mô hình nhận dạng biển số xe bằng mô hình K-NN được sử dụng phổ biến và
dễ dàng cài đặt Chính vì vậy chúng em lựa chọn đề tài: “ Ứng dụng giải thuậtK-NN cho bài toán nhận dạng biển số xe máy “ làm đề tài kết thúc môn họccủa mình
Trong quá trình nghiên cứu và làm đề tài, do năng lực, kiến thức, trình
độ bản thân chúng em còn hạn hẹp nên không tránh khỏi những thiếu sót vàchúng em mong mỏi nhận được sự thông cảm và những góp ý từ quý thầy côcũng như các bạn trong lớp Chúng em xin chân thành cảm ơn!
Trang 5MỞ ĐẦU
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ểncủa các ngành khoa học kỹ thuật nói chung, mà trong đó ngành công nghiệpsả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 quahình ảnh các phương tiện giao thông trên thế giới ngày một tăng cao và đadạ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
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ện giao thông nói chung và quản lý ôtô, xe máy là vô cùng phứctạp cũng như công tá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ều thời gian và công sức hơn
Để làm giảm lượng nhân lực trong việc công tác quản lý, kiểm soátphương tiện giao thông, trên thế giới đã nhanh chóng xây dựng hệ thống giámsát tự động đối với các phương tiện giao thông Và các hệ thống giám sát đềulấy biển số xe là mục tiêu giám sát Hệ thống này đã được sử dụng rộng rãituy nhiên ở Việt Nam đây vẫn là một lĩnh vực mới mẻ
Do đó em chọn làm đề tài “Tìm hiểu hệ thống nhận dạng biển số xe” vớimục đích để tìm hiểu nhằm trợ giúp cho công tác giám sát, quản lý cácphương tiện giao thông một cách hiệu quả, dễ dàng và nhanh chóng hơn
Trang 6CHƯƠNG 1 BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE
1.1 Khái niệm biển số xe
Ở Việt Nam, biển kiểm soát xe cơ giới (hay còn gọi tắt là biển kiểmsoát, biển số xe) là tấm biển gắn trên mỗi xe cơ giới, được cơ quan công an cấp(đối với xe quân sự do Bộ Quốc phòng cấp) khi mua xe mới hoặc chuyểnnhượng xe Biển số xe được làm bằng hợp kim nhôm sắt, có dạng hình chữnhật hoặc hơi vuông, trên đó có in số và chữ (biển xe dân sự không dùng cácchữ cái I, J, O, Q, W Chữ R chỉ dùng cho xe rơ-moóc, sơ-mi rơ-moóc) chobiết: Vùng và địa phương quản lý, các con số cụ thể khi tra trên máy tính còncho biết danh tính người chủ hay đơn vị đã mua nó, thời gian mua nó phục vụcho công tác an ninh, đặc biệt trên đó còn có hình Quốc huy Việt Nam dập nổi
Tiêu chuẩn về kích thước: Ở mỗi nước thường có tiêu chuẩn về kíchthước nhất định, còn riêng Việt Nam tỉ lệ kích thước giữa các biển số là gầnnhư giống nhau Biển số xe có 2 loại, kích thước như sau: Loại biển số dài cóchiều cao 110 mm, chiều dài 470 mm; loại biển số ngắn có chiều cao 200 mm,chiều dài 280 mm nên ta sẽ giới hạn tỉ lệ cao /rộng là 3.5 ≤ cao/rộng ≤ 6.5 (biển một hàng) và 0.8 ≤ cao/rộng ≤ 1.5 (biển hai hàng)
Số lượng kí tự trong biển số xe nằm trong khoảng [7,9] Chiều cao củachữ và số: 80mm, chiều rộng của chữ và số: 40mm Từ những đặc điểm trên ta
có thể thiết lập nhưng thông số, điều khiển để lọc chọn những đối tương phùhợp mà ta cần
1.2 Xử lý ảnh và Open CV
Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý làảnh Đây là một phân ngành khoa học mới rất phát triển trong những năm gầnđây Xử lý ảnh gồm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhậndạng ảnh, nén ảnh và truy vấn ảnh Sự phát triển của xử lý ảnh đem lại rấtnhiều lợi ích cho cuộc sống của con người Ngày nay xử lý ảnh đã được ápdụng rất rộng rãi trong đời sống như: photoshop, nén ảnh, nén video, nhận
Trang 71.3 Hướng giải quyết
Hiện nay trên thế giới đã có rất nhiều cách tiếp cận khác nhau với việc nhận dạng biển số xe, tuy nhiên trong phạm vi bài tập lớn này em sẽ giải quyết vấn đề theo 3 bước chính:
1 Phát hiện vị trí và tách biển số xe từ một hình ảnh có sẵn từ đầu vào là camera
2 Phân đoạn các kí tự có trong biển số xe
3 Nhận diện các kí tự đó rồi đưa về mã ASCII
Trang 8Hình 1.1 - Các bước chính trong nhận dạng biển số xe
Trang 9CHƯƠNG 2 MỘT SỐ KỸ THUẬT HIỆN CÓ
2.1 Support Vector Machine (SVM)
2.1.1 SVM là gì?
SVM là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân
loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại.Trong thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều ( ởđây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một
phần liên kết Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân
chia các lớp Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phânchia các lớp ra thành hai phần riêng biệt
2.1.2 SVM làm việc như thế nào?
Ở trên, chúng ta đã thấy được việc chia hyper-plane Bấy giờ làm thế nàochúng ta có thể xác định "Làm sao để vẽ-xác định đúng hyper-plane" Chúng ta
sẽ theo các tiêu chí sau:
Identify the right hyper-plane (Scenario-1):
Ở đây, có 3 đường lane (A,B and C) Bây giờ đường nào là
Trang 10hyper-lane đúng cho nhóm ngôi sao và hình tròn.
Quy tắc số một để chọn 1 hyper-lane, chọn một hyper-plane để phân chiahai lớp tốt nhất Trong ví dụ này chính là đường B
Identify the right hyper-plane (Scenario-2):
Ở đây chúng ta cũng có 3 đường hyper-plane (A,B và C), theo quy tắc số
1, chúng đều thỏa mãn
Trang 11Quy tắc thứ hai chính là xác định khoảng cách lớn nhất từ điểu gần nhấtcủa một lớp nào đó đến đường hyper-plane Khoảng cách này được gọi là
"Margin", Hãy nhìn hình bên dưới, trong đấy có thể nhìn thấy khoảng cáchmargin lớn nhất đấy là đường C Cần nhớ nếu chọn lầm hyper-lane có marginthấp hơn thì sau này khi dữ liệu tăng lên thì sẽ sinh ra nguy cơ cao về việc xácđịnh nhầm lớp cho dữ liệu
Identify the right hyper-plane (Scenario-3):
Sử dụng các nguyên tắc đã nêu trên để chọn ra hyper-plane cho trườnghợp sau:
Trang 12Có thể có một vài người sẽ chọn đường B bởi vì nó có margin cao hơnđường A, nhưng đấy sẽ không đúng bởi vì nguyên tắc đầu tiên sẽ là nguyên tắc
số 1, chúng ta cần chọn hyper-plane để phân chia các lớp thành riêng biệt Vìvậy đường A mới là lựa chọn chính xác
Trang 13 Can we classify two classes (Scenario-4)?
Tiếp the hãy xem hình bên dưới, không thể chia thành hai lớp riêng biệtvới 1 đường thẳng, để tạo 1 phần chỉ có các ngôi sao và một vùng chỉ chứa cácđiểm tròn
Ở đây sẽ chấp nhận, một ngôi sao ở bên ngoài cuối được xem như mộtngôi sao phía ngoài hơn, SVM có tính năng cho phép bỏ qua các ngoại lệ và tìm
ra hyper-plane có biên giới tối đa Do đó có thể nói, SVM có khả năng mạnhtrong việc chấp nhận ngoại lệ
Trang 15 Find the hyper-plane to segregate to classes (Scenario-5)
Trong trường hợp dưới đây, không thể tìm ra 1 đường hyper-plane tương đối để chia các lớp, vậy làm thế nào để SVM phân tách dữ liệu thành hai lớp riêng biệt? Cho đến bây giờ chúng ta chỉ nhìn vào các đường tuyến tính hyper-plane
SVM có thể giải quyết vấn đề này, Khá đơn giản, nó sẽ được giải quyếtbằng việc thêm một tính năng, Ở đây chúng ta sẽ thêm tính năng z = x^2+ y^2.Bây giờ dữ liệu sẽ được biến đổi theo trục x và z như sau
Trang 16Trong sơ đồ trên, các điểm cần xem xét là: • Tất cả dữ liệu trên trục z sẽ
là số dương vì nó là tổng bình phương x và y • Trên biểu đồ các điểm tròn đỏxuất hiện gần trục x và y hơn vì thế z sẽ nhỏ hơn => nằm gần trục x hơn trong
đồ thị (z,x) Trong SVM, rất dễ dàng để có một siêu phẳng tuyến tính (linearhyper-plane) để chia thành hai lớp, Nhưng một câu hỏi sẽ nảy sinh đấy là,chúng ta có cần phải thêm một tính năng phân chia này bằng tay hay không.Không, bởi vì SVM có một kỹ thuật được gọi là kernel trick ( kỹ thuật hạtnhân), đây là tính năng có không gian đầu vào có chiều sâu thấm và biến đổi nóthành không gian có chiều cao hơn, tức là nó không phân chia các vấn đề thànhcác vấn đề riêng biệt, các tính năng này được gọi là kernel Nói một cách đơngiản nó thực hiện một số biết đổi dữ liệu phức tạp, sau đó tìm ra quá trình tách
dữ liệu dựa trên các nhãn hoặc đầu ra mà chúng ra đã xác định trước
Trang 172.1.3 Margin trong SVM
Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhấttươ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, marginchí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 quantrọ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
2.1.4 Kết luận về bài toán
Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưuđiểm trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn Có thể kểthêm một số ưu điểm của phương pháp này như:
Trang 18 Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệuquả trong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toánphân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn.
Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụngtrong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mớinên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyếtđịnh
Tính linh hoạt - phân lớp thường là phi tuyến tính Khả năng áp dụngKernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyếntính từ đó khiến cho hiệu suất phân loại lớn hơn
Bên cạnh đó SVM cũng có một vài nhược điểm:
Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập
dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khátồi
Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cốgắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM Điềunày chưa giải thích được xác suất xuất hiện của một thành viên trong mộtnhóm là như thế nào Tuy nhiên hiệu quả của việc phân lớp có thể được xácđịnh dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp
mà chúng ta đã bàn luận ở trên
Kết luận: SVM là một phương pháp hiệu quả cho bài toán phân lớp dữ liệu Nó
là một công cụ đắc lực cho các bài toán về xử lý ảnh, phân loại văn bản, phântích quan điểm Một yếu tố làm nên hiệu quả của SVM đó là việc sử
dụng Kernel function khiến cho các phương pháp chuyển không gian trở nên
linh hoạt hơn
Trang 192.2 Kĩ thuật K-láng giếng gần nhất (K-Nearest Neighbor - KNN)
2.2.2 Ứng dụng
Trang 20KNN là một mô hình đơn giản và trực quan nhưng vẫn có hiệu quả cao
vì nó không tham số; mô hình không đưa ra giả định nào về việc phân phối dữliệu Hơn nữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp
Thuật toán KNN có nhiều ứng dụng trong ngành đầu tư, bao gồm dựđoán phá sản, dự đoán giá cổ phiếu, phân bổ xếp hạng tín dụng trái phiếudoanh nghiệp, tạo ra chỉ số vốn và trái phiếu tùy chỉnh
- Kiến thức về dữ liệu và hiểu biết về các mục tiêu của phân tích là cácbước quan trọng trong quá trình xác định đặc điểm tương đồng
Kết quả KNN có thể nhạy cảm với việc bao gồm các đặc điểm khôngliên quan hoặc tương quan, do đó cần phải chọn các đặc điểm một cách thủcông Bằng cách đó, nhà phân tích loại bỏ thông tin ít giá trị hơn để giữ thôngtin liên quan và phù hợp nhất
Nếu được thực hiện chính xác, quá trình này sẽ tạo ra một thước đokhoảng cách điển hình hơn Các thuật toán KNN có xu hướng hoạt động tốthơn với một số lượng nhỏ các tính năng
- Số k là siêu tham số của mô hình (hyperparameter), các giá trị khácnhau của k có thể dẫn đến các kết luận khác nhau Ví dụ, để dự đoán xếp hạngtín dụng của trái phiếu chưa được xếp hạng, k nên là 3, 15 hay 50 trái phiếutương tự nhất với trái phiếu chưa được xếp hạng?
Trang 21Nếu k là số chẵn, có thể không có phân loại rõ ràng Chọn giá trị cho kquá nhỏ sẽ dẫn đến tỉ lệ lỗi cao và độ nhạy đối với các điểm dữ liệu bất thườngmang tính cục bộ Nhưng chọn giá trị cho k quá lớn sẽ làm giảm đi tính chấtkhái niệm láng giềng gần nhất vì lấy trung bình quá nhiều kết quả.
Trên thực tế, một số kĩ thuật khác nhau có thể được sử dụng để xác địnhgiá trị tối ưu cho k, cần chú ý đến số lượng các loại (categories) và phân vùngcủa chúng trong mô hình
2.2.4 Ưu nhược điểm
a Ưu điểm
Độ phức tạp tính toán của quá trình training là bằng 0 Việc dự đoán kết quả của dữ liệu mới rất đơn giản Không cần giả sử gì về phân phối của các classb.Nhược điểm
KNN rất nhạy cảm với nhiễu khi K nhỏ Như đã nói, KNN là một thuật toán mà mọi tính toán đều nằm ở khâu test Trong đó việc tính khoảng cách tới từng điểm dữ liệu trong training set sẽ tốn rất nhiều thời gian, đặc biệt là với các
Trang 22CHƯƠNG 3 NHẬN DIỆN BIỂN SỐ XE BẰNG GIẢI
THUẬT KNN VÀ OPENCV3.1 PHÁT HIỆN VỊ TRÍ VÀ TÁCH BIỂN SỐ XE
3.1.1 Hướng giải quyết
Sơ đồ dưới đây sẽ tóm gọn các bước để xác định và tách biển số xe từ clip:
Hình 3.1 Xác định và tách biển số xe
Ở phạm vi bài tập lớn này, ý tưởng chủ yếu là nhận diện được biển số từ sựthay đổi đột ngột về cường độ ánh sáng giữa biển số và môi trường xung quanhnên ta sẽ loại bỏ các dữ liệu màu sắc RGB bằng cách chuyển sang ảnh xám.Tiếp theo ta tăng độ tương phản với hai phép toán hình thái học Top Hat vàBlack Hat để làm nổi bật thêm biển số giữa phông nền, hỗ trợ cho việc xử lýnhị phân sau này Sau đó, ta giảm nhiễu bằng bộ lọc Gauss để loại bỏ nhữngchi tiết nhiễu có thể gây ảnh hưởng đến quá trình nhận diện, đồng thời làm tăngtốc độ xử lý
Việc lấy ngưỡng sẽ giúp ta tách được thông tin biển số và thông tin nền, ở đây
em chọn lấy ngưỡng động (Adaptive Threshold) Tiếp đó ta sử dụng thuật toánphát hiện cạnh Canny để trích xuất những chi tiết cạnh của biển số Trong quátrình xử lý máy tính có thể nhầm lẫn biển số với những chi tiết nhiễu, việc lọclần cuối bằng các tỉ lệ cao/rộng hay diện tích của biển số sẽ giúp xác định được
Trang 23đúng biển số Cuối cùng, ta sẽ xác định vị trí của biển số trong ảnh bằng cách
vẽ Contour bao quanh
3.1.2 Chuyển ảnh xám
Ảnh xám (Gray Scale) đơn giản là một hình ảnh trong đó các màu là các sắcthái của màu xám với 256 cấp độ xám biến thiên từ màu đen đến màu trắng,nằm trong giải giá trị từ 0 đến 255, nghĩa là cần 8 bits hay 1 byte để biểudiễn mỗi điểm ảnh này Lý do cần phải phân biệt giữa ảnh xám và các ảnhkhác nằm ở việc ảnh xám cung cấp ít thông tin hơn cho mỗi pixel Với ảnhthông thường thì mỗi pixel thường được cung cấp 3 trường thông tin trongkhi với ảnh xám chỉ có 1 trường thông tin, việc giảm khối lượng thông tingiúp tăng tốc độ xử lý, đơn giản hóa giải thuật nhưng vẫn đảm bảo các tác
vụ cần thiết
Ở bài này em sẽ chuyển ảnh xám từ hệ màu HSV thay vì RGB vì với khônggian màu HSV ta có ba giá trị chính là: Vùng màu (Hue), độ bão hòa(Saturation), cường độ sáng (Value) Vì lý do đó không gian màu HSVthích nghi tốt hơn đối với sự thay đổi ánh sáng từ môi trường ngoài Khichuyển đổi, ảnh xám ta cần là ma trận các giá trị cường độ sáng tách ra từ
Trang 24Hình 3.2 Ví dụ về phần tử cấu trúc
Hình thái học toán học đã được phát triển cho hình ảnh nhị phân, và sau đóđược mở rộng cho ảnh xám, Đây là một trong những kỹ thuật được áp dụngtrong giai đoạn tiền xử lý Hai phép toán thường dùng là phép giãn
nở (Dilation) và phép co (Erosion) Từ hai phép toán cơ bản này người ta pháttriển thành một số phép toán như phép đóng (Closing) và phép mở (Opening)
và phép Top Hat, Black Hat
Trang 25đường biên ảnh đối với những đoạn rời nhỏ.
Ảnh gốc Ảnh sau khi dùng phép giãn nở
Hình 3.4 Phép giãn nở
c Phép mở
Là thực hiện phép co trước sau đó mới thực hiện phép giãn nở Phép toán mởđược ứng dụng trong việc loại bỏ các phần lồi lõm và làm cho đường bao cácđối tượng trong ảnh trở nên mượt mà hơn
Ảnh gốc Ảnh sau khi dùng phép đóng
Trang 26Để làm tăng độ tương phản của biển số, em sử dụng chủ yếu hai phép Top Hat
và Black Hat Ý tưởng chung là ảnh đầu ra sẽ là ảnh gốc cộng thêm ảnh quaphép Top Hat và trừ đi ảnh qua phép Black Hat Những chi tiết đã sáng sẽ sánghơn và những chi tiết tối lại càng tối hơn, từ đó sẽ làm tăng độ tương phản chobiển số
Trang 27Ảnh gốc Ảnh sau khi tăng độ tương phản
Hình 3.9 Ảnh sau khi tăng độ tương phản
3.1.4 Giảm nhiễu bằng bộ lọc Gauss
3.1.4.1 Nhiễu
Noise được hiểu cơ bản là các dạng chấm hạt nhỏ phân bố trên hình ảnh Noise có thể làm biến dạng các chi tiết trong ảnh khiến cho chất lượng ảnh thấp
Trên thực tế có nhiều loại nhiễu, nhưng người ta thường chia làm ba loại:
nhiễu cộng, nhiễu nhân và nhiễu xung Bản chất của nhiễu thường tương ứngvới tần số cao và cơ sở lý thuyết của bộ lọc là chỉ cho những tín hiệu có tần sốnhất định đi qua, nên người ta thường sử dụng bộ lọc thông thấp hay trungbình
Hình 3.10 Nhiễu
Trang 283.1.4.2 Bộ lọc Gauss (Gauss filter)
Bộ lọc Gauss được cho là bộ lọc hữu ích nhất, được thực hiện bằng cách nhânchập ảnh đầu vào với một ma trận lọc Gauss sau đó cộng chúng lại để tạo thànhảnh đầu ra
Ý tưởng chung là giá trị mỗi điểm ảnh sẽ phụ thuộc nhiều vào các điểm ảnh ởgần hơn là các điểm ảnh ở xa Trọng số của sự phụ thuộc được lấy theo hàmGauss (cũng được sử dụng trong quy luật phân phối chuẩn)
Hình 3.11 Ma trận lọc Gauss
Giả sử ảnh là một chiều Điểm ảnh ở trung tâm sẽ có trọng số lớn nhất Các điểm ảnh ở càng xa trung tâm sẽ có trọng số giảm dần khi khoảng cách từ chúng tới điểm trung tâm tăng lên Như vậy điểm càng gần trung tâm sẽ càng đóng góp nhiều hơn vào giá trị điểm trung tâm.
Ảnh gốc Ảnh sau khi làm mờ, giảm nhiễu
Hình 3.12 Kết quả sử dụng bộ lọc Gauss