Professional Documents
Culture Documents
MỤC LỤC............................................................................................................1
Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng
góp ý kiến và chỉ bảo nhiệt tình của thầy cô và bạn bè.
Em xin gửi lời cảm ơn chân thành đến thầy Th.s Nguyễn Tường Thành, giảng
viên bộ môn kỹ thuật điện tử truyền thông khoa Kỹ thuật và công nghệ trường Đại học
Quy Nhơn, người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình em làm đồ
án.
Em cũng xin chân thành cảm ơn các thầy cô trong trường Đại học Quy Nhơn nói
chung và Khoa kỹ thuật và công nghệ nói riêng đã dạy dỗ cho em kiến thức về các
môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết
vững vàng và tạo điều kiện cho em hoàn thành đồ án tốt nghiệp này.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện,
quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành đồ án tốt
nghiệp.
Em xin chân thành cảm ơn!!
Hồ Xuân Hiền
Xử lý và nhận dạng ảnh là một lĩnh vực từ lâu được nhiều người quan tâm.
Nó đã được ứng dụng vào nhiều lĩnh vực như:
- Trong y học, cải thiện ảnh X- quang và nhận dạng đường biên mạch máu
từ ảnh chụp bằng tia X , ứng dụng vào các xét nghi ệm lâm sang nh ư phát hi ện và
nhận dạng u não, nội soi cắt lớp…
- Trong thiên văn học, hệ thống chụp hình gắn trên tàu vũ trụ hạn ch ế v ề
kích thước và trọng lượng, do đó chất lượng hình ảnh nhận được bị giảm chất
lượng như bị mờ, méo hình học và nhiễu nền. Các hình ảnh đó được xử lý b ằng
máy tính.
- Trong các lĩnh vực công nghiệp, người máy ngày càng đóng vai trò quan
trọng. Chúng thực hiện các công việc nguy hiểm, đòi hỏi có tốc độ và đ ộ chính
xác cao vượt quá khả năng con người. Người máy sẽ trở nên tinh vi h ơn và th ị
giác máy tính đóng vai trò quan trọng hơn. Người ta sẽ không chỉ đòi hỏi người
máy phát hiện và nhận dạng các bộ phận công nghiệp mà còn phải “hi ểu ” được
những gì chúng “ thấy ” và đưa ra hành động phù hợp. Xử lý ảnh sẽ tác đ ộng đến
thị giác của máy tính.
- Ngoài ra, xử lý và nhận dạng còn được ứng dụng trong lĩnh vực khác ít
được nói đến hơn. Công an giao thông thường hay chụp ảnh trong môi tr ường
không thuận lợi, ảnh thường bị nhòe nên cần được xử lý và nhận dạng đ ể có th ể
nhìn thấy biển số xe.
Trong đồ án tốt nghiệp này em xin trình bày một đề tài là Nhận dạng, phân
loại, xử lý ảnh biển số xe bằng phần mềm.
Em xin chân thành cảm ơn Th.s Nguyễn Tường Thành đã tận tình hướng
dẫn em trong suốt thời gian làm đồ án và quý thầy cô khoa Kỹ thuật và công
nghệ trường Đại học Quy Nhơn đã truyền dạy những kiến thức quý báu trong
chương trình đào tạo đại học chính quy và giúp đỡ kinh nghiệm cho đồ án hoàn
thành được thuận lợi.
Lưu trữ
Sơ đồ khối tổng quát của hệ thống này được thể hiện trong hình 2.1, trong đó
gồm ba khối chức năng cơ bản:
Khối thu nhận ảnh: thực hiện chức năng thu nhận ảnh và thực hiện quá
trình số hóa (lưu giữ theo định dạng yêu cầu).
Khối phân tích ảnh: trước hết hệ thống tiến hành bước tiền xử lý ảnh với
mục đích tăng cường, cải thiện chất lượng ảnh, làm nổi các đặc trưng cơ bản
của ảnh hay làm cho ảnh gần giống nhất với trạng thái gốc. Sau đó, là quá trình
phân tích ảnh và trích chọn đặc trưng của ảnh ví dụ như biên, đi ểm gấp khúc,
điểm kết thúc, điểm chữ thập…
Hình 2.1.1.1e:: Lượt đồ mức xám của ảnh xám tương ứng
Một số nhà sản xuất (như Sony) sản xuất các loại màn hình đen tr ắng ch ất
lượng cao. Nên sử dụng loại màn hình chất lượng cao, vì màn hình ch ất l ượng
Cần có một máy tính P entium 4 hoặc cấu hình cao hơn. Để chắc chắn, các
máy này phải có sẵn các khe cắm cho phần xử lý ảnh. Các ch ương trình thi ết k ế
và lọc ảnh có thể chạy trên bất kỳ hệ thống nào. Các chương trình con hi ển th ị
ảnh dựng vỉ mạch VGA và có sẵn trên đĩa kèm theo. Các chương trình con hi ển
thị ảnh cũng hỗ trợ cho hầu hết các vỉ mạch SVGA.
Kết quả nhận dạng được lưu dưới dạng chuỗi các ký tự (character string)
được đưa vào chương trình quản lý cơ sở dữ liệu bi ển số xe máy. Tại đây cán b ộ
trông xe sẽ tiến hành các thao tác nghiệp vụ như: in vé xe, thu ti ền, lưu vào c ơ s ở
dữ liệu. Tuỳ
thuộc vào kết quả xử lý của chương trình quản lý hệ thống Barrier sẽ được ti ến
hành đóng mở tương ứng.
2.2.2 Hệ tọa độ màu:
2.2.2.1 Khái niệm:
Tổ chức quốc tế về chuẩn hóa màu CIE (Commission Internationale
d’Eclairage) đưa ra một số chuẩn để biểu diễn màu. Các hệ này có các chu ẩn
riêng. Hệ chuẩn màu CIE-RGB dùng 3 màu cơ bản R, G, B và ký hi ệu đ ể phân bi ệt
với các chuẩn khác. Như đã nêu trên, một màu là tổ h ợp của các màu c ơ b ản theo
một tỷ lệ nào đó. Như vậy, mỗi pixel ảnh màu ký hiệu , được viết:
=(T: ký hiệu chuyển vị)
X
Hình 2.22.1: Hệ tọa độ RGB
Tiếp theo chúng ta định nghĩa hàm răng lược với các khoảng Δx như sau:
Trong thực tế, r không thể tính được trong khoảng vô hạn (từ − ∞ đến +∞)
mà là một số lượng NΔx mẫu lớn cụ thể. Như vậy, để đơn giản có thể nói hàm
liên tục g(x) có thể biểu diễn trên một miền với độ dài NΔx mẫu thành chuỗi
như sau:
Điều kiện khôi phục ảnh lấy mẫu về ảnh thật được phát biểu từ định lý lẫy
mẫu của Shannon.
b) Định lý lấy mẫu Shannon:
Giả sử g(x) là một hàm giới hạn giải (Band Limited Function) và bi ến đổi
Fourier của nó là G=0 đối với các giá trị > . Khi đó g(x) có thể được khôi phục lại
từ các mẫu được tạo tại các khoảng Δx đều đặn. Tức là
Δx
Và Δx, Δy được chọn thoả mãn các điều kiện tương ứng theo định lý lấy mẫu của
Shannon khi đó sẽ:
Δx ; Δy
c) Các dạng lấy mẫu (Tesselation):
Dạng lẫy mẫu (Tesselation) điểm ảnh là cách bài trí các đi ểm m ẫu trong
không gian hai chiều. Một số dạng mẫu điểm ảnh được cho là dạng chữ nhật,
tam giác, lục giác. Mỗi một mẫu, ngoài việc thể hiện hình dáng còn cho biết đặc
điểm liên thông của chúng. Ví dụ, mẫu chữ nhật có liên thông 4 hoặc 8 (nói về
các mẫu liền kề); mẫu lục giác có liên thông 6; mẫu tam giác có liên thông 3 hoặc
6.
a) Mẫu điểm ảnh chữ nhật b) Mẫu điểm ảnh tam giác c) Mẫu
điểm ảnh luc giác
Hình 2.2.3.2c: Các dạng mẫu điểm ảnh
Trong trường hợp này ta chỉ xét các mẫu điểm ảnh hình chữ nhật, đặc bi ệt
là dạng hình vuông. Nhiều trường hợp ứng dụng có dùng đến các các mẫu tam
giác hoặc lục giác.
2.2.3.3 Lượng tử hóa:
Lượng tử hoá là một quá trình lượng hoá tín hiệu thật dùng chung cho các
loại xử lý tín hiệu trên cơ sở máy tính. Vấn đề này đã được nghiên cứu kỹ l ưỡng
Giả sử Z là một giá trị lấy mẫu (số thực) tại vị trí nào đó của mặt phẳng
ảnh, và ZminZ’Zmax và giả sử chúng ta muốn lượng hoá giá trị đó thành một
trong các mức rời rạc: , ,… tương ứng với Zmin đến Zmax (Hình 2.2.3.3). Khi đó,
quá trình lượng hoá có thể thực hiện bằng cách chia toàn bộ miền vào (Zmax –
Zmin) thành L khoảng, mỗi khoảng là Δl và khoảng thứ i được đặt tại điểm giữa
các khoảng liền kề . Họ các giá trị z được thực hiện và mô tả bằng theo quá trình
trên đây, khi đó sai số của quá trình lấy mẫu có thể được xác định theo :
= – Z.
Với các biểu diễn trên, một vùng ảnh hay ảnh nhị phân được xem như
chuỗi 0 hay 1 đan xen. Các chuỗi này được gọi là mạch (run). Theo ph ương pháp
này, mỗi mạch sẽ được biểu diễn bởi địa chỉ bắt đầu của mạch và chiều dài
mạch theo dạng {<hàng,cột>, chiều dài}.
2.2.4.2 Biểu diễn mã xích:
Mã xích thường được dùng để biểu diễn biên của ảnh. Thay vì l ưu tr ữ toàn
bộ ảnh, người ta lưu trữ dãy các điểm ảnh như A, B…M. Theo phương pháp này, 8
hướng của vectơ nối 2 điểm biên liên tục được mã hóa. Khi đó ảnh được biểu
diễn qua điểm ảnh bắt đầu A cùng với chuỗi các từ mã. Điều này được minh họa
trong hình dưới đây:
Pixel or
PEL
Trong Hình 2.2.6, một lưới chia ô vuông tưởng tượng được đặt lên ảnh. Độ
lớn mỗi ô vuông của lưới xác định kích thước của một điểm ảnh. Mức xám của
một điểm được tính bằng cường độ sáng trung bình tại mỗi ô vuông này. Mắt
lưới càng nhỏ thì chất lượng ảnh càng cao. Trong kỹ thuật truyền hình tiên tiến,
(mục đích là cung cấp cho người xem), hình ảnh cần chất lượng cao với độ phân
giải gấp hai lần so với các chuẩn hiện nay.
Trong kỹ thuật tương tự, một bức ảnh thường được biểu diễn dưới dạng
các dòng nằm ngang kế tiếp nhau. Mỗi dòng là một tín hi ệu tương tự mang theo
các thông tin về cường độ sáng dọc theo một đường nằm ngang trong ảnh gốc.
Ảnh trên một chiếc TV được hiện lên qua các dòng quét này. Mặc dù thuật ngữ
"tương tự" được dùng để mô tả cho các ảnh quét liên tiếp nhưng thực tế ảnh chỉ
Các khái niệm và định nghĩa tóm tắt trên là cơ sở giúp ta hi ểu và dùng đ ể
hiểu cách xây dựng, thiết kế các kỹ thuật phát hiện biên ảnh.
Chú ý: Phát hiện biên là một phần trong phân tích ảnh, sau khi đã l ọc ảnh
(hay tiền xử lý ảnh). Các bước của phân tích ảnh có thể mô tả theo sơ đồ dưới
đây. Việc dò và tìm biên ảnh là một trong các đặc trưng thuộc khối trích chọn
đặc trưng.
Trong đó dx, dy là khoảng cách giữa 2 điểm kế cận theo h ướng x, y tương
ứng (thực tế chọn dx= dy=1). Đây là phương pháp dựa theo đạo hàm riêng bậc
nhất theo hướng x, y.
Gradient trong tọa độ góc (r,θ), với r là véc tơ, θ: góc
Theo định nghĩa về Gradient, nếu áp dụng nó vào xử lý ảnh, vi ệc tín h toán
sẽ rất phức tạp. Để đơn giản mà không mất tính chất của phương pháp
Gradient, người ta sử dụng kỹ thuật Gradient dùng cặp mặt nạ H1, H2 trực giao
(theo 2 hướng vuông góc). Nếu định nghĩa g1, g2 là Gradient theo hai hướng x, y
tướng ứng thì biên độ g(m,n) tại điểm (m,n) được tính:
g(m,n) = =
Để giảm độ phức tạp tính toán, được tính gần đúng như sau:
Một số toán tử Gradient tiêu biểu như toán tử Robert, Sobel,Prewitt, đẳng
hướng (Isometric), 4-lân cận.
2.3.2.2 Kỹ thuật Laplace:
Để khắc phục hạn chế và nhược điểm của phương pháp Gradient, trong đó
sử
dụng đạo hàm riêng bậc nhất người ta nghĩ đến việc sử dụng đạo hàm riêng bậc
hai
hay toán tử Laplace. Phương pháp dò biên theo toán tử Laplace hi ệu qu ả h ơn
phương pháp toán tử Gradient trong trường hợp mức xám bi ến đổi ch ậm, mi ền
chuyển đổi mức xám có độ trải rộng.
Toán tử Laplace được đĩnh nghĩa như sau:
(6) (4)
(5
)
Đoạn 1 Đoạn 2 Đoạn 3 Đoạn 3 Đoạn 4 Đoạn 5
Đoạn 6
Hình 2.5.3.1b: Mô hình cấu trúc của đối tượng nhà
Ngoài cách biễn diễn theo định lượng, tồn tại nhiều ki ểu đối tượng mang
tính định tính. Trong cách bi ểu diễn này, người ta quan tâm đ ến các dạng và mối
quan hệ giữa chúng. Giả thiết rằng mỗi đối tượng được biểu di ễn b ởi một dãy
ký tự. Các đặc tính biểu diễn bởi cùng một số ký tự. Phương pháp nhận dạng đây
là nhận dạng lôgíc, dựa và hàm phân biệt là hàm Bool. Cách nh ận d ạng là nhận
dạng các từ có cùng độ dài.
Giả sử hàm phân biệt cho mọi ký hiệu là (x), (x),... tương ứng v ới các ký
hiệu a, b,… Để dễ dàng hình dung, ta giả sử có từ "abc" được bi ểu di ễn b ởi m ột
dãy ký
tự X = {x1, x2, x3, x4}. Tính các hàm tương ứng với 4 ký tự và có:
(x1) + (x2) + (x3) + (x4)
Các phép cộng ở đây chỉ phép toán OR. Trên cơ s ở tính giá tr ị cực đ ại c ủa
hàm phân biệt, ta quyết định X có thuộc lớp các từ "abc" hay không. Trong cách
tiếp cận này, đối tượng tương đương với một câu hay một mệnh đề.
Thủ tục phân loại và nhận dạng ở đây gồm hai giai đoạn chính:
Giai đoạn 1: xác định các quy tắc xây dựng, tương đương với việc nghiên
cứu một văn phạm trong một ngôn ngữ chính thống.
Giai đoạn 2: khi đã có văn phạm là xem xét tập các dạng có được sinh ra từ
các dạng đó không Nếu nó thuộc tập đó coi như ta đã phân loại xong.
Tuy nhiên, ở phương pháp này, văn phạm là một vấn đề lớn khá phức tạp
và khó có thể tìm được loại phù hợp một cách hoàn hảo với mọi đối tượng. Vì
vậy, trong nhận dạng dự theo cấu trúc, ta chỉ sử dụng được một phần rất nhỏ.
Như trên đã nói, mô hình cấu trúc tương đương một văn phạm G: G = {Vn, Vt,P, S}.
Có rất nhiều kiểu văn phạm khác nhau từ chính tắc, phi ng ữ cảnh,... Một văn
phạm sẽ được sử dụng trong nhận dạng bởi một ngôn ngữ hình thức, trong đó có
một ngôn ngữ điển hình cho nhận dạng cấu trúc là PLD (Picture Language
Description)
Trong ngôn ngữ này, các từ vựng là các vạch có hướng. Có 4 từ vựng cơ bản:
a B C d
Các từ vựng trên các quan hệ được định nghĩa như sau:
Văn phạm sinh ra các mô tả trong ngôn ngữ được định nghĩa bởi:
GA = {Vn, VT, P, S}
Với Vn = {A, B, C, D, E} và VT = {a, b, c, d}. S là ký hiệu bắt đầu và P là tập lu ật
sản xuất. Ngôn ngữ này thường dùng nhận dạng các mạch điện.
2.5.4.2 Phương pháp nhận dạng theo cấu trúc:
Các đối tượng cần nhận dạng theo phương pháp này được biểu di ễn b ởi
một câu trong ngôn ngữ L(G). Khi đó thao tác phân l ớp chính là xem xét m ột đ ối
tượng có thuộc văn phạm L(G) không . Nói cách khác nó có được sinh ra bởi các
luật của văn phạm G hay không.
Như vậy sự phân lớp là theo cách tiếp cận cấu trúc đòi hỏi phải xác định:
Những nghiên cứu trên đây là cơ sở mở đường cho con người nghiên cứu
phương pháp mô phỏng lại mạng nơron sinh vật, đó chính là mạng n ơron nhân
tạo.
2.5.5.2.2 Cấu trúc nơron nhân tạo:
Trên cơ sở cấu trúc của nơron sinh học tổng quát người ta đề xu ất mô hình
nơron nhân tạo gồm 3 phần chính:
Bộ tổng liên kết đầu vào
Bộ động học tuyến tính
Trong đó:
V(t): Tổng tất cả các đầu vào mô tả toàn bộ thế năng tác đ ộng ở thân
nơron.
Các đầu vào ngoài; với k là chỉ số chạy, k=1,2…m.
m: Số lượng đầu vào mô tả tín hiệu vào từ các đầu nhạy thần kinh
: Trọng liên kết ngoài giữa các đầu vào k tới nơron hiện tại.
y(t): Tín hiệu đầu ra nơron.
θ: Ngưỡng (là hằng số), xác định ngưỡng kích thích hay ức chế.
b) Bộ động học tuyến tính:
Đầu vào của phần động học tuyến tính là v(t), đầu ra của nó là u(t) gọi là
đầu ra tương tự. Hàm truyền tương ứng của phần động học tuyến tính có th ể
mô tả dưới dạng:
H(s) =
Các hàm H(s) thường dùng được liệt kê trong bảng dưới đây:
c) Bộ phi tuyến:
Phần này sử dụng hàm quan hệ phi tuyến f(.) cho đầu ra y, để chặn tính
hiệu ở đầu ra. Các hàm đầu ra thông thường là các hàm có gi ới h ạn ng ưỡng phù
hợp với đặc điểm đầu ra của nơron sinh học. Hàm dạng này thường được g ọi là
hàm kích hoạt (activation) thể hiện đặc điểm kích hoạt hay ức chế của một
nơron.
Ngoài ra còn một số hàm khác cũng được sử dụng như dạng hàm Gauss,
hàm logarit, hàm mũ, hàm arctg.
Tách biển số: Khối này có chức năng tách biển số từ ảnh chụp bằng các
phương pháp xử lý ảnh. Kết quả của khối là ảnh màu RBG (Red Green Blue)
được cắt ra từ ảnh chụp. Đây là một công việc rất khó khăn vì ta không bi ết
được vị trí chính xác của biển số. Ngoài ra, còn phụ thuộc vào độ sáng của ảnh
chụp.
Phân đoạn ký tự: Sau khi tách biển số, chúng ta bắt đầu phân đoạn ký tự.
Khối này thực hiện tách từng kí tự có trong bi ển số, tạo thành tập ảnh riêng bi ệt
các ký tự phục vụ việc nhận dạng ký tự. Ảnh của mỗi ký tự là ảnh trắng đen.
Nhận dạng ký tự: Sau khi phân đoạn, tách được các ký tự trong biển số và tạo
thành một chuỗi ký tự. Chuỗi này đưa vào khối nhận dạng dạng đ ể ti ến hành
nhận dạng từng ký tự trong chuỗi
Đây là khâu quan trọng nhất của hệ thống bởi vì nếu ảnh chụp bị mờ hay
nhiễu thì khi đưa vào nhận dạng sẽ không được. Để chụp ảnh thì ta có th ể s ử
dụng camera hoặc WebCam. Khi lựa chọn thiết bị thì ta cần quan tâm tới các
thông số quyết định tới chất lượng ảnh như:
a) Độ phân giải (resolution):
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên
một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các đi ểm ảnh ph ải
được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Vi ệc l ựa ch ọn
khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là đ ộ phân gi ải và
được phân bố theo trục x và y trong không gian hai chiều.
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là
một lưới điểm theo chiều ngang màn hình: 320 đi ểm chiều d ọc x 200 điểm ảnh
(320x200). Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA
17” độ phân giải 320x200. Lý do: cùng một mật độ (độ phân giải) nhưng diện
tích màn hình rộng hơn thì độ mịn (liên tục của các đi ểm) kém h ơn.
Sau điều kiện thứ nhất, sẽ có những vùng trắng không ch ứa bi ển s ố nh ưng
có tỉ số giữa chiều cao và chiều ngang phù hợp thì vẫn được chọn. Ta sẽ lo ại b ỏ
những vùng này bằng điều kiện thứ hai – diện tích vùng trắng. Vì khoảng cách
từ webcam tới xe cố định (ta lấy trước khoảng cách chụp ) nên s ố lượng pixel
trắng chứa trong biển số cố định.
Đối với điều kiện thứ ba, nếu biển số nằm ngay ngắn thì tỉ số là 0.7 còn
nếu biển số bị nghiêng, sẽ xuất hiện pixel đen nên tỉ số này giảm còn 0.38.
Hình 3.3.4a: Hình thể hiện vùng ảnh cần tách ra với biên an toàn
Trong xử lý ảnh số, biến đổi Radon tính toán hình chiếu của ma trận ảnh
dọc theo một hướng xác định. Hình chiếu của 1 hàm s ố 2 chi ều là f(x,y) l à tập
hợp các tích phân đường. Hàm Radon tính toán tích phân đường dọc theo các tia
song song theo các phương khác nhau ( bằng cách xoay hệ trục tọa độ xung
Công thức tổng quát trên có thể viết lại như sau:
Với: =
Hình sau sẽ biễu diễn phương pháp biến đổi Radon dưới dạng hình học:
Hình 3.3.5.1.1c: Phương pháp biến đổi Radon dưới dạng hình học
Hình 3.3.5.1.2b: Thực hiện biến đổi Radon trên ảnh biên
c) Tìm giá trị lớn nhất của R trong biến đổi Radon.
Vị trí các giá trị lớn nhất này tương ứng với các giá tr ị của đường thẳng
trong ảnh ban đầu.
3.3.5.2 Tìm góc nghiêng và xoay:
Biển số được chụp với nhiều góc nghiêng khác nhau, do đó ta ph ải tìm góc
nghiêng và xoay về phương thẳng. Đây là việc rất quan trọng, vì nếu không quay
về phương thẳng thì khi cắt biển số sẽ bị phạm vào biển số. Chúng ta xác đ ịnh
góc nghiêng bằng phương pháp biến đổi Radon.
Trước khi biến đổi Radon, ảnh chứa biển số được biến đổi thành ảnh được
tách biên nhị phân.
Hình 3.3.5.2b: Ảnh biển số sau khi xoay về phương thẳng đứng.
BEGIN
END
BEGIN
Lấy bù
END
Sau khi phân vùng được các ký tự ta tiến hành cắt các ký tự ra khỏi bi ển s ố.
BEGIN
Biển số
x
Kí tự 2 Kí tự 9
Kí tự 1 ............
END
Chương trình con này thực hiện việc tìm vùng ranh gi ới gi ữa 2 ký t ự, t ương
ứng giữa 2 vùng ranh giới liên tiếp sẽ là vùng ký tự, ch ương trình sẽ tr ả v ề v ị trí
của vùng ký tự. Tuy nhiên, chương trình cũng có thể trả về số vùng ký tự lớn hơn
Sau khi thực hiện phân vùng ta sẽ được 9 ma trận tương ứng với 9 ký tự
trên 2 hàng biển số. Lần lượt từng ma trận ký tự sẽ được đưa vào chương trình
nhận dạng. Kết quả cuối cùng sẽ là 9 ký tự số và chữ, chương trình sẽ hiển thị ký
tự này dưới dạng text.
Thực chất, quá trình nhận dạng là quá trình đ ổi ma tr ận đi ểm ảnh c ủa các
ký tự thành mã ASCII tương ứng với ký tự đó. Để làm được điều này người ta
đem so sánh ma trận của ký tự với tất cả các ma trận trong tập mẫu, ma trận
mẫu nào có khả năng giống nhiều nhất thì có chính là ký tự cần tìm.
Trong lĩnh vực nhân dạng, có 2 phương pháp để nhận dạng là phương pháp
cổ điển và phương pháp sử dụng mạng Nơron.
3.5.2 Lựa chọn phương pháp:
3.5.2.1 Phương pháp nhận dạng cổ điển:
a) Giới thiệu phương pháp:
Phương pháp này sẽ có 1 tập ma trận ký tự mẫu. Phương pháp này khá đ ơn
giản: ma trận ký tự cần nhận dạng khá giống với ma trận ký tự đó trong t ập
mẫu. Ví dụ, ta nhận dạng các số từ 0 đến 9 thì trong tập mẫu, ta sẽ tạo ra các ma
trận ký tự từ 0 đến 9. Giả sử ma trận cần nhận dạng là s ố 1 thì ma tr ận này nhìn
bằng mắt thấy cũng khá giống sao với ma trận số 1 trong tập mẫu.
b) Ưu nhược điểm của phương pháp:
Phương pháp này tuy đơn giản nhưng hiệu quả trong trường hợp tập ảnh
nhận dạng rõ nét, ít bị nhiễu. Nếu ảnh bị nhiễu thì ma trận đầu vào thay đ ổi, lúc
Đích
Tín hiệu ngõ vào sau khi qua mạng nơron sẽ được tính toán và ngõ ra của
mạng sẽ được so sánh với tín hiệu đích mong muốn. Mạng sẽ tiếp tục cập nhật
và điều chỉnh trọng số và ngưỡng cho đến khi thỏa mãn ngõ ra yêu cầu và xu ất
ra kết quả mong muốn.
3.5.3.2 Mô hình của một mạng nơron nhân tạo:
Nơron nhân tạo có 1 số ngõ vào ( từ các dữ li ệu gốc và từ ngõ ra c ủa các
nơron khác). Mỗi kết nối đến ngõ vào đều có 1 cường độ ( hay tr ọng s ố ). Ngõ
vào của nơron có thể vô hướng hay hữu hướng. Mỗi nơron có 1 giá trị ngưỡng.
SVTH: Hồ Xuân Hiền
Lớp: KT ĐT-TT K37A Page 76
Tín hiệu được truyền qua hàm kích hoạt ( hay là hàm truy ền) t ạo giá tr ị ngõ ra
của nơron.
Ngưỡng
Mỗi ngõ vào tương ứng với 1 trọng số w. Tổng của giá trị ngưỡng b với tích
của các ngõ vào và các trọng số sẽ là ngõ vào của hàm truyền f ( f(Wp+b) ). N ơron
dùng nhiều hàm truyền khác nhau để tính toán ngõ ra. M ạng nhi ều l ớp th ường
dùng
hàm truyền log-signoid (logsig).
Hàm logsig tính toán giá trị ngõ ra nằm trong khoảng 0 và 1 trong khi giá tr ị
ngõ vào từ -∞ đến +∞.
Tiếp đến là hàm truyền tan-signiod ( tansig)
Hiếm khi hàm truyền tuyến tính (purelin) được sử dụng trong mạng lan
truyền ngược ( thường chỉ sử dụng phổ biến trong mạng tuyến tính).
R: Số ngõ vào
Mạng lan truyền ngược với các nơron có hàm truyền đạt phi tuyến cho
phép nơron học được những mối liên quan tuyến tính và phi tuyến giữa ngõ vào
và ngõ ra.
Nếu giới hạn ngõ ra là 0 và 1 thì nên dùng hàm truyền logsig
Mô hình mạng 2 lớp như sau:
Hình 3.5.4.2: Hình minh họa hoạt động của mạng trong nhận dạng
3.5.4.3 Phương pháp tăng khả năng tổng quát của mạng:
Một trong những vấn đề xuất hiện trong việc huấn luyện mạng n ơron
được gọi là quá khớp. Lỗi trong tập huấn luyện có giá trị rất nh ỏ nh ưng khi đưa
dữ liệu mới vào mạng thì lỗi lại quá lớn. Nghĩa là mạng có khả năng nh ớ những
tập huấn luyện rất tốt nhưng chưa có khả năng tổng quát đối với dữ liệu mới.
Hình sau thể hiện đáp ứng của mạng n ơron được huấn luyện để xấp xỉ 1 hàm
sin. Mạng như vậy sẽ quá khớp với dữ liệu và không có khả năng tổng quát .
Có rất nhiều phương pháp để giải quyết vấn đề này, trong đó phương pháp
ngừng học sớm được xem là phương pháp hiệu quả nhất.
Phương pháp ngừng học sớm:
Phương pháp này dùng 3 tập mẫu, một tập dùng để huấn luyện, m ột tập
dùng để kiểm tra và một tập dùng để thử lại. Trong quá trình h ọc tập m ẫu hu ấn
luyện thì lỗi của tập mẫu kiểm tra cũng được giám sát. Trong quá trình h ọc t ập
thì lỗi của tập huấn luyện và kiểm tra đều giảm nhưng đến một lúc nào đó thì
lỗi của tập huấn luyện bắt đầu tăng lên, lúc này xảy ra việc mạng nơron bắt đầu
quá khớp với tập huấn luyện. Chính vì vậy ta cho dừng quá trình huấn luy ện, thì
tại thời điểm này, ta có mạng nơron có khả năng tổng quát nhất, lúc này l ỗi c ủa
tập thử lại ( không có trong tập huấn luyện và tập ki ểm tra) là l ỗi c ủa m ột d ữ
liệu mới.
Hình 3.5.4.4: Hàm lỗi khi ngừng học sớm để huấn luyện mạng.
Hình 4.1.1: Giao diện giới thiệu của chương trình chạy bằng matlab
Hình 4.1.2: Giao diện chính của chương trình chạy bằng matlab
for i=1:n2
a=(stat(t2(i,2)).BoundingBox);
b=imcrop(rgb,a);
b=rgb2gray(b);
b=imadjust(b);
b=imadjust(b,[0 1],[1 0],2);
b=im2bw(b);
b=my_BwTrim(b);
b=imopen(b,strel('disk',1));
im2{i}=b;
end
end
Chương trình biến đổi ảnh vào thành ảnh nhị phân
function y = inputanh(rgb)
%INPUTANH Summary of this function goes here
% Detailed explanation goes here
gray=rgb2gray(rgb); % chuyen anh mau thanh anh xam
gray=imadjust(gray);% can bang cuong do sang
[row,col]=size(gray);% Lay kich thuoc anh
cp=[round(row/2),round(col/2)];% toa do diem tam
de=round(0.01*row);% khoang cong tru
cm1=cp(1)-de:cp(1)+de;% khoang thoa man theo hang
cm2=cp(2)-de:cp(2)+de;% khoang thoa man theo cot
doituongnho=round(0.02*row*col);% so diem anh doi tuong nho
biensonho=[round(0.08*row),round(0.08*19*row/14)];% bien so duoc cho la nho
thresh=0; % khoi tao nguong
check=0; % khoi tao kiem tra
while check==0
thresh=thresh+0.01;
if thresh==1
msgbox('Khong phat hien duoc bien so');
break;
else
bw=im2bw(gray,thresh);
bw=bwareaopen(bw,doituongnho);
bw=imfill(bw,'holes');
bw=imclearborder(bw,4);
bw=imopen(bw,strel('rectangle',biensonho));
[L,n]=bwlabel(bw);
end
global data
if strcmp('on',get(handles.timer1,'Running'))
stop(handles.timer1);
data.check=1;
end
set(hObject,'Enable','off');
pause(0.25);
for i=1:8
set(gcf,'CurrentAxes',handles.tren{i});
imshow(ones(90,40));
set(gcf,'CurrentAxes',handles.duoi{i});
imshow(ones(90,40));
end
set(gcf,'CurrentAxes',handles.axes2);
imshow(ones(90,40))
oldFolder=cd;
if exist('a.mat','file')
load a.mat
%%
function xu_ly(hObject,eventdata,handles)
load data.mat;
global data
for i=1:5
set(gcf,'CurrentAxes',handles.tren{i});
imshow(ones(90,40));
set(gcf,'CurrentAxes',handles.duoi{i});
imshow(ones(90,40));
end
set(gcf,'CurrentAxes',handles.axes2);
imshow(imread('wait.jpg'));
pause(0.15);
pause(0.15);
[r,aaa]=size(data.rgb);
if r>640
data.rgb=imresize(data.rgb,[680 NaN]);
end
y=inputanh(data.rgb);
y=angle(y);
set(gcf,'CurrentAxes',handles.axes2);
imshow(y);
[im1, im2]=tach1(y);
5 n1=length(im1);
if n1>0
S1='';
for i=1:n1
end
set(handles.result_text,'string',sprintf('%s-%s',S1,S2));
data.count=data.count+1;
a=clock;
s1=sprintf('%d - %d - %d',a(3),a(2),a(1));
s2=sprintf('%d:%d:%d',a(4),a(5),round(a(6)));
data.TD{data.count,1}=num2str(data.count-1);
data.TD{data.count,2}=s1;
data.TD{data.count,3}=s2;
data.TD{data.count,4}=sprintf('%s-%s',S1,S2);
set(handles.uitable1,'Data',data.TD);
pause(0.25);
5.2.1
Độ chính xác của chương trình nhận dạng bi ển s ố xe ph ụ thu ộc vào ánh
sáng
môi trường. Tuy nhiên yếu tố này ta có thể điều chỉnh được. Do thời gian làm đề
tài đồ án tốt nghiệp có giới hạn nên việc làm đồ án nhận dạng biển số xe này
còn nhiều sai sót mong thầy cô thông cảm.
Chương trình được viết bằng MATLAB đã giải quyết được bài toán nhận
dạng ký tự thông qua lý thuyết về xử lý ảnh, qua đó cũng giải quyết được yêu
cầu của đề tài đồ án đề ra.
Để giải quyết các khó khăn của đề tài, người thực hiện xin đề xuất 1 s ố ý
kiến
sau đây:
Sử dụng camera chuyên dụng.
Thiết lập môi trường ổn định xung quanh để làm tăng độ chính xác của
ảnh chụp ( xác định 1 vị trí cố định để chụp ảnh).
Qua đề tài này một lần nữa em xin chân thành cảm ơn thầy Th.s Nguyễn
Tường Thành đã tận tình hướng dẫn và chỉ bảo em trong suốt khoảng thời gian
qua để em có thể hoàn thành tốt đề tài đồ án tốt nghi ệp c ủa mình. Bản thân em
cũng đã có rất nhiều cố gắng để tìm hiểu các n ội dung nghiên c ứu. Tuy nhiên,
việc nghiên cứu đề tài này cũng phức tạp và do th ời gian có h ạn nên vi ệc nghiên
cứu cặn kẽ tất cả các khía cạnh của đề tài là rất khó khăn. Do vậy chắc chắn đồ
án này sẽ không tránh khỏi những thiếu sót. Rất mong sự đóng góp ý ki ến c ủa
các thầy cô giáo cùng các bạn để đồ án của em được hoàn thi ện hơn.
Em xin chân thành cảm ơn!
Sinh viên thực hiện đề tài
Hồ Xuân Hiền
[1] PGS.TS Nguyễn Quang Hoan (2006), Giáo trình xử lý ảnh, Học viện công nghệ
bưu chính viễn thông, Xuất Bản Hà Nội.
[2] Lương Mạnh Bá, Nguyễn Thanh Thủy (2000), Nhập môn xử lý ảnh số, Đại
Học Bách Khoa Hà Nội, Giáo dục.
[3] Thầy Nguyễn Thanh Hải, Giáo trình Xử lý ảnh (tiếng Anh) , Đại học Sư phạm
kỹ thuật thành phố Hồ Chí Minh.