PHƯƠNG PHÁP ĐÈ XUAT

Một phần của tài liệu Khóa luận tốt nghiệp Công nghệ thông tin: Nhận diện chữ viết tay ngoại tuyến (Trang 45 - 56)

Trong phạm vi nghiên cứu của khoá luận, Mô hình Encoder-Decoder được sử dụng để giải quyết bai toán nhận diện chữ viết tay ngoại tuyến. O Encoder sử dụng CNN kết hợp

với RNN, cùng với một khối block CBAM. Decoder sử đụng Bi-LSTM thuan.

4.1 Tiền xử lý ảnh

4.1.1 File Inkml sang PNG

Xuất phát với bộ dit liệu thé là file inkml viết tắt của "Ink Markup Language", đó là một ngôn ngữ đánh dau được thiết kế dé mô tả dữ liệu đầu vào viết tay. File "inkml" thường chứa các thông tin như tọa độ của điểm viết, áp lực của bút (nếu có). thời gian ghi nhận, và các thuộc tính khác liên quan đến nét viết hoặc vẽ. Các ứng dụng có thẻ sử dụng dữ

liệu trong file "inkml" dé phân tích hoặc tái tạo lại các nét viết hoặc vẽ đó. Ta tiền hành đọc file inkml bang một số công cụ hoặc thư viện và xử lý các dữ liệu đọc được. Các thông tin có thé bao gồm như: toa độ của các điểm viết, áp lực của butt, thời gian ghi

nhận và các thuộc tinh khác của nét vẽ. Sau khi có được những thông tin nay ta sử dụng

các thư viện dé hoa dé tạo hình ảnh bằng cách nói các điểm toa độ của các điểm viết kết

hợp với các thuộc tính khác của nét dé tạo ra một bức ảnh chữ viết tay, Cuéi cùng ta chỉ

can lưu bức ảnh day đưới dang file PNG.

4.1.2 Xứ lý anh

Các kỹ thuật xử lý hình ảnh số được sử dụng đề tăng cường và điều chỉnh hình ảnh kỹ thuật số cho nhiều ứng dụng khác nhau. Trong bối cảnh sử dụng các mô hình học sâu, các kỹ thuật nảy thường được sử dụng dé tiền xử lý hình ảnh trước khi đưa chúng vào mang nơ-ron dé huấn luyện hoặc dự đoán. Một số kỹ thuật xử lý hình ảnh phô biến được tôi sử dung trong mô hình này bao gồm:

Kỹ thuật làm tăng cường dữ liệu: Kỹ thuật nay được dùng dé mở rộng bộ dữ liệu huan luyện để mô hình có thể nhận điện đối tượng trong nhiều điều kiện khác nhau, tăng cường tính tổng quát và độ chính xác của bài toán. Các biến đổi hình ảnh thường được áp dụng bao gồm xoay, co giãn, thay đôi độ sáng, thay đôi độ tương phan của hình ảnh.

43

Giảm nhiễu: Những hình ảnh có nhiễu sẽ ảnh hưởng tiêu cực cho mô hình huấn luyện.

đặc biệt là đối với các loại nhiều không ngẫu nhiên và có cấu trúc. Dé xử lý vấn dé nay

đã xuất hiện các kỹ thuật như là Gaussian hoặc Wavelet được sử dụng dé loại bỏ các điểm nhiều ra khỏi hình ánh, từ đó gia tăng độ chính xác của mô hình.

Gây nhiễu: ngược lại với điều ở trên thi gây nhiễu là việc cô ý thêm nhiễu vào trong hình ảnh dé tăng cường độ đa dạng của dữ liệu huấn luyện. kỹ thuật này được sử dụng chủ yếu dùng dé ứng dung cho các mô hình thực tế. Những loại nhiễu như Gaussian hoặc nhiễu trắng đen được thêm vào các hình ảnh huấn luyện đã giúp mô hình được xử

lý tốt hơn trong các hình ảnh có nhiễu, đông thời cũng giúp mô hình tránh rơi vào trường overfitting, do mô hình được huấn luyện một cách tổng quan hơn và học cách trích xuất đặc trưng trong cả các mô trường có nhiễu.

Phân đoạn ảnh: Mục đích của phân đoạn hình ảnh là nhóm các vùng hoặc phân đoạn một hình ảnh theo các nhãn lớp tương ứng. Tác vụ này tương đương với việc nhóm các

pixel. Ngoài phân loại, phân đoạn hình ảnh cũng yêu cau khoanh vùng (xác định vị trí chính xác của một đối tượng bằng cách xác định ranh giới của chúng).

Đệm (Padding): là một kỹ thuật bd sung các pixel xung quanh anh dé dam bao ảnh đạt được kích thước mong muốn, Đệm giúp gia tăng tinh đông nhất giữa các ảnh trong tập huấn luyện, khi dir liệu huấn luyện ton tại ảnh có nhiều kích thước khác nhau, việc nảy

giúp cho thuật toán học máy hoạt động hiệu quả hơn, vì chúng có thê dé đảng học được

các đặc điểm từ các ảnh có kích thước đồng nhất.

Thay đổi nền ảnh và màu chữ: việc thay đổi xen kẽ giữa việc nên den chữ trắng và nên trắng chữ den với mục tiêu gia tăng sự tong quan cho mô hình huấn luyện, song song đó việc thay đồi nền chữ liên tục giúp tăng cường sự khác biệt giữa các chữ cái và các ký tự với nhau, giúp mô hình có thé dé dàng nhận diện các ký tự ra khỏi nên đê tiễn

hành nhận điện.

4.2 Tiền xử lý văn bản

Chữ viết tay ngoại tuyến có thẻ sẽ có nhiều biển thé, ngay cả khi với một người viết cùng một từ trong khoảng thời điểm khác nhau, nên tại bài toán nay sẽ sử dung Character token level, để cho phép mô hình có thé học được các đặc trưng của từng ký tự riêng, giúp mô hình có tính khái quát và linh hoạt cao hơn cho trường gặp phải cách viết hoàn

toàn mới mà chưa từng xuất hiện trong dữ liệu huấn luyện. Đồng thời các bài nghiên

cứu đi trước cũng cho ta thay rằng việc sử dung token ở cấp độ ký mang lại kết qua tốt hơn so với token ở cấp độ từ ở độ chính xác, đồng thời cũng khắc phục câu chuyện ít dit

liệu [5] [8]. Dựa vào bộ ký tự alphabet của tiếng việt, bao gồm chữ số, các ký tự không dau và các ký tự có dấu [9]. cũng với đó do còn tồn tại một số ký tự đặt biệt trong bộ dataset, nên dé có thé tông quát hơn, tôi tiến hành lấy tat cả các ký tự xuất hiện ở trong nhãn, và kết hợp hai bộ dự liệu này lại tạo thành một bộ character token level có 229 token đã tinh luôn ca các ký tự đặt biệt. Từ bộ token đây khi token hoá một chữ (câu)

thì sẽ lần lượt lẫy vị trí tương ứng của các ký tự.

Sau đó sẽ tiếp tục chuẩn hoá độ dài chuỗi token này bằng pad_sequences. Kỹ thuật này được phát triển bởi cộng đồng TensorFlow và được phát hành vào tháng 11 năm 2017 với mục đích chuân hoá độ dai cho các cầu có độ đài khác nhau bằng cách thêm padding (ký tự rỗng) vào các câu ngắn hơn dé đạt tới độ dài mông muốn giúp tăng hiểu qua xử

lý của mô hình đông thời cũng đơn giản hoá việc xử lý các chuỗi câu có độ đài khác nhau. Và độ đài được chọn ở đây là 162, số lượng kí tự nhiều nhất trong một câu là 1§1 nhưng do số lượng các câu đạt được kích thước này chí có một đến hai câu, còn lại đều

là dui 120 kí tự cho một câu. Vì thế tôi đã quyết định sẽ loại bỏ các câu có trên 150 kí tự do số lượng ít, néu vẫn cô ging giữ lại sẽ làm giảm hiệu qua của mô hình do token

quá đải.

Kết quả cuối cùng thu được khi được một câu vào là một một chuỗi câu đã được token

thông qua bộ token giới thiệu ở trên và có độ dài là 162.

4.3 Encoder

4.3.1 CNN + Recurrent Neural Network (RNN)

CRNN là một loại mạng no-ron nhân tạo kết hợp hai kiến trúc mạng: mạng nơ-ron tích chập (CNN) va mạng nơ-ron hỏi quy (RNN). CRNN được thiết kế đề xử lý dit liệu chuỗi

45

thời gian, đặc biệt hiệu quả trong các bai toán như nhận dạng giọng nói, dịch máy và phân loại văn bán.

Trong phạm vi của bài nghiên cứu, đầu vào của mô hình là một ảnh có kích thước H x W XC, trong đó với H và W lần lượt là chiều cao và chiều rộng của ảnh, C là số

kênh màu của ảnh.

Mô hình CRNN trong bài nghiên cứu nảy hoạt động như sau:

Me pod)

Hình 4-1: Mô hình CRNN của bài toán

Anh đầu vào được các lớp tích chập dé trích xuất đặc trưng từ dit liệu đầu vào. Các lớp này hoạt động bằng cách di chuyên các bộ loc (filter) trên dữ liệu và thực hiện phép toán tích chập. Sau khi đặc trưng được trích xuất, CRNN sẽ sử dụng kĩ thuật Skip-connection dé kết hợp với thông tin đặc trưng phía trước tiễn hành dự đoán phan tiếp theo.

4.3.2 CBA.M

Những đặc trưng được trích xuất ở CRNN (input_feature) có kích thước là (H”,MW',€”) sẽ được lần lượt đưa vào hai khôi Channel Attention va Spatial Attention.

Dầu tiên khi đi vào lớp Channel Attention, input_feature sẽ thông qua gộp trung bình (Global Average Pooling — GAP) và gộp tối đa (Global Max Pooling — GMP) dé tạo ra

tập hợp đặc trưng là A va M có cùng kích thước (4'/, ,W"/, „€') với k là kích thước

bộ lọc (kernel) của lớp Pooling. Tiếp đó sẽ học các mối quan hệ giữa các kênh với nhau

trong tap hợp đặc trưng A và M thông qua lớp Multi-Layer Perceptron Average — MLP

tạo ra hai trọng số kênh (Attention Weight) có kích thước (4'/ ke W7 ke C Kết hợp

46

hai trọng số kênh bằng cách nói (concatenate) theo chiều của kênh thé hiện mức độ quan trọng của kênh tương ứng trong input feature. Cudi cùng đi qua một hàm kích hoạt Sigmoid dé chuẩn hóa dif liệu đông thời làm cho sự khác biệt giữa các pixel rõ ràng hơn thu được Channel Attention, Dau ra của Channel Attention sẽ được dot product với

input_feature tạo ra đặc trưng F” có kích thước (H’,W’,C’) .

Hình 4-2. Mô tả hoạt động Channel Attention

F' sẽ được tiếp tục đưa vào lớp Spatial Attention, thông qua thông qua gộp trung bình

(Global Average Pooling — GAP) và gộp toi da (Global Max Pooling — GMP) dé tạo ra

tap hợp đặc trưng là A và M có cùng kích thước (H”, W", C7 kì: Kết hợp hai tập hợp đặc

trưng M và A bằng cách nối (concatenate) chúng theo chiều kênh, tạo ra tập hợp đặc

trưng Z có kích thước (H”, W", 2 * €/„ ). Z được đưa vào môt lớp tích chập sử dụng bộ

lọc(kernel) 7 x 7 dé trích xuất đặc trưng vị trí không gian trong tập không gian Z.

Hình 4-3. Mô tả hoạt động Spatial Attention

47

4.4 Decoder

Trong mô hình được sử dụng, lớp decoder đóng vai trò quan trọng trong việc chuyên đổi các thông tin an từ bộ mã hóa (encoder) thành chuỗi các từ dự đoán. Lớp decoder của chúng ta được thiết kế với hai lớp Bi-LSTM và một lớp Dense cudi cùng.

Lớp Bi-LSTM đầu tiên: Nhận chuỗi mã an tir bộ encoder, điều này bao gồm các thông tin quan trọng về ngữ cảnh của câu đầu vào. Sau khi xử lý toàn bộ chuỗi đầu vào, BLSTM sẽ tạo ra một chuỗi trạng thái ân. Chuỗi nảy chứa thông tin về ngữ cảnh của tất cả các token trong chuỗi đầu vào. Lớp này giúp mô hình nắm bắt được các mỗi quan hệ phức tạp giữa các từ trong câu nguồn.

Lớp Bi-LSTM thứ hai: Nhận chuỗi trạng thái ân từ lớp đầu tiên và tiếp tục trích xuất thông tin ngừ cảnh. Lớp này cũng xử lý chuỗi theo hai chiều, nhưng nó sử dụng thông tin từ lớp đầu tiên đề cải thiện khả năng dự đoán của mình. Sau khi xử lý toàn bộ chuỗi

trạng thái ân, BLSTM thứ hai sẽ tạo ra một chuỗi trạng thái an mới. Chuỗi này chứa

thông tin ngữ cảnh chỉ tiết hơn vẻ các token trong chuỗi đầu vào. Băng cách nay, mô

hình có thê tận dụng được cả thông tin từ phía trước và phía sau của mỗi từ, giúp cải thiện hiệu suất của việc dir đoán

Lớp Dense cuối cùng: Đầu vào là chuỗi trạng thái ân từ lớp Bi-LSTM thứ hai và thực hiện việc dự đoán xác suất cho mỗi token trong tập từ vựng. Dieu nảy được thực hiện thông qua việc ánh xạ các trạng thái an sang không gian xác suất đề chuyên đôi chuỗi trạng thái ân thành một vectơ. Vectơ này sau đó được sử dụng để dự đoán xác suất xuất

hiện của mỗi token trong tập từ vựng. Lớp Dense sử dung một hàm softmax dé đám bảo rằng tông các xác suất của tất cả các token là bằng 1. Qua đó, mô hình có thé xác định xác suất xuất hiện của từng từ trong từ điển, dựa trên ngữ cảnh và thông tin an đã học được từ chuỗi đầu vào.

Phương pháp nhúng và Bidirectional LSTM:

Trước khi đưa vào các lớp LSTM, các token đầu vào được nhúng vào không gian vector

thông qua một lớp nhúng. Điều này giúp biéu diễn các từ dưới dạng các vectơ số thực,

trong không gian có số chiêu xác định trước. Qua quá trình này, mô hình có thẻ học được các biêu diễn ngữ nghĩa của từ, cải thiện khả năng học và dự đoán.

48

Lớp LSTM hai chiều (Bidirectional LSTM) được sử dụng dé mô hình hóa thông tin từ cả hai hướng của chuỗi đầu vào. Điều này giúp mô hình nắm bắt được mỗi quan hệ phức

tạp giữa các từ, dựa trên cả ngữ cảnh trước và sau của chúng.

4.5 Hậu xử lý kết quả

CTCDecoder trong TensorFlow là một lớp trừu tượng được sử dụng đẻ giải mã đầu ra theo thời gian của mạng nơ-ron nhân tạo (RNN) được huấn luyện với tôn thất CTC

(Connectionist Temporal Classification). Nó có hai loại giải mã chính:

se Giải mã theo đường dẫn tham lam (Greedy path decoding): sử dụng CTCGreedyDecoder, chọn đường dẫn có điểm cao nhất tại mỗi bước thời gian.

sô Giải mó tỡm kiếm chựm tia (Beam search decoding): sử dụng CTCBcamSearchDecoder, xem xét nhiều đường dẫn khả thi nhất đồng thời và

` x ằ get Ê sos xà a s ‘ ss

chon đường dan có điểm cao nhat sau khi tìm kiêm qua một sô bước thời gian.

Chuỗi các token IDs được trả về từ mô hình Decoder này sau đó được trải qua quá trình hậu xử lý dữ liệu của CTCGreedyDecoder dé cho ra kết quả là một câu hoàn chỉnh.

0.01 0.05 [ÐWfÊŠSWÔWW/ỐÃ 004 001 001

a

ÔÐĐ. 001 005 001 005 001 002 008

c 0.15 (GWEN) 001 005 001 005 001

d

e

t

0.01 0.02 0.01 0.05 0.01 0.03 0.05 0.01 0.01 0.01 0.05 0.02 0.01 0.02 0.01 0.02 0.01 0.05 0.01 0.01

| Mr 0.1 0.05 0.1

- 1 2 3 45 6 id

ta sẽ chon được chuỗi các ký tự là: "_caa_t", sau đó ta loại bỏ đi các ký tự trùng nhau và ky tự trong dé cho ra chuỗi hoàn chỉnh la: "cat".

49

4.6 Các kỹ thuật đánh giá

4.6.1 CTC Loss

CTC (Connectionist Temporal Classification) là một thuật toán được sử dung rộng rãi

trong mạng học sâu khi liên quan đến nhận dạng giọng nói, chữ viết tay và các van dé liên quan đến xử lý chuỗi ký tự trong xử lý ngôn ngữ tự nhiên (Natural Language

Processing — NLP). Là một hàm mat mát được thiết kế dé huấn luyện mạng nơ-ron hồi quy (RNN) cho các nhiệm vụ phân loại chuỗi thời gian không phân đoạn. Kỹ thuật nảy

được giới thiệu lần đầu tiên trong bài báo của Alex Graves, Santiago Fernández và Jũrgen Schmidhuber vào năm 2006 [1]. Trước kia khi CTC chưa xuất hiện đề có thê giải quyết các van dé trên các nhà nghiên cứu khác đã phải cô gang dé tách các chuỗi đầu

vào thành từng đoạn tương ứng với ký tự gan nhãn hoặc gán nhãn một cách thủ công với từng nhãn tương ứng chính xác với từng phân đoạn hình ảnh trên toàn bộ dữ liệu

huan luyện hình anh. Nhưng đối với CTC, mô hình sẽ tự động cân chỉnh khung và nhãn

trong xuyên suốt quá trình huan luyện, những vị trí mà không chứ kí tự sẽ được thay thẻ bằng kí tư *®_". Hàm này tính toán độ lệch giữa chuỗi ký tự dự đoán và chuỗi ký tự thực tế. CTC Loss có ưu điểm là có thẻ xứ lý các chuỗi ký tự có độ đài khác nhau và không

yêu câu phân chia âm vị. ví dụ như

Hình 4-5. Mô tả cách hoạt động của CTC Loss

Trong bài báo này đã đề xuất ra hai phương pháp:

50

e Best path decoding: h(x) = B(r*) trong đó m* = argmax,, < ycp(r|x) là

sự kết hợp của các điểm có xác xuất cao nhất tại mỗi time-step, cũng chính

vi thê ma không thê đảm bao được việc tìm được labelling đúng nhật.

® Prefix search decoding (PSD): phương pháp này dựa trên forward-

backforward algorithm, PSD sẽ luôn tìm thay labelling phù hợp nhất, nhưng số lượng prefix tối đa sẽ tăng theo hàm mũ, phức tạp nên phải áp dụng

heuristic

Đặt Ayyla tập tat cả các alignment A của Y. xác suất model có thé predict ra Y với input X là tong xác suất của tat cả A trong Ayy. Xác suất của A lại bằng tông xác suất từng kí

tự trong A. CTC loss chính là P(X|Y) trong hình:

T

oY |X) = b3 [Í pla! x)

A&Ary

The CTC conditional marginalizes over the computing the probability for a

probability set of valid alignments single alignment step-by-step

Hình 4-6, Công thức cua CTC Loss

3]

Phương pháp tính P(X|Y) cải tiến

Vẻ lý thuyết, ta cần thống kê ra tat cả alignment có thé có (kê ca đúng và sai). Giả sử với tap 9 kí tự, time_step = 10, số lượng tỏ hợp lên tới 10°. Số lượng tô hợp tăng cắp số nhân theo số lượng kí tự và time_step. Như vậy, việc liệt kê tat cả các alignment và tính

tông xác suất các alignment hợp lệ la việc không kha thi. Dé cải thiện tốc 46, người ta

đã sử dụng thuật toán dynamic programing, thuật toán như sau [15]:

Do blank token € có thé xuất hiện tại bat ki vị trí nao trong chuỗi Y, dé dé dàng mô tả

thuật toán, ta đặt target output là Z = [€, ị, €, W2, ..., €, Vel

e Z được tạo từ label Y với các kí tự e xen giữa các kí tự y;, length(Z) = S

© Đặt M = [my,m¿,...,m,] là chuỗi output mà mô hình tính toán và trả về length(M) = length(input) = T

e Dat p., là xác suất dé M[t] = Z[s]

e Data,, là xác suất tạo chuỗi Z[1, s] từ chuỗi M[1, t] thu gọn

Như vậy dé tính CTC_ Loss, ta lần lượt tính đ ¡, 44,2, đ;; ... đề cuối cùng tính ra được as, cuỗi cùng với s = Š,t =7. Trong khi tính a;, tại một thời điểm bat kì, sẽ có 2

trường hợp xảy ra:

Trường hợp 1: Z[s — 1] = € và nằm giữa hai kí tự giỗng nhau

Tai đây, kí tự € là bắt buộc phải có dé phân biệt hai ki tự giống nhau. Lúc này ta sẽ tinh:

đs¿ = (đs~xx—¡ + Ase-1) X Poe

Trường hợp 2: Z[s — 1] = € và nằm giữa hai kí tự khác nhau

Ở trường hợp này, kí tự € không còn quan trọng nữa, sẽ được tinh theo công thức sau:

ase = (ds-20-1 + 5-4 9-1 + Gse-1) X Ps

4.6.2 Word Error Rate

Đề đánh giá hiệu năng dự đoán chuỗi của mô hình, tôi còn sử dụng thé Word Error Rate (WER) hay còn được gọi là Phoneme Error Rate (PER), WER có thé tính bằng công

thức sau:

%2

Một phần của tài liệu Khóa luận tốt nghiệp Công nghệ thông tin: Nhận diện chữ viết tay ngoại tuyến (Trang 45 - 56)

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

(61 trang)