Thứ Tư, 1 tháng 1, 2014

Nghiên cứu ứng dụng đường cong tham số b spline vào nhận dạng chữ số viết tay

3
Đường cong tham số B-spline.
Lý thuyết xử lý ảnh.
Kỹ thuật nhận dạng ký tự viết tay bao gồm: nhận dạng chữ và
số viết tay.
Ngôn ngữ lập trình C#.
Phạm vi nghiên cứu
Nghiên cứu các lý thuyết toán học của ñường cong B-Spline
có thể áp dụng vào phương pháp nhận dạng ký tự viết tay.
Nghiên cứu các phương pháp, thuật toán ñơn giản phục vụ cho
việc tiền xử lý ảnh ký tự.
Cho phép người dùng ñưa ảnh ký tự ñể máy học cũng như
nhận dạng.
Đối với nhận dạng chữ viết tay chỉ cho máy học và nhận dạng
các ký tự số từ “0” ñến “9” và các ký tự chữ cái.
4. Phương pháp nghiên cứu
Đề tài nghiên cứu về ñường cong B-spline và xử lý ảnh ñể xử
lý dữ liệu ảnh ñầu vào. Từ ñó ñề xuất phương pháp, giải thuật và xây
dựng ứng dụng nhận dạng ký tự viết tay. Để làm rõ vấn ñề trên, luận
văn sử dụng phương pháp nghiên cứu lý thuyết và thực nghiệm.

Nghiên cứu lý thuyết
Đường cong tham số B-spline.
Xử lý ảnh.
Các mô hình tổ chức lưu trữ dữ liệu.
Nghiên cứu thực nghiệm
Thu th
ập tài liệu và thông tin liên quan ñến ñề tài.
Lựa chọn mô hình, cách tiếp cận phù hợp với nội dung.
Đề xuất qui trình nhận dạng dùng ñường cong tham số B-spline.
4
Triển khai xây dựng chương trình.
Kiểm thử, nhận xét và ñánh giá kết quả của hệ thống.
5. Ý nghĩa khoa học và thực tiễn
Áp dụng kỹ thuật ñường cong tham số B-spline vào nhận dạng
chữ viết tay và ứng dụng cho nhận dạng ñiểm số từ bảng ñiểm ở
trường học.
Ứng dụng nhận dạng bảng ñiểm phục vụ nhập ñiểm tự ñộng
tại trường THPT số 1 Nghĩa Hành.
Trợ giúp cho giáo viên và nhà trường ñỡ mất thời gian và kinh
phí cho việc nhập các bảng ñiểm vào máy tính.
6. Bố cục của luận văn
Bố cục luận văn gồm ba chương ñược tóm tắt như sau
Chương 1 - Cơ sở lý thuyết
Chương này trình bày những cơ sở lý thuyết có liên quan ñề
tài như: Tìm hiểu ñường cong B-spline và xử lý ảnh ñể áp dụng cho
nhận dạng chữ viết tay.
Chương 2 - Giải pháp ứng dụng ñường cong B-spline vào
nhận dạng
Trong chương này, giới thiệu giải pháp quá trình nhận dạng chữ
viết tay, phương pháp và giải thhuật dùng trong nhận dạng chữ viết.
Chương 3 - Xây dựng hệ thống và thử nghiệm
Phân tích các chức năng của hệ thống, thiết kế kiến trúc hệ
thống và thực hiện xây dựng ứng dụng theo cách thức áp dụng
ñường cong B-spline vào nhận dạng chữ viết tay, sau ñó thử nghiệm
và ñánh giá kết quả ñạt ñược của chương trình.

5
CHƯƠNG 1 -
CƠ SỞ LÝ THUYẾT
Chương này giới thiệu về cơ sở lý thuyết có liên quan ñến ñề
tài, làm nền tảng nhằm hổ trợ xây dựng ứng dụng ñặt ra của ñề tài
sau này, gồm các nội dung sau
- Giới thiệu một số phương pháp nhận dạng chữ viết tay dang
ñược sử dụng hiện nay.
- Cơ sở lý thuyết về ñường cong tham số B-spline.
- Giới thiệu cách thu nhận ảnh, tách ký tự, nhị phân hóa ký tự,
tìm xương và giảm số ñiểm biểu diễn ký tự.
1.1. Một số phương pháp nhận dạng chữ viết tay
1.1.1. Phương pháp nhận dạng sử dụng lưới
1.1.2. Phương pháp nhận dạng bằng chia miền và ño mật ñộ
1.1.3. Phương pháp nhận dạng bằng phân tích ñường ñơn
1.1.4. Phương pháp nhận dạng bằng phân tích ñường biên
1.2. Xử lý ảnh cho nhận dạng chữ viết
1.2.1. Những vấn ñề cơ bản trong xử lý ảnh
1.2.1.1. Điểm ảnh
1.2.1.2. Độ phân giải của ảnh
1.2.1.3. Mức xám của ảnh
1.2.1.4. Định nghĩa ảnh số
1.2.1.5. Quan hệ giữa các ñiểm ảnh
1.2.2. Lọc nhiễu
Để làm ñược ñiều này chúng tôi dùng một bộ lọc giống như
lọc Medial nghĩa là dùng một ma trận 3x3 quét khắp ảnh bitmap.
Thực ra bộ lọc này chính là ánh xạ ñi từ ảnh nguồn A sang file ảnh
ñích B ñịnh bởi [1]
6






=
∑∑
−= −=
kh¸chîptr−êng
nÕu
0
1
2
1i
2
1j
3)j,i(W
)j,i(W

Thế nhưng việc lọc nhiễu trong fiel ảnh có thể làm mất dấu
chấm của chữ i hoặc chữ j. Do ñó trong một số trường hợp không thể
khử nhiễu[1][3].
1.2.3. Nhị phân hóa ký tự
Trong ñồ họa máy tính, màu của một ñiểm ảnh với ñịnh dạng
ảnh RGB ñược xác ñịnh bởi ba chỉ số: R: Red (ñỏ), G: Green (Lục -
xanh lá cây), B: Blue (Lam - xanh da trời). R, G, B nằm trong
khoảng [0 255].
Để xác ñịnh ñộ sáng của ñiểm ảnh, ta sử dụng công thức[1]
L = 0.299*R + 0.587*G + 0.114*B
Ta sẽ quy ước nếu L ≥ 0.8 sẽ là pixel trắng và ngược lại sẽ là
pixel ñen, từ ñó ta có ma trận nhị phân của hình ảnh.
1.2.4. Phân tách ký tự
Quá trình phân tách ký tự, trải qua hai bước: Xác ñịnh tọa ñộ
của các hàng ký tự và xác ñịnh tọa ñộ cực trái và cực phải của các ký
tự trên một hàng.
Để xác ñịnh tọa ñộ trên và dưới của một hàng ký tự, ta sử
dụng một ñường thẳng quét từ trên xuống dưới ma trận nhị phân của
ký tự. Nếu ñường thẳng này gặp một pixel ñen (0) ta ñánh dấu tọa ñộ
cực trên của hàng. Ta tiếp tục quét cho ñến khi gặp một hàng trắng
(không có pixel ñen nào trên hàng), ta ñánh dấu cực dưới của hàng,
từ ñó ta xác ñịnh ñược tọa ñộ của hàng, tiếp tục quá trình cho ñến hết
chi
ều dài thẳng ñứng của ma trận nhị phân. Áp dụng phương pháp
tương tự theo chiều dọc cho từng hàng ta xác ñịnh ñược tọa ñộ cực
7
trái và cực phải của từng ký tự. Xác ñịnh các cực của ký tự ñược
minh hoạ hình 1.5 sau

1.2.5. Tìm xương ký tự
1.2.6. Giảm số ñiểm biểu diễn ký tự
1.3. Đường cong B-spline
1.3.1. Phương trình và tính chất của ñường cong B-spline
Đường cong B-Spline xác ñịnh bởi công thức [10][11][12]
1nk2,tttB)t(N)t(P
maxmini
n
0i
k,i
+≤≤<≤=

=
(1.1)
Trong ñó:
- B
i
là tập hợp n + 1 ñiểm kiểm soát, k là cấp của ñường cong
- N
i,k
là hàm cơ sở B-Spline bậc k-1
Hàm cơ sở B-Spline thứ i là N
i,k
(t) ñược ñịnh nghĩa bởi
phương trình ñệ quy sau





=
+
<≤
kh¸chîptr−êng
nÕu
0
1i
tt
i
t1
(t)N
i,0

với
)t(N
tt
)tt(
)t(N
tt
)tt(
)t(N
1k,1i
1iki
ki
1k,i
i1ki
i
k,i −+
++
+

−+


+


=
(1.2)

(quy ước: 0/0 = 0)
vectơ nút là [t
i
, ., t
m
] là một dãy số nguyên tăng dần t
0
< t
1
< … < t
m-1
1.3.2. Các dạng vectơ nút
1.3.2.1. Vectơ nút dạng ñồng nhất
8
1.3.2.2. Vectơ nút dạng ñồng nhất mở
1.3.3. Điều khiển hình dạng của ñường cong B-Spline
1.3.4. Thêm nút vào vectơ nút
Cho ñường cong B-Spline ñược ñịnh nghĩa bởi công
thức[10][11][12]

i
n
0i
k,i
B)t(N)t(P

=
=

Với vectơ nút [T] = [t
0
t
1
… t
n+k
]
Sau khi thêm nút vào vectơ nút, ta có một ñường cong mới

j
m
0j
k,j
c)y(M)y(R

=
=

Với vectơ nút [Y] = [y
0
y
1
… y
m+k
]
Giả sử m > n. Mục ñích là xác ñịnh các ña giác kiểm soát mới
C
j
sao cho P(t) = R(y). Theo thuật toán của Oslo[12] ta có

mj0,ni0BC
i
n
0i
k
j,ij
<≤<≤α=

=
(1.3)
Hàm
k
j,i
α ñược tính như sau







+
<≤
kh¸chîptr−êng
nÕu
0
1i
t
i
y
i
t1
k
j,i

và )t(
tt
)ty(
tt
)ty(
1k
1i
1iki
ki1kj
1k
j,i
i1ki
i1kj
k
j,i

+
++
+−+

−+
−+
α





=α (1.4)


=

n
0i
k
j,i
1
1.3.5. Các phép bi
ến ñổi affine ñối với ñường cong B-spline
9
1.3.5.1. Phép quay quanh gốc tọa ñộ
1.3.5.2. Phép lấy ñối xứng qua trục tọa ñộ
1.3.5.3. Phép biến ñổi tỷ lệ hay phóng to, thu nhỏ (Scale)
1.3.5.4. Phép biến ñổi tuyến tính và tọa ñộ Homogeneous
1.3.5.5. Phép quay quanh một ñiểm bất kỳ M
1.3.5.6. Phép lấy ñối xứng qua ñường thẳng bất kỳ
1.4. Kết chương
Đường cong B-spline có nhiều ưu ñiểm hơn so với các ñường
cong khác. Thông qua các ña thức tham số xác ñịnh riêng rẽ trên một
số ñiểm kiểm soát lân cận với số bậc tuỳ ý không phụ thuộc vào số
lượng các ñiểm kiểm soát, có nghĩa khi dịch chuyển ñiểm kiểm soát
của ñường cong thì chỉ một vài phân ñoạn lân cận của ñiểm kiểm
soát ñó bị ảnh hưởng chứ không phải toàn bộ ñường cong.
Đường cong B-spline bất biến ñối với các phép biến ñổi affin
và ñặc biệt là bất biến với phép biến ñổi homogeneous (tức là phép
chiếu phối cảnh) nghĩa là khi ta muốn biến ñổi ñường cong B-spline
ta chỉ cần thực hiện phép biến ñổi trên các ñiểm kiểm soát của ñường
cong ñó.


10
CHƯƠNG 2 -
ỨNG DỤNG ĐƯỜNG CONG B-
SPLINE VÀO NHẬN DẠNG CHỮ VIẾT
TAY
Trong chương này, tập trung giải quyết các công việc sau
- Đưa ra ý tưởng và giải pháp nhận dạng chữ viết tay ứng dụng
ñường cong B-spline.
- Đưa ra giải thuật và phương pháp sử dụng trong quá trình
nhận dạng chữ viết tay.
2.1. Giải pháp nhận dạng
2.1.1. Ý tưởng nhận dạng
Trong quá trình nghiên cứu ñường cong B-spline chúng tôi
nhận ra rằng phương pháp xây dựng ñường cong là khá hiệu quả.
Theo ñó ta chỉ cần xác ñịnh một số hữu hạn các ñiểm kiểm soát
(Control points) và từ các ñiểm kiểm soát này ta dễ dàng xây dựng
nên ñường cong B-spline.
Tính chất quan trọng của ñường cong B-spline là bất biến với
các phép biến ñổi Affine (phép tịnh tiến, phép co và phép quay)
nghĩa là chúng ta muốn co ñường cong B-spline ta chỉ cần co các
ñiểm kiểm soát của chúng mà ñường cong không bị biến dạng.
Ý tưởng chính
- Cho máy học các ký tự mẫu: ñọc từ tập tin ảnh các ký tự cần
học sau ñó xử lý, xác ñịnh các vector kiểm soát của chúng và lưu lên
tập tin dữ liệu.
- Đọc ký tự muốn nhận dạng từ tập tin ảnh ký tự, xử lý và tìm
các vector kiểm soát của chúng. Đối sánh các vector kiểm soát của
ký t
ự cần nhận dạng với các vector kiểm soát của ký tự mà máy ñã
học và ñưa ra kết quả.
11
Một số trường hợp cần phải xét thêm là các ký tự có thể
không bằng nhau về kích thước, có thể bị viết nghiêng .
Trường hợp 1: Ký tự có kích thước khác nhau
Dựa trên tính chất bất biến với phép biến ñổi Affine (phép tịnh
tiến, phép thu nhỏ, phép phóng to, phép quay). Ta chỉ cần co hay
phóng lớn ký tự ñó về một khung chuẩn, nghĩa là ta chỉ việc phóng
to hay thu nhỏ các ñiểm kiểm soát của chúng.
Trường hợp 2: Ký tự không chồng khít lên nhau ở khung chuẩn
Lúc này chúng ta có thể tịnh tiến thăm dò (tịnh tiến qua trái,
qua phải, lên hay xuống) cho ñến khi chúng chồng khít lên nhau, lúc
này sai số khoảng cách là nhỏ nhất.
Trường hợp 3: Ký tự viết nghiêng
Trong trường hợp này ta có thể sử dụng phép quay ký tự thăm
dò. Nếu ta quay theo chiều dương mà sai số khoảng cách (dùng ñộ
ño Euclide) so với ký tự mẫu mà tốt hơn thì ta tiếp tục quay theo
hướng này, không tốt hơn thì ta quay theo chiều ngược lại.
2.1.2. Phương pháp nhận dạng ký tự viết tay
Phương pháp ứng dụng ñường cong B-spline vào nhận dạng
chữ viết tay bao gồm các bước ñược mô tả như sau
12

2.1.2.1. Thu nhận ảnh ký tự
Ảnh ký tự có thể ñược thu nhận bằng máy Scanner,
Webcam, hoặc các thiết bị thu nhận ảnh thông dụng khác và ñược
lưu dưới dạng file ảnh.
2.1.2.2. Tiền xử lý ảnh
Quá trình tiền xử lý ảnh ký tự bao gồm các bước sau:
- Lọc nhiễu là công ñoạn quan trọng trong xử lý ảnh, làm
cho ảnh tốt hơn ñể ứng dụng vào xác ñịnh số hàng và số cột ñạt hiệu
quả cao hơn.
- Nhị phân ảnh là chuyển ảnh bitmap thành ma trận nhị phân
ñể ứng dụng vào các công ñoạn sau hiệu quả hơn, như tìm xương,
phân tách ký tự .
- Phân tách thông tin ra khỏi ñối tượng hình học nhằm mục
ñích tách các ký tự ra khỏi ñối tượng hình học ñể lấy riêng phần ký
tự nằm trong các khung biểu mẫu.
- Phân tách ký t
ự là tách từng ký tự một ñể áp dụng vào tìm
xương và tìm các vectơ kiểm soát sau này.

Không có nhận xét nào:

Đăng nhận xét