Đường cong xấp xỉ sau lần lặp đầu tiên

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nhận dạng chữ viết tay tiếng Việt trên các thiết bị cầm tay Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 84)

Các bước từ 4.12.30 đến 4.12.60 sẽ được lặp đi lặp lại cho đến khi tiến trình hội tụ hoặc ngưỡng phù hợp được thỏa mãn(điều kiện Yes ở bước 4.12.45). Các ngoại lệ này sẽ được xử lý ở bước 4.12.65 để quyết định xem tiến trình dừng hay nên tiếp tục với các điều kiện mới. Nếu tiến trình hội tụ và ngưỡng phù hợp thỏa mãn, tiến trình sẽ dừng. Nếu tiến trình hội tụ nhưng ngưỡng phù hợp không thỏa mãn, tiến trình có thể tiếp tục. Khi tiến trình dừng, tập các hệ số ODF ở bước 4.12.35 sẽ được chuyển tới bộ xử lý huấn luyện của hệ thống nhận dạng.

FD được sử dụng với đường cong đóng, nếu muốn sử dụng với đường cong không đóng ta dùng Cosin Descriptors(CD). Hình sau đây minh họa ký tự “7” là đường cong không đóng.

4.18. Đường cong xấp xỉ thu được sau lần lặp thứ 8

Tập hệ số tạo độ cosin {Fk, Gk} sẽ được tính theo công thức.      n n x N F0 1/ ,      n n n k N x kt F 2/ cos ,      n n y N G0 1/ ,      n n n k N y kt G 2/ cos tn = (n+1)/2)/N, n = 0,..., N-1, k = 0, ..., P-1

Biến đổi Cosin rời rạc ngược sẽ thu được N điểm theo công thức:

      n n k n F kt x cos       n n k n G kt y cos tn = (n+1)/2)/N, n = 0,..., N-1, k = 0, ..., P-1

Tập huấn luyện sẽ lưu trữ các vector OCD được đánh nhãn tương ứng với ký tự nó và số nét bút tạo thành ký tự. Khi có ký tự cần đối sánh, các vector OCD {F‟k, G‟k} của nó sẽ được tính và đối sánh với các vector {Fk,Gk} trong tập huấn luyện bằng phương pháp hàng xóm gần nhất. Nếu Vector OCD nào trong tập mẫu có khoảng cách Euclidian d nhỏ nhất với vector cần đối sánh thì nhãn của vector đó chính là ký tự cần nhận dạng[21].                k k k G F' k ' k G F SQRT d

Nếu r lớn hơn ngưỡng R < 1(Bằng thực nghiệm R =0.7[21]) thì ký tự nhận dạng cần phải được bổ sung vào tập mẫu.

CHƢƠNG 5. XÂY DỰNG CHƢƠNG TRÌNH NHẬN DẠNG TIẾNG VIỆT ONLINE

5.1.Mô tả

Hệ thống nhận dạng chữ viết tay trực tuyến trên các thiết bị cầm tay được xây dựng là một hệ thống xử lý văn bản có thể thu nhận dữ liệu qua bàn phím hoặc nét bút viết trên màn hình cảm ứng. Khi người sử dụng viết lên màn hình cảm ứng, sau một khoảng thời gian nhất định(Khoảng 1- 2 giây) kể từ lần chạm bút cuối cùng vào màn hình, module nhận dạng sẽ nhận dạng các nét bút và chuyển kết quả vào module xử lý văn bản.

Hệ thống nhận dạng tiếng Việt demo sử dụng chuột thay cho bút cảm ứng, ngôn ngữ lập trình là C# và môi trường lập trình Microsoft Visual Studio 2003, tổng bộ nhớ sử dụng là hơn 10 MB.

Các bước cài đặt chương trình được thực hiện theo sơ đồ sau:

Tọa độ di chuyển của bút viết Tìm các điểm bị mất Tách dòng Tách từ Hiệu chỉnh góc nghiêng Cắt ký tự

Nhận dạng Hậu xử lý Hiển thị kết quả

5.2.Tiền xử lý

5.2.1Tìm các điểm bị mất

Tốc độ xử lý của các thiết bị cầm tay ngày nay cho phép thu nhận tọa độ của bút viết với hiệu năng cao ngay cả trong trường hợp người viết viết nhanh, do đó các điểm còn thiếu giữa hai điểm của nét bút sẽ được tính bằng cách sử dụng thuật toán vẽ đường thẳng Bresenham như được trình bày ở mục 2.7.2.

5.2.2Tách các dòng văn bản

Người viết có thể viết các từ trên nhiều dòng khác nhau và khoảng cách giữa các dòng không cố định. Các dòng văn bản sẽ được tách bằng cách tính hình chữ nhật nhỏ nhất bao quanh nét bút, những nét bút có hình chữ nhật nhỏ nhất bao quanh chồng lên nhau theo phương nằm ngang lớn hơn một ngưỡng(khoảng 1/4 chiều cao hình chữ nhật bao quanh nét bút thứ 2) sẽ được coi là thuộc cùng một dòng. Ví dụ các nét bút tạo thành chữ “Chiều nay trời” sẽ được đưa vào 2 dòng “Chiều nay” và “trời”

5.2.3Tách các từ khỏi dòng văn bản

Các từ được viết trên màn hình cảm ứng sẽ bị thụt lên hoặc xuống không đều nhau do màn không có dòng kẻ để đánh dấu các dòng. Do đó ta không thể áp dụng tính góc nghiêng cho cả một dòng giống như nhận dạng chữ viết tay off-line được mà phải tách dòng văn bản thành các từ và tính góc nghiêng cho từng từ.

Ngưỡng để phân tách các từ được tính bằng cách áp dụng thuật toán được trình bày trong mục 3.1.1. với giá trì hằng  1.1.Bằng thực nghiệm cho thấy rằng thuật toán cho kết phân tách tốt(100%) trong trường hợp khoảng trắng giữa các từ xa và đều. Nếu khoảng cách giữa các từ nhỏ hơn giá trị ngưỡng không đáng kể, ta sẽ đánh giấu các điểm này lại. Sau khi nhận dạng xong ta sẽ thử tách từ nhận dạng được thành hai từ tại vị trí đánh dấu và kiểm tra theo các quy tắc được đề cập ở phần hậu xử lý để kiểm tra xem việc tách có phù hợp hay không. Nếu phù hợp thì hệ thống sẽ hiện tất cả kết quả có thể đúng lên cho người dùng chọn lựa kết quả.

5.2.4Bỏ dấu tiếng việt và ƣớc lƣợng chiều rộng của ký tự

Sau khi đã hiệu chỉnh góc nghiêng của từ, đường baseline dưới của từ sẽ được tính bằng cách tìm điểm có Histogram theo phương thẳng đứng lớn nhất và gần với điểm cuối cùng của từ nhất. Sau khi tính được đường baseline dưới và ta sẽ đánh dấu những nét bút nằm trên đường baseline dưới có khả năng là dấu. Các dấu ở phía trên của từ là một trong các dấu sau (“?”,””,”\”,”-”,/”). Dấu ở phía dưới của từ chỉ có thể là dấu “.”. Dấu này được xác định dựa vào số lượng điểm ít và chiều rộng và dài của hình chữ nhật nhỏ nhất bao quanh dấu. Các nét bút được gán nhãn có tiềm năng là dấu sẽ được kiểm tra lại một lần nữa để kiểm tra xem có chắc là dấu hay không bằng cách kiểm tra xem nét bút này có cắt các nét bút chắc chắn không phải là dấu hay không và diện tích cắt có nhiều hay không.

Sau khi loại bỏ các nét bút có khả năng là dấu ta sẽ tính đường baseline trên. Chiều rộng của một ký tự nằm trong khoảng từ ½(baseline dưới – baseline trên) tới khoảng (baseline dưới – baseline trên)*2.5.

5.2.5Hiệu chỉnh góc nghiêng

Góc nghiêng theo phương thẳng đứng và theo phương nằm ngang của một ký tự sẽ được tính dựa trên các thuật toán được đề cập ở mục 2.8.1.2. và 2.8.2.2. Góc nghiêng theo phương nằm ngang được tính cho từng ký tự một, tuy nhiên góc nghiêng theo phương thẳng đứng có thể được áp dụng cho tất cả các ký tự vì người viết thường giữ nguyên góc nghiêng này cho tất cả các từ.

5.2.6Xác định các điểm cắt tiềm năng

Để xác định các điểm cắt tiềm năng, tôi sử dụng thuật toán cắt chữ offline được trình bày trong tại mục [4.2.3] đồng thời đưa vào các thông tin động để làm tăng độ chính xác trong việc xác định các điểm cắt tiềm năng.

Thuật toán cắt ký tự online được trình bày như sau:

 Đánh dấu điểm cuối cùng của mỗi nét bút là điểm cắt tiềm năng. Trong hầu hết trường hợp điểm cuối cùng của nét bút cũng chính là điểm cuối cùng của ký tự.

 Xây dựng ma trận đặc trưng MT biểu diễn các đặt trưng theo cột của ma trận nhị phân từ. Các đặt trưng bao gồm: Cột đen(Số điểm đen của cột đó lớn hơn 2 lần số điểm đên trung bình của tất cả các cột), vòng lặp,

 Đi từ trái qua phải của ma trận MT và thực hiện theo các quy tắc sau: 1. Nếu gặp cột đen hoặc vòng lặp, thì tiếp tục đi tiếp cho đến khi

không còn gặp cột đen hoặc cột có vòng lặp. Sau đó tiếp tục di chuyển tiếp cho đến khi gặp cột đen hoặc vòng lặp. Đánh dấu điểm dừng này lại và kiểm tra. Nếu điểm dừng này quá gần so với điểm cắt được xác định là cuối một nét bút thì bỏ qua điểm này và thực hiện tiếp bước 1. Ngược lại đánh dấu điểm này là điểm cắt.

2. Nếu đi quá khoảng cách trung bình của một ký tự thì đánh dấu điểm cắt tại vi trí giữa đi lên hoặc đi xuống của nét bút.

Hình 5.4. Xác định các điểm cắt tiềm năng. Đường thẳng đứng biểu điễn các điểm cắt tiềm năng. Đường thẳng ngang biểu diễn các đường baseline trên, dưới và giữa tiềm năng. Đường thẳng ngang biểu diễn các đường baseline trên, dưới và giữa

Các điểm cắt này sẽ chia từ “ngay” thành các khối như sau:

Sau khi thu được các vị trí cắt, ta sẽ lần lượt ghép các vị trí đó lại với nhau. Để tránh việc nhận dạng lại các khối, ta biểu diễn kết quả nhận dạng khi ghép các khối lại dưới dạng cây.Các vị trí chỉ được ghép với nhau nếu khoảng cách giữa chúng nhỏ hơn khích thước ước lượng của một ký tự. Nếu nhánh nào của cây có tỉ lệ nhận dạng quá thấp thì không mở rộng nhánh đó nữa. Ở ví dụ trên, cây lưu giữ được thể hiện như sau:

Hình 5.5. Từ “ngay” được chia thành 7 khối

v n

i 

Sau khi cắt và kết hợp nhận dạng ta sẽ được các kết quả như “vigoiiy”, “ngoiiy”, “ngouy”, “ngay”.

5.3.Nhận dạng các ký tự

Trong hệ thống nhận dạng demo này, tôi sử dụng hai phương pháp nhận dạng là đối sánh mẫu và đối sánh chuỗi đã được đề cập trong các mục 4.1 và 4.3. Lý do chọn hai phương pháp này là phương pháp thứ hai có thể được dùng để kiểm tra lại kết quả của phương pháp thứ nhất và dữ liệu mẫu cho cả hai phương pháp đơn giản, dễ thực hiện.

Chiều rộng và chiều cao của ký tự mẫu được lấy cố định là 40 x 40, với kích thước này các ký sẽ ít bị nhầm lẫn hơn. Như vậy mỗi mẫu trong phương pháp đối sánh nhị phân sẽ được biểu diễn bằng 100 bit. Sau khi nhận dạng ký tự bằng phương pháp đối sánh mẫu nhị phân, các ký tự có khả năng(tỉ lệ sai mẫu thấp) là kết quả nhận dạng sẽ được lưu lại và sử dụng phương pháp đối sánh chuỗi để đối sánh mẫu đã lưu trữ của các ký tự có khả năng là kết quả với mẫu cần nhận dạng. Tổng hợp của cả hai phương pháp này sẽ cho kết quả cuối cùng. Ví dụ với ký tự “e” và ký tự “o” nếu người viết viết xấu thì hai ký tự này tương đối giống nhau, bằng phương pháp đối sánh bít thì hai ký tự này tương đối giống nhau nhưng bằng phương pháp đối sánh chuỗi thì hai ký tự này lại rất khác nhau.

Mỗi lần nhận dạng ta sẽ lưu lại kết quả của 3 ký tự cho độ chính xác cao nhất. Các kết quả này sẽ được kiểm tra tại bước hậu xử lý để chọn ra các kết quả đúng về mặt cú pháp tiếng Việt.

5.4.Hậu xử lý

Tiếng Việt rất phong phú và đa dạng, do đó khó có để biểu diễn ngữ cảnh của tất cả các từ. Trong hệ thống này, tôi sử dụng quy tắc đứng trước và sau của các ký tự trong tiếng Việt để kiểm tra xem một từ có hợp lệ hay không. Bảng

sau đây sẽ thống kê xem sau một ký tự chỉ có thể có các ký tự không dấu nào đứng sau. Ký tự Các ký tự có thể đứng sau a n,i,o,u,y,t,c,n,m b i,o,a,e,u c a, e, i, o, u d a, o, e, i, u e o, n,m,u g a, e, i, h, u,o h a, o, i, e, u,y i u,n,m k h,a,i,y,o,e,u l a,e,i,o,u,y m a,e,i,o,u,y n a,e,i,o,u,y,g,h o a,i,e,m,n,o,u,c,t p a,e,i,o,u,h,y q u r a,i,u,y,o s a,i,o,u,y,e t a,o,i,e,u,y,h u u,n,y,a,i,e,t,n,m,c v a,e,i,u,y y e

Ở ví dụ trên, các kết quả như “vigoiiy”, “ngoiiy”, “ngouy” sẽ bị loại bỏ, chỉ có kết quả là “ngay” được chấp nhận. Sau khi thu được kết quả là “ngay” ta sẽ ghép dấu sắc được nhận dạng riêng để thu được chữ hoàn chỉnh “ngày”

5.5.Kết luận

Việc xác định đồng thời nhiều vị trí cắt ở cùng một thời điểm và sử dụng các quy tắc thứ tự giữa các từ trong tiếng Việt trong qua trình nhận dạng đảm bảo cho thuật toán luôn chọn được vị trí cắt chính xác nhất tương ứng với kết quả nhận dạng tốt nhất.

Trong trường hợp người dùng viết chữ đều, rõ ràng, tỉ lệ xác định chính xác điểm cắt đúng là rất cao. Tuy nhiên trong một số trường hợp người sử dụng viết dấu quá xa, quá gần với các ký tự hoặc các dấu được viết to hơn nhiều so với tỉ lệ của ký tự, các đường baseline sẽ bị tính sai dẫn tới việc cắt ký tự bị sai.

KẾT LUẬN

Hệ thống nhận dạng chữ viết tay tiếng Việt Online trên các thiết bị cầm tay cung cấp cho người sử dụng thêm một cách giao tiếp với thiết bị, làm cho thiết bị cầm tay càng thuận tiện hơn. Với cách giao tiếp này, thiết bị cầm tay giống như một tờ giấy để viết chữ.

Hệ thống nhận dạng Online có thể được xây dựng thành một chương trình thường trú hay một chương trình nhúng, tất cả những ứng dụng liên quan đến việc xử lý văn bản đều có thể sử dụng chương trình này để thu thập dữ liệu đầu vào.

Nhận dạng chữ viết tay trực tuyến khác so với nhận dạng chữ viết tay không trực tuyến (offline) về các thông tin động khi viết như tốc độ viết, góc của bút viết và sức ép của bút, thứ tự nét viết và hướng của nét bút… Trong luận văn này tôi đã sử dụng các thuật toán trong nhận dạng chữ viết tay off-line kết hợp với các thuật toán trong nhận dạng chữ viết tay on-line để xây dựng hệ thống nhận dạng chữ tiếng Việt on-line. Cụ thể luận văn đã đạt được một số kết quả sau:

- Trình bày một số khái niệm về nhận dạng.

- Trình bày một số phương pháp được dùng trong gian đoạn tiền xử lý. - Trình bày một số thuật toán nhận dạng.

- Xây dựng hệ thống nhận dạng chữ tiếng Việt on-line. Hướng nghiên cứu tiếp theo

- Nghiên cứu các phương pháp nhận dạng sử dụng mạng Nơ ron, Mô hình Markov ẩn.

TÀI LIỆU THAM KHẢO

[1] Wolfgang Hurst, Jie Yang and Alex Waibel. Error Repair in Human Handwriting – An Intelligent User Interface for Automatic On-Line Handwriting Recognition.

[2] R. O. Duda and P. E. Hart. Use of the Hough transformation to detect lines and curves in pictures. Communications of the ACM, 15(1): 11-15, 1972.

[3] S. Jaeger, S. Manke, J. Reichert and A. Waibel. Online handwriting recognition: the Npen++ recognizer.

[4] Niranjan Joshi, G Sita, A G Ramakrishnan and Srriganesh Madhvanath. Comparison of elastic matching algorithms for on-line Tamil handwriting recognition.

[5] M. Blumenstein, C. K. Cheng and X.Y. Liu. New preprocessing techniques for handwritten word recognition.

[6] Eiji Taira, Siichi Uchida and Hiroaki Sakoe. Nonuniform Slant Correction for Handwriting word Recognition

[7] B. Gatos, I. Pratikakis,A.L. Kesidits, S.J. Perantoniss. Efficient Off-Line Cursive handwriting Word Recognition

[8] U.-V. Marti and H. Bunke. Text line segmentation and word recognition in a system for general writer independent handwriting recognition. In Proc. 6th Int. Conference on Document Analysis and Recognition, pages 159–163, 2001.

[9] Marcus Liwicki, Mathias Scherz and Horst Bunke. Word Extraction from On-Line Handwritten Text Lines

[10] Lei Huang, Genxun Wan, Changping Liu. An Improved Parallel Thinning Algorithm.

[11] Jean R_ Ward and Thedore Kuklinski_ A Model for Variability E_ects in Handwriting Character Recognition Systems in IEEE Trans. Sys. Man. Cybernetics Vol: 18, No3, pp: 438 – 451, 1988_

[12] Nafir arica. An off_line character recognition for free style handwring.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nhận dạng chữ viết tay tiếng Việt trên các thiết bị cầm tay Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 84)

Tải bản đầy đủ (PDF)

(100 trang)