Luận văn tốt nghiệp về nhận diện chữ viết tay tiếng Việt trong khoa học máy tính

Khóa luận tốt nghiệp nghiên cứu Luận văn tốt nghiệp khoa học máy tính nhận diện chữ viết tay tiếng việt, vận dụng lý thuyết vào thực tế, đề xuất giải pháp cụ thể cho vấn đề .

Trường đại học

Đại học Bách Khoa

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

luận văn tốt nghiệp

2015

52
26
1

Phí lưu trữ

30 Point

Mục lục chi tiết

Lời cam đoan

Lời cảm ơn

Tóm tắt

1. Chương 1: Tổng quan

1.1. Giới thiệu đề tài

1.2. Mục tiêu và phạm vi đề tài

1.3. Đóng góp của đề tài

1.3.1. Về lý thuyết

1.3.2. Về thực tế

2. Chương 2: Kiến thức nền tảng

2.1. Tổng quan về mạng neuron

2.1.1. Mạng neuron

2.1.2. Perceptron

2.1.3. Mạng neuron đa tầng

2.2. Mạng neuron tích chập

2.2.1. Tổng quan

2.2.2. Convolutional Layer - Tầng tích chập

2.2.3. Stride và Padding

2.2.4. Pooling

2.3. Mạng neuron hồi quy

3. Chương 3: Các công trình liên quan

3.1. Sinh chữ viết tay bằng RNN

3.1.1. Mô hình CRNN

3.1.2. Visual attention và LSTM

3.1.3. Tự động thêm dấu tiếng Việt

3.1.4. Character-level BiLSTM seq2seq

3.1.5. Image-to-markup Generation

4. Chương 4: Phương pháp thực hiện

4.1. Chuẩn bị tập dữ liệu

4.1.1. Tập dữ liệu địa chỉ

4.1.2. Tập dữ liệu sinh thêm bằng phương pháp biến đổi ảnh

4.1.3. Tập dữ liệu sinh thêm bằng RNN

4.2. Mô hình sử dụng

4.2.1. Chi tiết mô hình

4.2.2. Hướng tiếp cận

4.2.2.1. Phương pháp 1
4.2.2.2. Thông số huấn luyện
4.2.2.3. Phương pháp 2
4.2.2.4. Thông số huấn luyện

4.2.3. Môi trường huấn luyện

4.2.5. Nhãn huấn luyện

5. Chương 5: Đánh giá mô hình

5.1. Tập dữ liệu

5.2. Cách thức đo lường

5.3. Môi trường đánh giá

5.3.1. Minh họa kết quả

5.3.2. Chi tiết số liệu

5.3.2.1. Thông số huấn luyện
5.3.2.2. Thời gian chạy

5.4. Windows Presentation Foundation

5.4.1. Tổng quan ứng dụng

5.4.2. Mô tả ứng dụng

5.4.2.1. Vẽ khung chứa chữ viết tay
5.4.2.2. Nhận diện chữ viết tay

6. Chương 6

6.1. Vẽ khung chứa chữ viết tay

6.2. Nhận diện chữ viết tay

6.3. Tổng quan luận văn

6.3.1. Trong giai đoạn đề cương

6.3.2. Trong giai đoạn luận văn

6.4. Giới hạn và định hướng tương lai

6.4.1. Định hướng tương lai

Tài liệu tham khảo

Tóm tắt

I. Tổng quan về nhận diện chữ viết tay tiếng Việt

Nhận diện chữ viết tay tiếng Việt là một lĩnh vực đang thu hút sự chú ý trong nghiên cứu khoa học máy tính, đặc biệt trong bối cảnh số hóa dữ liệu ngày càng phát triển. Nhận diện chữ viết tay không chỉ giúp tự động hóa quá trình nhập liệu mà còn tiết kiệm thời gian và tài nguyên. Theo một nghiên cứu, việc chuyển đổi văn bản viết tay thành văn bản số hóa có thể giảm thiểu thời gian xử lý thông tin đến 80%. Đề tài này không chỉ tập trung vào việc phát triển công nghệ mà còn góp phần vào việc nâng cao hiệu suất làm việc trong các lĩnh vực như giáo dục, hành chính và thương mại điện tử. Sự phát triển của công nghệ nhận diện chữ viết tay còn giúp mở rộng khả năng tiếp cận thông tin cho những người không quen với công nghệ, từ đó nâng cao chất lượng cuộc sống.

1.1. Mục tiêu nghiên cứu

Mục tiêu chính của nghiên cứu này là phát triển một hệ thống có khả năng nhận diện chữ viết tay tiếng Việt một cách chính xác và hiệu quả. Đề tài sẽ tập trung vào việc xây dựng một mô hình học sâu sử dụng các thuật toán machine learning để xử lý và nhận diện văn bản viết tay. Hệ thống này sẽ được thiết kế để nhận diện các văn bản có dấu và không dấu, từ đó giúp người dùng có thể dễ dàng chuyển đổi các tài liệu viết tay thành văn bản số hóa. Hơn nữa, nghiên cứu cũng sẽ tìm hiểu về các phương pháp tối ưu hóa mô hình để đạt được độ chính xác cao nhất trong việc nhận diện chữ viết tay. Việc hoàn thành mục tiêu này không chỉ mang lại lợi ích cho cộng đồng nghiên cứu mà còn cho các ứng dụng thực tiễn trong nhiều lĩnh vực.

II. Công nghệ và phương pháp thực hiện

Để phát triển hệ thống nhận diện chữ viết tay tiếng Việt, nghiên cứu đã áp dụng một số công nghệ tiên tiến như OCR (Optical Character Recognition) và deep learning. Công nghệ OCR đã được cải tiến để phù hợp với đặc thù của chữ viết tay tiếng Việt, nơi mà các ký tự có thể biến đổi đáng kể về hình thức. Hệ thống sử dụng các mạng nơ-ron tích chập (CNN) để trích xuất đặc trưng từ hình ảnh chữ viết tay và sau đó áp dụng các mô hình hồi quy để phân loại các ký tự. Đặc biệt, việc sử dụng thuật toán nhận diện chữ viết tay đã cho thấy hiệu quả cao trong việc xử lý các văn bản có độ phức tạp khác nhau. Ngoài ra, nghiên cứu cũng đã xây dựng một luồng xử lý dữ liệu để đảm bảo rằng hệ thống có thể hoạt động mượt mà và hiệu quả trong thực tế.

2.1. Dữ liệu và huấn luyện mô hình

Một trong những yếu tố quan trọng trong việc phát triển hệ thống nhận diện chữ viết tay là dữ liệu huấn luyện. Nghiên cứu đã thu thập một tập dữ liệu lớn bao gồm các mẫu chữ viết tay tiếng Việt từ nhiều nguồn khác nhau. Dữ liệu này được xử lý và phân loại để phù hợp với yêu cầu của mô hình. Quá trình huấn luyện mô hình sử dụng các phương pháp như transfer learning từ các mô hình đã được huấn luyện trước đó, giúp giảm thiểu thời gian và tài nguyên cần thiết. Kết quả đạt được từ quá trình huấn luyện cho thấy mô hình có khả năng nhận diện chính xác các ký tự viết tay với độ chính xác lên tới 90% trong các bài kiểm tra thực tế. Điều này chứng tỏ rằng việc áp dụng công nghệ machine learning trong nhận diện chữ viết tay là một hướng đi hiệu quả và tiềm năng.

III. Ứng dụng và triển vọng

Hệ thống nhận diện chữ viết tay tiếng Việt không chỉ có giá trị trong nghiên cứu mà còn mang lại nhiều ứng dụng thực tiễn trong đời sống. Ứng dụng nhận diện chữ viết tay có thể được áp dụng trong nhiều lĩnh vực như giáo dục, nơi mà việc chuyển đổi tài liệu viết tay thành văn bản số hóa giúp học sinh và giáo viên dễ dàng lưu trữ và tìm kiếm thông tin. Ngoài ra, trong lĩnh vực hành chính, hệ thống này có thể giúp tự động hóa quy trình nhập liệu, giảm thiểu sai sót và tiết kiệm thời gian. Triển vọng phát triển của công nghệ này là rất lớn, khi mà ngày càng nhiều tổ chức và doanh nghiệp nhận ra tầm quan trọng của việc số hóa dữ liệu. Nghiên cứu cũng chỉ ra rằng việc cải thiện công nghệ nhận diện chữ viết tay sẽ mở ra nhiều cơ hội mới trong việc phát triển các ứng dụng thông minh, từ đó nâng cao chất lượng cuộc sống của con người.

3.1. Những thách thức và cơ hội

Mặc dù công nghệ nhận diện chữ viết tay tiếng Việt đã đạt được nhiều thành tựu, nhưng vẫn còn nhiều thách thức cần phải vượt qua. Một trong những thách thức lớn nhất là sự đa dạng trong phong cách viết tay của người dùng. Việc xây dựng một mô hình có khả năng nhận diện chính xác trong nhiều điều kiện khác nhau là một nhiệm vụ không hề đơn giản. Tuy nhiên, với sự phát triển không ngừng của công nghệ trí tuệ nhân tạohọc sâu, những thách thức này có thể được giải quyết. Các nghiên cứu tiếp theo có thể tập trung vào việc cải thiện độ chính xác của mô hình và mở rộng khả năng nhận diện cho các loại văn bản viết tay khác nhau. Từ đó, công nghệ nhận diện chữ viết tay tiếng Việt sẽ có thể phát triển mạnh mẽ và trở thành một phần không thể thiếu trong cuộc sống hàng ngày.

09/01/2025
Luận văn tốt nghiệp khoa học máy tính nhận diện chữ viết tay tiếng việt

Trích đoạn nội dung tài liệu

Chương 1 Tổng quan 1.1 Giới thiệu đề tài Hiện nay, với sự phát triển của công nghệ, tất cả các dữ liệu đang dần được số hóa và đưa lên lưu trữ đám mây. Điều này giúp cho việc truy cập hay tìm kiếm dữ liệu được tăng tốc đáng kể. Một ví dụ là hiện nay, nhà nước ta đã bắt đầu chuyển qua thẻ căn cước công dân có gắn chip, với mục đích sẽ nhận diện và truy cập dữ liệu nhanh chóng và tiện lợi hơn bao giờ hết. Các nước trên thế giới cũng đã sử dụng thông tin số hóa để tăng tốc và phát triển công việc.

Tuy nhiên, trên phạm vi nước ta, văn bản viết tay vẫn được sử dụng nhiều. Các loại văn bản viết tay có thể kể đến là: hóa đơn, biểu mẫu, đơn viết tay,. Văn bản viết tay tại nước ta vẫn phổ biến do hạn chế về công nghệ ở một số vùng, đồng thời do nhiều người vẫn chưa có đủ kiến thức về công nghệ để sử dụng. Các văn bản viết tay dạng biểu mẫu hiện tại sẽ có thể được trích xuất nội dung để số hóa và đưa lên lưu trữ đám mây.

Tuy nhiên, hiện không có cách nào để tự động hóa việc này, mà phải dùng sức người nhập lại từng thông tin lên máy tính. Do đó, em xin đề xuât một hệ thống có thể nhận diện chữ viết tay tiếng Việt. Đề tài sẽ chú trọng vào huấn luyện một mô hình học máy để nhận diện chữ viết tay tiếng Việt. Đồng thời, xây dựng một luồng xử lý các văn bản viết tay theo mẫu để có thể tự động nhận diện và tiền xử lý văn bản viết tay có mẫu, sau đó nhận diện được các chữ viết tay tiếng Việt trên đó.2 Mục tiêu và phạm vi đề tài Mục tiêu của đề tài là có thể trích xuất chữ viết tay từ các văn bản tài liệu thực tế.

Cụ thể, đề tài sẽ tập trung vào các điểm sau: • Huấn luyện một mô hình nhận diện chữ viết tay tiếng Việt, dựa trên các kỹ thuật học sâu. • Xây dựng luồng để xử lý các văn bản chứa chữ viết tay trên thực tế. Dựa trên mục đích chính của đề tài, phạm vi giới hạn của đề tài sẽ được khoanh vùng như sau: • Các chữ viết tay trên rõ ràng, không quá xấu hoặc quá nhiễu. • Các văn bản đưa vào hoặc là một form văn bản cố định, hoặc là ảnh scan của một câu tiếng Việt được viết thành hàng ngang.

Luận văn tốt nghiệp Trang 10/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering • Về form văn bản cố định, sẽ có luồng tiền xử lý văn bản trước khi đưa qua mô hình nhận diện chữ tiếng Việt.3 Đóng góp của đề tài 1.1 Về lý thuyết Về mặt lý thuyết, luận văn đã tìm hiểu về: • Tìm hiểu về các lý thuyết về machine learning dùng cho việc xử lý ảnh và xử lý ngôn ngữ tự nhiên. • Tìm hiểu về các mô hình nhận diện chữ viết tay hiện tại. Một số mô hình có thể kể đến là VGG16 và Transformer. • Tìm hiểu về các mô hình dịch máy như OpenNMT.

• Tìm hiểu về một số mô hình ngôn ngữ tiếng Việt. Qua đó, luận văn đề xuất được một số phương pháp nhận diện chữ viết tay tiếng Việt phù hợp: • Sử dụng mô hình dịch máy để dịch ra các chữ cái không dấu, sau đó sẽ sử dụng mô hình sửa lỗi chính tả để thêm dấu cho câu. • Sử dụng mô hình dịch máy để dịch ra các chữ cái có dấu.2 Về thực tế Về thực tế, luận văn đã đạt được những điều sau: • Huấn luyện được một mô hình nhận diện chữ viết tay tiếng Việt có dấu. • Mô hình được huấn luyện có thể nhận diện chữ viết tay với thời gian cho phép (10s/ảnh).

• Mô hình được huấn luyện có độ chính xác tốt trên những chữ không quá xấu. Độ chính xác đạt được khi test đạt 90%. Song song với mô hình, luận văn cũng viết được một phần mềm demo với khả năng: • Cho phép người dùng đánh dấu các khung có chứa chữ viết tay tiếng Việt. • Có khả năng tách nhiều văn bản pdf để lấy các phần đã đánh dấu chứa chữ viết tay tiếng Việt.

• Nhận diện được chữ viết tay tiếng Việt trên một hoặc nhiều văn bản pdf. Luận văn tốt nghiệp Trang 11/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering Chương 2 Kiến thức nền tảng 2.1 Tổng quan về mạng neuron 2.1 Mạng neuron Mạng neuron nhân tạo được lấy cảm hứng và xây dựng nên từ mạng neuron sinh học, vì vậy một mạng neuron nhân tạo cũng bao gồm nhiều neuron đơn lẻ, được gọi là perceptron. Tuy nhiên, để có thể nắm được cách thức hoạt động của một perceptron, trước hết chúng ta cần phải hiểu được một neuron hoạt động như thế nào. Cấu tạo của một neuron được minh họa bằng hình 2.

Một neuron sẽ nhận các tín hiệu điện (mức độ mạnh yếu khác nhau) có chứa thông tin từ các khớp thần kinh (synapse) của một hay nhiều neuron khác thông qua các đuôi gai (dendrit). Các giá trị tín hiệu đầu vào sẽ được tích tụ tại trong thân neuron (cell body). Tại đây, neuron sẽ tiến hành thực hiện một quá trình tính toán bao gồm hai bước. • Bước 1, neuron sẽ thực hiện phép cộng (summation) để lấy tổng giá trị các tín hiệu điện.

• Bước 2, neuron sẽ so sánh tổng tìm được ở Bước 1 với một ngưỡng cụ thể (threshold). Nếu vượt quá ngưỡng trên, neuron sẽ phát ra một tín hiệu điện, tín hiệu này được truyền qua sợi trục (axon) để tới các khớp thần kinh. Lúc này, neuron đó được gọi là đang kích hoạt (activation).1: Hình ảnh minh họa cấu tạo của một neuron sinh học. Luận văn tốt nghiệp Trang 12/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering 2.2 Perceptron Một neuron nhân tạo (perceptron) được cấu tạo bao gồm các thành phần như hình 2.2: Hình ảnh minh họa cấu tạo của một perceptron.

Trong đó: • Các giá trị x1 , x2 , ., xn là các tín hiệu đầu vào; • Các giá trị w1 , w2 , ., wn là các trọng số của các nhánh tương ứng truyền giá trị x1 , x2 ,. Giá trị w0 được gọi là giá trị bias, có thể nhận một giá trị bất kỳ khác 0. Bộ trọng số này là cách để perceptron mô tả độ mạnh yếu của tín hiệu điện trong neuron sinh học; • Giá trị a được tính là w0 cộng với tổng trọng số của tập tín hiệu đầu vào (tương ứng với bước summation). Giá trị a này sẽ được dùng để tính toán hàm kích hoạt f t (a); • Kết quả của hàm f t (a) sẽ được so sánh với một ngưỡng (threshsold) nhằm xác định perceptron có được kích hoạt hay không.

Thông thường, giá trị ngưỡng này sẽ được chọn là 0 để tiện trong việc tính toán. Ngoài ra, người ta thường dùng cặp số (1,0) và (1,-1) để đại diện cho trạng thái kích hoạt/không kích hoạt của perceptron; Một điểm lưu ý là perceptron hoạt động dựa trên các phép tính toán số học. Vì vậy, các tín hiệu đầu vào cũng như các trọng số đều cần được biểu diễn dưới dạng các chữ số. Luận văn tốt nghiệp Trang 13/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering 2.3 Mạng neuron đa tầng Có thể thấy rằng, một perceptron đã có thể được coi là một mạng neuron, tính toán kết quả dựa trên tín hiệu đầu vào và kết đầu đầu ra là perceptron đó có được kích hoạt hay không.

Trong thực tế, với chỉ một perceptron thì đã có thể giải quyết được bài toán phân loại tuyến tính. Tuy nhiên, đối với các bài toán phức tạp hơn hoặc yêu cầu phân loại phi tuyến (ví dụ như dùng mạng neuron để mô phỏng phép XOR) thì một perceptron không thể đáp ứng được. Để giải quyết vấn đề trên, chúng ta sử dụng nhiều perceptron được sắp xếp thành các tầng khác nhau. Các perceptron ở tầng sau đều nối tới tầng trước (fully-connected).

Một mạng neuron như vậy được gọi là mạng neuron đa tầng [Tiệ17]. Một mạng neuron đa tầng điển hình thường bao gồm: 1. Tầng dữ kiện (input layer): Là tầng đầu tiên của mạng,thể hiện các dữ kiện đầu vào; 2. Tầng kết quả (output layer): Là tầng nằm ở vị trí cuối cùng, thể hiện kết quả đầu ra của mạng; 3.

Tầng ẩn (hidden layer): Là tầng nằm ở giữa, chịu trách nhiệm trong việc tính toán; Lưu ý rằng, một mạng neuron đa tầng chỉ có một tầng dữ kiện và một tầng kết quả. Tuy nhiên có thể có một hoặc nhiều tầng ẩn nằm ở giữa, ví dụ như một mạng neuron với hai tầng dưới đây (hình 2.3: Hình ảnh mạng neuron đa tầng với 2 tầng ẩn. Luận văn tốt nghiệp Trang 14/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering 2.2 Mạng neuron tích chập 2.1 Tổng quan Mạng neuron tích chập (Convolutional Neural Network) là một mạng neuron thường xuyên được sử dụng để nhận dạng và phân loại ảnh. Về cơ bản, mạng neuron này cũng giống các mạng neural network khác, nhưng có một vài cải tiến là Convolutional và Pooling 2.2 Convolutional Layer - Tầng tích chập Tầng tích chập là cốt lõi của mạng neuron tích chập.

Tầng này giống với những mạng khác là hidden layer, nhưng khác ở chỗ tầng tích chập là một tập các feature map (ma trận đặc tính) - là một bản scan của input nhưng đã được trích xuất ra các đặc tính cụ thể. Để có thể trích xuất được các đặc tính đấy, tầng tích chập sử dụng kernel (nhân) để quét ma trận input, từ trái qua phải và từ trên xuống dưới. Tại mỗi ô quét được, mạng sẽ nhân tương ứng từng giá trị của input và từng giá trị của kernel và lấy tổng, đưa qua activation function như ReLU, sigmoid,. Kết quả sẽ là một số cụ thể, và tập hợp các số này trên các lần quét sẽ được một feature map.4 minh họa một bước để trích xuất feature map.4: Cách thức lấy feature map bằng kernel Luận văn tốt nghiệp Trang 15/47 Ho Chi Minh University of Technology Faculty of Computer Science and Engineering 2.3 Stride và Padding Hai phương pháp stride và padding này thường được sử dụng để giảm hoặc thay đổi kích cỡ của feature map sau bước convolution.

Stride là khoảng cách giữa hai kernel khi quét. Đối với stride = 1, kernel sẽ quét 2 ô cạnh nhau trên input. Nhưng với stride = 2, kernel sẽ quét ô số 1 và 3, bỏ qua ô số 2, và tương tự nếu stride = 3, kernel sẽ quét ô số 1 và 4, bỏ qua ô 2 và 3. Padding, hay zero-padding, là việc bọc thêm một ô 0 xung quanh input, sau đó mới áp dụng quét.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết Luận văn tốt nghiệp về nhận diện chữ viết tay tiếng Việt trong khoa học máy tính của tác giả Cao Đức Hùng, dưới sự hướng dẫn của PGS. Quản Thành Thơ, là một nghiên cứu quan trọng trong lĩnh vực nhận diện chữ viết tay, đặc biệt là đối với ngôn ngữ tiếng Việt. Luận văn này không chỉ cung cấp cái nhìn sâu sắc về các phương pháp và thuật toán hiện có trong việc nhận diện chữ viết tay mà còn chỉ ra những thách thức và cơ hội trong việc phát triển công nghệ này. Độc giả sẽ tìm thấy những thông tin hữu ích về ứng dụng của nhận diện chữ viết tay trong các lĩnh vực như giáo dục, quản lý dữ liệu và công nghệ thông tin.

Nếu bạn muốn mở rộng kiến thức về lĩnh vực này, hãy tham khảo thêm các tài liệu liên quan như Nhận dạng giọng nói tiếng Việt qua học sâu và mô hình ngôn ngữ, nơi nghiên cứu sự kết hợp giữa học sâu và mô hình ngôn ngữ trong nhận dạng giọng nói, hoặc Ứng dụng học sâu vào dịch từ vựng mà không cần dữ liệu song ngữ, một nghiên cứu về ứng dụng học sâu trong lĩnh vực dịch thuật. Ngoài ra, bạn cũng có thể khám phá Ứng Dụng Active Learning trong Lựa Chọn Dữ Liệu Gán Nhãn cho Bài Toán Nhận Diện Giọng Nói, để tìm hiểu thêm về cách thức sử dụng Active Learning trong nhận diện giọng nói. Những tài liệu này sẽ giúp bạn có cái nhìn toàn diện hơn về các xu hướng và công nghệ hiện tại trong lĩnh vực khoa học máy tính.