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

phương pháp nhận dạng chữ viết tay trực tuyến liền nét

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 (556.58 KB, 49 trang )

ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI

Nguyễn Đức Nam
Nghiên cứu, phát triển các công cụ xử lý tiếng Việt
trên UIMA
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Hà Nội – 2010
i
ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI

Tạ Việt Cường
Nghiên cứu phương pháp nhận dạng chữ viết tay trực
tuyến liền nét
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Hà Nội – 2010
ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI

Nguyễn Đức Nam
Nghiên cứu, phát triển các công cụ xử lý tiếng Việt
trên UIMA
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
GV hướng dẫn: TS. Phạm Bảo Sơn
Hà Nội – 2010
i
ĐẠI HỌC CÔNG NGHỆ


ĐẠI HỌC QUỐC GIA HÀ NỘI

Tạ Việt Cường
Nghiên cứu phương pháp nhận dạng chữ viết tay trực
tuyến liền nét
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
GV hướng dẫn: PGS. TS. Bùi Thế Duy
Hà Nội – 2010
LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn các thầy cô giáo đã dạy dỗ em trong suốt
thời gian, giúp em có nền tảng lí thuyết để nghiên cứu và hoàn thành khóa luận Đặc
biệt, em xin gửi lời cảm ơn sâu sắc nhất đến PGS. TS. Bùi Thế Duy, người đã luôn
định hướng cho em mỗi khi em gặp những vấn đề khó khăn với đề tài nghiêu cứu.
Đồng thời, em xin cảm ơn mọi người trong phòng "Tương tác người máy" luôn giúp
đỡ em trong suốt thời gian qua.
Xin cảm ơn gia đình đã nuôi dưỡng và chăm sóc con, tạo mọi điều kiện thuận lợi
để con hoàn thành khóa luận này.
Hà Nội, ngày 10 tháng 5 năm 2010
Tạ Việt Cường
i
Mục lục
4
Bảng kí hiệu viết tắt
STT Kí hiệu Từ tiếng Anh Ngữ nghĩa
1 DCT Discrete Cosine Transforms Discrete Cosine Transforms
2 DFT Discrete Fourier Transforms Biến đổi Fourier rời rạc
3 HMM Hidden Markov Model Mô hình Markov ẩn
4 PDA Personal Device Assistant Thiết bị điện tử cầm tay
5

Danh sách các hình vẽ
6
Tóm tắt nội dung
Hiện nay hầu hết dữ liệu được đưa vào máy vi tính thông qua bàn phím. Nhưng
trong một số trường hợp, sử dụng chữ viết tay vẫn thích hợp hơn chẳng hạn như công
việc ghi chép bài vở trên lớp học. Trong hoàn cảnh đó, bài toán nhận dạng chữ viết tay
được nghiên cứu nhằm làm hoàn thiện thêm cách thức giao tiếp giữa người và máy.
Bài toán nhận dạng chữ viết tay đã được nghiên cứu và phát triển trong 40 năm
qua, và cũng đã đạt được nhiều kết quả đáng kể. Nhưng chỉ trong mấy năm gần đây
chúng ta mới phát triển được những ứng dụng nhận dạng chữ viết tay.
Trong khóa luận này, tôi xin giới thiệu một phương pháp tiếp cận trong bài toán
nhận dạng chữ viết tay dựa trên trích chọn đặc trưng theo biến đổi cosine rời rạc
(Discrete Cosine Transforms - DCT). Sau đó, sẽ xây dựng các mô hình Markov ẩn nhận
dạng các kí tự kết hợp với đặc trưng thu được từ biến đổi DCT. Cuối cùng, dựa trên
xác suất thu được từ mô hình Markov ẩn sẽ được sử dụng kết với phương pháp quy
hoạch động để có thể giải quyết hoàn toàn bài toán nhận dạng chữ viết tay.
7
Chương 1. Giới thiệu chung
1.1. Giới thiệu bài toán
Từ lâu chúng ta đã làm quen với cách sử dụng bàn phím để "nói chuyện" với máy
tính. Lí do không phải vì bàn phím là cách tốt nhất mà là vì bàn phím là cách duy nhất
để máy tính có thể hiểu một cách hiệu quả, bao gồm cả yếu tố chính xác và tốc độ, điều
mà chúng ta muốn nó hiểu được. Những nghiên cứu về nhận dạng chữ viết tay và nhận
dạng tiếng nói lại mở ra một hướng khác trong bài toán giao tiếp người và máy. Hiện
nay, các thuật toán hiệu quả cũng như các ứng dụng trên hai lĩnh vực này đang được
nghiên cứu để có thể thay thế được vai trò của bàn phím trong giao tiếp người máy.
Bài toán nhận dạng chữ viết tay là một trong hai vấn đề lớn của giao tiếp Người
Máy có nhiều ứng dụng thực tế. Một mặt là vì con người thích sử dụng chữ viết do tính
tự nhiên của nó hơn là khó bó trong khuôn khổ của bàn phím. Bên cạnh đó, đối với
những thiết bị cầm tay nhỏ gọn, chẳng hạn thiết bị điện tử cầm tay cá nhân (Personal

Digital Assitants - PDA), là công cụ để xử lí thông tin cá nhân, quá nhỏ bé để có một
thiết kế bàn phím phù hợp thì cần thiết phải có các công cụ nhận dạng chữ viết hoặc
tiếng nói để sử dụng hiệu quả. Hoặc đối với một số ngôn ngữ có quá nhiều kí tự (ví dụ
như ngôn ngữ Kanji có khoảng 4000 kí tự thường được sử dụng) khiến cho việc nhập
dữ liệu từ bàn phím trở thành một công việc khó khăn thì bài toán nhận dạng chữ viết
tay đóng vai trong quan trọng trong việc xử lí dữ liệu.
Bài toán nhận dạng chữ viết tay đã được nghiên cứu trong khoảng ba bốn thập kỉ
gần đây. Những vấn đề đặt ra cần nghiên cứu rất đa dạng phụ thuộc vào cách mà dữ
liệu chữ viết tay được mô tả, mức độ mà dữ liệu được chia nhỏ (ví dụ có thể ở mức độ
từ hoặc là mức độ kí tự), và người sử dụng bộ nhận dạng mà thuật toán hướng đến. Ở
mức độ chung nhất bài toán được tách thành nhận dạng chữ viết tay trực tuyến và nhận
dạng chữ viết tay gián tuyến.
Bài toán nhận dạng chữ viết tay trực tuyến có ứng dụng chủ yếu trên các thiết bị
cầm tay nhỏ gọn, như PDA, vì kích thước của các thiết bị này không cho phép một
thiết kế bàn phím hoàn chỉnh thuận lợi cho người sử dụng. Bên cạnh đó chúng có thể
dễ dàng thu nhận dữ liệu để phục vụ cho bài toán nhận dạng chữ viết tay trực tuyến.
8
Một trong những vấn đề khó khăn nhất của nhận dạng chữ viết tay trực tuyến là bài
toán phân đoạn kí tự dựa trên các thông tin có được từ dữ liệu viết tay trực tuyến.
Trên cơ sở này, khóa luận được viết với mục tiêu đưa ra lời giải đầy đủ cho bài
toán nhận chữ viết tay trực tuyến. Cách tiếp cận được đưa ra là giải quyết bài toán theo
hai bước, bước nhận dạng từng kí tự và bước phân đoạn một từ thành các kí tự. Ở
bước đầu tiên, khóa luận đưa ra phương pháp sử dụng mô hình Markov ẩn kết hợp với
bước trích chọn đặc trưng để giải quyết bài toán nhận dạng từng kí tự riêng biệt. Sau
đó, tôi sẽ đề xuất một thuật toán quy hoạch động sử dụng kết quả có được từ các bộ
nhận dạng kí tự để tìm ra lời giải cho bước phân đoạn.
Phần tiếp theo của khóa luận được trình bày thành sáu chương. Trong đó, chương
hai giới thiệu tổng quát về nhận dạng chữ viết tay. Chương ba giới thiệu về mô hình để
giải quyết bài toán chữ viết tay trực tuyến. Chương bốn giới thiệu về mặt lí thuyết của
các thuật toán trích chọn đặc trưng DCT. Chương năm sẽ trình bày về các thuật toán

học máy được áp dụng. Chương sáu đưa ra một lời giải cho bài toán phân đoạn trong
nhận dạng chữ viết tay. Chương bảy sẽ thống kê các kết quả thực nghiệm trên các bộ
dữ liệu có được. Chương tám trình bày những kết luận chung và đưa ra những hướng
nghiên cứu tiếp theo dựa trên kết quả khóa luận đạt được.
9
Chương 2. Tổng quan về bài toán nhận dạng chữ viết tay
2.1. Giới thiệu
Bài toán nhận dạng chữ viết tay là một bài toán lớn, bao gồm nhiều vấn đề.
Thông thường các nghiên cứu chỉ tập trung giải quyết một hoặc một số mặt của bài
toán. Trong chương này tôi xin đề cập đến các vấn đề cơ bản trong bài toán nhận dạng
chữ viết tay.
2.2. Nhận dạng chữ viết tay trực tuyến và nhận dạng chữ viết tay gián tuyến
Có nhiều hướng tiếp cận nghiên cứu đối với bài toán nhận dạng chữ viết tay phụ
thuộc vào nhiều yếu tố như đã được đề cập đến phần trên. Nhưng ở mức độ chung
nhất, bài toán nhận dạng chữ viết tay có thể được chia thành hai phần chính là: nhận
dạng chữ viết tay trực tuyến và nhận dạng chữ viết tay gián tuyến.
Nhận dạng chữ viết tay gián tuyến được đặt ra để nhận dạng các văn bản viết tay
đã được hoàn thành. Với đặc trưng dữ liệu đầu vào là hình ảnh văn bản viết tay được
quét hoặc chụp lại. Sau đó, các thuật toán sẽ được xây dựng để nhận dạng văn bản dựa
trên các hình ảnh này. Các ứng dụng nhận dạng chữ viết tay gián tuyến thường không
quan tâm đến tối ưu thời gian mà chỉ yêu cầu độ chính xác của kết quả.
Nhận dạng chữ viết tay trực tuyến là bài toán nhận dạng song song với quá trình
chữ viết được thực hiện. Với đặc trưng dữ liệu đầu vào là dãy các điểm thu nhận được
trong quá trình con người thực hiện việc ghi chép dữ liệu. Nói chung, cần phải có các
thiết bị chuyên dụng như bảng điện tử hoặc màn hình cảm ứng để ghi lại quá trình di
chuyển của nét bút như điểm bắt đầu, điềm kết thúc, các điểm trên mặt phẳng mà nét
bút đi qua. Một cách hình thức, rõ ràng là có thể xây dựng được dữ liệu của bài toán
nhận dạng chữ viết tay gián tuyến từ dữ liệu trực tuyến. Nên các phương pháp của
nhận dạng gián tuyến hoàn toàn có thể áp dụng vào bài toán trực tuyến. Tuy nhiên, dữ
liệu trực tuyến còn cung cấp cho chúng ta các thông tin quý giá về nét bút và thứ tự các

nét khi được viết ra điều mà rất khó để xác định trong dữ liệu gián tuyến. Để không bỏ
sót các thông tin này, bài toán nhận dạng chữ viết tay trực tuyến sẽ phải làm việc với
dữ liệu là các điểm trên mặt phẳng. Một yếu tố quan trọng khác trong xử lí trực tuyến
là thời gian xử lí phải phù hợp với thời gian thực.
2.3. Phụ thuộc và không phụ thuộc người viết
10
Một cách tiếp cận khác với bài toán nhận dạng chữ viết tay có liên quan hướng về
phía người sử dụng. Gồm có phụ thuộc người viết và không phụ thuộc người viết.
Trong hệ thống nhận dạng chữ viết tay phụ thuộc người viết, dữ liệu để huấn luyện và
kiểm tra được lấy một người. Vì chữ viết mỗi người là khá đặc trưng, chẳng hạn về
kích thước chữ, về các nét lên xuống, độ nghiêng của chữ. Nên điều này tránh cho
thuật toán nhận dạng của bài toán phụ thuộc người viết phải đương đầu với một số
lượng đa dạng các kiểu chữ viết, vốn rất khác biệt tùy vào thói quen của từng người.
Ngược lại, trong hệ thống nhận dạng chữ viết tay không phụ thuộc người viết, thuật
toán phải được huấn luyện để có thể đạt được kết quả tốt đối với sự đa dạng của các
mẫu chữ viết. Mặc dù vậy, việc thu thập dữ liệu huấn luyện trong bài toán không phụ
thuộc người viết tỏ ra dễ dàng hơn so với trường hợp phụ thuộc người viết vì khó có
thể lấy được các mẫu chữ viết đồng nhất từ một người để sử dụng cho huấn luyện.
2.4. Phân đoạn chữ viết tay
Trong hệ thống nhận dạng chữ viết tay hoàn chỉnh, mục đích được đặt ra là chúng
ta có thể nhận dạng một trang văn bản hoàn chỉnh. Rõ ràng là không có một thuật toán
học máy nào đủ khả thi để sử dụng cả trang văn bản làm đầu vào cho quá trình nhận
dạng. Vì vậy, yêu cầu được đặt ra là phân đoạn văn bản thành các thành phần nhỏ hơn
để có thể áp dụng được các thuật toán học máy hiện tại.
Bài toán phân đoạn có nhiều cấp độ khác nhau: phân tách các dòng với nhau
trong cùng một trang, phân tách các từ trên cùng một dòng và phân tách các kí tự
trong cùng một từ. Trong bài toán nhận dạng chữ viết tay gián tuyến, các phương pháp
phân tách các dòng và các từ trên cùng một dòng có thể được tham khảo ở [17]. Đối
với bài toán nhận dạng chữ viết tay trực tuyến, công đoạn này được thực hiện dễ dàng
hơn vì chúng ta đã có thông tin về vị trí bắt đầu và kết thúc của các nét bút, khoảng

thời gian liên tiếp giữa hai nét bút. Trong đa số trường hợp, việc sử dụng những thông
tin này là đủ để phân biệt các dòng với nhau và các từ trên cùng một dòng. Vì thế hầu
hết các hệ thống nhận dạng chữ viết tay trực tuyến đều tập trung vào giải quyết bài
toán nhận dạng từng từ riêng biệt hoặc nhận dạng từng kí tự.
11
Hình 2-1: Các mức độ khó khác nhau của bài toán phân đoạn kí tự trong một từ.
Ở trường hợp đơn giản nhất, mỗi kí tự được viết hoàn toàn trong một ô có kích
thước cho trước. bài toán phân đoạn các kí tự trở nên tầm thường và việc phải làm bây
giờ đơn giản hơn rất nhiều, chúng ta chỉ cần nhận dạng các kí tự trong mỗi ô. Trường
hợp đơn giản tiếp theo là khi giữa các kí tự trong một từ tách rời nhau, trong dữ liệu
trực tuyến có thể xác định bằng khoảng cách giữa các nét bút và thời gian bắt đầu các
nét bút. Hai trường hợp khó nhất của bài toàn phân đoạn các kí tự là khi một nét bút là
một phần hoặc toàn bộ của một hay nhiều kí tự liền nhau (liền nét - cursive
handwriting) và hỗn hợp giữa kiểu chữ viết liền nét và tách rời.
Một trong những vấn đề khác nảy sinh cho bài toàn phân đoạn kí tự viết tay trực
tuyến là các nét trễ. Bình thường, con người thường có thói quen viết từ trái sang phải,
nhưng những nét trễ là những nét không tuân theo quy luật đó, nó được thêm vào để
hoàn thành các kí tự nằm phía trước.
12
Hình 2-2: Minh họa về nét trễ. Ở đây là nét gạch ngang của chữ "t". Được thêm vào sau
khi hoàn thành chữ "h".
2.5. Các kết quả nghiên cứu hiện tại
Hiện nay các nghiên cứu giải bài toán nhận dạng chữ viết tay đã đạt được nhiều
thành công. Trong lĩnh vực nhận dạng kí tự, các thuật toán học máy và trích chọn đặc
trưng cho kết quả khá cao, Li và Yeung[15] với phương pháp Lân cận gần nhất sử
dụng so sánh mẫu (Nearest Neighbor using Elastic Matching) đạt được độ chính xác
87.1% trên tập các chữ tiếng Anh viết thường, Chan và Yeung[8] sử dụng các mô hình
cấu trúc (Mannually Designed Structural Models) đạt được tỉ lệ đúng là 97.4% trên
9300 mẫu . Tuy nhiên, ở bài toán nhận dạng từ kết quả đạt được vẫn hạn chế. Kết quả
tốt nhất đạt được có thể kể đến là Hu [6] với tỉ lệ chính xác là 94.5% trên 3,823 từ,

nhưng kết quả này đạt được vì bộ nhận dạng đã được giới hạn xuống chỉ làm việc trên
tập 32 từ. Trong trường hợp tổng quát, khi bài toán là không phụ thuộc người viết và
các mẫu chữ viết không có ràng buộc nào (unconstrained handwriting) kết quả đạt
được là 81.1% [18]. Sự khác biệt đáng kể giữa bài toán nhận dạng kí tự riêng biệt và
nhận dạng cả từ hoàn chỉnh xuất phát từ sự thể hiện đa dạng của các kí tự khi xuất hiện
cùng nhau trong một từ đã khiến cho việc huấn luyện các thuật toán học máy rất nhiều
khó khăn.
2.6. Kết luận
Trong chương này, tôi đã trình bày các khái niệm cơ bản nhất của bài toán nhận
dạng chữ viết tay cũng như các cách tiếp cận khác nhau đối với bài toán. Phần tiếp theo
khóa luận sẽ được trình bày tập trung vào bài toán cụ thể là nhận dạng chữ viết tay
trực tuyến, và không phụ thuộc người viết. Phần tiếp theo, tôi sẽ đề cập đến các bước
cơ bản của một hệ thống nhận dạng chữ viết tay trực tuyến.
13
Chương 3. Các bước cơ bản trong nhận dạng chữ viết tay trực tuyến
3.1. Giới thiệu
Về tổng quát, bài toán nhận dạng chữ viết tay trực tuyến có thể được chia thành
các bước: thu thập dữ liệu, tiền xử lí, phân đoạn, trích chọn đặc trưng và áp dụng các
thuật toán học máy, cuối cùng là hậu xử lí. Bước thu thập dữ liệu có nhiệm vụ chuyển
các di chuyển trên mặt phẳng viết của nét bút thành dữ liệu là dãy các điểm. Bước tiền
xử lí sẽ loại bỏ đến mức có thể các nhiễu trong dữ liệu nhận được để quá trình huấn
luyện và nhận dạng được thực hiện bởi các thuật toán học máy đạt hiệu quả cao nhất.
Tùy vào cách tiếp cận bài toán phân đoạn mà chúng ta có thể có bước phân đoạn tách
riêng ra đối với bước trích chọn đặc trưng và áp dụng các thuật toán học máy hay
không. Bước hậu xử lí sẽ cố gắng sử dụng các thông tin ở mức cao hơn như cách sắp
xếp giữa các kí tự để tăng kết quả nhận dạng đạt được.
14
Phân đoạn
15
Hình 3-3: Minh họa các bước của một hệ thống nhận dạng chữ viết tay trực tuyến

Phân đoạn
Phân đoạn
Giai đoạn huấn luyện
Giai đoạn nhận dạng
Hình 3:
3.2. Thu thập dữ liệu
Không giống như dữ liệu viết tay gián tuyến, chỉ cần một thao tác đơn giản là
chụp ảnh hoặc quét dữ liệu có thể ghi nhận để đưa vào xử lí. Thu thập dữ liệu của chữ
viết tay trực tuyến phải cần các thiết bị chuyên dụng có khả năng ghi nhận các trạng
thái của bút gồm có: pen down (bắt đầu một nét bút), pen up (kết thúc một nét bút) và
dãy các điểm mà bút di chuyển qua. Vì dữ liệu lưu trữ trong máy tính phải được rời rạc
hóa, nên dãy các điểm sẽ không được lấy liên tục theo thời gian, mà được lấy mẫu sau
những khoảng thời gian xác định và chúng ta có thể xem đường di chuyển của nét bút
là các đoạn thẳng nối hai điểm liên tiếp trên dãy các điểm mẫu lấy được.
Đơn giản nhất có thể dùng các chuyển động của con trỏ chuột của máy tính
nhưng dữ liệu thu được sẽ không chính xác do con người không có thói quen dùng
chuột để viết nên các mẫu dữ liệu thu được sẽ khác nhau rất nhiều, khó có thể sự dụng
cho bài toán huấn luyện và nhận dạng. Cách lấy dữ liệu thông thường là sử dụng một
bảng điện tử và bút chuyên dụng kèm theo có khả năng ghi nhận vị trí các điểm di
chuyển của bút từ 80 đến 200 lần một giây. Số điểm lấy trong một giây càng nhiều thì
đường thể hiện của nét bút càng chi tiết, nhưng cũng đồng thời làm tăng khả năng xuất
hiện nhiễu trong dữ liệu thu được. Các thiết bị khác như PDA thì sử dụng các màn hình
cảm ứng để ghi nhận di chuyển của bút.
Hình 3-4: Thiết bị CrossPad, dùng trong thu nhận dữ liệu viết tay trực tuyến
16
Dữ liệu huấn luyện
Tiền xử lý dữ liệu
Huấn luyện
Trích chọn đặc trưng
Kết quả huấn luyện

3.3. Tiền xử lí
Sau khi nhận dữ liệu đầu vào là tiền xử lí. Trong trường hợp tổng quát, bài toán
nhận dạng chữ viết tay trực tuyến được thực hiện với mục đích để nhận dạng các mẫu
viết tay tự do, không bắt người viết phải tuân theo một quy tắc cụ thể nào. Vì thế đây
là bước rất cần thiết để loại bỏ các nhiễu, các sự đa dạng không cần thiết đồng thời làm
rõ các đặc trưng của mẫu chữ viết giúp quá trình áp dụng các thuật toán học máy đạt
kết quả cao. Quá trình tiền xử lí gồm có các bước: chuẩn hóa kích thước, định vị lại
mẫu, lấy lại điểm mốc mới. Trong đó quan trọng nhất là thao tác lấy lại điểm mốc mới,
có ảnh hướng lớn đến bước trích chọn đặc trưng sau này.
3.3.1. Chuẩn hóa kích thước
Tùy vào cách trích chọn đặc trưng trong bài toán nhận dạng mà việc chuẩn hóa
kích thước có cần thiết hay không. Nói chung, các mẫu chữ viết tay được thu thập
trong các điều kiện khác nhau nên chắc chắn kích thước sẽ không đồng nhất. Trong
phần này chúng ta cố gắng đưa các kí tự giống nhau về một kích thước chuẩn. Cụ thể
là ví dụ như hai chữ 'a' sẽ có cùng chiều cao và chữ 'b' sẽ có chiều cao gấp đôi chữ 'a'.
Giả sử một mẫu A, sau khi được thu thập sẽ là có thể hiện dưới là dãy các nét ,
với mỗi nét sẽ ứng với dãy các điểm (x, y), có thể được biểu diễn trên mặt phẳng tọa
độ bằng cách nối các điểm liên tiếp lại. Trên miền biểu diễn của A chúng ta chia làm
ba miền chính:
1. Miền giữa: xuất phát từ đường cơ bản (có thể xem là đường kẻ ngang của mặt giấy)
đến đường giữa. Có thể xem như, miền giữa là miền mà các chữ có chiều cao thấp(ví
dụ: 'a', 'c', 'e') nằm hoàn toàn trong đấy.
2. Miền phía trên: bắt đầu từ đường giữa lên đến điểm cao nhất của mẫu.
3. Miền phía dưới: bắt đầu từ đường cơ bản đi xuống đến điểm thấp nhất của mẫu
17
Hình 3-5: Minh họa phân chia các miền của mẫu chữ viết tay
Nếu bài toán ban đầu có đặt ra yêu cầu chữ viết phải được thể hiện một cách tuyệt
đối giữa hai đường thằng song song nằm ngang nào đó (đóng vai trò cho đường cơ bản
và đường giữa) thì sẽ có thể loại bỏ đi rất nhiều trường hợp phải xét của quá trình
chuẩn hóa kích thước. Ngoài ra cũng có thể xét đến yêu cầu người viết không được viết

xiên lên hay xiên xuống khi viết từ trái sang phải. Nếu bỏ qua những yêu cầu đấy, để
xác định được vị trí các miền trong một mẫu viết tay chúng ta sẽ áp dụng một phương
pháp tương tự trong xử lí gián tuyến.
Ở trong xử lí gián tuyến, để xác định được các miền này, chúng ta sẽ khảo sát sự
phân bố của lượng mực theo chiều của trục y. Miền giữa luôn là miền có lượng phân
bố lớn nhất của cả hàng. Bằng cách chọn ra một ngưỡng thích hợp, chúng ta sẽ xác
định được vị trí phải tìm. Trong xử lí trực tuyến, quá trình này có thể mô phỏng bằng
cách chia trục y thành những đoạn ∆y thích hợp. Với mỗi đoạn ∆y, tính chiều dài của
mẫu thuộc đoạn đấy. Từ đó chúng ta sẽ xác định được miền tập trung nhiều lượng mực
nhất là miền giữa [6].
18
Hình 3-6: Cơ sở để xác định các miền của chữ viết
Sau khi xác định được miền giữa, chiều cao của mẫu chữ viết tay sẽ được thay
đổi theo một tỉ lệ thích hợp sao cho miền giữa có chiều cao cố định. Việc xác định góc
độ xiên lên hoặc xiên xuống của mẫu chữ khi được viết từ trái sang phải có thể được
thực hiện bằng cách sử dụng biến đổi Hough [11].
Một vấn đề khác của chuẩn hóa kích thước là về độ nghiêng của chữ. Đối với hệ
thống nhận dạng chữ viết tay phụ thuộc người viết thì vần đế này không quan trọng
lắm vì độ nghiêng sẽ thay đổi không đáng kể. Nhưng đối với các hệ thống không phụ
thuộc người viết thì độ nghiêng ở các mẫu viết tay sẽ rất khác biệt. Để loại bỏ điều này
chúng ta sẽ tìm góc trung bình của các nét lên xuống và lấy đó làm góc nghiêng của
mẫu chữ viết [7].
3.3.2. Định vị lại mẫu
Sau khi chuẩn hóa về chiều cao của mẫu chữ viết, các điểm sẽ lấy lại theo vị trí
tương đối với một điểm mốc nào đấy. Có nhiều cách định vị lại như lấy theo vị trí
tương đối so với điểm thấp nhất và điểm trái nhất, hoặc là lấy theo vị trí tương đối của
điểm bắt đầu nét bút. Ở đây, chúng ta chọn cách định vị lại mẫu theo trục x là điểm trái
nhất và theo trục y là đường cơ bản.
3.3.3. Lấy lại các điểm của mẫu
Các thiết bị dùng để thu thập dữ liệu đầu vào cho bài toán chữ viết tay sẽ lấy các

điểm mà nét bút đi qua sau những khoảng thời gian xác định tùy vào thiết bị cụ thể
điều nay dẫn đến trường hợp sẽ có một số phần trên nét bút có tập trung nhiều điểm
mẫu, và số khác lại khá thưa. Mục tiêu của quá trình lấy lại điểm mẫu là khắc phục
19
nhược điểm này của dữ liệu vào bằng cách phân bố lại các điểm lấy mẫu theo khoảng
cách bằng nhau. Khi đó quan hệ giữa các điểm liên tiếp sẽ thật sự có liên quan về mặt
không gian hơn là về mặt thời gian như lấy từ dữ liệu đầu vào.
Trong khóa luận này, tôi sử dụng một phương pháp đơn giản để lấy lại các điểm
mẫu cách đều nhau. Cụ thể là, với mỗi điểm mẫu (x, y), chúng ta sẽ lần lượt vẽ các
đường tròn có bán kính R cố định, cho trước, cắt nét bút tại các điểm mới. Sau đó điểm
mới này sẽ được thêm vào tập mẫu và được dùng làm tâm đường tròn để xét tiếp theo.
Với R nhỏ so với chiều dài của nét bút thì sẽ không làm thay đổi đặc trưng của nét bút.
3.4. Phân đoạn
Với bài toán nhận dạng một từ viết tay trực tuyến hoàn chỉnh, chúng ta có thể có
các cách tiếp cận sau:
Cách làm thứ nhất: sử dụng các mô hình học máy để huấn luyện một bộ phân lớp cho
toàn bộ các từ có thể từ điển.
Cách làm thứ hai: tiến hành phân đoạn cả từ rồi sử dụng một bộ phân lớp ở mức kí tự
để tìm ra kết quả cuối cùng.
Cách làm thứ ba: tiến hành song song vừa phân đoạn vừa nhận dạng để tìm ra kết quả
tối ưu nhất.
Ở, cách tiếp cận xây dựng một bộ phân lớp hoàn chỉnh cho cả một từ điển chỉ có
thể áp dụng với từ điển có số lượng từ nhỏ (khoảng 100 đến 200). Đối với những từ
điển có số lượng từ lớn hơn thì ngay cả việc thu thập dữ liệu cũng đã gặp khó khăn vì
sự đa dạng trong cách thể hiện của mỗi từ. Ở cách tiếp cận thứ hai, có thể dễ dàng nhận
thấy mức độ hiệu quả của phương pháp phụ thuộc hoàn toàn vào cách phân đoạn cả từ
thành kí tự riêng biệt. Cách tiếp cận này chỉ có thể áp dụng nếu đặt ra những ràng buộc
nhất định như có khoảng cách rõ ràng giữa các kí tự trong cùng một từ. Trong trường
hợp chữ viết tay tổng quát thì không có một cơ sở rõ ràng cho bài toán phân đoạn kí tự
trong một từ, nhất là trường hợp chữ viết tay liên tục. Cách tiếp cận cuối cùng mang lại

nhiều khả năng tìm được phân đoạn đúng nhất. Các phương pháp đã được sử dụng là
sử dụng mô hình Markov ẩn ([10], [6]), hoặc dựa trên thuật toán Quy hoạch động
([16]). Với phương pháp sử dụng mô hình Markov ẩn, thuật toán Viterbi[9] nếu được
xem xét cụ thể thì vẫn là một phương pháp dựa trên quy hoạch động để tính xác suất
tối ưu, hơn nữa khả năng xử lí của thuật toán Viterbi với các nét trễ gặp khá nhiều khó
20
khăn. Vì thế, trong khóa luận sẽ sử dụng thuật toán quy hoạch động phân đoạn tối ưu
theo từng bước để tìm ra cách lời giải tối ưu nhất (được trình bày ở chương 5).
3.5. Trích chọn đặc trưng
Trong bài toán nhận dạng chữ viết tay trực tuyến dữ liệu được thao tác là dãy các
điểm thì cách trích chọn đặc trưng trực quan nhất là dựa trên sự thay đổi về quan hệ
hình học giữa hai điểm hoặc dãy các điểm liên tiếp ([15], [5]) .Các quan hệ này thường
là sự thay đổi theo các chiều tọa độ, hoặc là sự thay đổi về góc tiếp tuyến. Nhưng điểm
yếu của cách trích chọn này nằm ở tính cục bộ của nó, chỉ xét đến quan hệ hạn chế
giữa các điểm, không thể thể hiện được đặc trưng của toàn bộ nét bút. Trong những
cách tiếp cận khác mức cao hơn, đặc trưng được thể hiện bằng hình dạng của các nét
chẳng hạn các nét lên, nét xuống, nét nối thành hình tròn [12].
Ở khóa luận này, tôi sử dụng phương pháp trích trọn đặc trưng dựa trên biến đổi
DCT của dãy tọa độ các điểm mẫu. Biến đổi DCT là biến thể của biến đổi Fourier đưa
dãy tín hiệu rời rạc về dải tầng của phổ của nó. Nó có khả năng tập trung năng lượng
cao vào một số hệ số, và trong phần lớn trường hợp các hệ số này sẽ thể hiện đặc trưng
cơ bản của nét bút [19].
3.6. Phương pháp học máy để nhận dạng kí tự viết tay.
Bước tiếp theo trong bài toán nhận dạng chữ viết tay, là nhận dạng từng kí tự
riêng biệt sau khi được tách ra. Đối với bài toán nhận dạng kí tự có khá nhiều phương
pháp học máy để giải quyết vấn đề này và đạt được nhiều kết quả khác nhau. Tùy vào
từng cách tiếp cận mà chúng ta có các thuật toán trích chọn đặc trưng thích hợp để đạt
được kết quả như mong muốn. Ở đây tôi xin giới thiệu phương pháp sử dụng mô hình
Markov ẩn được sử dụng trong khóa luận.
3.6.1. Phương pháp sử dụng mô hình markov ẩn

Mô hình Markov ẩn là một phương pháp được áp dụng rất hiệu quả cho bài toán
nhận dạng tiếng nói [3] . Mô hình Markov ẩn sẽ dựa trên các dãy vector đặc trưng thu
được từ các mẫu huấn luyện từ đó xây dựng nên mô hình xác suất mô tả phân bố của
dữ liệu. Trong bài nhận dạng chữ viết tay trực tuyến, dãy vector đặc trưng thường được
lấy ra theo sự thay đổi của tọa độ và vị trí của các điểm liên tiếp[15]. Một cách tiếp cận
21
khác là sử dụng các cửa sổ trượt theo nét bút và trích chọn các đặc trưng từ những
điểm mẫu thuộc cửa sổ này [5].
3.7. Hậu xử lí
Hầu hết các mô hình nhận dạng chữ viết là nhận dạng theo thông tin có được ở
mức độ các điểm và các nét bút. Ở mức độ bài toán nhận dạng từ cho phép chúng ta sử
dụng các bộ từ điển để tìm ra những cách kết hợp các kí tự với nhau, đồng thời cũng
loại đi những kết hợp kí tự không đúng. Một ví dụ cụ thể là chúng ta có thể nối các mô
hình Markov ẩn được xây dựng từ bước nhận dạng các kí tự và áp dụng thuật toán
Viterbi trên mô hình mới này để nhận dạng cả từ hoàn chỉnh. Một cách khác là kết hợp
bộ nhận dạng kí tự đã có với các xác suất của bi-gram hoặc tri-gram. Tuy nhiên nhược
điểm của phương pháp này là sẽ không thể nhận dạng các từ không xuất hiện trong từ
điển.
3.8. Kết luận
Trên đây là các bước cơ bản trong bài toán nhận dạng chữ viết tay trực tuyến.
Trong khi, bước thu thập dữ liệu phụ thuộc hoàn toàn vào thiết bị được sử dụng. Thì
bước tiền xử lí sẽ cố gắng loại bỏ sự phụ thuộc này, qua đó đóng vai trò quan trọng
trong việc đồng nhất dữ liệu cho quá trình phân đoạn và nhận dạng sau này. Bài toán
phân đoạn chữ viết tay thành các kí tự riêng biệt vẫn là một bài toán mở và đòi hỏi cần
phải được nghiên cứu thêm để đạt được các kết quả hơn. Có nhiều cách tiếp cận bài
toán phân đoạn, ở trong khóa luận này tôi xin trình bày phương pháp tiếp cận bằng quy
hoạch động. Việc sử dụng phương pháp học máy nào cho nhận dạng kí tự để có thể kết
hợp với phương pháp quy hoạch động ở quá trình phân đoạn cũng gặp nhiều khó khăn.
Phương pháp sử dụng mô hình Markov ẩn được chọn vì mô hình của hai phương pháp
có khả năng trả lời câu hỏi: "xác suất để một mẫu A có nhãn là C là bao nhiêu".

22
Chương 4. Trích chọn đặc trưng dựa trên biến đổi cosine rời rạc
4.1. Giới thiệu
Biến đổi cosine rời rạc (Discrete Cosine Transforms - DCT) có thể xem là một
biến thể của biến đổi Fourier rời rạc (Discrete Cosine Transforms - DFT). Trong khi biến
đổi DFT sẽ sử dụng cả hai hàm số sin và cosine với các tần số khác nhau để thể hiện
dãy tín hiệu rời rạc thì biến đổi DCT sẽ chỉ sử dụng các hàm số cosine. Tính chất quan
trọng của biến đổi DCT giúp nó có những ứng dụng quan trọng trong nén mất mát dữ
liệu và nhận dạng là khả năng tập trung năng lượng vào những hệ số nhất định [19]. Cụ
thể là những hệ số ứng với các hàm số consine có tần số thấp. Còn những hệ số của
hàm cosine ở tần số cao hơn có thể được xem như là nhiễu, và sẽ được loại bỏ. Vì vậy,
có thể xem như đặc trưng của mẫu chữ viết, khi trích chọn đặc trưng dựa trên biến đổi
DCT là các hệ số của hàm cosine ứng với tần số thấp.
Có tất cả 8 loại biến đổi DCT cơ bản, trong đó có nhiều ứng dụng nhất là biến
đổi loại II DCT, thường được gọi tắt là DCT. Chúng ta sẽ sử dụng biến đổi II DCT này
cho bài toán trích chọn đặc trưng từ dãy các điểm của mẫu chữ viết tay trực tuyến thu
được sau quá trình tiền xử lí.
Phần tiếp theo sẽ đề cập đến cơ sở toán học của phương pháp sử dụng biến đổi
DCT và cách áp dụng biến đổi DCT vào bài toán trích chọn đặc trưng.
4.2. Cơ sở toán học
Giả sử tín hiện đầu vào có biểu diễn rời rạc là , , . Chúng ta sẽ tìm biễu diễn của một
đường cong xấp xỉ nào đó đi qua các điểm (0, ) (1, ) (N-1, ). Cụ thể, trong biến đổi
DCT đường cong xấp xỉ C này sẽ có dạng là tổng các hàm cosine:
C =
Trong đó = (n + ), k = 0, 1, , N-1
23
Hình 4-7: Xấp xỉ dãy tín hiệu N phần tử bằng biến đổi DCT.
Giá trị sẽ thể hiện độ lớn của tần số consine k, và được tính qua các giá trị , , theo
công thức
Khi k thay đổi từ 0 đến N-1 sẽ khiến cho hệ số góc của hàm cosine cơ bản sẽ tăng, hay

tần số của tín hiệu tương ứng sẽ tăng. Những thành phần này sẽ đại diện cho các biến
đổi đột ngột của tín dãy tín hiện rời rạc , , hay còn gọi là nhiễu. Vì vậy, với việc loại
bỏ các thành phần này chúng ta hy vọng sẽ giữ lại được đặc trưng của dữ liệu đủ để sử
dụng trong các bài toán nhận dạng [24].
4.3. Áp dụng biến đổi DCT vào bài toán trích chọn đặc trưng
Phương pháp áp dụng biến đổi DCT trong bài toán trích chọn đặc trưng nhận
dạng chữ viết tay trực tuyến được Polyakov và Rylev đề cập đến ở [19]. Dữ liệu nét
bút thông qua một bước biến đổi DCT thô và một bước chuẩn hóa sẽ được phân tích
thành một tập các vector thể hiện đặc trưng mà không phụ thuộc vào đơn vị đo, sự di
chuyển, sự xoay vòng. Nhưng ở đây, với giả thuyết là bước tiền xử lí đã có thể giải
quyết một cách hiệu quả vấn đề về kích thước và vị trí, còn sự xoay vòng trong các nét
bút thì không xét đến nên chúng ta có thể bỏ qua bước chuẩn hóa.
24
Cụ thể là, sau quá trình tiền xử lí nét bút sẽ có thể hiện là dãy các điểm cách đều
nhau về mặt không gian. Dãy các điểm trên sẽ được tách ra thành hai dãy tín hiệu rời
rạc () và (), Tiến hành xấp xỉ hai tín hiệu rời rạc này theo biến đổi DCT, chúng ta sẽ thu
được một vector đặc trưng có D chiều, mỗi chiều ứng với hai giá trị , , là hệ số của các
hàm số Consine cơ bản ứng với hai dãy tín hiệu () và () :
với ; n = 0, 1, , N-1; k = 0, 1, , D-1
4.4. Kết luận
Biến đổi DCT thông qua việc sử dụng các hàm số consine cơ bản để xấp xỉ các
tín hiệu phần nào đó đã loại bỏ được vấn đề đặc trưng cục bộ và đặc trưng toàn cục
trong bài toán trích chọn đặc trưng. Đặc trưng của dữ liệu nét bút sẽ được tập trung vào
các hệ số ứng với hàm Consine có tần số thấp, phần còn lại có thể được xem như là
nhiễu. Chỉ cần chọn giá trị D thích hợp thì chúng ta sẽ loại bỏ được nhiễu xuất hiện
trong nét bút.
25

×