Tải bản đầy đủ (.docx) (57 trang)

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 KNN CHO BÀI TOÀN NHẬN DIỆN BIỂN SỐ XE MÁY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.61 MB, 57 trang )

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ê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
Hồng Bảo Lộc - 2017602950
Đào Xuân Tùng - 2018600226

Hà Nội, năm 2022


2

MỤC LỤC



3

LỜ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ến
thứ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ười
trực tiếp hướng dẫn, chỉ bảo chúng em trong suốt quá trình học tập, nghiên
cứ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ác
phương tiện cơ giới và kiểm soát an ninh trên tồn cầu. Nhiệm vụ của bài tố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 tố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 Vector
Machine). Mỗi mơ hình đều cho kết quả khá tốt cho bài tố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ật
K-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ọc
củ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!


4

MỞ ĐẦ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ể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.
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ức
tạ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 sốt
phương tiện giao thơng, trên thế giới đã nhanh chóng xây dựng hệ thống giám
sá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 đều
lấ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ãi
tuy 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ới
mục đích để tìm hiểu nhằm trợ giúp cho cơng tác giám sát, quản lý các
phương tiện giao thông một cách hiệu quả, dễ dàng và nhanh chóng hơn.


5

CHƯƠNG 1. BÀI TOÁN NHẬN DIỆN BIỂN SỐ XE
1.1Khá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ểm
số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ển
nhượ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 vng, trên đó có in số và chữ (biển xe dân sự không dùng các
chữ cái I, J, O, Q, W. Chữ R chỉ dùng cho xe rơ-moóc, sơ-mi rơ-moóc) cho
biế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ịn

cho 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ích
thướ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ần
như 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ủa
chữ 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.2Xử 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ận
dạng ảnh, nén ảnh và truy vấn ảnh. Sự phát triển của xử lý ảnh đem lại rất
nhiều lợi ích cho cuộc sống của con người. Ngày nay xử lý ảnh đã được áp
dụng rất rộng rãi trong đời sống như: photoshop, nén ảnh, nén video, nhận


6

dạng biển số xe, nhận dạng khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên
văn, ảnh y tế,....
OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng
đầu cho xử lý về thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc

viết bằng C/C++, vì vậy có tốc độ tính tốn rất nhanh, có thể sử dụng với các
ứng dụng liên quan đến thời gian thực. Opencv có các interface cho C/C++,
Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS
OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt
quá 6 triệu lần. Opencv có rất nhiều ứng dụng như:


Nhận dạng ảnh



Xử lý hình ảnh



Phục hồi hình ảnh/video



Thực tế ảo



Các ứng dụng khác

1.3Hướ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.

2.
3.

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
Phân đoạn các kí tự có trong biển số xe
Nhận diện các kí tự đó rồi đưa về mã ASCII


7

Hình 1.1 - Các bước chính trong nhận dạng biển số xe


CHƯƠ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 tố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ân
chia 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ào
chú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 hyper-lane (A,B and C). Bây giờ đường nào là hyper-


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 chia
hai 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.


Quy tắc thứ hai chính là xác định khoảng cách lớn nhất từ điểu gần nhất
củ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ách
margin lớn nhất đấy là đường C. Cần nhớ nếu chọn lầm hyper-lane có margin
thấ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ường
hợp sau:


Có 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ì ngun 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.




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ệt
vớ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 ngồi cuối được xem như một
ngơi sao phía ngồ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ạnh
trong việc chấp nhận ngoại lệ.





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 hyperplane.

SVM có thể giải quyết vấn đề này, Khá đơn giản, nó sẽ được giải quyết
bằ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



Trong 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 (linear
hyper-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ạt
nhâ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ành
cá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 đơn
giả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.


2.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ấ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 ln 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 tố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ư:





Xử lý trên không gian số chiều cao: SVM là một cơng cụ tính tốn hiệu quả
trong khơng gian chiều cao, trong đó đặc biệt áp dụng cho các bài tốn phâ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ụng trong
quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nê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ụng Kernel
mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tí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 tố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ều nà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ột nhó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ân
tí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.

2.2 Kĩ thuật K-láng giếng gần nhất (K-Nearest Neighbor - KNN)


2.2.1 Khái niệm
Thuật toán K láng giềng gần nhất trong tiếng Anh là K-Nearest
Neighbor, viết tắt là KNN.
Thuật toán K láng giềng gần nhất là một kĩ thuật học có giám sát
(supervised learning) dùng để phân loại quan sát mới bằng cách tìm điểm
tương đồng giữa quan sát mới này với dữ liệu sẵn có.

Ví dụ:

Hình thoi trong Hình 1 đang cần được phân loại thuộc hình chữ thập
hoặc hình tam giác.
- Nếu k = 1, hình thoi sẽ được phân loại vào cùng loại với điểm dữ liệu
gần nhất của nó (tức là hình tam giác trong bảng bên trái - bảng A).
- Bảng bên phải (bảng B) thể hiện trường hợp k = 5, thuật toán sẽ xem
xét 5 điểm dữ liệu gần hình thoi nhất, đó là 3 hình tam giác và 2 hình chữ thập.
Qui tắc quyết định là chọn phân loại có số lượng lớn nhất trong 5 điểm dữ liệu


được xem xét. Vì vậy, trong trường hợp này, hình thoi cũng được xếp vào phân
loại tam giác.

2.2.2 Ứng dụng
KNN 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 tố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ếu
doanh nghiệp, tạo ra chỉ số vốn và trái phiếu tùy chỉnh.
2.2.3 Lưu ý khi sử dụng
- Một thách thức quan trọng của KNN là xác định thước đo để tính
khoảng cách giữa đối tượng cần phân lớp với các đối tượng còn lại trong cơ sở
dữ liệu. Vì đây là lựa chọn mang tính chủ quan nên nếu chọn thước đo khơng
phù hợp thì mơ hình sẽ khơng hiệu quả.
Ví dụ, nếu một nhà phân tích đang xem xét sự tương đồng về hiệu suất
của các cổ phiếu khác nhau trên thị trường, anh ta có thể xem xét sử dụng mối
tương quan của lợi nhuận trong quá khứ giữa các cổ phiếu như một thước đo.
- 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ác
bướ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ơng
liê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ông
tin liên quan và phù hợp nhất.


Nếu được thực hiện chính xác, q trình này sẽ tạo ra một thước đo
khoảng cách điển hình hơn. Các thuật tốn KNN có xu hướng hoạt động tốt
hơ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ác
nhau của k có thể dẫn đến các kết luận khác nhau. Ví dụ, để dự đốn xếp hạng
tí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ếu
tương tự nhất với trái phiếu chưa được xếp hạng?

Nếu k là số chẵn, có thể khơng có phân loại rõ ràng. Chọn giá trị cho k
quá 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ường
mang 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ất
khá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 định
giá trị tối ưu cho k, cần chú ý đến số lượng các loại (categories) và phân vùng
củ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 tốn của q 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 class
b.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
tốn mà mọi tính tố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
cơ sở dữ liệu có số chiều lớn và có nhiều điểm dữ liệu.



CHƯƠNG 3. NHẬN DIỆN BIỂN SỐ XE BẰNG GIẢI
THUẬT KNN VÀ OPENCV
3.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 quanh
nê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ững
chi tiết nhiễu có thể gây ảnh hưởng đến q trình nhận diện, đồng thời làm tăng
tố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 tốn
phát hiện cạnh Canny để trích xuất những chi tiết cạnh của biển số. Trong q
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ọc
lầ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


đú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ắc
thá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ểu
diễ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 ảnh
khác nằm ở việc ảnh xám cung cấp ít thơng tin hơn cho mỗi pixel. Với ảnh
thơng thường thì mỗi pixel thường được cung cấp 3 trường thông tin trong
khi với ảnh xám chỉ có 1 trường thơng tin, việc giảm khối lượng thông tin
giú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ơng
gian 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 HSV thích
nghi tốt hơn đối với sự thay đổi ánh sáng từ mơi trường ngồi. Khi chuyển
đổi, ảnh xám ta cần là ma trận các giá trị cường độ sáng tách ra từ hệ màu
HSV.

3.1.3 Tăng độ tương phản
3.1.3.1 Phép tốn hình thái học
Hình thái học toán học là một lý thuyết và kỹ thuật để phân tích và xử lý cấu
trúc hình học, hình ảnh đầu ra được xác định chủ yếu dựa vào phần từ cấu trúc
(structuring elements/kernel)


Hình 3.2 Ví dụ về phần tử cấu trúc

Hình thái học tố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ụng
trong 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át
triển thành một số phép tốn như phép đóng (Closing) và phép mở (Opening)
và phép Top Hat, Black Hat.
a. Phép co

Phép toán co có ứng dụng trong việc giảm kích thước của đối tượng, tách rời
các đối tượng gần nhau, làm mảnh và tìm xương của đối tượng.

Ảnh gốc

Ảnh sau khi dùng phép co
Hình 3.3 Phép co

b. Phép giãn nở

Phép tốn này có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về
kích thước (giãn nở ra). Ứng dụng của phép giãn nở là làm cho đối tượng trong



ảnh được tăng lên về kích thước, các lỗ nhỏ trong ảnh được lấp đầy, nối liền
đườ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 mở
Hình 3.5 Phép mở

d. Phép đóng

Thực hiện phép giãn nở trước sau đó mới thực hiện phép co. Phép tốn đóng
được dùng trong ứng dụng làm trơn đường bao các đối tượng, lấp đầy các
khoảng trống biên và loại bỏ những hố nhỏ.


×