CHƯƠNG 1 GIỚI THIỆU 1.1 Trong thực tiễn Trong thời đại cách mạng công nghiệp 4.0 hiện nay, nhu cầu tự động hóa quá trình quản lý là một trong những yếu tố chính ảnh hưởng đến tốc độ phát triển của một quốc gia. Chính vì thế, việc xây dựng một hệ thống tự động thu thập và số hóa thông tin người dùng là một bài toán thực sự cần thiết và hữu ích. Theo truyền thống, quá trình số hóa dữ liệu là một công việc khá “rườm rà”, tốn nhiều tài nguyên, thời gian và công sức của con người. Đầu tiên, người dùng phải điền thông tin của họ vào một biểu mẫu bằng tay.
Tiếp theo, thông tin của mỗi trường trong biểu mẫu được nhân viên gõ thủ công vào máy tính. Có thể thấy, đây được xem là một giai đoạn vô cùng nhàm chán, đồng thời cũng dễ xảy ra sai sót trong quá trình nhập liệu. Hơn nữa, việc nhập liệu này phải lặp đi lặp lại rất nhiều lần với cùng số lượng biểu mẫu lớn. Ngày nay, một số công ty và đơn vị đã chuyển các hình thức giấy tờ sang biểu mẫu kỹ thuật số, tại đó khách hàng và nhân viên có thể nhập trực tiếp thông tin của mình lên đó mà không cần phải dùng đến bút.
Tuy nhiên, một số nơi khác vẫn giữ cách truyền thống, yêu cầu khách hàng của họ phải viết tay vì nhiều lý do riêng. Một trong số đó được dùng với mục đích kiểm tra sự trùng khớp về nét chữ, cũng như nhằm đảm bảo các tiêu chí bảo mật. Vì vậy, dữ liệu văn bản viết tay vẫn tồn tại bất chấp sự phát triển vượt bậc của công nghệ và sự phổ biến của các biểu mẫu dưới dạng kỹ thuật số. Điều này cho thấy rằng việc tạo ra một hệ thống tự động hóa để giải quyết các vấn đề liên quan đến chữ viết tay là vô cùng quan trọng.
Quá trình này sẽ được thực hiện với các bước sau đây. Trước hết, hình thức tài liệu trên giấy sẽ được quét bởi một máy scan hoặc chụp bằng 1 Giới thiệu 2 các thiết bị công nghệ để tạo ra hình ảnh. Tiếp theo sử dụng máy tính để tự động trích xuất thông tin người dùng, tập trung vào các vùng là chữ viết tay.1 thể hiện ví dụ về số hóa biểu mẫu có chữ viết tay trên một số trường ngữ nghĩa.1: Ví dụ về số hóa văn bản viết tay 1.2 Trong nghiên cứu Bài toán nhận dạng văn bản viết tay đã được nghiên cứu trong hơn ba mươi năm gần đây, được phát triển dần dần từ việc nhận dạng văn bản ở mức độ ký tự đến mức độ từ rồi đến mức độ dòng gồm nhiều từ. Nhận dạng chữ viết tay được chia thành hai lớp bài toán lớn sau: • Nhận dạng trực tuyến (online recognition) là nhận dạng các chữ trên màn hình ngay khi nó được viết.
Trong hệ nhận dạng này máy tính sẽ lưu lại các thông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét. • Nhận dạng ngoại tuyến (offline recognition) là dự đoán chuỗi văn bản từ một vùng văn bản viết tay cố định từ hình ảnh đã được chụp hoặc quét. Sự khác biệt chính giữa hai phương pháp trên đó là dữ liệu đầu vào. Đối với phương pháp nhận dạng trực tuyến bao gồm tất cả các tọa độ của nét chữ được viết từ bút kỹ thuật số, cùng với hình ảnh của chúng được tạo ra từ sự chuyển động của bút.
Trong khi, với phương pháp nhận dạng ngoại tuyến thì đầu vào chỉ có hình ảnh của nét chữ đã được hình thành (ảnh tĩnh), không có thêm bất kì thông tin nào về dấu vết của chúng. Một điểm khác biệt nữa là hệ thống nhận dạng trực tuyến đòi hỏi phải nhanh và ngay lập tức, trong khi với hệ thống ngoại tuyến có thể thực thi với thời gian ràng buộc tương đối thoải mái. Trong luận văn này, chúng tôi sẽ chỉ thảo luận và tập trung vào phương pháp nhận dạng ngọai tuyến, vì nó phù hợp với phương hướng nghiên cứu cũng như mục đích cuối cùng của luận văn. 2 Giới thiệu 3 Về nguyên tắc, nhận dạng văn bản viết tay khác với nhận dạng đối tượng từ hình ảnh hay nhận dạng hành động từ video: • Đối với nhận dạng đối tượng: chỉ tập trung vào sự xuất hiện của đối tượng cần quan tâm trên một hình ảnh, chủ yếu khai thác thông tin không gian của chúng được thể hiện trên hình ảnh.
• Đối với nhận dạng hành động: cần biết một chuỗi dữ liệu tạm thời để ghi nhận lại sự thay đổi của hành động, có thể hiểu đó là một chuỗi các khung (frame) liên tục trong video về hành động của một đối tượng nào đó. • Cả hai đều không có bất kỳ cơ chế chỉnh sửa nào để hoàn thiện được kết quả cuối cùng. Mặt khác, đối với nhận dạng văn bản viết tay thì dữ liệu chúng ta có cả thông tin không gian và thông tin thời gian: • Hình dạng của các ký tự trên hình ảnh. • Trình tự sắp xếp của các kí tự, hay còn được gọi là chuỗi thông tin hay thông tin tuần tự (sequential information).
• Kết quả cuối cùng có thể được chỉnh sửa bằng các mô hình ngôn ngữ (language models) nếu cần (Hình 1.2: Nhận dạng chữ viết tay kết hợp mô hình ngôn ngữ Hơn nữa, theo thống kê cho thấy tiếng Việt có rất ít nghiên cứu về nhận dạng văn bản viết tay so với các ngôn ngữ Latinh khác, chẳng hạn như tiếng Anh hay tiếng Pháp. Vì vậy, với tư cách là sinh viên Việt Nam, chúng tôi mong muốn cống hiến công sức và kiến thức của mình để giải quyết bài toán liên quan đến ngôn ngữ mẹ đẻ là tiếng Việt.2 Phạm vi và mục tiêu nghiên cứu 1.1 Quy trình cơ bản của hệ thống trích xuất thông tin Trong một ứng dụng thực tế, bài toán nhận dạng chữ viết tay trong một biểu mẫu có bố cục cố định sẽ được thực hiện qua các bước như sau: 1. Phát hiện biểu mẫu và chuẩn hóa. Với giả định ảnh đầu vào là một biểu mẫu được chụp bằng các thiết bị di động, nên background của ảnh đầu vào sẽ chứa rất nhiều thứ không cần thiết, gây ảnh hưởng đến độ chính xác của bước nhận diện biểu mẫu và ảnh hưởng đến độ chính xác của toàn bộ bài toán.
Do đó, trước khi thực hiện phân tích bố cục và nhận diện văn bản thì ảnh đầu vào cần phải được làm sạch background và phải được chuẩn hóa. • Phát hiện biểu mẫu là quá trình sử dụng một số mô hình về phát hiện vật thể để nhận diện biểu mẫu. Kết quả đầu ra của quá trình này sẽ là tọa độ của hình chữ nhật vừa đủ bao lấy toàn bộ biểu mẫu. • Chuẩn hóa là sau quá trình phát hiện biểu mẫu, ảnh đầu vào đã được bỏ bớt một số vùng background không cần thiết, hệ thống sẽ thực hiện quá trình chuẩn hóa dựa trên ảnh này.
Cụ thể, quá trình chuẩn hóa sẽ tiến hành phát hiện các cạnh và tìm các giao điểm của các cạnh; từ đó phát hiện được bốn góc của biểu mẫu, kết hợp thêm các phép chiếu để căn chỉnh lại biểu mẫu thành một ảnh có bốn góc vuông. Phát hiện và phân loại vùng văn bản. Bước này có nhiệm vụ phát hiện vị trí và phân loại các vùng văn bản trong biểu mẫu, sau đó các vùng chữ viết tay (textline) sẽ được đưa vào hệ thống nhận diện ký tự quang học. Nhận dạng ký tự quang học.
Quá trình nhận dạng ký tự quang học (Optical Character Recognition - OCR) sẽ nhận vào một hình ảnh có chứa dòng chữ viết tay tiếng Việt, sau đó sẽ nhận dạng các ký tự bên trong ảnh đầu vào bằng việc chuyển từ ảnh thành dạng text có thể chỉnh sửa được trên các thiết bị công nghệ. Qua quá trình nhận dạng ký tự quang học, chúng ta sẽ nhận được đầu ra là các chuỗi ký tự có nghĩa, kết hợp thêm hậu xử lý (post-processing) và các kỹ thuật xử lý ngôn ngữ tự nhiên, hệ thống có thể rút trích những thông tin cần thiết từ ảnh đầu vào. Tuy nhiên với thời gian cho phép cũng như mục đích ban đầu của luận văn, chúng tôi chỉ tập trung vào module nhận dạng ký tự quang học, cụ thể hơn là bài toán nhận dạng chữ viết tay tiếng Việt bằng các mô hình học sâu đồng thời kết hợp với một số phương pháp hậu xử lý để cho ra kết quả cuối cùng. Điều này có nghĩa rằng, nhiệm vụ ở đây chỉ chuyển chữ viết tay trên hình ảnh thành text sau khi đã có ảnh của 4 Giới thiệu 5 vùng chữ viết tay, đối với module nhận diện vùng chữ viết tay sẽ được thực hiện trong tương lai và không thể hiện trong luận văn này.
Trong luận văn này, chúng tôi tiếp cận bài toán nhận dạng chữ viết tay đi từ mức độ từ đến mức độ dòng. Mục tiêu cuối cùng mà chúng tôi muốn hướng đến đó là tìm ra phương pháp phù hợp để giải quyết bài toán “Nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định”, cụ thể hơn là nhận dạng được chữ viết tay trong biểu mẫu phiếu gửi của Viettel post.2 Nhận dạng chữ viết tay Tại đây chúng tôi sẽ trình bài sơ lược về nhận dạng chữ viết tay ở mức độ từ và mức độ dòng, cùng các giai đoạn nhận dạng chữ viết tay. Nhận dạng chữ viết tay ở mức độ từ: Một từ là một chuỗi các kí tự không chứa khoảng trắng. Giả sử rằng hình ảnh của từ đã được trích xuất ra từ các module trước (những module không được xem xét trong luận văn này), ví dụ như module phát hiện biểu mẫu hay module phát hiện dòng chữ viết tay.3 minh họa việc tách các từ trên cùng một dòng chữ thành các từ riêng biệt để tiến hành nhận dạng chữ viết ở mức độ từ.3: Minh họa nhận dạng ở mức độ từ Nhận dạng chữ viết tay ở mức độ dòng: Dòng là một chuỗi các ký tự tạo thành các từ và ngăn cách nhau bởi các khoảng trắng.
Tương tự như từ, hình ảnh của dòng chữ viết tay giả sử đã được cắt ra từ các modules trước.4 minh họa việc nhận dạng chữ viết ở mức độ dòng. 5 Giới thiệu 6 Hình 1.4: Minh họa nhận dạng ở mức độ dòng Bài toán của chúng ta gồm có hai giai đoạn đó là “giai đoạn ngoại tuyến” (offline phase) bao gồm việc huấn luyện, đánh giá mô hình và “giai đoạn trực tuyến” (online phase) chạy trên dữ liệu thực tế. • Đối với giai đoạn ngoại tuyến: – Đầu vào: Một cặp gồm ảnh chữ viết tay và text chứa từ hay dòng.