Tổng quan q trình huấn luyện của mơ hình

Một phần của tài liệu Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định (Trang 63)

6 Ứng dụng

4.11Tổng quan q trình huấn luyện của mơ hình

4.3.2 Kiểm tra

Không giống với giai đoạn huấn luyện mô hình, nhãn của dữ liệu sẽ khơng được cung cấp trong suốt quá trình kiểm tra. Tại giai đoạn này, tham số của mơ hình đã được học qua quá trình huấn luyện được sử dụng để dự đoán đầu ra với đầu vào là một ảnh chứa dữ liệu chữ (Hình 4.12).

Hướng tiếp cận 51

4.4 Hậu xử lý

Hậu xử lý (post-processing) là bước được thực hiện sau khi đã nhận được kết quả dự đốn từ mơ hình. Từ kết quả dự đốn đã có, chúng ta sẽ tiến hành xử lý trực tiếp trên đó để đạt được kết quả mong muốn (Hình 4.13).

Cụ thể đối với bài toán đang xử lý, sau khi đã nhận được kết quả dự đốn của mơ hình nhận dạng chữ viết tay tiếng Việt, chúng tơi nhận thấy rằng nhiều trường dữ liệu không đồng nhất với nhau về mặt định dạng. Ví dụ như dư khoảng cách hoặc dấu thanh đặt sai vị trí trong khi ngữ nghĩa của chúng là khơng khác nhau. Nhận thấy những điều đó, chúng tơi tiến hành chuẩn hóa các kết quả dự đốn được về một số quy tắc nhất định. Ví dụ đối với số điện thoại thì chúng tơi chỉ giữ lại các ký tự là số, khơng có khoảng cách giữa các số. Đối với một chuỗi bình thường, chúng tơi loại bỏ các kí tự thừa ở giữa các kí tự trong chuỗi. Một số trường hợp nhập nhằng cách đặt dấu thanh theo kiểu cũ và mới, ví dụ như “ịa” hay “ồ” thì chúng tơi cũng chuẩn hóa về cùng một cách.

Hình 4.13: Một số trường hợp trước và sau khi thực hiện hậu xử lý

Đối với các trường địa chỉ, về mặt lý thuyết chúng ta có thể chỉnh sửa kết quả dự đoán dựa vào kho dữ liệu địa chỉ chuẩn đã có. Tuy nhiên, với đặc thù của bài tốn đang xử lý thì hiện tại đang khó có thể giải quyết được vấn đề này. Bởi vì ở các trường địa chỉ, người viết viết khá tùy hứng, thay vì tại đó là một địa chỉ cụ thể thì người viết có thể viết là “Tại tịa nhà ABC” hoặc gần một vị địa điểm nào đó hoặc một nội dung bất kì nhưng những thơng tin này trong cơ sở dữ liệu thì khơng sẵn có. Từ đó, chúng tơi chưa có cơ sở chính xác để xử lý tại trường dữ liệu này.

CHƯƠNG 5 THÍ NGHIỆM 5.1 Phương pháp đánh giá

Để đánh giá độ chính xác của hệ thống thì hai phương pháp tỉ lệ lỗi từ (Word Error Rate - WER) vàtỉ lệ lỗi ký tự(Character Error Rate - CER) được sử dụng phổ biến nhất, cả hai phương pháp này đều dựa trên việc tính khoảng cách Levenshtein.

Khoảng cách này có nhiệm vụ tính số lượng thao tác tối thiểu cần thiết để biến đổi chuỗi này thành chuỗi kia, việc tính khoảng cách này được thực hiện một cách hiệu quả thông qua giải thuật quy hoạch động. Một số thao tác có thể có là:

• Thêm (Insertion): Thêm một kí tự vào chuỗi.

• Xóa (Deletion): Xóa một kí tự của chuỗi.

• Thay thế (Substitution): Thay thế một kí tự này bằng một kí tự khác.

Bởi vì số lượng phần tử có thể thêm là khơng giới hạn nên độ đo có thể lớn hơn 1.0. Cơng thức của việc tính khoảng cách được định nghĩa như sau:

ED(pred, label) =nsubstitution+ninsertion+ndeletion (5.1) Trong đó, nsubstitution, ninsertion, ndeletion lần lượt là số lượng từ cần được thay thế, số lượng từ cần được thêm vào, và số lượng từ cần được xóa đi để biến kết quả dự đốn thành chuỗi nhãn (label). Đôi khi, khoảng cách đượcnormalized bằng số lượng từ trong chuỗi nhãn (nitems).

N ED(pred, label) = ED(pred, label)

Thí nghiệm 53

5.1.1 Tỉ lệ lỗi từ

Tỉ lệ lỗi từ (Word Error Rate - WER) là một phương pháp đánh giá hiệu suất phổ biến cho những tác vụ như nhận diện giọng nói, nhận diện chữ viết hay dịch máy. Khó khăn chung cho việc đo lường và đánh giá đó là độ dài của chuỗi dự đốn được có thể khác so với chiều dài nhãn của nó.

Word Error Rate được định nghĩa như sau:

W ER= 1

nwords × X

(pred,label)∈P

ED(pred, label) (5.3)

Trong đó, nwords là số lượng từ trong tập P của toàn bộ tập dữ liệu. Ở mức độ dịng, các từ có thể được phân biệt với nhau bằng một dấu cách. Cần lưu ý rằngWER

có thể lớn hơn 1.0 và khi đánh giá mơ hình có độ đo WER càng thấp thì mơ hình sẽ càng tốt.

Ví dụ: Chúng ta có P = (“nguyên”, “nguyễn”), (“”, “Tháng”), (“thứ”, “thứ”) với

Pi= (predict, target). Thì WER sẽ là:

W ER= 1

3×(1 + 1 + 0) = 2 (adsbygoogle = window.adsbygoogle || []).push({});

3 (5.4)

Giải thích:

• nwords là 3,“nguyễn”, “Tháng”, “thứ”.

• Có 1sự thay thế cho cặp đầu tiên, thêm 1 từ cho cặp thứ hai, và khơng có thao tác nào cho cặp cuối cùng.

5.1.2 Tỉ lệ lỗi ký tự

Cũng giống như WER, tỉ lệ lỗi ký tự (Character Error Rate - CER) cũng là một

phương pháp đánh giá hiệu suất phổ biến cho những tác vụ có đầu ra là một chuỗi văn bản. CER được tính dựa trên số lượng tối thiểu các phép tính để chuyển đổi từ chuỗi dự đốn được sang chuỗi nhãn. Như vậy cơng thức tính CER tiêu chuẩn cũng sẽ tương tự như WER:

CER= 1

ncharacters × X (pred,label)∈P

ED(pred, label) (5.5)

Trong đó,ncharacters là số lượng ký tự trong tập P của toàn bộ tập dữ liệu. Lưu ý rằng ký tự ở đây có thể bao gồm cả khoảng trắng (space), dấu câu hay ký tự đặc biệt khác.

Khi kết quả dự đốn của một văn bản có CER tốt, điều này không đồng nghĩa với việcWER cũng sẽ tốt theo. Một ví dụ đơn giản cho trường hợp này đó là giả sử chúng ta có một chuỗi nguồn là “Have beautifulll bay” và chuỗi nhãn là “Have a beautiful day!”. Như vậy ở chuỗi nguồn ta cần xóa đi hai ký tự “l”. Đồng thời thêm vào một ký

Thí nghiệm 54

tự “!” ở cuối câu và thay thế một ký tự “b” thành “d” thì khi đó ta đã biến đổi được từ chuỗi nguồn sang chuỗi nhãn rồi. Điều này chứng tỏ rằng nó sai khơng q nhiều so với đánh giá ở mức độ từ. Cũng tương tự như độ đoWER, mơ hình sẽ càng tốt khi

có kết quả độ đoCER càng thấp.

Ví dụ: Chúng ta có P = (“ngn”, “nguyễn”), (“Thánng”, “Tháng”), (“thứ”, “thứ”)

với Pi = (predict, target). Thì CER sẽ là:

CER= 1

6 + 5 + 3 ×(2 + 1 + 0) = 3 14

Giải thích:

• 6, 5, 3 trong 1

6+5+3 lần lượt là chiều dài của “nguyễn”, “Thánng”, “thứ”.

• 2, 1, 0 lần lượt là khoảng cách Levenshtein của các cặp (“ngyên”, “nguyễn”), (“”, “Tháng”), (“thứ”, “thứ”).

• Chúng ta cần thêm một chữ ‘y’ và thay thế ‘ê’ bằng ‘ễ’ để chuyển từ “ngn” thành “nguyễn”.

• Chúng ta cần xóa chữ ‘n’ để chuyển từ “Thánng” thành “Tháng”.

• Khơng cần bất kì sự chuyển đổi nào trong trường hợp cuối cùng.

5.2 Tập dữ liệu

5.2.1 Tập dữ liệu tiếng Việt HANDS-VNOnDB2018

Tập dữ liệu HANDS-VNOnDB2018 (VNOnDB) [12] là tập dữ liệu chữ viết tay tiếng Việt được sử dụng cho cuộc thi“ICFHR2018 Competition on Vietnamese Online Handwritten Text Recognition”. Tập dữ liệu này cung cấp tổng cộng 1,146 đoạn văn

bản bao gồm 7,296 dịng, trong đó 4433 dịng cho tập huấn luyện, 1229 dịng cho tập kiểm thử và 1364 dòng cho tập kiểm tra, hơn 480,000 nét chữ và hơn 380,000 ký tự được viết bởi hơn 200 người Việt Nam, trong đó có sự khác nhau về độ tuổi, giới tính và nghề nghiệp của những người tham gia. (adsbygoogle = window.adsbygoogle || []).push({});

Đây được xem là tập dữ liệu tiếng Việt lớn nhất tính đến hiện nay, nhưng nó khơng phải là tập dữ liệu ngoại tuyến. Đối với tập dữ liệu này, người viết được yêu cầu viết lại tổng cộng 10,000 câu với khoảng 300,000 ký tự, được lấy từ VieTreeBank corpus (VTB corpus). Mẫu viết của các đoạn văn sau đó được cắt nhỏ ra thành các dòng và từ, tương ứng tạo thành ba biến thể của VNOnDB là VNOnDB-paragraph, VNOnDB-line và VNOnDB-word. Tuy nhiên, trong đề tài này chúng tôi chỉ sử dụng tập VNOnDB-line và VNOnDB-word để phục vụ cho mục đích nghiên cứu và phát triển hệ thống. Thống kê chi tiết về số mẫu dữ liệu, số ký tự của hai bộ dữ liệu này được nêu trong hai Bảng 5.1 và 5.2.

Thí nghiệm 55

Bảng 5.1: Thống kê trên tập dữ liệu VNOnDB-line [12]

VNOnDB Huấn luyện Kiểm thử Kiểm tra Cơng khai Bí mật Số dịng 4,433 1,229 1,634 464

Số nét chữ 284,642 86,079 110,013 29,569

Số ký tự 298,212 83,806 112,769 33,767

Bảng 5.2: Thống kê trên tập dữ liệu VNOnDB-word [12]

VNOnDB Huấn luyện Kiểm thử Kiểm tra Cơng khai Bí mật Số từ 66,991 18,640 25,115 7,346

Số nét chữ 272,320 82,166 105,973 27,741

Số ký tự 222,586 62,370 83,499 24,178

Bộ dữ liệu VNOnDB (Hình 5.1) chứa những mẫu dữ liệu dạng “Online Handwrit- ing”. Nghĩa là chữ được viết trên màn hình và chỉ bao gồm nét chữ trên nền trắng, do đó khơng chứa các loại nhiễu hay bị ảnh hưởng bởi các tác nhân bên ngoài khác. Dữ liệu được lưu ở dạng ngôn ngữ đánh dấu mực (Ink Markup Language - InkML), gồm những dãy các tọa độ truy vết của các nét chữ. Để sử dụng được tập dữ liệu này, chúng ta cần chuyển chúng qua dạng hình ảnh.

(a)Dữ liệu mức đồ từ

(b) Dữ liệu mức độ dịng

Hình 5.1: Ví dụ về ảnh trong tập dữ liệu VNOnDB [12]. Trong đó mẫu 5.1a và5.1b lần lượt là văn bản viết tay ở mức độ từ và mức độ dòng. 5.1b lần lượt là văn bản viết tay ở mức độ từ và mức độ dịng.

Thí nghiệm 56

5.2.2 Tập dữ liệu chữ viết tay tiếng Việt của Cinnamon

Đây là tập dữ liệu được lấy từ cuộc thi “Nhận dạng chữ viết tay tiếng Việt” do công ty Cinnamon tổ chức vào năm 2018. Tính đến thời điểm hiện tại đây là tập dữ liệu chữ viết tay tiếng Việt trong công nghiệp được công khai duy nhất. Tập dữ liệu bao gồm các dòng chữ viết tay địa chỉ ở Việt Nam trên nền giấy trắng khơng có ngoại cảnh với nhiều nét chữ và màu chữ khác nhau. Tập dữ liệu cung cấp tổng cộng 2,372 ảnh, được chia thành hai tập là samples được dùng trong quá trình huấn luyện của cuộc thi và tập private_test được dùng để đánh giá kết quả cuối cùng của các đội tham gia. Một số hình ảnh của tập dữ liệu này được thể hiện ở các Hình 5.2 và 5.3.

Bảng 5.3: Thống kê trên tập dữ liệu của Cinnamon

Huấn luyện Kiểm tra Tổng cộng

1823 549 2372

Hình 5.2: Ví dụ về mẫu dự liệu Cinnamon trong tập huấn luyện

Thí nghiệm 57

5.2.3 Tập dữ liệu phiếu gửi Viettel post

Dữ liệu cho chữ viết tay tiếng Việt hiện tại cịn rất hạn chế, ngồi tập VNOnDB (Tiểu mục 5.2.1) được sử dụng nhiều trong việc nghiên cứu và tập dữ liệu của Cin- namon (Tiểu mục 5.2.2) mang tính chất cơng nghiệp thì hầu như khơng thể tìm thấy dữ liệu về chữ viết tay tiếng Việt nào khác. Vì vậy ngồi việc kế thừa, sử dụng những tập dữ liệu đã có thì chúng tơi đã tiến hành thu thập thêm tập dữ liệu “Phiếu gửi Viettel Post”, đầu tiên là để xây dựng một tập dữ liệu chữ viết tay tiếng Việt phù hợp

với mục tiêu nghiên cứu của đề tài, tiếp theo hướng đến việc góp phần làm giàu kho dữ liệu chữ viết tay tiếng Việt nhằm đáp ứng được các nhu cầu nghiên cứu cũng như ứng dụng thực tế vì dữ liệu chữ viết tay tiếng Việt trong cộng đồng hiện nay cịn ít. Và đây là tập dữ liệu chính được sử dụng trong luận văn này.

Tập dữ liệu được thu thập và gán nhãn gồm 243 mẫu đơn phiếu gửi của viettel post. Trong đó 201 ảnh được sử dụng cho tập huấn luyện và tập đánh giá, 42 ảnh còn lại được đưa vào tập kiểm tra để sử dụng cho quá trình kiểm tra kết quả cuối cùng của mơ hình. Mẫu gán nhãn các vùng chữ viết tay và thống kê số lượng biểu mẫu viettel post được thể hiện ở Hình 5.4 và Bảng 5.5.

Hình 5.4: Mẫu gán nhãn phiếu gửi Viettel post

Sau khi gán nhãn và tiến hành cắt các vùng chữ viết tay (textline) thì chúng tơi thu thập được tổng cộng 2742 hình ảnh thuộc 16 trường giá trị khác nhau. Hình ảnh các vùng chữ viết tay sau khi được cắt ra để làm dữ liệu đầu vào cho bài tốn được thể hiện ở Hình 5.5 và thống kê số lượng được thể hiện ở Bảng 5.6. Bảng 5.4 liệt kê

Thí nghiệm 58

các nhãn đang được sử dụng cũng như ý nghĩa của chúng, đối với các textline cùng trường nhưng rơi ra hai dịng thì sẽ được đánh số vào sau nhãn đó để thuận tiện cho quá trình gộp lại sau này. (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 5.4: Các loại nhãn được sử dụng trong quá trình gán nhãn ngữ nghĩa textline.

Index Tên lớp Ý nghĩa

0 V_SN Tên người gửi

1 V_SPHONE Số điện thoại người gửi 2 V_SA Địa chỉ người gửi 3 V_RN Tên người nhận 4 V_RA Địa chỉ người nhận 5 V_RW Phường, xã người nhận 6 V_RD Quận, huyện người nhận 7 K_RP Tỉnh, thành phố người nhận 8 V_RPHONE Số điện thoại người nhận 9 V_SC Mã khách hàng gửi 10 V_MC Cước chính

11 V_PC Nội dung hàng hóa

12 DATE1 Ngày

13 DATE2 Tháng

14 DATE3 Năm

15 SIGN_NAME Tên ở phần ký tên

Bảng 5.5: Thống kê số lượng biểu mẫu trên tập dữ liệu Viettel post

Huấn luyện + Đánh giá Kiểm tra Tổng cộng

201 42 243

Bảng 5.6: Thống kê số lượng textline trên tập dữ liệu Viettel post

Tập huấn luyện Tập đánh giá Tập kiểm tra Tổng cộng

Thí nghiệm 59

Hình 5.5: Các textline sau khi được cắt từ mẫu tài liệu ban đầu

Thí nghiệm 60

Nhìn chung dữ liệu chữ viết tay tiếng Việt được lấy từ biểu mẫu của Viettel post tổng hợp các nét chữ đa dạng, mỗi biểu mẫu là một nét chữ khác nhau, tuy nhiên số lượng dữ liệu thu thập được vẫn chưa đủ nhiều. Nền của chữ đa phần là nền trắng hơi ngã vàng, có dịng dấu chấm. Độ khó để nhận dạng chữ viết đối với dữ liệu này cao, bởi vì nhiều nét chữ nguệch ngoạc khơng rõ ràng, nhiều từ viết tắt và đặt dấu câu khơng chính xác, nhiều hàng bị xếp chồng lên nhau dẫn đến bị nhiễu. Hình 5.6 tổng hợp một số trường hợp dữ liệu dòng được cắt ra từ tờ gửi Viettel post.

5.3 Kết quả thí nghiệm

Chúng tơi đã tiến hành thực hiện thử nghiệm các mơ hình nhận dạng chữ viết tay đã được đề cập ở các chương trước để từng bước tìm ra được phương pháp sử dụng cuối cùng. Tất cả các thí nghiệm được chúng tơi thực hiện trên cùng một thiết bị để đưa ra được các đánh giá một cách khách quan nhất.

Ngoài ra, trong các bảng đánh giá bên dưới, chúng tơi có sử dụng thêm hai độ đo là Accuracy (ACC) và Accuracy by char (ACC by char). Trong đó, Accuracy là tỉ lệ số lượng textline có kết quả dự đốn được trùng khớp hồn tồn với nhãn của textline tương ứng trong tập dữ liệu đang đánh giá; Accuracy by char là tỉ lệ số lượng kí tự trùng khớp giữa kết quả dự đốn và nhãn của textline tương ứng trong tập dữ liệu.

5.3.1 Kết quả trên tập dữ liệu VNOnDB

Đầu tiên chúng tôi huấn luyện các mơ hình CRNN, Attention-based Seq2Seq và Transformer trên tập dữ liệu VNOnDB bao gồm tập word và tập line. Trong đó các mơ hình đều có cùng backbone cho phần trích xuất đặc trưng là VGG19, mơ hình CRNN được sử dụng là VGG19 kết hợp với LSTM.

Cơ sở để chúng tơi chọn tập VNOnDB là vì đây được xem là một tập dữ liệu chuẩn về chữ viết tay tiếng Việt và đã được sử dụng rộng rãi trong mục đích nghiên cứu. Chúng tơi đã tiến hành huấn luyện và đánh giá để chứng minh tính khả thi của mơ hình mà chúng tơi đã đề xuất sử dụng. Số liệu được thể hiện thông qua Bảng 5.7 đối với tập VNOnDB-word và Bảng 5.9 đối với tập VNOnDB-line.

Bảng 5.7: Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-word

Mơ hình Tập kiểm tra

CER WER ACC(%) ACC by char(%)

CRNN 0.032 0.078 91.52 95.18

Attention-based Seq2Seq 0.027 0.071 92.91 96.98

Thí nghiệm 61 (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 5.8: Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-line

Một phần của tài liệu Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định (Trang 63)