Tải bản đầy đủ (.ppt) (28 trang)

tìm hiểu bài toán nhận dạng ký tự viết tay và phát triển ứng dụng

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 (783.97 KB, 28 trang )

ĐỒ ÁN TỐT NGHIỆP
Đề tài:
TÌM HIỂU BÀI TOÁN NHẬN DẠNG KÍ TỰ VIẾT
TAY VÀ PHÁT TRIỂN ỨNG DỤNG
GVHD : Thầy Nguyễn Đình Thuân
SVTH : Nguyễn Đình Cường
Lớp : TH40
MSSV : 8D15014
NỘI DUNG BÁO CÁO
GỒM 3 PHẦN
PHẦN I : GIỚI THIỆU VỀ BÀI TOÁN
PHẦN II : TRÌNH BÀY CƠ SỞ LÝ THUYẾT
PHẦN III : TRÌNH BÀY CÀI ĐẶT MỘT SỐ
ỨNG DỤNG MINH HỌA
PHẦN I : GIỚI THIỆU BÀI TOÁN
 KHÁI QUÁT TÌNH HÌNH NGHIÊN CỨU
 MỤC ĐÍCH CỦA ĐỀ TÀI
 GIỚI THIỆU MỘT SỐ ỨNG DỤNG
THỬ NGHIỆM
PHẦN II
CƠ SỞ LÝ THUYẾT XÂY DỰNG
CHƯƠNG TRÌNH
 LÝ THUYẾT XỬ LÝ ẢNH
 LÝ THUYẾT NHẬN DẠNG
A. LÝ THUYẾT XỬ LÝ ẢNH
MỘT SỐ THUẬT TOÁN TIỀN XỬ LÝ ẢNH
I. Lọc mịn ảnh : dùng lọc trung bình, tác dụng hạn chế nhiễu muối tiêu.
Ví dụ: sử dụng nhân lọc như sau:
II. Nhị phân ảnh : tìm giá trị ngưỡng để phân mức xám ảnh thành 2 mức.
Theo Otsu giá trị ngưỡng được xác định như sau:


với p(v) ước lượng từ histogram
µ
T
= µ(v
2
=v
max
)
v
0
= v
min

: là giá trị cần tìm

1 1 1
1 1 1
1 1 1
1/9
( ) ( )
[ ]
( ) ( )
[ ]









=
11
2
11
*
1
1
.
maxarg
vv
vv
v
T
ωω
µωµ
( ) ( )
( ) ( )


=
=
1
0
1
0
1
1
v
v

v
v
dvvvpv
dvvpv
µ
ω
Trong đó :
*
1
v
III. Tách liên thơng: Qt ảnh từ trái sang phải và từ trên xuống dưới, các
pixel đen liên thơng với nhau sẽ được gán chung một nhãn, nếu gặp liên thơng
mới thì nhãn mới sẽ được gán.
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
*

*

*

*
. .
*

*

*
. . . . .
1


1

1

1
. .
2

2

2
. . . .
. .
*

*

*
. .
*

*

*

*
. . . . .
1


1

1
. .
2

2

2

2
. . .
.
*

*

*

*
.
*

*

*

*

*

. . . .
1

1

1

1
.
2

2

2

2

2
. . .
. . .
*

*

*

*

*
. . . . . . . . .

1

1
?
*

*
. . . . . .
. . .
*

*

*

*

*

*
.
*
. . .

. . .
*

*

*


*

*

*
.
*
. . .
*

*
. . . . . . . .
*

*
. .
*

*
. . . . . . . .
*

*
. .
.
*

*
. . . . . . .

*

*
. . .
*

*
. . . . . . .
*

*
. .
.
*

*
. . . . . . . . . . . .
*

*
. . . . . . . . . . .

Hình b . nh ban đầu Hình c . Tiến trình gán nhãn
Minh họa
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
1

1


1

1
. .
2

2

2
. . . . .
1

1

1

1
. .
1

1

1
. . . .
. .
1

1

1

. .
2

2

2

2
. . . . .
1

1

1
. .
1

1

1

1
. . .
.
1

1

1


1
.
2

2

2

2

2
. . . .
1

1

1

1
.
1

1

1

1

1
. . .

. . .
1

1

1

1

1
. . . . . . . . .
1

1

1

1

1
. . . . . .
. . .
1

1

1

1


1

1
.
3
. . .

. . .
1

1

1

1

1

1
.
2
. . .
4

4
. . . . . . . .
3

3
. .

3

3
. . . . . . . .
2

2
. .
.
4

4
. . . . . . .
3

3
. . .
3

3
. . . . . . .
2

2
. .
.
4

4
. . . . . . . . . . . .

3

3
. . . . . . . . . . .
Hình d . Sau khi quét đầy đủ Hình e .Kết quả sau cùng
IV. Chỉnh nghiêng: biến đổi tuyến tính toạ độ điểm ảnh
α -
+
α(x,y)=tan
-1
(G
y
/G
x
)
G
y
,

G
x
là kết quả xoắn
điểm ảnh với nhân S
x
, S
y
0
-1 0 1
-2 0 2
-1 0 1

S
x
-1 -2 -1
0 0 0
1 2 1
S
y
α: là giá trị trung bình góc nghiêng của các điểm ảnh được xét
Ta có : x

= x + tg(α)× y
y

= y
V. Chuẩn kích thước:
Chuẩn kích thước ảnh về kích thước cố định
f
s
(x, y)= f(x/s
x
,y/s
y
)
với s
x
, s
y
là tỉ lệ phóng , f
s
(x,y) giá trị điểm ảnh kết quả ứng với giá trị toạ

độ (x,y)

VI. Lấp khoảng trống ảnh bằng phép đóng morphology:
Sau khi phóng ảnh, ảnh có thể bị rời rạc, răng cưa biên. Để khắc phục tình
trạng này ta dùng phép đóng để lấp các khoảng trống làm đầy ảnh.
VII. Lấy đường biên và làm trơn đường biên:
Phát hiện biên:
Bằng cách nhân chập ảnh với phần tử có cấu trúc:
Duyệt đường biên :
Đường biên kí tự được duyệt theo cách sau:
Bước 1: quét ảnh đến khi gặp điểm ảnh đen. Gọi là pixel 1
Bước 2: Lặp
Nếu “ điểm ảnh hiện thời là đen ” thì “dò ngược”
Ngược lại “sang phải”
Đến khi gặp “pixel 1”
Mã hoá hướng điểm biên:
Sau khi duyệt đường biên, ta tiến hành mã hoá hướng các điểm trên đường biên
theo 8 hướng sau:
Quy ước:
0
1
2
3
4
5
6
7
0 1 0
1 1 1
0 1 0

Hình minh hoạ
mã hoá biên
Làm trơn đường biên:
Duyệt theo đường biên, nếu hai điểm liên tiếp trên đường biên có hiệu số hướng lớn
hơn 1 thì hiệu chỉnh để hiệu số hướng bằng 1.
B. RÚT ĐẶC TRƯNG CỦA KÍ TỰ
I. Chia ô: ảnh sau khi tiền xử lí được chia thành các ô vuông nhỏ 8x8. Gom 4 ô
kích thước 8x8 thành ô 16x16, các ô 16x16 phủ lên nhau theo hướng ngang và dọc.
Trong mỗi ô 16x16 ta chia làm 4 vùng A, B, C, D:










n
m
D
C
B
A
Hình gộp 4 ô 8x8 Hình chia vùng ô 16x16
Vùng A :kích thước 4x4
Vùng B :kích thước 8x8
Vùng C :kích thước 12x12
Vùng D :kích thước 16x16

II. Véctơ đặc trưng: đặc trọng số vùng A, B, C, D tương ứng 4, 3, 2, 1. Gọi x
j
là một
loại đặc trưng, x
j
được tính cho 1 ô 16x16 như sau:
x
j
=4x
j
(A)
+ 3x
j
(B)
+ 2x
j
(C)
+ x
j
(D)
Với mỗi ô 16x16 ta rút 4 đặc trưng x
j
(j=1,2,3,4), x
j
tính như trên.
Aûnh kí tự được mô tả x
1
: số điểm biên có hướng 0
0
hay (180

0
)
X=(x
1
, x
2
, x
3
, x
4
…x
n
) x
2
: số điểm biên có hướng 45
0
hay (-135
0
)
Với n=k*4 , k là tổng số ô 16x16 x
3
: số điểm biên có hướng 90
0
hay (-90
0
)
xếp chồng lên nhau x
4
: số điểm biên có hướng 135
0

hay (-45
0
)


LÝ THUYẾT NHẬN DẠNG
 PHÂN LỚP BẰNG PHƯƠNG PHÁP ĐỐI SÁNH
 PHÂN LỚP DỰA VÀO HÀM THẾ
 PHƯƠNG PHÁP LDA (Linear Disciminant Analysis)
 PHÂN LỚP BẰNG MẠNG NƠRON
PHÂN LỚP BẰNG MẠNG NƠRON
I. Giới thiệu:
Mạng nơron tổng quát có cấu trúc phân lớp,
gồm 3 lớp:
Lớp nhập: nhận giá trị bên ngoài vào
Lớp xuất : lớp cuối cùng, sẽ xuất ra kết quả
Lớp ẩn : các lớp còn lại (có thể không có)
Quá trình nhận dạng của mạng là quá trình
ánh xạ một mẫu x từ không gian các đặc trưng
vào không gian các lớp.
II. Hoạt động:
Chỉ có thể ở một trong hai trạng thái: trạng thái ánh xạ và trạng thái học.
Trạng thái ánh xạ: thông tin sẽ được lan truyền tiến từ các nút nhập đến các
nút xuất và một mẫu x sẽ được ánh xạ thành một kết quả z.
Trạng thái học: các trọng số của kết nối sẽ được điều chỉnh theo một thuật
toán học để mạng có thể xấp xỉ được một hàm mong muốn nào đó. Thuật toán lan
truyền ngược là một thuật toán hiệu quả cho quá trình học của mạng.
Minh hoạ mạng nơron
III. Giải thuật luyện mạng:
Quá trình học của mạng theo thuật toán lan truyền ngược sẽ lặp đi lặp lại các thao

tác sau:
- Lan truyền tiến: tính kết xuất y của mạng với một mẫu x.
- Lan truyền ngược : tính sai số giữa kết xuất y và giá trị đích t và lan truyền
ngược sai số này lại để cập nhật trọng số cho mạng.
Quá trình học của mạng sẽ dừng khi mạng đạt được một độ lỗi nhất định, hoặc
sau giới hạn số lần lặp.
Để thay đổi trọng số của mạng nhằm cực tiểu hàm lỗi có thể dùng phương pháp
giảm gradient gồm các bước sau:
- Chọn ngẫu nhiên một điểm x
0
trong không gian trọng số.
- Tính độ dốc của hàm lỗi tại x
0.

-

Di chuyển điểm x
0
theo hướng dốc nhất của hàm lỗi.
Quá trình tính độ dốc và di chuyển điểm x
0
được lặp đi lặp lại cho đến khi x
0
tiến
đến giá trị làm cho hàm lỗi cực tiểu.
Ta có công thức cập nhật trọng số theo phương pháp giảm gradient:
)()()1( t
w
E
twtw

ij
ijij


−=+
ε
t : số lần cập nhật trọng số hiện tại
ε : hệ số học
w: trọng số bất kì trong mạng
E : hàm lỗi
Ta có hàm lỗi sai số trung bình bình phương được sử dụng là:
KN
tz
E
N
n
K
k
knkn
.
)(
2
1
1 1
2
∑∑
= =

=
Với

(X
k
, Z
k
): tập mẫu học
T
k
: ánh xạ của X
k
qua mạng
K : số mẫu học
N : số chiều của vectơ output
M: số chiều của vectơ input
Trong đó :
(X
k
, Z
k
) = (x
k1
,…,x
kM
; z
k1
,…,
z
kN
)
T
k

= ánh xạ (X
k
) = (t
k1
,…,t
kN
)
Hàm truyền được sử dụng là hàm logistic:
ax
e
xf

+
=
1
1
)(
Mục đích ánh xạ mẫu trong
quá trình lan truyền tiến.
-6 -4 -2 2 4 6
0.2
0.4
0.6
0.8
1
Đồ thị
PHẦN III
MỘT SỐ ỨNG DỤNG MINH HỌA
THỬ NGHIỆM
 TÁCH LIÊN THÔNG TRONG NHẬN DẠNG VĂN BẢN

 NHẬN DẠNG KÍ TỰ VIẾT TAY RỜI RẠC
 XỬ LÝ PHIẾU ĐĂNG KÍ MÔN HỌC
TÁCH LIÊN THÔNG TRONG NHẬN DẠNG VĂN BẢN
Nhận dạng văn bản, là một trong những bài toán có liên quan đến nhận dạng kí tự.
Với cơ sở lý thuyết vừa nêu ta hoàn toàn có thể xây dựng được ứng dụng này.
I. Quy trình xử lý:
Tách liên thông
Khử liên thông đặc biệt
Xác định hàng liên thông
Sửa lỗi xác định hàng
Tách liên thông dính
Nhận dạng các liên thông
Aûnh văn bản đơn
Tập các liên thông
( còn liên thông đặc
biệt & liên thông
dính)
Tập liên thông
đã được xử lý
Các liên thông
đã được sắp xếp
theo hàng
Trật tự các liên
thông trên hàng
được xếp lại
Vị trí các liên
thông đã được
xếp đúng
Văn bản có thể hiệu chỉnh
II. Thực hiện: nhận dạng văn bản chứa kí tự font Vni-Times, size 12, không

nghiêng.
Xử lý kí tự được thực hiện như sau:
Chuẩn hoá vào lưới ô vuông kích thước 56x48. Xác định đặc trưng như
sau:
Chia khung chữ thành nhiều ô vuông kích thước 8x8, trên mỗi ô vuông
xác định 4 đặc trưng:
- Tổng số pixel có hướng 0 hoặc 4
- Tổng số pixel có hướng 1 hoặc 5
- Tổng số pixel có hướng 2 hoặc 6
- Tổng số pixel có hướng 3 hoặc 7
Hướng của pixel được xác định so với pixel ở trung tâm của ô vuông kích
thước 8x8. Với một ảnh kí tự ta có được 7x6x4=168 đặc trưng.
X=(x
1
, x
2
, …x
n
) , n=168.
Giải thuật nhận dạng:
Tìm một mẫu trong số các mẫu lưu trữ có đặc trưng gần giống nhất với
mẫu cần nhận dạng. Hàm “gần giống ” dựa vào hàm tính khoảng cách ơclit
giữa hai véctơ.
Hình minh hoạ kết quả.
THỬ NGHIỆM NHẬN DẠNG KÍ TỰ VIẾT TAY RỜI RẠC
I. Giới thiệu: Chương trình nhận dạng kí tự viết tay, bước đầu thử nghiệm xây
dựng bộ nhận dạng cho 2 lớp kí tự:
Lớp kí tự chữ cái: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U,
V, W, X, Y, Z, a, b, d,e, f, g, h, i, j, k, l, m, n, q, r, s, t, v, x, y.
Lớp kí tự số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

II. Thực hiện chương trình:
Ta có quy trình xử lý như sau:
Aûnh đầu vào → lọc ảnh → nhị phân hoá → tách các liên thông chữ → chỉnh
nghiêng → chuẩn hóa kích thước → tìm biên → rút đặc trưng trên đường biên →
qua bộ phân lớp → quyết định lớp của ảnh nhận dạng → xuất kết quả theo định
dạng trật tự kí tự trên hàng.
Như vậy:
Trong quá trình tiền xử lí, ảnh của kí tự được chuẩn hoá về kích thước chuẩn
được chọn là 80x56.
Sau khi phát hiện biên và mã hoá đường biên, véctơ đặc trưng của kí tự được
xác định như lý thyết đã mô tả về xác định đặc trưng ở phần B mục xác định đặc
trưng của kí tự, từ đó ta có X=(x
1
, x
2
,… x
n
) với n=216.
Bộ nhận dạng được xây dựng là mạng nơron 2 lớp: 1 lớp vào và 1 lớp
ra. Với giải thuật lan truyền ngược và kỹ thuật giảm gradient, chọn
ε = 0.08.
Véctơ X=(x
1
, x
2
, …x
n
) trong quá trình huấn luyện và nhận dạng được
chuẩn hoá sao cho các x
i

được tính lại như sau:
1=X
ni
X
x
x
i
i
1==
Thử nghiệm trên 2 mạng:
Mạng thứ nhất thử nghiệm trên 2366 mẫu học, đối với lớp kí tự, được
luyện sau 30.000 học kì.
Mạng thứ hai thử nghiệm trên 1000 mẫu học, đối với kí tự số, được
luyện sau 10.000 học kì.
Sau thời gian học mạng thứ nhất và mạng thứ hai phân biệt gần hoàn
toàn các mẫu đã học, mạng có khả năng tổng quát tốt.
Kết quả:
Minh họa nhận dạng kí tự chữ cái.
Minh họa nhận dạng kí tự số
ỨNG DỤNG XỬ LÝ PHIẾU ĐĂNG KÍ MÔN HỌC
I. Giới thiệu: chương trình xử lí phiếu đăng kí môn học có nhiệm vụ nhận
dạng thông tin được rút ra từ biểu mẫu, nhằm tiết kiệm chi phí cho việc đăng
kí môn học.
Aûnh phiếu đăng kí môn học:
Từ phiếu này ta rút ra các thông tin:
-
Mã số sinh viên (MSSV).
-
Mã môn học huỷ bỏ, mã lớp huỷ bỏ môn này.
- Mã môn học lại, mã lớp học lại môn này

-
Mã môn học vượt, mã lớp học vượt môn này.
Như vậy:
Từ các thông tin trên ta có thể xác định yêu cầu
đăng kí môn học của mỗi sinh viên.
II. Quy trình xử lý: thông tin cần lấy trong phiếu được tạo bởi các kí tự số và kí tự
chữ:
Kí tự số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Kí tự chữ gồm một số kí tự: B, C, D, H, K, L, P, S, T, N.
Như vậy có khoảng gần 20 kí tự.
Ta có quy trình thực hiện:
Aûnh phiếu
đăng kí
môn học
Kết quả
nhận dạng
Aûnh
từng kí
tự
Mẫu
vectơ đặc
trưng
Định dạng và
lấy thông tin
từ biểu mẫu
Xác định
véctơ đặc
trưng của kí
tự
Nhận dạng

véctơ đặc
trưng
Định dạng và lấy thông tin từ biểu mẫu:
Tìm kiếm dấu hiệu định vị biểu mẫu, lấy thông tin trong vùng dữ liệu bằng cách so
khớp với mặt nạ biểu mẫu.
Xác định vectơ đặc trưng:
Vectơ đặc trưng của kí tự được xác định như trong phần nhận dạng kí tự viết tay đã
nêu, ta có vectơ X=(x
1
, x
2
,…x
n
)

với n=216.
Nhận dạng vectơ đặc trưng:
Xây dựng mạng nơron 2 lớp, để phân biệt 20 kí tự vừa nêu với các thông số: mạng
luyện sau 50.000 học kì với 2051 tập mẫu, sử dụng kỹ thuật lan truyền ngược và giảm
gradient với ε = 0.08.
Điểm chốt
Lề dọc
Lề ngang
Vùng dữ liệu
Hình minh họa cách
rút dữ liệu trong biểu
mẫu
Ta có kết quả xử lý và nhận dạng:

×