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.. Để không bỏ sót các
Trang 1ĐẠ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
Trang 2ĐẠ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 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
Trang 3LỜ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ốtthờ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 Đặcbiệ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
i
Trang 4Mục lục
Trang 5Bảng kí hiệu viết tắt
5
Trang 6Danh sách các hình vẽ
Trang 7Tó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ưngtrong 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ôngviệ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ămqua, và cũng đã đạt được nhiều kết quả đáng kể Nhưng chỉ trong mấy năm gần đâychú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ậndạ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
Trang 8Chương 1 Giới thiệu chung1.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áytí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ậndạ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ệnnay, 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 đượcnghiê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ườiMá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ớinhữ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 (PersonalDigital Assitants - PDA), là công cụ để xử lí thông tin cá nhân, quá nhỏ bé để có mộtthiế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ặctiế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ếttay đó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ộtthiế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.
Trang 9Mộ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
Trang 10Chươ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àitoá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ạngchữ 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 đượcqué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ựatrê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ôngquan 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 đượctrong 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ácthiế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 dichuyể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étbú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
Trang 11Mộ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ánhọ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ậndạ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ảngthờ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ôngtin 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
Trang 12Hì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íchthướ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âygiờ đơ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ườnghợ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ệutrự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ácné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
Trang 13Hì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ềuthà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 đặctrư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êntậ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ệncù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ềukhó khăn
Trang 14Chương 3 Các bước cơ bản trong nhận dạng chữ viết tay trực tuyến3.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
Trang 15Phâ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
Trang 16Phâ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
Trang 17Dữ 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 lu yệ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
Trang 18Hì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ìnhchuẩ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ếtxiê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ằngcá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ủamẫ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ựcnhất là miền giữa [6]
Trang 19Hì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ể đượcthự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ủamẫ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áinhấ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ểmmẫ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
Trang 20nhượ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ảngcá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ặtkhô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ểmmẫ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ểmmớ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
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ậnthấ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ộcnhấ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ườnghợ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ạinhiề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
Trang 21khă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ểmyế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ữngcá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étchẳ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 đổiDCT 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 đưadã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ượngcao 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ươngphá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àotừ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ìnhMarkov ẩ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 đượclấ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
Trang 22khá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ũngloạ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ánViterbi 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"
Trang 23Chương 4 Trích chọn đặc trưng dựa trên biến đổi cosine rời rạc4.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ệndã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 quantrọ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ủahà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 đổiDCT 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àycho 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 đổiDCT 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 đổiDCT đườ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
Trang 24Hì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ị , , theocô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, haytầ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ậndạng chữ viết tay trực tuyến được Polyakov và Rylev đề cập đến ở [19] Dữ liệu nétbú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íchthà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étbút thì không xét đến nên chúng ta có thể bỏ qua bước chuẩn hóa