Trong một vài năm trở lại đây, mạng nơron đã đƣợc nhiều ngƣời quan tâm và đã đƣợc áp dụng thành công trong nhiều lĩnh vực khác nhau, nhƣ tài chính, y tế, địa chất và vật lý,... Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơron đều có khả năng ứng dụng đƣợc. Ví dụ nhƣ khả năng nhận dạng mặt ngƣời trong các hệ thống quản lý thông tin liên quan đến con ngƣời (quản lý nhân sự ở các doanh nghiệp, quản lý sinh, sinh viên trong các trƣờng học… ), các ngành khoa học hình sự, khoa học tƣớng số và tử vi, v.v…
Kết hợp chặt chẽ với logic mờ, mạng nơron nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóa các bộ điều khiển kỹ thuật cao cho cả hiện tại và trong tƣơng lai. Ví dụ nhƣ ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố,…
Mạng nơron thực hiện việc mô phỏng cấp thấp hệ thống nơron sinh học. Trong tƣơng lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự.
Một số ứng dụng chính của mạng nơron:
- Aerospace: Phi công tự động, giả lập đƣờng bay, các hệ thống điều khiển lái máy bay, bộ phát hiện lỗi.
- Automotive: Các hệ thống dẫn đƣờng tự động cho ô tô, các bộ phân tích hoạt động của xe.
- Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.
- Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tƣợng, nhận dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar,...
- Electronics: Dự đoán mã tuần tự, sơ đồ chip IC, điều khiển tiến trình, phân tích nguyên nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức độ hợp tác, phân tích đƣờng tín dụng, chƣơng trình thƣơng mại qua giấy tờ, phân tích tài chính liên doanh, dự báo tỷ giá tiền tệ.
- Insurance: Đánh giá việc áp dụng chính sách, tối ƣu hóa sản phẩm.
Kết luận chương 1:
Qua việc nghiên cứu về mạng nơron tổng quan ở trên, ta đã thấy có rất nhiều loại mạng nơron và cũng có rất nhiều thuật toán học khác nhau. Qua đó, chúng ta đã thấy đƣợc đặc điểm giống và khác nhau cơ bản của học có giám sát, học không giám sát và học tăng cƣờng; phân biệt đƣợc các loại mạng nơron nhƣ mạng dẫn tiến đơn mức, mạng dẫn tiến đa mức, mạng quy hồi, ...
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chƣơng 2
ỨNG DỤNG MẠNG NƠRON TRONG NHẬN DẠNG CHỮ VIẾT TAY TRỰC TUYẾN
2.1. Giới thiệu bài toán nhận dạng kí tự 2.1.1. Giới thiệu sơ lƣợc về nhận dạng
Bài toán nhận dạng tuy ra đời từ thập niên 60 của thế kỷ trƣớc nhƣng vẫn luôn nhận đƣợc sự quan tâm, nghiên cứu của nhiều nhà khoa học trên thế giới. Đặc biệt là trong những thập niên gần đây, cùng với quá trình đẩy mạnh tin học hóa trong mọi lĩnh vực đời sống xã hội, nhận dạng không chỉ còn là lĩnh vực nghiên cứu lý thuyết nữa mà đã đƣợc ứng dụng rộng rãi trong thực tế cuộc sống. Nhận dạng là quá trình phân loại các đối tƣợng đƣợc biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp dựa theo các quy luật và các mẫu chuẩn. Quá trình nhận dạng dựa vào những mẫu học biết trƣớc gọi là học có giám sát hoặc không có mẫu thì gọi là học không có giám sát.
Có thể nêu ra một số bài toán tiêu biểu của nhận dạng với các mức độ khác nhau về xử lý và sử dụng ngôn ngữ tự nhiên của con ngƣời:
- Nhận dạng tiếng nói (speech recognition): từ sóng tiếng nói, nhận biết và chuyển chúng thành dữ liệu văn bản tƣơng ứng.
- Nhận dạng chữ viết (optical character recognition, OCR): từ một văn bản in trên giấy, nhận biết từng ký tự và chuyển chúng thành một tệp văn bản trên máy tính.
- Dịch tự động (machine translation): từ một tệp dữ liệu văn bản trong một ngôn ngữ (tiếng Anh chẳng hạn), máy tính dịch và chuyển thành một tệp văn bản trong một ngôn ngữ khác
- Tóm tắt văn bản (text summarization): từ một văn bản dài (mƣời trang chẳng hạn) máy tóm tắt thành một văn bản ngắn hơn (một trang) với những nội dung cơ bản.
- Tìm kiếm thông tin (information retrieval): từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những tệp có nội dung liên quan đến một vấn đề (câu hỏi) ta cần biết (hay trả lời). Điển hình của công nghệ này là Google, một
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
hệ tìm kiếm thông tin trên Web, mà hầu nhƣ chúng ta đều dùng thƣờng xuyên. Cần nói thêm rằng mặc dù hữu hiệu hàng đầu nhƣ vậy, Google mới có khả năng cho chúng ta tìm kiếm câu hỏi dƣới dạng các từ khóa (keywords) và luôn “tìm” cho chúng ta rất nhiều tài liệu không liên quan, cũng nhƣ rất nhiều tài liệu liên quan đó tồn tại thì Google lại tìm không ra.
- Trích chọn thông tin (information extraction): từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những đoạn bên trong một số tệp liên quan đến một vấn đề (câu hỏi) ta cần biết hay trả lời. Một hệ trích chọn thông tin có thể “lần” vào từng trang Web liên quan, phân tích bên trong và trích ra các thông tin cần thiết.
- Phát hiện tri thức và khai phá dữ liệu văn bản (knowledge discovery and text data mining): Từ những nguồn rất nhiều văn bản thậm chí hầu nhƣ không có quan hệ với nhau, tìm ra đƣợc những tri thức trƣớc đấy chƣa ai biết. Đây là một vấn đề rất phức tạp và đang ở giai đoạn đầu của các nghiên cứu trên thế giới.
Ngoài ra, còn nhiều bài toán và công nghệ xử lý ngôn ngữ khác, nhƣ giao diện ngƣời máy bằng ngôn ngữ tự nhiên, các hệ hỏi đáp, các hệ sinh ra ngôn ngữ …
2.1.2. Giới thiệu về nhận dạng chữ viết tay
Các bài toán nhận dạng đƣợc nghiên cứu nhiều nhất hiện nay bao gồm nhận dạng các mẫu hình học (vân tay, mặt ngƣời, hình khối, …), nhận dạng tiếng nói và nhận dạng chữ viết. Chúng đƣợc áp dụng vào nhiều lĩnh vự nhƣ y học, dự báo thời tiết, dự báo cháy rừng, điều khiển robot, ... Trong các bài toán nhận dạng này, nhận dạng chữ viết là bài toán đang đƣợc ứng dụng phổ biến nhất hiện nay.
Nhận dạng chữ viết bao gồm hai kiểu chính là nhận dạng chữ in và nhận dạng chữ viết tay. Cho đến nay bài toán nhận dạng chữ in đã đƣợc giải quyết khá trọn vẹn với sự ra đời của nhiều hệ thống nhận dạng đạt tới độ chính xác gần nhƣ tuyệt đối. Trên thế giới hiện nay có nhiều chƣơng trình nhận dạng chữ viết (chữ in và viết tay) bằng các thứ tiếng Anh, Nga… nhƣ các hệ OMNIPAGE, READ-WRITE, WORD-SCAN,... Tiêu biểu có hệ nhận dạng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chữ in dựa trên mô hình mạng nơron bốn lớp của J. Wang và J.S.N. Jean đạt [ 2 0 ] tới tỷ lệ chính xác 99.75%.
Ở Việt Nam hiện đã có sản phẩm VNDOCR của Viện Công nghệ thông tin nhận dạng chữ in tiếng Việt với độ chính xác tới 99%, có khả năng nhận dạng trực tiếp các loại tài liệu đƣợc quét qua máy quét, không cần lƣu trữ dƣới dạng tệp ảnh trung gian. Các trang tài liệu có thể đƣợc quét và lƣu trữ dƣới dạng tệp tin nhiều trang. Kết quả nhận dạng đƣợc lƣu trữ sang định dạng của Microsoft Word, Excel... phục vụ rất tốt nhu cầu số hóa dữ liệu. Hệ nhƣ WORC của công ty 3C, VIET-IN của công ty SEATIC, Image Scon của Trung Tâm Tự động hoá thiết kế. Ngoài ra, còn có một dự án OCR Tiếng Việt có tên VietOCR, đƣợc phát triển dựa trên nền tảng mã nguồn mở tesseract-ocr do Google tài trợ. VietOCR có khả năng nhận dạng chữ Việt rất tốt. Đây là một chƣơng trình nguồn mở Java/.NET, hỗ trợ nhận dạng cho các dạng ảnh PDF, TIFF, JPEG, GIF, PNG, và BMP. ABBYY - một hãng công nghệ hàng đầu trên thế giới về lĩnh vực nhận dạng ký tự quang học đã tiến hành nghiên cứu và triển khai công nghệ nhận dạng Tiếng Việt vào tháng 4 năm 2009. Với công nghệ này độ chính xác trong việc nhận dạng tài liệu chữ in tiếng Việt lên tới hơn 99% (cứ nhận dạng 100 ký tự thì có chƣa đến 1 ký tự sai). Công nghệ của ABBYY chấp nhận hầu hết các định dạng ảnh đầu vào nhƣ: PDF, TIFF, JPEG, GIF, PNG, BMP, PCX, DCX, DjVu... Kết quả nhận dạng đƣợc lƣu trữ dƣới các định dạng MS Word, MS Excel, HTML, TXT, XML, PDF, PDF 2 lớp, trong đó định dạng PDF 2 lớp là một định dạng hoàn hảo cho việc lƣu trữ và khai thác tài liệu. Với định dạng này, ngƣời đọc có thể đọc trung thực ảnh gốc nhờ lớp ảnh bên trên, các công cụ tìm kiếm có thể tìm kiểm toàn văn trên văn bản nhờ lớp text nhận dạng đƣợc bên dƣới. Ngƣời sử dụng có thể thử nghiệm công nghệ nhận dạng của ABBYY (miễn phí) tại trang web: www.sohoa.com.vn.
Việc nhận dạng chữ in bằng tay, chữ thảo bằng tay, và thậm chí những phiên bản đánh máy đƣợc in ra của vài chữ (đặc biệt là những chữ có số chữ cái lớn), vẫn còn là một nhiệm vụ của các nghiên cứu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Các hệ thống nhận dạng chữ viết tay đã đạt đƣợc những thành công lớn về mặt thƣơng mại trong những năm gần đây. Trong số đó là thiết bị nhập cho những thiết bị hỗ trợ cá nhân (PDA) nhƣ những phần mềm chạy trên Palm OS. hãng Apple Newton đi tiên phong trong công nghệ này. Những giải thuật sử dụng trong những thiết bị này sử dụng những ƣu điểm rằng thứ tự, tốc độ, và hƣớng của những đoạn dòng đơn lẻ đã đƣợc biết trƣớc. Tƣơng tự, ngƣời dùng có thể đƣợc yêu cầu sử dụng chỉ một vài loại kiểu chữ nhất định. Những phƣơng pháp này không thể dùng đƣợc trong phần mềm scan tài liệu giấy, do đó sự nhận dạng chính xác văn bản in bằng tay vẫn là một vấn đề lớn đang đƣợc bỏ ngỏ. Với mức chính xác từ 80% đến 90%, những chữ in bằng tay sạch sẽ có thể đƣợc nhận ra, nhƣng độ chính xác đó vẫn tạo ra hàng tá lỗi mỗi trang, khiến cho công nghệ đó chỉ hiệu quả trong vài trƣờng hợp nào đó. Sự đa dạng của nhận dạng ký tự quang học (Optical Character Recognition, viết tắt là OCR) hiện nay đƣợc biết đến trong công nghiệp là ICR, (Intelligent Character Recognition - Nhận dạng Ký tự Thông minh). là sự phát triển ở mức cao hơn của công nghệ nhận dạng chữ in. Đối tƣợng nhận dạng của công nghệ ICR không chỉ là chữ in mà còn bao gồm cả chữ viết tay. Công nghệ nhận dạng chữ viết tay thƣờng đƣợc dùng trong việc nhận dạng thông tin từ các tài liệu dạng biểu mẫu. Trên các tài liệu dạng này, một số thông tin đƣợc điền bằng tay tại các vị trí cố định (tờ khai mở tài khoản ngân hàng, tờ khai hải quan, phiếu đăng ký…).
Nhận dạng chữ viết tay là một lĩnh vực nghiên cứu sôi nổi, với tỷ lệ nhận dạng thậm chí còn thấp hơn cả văn bản in bằng tay. Tỷ lệ nhận dạng cao hơn của những bản viết tay chung chung hầu nhƣ là không thể nếu không sử dụng thông tin về ngữ pháp và văn cảnh. Ví dụ nhận dạng cả một chữ từ một cuốn từ điển thì dễ hơn là việc cố gắng lấy ra những ký tự rời rạc từ đoạn đó. Đọc dòng Tổng cộng của một tờ séc (luôn luôn đƣợc viết bằng số) là một ví dụ trong đó sử dụng những từ điển nhỏ hơn có thể tăng tỷ lệ nhận dạng rất nhiều. Kiến thức về ngữ pháp của một ngôn ngữ đƣợc scan cũng có thể giúp xác định một từ có thể là động từ hay danh từ, sẽ cho phép độ chính xác cao hơn. Hình dạng của chữ viết tay bản thân nó đã không chứa đủ thông tin về để nhận dạng chính xác (hơn 98%) tất cả những đoạn chữ viết tay.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Nhận dạng chữ viết tay đang là vấn đề thách thức lớn đối với các nhà nghiên cứu, chƣa thể giải quyết trọn vẹn đƣợc vì nó phụ thuộc quá nhiều vào ngƣời viết, sự biến đổi quá đa dạng trong cách viết và trạng thái tinh thần của từng ngƣời viết. Cho đến nay, bài toán nhận dạng chữ viết tay cũng đã có một số kết quả khả quan, chủ yếu tập trung trên các tập dữ liệu chữ số viết tay nhƣ USPS và MNIST, một số kết quả khác mở rộng đối với các chữ hệ La tinh, Hy lạp.... Đặc biệt đối với việc nhận dạng chữ viết tay tiếng Việt lại càng gặp nhiều khó khăn hơn do bộ ký tự tiếng Việt có nhiều ký tự có hình dáng rất giống nhau, chỉ khác nhau chút ít về phần dấu. Do đó có rất ít kết quả nghiên cứu về nhận dạng chữ viết tay tiếng Việt và các kết quả nghiên cứu chủ yếu cũng chỉ tập trung vào chữ viết tay trực tuyến . Bài toán tôi đặt ra ở đây là xây dựng một mô hình nhận dạng ký tự Việt viết tay rời rạc trực tuyến. Bộ ký tự tiếng Việt bao gồm tập ký tự không dấu {A, B, C, D, Đ, E, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V,X, Y} và các ký tự có dấu {Ă, Â, À, Ả, Ã, Á, Ạ, Ằ, Ẳ, Ẵ, Ắ, Ặ, Ầ, Ẩ, Ẫ, Ấ, Ậ, Ê, È, Ẻ, Ẽ, É, Ẹ, Ề, Ể, Ễ, Ế, Ệ, Ì, Ỉ, Ĩ, Í, Ị, Ô, Ơ, Ò, Ỏ, Õ, Ó, Ọ, Ồ, Ổ, Ỗ, Ố, Ộ, Ờ, Ở, Ỡ, Ớ, Ợ, Ƣ, Ù, Ủ, Ũ, Ú, Ụ, Ừ, Ử, Ữ, Ứ, Ự, Ỳ, Ỷ, Ỹ, Ý, Ỳ}.
Nhận dạng chữ viết tay đƣợc chia thành hai lớp bài toán lớn là nhận dạng chữ viết tay trực tuyến (online) và nhận dạng chữ viết tay ngoại tuyến (offline). Trong nhận dạng chữ viết tay ngoại tuyến, dữ liệu đầu vào đƣợc cho dƣới dạng các ảnh đƣợc quét từ các giấy tờ, văn bản. Ngƣợc lại nhận dạng chữ viết tay trực tuyến là nhận dạng các chữ trên màn hình ngay khi nó đƣợc viết.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trong đó:
♦ Tiền xử lý: là quá trình chuẩn hóa dữ liệu vào, gồm các công việc nhƣ xử lý nhiễu, chuẩn hóa kích thƣớc dữ liệu, …
♦ Trích chọn đặc trƣng: là quá trình tìm ra các thông tin hữu ích và đặc trƣng nhất cho mẫu đầu vào để sử dụng cho quá trình nhận dạng.
♦ Nhận dạng: là quá trình sử dụng một mô hình nhận dạng cụ thể với một thuật toán cụ thể để trả lời mẫu đầu vào là chữ nào.
♦ Hậu xử lý: là quá trình xử lý kết quả cho phù hợp với từng ứng dụng cụ thể.
2.1.3. Nhận dạng chữ viết tay bằng mạng nơron[5]
Đối với chữ viết tay của con ngƣời, nhận dạng chữ khá phức tạp do tính quá đa dạng, không đồng nhất, có tính tự nhiên của con ngƣời.
Một số phƣơng thức lập trình truyền thống đã ánh xạ ảnh ký tự vào trong ma trận, phân tích ảnh hoặc vector dữ liệu, kiểm tra đƣa ra quyết định phù hợp của kết quả. Trong lập trình truyền thống, việc thực thi này cần viết mã nguồn vô tận cho mỗi kiểu đầu vào khác nhau. Lý thuyết này không hiện thực.
Mô phỏng sinh học và đặc biệt là mô phỏng nơron thần kinh là mong ƣớc từ lâu của nhân loại. Chính những khám phá của khoa học về bộ não con ngƣời, về nơron thần kinh đó thúc đẩy các nhà tin học nghiên cứu xây dựng