BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN TỬ
ĐỒ ÁN 2
ĐỀ TÀI:
NHẬN DẠNG BIỂN SỐ XE
BẰNG PHẦN MỀM MATLAB
GVHD : ThS. NGUYỄN TIẾN TÙNG
SVTH : TRẦN CAO MINH_10320281
NGUYỄN HOÀNG NHẠC_
LỚP : DHDT6BLT
TP. Hồ Chí Minh, tháng 11 năm 2011
LỜI CẢM ƠN
Chúng em xin gời đến toàn thể quý thầy cô trường Đại học công nghiệp Tp.HCM nói
chung và quý thầy cô khoa Công nghệ điện tử nói riêng lời cảm ơn chân thành nhất. Quý thầy cô
đã truyền đạt cho chúng em những kiến thức chuyên môn cũng như kinh nghiệm học tâp vô cùng
quý báu và phong phú trong suốt thời qua.
Đặc biệt chúng em xin cảm ơn sâu sắc đến Thầy ThS. Nguyễn Tiến Tùng đã hướng dẫn
chúng em rất tận tình trong suốt thời gian qua cùng những lời động viên, khích lệ đúng lúc giúp
chúng em vượt qua các thời điểm khó khăn nhất. Những tài liệu bổ ích mà thầy đã cung cấp cũng
như những lời góp ý vô cùng quý báo đã giúp chúng em hoàn thành đồ án này.
Cảm ơn tất cả bạn bè, những người đã đóng góp ý kiến và luôn động viên khuyến khích
giúp đỡ nhóm hoàn thành đồ án này.
Xin Chân thành cảm ơn !
Nhóm sinh viên thực hiện!
Trần Cao Minh
Nguyễn Hoàng Nhạc
TP. Hồ Chí Minh, ngày tháng năm 2011
PHIẾU NHẬN XÉT ĐỒ ÁN
(Dành cho giáo viên h ướng dẫn)
Độc Lập – Tự Do – Hạnh Phúc
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………
Ngày tháng năm 2011
Ký tên
MỤC LỤC
Lời mở đầu Trang
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG ẢNH 1
1.1GIỚI THIỆU CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE 5
1.2.1 Giới thiệu 5
1.2.2 Nội dung đồ án 5
1.2 TỔNG QUAN VỀ XỬ LÝ VÀ NHẬN DẠNG ẢNH 1
2.3.
2.3. CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH SỐ 17
17
2.3.1. Chuyển ảnh màu RGB thành ảnh mức xám 17
2.3.2. Phương pháp lọc nhiễu ảnh 17
2.3.2.1. Lọc tuyến tính 18
2.3.2.2. Lọc phi tuyến 18
2.3.2.3. Lọc trung vị 18
2.3.3. Phân vùng ảnh 21
2.3.3.1. Phương pháp phân vùng ảnh 21
2.3.3.2. Khái niệm biên 21
2.3.3.3. Thuật toán dò biên tổng quát 22
2.3.3.4. Phát hiện biên 23
2.3.3.5. Biến đổi Randon 24
CHƯƠNG 3: CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ XE 29
3.1 KHÁI QUÁT CHƯƠNG TRÌNH 29
3.2 TRÍCH VÙNG BIỂN SỐ XE 30
3.2.1. Xác định ngưỡng xám 30
3.2.2. Chương trình tìm góc nghiêng 31
3.3 CÁCH LY CÁC KÝ TỰ TRONG BIỂN SỐ 32
3.3.1. Chia biển số thành hai hàng 32
3.3.2. Cắt các ký tự trong 2 hàng 34
3.4 CHƯƠNG TRÌNH NHẬN DẠNG BIỂN SỐ 35
3.4.1. Tạo các mẫu 35
3.2.2. Tiến hành nhận dạng các ký tự 35
CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG 38
4.1 GIAO DIỆN CHƯƠNG TRÌNH 38
Xử lý và nhận dạng ảnh là một khoa học còn tương đối mới so với nhiều ngành
khoa học khác, một trong những lĩnh vực từ lâu được nhiều người quan tâm. Nó
liên quan đến nhiều ngành khoa học khác như hệ thống thông tin, lý thuyết thông
tin, lý thuyết thống kê, nhận dạng, dùng để nhận dạng các ký tự, chữ số, mặt
người, vân tay
Xử lý ảnh là quá trình bao gồm nhiều công đoạn như: thu nhận ảnh, tăng
cường ảnh, khôi phục ảnh, biến đổi ảnh, phân tích ảnh Các quá trình này đều
phải áp dụng nhiều thuật toán khác nhau, cũng như phương pháp sử dụng rất đa
dạng.
Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một mô
hình nào đó và gán cho chúng vào một lớp (gán cho đối tượng một tên gọi) dựa
theo những quy luật và các mẫu chuẩn.
Quá trình xử lý và nhận dạng ảnh tùy theo nhu cầu ứng dụng thực tế mà sử
dụng thuật toán và phương pháp khác nhau. Tuy nhiên theo trình tự nhất định
thực hiện các bước sau đây:
Hình 1.1: Sơ đồ nhận dạng ảnh tổng quát
Thu nhận ảnh: thu nhận ảnh qua camera, cũng có thể bộ cảm biến, ảnh
chụp được đưa vào máy tính làm cơ sở dữ liệu. Ảnh thu được là tín hiệu
tương tự.
Mã hóa: là quá trình biến đổi tín hiệu tương tự sang tín hiệu rời rạc và số
hóa bằng lượng tử hóa trước khi chuyển sang giai đoạn xử lý.
Phân tích ảnh: bao gồm nhiều công đoạn nhỏ:
Trước hết nâng cao chất lượng ảnh, do chất lượng ảnh thu được không đạt
yêu cầu với nhiều nguyên nhân khác nhau ( chất lượng thiết bị thu ảnh,
nguồn sáng, nhiễu,…).
Sau đó khôi phục ảnh để làm nổi bật một số đặc tính chính của ảnh, hay
làm cho ảnh giống nhất với trạng thái gốc ( trạng thái trước khi ảnh bị biến
dạng ).
Kế tiếp là phát hiện các đặc tính như: biên, phân vùng ảnh, trích chọn các
đặc tính,
là lấy phần trăm các điểm đen/trắng làm chỉ tiêu phân biệt, nhưng khi đó chữ quá
đậm có thể bị xem là hình ảnh.
Có nhiều phương pháp nhận dạng, nhưng nói chung được quy về 2 kiểu: nhận
dạng theo mẫu ( template-base ) và nhận dạng theo tính chất ( feature - base).
Phương pháp nhận dạng theo mẫu là so sánh với các mẫu chữ lưu sẵn.
Nhận dạng theo tính chất thì quy ô mực thành các tính chất quy định cách
thức viết nên con chữ.
Phương pháp nhận dạng theo mẫu thuộc loại cổ điển quy mỗi ô mực thành một
ma trận điểm 10 x 10. Các con chữ có thể có kích cỡ khác nhau nhưng đều quy
thành ma trận 10 x 10 và so sánh với mẫu để chọn mẫu gần nhất. Có nhiều cách
thức so sánh, chẳng hạn thông qua số lượng điểm khác biệt. Tuy nhiên do sự khác
biệt giữa các font chữ nhiều khi còn lớn hơn sự khác biệt giữa các con chữ cùng
font ( chẳng hạn chữ b và chữ h - 2 chữ này trong cùng một font còn có vẻ gần
nhau hơn so với cùng chữ trong font ), vì vậy thông thường các mẫu được phân
theo font. Sau khi xử lý một vài từ, hệ thống tự động xác định các con chữ hay
dùng và định font cho thích hợp.
Nhận dạng theo tính chất, trong hệ có 100 “ hệ chuyên gia” khác nhau, thực
chất là các thuật toán nhận dạng 100 con chữ ( từ A Z, a z, số, các dấu ). Các
con chữ được nhận dạng theo các tính chất như gạch nghiêng, đứng, nghiêng,
điểm uốn, phản xạ, chiều dài và hướng các dấu gạch. Hệ chuyên gia còn xem xét
hình chiếu dọc, ngang ( cộng với các điểm đen theo hàng/cột ) để xác định thêm
các tham số khác. Kiểu nhận dạng này dựa trên tư duy quen thuộc sau: chẳng hạn
chữ t gồm một đường thẳng đứng cắt một vạch ngang, có thể có thêm các gạch
chân. Nếu nhận dạng theo mẫu phải lưu tất cả các mẫu khác nhau ( hệ
ExperVision chứa tới 2100 loại chữ ). Hệ OmniPage sẽ chỉ cho máy tính cách
“đọc” từng con chữ, ví dụ chữ k gồm một vạch đứng và hai vạch chéo, còn các
tham số khác chỉ là tham số phụ.
1.1.3 Các hạn chế của phương pháp truyền thống
Thực tế các trang văn bản không thể đạt được mức độ sạch sẽ, chuẩn mực. Còn
nhiễu khuyết điểm hiện tại là một vấn đề lớn đối với các hệ OCR, bởi vì chỉ cần
quyết định tính hiệu quả của hệ thống xử lý ảnh như vậy sẽ là phần mềm xử lý
ảnh. Với vai trò như đã phân tích ở trên nghiên cứu này tập trung vào giải quyết
các vấn đề đặt ra khi xử lý ảnh để đưa ra chính xác biển số đăng ký xe.
1.2.2 Nội dung đồ án
Cũng như mọi hệ thống tự động khác bao gồm phần cứng và phần mềm. Phần
cứng hệ thống này chính là Camera hay Webcam có tác dụng thu nhận chụp hình
ảnh biển số xe, hay l những ảnh chụp từ máy ảnh đây là dữ liệu đầu vào. Phần
mềm Matlab sẽ xử lý và nhận dạng ảnh, sau đó đưa ra chính xác biển số xe. Có thể
tóm tắt yêu cầu đưa ra theo sơ đồ sau:
Hình 1.2: Sơ đồ nhận dạng biển số xe
Từ lưu đồ trên ta thấy hệ thống nhận dạng biển số xe này có thể chia thành
ba giai đoạn chính: trích biển số, tách ký tự và nhận dạng các ký tự như sau:
Bắt hình từ camera: là quá trình capture từng khung hình trong video
stream liên tục từ camera. Quá trình bắt hình được thực hiện tự động liên
tục, theo chu kì, hay tùy vào sự quyết định của các điều kiện khác.
Tiền xử lý ảnh: Tại đây các phép tiền xử lý ảnh như: chuyển đổi không gian
màu, khử nhiễu, cân bằng sáng được tiến hành nhằm chuẩn bị dữ liệu tốt,
phù hợp tùy theo yêu cầu của các thuật toán xử lý ở mức cao hơn
Xử lý trích xuất vùng biển số xe: trong bước thu nhận ảnh từ camera
(webcam) hay những ảnh chụp từ máy chụp ảnh sau khi đưa vào máy tính
làm cơ sở dữ liệu, ta dựa vào một số đặc điểm cơ bản của biển số xe so với
các vật thể khác trong ảnh, áp dụng các thuật toán trích ra được vùng ảnh
nhỏ nhất chứa biển số. Công đoạn này thực hiện dựa vào 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, độ sáng,
sự đối xứng để xác định và trích ra ảnh biển số. Phần này xác định bằng các
thuật toán chính: xác định ngưỡng xám, phát hiện biên, phân vùng ảnh.
Cô lập các ký tự trong biển số xe: tách thành 8 hoặc 9 ký tự trong biển số
xe, công đoạn này cũng thực hiện giống như trích biển số.
Nhận diện các ký tự: nhận dạng các ký tự từ các ký tự đã được tách ra.
CHƯƠNG 2
Mỗi phần tử ảnh gọi là một pixel thể hiện cường độ sáng hay mức xám trong
ảnh. Pixel là phần tử nhỏ nhất của ảnh, thường được biểu diễn bởi mảng hai chiều
f(x,y). Một ảnh bao gồm x×y điểm. Cặp tọa độ x, y tạo nên độ phân giải của ảnh.
2.1.3 Cấu trúc một file ảnh
Một file ảnh là tập hợp nhiều điểm ảnh được minh họa hình 2.1
Hình 2.1: Mảng hai chiều của một file ảnh
Vậy ảnh được xem như một ma trận tọa độ ảnh. Do đó hàm f(x,y) còn có thể
biểu diễn dưới dạng ma trận như sau:
Hay
Trong đó,
a
i,j
=
f(x=i,y=j)=f(i,j) , với M là số hàng, N là số cột.
2.1.4 Mức xám ( Gray Level)
Mức xám là kết quả sự mã hóa tương ứng một cường độ sáng của mỗi điểm
ảnh với một giá trị nhất định, mỗi pixel có thể mã hóa 8 bit (0 đến 255) hay 16, 32
hay 64 bit. Tạo thành ma trận dữ liệu.
Hình 2.2: Minh họa mức xám sau khi mã hóa
2.1.5 Ảnh chỉ số
Với cách biểu diển ảnh này, mỗi ảnh sẽ được biểu diễn bởi 2 ma trận, một ma
trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map. Ma trận dữ
liệu có thể thuộc kiểu uint8, uint16, hoặc double. Ma trận màu là một ma trận kích
thước m x 3 gồm các phần tử kiểu double có giá trị trong khoảng [0,1]. Mỗi hàng
của ma trận xác định các thành phần red, green, blue của một màu trong tổng số m
màu được sử dụng trong ảnh. Giá trị của một phần tử trong ma trận dữ liệu cho
biết màu của điểm ảnh đó là màu nằm ở hàng nào trong ma trận màu. Nếu ma trận
dữ liệu thuộc kiểu double, giá trị 1 sẽ tương ứng với hàng thứ 1 trong bảng màu,
giá trị thứ 2 tương ứng với màu ở hàng thứ 2, Nếu ma trận dữ liệu thuộc kiểu
hoặc uint16, giá trị 0 ứng với hàng 1, giá trị 1 tương ứng với hàng 2, Riêng với
Blue :
λ
(B) = 435.8 nm.
Cũng theo tổ chức quốc tế về chuẩn hóa màu CIE (Commision Internationaled
Eclairage ) đã đưa ra một số tiêu chuẩn để biểu diễn màu.
Hình 2.4: Mô hình màu RGB
Mỗi màu cơ bản được mã hóa bởi 8 bit, vậy với ba màu phối hợp nhau tạo
thành 255x255x255 =16.581.375 màu thứ cấp mà mắt người có thể cảm nhận
được.
Ảnh màu được tạo thành từ 3 mức xám Red, Green, Blue. Do đó ảnh màu
RGB mỗi Pixel có 3 xám Red, Green, Blue khác nhau chứa dữ liệu 8 bit [0;255]
hay dữ liệu 16 bit [0;65535].
Hình 2.5: Minh họa ảnh màu sau khi mã hóa
2.1.9 Dãy ảnh đa khung
Trong một số ứng dụng, người sử dụng có thể có nhu cầu lưu một chuỗi các
ảnh ghi nhận tại những thời điểm liên tiếp nhau để tiện cho việc hiển thị, ví dụ ảnh
từ các đoạn video hoặc các lát cắt từ máy chụp ảnh cộng hưởng từ, Để phục vụ
cho các ứng dụng này, MATLAB cho phép ta lưu nhiều ảnh thành một dãy, mỗi
ảnh gọi là một frame, bằng hàm cat.
>> multi = cat(4, A1, A2, A3, ) % A1, A2, A3, là các ảnh cần lưu.
Ta cũng có thể truy xuất đến một frame trong dãy ảnh đa frame này theo cách
như sau:
>> frm3 = multi(:,:,:,3) % truy xuất frame thứ 3
2.2 CÁC KỸ THUẬT XỬ LÝ ẢNH SỐ
2.2.1 Mục đích của việc xử lý ảnh số
Mục đích đặt ra cho việc xử lý ảnh bao gồm hai mục đích:
Thứ nhất: Biến đổi ảnh hay sự tăng cường ảnh nhằm thu lại ảnh tốt hơn.
Để rồi từ đó nhận được nhiều thông tin về ảnh hơn, ta có thể quan sát và
đánh giá được.
Thứ hai: Nhận dạng ảnh hay đón nhận ảnh một cách tự động.
Người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều đối tượng
khác nhau như : nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái, chữ số, chữ có
dấu).
2.3 CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH SỐ
2.3.1 Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level)
Ảnh gốc thường là ảnh màu 24 bit màu nên khó nhận dạng ta cần phải chuyển
về ảnh xám dữ liệu 8 bit để dễ nhận dạng hơn. Nghĩa là mỗi pixel được biểu diễn
256 cấp độ xám theo công thức:
X= 0,2125*R + 0,7145*G + 0,0721*B
Quá trình chuyển đổi mức xám tuy có làm mất đi một số thông tin nhưng cũng
có thể chấp nhận được.
2.3.2 Phương pháp lọc nhiễu ảnh
Nhiễu có thể coi như sự đột biến của một điểm ảnh so với các điểm lân cận.
Lọc nhiễu ảnh nhằm mục đích loại bỏ các đột biến của ảnh, ở đây ta sử dụng
phương pháp lọc số dựa trên tính dư thừa thông tin không gian, các pixel lân cận
có thể có cùng hoặc gần cùng một số đặc tính. Trong kỹ thuật này, người ta sử
dụng một mặt nạ và di chuyển khắp ảnh gốc. Tùy theo cách tổ hợp điểm đang xét
với các điểm lân cận mà ta có kỹ thuật lọc tuyến tính hay phi tuyến. Điểm ảnh chịu
tác động của biến đổi là điểm ở tâm mặt nạ.
2.3.2.1 Lọc tuyến tính
Trong kỹ thuật lọc tuyến tính, ảnh thu được sẽ là tổng trọng số. Nguyên tắc lọc
theo tổng trọng số được minh họa như sau :
1 2 3
4 5 6
7 8 9
u u u
u u u
u u u
có ưu điểm là lọc nhiễu nhưng không làm mờ ảnh. Trong kỹ thuật này, mức xám
của điểm ảnh trung tâm được thay thế bằng trung vị của một chuỗi các mức xám
của các điểm ảnh lân cận thay vì là giá trị trung bình. Trung vị m của một chuỗi
các giá trị là một giá trị sao cho một nửa các giá trị trong chuỗi nhỏ hơn m và một
nửa lớn hơn m.
Được sử dụng chủ yếu cho giảm nhiễu.
Một bộ lọc trung vị cũng dựa vào việc dùng một cửa sổ di chuyển trên ảnh,
và giá trị xám pixel đầu ra được thay thế bởi trung vị của các pixel trong
cửa sổ đó.
Thuật toán:
Các pixel trong của sổ sẽ được sắp xếp từ nhỏ tới lơn.
Nếu kích thước của cửa sổ =JxK là lẻ thì vị trí trung vị là (JxK +1) / 2 , ngược
lại thì vị trí trung vị là JxK / 2.
Phương pháp medium filter (lọc trung vị) dùng để lọc nhiễu trước khi qua bước
xử lý tiếp theo, như là phát hiện biên. Median filter là một kỹ thuật lọc số tuyến
tính.
Median filter là một bước phổ biến trong xử lý ảnh .
Trung vị được viết với công thức :
v(m,n) = trung vị (y(m-k),n-1)
Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong của sổ phải sắp xếp theo thứ tự
tăng hay giảm dần so với giá trị trung bình. Kích thước của của sổ thường được
chọn sao cho điểm ảnh trong của sổ là lẻ. Các cửa sổ hay dùng là của sổ có kích
thước 3x3, hay 5x5, hay 7x7
Ví dụ:
Nếu y(m) = {2,3,8,4,2} và cửa sổ W = (-1,0,1), ảnh thu được sao cho trung vị s là :
v(m) = (2,3,4,4,2)
Do đó :
v[0] = 2<giá trị biên>
v[1] = trung vị (2,3,8) = 3
v[2] = trung vị (3,4,8) = 4
pixel lân cận trên dòng trước và pixel bên trái được xem xét. Nếu bất kì pixel lân
cận nào được gán nhãn, nhãn tương tự được gán cho pixel đen hiện thời, ngược lại
nhãn tiếp theo chưa được sử dụng được chọn. Thủ tục này được tiếp tục cho tới
dòng cuối của ảnh.
Ảnh được nhận về là ảnh nhị phân, trong đó có nhiều đối tượng khác nhau ta
tiến hành chọn ra đối tượng nào là biển số còn đối tượng nào không phải biển số.
Dựa vào thuật toán gắn nhãn liên tiếp các đối tượng, cụ thể như sau:
Thuật toán phân vùng ảnh dựa trên kỹ thuật đánh nhãn liên tiếp.
Mặt nạ ảnh với 4 điểm lân cận.
Mặt nạ ảnh với 8 điểm lân cận.
Mặt nạ với 4 điểm lân cận và 8 điểm lân cận.
Quy ước khi quét ảnh:
Nếu điểm ảnh có giá trị là 0 thì gọi là điểm ảnh nền.
Nếu điểm ảnh có giá trị là 1 thì gọi là điểm ảnh nổi.
Ta chỉ đánh nhãn các điểm ảnh nổi.
Quá trình đánh nhãn ảnh được thực hiện theo các bước sau:
Bước 1: Tiến hành quét lần lượt tất cả các điểm ảnh từ trái sang phải, từ trên
xuống dưới. Nếu gặp điểm ảnh nền thì bỏ qua, nếu gặp điểm ảnh nổi thì tiến
hành đánh nhãn. Trước khi đánh nhãn cho mỗi điểm ảnh nổi, ta cần quan tâm
đến giá trị của điểm ảnh phía trên và điểm ảnh bên trái của điểm ảnh ta đang
xét. Nếu các điểm ảnh này đã được đánh nhãn thì điểm ảnh đang xét được đánh
nhãn trùng với điểm ảnh trên hoặc điểm ảnh bên trái đó. Nếu các điểm ảnh bên
trên và điểm ảnh bên trái là các điểm ảnh nền thì ta đánh nhãn mới cho điểm
ảnh đang xét.
Bước 2: Sau khi đánh nhãn tất cả các điểm ảnh nổi, ta cần nhóm các điểm ảnh
ở gần nhau nhưng lại được đánh nhãn khác nhau lại với nhau.
Bước 3: Thực hiện quét lại và đánh nhãn mới cho các nhóm điểm ảnh vừa
được nhóm lại ở trên.
2.3.3.2 Khái niệm biên
Biên là một vấn đề chủ yếu trong phân tích ảnh vì các kỹ thuật ảnh chủ yếu