Xây dựng một mô hình trích xuất thông tin hóa đơn dựa trên học sâu

80 0 0
Tài liệu đã được kiểm tra trùng lặp
Xây dựng một mô hình trích xuất thông tin hóa đơn dựa trên học sâu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hiện nay, nhờ các tiến bộ vượt bậc của khoa học kĩ thuật, công nghệ trí tuệ nhân tạo (AI) đã được ứng thực tế vào rất nhiều lĩnh vực trong đời sống. Nhờ trí tuệ nhân tạo mà các công việc trở nên tự động và chuẩn xác, tuy nhiên trí tuệ nhân tạo cũng có giới hạn của mình, còn rất nhiều vấn đề chưa giải quyết được. Một lĩnh vực nằm trong trí tuệ nhân tạo là xử lý ảnh hay là Computer Vision (CV). Xử lý ảnh được chia thành 4 nhóm chính là: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh. Trong đó nhận dạng ảnh có thể ứng dụng các thuật toán của học máy (Machine Learning) để giải quyết rất nhiều bài toán về nhận dạng. Dựa trên những kiến thức được học và tìm hiểu thêm từ các phòng nghiên cứu, em ứng dụng nhận dạng ký tự quang học để trích xuất thông tin từ hóa đơn. Lý do em chọn đề tài vì em thấy nhận dạng ký tự quang học hiện nay đang rất phát triển và có nhiều ứng dụng thực tế. Trong quá trình quan sát em thấy hiện nay các nhân viên mà muốn nhập thông tin hóa đơn đều rất là vất vả và mất nhiều thời gian, vì lý do đó em lựa chọn bài toán này nhằm giảm quyết những công việc nhàm chán đó mà thông tin trích xuất vẫn có tính chính xác cao. Bài toán của em hoàn toàn có thể áp dụng với những văn bản mà có cấu trúc như căn cước công dân, giấy khai sinh, giấy phép lái xe, hóa đơn thuốc ... em nghiên cứu một mà có thể dùng mô hình áp dụng cho đa dạng nhiều dữ liệu khác nhau. Đồ án của em được chia thành 2 phần nghiên cứu chính là: Ứng dụng học máy (Machine Learning) vào việc trích xuất thông tin hóa đơn và ứng dụng các thuật toán để thực hiện xây dựng mô hình. Báo cáo đồ án của em gồm 4 phần chương như sau: Chương 1: Giới thiệu bài toán nhận dạng ký tự quang học Chương 2: Mạng Nơ-ron nhân tạo và các công nghệ trong giải quyết bài toán OCR Chương 3: Kết quả nghiên cứu Chương 4: Kết luận

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI

XÂY DỰNG MỘT MÔ HÌNH TRÍCH XUẤT THÔNG TIN HÓA ĐƠN DỰA TRÊN HỌC SÂU

Giảng viên hướng dẫn : TS Hoàng Văn Thông Sinh viên thực hiện : Nguyễn Trung Tài

Hà Nội – 2023

Trang 2

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

KHOA CÔNG NGHỆ THÔNG TIN

-o0o -

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI

XÂY DỰNG MÔ HÌNH TRÍCH XUẤT THÔNG TIN HÓA ĐƠN DỰA TRÊN HỌC SÂU

Giảng viên hướng dẫn : TS Hoàng Văn Thông Sinh viên thực hiện : Nguyễn Trung Tài

Hà Nội - 2023

Trang 3

LỜI CẢM ƠN

Bốn năm, một khoảng thời gian không dài đối với cuộc đời một sinh viên, là những năm tháng nhiều kỉ niệm, có sự tự hào, vinh dự, có những thành công nhưng cũng có không ít những khó khăn, thách thức, nhiều niềm vui và cũng có nhiều nỗi buồn Sau bốn năm, đây là thời gian để em nhìn lại quá trình gắn bó, sự nỗ lực cũng như sự trưởng thành của mình

Đại học Giao Thông Vận Tải mùa thu năm 2019, bầu trời hôm ấy thật đẹp, không biết có phải vì niềm vui trong lòng khiến bầu trời thêm xanh hay không Đến giờ phút này, khi đã là sinh viên năm cuối, em vẫn cảm thấy mình thật may mắn khi trở thành sinh viên của Khoa Công Nghệ Thông Tin Khóa 60, được làm việc cũng những người bạn, những thầy cô dưới mái trường thân yêu này

Đặc biệt, để có được đồ án này ngày hôm nay, em xin chân thành cảm ơn thầy TS Hoàng Văn Thông và các thầy cô giáo bộ môn đã tận tình hướng dẫn, chỉ dạy, góp ý; chia sẻ kiến thức, kinh nghiệm; giúp đỡ em trong suốt quá trình thực hiện báo cáo và chương trình, để đồ án tốt nghiệp của em hoàn thiện Em cũng xin gửi lời cảm ơn sâu sắc đến những người bạn, những người anh chị đã hỗ trợ kiến thức chuyên môn để em có được đồ án ngày hôm nay Sự tận tâm và nhiệt huyết của mọi người đã giúp em ngày càng trưởng thành và hoàn thiện hơn

Quá trình thực hiện đồ án của em không tránh khỏi những thiếu sót, mong nhận được các lời góp ý của thầy cô để đồ án của em có thể cải thiện và phát triển trong tương lai

Em xin chân thành cảm ơn!

Hà Nội, ngày tháng năm 2023 Sinh viên thực hiện

Nguyễn Trung Tài

Trang 4

CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN NHẬN DẠNG KÝ TỰ QUANG HỌC 11

1.1.GIỚI THIỆU BÀI TOÁN NHẬN DẠNG KÝ TỰ QUANG HỌC 11

2.2.3 Mạng neuron hồi quy – RNN 28

2.2.4 Một số cấu trúc mạng CNN hiện nay 30

2.2.CÁC CÔNG NGHỆ GIẢI QUYẾT BÀI TOÁN OCR 42

2.2.1 Các bài toán con của OCR 42

2.2.1.1 Bài toán phát hiện chữ - Text detection 42

2.2.1.2 Bài toán nhận diện chữ - Text recogniton 43

2.2.2 Các mô hình phát hiện chữ - Text detection 44

2.2.2.1 Các phương pháp cổ điển 44

2.2.2.2 Text detection dựa trên Object Detection 45 2.2.2.3 Text detection dựa trên các thành phần của chữ (Sub-Text Components)49

Trang 5

2.2.3 Các mô hình nhận diện chữ - Text regcognition 52

2.2.3.1 Các phương pháp cổ điển 52

2.2.3.2 Mô hình tổng quan của text recognition áp dụng trong học sâu 53

2.2.3.3 Text recognition dựa trên CTC 54

2.2.3.3 Text recognition dựa trên Attention 55

2.2.4 Cơ sở lý thuyết cho bài toán trích xuất thông tin trong văn bản từ ảnh 56

2.2.4.1 Bài toán trích xuất thông tin trong văn bản từ ảnh 56

2.2.4.2 Một số lý thuyết đồ thị cơ bản 58

2.2.4.3 Một số bài toán khi sử dụng Graph Convolutional Network 60

2.2.4.4 Graph Convolutional Network trong bài toán trích xuất thông tin trong hóa đơn 62

Trang 6

DANH MỤC CÁC TỪ VIẾT TẮT

Viết tắt Ý nghĩa

OCR Nhận dạng ký tự quang học CNN Mạng nơ-ron tích chập

Trang 7

DANH MỤC BẢNG BIỂU

Bảng 1 1 Khảo sát các phương pháp phát hiện text đã được công bố 16

Bảng 1 2 Khảo sát các nghiên cứu về nhận dạng ký tự đã được công bố 17

Bảng 2 1 So sánh một số mô hình phát hiện chữ 48

Bảng 2 2 Bảng so sánh kết quả các mô hình phát hiện chữ 51

Bảng 3 1 Tổng quan kiến trúc nhận diện hóa đơn 69

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1 1 Mục đích của kỹ thuật OCR 11

Hình 1 2 Minh họa OCR được ứng dụng trong doanh nghiệp 14

Hình 1 3 Minh họa một luồng OCR tiêu biểu 14

Hình 1 4 Các bước xử lý hệ thống 15

Hình 1 5 Sơ đồ khối xử lý ……… 19

Hình 2 1 Mỗi quan hệ giữa AI, ML, DL 21

Hình 2 2 Mạng thần kinh 22

Hình 2 3 Kiến trúc mạng Mutil Layber Perceptron(MLP) 23

Hình 2 4 Vai trò của tốc độ học – Learning Rate 24

Hình 2 5 Mô hình tổng quan của CNN 25

Hình 2 6 Một số loại Pooling 26

Hình 2 7 Đồ thị các hàm kích hoạt Sigmoid, Tanh, ReLU 27

Hình 2 8 Hàm Softmax với bài toán phân loại nhiều lớp 27

Hình 2 9 Mạng NN trước và sau khi Dropout 28

Hình 2 10 Kiến trúc mạng RNN 28

Hình 2 11 Cấu trúc BiLSTM 29

Hình 2 12 Lịch sử phát triển các cấu trúc mạng CNN 30

Hình 2 13 Kiến trúc mạng Alexnet 30

Hình 2 14 Kiến trúc mạng VGG-16 31

Hình 2 15 Ví dụ về việc thay bộ lọc 5x5 bằng bộ lọc 3x3 32

Hình 2 16 Cấu trúc mạng ResNet 32

Hình 2 17 Chi tiết bên trong khối Identity 33

Hình 2 18 Ví dụ Seq2Seq trong dịch máy 34

Hình 2 19 Mô hình mạng Encoder-Decoder 35

Hình 2 20 Mô hình Seq2Seq áp dụng cơ chế Attention 36

Hình 2 21 Một số kiểu Attention 37

Hình 2 22 Một số kiểu tính score của Attention 37

Hình 2 23 Mô hình Attention-OCR 38

Hình 2 24 Mô hình CRNN + Attention 39

Hình 2 25 Ảnh trước và sau khi áp dụng cơ chế NMS 40

Hình 2 26 Phần giao nhau của hai khung 41

Hình 2 27 IOU giữa hai khung 41

Hình 2 28 Phát hiện chữ trog ảnh biển báo 42

Hình 2 29 Nhận diện ảnh chữ STOP 43

Hình 2 30 Luồng xử lý của mô hình MSER 45

Hình 2 31 Luồng xử lý của mô hình SWT 45

Hình 2 32 Những dự đoán lỗi của TextBoxes 46

Hình 2 33 Một số kết quả phát hiện chữ của EAST 47

Hình 2 34 Mô hình LOMO 48

Hình 2 35 Kết quả của 2 mô hình LOMO và Wang 48

Hình 2 36 Kết quả phát hiện chữ của các mô hình dạng Sub-Text Coponent 51

Trang 9

Hình 2 37 Luồng huấn luyện tổng quan của mô hình Text recognition 53

Hình 2 38 Mô hình mạng CRNN 54

Hình 2 39 Một số kiểu mô hình text recognition áp dụng CTC 55

Hình 2 40 Một số kiểu mô hình áp dụng cơ chế Attention 56

Hình 2 41 Các loại cấu trúc và phương thức cho bài toán trích xuất thông tin 57

Hình 2 42 Cấu trúc đồ thị trong mô hình Graph Convolutional Network 59

Hình 2 43 Heterogeneous và homogeneous graph 60

Hình 2 44 Ví dụ minh họa bài toán Link Prediction 61

Hình 2 45 Ví dụ minh họa bài toán Node Classification 61

Hình 2 46 Ví dụ minh họa bài toán Clustering & Community detection 62

Hình 2 47 Ví dụ các vector từ trược biểu diễn trong không gian word2vec 63

Hình 2 48 Kiến trức mô hình Skip-gram 64

Hình 2 49 Kiến trức mô hình Skip-gram 64

Hình 2 50 Đồ thị liên kết giữa các textbox 66

Hình 2 51 Kiến trúc mô hình Graph Convolutional Network trong bài toán node classification 66

Hình 3 1 Hình ảnh hóa đơn mẫu trong tạp dữ liệu 68

Hình 3 2 Mô hình tổng quan kiến trúc nhận diện hóa đơn 69

Hình 3 3 Kiến trúc của thuật toán DBnet 69

Hình 3 4 Xoay ngược ảnh với Mobilenet 70

Hình 3 5 Thực hiện xoay hóa đơn với Mobilenet 70

Hình 3 6 Text recognition với VietOCR 71

Hình 3 7 Kiến trúc của model Pick 71

Hình 3 8 Kết quả trích xuất thông tin trong hóa đơn 73

Hình 3 9 Thực hiện xây dựng một website ứng dụng 74

Trang 10

MỞ ĐẦU

Hiện nay, nhờ các tiến bộ vượt bậc của khoa học kĩ thuật, công nghệ trí tuệ nhân tạo (AI) đã được ứng thực tế vào rất nhiều lĩnh vực trong đời sống Nhờ trí tuệ nhân tạo mà các công việc trở nên tự động và chuẩn xác, tuy nhiên trí tuệ nhân tạo cũng có giới hạn của mình, còn rất nhiều vấn đề chưa giải quyết được

Một lĩnh vực nằm trong trí tuệ nhân tạo là xử lý ảnh hay là Computer Vision (CV) Xử lý ảnh được chia thành 4 nhóm chính là: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh Trong đó nhận dạng ảnh có thể ứng dụng các thuật toán của học máy (Machine Learning) để giải quyết rất nhiều bài toán về nhận dạng Dựa trên những kiến thức được học và tìm hiểu thêm từ các phòng nghiên cứu, em ứng dụng nhận dạng ký tự quang học để trích xuất thông tin từ hóa đơn Lý do em chọn đề tài vì em thấy nhận dạng ký tự quang học hiện nay đang rất phát triển và có nhiều ứng dụng thực tế Trong quá trình quan sát em thấy hiện nay các nhân viên mà muốn nhập thông tin hóa đơn đều rất là vất vả và mất nhiều thời gian, vì lý do đó em lựa chọn bài toán này nhằm giảm quyết những công việc nhàm chán đó mà thông tin trích xuất vẫn có tính chính xác cao Bài toán của em hoàn toàn có thể áp dụng với những văn bản mà có cấu trúc như căn cước công dân, giấy khai sinh, giấy phép lái xe, hóa đơn thuốc em nghiên cứu một mà có thể dùng mô hình áp dụng cho đa dạng nhiều dữ liệu khác nhau Đồ án của em được chia thành 2 phần nghiên cứu chính là: Ứng dụng học máy (Machine Learning) vào việc trích xuất thông tin hóa đơn và ứng dụng các thuật toán để thực hiện xây dựng mô hình Báo cáo đồ án của em gồm 4 phần chương như sau:

Chương 1: Giới thiệu bài toán nhận dạng ký tự quang học

Chương 2: Mạng Nơ-ron nhân tạo và các công nghệ trong giải quyết bài toán

OCR

Chương 3: Kết quả nghiên cứu Chương 4: Kết luận

Trang 11

CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN NHẬN DẠNG KÝ TỰ QUANG HỌC

1.1 Giới thiệu bài toán nhận dạng ký tự quang học

Hình 1 1 Mục đích của kỹ thuật OCR 1.1.1 Lịch sử OCR

Nhận dạng ký tự quang học hay tiếng anh gọi là Optical Character Recognition (viết tắt là OCR) là công nghệ chuyển đổi hình ảnh văn bản được đánh máy, chữ viết tay hoặc chứ đánh máy(thường được quyét bằng máy scanner) thành văn bản, tài liệu được mã hóa trên máy Mặc dù gần đây thuật ngữ OCR mới thực sự phổ biến ở nước ta song công nghệ này đã trải qua một lịch sử phát triển rất dài Sau đây là một số cột móc dánh chú ý của quá trình hình thành và phát triển của OCR:

• Năm 1870, C.R.Carey của Boston Masachusetts phát minh ra máy quét võng mạc – một hệ thống truyền hình ảnh sử dụng các tế bào quang điện • Năm 1914: Một máy đọc các ký tự và chuyển đổi chúng thành mã điện báo

tiêu chuẩn được phát triển bởi Emanuel Goldberg Edmund Fournier d’Albe phát triển Optophone, một máy quét cầm tay mà khi di chuyển trên một trang tạo ra các âm thanh tương ứng với các chữ cái hoặc ký tự cụ thể • Năm 1920 - 1930: Emmanuel Goldberg đã phát triển ra “Máy thống kê” để

tìm kiếm các tài liệu lưu trữ vi phim bằng hệ thống nhận dạng mã quang học

• Năm 1931: Emmanuel Goldberg được cấp bằng sáng chế Hoa Kỳ số 1.838.389 cho phát minh này Bằng sáng chế đã được mua lại bởi IBM • Năm 1954: Thiết bị OCR đầu tiên được lắp đặt ở Reader’s Digest nhằm

chuyển đổi các báo cáo bán hàng được đánh máy thành thẻ đục lỗ để nhập vào máy tính

Trang 12

• Năm 1960 - 1965: đánh dấu sự ra đời của thế hệ OCR thương mại đầu tiên Thế hệ máy OCR này được đặc trưng bởi một số kí tự nhất định Số lượng 2 phông chữ tối đa là 10 và giới hạn bởi phương pháp nhận dạng là so sánh kí tự quét với kho lưu trữ hình ảnh mẫu

• Năm 1960-1970: OCR thế hệ này có thể nhận dạng các ký tự in thông thường và kí tự viết tay Đối với kí tự viết tay chỉ là các chữ số và một vài chữ cái cũng như ký hiệu, không phải toàn bộ bảng chữ cái Đặc biệt nhất trong thời kỳ này là 2 bộ font chữ OCR-A và OCR-B OCR-A là bộ ký tự OCR tiêu chuẩn của Mỹ, được thiết kế riêng để nhận dạng quang học OCR- B là phông chữ châu âu, được cho là tự nhiên hơn tiêu chuẩn Mỹ

• Năm 1974: Ray Kurzweil thành lập công ty Kurzwell Computer Products, Inc và tiếp tục phát triển omni-font OCR có thể nhận dạng văn bản được in bằng bất kỳ phông chữ nào (Kurzweil được cho là đã phát minh ra OCR đa phông chữ, tuy nhiên theo một số tài liệu nó đã được sử dụng từ cuối những năm 1960 và 1970 bởi một số công ty như CompuScan)

• Năm 1976: Kurzwell tạo ra máy đọc cho người khiếm thị

• Năm 1978: Kurzweil Computer Products bắt đầu bán phiên bản thương mại của chương trình máy tính nhận dạng kí tự quang học

• Năm 2000: Vào những năm đầu của thế kỷ XXI, OCR được cung cấp trực tuyến dưới dạng dịch vụ (WebOCR), trong môi trường điện toán đám mây (cloud) và trên các ứng dụng di động thông minh

• Năm 2006: Phần mềm OCR Tesseract trở thành của google Sự hợp tác tạo nên sự phát triển vượt bậc của công nghệ OCR Nó có thể tự nhận dạng các mẫu thay vì phải đưa ra các quy tắc cho từng ngôn ngữ

1.1.2 Ứng dụng của nhận dạng ký tự quang học trong trích xuất thông tin hóa đơn

Nhận dạng ký tự quang học (OCR) có rất nhiều công dụng trong đời sống của chúng ta mà có thể dễ dàng bắt gặp như:

• Nhập liệu nhanh chóng cho các tài liệu kinh doanh (Căn cước công dân, hộ chiếu, hóa đơn, sao kê ngân hàng, biên lai)

• Nhận dạng biển số tự động

• Nhận dạng hộ chiếu và trích xuất thông tin hộ chiếu ở sân bay • Nhận dạng biển báo giao thông

• Công nghệ hỗ trợ cho người khiếm thính và khiếm thị • Chuyển đổi chữ viết tay trong thời gian thực

Trang 13

Ứng dụng OCR trong xử lý hóa đơn giúp tiết kiệm thời gian, giảm thiểu các thao tác thủ công, tăng năng suất và tính chính xác của dữ liệu sau khi được trích xuất Dưới đây sẽ là những lợi ích mà phần mềm quét hóa đơn bằng OCR mang lại cho các doanh nghiệp:

• Giảm thời gian xử lý, tăng hiệu suất làm việc Quá trình xử lý hóa đơn

chậm sẽ khiến công việc không đảm bảo được tính liên tục, khiến cho hiệu suất làm việc của nhân viên không như kỳ vọng Vậy nên, khi áp dụng công nghệ OCR vào sẽ giúp thời gian xử lý mỗi hóa đơn giảm còn 3 - 5 giây Đây là bước khởi đầu tốt đẹp cho hàng loạt quy trình phía sau

• Tăng độ chính xác của dữ liệu đồng thời tăng tính an toàn, bảo mật

Hóa đơn thường chứa nhiều thông tin như mã số hóa đơn, mã số thuế, số tiền, số tài khoản, Theo thống kê thì tỉ lệ lỗi nhập số liệu có thể lên tới 20%, như vậy thì nếu nhập theo cách thủ công thì khả năng sai số liệu tương đối lớn, chưa kể tới những trường hợp nhập trùng lặp hóa đơn sẽ khiến cho quá trình phê duyệt, thanh toán, của kế toán sau này gặp nhiều khó khăn Thêm vào đó nhiều người truy cập và đọc được dữ liệu hóa đơn cũng dễ khiến doanh nghiệp bị lộ thông tin Với công nghệ OCR trong quá trình chụp hóa đơn thì khác, độ chính xác khi xử lý lên tới 99%, đảm bảo nguồn dữ liệu đầu vào cho các quá trình tiếp theo

• Lưu trữ, quảng lý hóa đơn hiệu quả hơn Dữ liệu trên hóa đơn sau khi

được đọc bằng công nghệ nhận dạng ký tự quang học sẽ được trích xuất và số hóa toàn bộ Lúc này, doanh nghiệp có thể loại bỏ các tủ hồ sơ, giấy tờ cồng kềnh và thay vào đó là lưu trữ thông tin trên bộ nhớ Cloud

• Tối ưu chi phí và nguồn lực Công nghệ OCR giúp tự động hóa quy trình

xử lý hóa đơn, tối ưu hóa quá trình tìm kiếm và lưu trữ thông tin Như vậy thì doanh nghiệp sẽ không cần tốn quá nhiều chi phí cho việc lưu trữ, giấy tờ, chi phí phải trả nếu gặp rủi ro trong việc nhập sai dữ liệu, nhân viên cũng tránh khỏi những tác vụ lặp đi lặp lại nhàm chán, thay vào đó sẽ tập trung xử lý các nghiệp vụ chuyên môn khác

Trang 14

Hình 1 2 Minh họa OCR được ứng dụng trong doanh nghiệp 1.1.3 Chương trình OCR

Chương trình OCR là tập hợp các mô hình nhằm số hóa văn bản thành định dạng số (doc, pdf, ) một chương trình OCR bao gồm một luồng hoàn chỉnh để giải quyết bài toán, mô hình OCR là một trong số đó Một luồng hoàn chỉnh được mô tả như hình dưới đây:

Hình 1 3 Minh họa một luồng OCR tiêu biểu

Bao gồm các bước sau:

• Bước 1: Ảnh đầu vào sẽ được đi một mô hình Nhận diện dòng chữ (Layout Analysis) để nhận diện vị trí các dòng chữ

• Bước 2: Khi đã có vị trí các dòng chữ, các dòng chữ sẽ được cắt ra và xoay về đúng hướng nhờ mô hình xoay (Text-line Alignment)

• Bước 3: Sau khi có ảnh chuẩn đã xoay, ảnh dòng chữ sẽ được đưa vào mô hình OCR để thực hiện việc nhận dạng ra từ

Trang 15

1.2 Công trình liên quan

Xử lý hóa đơn bằng OCR được thực hiện theo quy trình gồm các bước cơ bản sau:

• Bước 1: Đưa hình ảnh lên hệ thống

• Bước 2: Tiền xử lý hình ảnh Đây là quá trình giúp hệ thông xác định ảnh chính xác hơn, đưa ảnh về dạng pixel, điều chỉnh độ sáng tối, giảm độ mờ của ảnh • Bước 3: Xác định vùng chứa thông tin

• Bước 4: Phát hiện trường thông tin cần trích xuất Nhanh chóng lấy ra các trường thông tin mong muốn như mã hóa đơn, ngày tháng, thông tin bên bán (tên, địa chỉ, số điện thoại, ) thông tin bên mua, tổng số tiền phải trả, phần trăm thuế, • Bước 5: Đọc và nhập thông tin Ký tự được đọc và đưa vào các trường thông tin

theo yêu cầu của từng doanh nghiệp

• Bước 6: Xử lý hậu kỳ Chỉnh sửa các trường thông tin còn sai sót sau khi máy đọc xong, đây là bước quang trọng vì nếu thiếu bước này thì đôi khi công nghệ OCR sẽ đọc sai hoặc có một vài từ vô nghĩa

Như phần trước đã đề cập, để xây dựng một hệ thống hoàn chỉnh từ phân tách text trong văn bản là ảnh hay bản scan đế trích xuất tự động các thông tin quan trọng trong văn bản thì cần giải quyết lần lượt ba nội dung sau Mỗi nội dung sẽ được coi là một bài toán nhỏ sẽ được nghiên cứu, thử nghiệm độc lập trước khi tổng hợp thành một thệ thống hoàn chỉnh Ba nội dung nghiên cứu như sau:

1 Xử lý ảnh để nhận diện các dòng chữ trong văn bản 2 Nghiên cứu nhận dạng ký tự cho tiếng Việt

3 Trích xuất thông tin quan trọng từ văn bản tiếng Việt

Hình 1 4 Các bước xử lý hệ thống

Trong nội dung thứ nhát là vấn đề xử lý ảnh để lấy ra được tất cả các dòng text có xuất hiện trong văn bản Đây được coi là bài toán phát thiện đối tượng trong ảnh Việc

Trang 16

ngắt câu sẽ trở thành vấn đề, vì các đối tương đang rất giống nhau Đầu vào của bài toán thứ nhất là ảnh chụp hay ảnh scan của hóa đơn, đầu ra ta sẽ có vị trí của các dòng chữ xuất hiện trong ảnh

Với bài toán phát hiện vùng văn bản (text detection) đã có nhiều nghiên cứu, sử dụng nhiều phương pháp khác nhau, nhưng với tiếng Việt thì chưa có nhiều nghiên cứu công bố Dưới đây là các công trình nghiên cứu đã có về vấn đề phát hiện chữ viết, chủ đạo là tiếng Anh, tiếng Trung Quốc Bảng khảo sát được viết theo từ các phương pháp cũ đến mới

Bảng 1 1 Khảo sát các phương pháp phát hiện text đã được công bố

2001 Tiếng Trung Quốc, tiếng

[1]

Độ chính xác thấp, nhiễu tác động

2004 Tiếng Trung Quốc, tiếng Tây Ban Nha

Phân loại AdaBoost và mã hóa nhị phân [2]

Độ chính xác thấp, các văn bản chữ bé, mờ không phát

hiện được 2011 Tiếng Anh Học không giám sát phâm cụm

K_means, bộ lọc Gaussian, phân loại tuyến tính SVM [3]

Phức tạp, nhiều text có kích thước

nhỏ không phát hiện được 2012 Tiếng Anh Phân cụm K-means, CNN gồm

2 lớp tích chập, 1 lớp kết nói đầy đủ [4]

Phát hiện thiếu, bị giới hạn trong tập hợp chữ viết nhất

định 2015 Tiếng Anh,

tiếng Hàn, tiếng Trung

CNN 2 lớp, phân loại SVM [5] Phát hiện sai với văn bản đa hướng

2019 Tiếng Anh Phát hiện đối tượng sử dụng Faster R-CNN [6]

Phát hiện từng ký tự, không nhận diện cả cụm chữ

viết

Trang 17

2018 Tiếng Anh, tiếng Trung

viết

Các bộ dữ liệu chuẩn có sẵn sử dụng để học cho bài toán phát hiện chữ viết đã được công bố được thể hiện ở bảng dưới đây Các bộ dữ liệu có sẵn cũng chỉ dừng lại ở các ngôn ngữ Anh, Trung Quốc, Hàn Quốc và Ả Rập và chưa có bộ dữ liệu chuẩn nào về tiếng Việt

Trong nội dung thứ hai sẽ nghiên cứu nhận diện ký tự tiếng Việt OCR (nhận dạng ký tự qung học) là ứng dụng công nghệ chuyên dùng để đọc text ở file ảnh Được biết đến là một công cụ scan kỹ thuật số chuyên nhận dạng các ký tự, chữ viết tay, hay chữ đánh máy, công nghệ này chuyên dùng để truyền tải, nhập liệu dữ liệu Đặc biệt, ở OCR có khả năng kỹ thuật số nhiều dưới nhiều dạng tài liệu khác nhau: hóa đơn, hộ chiếu, danh thiếp, tài liệu Vì vậy nghiên cứ sử dụng OCR cho văn bản tiếng Việt Từ vị trí các dòng chữ có trong bài toán thứ nhất, bài toán thứ hai sẽ tiến hành OCR để biết được nội dung chính xác của dòng chữ đó

Với bài toán nhận dạng ký tự chữ viết tiếng Việt cũng đã có nghiên cứu được công bố, sử dụng nhiều phương pháp khác nhau Dưới đây là các công trình nghiên cứu đã được công bố

Bảng 1 2 Khảo sát các nghiên cứu về nhận dạng ký tự đã được công bố

2014 Vietnamese Handwritting Recognition for Automatic

Data Entry in Enrollment Forms

Phân loại các ký tự viét in hoa tiếng Việt (bao gồm cả dấu) khi đầu vào là ảnh các ký

tự riêng biệt [8]

Chỉ nhận dạng được từng ký từ

nếu cả câu thì không được, cần quá nhiều nhãn khi

phân loại 2015 Isolated Vietnamese

Handwritting Recognition Embedded System Applied

Combined Feature Extraction Method

Phân loại các ký tự tiếng Việt, sử dụng quá trình tiền xử lý để

cắt từng ký tự ra khỏi câu [9]

Cần quá nhiều nhã khi phân loại

2017 Preparation of an Unconstrained Vietnamese

Online Handwritting

Sử dụng mô hình RNN (Recurrent Neural Networks) để nhận dạng ký tự và dự

Kết quả tốt nhưng cần label một lượng lớn dữ liệu

Trang 18

Database and Recognition Experiments

đoán các ký tự tiếp theo [10]

để có thể huấn luyện mô hình

Competition on Vietnamese Online

Handwritten Text Recognition using Hands-

VNOnDB

Cung cấp bộ dữ liệu và nhận dạng chữ viết, dòng chữ và cả

đoạn văn Sử dụng mô hình Long short term memory(LSTM) kết hợp Connectionist

Temporal Classification (CTC)

[11]

Tỷ lỗi từ thấp với nhận dạng chữ, tỷ lệ lỗi từ còn cao

với nhận dạng dòng chữ và đoạn

văn

2020 A Robust End-to-End Information Extraction System for Vietnamese

sử dụng mô hình Transformer và AttentionOCR [13]

Kết quả nhanh, tốc độ chính xác cao,

nhận dạng tốt cả chữ viết tay và

đánh máy cho Tiếng Việt Các bộ dữ liệu cho bài toán nhận dạng ký tự Tiếng Việt có sẵn hay công khai thường có số lượng không nhiều và không đa dạng thường là các dữ liệu ảnh với chữ viết rõ ràng, sắc nét

Trong nội dung thức ba sẽ tiến hành thu thập dữ liệu các mẫu hóa đơn thanh toán sau đó quy định các trường thông tin cần trích xuất trong văn bản Xây dựng một mô hình huấn luyện để phân loại các text vào các nhãn đã quy định Đầu vào của model chính là vị trí và nội dung textbox đã thu được trong bài toán thứ nhất và bài toán thứ hai Với mô hình phân loại text, nghiên cứu sử dụng model GCN (graph convolutiona network) Một mô hình tương đối mới mẻ, giúp phác họa chân thực cấu trúc liên kết của các câu từ trong văn bản Đối với nội dung nghiên cứu thứ ba này thì hầu như không có nghiên cứu cứ thể nào được công bố cho vấn đề này và đặc biệt các nghiên cứu về trích xuất thông tin chỉ dừng lại ở một băn bản có cấu trúc nhất định như các loại giấy tờ có cấu trúc quy định sẵc như chứng minh thư, bằng lái xe, Mà đối với đối tượng của đồ án này là hóa đơn sẽ có nhiều cấu trúc, hình thức khác nhau, nên với bài toán trích xuất thông tin này là hoàn toàn mới

Trang 19

Tổng quan sơ đồ khối xử lý như sau:

Hình 1 5 Sơ đồ khối xử lý

Đầu vào là văn bản cần trích xuất thông tin, sau đó các text sẽ được tiến hành embedding để vector số hóa Đây cũng là đầu vào để huấn luyện và kiểm thử mô hình phân loại text Với các text đã xác định rõ nhãn tiến hành mapping vào các trường thông tin muốn trích xuất

1.3 Kết luận

Đối với bất kỳ ai đang cố gắng với nghiệm vụ phân tích văn bản, cái khó nhất không phải là tìm đúng tài liệu mà là tìm những thông tin chính xác trong những tài liệu đấy Hiểu rõ mối liên kết giữa các chủ thể trong đoạn văn, các sự kiện trong đoạn văn mô tả diễn ra như thế nào, hoặc là tìm những thông tin quý giá từ những từ khóa trong đoạn văn đó, và vì thế, việc tìm ra cách tự động trích xuất thông tin từ dữ liệu văn bản và trình bày nó theo cách có cấu trúc sẽ giúp chúng ta gặt hái được nhiều lợi ích, giảm đáng kể thời gian ta phải dành để đọc lướt qua các tài liệu

Nghiên cứu tập chung vào một mẫu văn bản nhất định (mẫu hóa đơn thanh toán tiếng Việt), phục vụ cho các doanh nghiệp hay kế toán để có thể tự động, nhanh chóng lấy ra các trường thông tin mong muốn như mã hóa đơn, ngày tháng, thông tin bên bán (tên, địa chỉ, số điện thoại, ) thông tin bên mua, tổng số tiền phải trả, phần trăm thuế, Mô hình sẽ lấy ra các trường thông tin đó tùy thuộc vào mong muốn của người cài đặt và sử dụng Phạm vi nghiên cứu thử nghiệm với đầu vào là file ảnh, file pdf của hóa đơn chữ in, hoặc chữ viết tay, hình ảnh rõ ràng, độ nghiêng chữ không quá 10 độ, và nội dung hóa đơn chỉ trong một trang

Đầu vào sẽ là ảnh chụp hay ảnh scan một hóa đơn thanh toán, đầu ra hệ thống sẽ tự động lấy ra các trường thông tin mong muốn (nội dung của trường thông tin đó được định dạng text, người bán: vinmart, thời gian: 02/09/2022, tổng tiền: 2000000, địa chỉ: Mỹ Đình)

Thông thường ta chỉ quan tâm để một vài thông tin cần thiết ở trong hóa đơn, nên không nhất thiết phải xây dựng một hệ thống đọc toàn bộ thông tin trong hóa đơn, do trích xuất toàn bộ thông tin vừa làm giảm tốc độ trong quá trình xử lý và gây ra nhiều dữ liệu nhiễu Từ đó em thực hiện xây dựng một hệ thống trích xuất thông tin quan trọng trong hóa đơn với các trường thông tin gồm người bán, thời gian, địa chỉ, tổng tiền

Trang 20

Trong đồ án tốt nghiệp này em sẽ tập trung giải quyết lần lượt từng nội dung bài toán với những mục tiêu chính sau:

1 Làm rõ từng bài toán, tìm ra phương pháp giải quyết phù hợp nhất, thử nghiệm và đánh giá các phương pháp đổi với dữ liệu là hóa đơn thanh toán tiếng Việt

2 Xây dựng một hệ thống hoàn chỉnh, phát triển giao diện để hỗ trợ người dùng sử dụng

Từ mục tiêu nghiên cứu trên, em đã tiến hành các bước sau và cũng là các chương trình bày tiếp theo trong báo cáo, mỗi chương trình sẽ trình bày lần lượt các nội dung liên quan đến ba bài toán nhỏ và hệ thông hoàn chỉnh sẽ được trình bày tại chương cuối cùng

Trang 21

CHƯƠNG 2 MẠNG NƠ-RON NHÂN TỌA VÀ CÁC CÔNG NGHỆ TRONG GIẢI QUYẾT BÀI TOÁN OCR

2.1 Mạng nơ ron nhân tạo 2.1.1 Kiến trúc mạng neuron

Trong những năm trở lại đây, các khái niệm như học máy (Machine Learning - ML) hay học sâu (Deep Learning - DL) đã trở nên phổ biến hơn trong việc phát triển mô hình OCR và trong đời sống của chúng ta Chúng đều thuộc một bộ môn khoa học chung được gọi là trí tuệ nhân tạo AI (Artificial Intelligence) Cụm từ AI bắt đầu được nói đến nhiều từ sau hội nghị Dartmouth vào năm 1956 Từ đó trở đi lĩnh vực AI đã dành được sự thu hút lớn và phát triển cho đến tận ngày nay

Hình 2 1 Mỗi quan hệ giữa AI, ML, DL

Ban đầu, các thuật toán áp dụng cho mô hình còn sơ khai, dữ liệu còn ít, thiết bị chưa đủ mạnh, các nhà khoa học chỉ áp dụng ML như một ứng dụng để thực thiện phân tích dữ liệu, học đơn giản từ nó và sau đó thực hiện một quyết định Một số mô hình của Machine Learning là thuật toán sử dụng Linear Regression, Logistic Regression, Support Vector Machines (SVM), Tuy nhiên do còn nhiều hạn chế nên kết quả mô hình còn thấp, chỉ áp dụng được một vài trường hợp nhỏ, mô hình lại quá nhạy cảm, dễ bị sai có nhiễu (noise) Để giải quyết vấn đề này các nhà khoa học đã sáng tạo ra mạng neuron (tên tiếng anh là neural network - NN) – một mạng được đưa ra theo cơ chế của

Trang 22

bộ não con người Với mỗi neuron trong tế bào thần kinh con người nhận tín hiệu đầu vào (input) qua các sợi thần kinh, tích tụ lại trong thân (cell body), khi tín hiệu này vượt qua ngưỡng (threshold) thì nó sẽ phát ra tín hiệu đầu ra (output) Cứ thế các neuron sẽ truyền các tín hiệu sang các neuron khác nhờ các liên kết (Dendrites) và chúng tạo thành mạng thần kinh trong não bộ của chúng ta

Hình 2 2 Mạng thần kinh

Tuy nhiên, không giống hoàn toàn như mạng thần kinh của con người, mạng neuron nhân tạo đã được cải thiện hơn, nó có các lớp rời rạc, các kết nối, hướng truyền dữ liệu được mở rộng nhằm giải quyết nhiều nhu cầu hơn Và rồi sau đó, đến năm 2010, dựa trên mạng neuron cơ bản, mô hình mạng AlexNet đã giành chiến thắng tại cuộc thi ImageNet với kết quả bỏ xa các mô hình khác Hai năm sau tại google, Andrew Ng đã đưa các mạng neuron này lên tầm cao mới, làm cho chúng trở nên to hơn bằng cách tăng số lớp và số lượng các neuron, sau đó chạy qua khối lượng lớn dữ liệu từ Youtube (10 triệu video) để huấn luyện mô hình Ng đã đặt thêm từ “deep” vào việc học (learning) để tạo ra một bước khởi đầu cho sự phát triển mạnh mẽ của Deep Learning cho đến giờ Tổng quan mô hình:

Mạng neuron được cấu thành từ các neuron đơn lẻ ban đầu được gọi là Perceptron Sau đó mạng neuron càng phát triển hơn bằng cách kết hợp các tầng Perceptron và được gọi là Perceptron đa tầng (Multilayer Perceptron – MLP)

Trang 23

Hình 2 3 Kiến trúc mạng Mutil Layber Perceptron(MLP)

Một mạng Neural Network-NN sẽ có 3 tầng chính là:

• Tầng vào (input layer): là tầng cho các đầu vào của mạng • Tầng ra (output layer): là tầng cho các đầu ra của mạng

• Tầng ẩn (hidden layer): là tầng giữa vào và tầng ra, thể hiện cho việc tính toán, suy luận của mạng để tìm ra các đặc trưng

Ngoài ra còn có một hàm quan trọng để đánh giá xem hệ thống học máy đã mô hình hóa dữ liệu tốt đến mức nào là hàm mất mát (Loss function) Đây là hàm được dùng để tính toán lỗi dự đoán của mô hình trong quá trình đào tạo Nó cho biết độ sai khác giữa thực tế và kết quả dự đoán Từ đó nó sẽ tối ưu hóa mô hình của mạng bằng cách cực tiểu giá trị này Một số hàm loss có thể kể đến là Cross entropy loss hay Softmax loss function, Euclidean Loss Function, Hinge Loss Function, Hàm chi phí (cost function) là trung bình của hàm mất mát áp dụng trên một tập các quan sát

Thuật toán suy giảm độ dốc Gradient Descent là một thuật toán tối ưu được sử dụng nhiều trong các bài toán Deep Learning với mục tiêu là tìm được mô hình đưa ra dự đoán chính xác nhất Trong đó:

- Gradient: là tỉ lệ độ nghiêng của đường dốc Về mặt toán học, Gradient của một hàm số là đạo hàm của hàm số đó tương ứng với mỗi biến của hàm

- Descent: là từ viết tắt của descending nghĩa là giảm dần Gradient Descent có nhiều dạng khác nhua như Stochatstic Gradient Descent (SGD), Batch Gradient Descent, Mini-batch Gradient Descent, … nhưng về cơ bản đều được thực hiện theo các bước:

Trang 24

+ Bước 1: Khởi tạo các tham số Thường là các hệ số nhỏ hoặc là hệ số ngẫu nhiên hoặc bằng 0 Ví dụ:

+ Bước 2: Tính đạo hàm của hàm loss theo các biến:

+ Bước 3: Cập nhập các tham số mới bằng cách đi ngược với gradient.

+ Bước 4: Lặp lại bước 1 và 2 đến khi thỏa mãn điều kiện dừng Trong đó: • : là các tham số cần cập nhật và

• kí hiệu cho tham số tại bước cập nhật lần k khi thực hiện GD • : là hàm mục tiêu cần cực tiểu

• : là tỉ lệ học với Điều kiện dừng của GD có thể là:

+ Kết thúc tất cả các epochs (đây là siêu tham số trong mô hình được dùng để định nghĩa số lần học được toàn bộ dữ liệu huấn luyện) đã định sẵn + Hàm mất mát có giá trị không thay đỏi sau một số lần hữu hạn epochs + Gía trị của hàm mất mát đủ nhỏ và độ chính xác của model đủ lớn

Gradient Descent phụ thuộc rất nhiều vào điểm khởi tạo và tốc độ học (learning rate) ở bước 1

Hình 2 4 Vai trò của tốc độ học – Learning Rate 2.2.2 Mạng neuron tích chập - CNN

Trang 25

Hình 2 5 Mô hình tổng quan của CNN

Mạng neuron tích chập (Convolutional Neural Network - CNN) là mạng thường được dùng phổ biến trong bài toán xử lý ảnh Nó ra đời để nâng cao khả năng trích chọn đặc trưng trong ảnh bằng cách tìm các mối tương quan giữa những điểm ảnh kề cận với nhau Mạng CNN bao gồm các tầng Convolution, Pooling và các hàm kích hoạt Activation function được sắp xếp theo một thứ tự thích hợp tùy từng loại cấu trúc Dưới đây ta sẽ đi qua lần lượt các tầng trong đó:

Convolutional layer (CONV): gọi là tầng tích chập, đây là tầng đầu tiên để bóc tách các đặc trưng của ảnh đầu vào Sử dụng một bộ lọc (filter hoặc kernel) thường có kích cỡ MxM trượt qua bức ảnh Phần của bức ảnh mà bô lọc trượt qua được gọi là receptive field, tức là vùng mà một neural có thể nhìn thấy và đưa ra quyết định Đầu ra của quá trình là một ma trận đặc trưng (Feature map) có chứa thông tin của bức ảnh như là góc và cạnh Sau đó feature map được đưa đến các tầng tiếp theo để học những đặc điểm khác

Pooling layer (POOL): gọi là tầng tổng hợp, đây thường là tầng sau Convolution layer Nó sẽ xác định đặc trưng chính hay quan trọng nhất trong mỗi vùng của ảnh Tầng này nhằm mục đích giảm kích thước của feature map để giảm chi phí tính toán Nó được thực hiện bằng cách giảm số kết nối giữa những tầng và các tính toán độc lập trong feature map Một số loại pooling:

- Max pooling: lấy các thành phần giá trị lớn nhất trong mỗi khu vực feature map - Average pooling: lấy trung bình của các thành phần trong mỗi khu vực feature

map

- Global average pooling: lấy trung bình toàn bộ feature map

- Sum pooling: lấy tổng hợp các thành phần trong một khu vực của feature map Đây thường là tầng kết nối giữa Convolutional layer và Fully connected layer

Trang 26

Hình 2 6 Một số loại Pooling

Fully connected layer (FC) hay Dense layer: gọi là tầng kết nối hoàn toàn, nó được dùng để kết nối các neuron với tất cả neuron của tầng trước đó Tầng này thường được đặt trước đầu ra của mạng CNN Thông thường đầu vào từ tầng trước đó sẽ được làm phẳng (flatten) và đưa vào tầng Fully connected Trong đây sẽ thực hiện các phép toán để phân loại dựa theo các bài toán

Activation functions hay Activation layer: gọi là hàm kích hoạt hay tầng kích hoạt Đây là hàm quan trọng của mô hình CNN Nó được sử dụng để học và xác định gần đúng về mối quan hệ phức tạp giữa các biến (variable) của mạng Nó sẽ quyết định xem thông tin nào sẽ được truyền tiếp và thông tin nào không cần Nó là một hàm phi tuyến Một số hàm thường dùng:

+ Sigmoid: đầu vào là số thực, đầu ra giới hạn trong khoảng (0,1)

+ Tanh tương tự như hàm sigmoid, đầu vào là các số thực nhưng đầu ra trong khoảng (-1,1)

+ Relu: (tên đầy đủ là Retified Linear Unit) là hàm kích hoạt thường được dùng kèm với mạng CNN Nó biến toàn bộ giá trị đầu vào thành số dương Điểm mạnh của hàm này là việc chi phí tính toán thấp

Trang 27

+ Softmax: là hàm trung bình mũ Nó thường được sử dụng để tính xác suất xảy ra của một sự kiện Hay tổng quát hơn là hàm softmax tính khả năng xuất hiện của một class trong tổng số tất cả các class có thể xuất hiện Sau đó, xác suất này được sử dụng để xác định class mục tiêu cho các đầu vào Đầu ra của hàm sẽ là một giá trị trong khoảng (0,1] Do đó hàm softmax thường được sử dụng ở những layer cuối của mạng classification nhằm đánh giá xác suất phân loại Với n là số class thì ta có công thức, i=1,2, ,n:

Hình 2 7 Đồ thị các hàm kích hoạt Sigmoid, Tanh, ReLU

Hình 2 8 Hàm Softmax với bài toán phân loại nhiều lớp

Batch normalization: đây là phương pháp chuẩn hóa dữ liệu được sử dụng phổ biến trong mô hình DL Nó là một trong những kiểu chuẩn hóa của tầng Normalization layer, thường được đặt giữa Convolutional layer và Pooling layer Nó cho phép mô hình đào tạo nhanh hơn và ổn định hơn bằng cách thống nhất sự phân bố đầu vào các tầng trong quá trình huấn luyện Ngoài ra nó còn làm giảm sự phụ thuộc của gradients vào tỉ lệ của các tham số hoặc giá trị ban đầu

Dropout: đây là cơ chế bỏ qua ngẫu nhiên một số đơn vị (unit) hoặc kết nối (connection) với một xác suất xác định

Trang 28

Hình 2 9 Mạng NN trước và sau khi Dropout 2.2.3 Mạng neuron hồi quy – RNN

Các mạng hồi quy còn được biết đến như Recurrent Neural Network - RNN là

một lớp của mạng neuron cho phép đầu ra được sử dụng như đầu vào trong khi có các trạng thái ẩn Nếu như các mạng CNN đa phần được giải quyết các bài toán với đầu vào là các dữ liệu độc lập và có phân phối giống nhau (independently and identically distributed – i.i.d) như hình ảnh, thì mạng RNN được ra đời để giải quyết những đầu vào có tính thời gian, theo dạng chuỗi gọi chung là những đối tượng có tính tuần tự ví dụ là các tín hiệu âm thanh, hành vi của một người, Ý tưởng chính của phương pháp là mạng RNN sẽ đọc các đầu vào của dữ liệu tại mỗi bước thời gian nhất định (gọi là time-step) Đầu ra tại mỗi bước sẽ được đưa vào mạng và mạng sẽ ghi nhớ trạng thái này coi là trạng thái trước đó và sẽ ảnh hưởng đến đầu ra của bước tiếp theo Cứ thế, quá trình này được gọi là quá trình “hồi tiếp”

Hình 2 10 Kiến trúc mạng RNN

Trang 29

Đi sâu vào chi tiết hơn, ta có thể thấy qua hình trên Nếu như mạng neuron thông thường khi input x đi qua các hidden layer h và cho ra output là y với fully connected giữa các tầng thì với RNN, các input xt sẽ được kết hợp với hidden layer ht-1 bằng hàm fw để tính toán ra hidden layer hiện tại và output yt sẽ được tính ra từ ht , W là tập các trọng số Như vậy kết quả từ các quá trình tính toán trước đã được nhớ bằng cách kết hợp thêm ht-1 tính ra ht nhằm cải thiện độ chính xác của việc dự đoán ở bước hiện tại

Với:

fw là hàm tanh ngoải ra có thể sử dụng một số hàm phi tuyến khác như ReLU, … Whh , Wxh , Why : là 3 ma trận trọng số cho 2 quá trình tính toán là Whh kết hợp với bộ nhớ trước ht-1 và Wxh kết hợp với xt để tính ra bộ nhớ của bước hiện tại ht từ đó kết hợp Why để tính ra yt

Một số cấu trúc mở rộng của RNN:

LSTM (Long Short Term Memory): là mạng bộ nhớ dài ngắn Được đưa ra để giải quyết vấn đề các gradient có xu hướng bị mất mát – vanish (các giá trị tiến về 0) hay bùng nổ - explode (đạt đến một giá trị quá lớn) đối với chuỗi đầu vào dài

BiLSTM (Bidirectional LSTM): là mạng bộ nhớ dài ngắn hai chiều Cấu trúc này giúp mô hình học được cả vào ngữ cảnh quá khứ (trái sang phải – forward LSTM) và tương lai (phải sang trái – backward LSTM) Khiến cho mô hình dự đoán chính xác hơn tuy nhiên cần nhiều dữ liệu hơn

Hình 2 11 Cấu trúc BiLSTM

Trang 30

2.2.4 Một số cấu trúc mạng CNN hiện nay

Hình 2 12 Lịch sử phát triển các cấu trúc mạng CNN

Từ khi Machine Learning, Deep Learning phát triển cho đến nay có rất nhiều mô hình mạng neuron được phát triển dựa trên kiến trúc CNN Sau đây em xin trình bày 3 mô hình là Alexnet, VGGNet và ResNet Trong đó 2 kiến trúc VGGNet và ResNet thường xuyên được áp dụng làm khung (backbone) cho các mô hình xử lý hình ảnh (computer vision - CV) mà OCR là bài toán con.[14]

2.2.4.1 Alexnet(2012)

Hình 2 13 Kiến trúc mạng Alexnet

AlexNet [10] là mạng CNN được giới thiệu vào năm 2012 bởi Alex Krizhevsky, Ilya Sutskever và Geoff Hinton Mạng AlexNet có 5 tầng convolution và 3 tầng fully connected với 60 triệu tham số.[14] Điểm nổi bật so với các mô hình trước đó như LeNet (một trong những mạng tích chập được công bố đầu tiên được triển khai các tầng tích chập):

Trang 31

+ Tăng kích thước đầu vào và độ sâu của mạng

+ Sử dụng các bộ lọc với kích thước giảm dần qua các tầng để thích ứng với kích thước các đặc trưng cục bộ và toàn cục

+ Đây là mô hình đầu tiên triển khai activation function là ReLU + Có sử dụng Dropout và batch normalization

2.2.4.2 VGG(2014)

Hình 2 14 Kiến trúc mạng VGG-16

Trong khi AlexNet tập trung vào các đặc trưng từ lớp Convolution đầu tiên qua kích cỡ filter và stride nhỏ hơn thì VGG [11] lại quan tâm đến một vấn đề khác là 20 độ sâu VGG là viết tắt của Visual Geometry Group với 13 tầng Convolution và 3 tầng Fully connected.[14]

Chi tiết kiến trúc của VGG bao gồm:

- Đầu vào: VGG nhận đầu vào là ảnh RGB kích cỡ 224x224 pixel

- Convolutional layers: tầng này ở VGG sử dụng receptive field (3x3) Ngoài ra cũng có các bộ lọc 1x1 để biến đổi tuyến tính các đầu vào và được theo sau bởi ReLU Stride được đặt là 1

- Fully connected layer: VGG có 3 tầng fully connected với 2 tầng đầu là 4096 kênh, tầng cuối là 1000 kênh

- Hidden layer: tất cả các lớp ẩn của VGG đều dùng ReLU (đây là một cải tiến lớn so với AlexNet giúp cắt giảm thời gian) VGG cũng không thường sử dụng Local Response Normalization (LRN), do LRN làm tăng bộ nhớ và thời gian đào tạo mà không tăng được độ chính xác như mong đợi

Mặc dù VGG được xây dựng dựa trên AlexNet nhưng cũng có những điểm khác biệt:

- Thay vì sử dụng receptive field (11x11 với stride là 4 hay 7x7), VGG sử dụng receptive field nhỏ hơn (3x3 với stride là 1) Do nó sử dụng 3 bộ ReLU thay vì một của AlexNet, khiến cho khả năng đưa ra phân biệt các lớp tốt hơn Ngoài ra số lượng tham số của nó cũng ít hơn Do

+ 2 tầng với bô lọc 3x3 có thể bao như bộ lọc 5x5 + 3 tầng với bộ lọc 3x3 có thể bao như bộ loc 7x7 + 5 tầng với bộ lọc 3x3 có thể bao như bộ lọc 11x11

Trang 33

Hình 2 17 Chi tiết bên trong khối Identity

Điểm mạnh của cấu trúc:

• Sử dụng skip connection

• Thiết kế mạng CNN có thể sâu tới 152 tầng mà không ảnh hưởng đến độ hiệu quả của mô hình

• Một trong số cấu trúc đầu tiền sử dụng Batch normalization

Một số hô hình ResNet: ResNet-18, ResNet-34, ResNet-50, ResNet-101, …

2.2.5 Một số cơ chế quan trọng 2.2.5.1 Cơ chế CTC

Cơ chế CTC (tên đầy đủ là Connectionist Temporal Classification) lần đầu tiên được giới thiệu vào năm 2006 bởi Graves [13] Ban đầu cơ chế này được sử dụng để nhận dạng giọng nói với dữ liệu là tuần tự theo thời gian Đến khi áp dụng vào bài toán nhận diện chữ thì các ảnh đầu vào được coi là một chuỗi các khung pixel dọc của ảnh Một mạng có đầu ra sẽ dự đoán của mỗi khung, nó cho biết phân phối xác suất của nhãn ở mỗi khung Quy tắc CTC sau đó được áp dụng để chỉnh sửa dự đoán ở mỗi khung thành một chuỗi văn bản Trong quá trình đào tạo, hàm mất mát được tính là tổng logarit âm của xác suất của tất cả các dự đoán có thể trên mỗi khung mà nó sinh một chuỗi mục tiêu bởi quy tắc CTC Do đó CTC là phương pháp có thể đào tạo từ đầu đến cuối chỉ với nhãn ở cấp độ từ mà không cần đến nhãn ở mức ký tự Ứng dụng đầu tiên của CTC trong OCR có thể được tìm thấy trong hệ thống nhận dạng chữ viết tay cũng của Graves vào năm 2008 [14] Sau đó được mở rộng và phát triển với chữ ngoài đời thật như [15]

Điểm mạnh:

• CTC cho thấy được hiệu quả tố và tính ổn định hơn khi sử dụng Điểm yếu:

Trang 34

• Phương pháp CTC rất phức tạp dẫn đến chi phí tính toán lớn đối với những chuỗi văn bản dài

• CTC còn gặp phải các vấn đề liên quan đến vấn đề phân phối đỉnh (the peaky distribution problems) [17] và hiệu quả của nó thường suy giảm khi các mẫu bị lặp lại

• Nhận dạng chữ ngoài tự nhiên còn kém do thiếu thông tin ngữ cảnh

2.2.5.2 Cơ chế Attention

Trước khi đi vào chi tiết cơ chế Attention Chúng ta sẽ cùng tìm hiểu qua một cấu trúc mạng có liên quan lớn đến cơ chế này là cấu trúc Sequence-To-Sequence (Seq2Seq) bao gồm phần Encoder và Decoder

a) Cấu trúc Seq2Seq

Mạng Seq2Seq gồm có 2 phần chính là Encoder và Decoder Trong đó:

+ Bộ mã hoá (Encoder): Sẽ đảm nhiệm việc trích xuất thông tin từ chuỗi đầu vào và cung cấp nó cho Decoder Đầu ra là một vector biểu diễn duy nhất mang toàn bộ thông tin

+ Bộ giải mã (Decoder): Sẽ thực hiện quá trình sinh chuỗi mới từ những thông tin mà Encoder đưa vào.

Hình 2 18 Ví dụ Seq2Seq trong dịch máy

Việc xây dựng mạng Encoder và Decoder này rất đa dạng có thể được xây theo nhiều kiểu kiến trúc mạng như RNN, LSTM, GRU, BiLSTM, tuỳ thuộc từng bài toán

Trang 35

Hình 2 19 Mô hình mạng Encoder-Decoder

b) Cơ chế Attention

Cơ chế chú ý lần đầu tiên được trình bày trong [16] để cải thiện hiệu suất của hệ thống dịch máy bằng mạng thần kinh và phát triển mạnh mẽ trong nhiều ứng dụng Machine Learning và Deep Learning bao gồm cả nhận dạng chữ viết Lý do:

+ Mô hình Seq2Seq với RNN thì với một chuỗi thông tin dài mà Encoder phải nén toàn bộ thông tin vào 1 vector biểu diễn duy nhất, rất khó và sẽ gây ra tình trạng “nghẽn” (bottleneck) làm “quên” thông tin

+ Tại mỗi time-step thì Decoder chỉ nhìn thấy một vector biểu diễn đầu vào duy nhất mặc dù các phần khác nhau của chuỗi vào có thể tốt hơn

Mục đích: Attention được ra đời để giải quyết các vấn đề trên Việc đưa ra các dự đoán, quyết định dựa trên một hoặc nhiều thành phần của thông tin đầu vào (không phải tất cả) Hay nói cách khác là những đặc điểm nổi bật nhất của nó

Cơ chế: Mô hình Seq2Seq khi áp dụng cơ chế Attention vào sẽ có cấu trúc như Hình 1.20

Trang 36

Hình 2 20 Mô hình Seq2Seq áp dụng cơ chế Attention

Các bước thực hiện decoder tại time-step[6]:

+ Bước 1: Nhận vector trạng thái ẩn tại decoder ht và vector trạng thái ẩn của hs.

+ Bước 2: Tỉnh điểm attention Vói mỗi vector trạng thái ẩn của encoder thì ta cần tính điểm thể hiện sự liên quan với vector trạng thái ẩn ht của decoder Cụ thể, ta sẽ áp dụng một phương trình tính “điểm” attention với đầu vào là vector trạng thái ẩn decoder – ht va một vector trạng thái ẩn của encoder ẩn của encoder – hs và trả về một giá trị vô hướng score(ht, hs)

+ Bước 3: Tính trọng số attention Áp dụng hàm softmax với đầu vào là điểm attention:

+ Bước 4: Tính toán vector bối cảnh ct là tổng của các trọng số attention nhân với vector trạng thái ẩn của decoder tại time-step tương ứng:

Trang 37

Cuối cùng, các vector attention at dùng để đưa ra đầu ra được tính dựa trên vector bối cảnh ct và vector

+ Các loại Attention Ta có thể chia các loại Attention theo hàm tính score

Hình 2 21 Một số kiểu Attention

Hình 2 22 Một số kiểu tính score của Attention

Một số ví dụ Attention trong OCR: + Attention OCR:

Trang 38

Hình 2 23 Mô hình Attention-OCR

+ Mô hình CRNN + Attention [16], [20]:

Trang 39

Hình 2 24 Mô hình CRNN + Attention

c) Nhận xét Điểm mạnh:

+ Loại bỏ được sử phụ thuộc về khoảng cách của chuỗi đầu vào và đầu ra

+ Có thể huấn luyện mô hình ở mức từ thay vì ký tự

+ Bản chất các mô hình sử dụng cơ chế attention ngầm được hiểu là mô hình ngôn ngữ và thế nên nó có thể kết hợp với các mô hình ngôn ngữ khác

+ Những năm gần đây, phương pháp tiếp cận dự đoán dựa trên Attention đã vượt trội hơn CTC trong đa số trường hợp

Điểm yếu:

+ Cần nhiều dữ liệu với vốn từ vựng lớn do đối với những chuỗi văn bản dài, cơ chế attention khó để huấn luyện từ đầu do sư sai khác giữa ảnh ban đầu và output của chuỗi văn bản do hiện tượng mất chú ý (the attention drift phenomenon) [21] Với những chuỗi văn bản dài, module attention căn chỉnh (alignment) nhãn cần khả năng lưu trữ và tính toán nhiều.

+ Mô hình có thể không tốt khi gặp những dạng từ khác biệt lớn với tập huấn luyện Ngược lại thì CTC ít phụ thuộc hơn vào các mô hình ngôn ngữ và tốt hơn việc alignment từng pixel ký tự nên nó đọc tốt hơn ở các ngôn ngữ tiếng Trung và tiếng Nhật (những ngôn ngữ có lượng ký tự lớn)

Trang 40

2.2.5.3 Cơ chế NMS

Cơ chế NMS (tên đầy đủ là Non-Maximum Suppression) thường ban đầu được sử dụng trong các bài toán nhận dạng vật thể (object detection) Bởi thông thường đầu ra của các mô hình này sẽ có rất nhiều các khung xác định (bounding box) cho một đối tượng duy nhất Nó làm dư thừa thông tin khi mục tiêu của ta chỉ cần xác định một bounding box cho một đối tượng

Hình 2 25 Ảnh trước và sau khi áp dụng cơ chế NMS

Đầu tiên ta sẽ đề cập đến khái niệm về IOU (Intersection over Union) trước IOU là một chỉ số được sử dụng để đo độ chồng lên nhau giữa 2 bounding boxes

Giả sử ta có 2 boxes với:

• Box 1: tọa độ trái trên là (x1, y1) tạo độ phải dưới là (x2, y2) • Box 2: tạo đọ trái trên là (x3, y4) tạo độ phải dưới là (x4, y4)

Ngày đăng: 04/06/2024, 02:01