nghe có thé hiéu và tiếp cận với thông tin từ một ngôn ngữ khác mà họ không hiểu.Nhận diện ảnh là quá trình tự động xác định và phân loại các đối tượng, mẫu hoặc thuộc tính trong hình ản
Trang 1LÊ QUANG KHÁI - 19521656
LÊ THÀNH HIẾU - 19521498
KHÓA LUẬN TÓT NGHIỆP
UNG DỤNG MÔ HÌNH DEEP LEARNING DE
PHAT TRIEN CONG CU TU DONG DICH TRUYEN
TRANH SONG NGU ANH-VIET
USING DEEP LEARNING MODEL FOR MANGA
Trang 2LỜI CẢM ƠN
Lời đầu tiên chúng em xin chân thành cảm ơn Cô Thái Bảo Trân Trong quá trình
làm khóa luận tốt nghiệp với cô, chúng em đã nhận được sự tâm huyết của cô Cô đã giúp chúng em tích lũy thêm nhiều kiến thức và xác định được hướng đi cho đề tài.
Để hoàn thành khóa luận này một cách tốt nhất, chúng em chân thành các thầy
cô Khoa Hệ thống Thông tin cung cấp cho chúng em kiến thức cùng kỹ năng, góp phần to lớn vào sự hoàn thành của khóa luận.
Kiến thức là vô hạn mà sự tiếp nhận kiến thức của mỗi người là có giới hạn Vì vậy, trong quá trình thực hiện khóa luận không thể tránh khỏi sai sót Chúng em
mong sự góp ý của Thầy Cô dé khóa luận được hoàn chỉnh hơn, giúp chúng em có
nhiều kinh nghiệm hơn trong quá trình học tập và nghiên cứu.
TP Hỗ Chí Minh, ngày tháng năm 2023
Sinh viên thực hiện
Lê Quang Khải Lê Thành Hiếu
Trang 3MỤC LỤC
LOI CAM ON 2
TOM TAT KHOA LUAN 9
Chuong 1 TONG QUAN 0
1.1 _ Dịch thuật và nhận diện 0 1.1.1 Định nghĩa 0
1.1.2 Các phương pháp dịch thuật và nhận diện ảnh 0
1.1.3 Tinh chat và đặc điểm của dịch thuật và nhận diện ảnh 1 1.1.4 Ung dụng của chương trình dịch 3
1.2 Giới thiệu về đối tượng được sử dụng trong chương trình dịch 4
13 Lý do chọn đề tài 5
14 Mục tiêu đề tài 6
Chương 2 CƠ SỞ LÝ THUYÉT 7
2.1 Cac công nghệ sử dụng 7 2.1.1 Web Front End 7
2.1.2 Framework Back End 8 2.1.3 Database 9
Chương 3 PHAN TÍCH THIET KE VÀ THỰC NGHIỆM 51
3.1 Phương pháp áp dung thuật toán 51 3.1.1 Mô hình dich Fairseq 51
Trang 43.3 Thiết kế thành phan dữ liệu
3.4 Thiết kế thành phan xử lý
3.5 _ Giao diện người dùng
Chương 4 KET QUA ĐẠT DUGC VA HƯỚNG PHAT TRIEN
Trang 5DANH MỤC HÌNH ANH
Hình 1 Ảnh manga minh hoa 2-2 2 S2 E£EE£EE+EE£EE+EE£E£EeEEeEkerxerxrree 14
Hình 2 Quy trình Encode và Decode - - << xsvv Hn ngvrg 22 Hình 3 Truncated BackpropagatfIOII - - 5 «+ + 1v ng ng ngư 23 Hình 4 Hiện tượng Gradient Explode - c5 S11 *ksseeerererere 23
Hinh 5 MG himnh LST oe 24
Hình 6 Sự phức tap cua LSTM khi so sánh với RNN cc+-<<s2 24
Hình 7 Kiến trúc TransfOTmT 2-2 £©S£+E£+EE+EE£EEE£EE£EEtEEtEEzEEtExrrxerree 25
Hình 8 Minh hoc Input Embedding - - 5 5s 5+ + kvvEereerreerrereeeske 26
Hình 9 Công thức PE vector va Embedding vector . 5© -«<<<c++ 27 Hình 10 Mô hình Self-Attention - - 5 5 vn ng ng cư 27
Hình 11 Ma trận Atf€entiO' - 2c 1111112211111 vn rec 28
Hình 12 Ma trận Attention sau khi được thực hiện - <‹++++<++ 29
Hình 13 Điểm yếu của Self-Attention 2¿ ¿s¿©++cx++zxzzxerxesrxesrxeee 30
Hình 14 Cơ chế Multi-Attention -2-©2¿22225++2x+EE+2E+Exerxezxezresrxerxerxee 31
Hình 15 Biểu diễn 1 block trong Transformer cscsssesssesstessessseessecstesseessees 31
Hình 16 Đưa các vector encoded qua decođ€T - - 5+ + +++s+sxssssexss 32
Hình 17 Cơ chế mask của de€O(€T 2:- 2 2£ S2S£2££+£++£E£EzE+zxerxersez 32
Hình 18 Quá trình encode - - + 2c 1322111133232 EE*35EESExxxsxe 33
Hinh 19 Qua trinh decode 0n ằ.-.- 33
Hình 20 Quy trình làm việc của PaddleOcr - - 5 555 S5 ++sscsssesssers 35
Hình 21 Đặc điểm kiến trúc và chất lượng của PaddleOCR - 36Hình 22 Chất lượng kiến trúc và các tinh năng của PaddleOCR 37Hình 23 Sự đánh đổi trong thiết kế theo phong cách kiến trúc mô-đun 38Hình 24 So đồ bộ chứa PaddleOCR -.- - - + St+E+EvEEEE+EEEEEESEEEEEkeEerrkrrerrx 40Hình 25 Sơ đồ thành phần PaddleOkr .2 -¿- 52 ©5+225+2x+2z++zx++zxezzxees 41Hình 26 Tổng quan về Mô-đun PaddleOCR, -2 2 2 s+s£+£z+£++zxzsez 41Hình 27 Chế độ xem thoi gian chạy của PaddleOcr - 5 5552552 43
Hình 28 Hình chó và méo được nhận diện trong 6 lưới - -‹+-+ 45
Hình 29 Ma trận phân tích VỊ tTÍ + E2 33x 1S ve rre 47
Hình 30 Quá trình lặp hoán đổi đối tượng bị loại bỏ - 5: 5552552 48
Trang 6Hình 31.
Hình 32.
Hình 33.
Hình 34.
Hình 35.
Hình 36.
Hình 37.
Hình 38.
Hình 39.
Hình 40.
Hình 41.
Hình 42.
Hình 43.
Hình 44.
Hình 45.
Hình 46.
Hình 47.
Hình 48.
Hình 49.
Hình 50.
Hình 51.
Hình 52.
Hình 53.
Hình 54.
Hình 55.
Hình 56.
Hình 57.
Hình 58.
Hình 59.
Hình 60.
ANCHOL DOKES nh 50
Các thư viện cần thiết cho fairseq training 5c 5 sess+s+ 52 Khởi tạo biến và thư mục -c:-c+xccscxxtrrrrtrrrrrrrrrrrrrrrrrrree 53 Spm model training phase - 5 <5 3+ 1E *Eseereseeeererereere 53 Spm model save phase c5 3 13231131111 1EEEErerrvre 53 OUtPUE SPM 0 54
Load model spm va tiễn hành tokenize cccscccscessesssesssesstesseesseessees 54 Load dataset và chia tap fra1n_ f€S( - .- cv eeiee 55 FairSeq PLOPTOCESS 0n 55
Fairseq traiming eceeeeeccsseeeceescceseeeseeecessceessceceseeesaeeeaeseceseesaecesensees 56 Kết qua 10 checkpoint gần nhất của model pre-trained 60
Kết qua sau khi fine-tune ¿c2 z+cxe£x+E2EEeEEeEErEkrrkerkerreee 60 các thư viện cafØÐ 1⁄7 sư <YWm 61
Class MangaComic 0n 63
Danh sách các truyện được hiền thị trong 1 trang - 64
Truy cập vào từng trang truyện bằng BeautifulSoup - 65 Lay thông tin từng truyỆn ¿ 2¿©+++++x++zx++zxerxxerxesrxrrxees 65
Luu thông tin dưới dang file JSON - -.- 5 25 + ++vsseseeseese 65
Danh sách các chapter của 1 truyỆn 5< << £<scsseseres 66
Tiến hành lấy thông tin ảnh của từng chapter -z-ss 66 Ảnh nội dung 1 chap€r - 2-2-5 sSE+EE+EE+EE+EE2E£EeEEerkerkerxrree 67
Hàm download ảnh s1 9319119 1191 HH ng ng ngư 67
Ảnh đã được download c cccsccssssssesssessssessessssesessecersecersessesessveevsveeees 67 Chuan bi Dataset dé tiền hành training -¿ 2©5scs+cxcsz 68
Tao tài khoản RobofÏOW G0101 111112111 g1 1n vn key 68
Tai ảnh lên project trên rObOfÏOW 2c ng se, 69
Tiến hành đánh label cho từng ảnh -2- 2 2 52 +s+£++£szzszs+2 69
Thêm ảnh đã đánh label vào dafasef - 5c ssseeseree 70
Xuất dafaS€(, 2 2c St 22 1211221211121121121111211 211211111 11a 70
Xuất dataset với định dạng YoloVÑ8 ¿c2 sccxczxczrssrxerxcres 71
Trang 7Class Diagram 0m 5 77 Sequence Diagram S€T - - << 2+ 3E ESeEEseeereeeeereerereere 80 Sequence Diagram AmIn - - c5 + xxx v vn ng re 80
I9 1 81
Tập truyện bat Kies ccsecsessessessesscsessessessessessessessesssessesseeseess 81
Trang truyem 011777 53:- 82 Trang Admin quan lý truyỆNn - 6s xe, 82 Trang Admin quản lý người dung . s55 s*++s++sexeseeeeess 83
Trang Admin thêm truyỆN - - - s56 1+3 E3 KESsvEEsseeerseesskee 83 Trang admin cập nhật tình trạng truyỆn 5< «<< <£++ 84 Trang Admin quản lý tap truyỆn - s55 55c ++c+sseeeseeesses 84
Trang 8DANH MỤC BANG
Bang 1 Manga Class 11177 - 78
Bang 2 Ham Manga <6 2 2E 91 E3 911 1 1H như 79
06.00 79 Bang 4 Ham 00 1 79
Trang 9TÓM TÁT KHÓA LUẬN
Đề tài khóa luận xây dựng ứng dụng dịch máy Anh-Việt nhằm phát triển công cụ
tự động dịch truyện tranh nước ngoài Ứng dụng này nhằm giúp người dùng dịch
truyện tranh tiếng Anh sang tiếng Việt một cách tự động, thuận tiện
Đề tài nghiên cứu sẽ tập trung vào việc sử dụng các phương pháp và công nghệ
dịch máy hiện đại Mô hình dịch máy sẽ được xây dựng dựa trên mạng nơ-ron học
sâu và có thé sử dụng kiến trúc mạng nơ-ron biến đối (Transformer) được phát triển
gần đây
Quá trình xây dựng chương trình sẽ bao gồm việc thu thập dữ liệu truyện tranh
nước ngoài và dữ liệu song ngữ Anh-Việt tương ứng Dữ liệu này sẽ được sử dụng
dé huấn luyện mô hình dịch máy và cải thiện khả năng dịch của chương trình
Sau khi xây dựng xong chương trình, sẽ tiến hành đánh giá và kiểm thử để đảm
bảo chất lượng dịch thuật Sử dụng các phương pháp đánh giá chất lượng dịch máy
như BLEU score, từ đó chọn ra mô hình tốt nhất cho bài toán
Kết quả dự kiến của khóa luận là một chương trình dịch máy Anh-Việt có khảnăng dịch truyện tranh nước ngoài tự động tương đối chính xác Chương trình này
có thể được ứng dụng trong việc giúp người đọc tiếng Việt hiểu và tận hưởng các
truyện nước ngoài một cách thuận tiện và nhanh chóng Hơn nữa, ứng dụng còn giúp
nâng cao việc học tiếng anh của người dùng một cách thú vị thông qua việc đọc
truyện tranh.
Nội dung của khóa luận gồm 4 nội dung chính:
Chương 1: GIỚI THIỆU VÀ MÔ TẢ DE TÀI TONG QUAN
Chương 2: CƠ SỞ LÝ THUYET
Chương 3: PHAN TÍCH THỰC NGHIỆM
Chương 4: KET QUA ĐẠT ĐƯỢC VA HƯỚNG PHÁT TRIEN
Trang 10nghe có thé hiéu và tiếp cận với thông tin từ một ngôn ngữ khác mà họ không hiểu.
Nhận diện ảnh là quá trình tự động xác định và phân loại các đối tượng, mẫu hoặc
thuộc tính trong hình ảnh Đề thực hiện việc nhận diện ảnh, thông thường sử dụng
các phương pháp và kỹ thuật trong lĩnh vực trí tuệ nhân tạo và xử lý ảnh Đây là một
nhiệm vụ phức tạp và đa mô phỏng quy trình nhận thức của con người dé nhận biết
và hiểu thông tin trong hình anh
1.1.2 Các phương pháp dịch thuật và nhận diện ảnh
° ‘Phuong phap dich thuat
Dich máy co sở từ dién: Sử dung từ điển và quy tắc ngữ pháp dé dich các cụm từ
hoặc câu đơn giản từ ngôn ngữ nguôn sang ngôn ngữ đích.
Dịch máy dựa trên quy tắc: Sử dụng quy tắc ngữ pháp và ngôn ngữ để xử lý và
dịch câu phức hơn Các quy tắc này có thể được xây dựng thủ công bởi các chuyên
gia hoặc dựa trên các nguyên tắc ngôn ngữ tự nhiên.
Dịch máy dựa trên thống kê: Sử dụng các mô hình xác suất và dữ liệu huấn luyện
để dự đoán các từ và cấu trúc câu trong quá trình dịch Các phương pháp như Môhình ngôn ngữ và Mô hình dịch máy có thể được sử dụng để xây dựng các hệ thốngdịch máy dựa trên thống kê
Dịch máy dựa trên học sâu: Sử dụng các mô hình học sâu như Mạng nơ-ron biên
đôi (Transformer) đê học cách dịch từ và câu trong các ngôn ngữ khác nhau Các mô
Trang 11e Phương pháp nhận diện ảnh
Phân loại hình ảnh: Sử dụng các mô hình học máy như Mạng nơ-ron tích chập
(CNN) để phân loại các đối tượng trong hình ảnh vào các danh mục đã biết trước
Mô hình này được huấn luyện trên dir liệu có nhãn dé nhận diện các đặc trưng đặc
biệt của các đôi tượng khác nhau.
Phát hiện đối tượng: Sử dụng các mô hình như R-CNN, Fast R-CNN, hoặc YOLO
dé xác định vị trí và phát hiện các đối tượng trong hình ảnh Các mô hình này có khảnăng xác định các bounding box và nhãn cho các đối tượng mà chúng tìm thấy
Segmentation (Phân đoạn hình anh): Sử dụng các mô hình như Paddle ORC,
U-Net hoặc Mask R-CNN đề phân đoạn hình ảnh thành các vùng đối tượng riêng biệt
Điều này cho phép nhận diện và xác định đối tượng theo mức độ chi tiết hơn
Mô hình học sâu đa nhiệm: Sử dụng các mô hình như Mạng nơ-ron đa nhiệm dé
két hop cả việc phân loại, phát hiện va phân đoạn đối tượng trong một quá trình nhận
diện hình ảnh duy nhất Điều này giúp tăng hiệu suất và hiệu quả của hệ thống nhận
diện hình ảnh.
1.1.3 Tính chất và đặc điểm của dịch thuật và nhận diện ảnh
e Dịch thuật
Tính chất đa chiều: Dịch thuật là quá trình chuyển đổi giữa hai ngôn ngữ khác
nhau, do đó có tính chất đa chiều trong việc diễn đạt ý nghĩa và cấu trúc ngôn ngữ
giữa ngôn ngữ nguôn và ngôn ngữ đích.
Đòi hỏi kiên thức văn hóa: Dịch thuật không chỉ liên quan đên việc chuyên đôi
từ ngôn ngữ này sang ngôn ngữ khác, mà còn yêu câu hiệu biệt vê văn hóa, phong
tục, ngữ cảnh và sự tương tác giữa ngôn ngữ và văn hóa.
Tính phụ thuộc ngữ cảnh: Mỗi câu, từ và ngữ cảnh trong dịch thuật đều phụ thuộcvào ngữ cảnh của ngôn ngữ nguồn và đích Điều này yêu cầu người dịch hiểu rõ ngữ
cảnh và sử dụng phương pháp dịch phù hợp.
Trang 12Tính sáng tạo: Dịch thuật không chỉ là việc dịch từ ngôn ngữ này sang ngôn ngữ
khác một cách đơn thuần, mà còn yêu cầu khả năng sáng tạo trong việc chọn từ ngữ,cấu trúc câu và bố cục dé truyền đạt ý nghĩa một cách tốt nhất
e Nhận diện ảnh
Phức tạp và đa dạng: Ảnh có thể chứa nhiều đối tượng, vùng quan tâm, và thôngtin phức tạp Điều này đòi hỏi mô hình nhận diện ảnh phải có khả năng phân tích và
nhận biết từng đối tượng, đặc trưng và mối liên hệ giữa chúng
Độ tin cậy va độ chính xác: Nhận diện ảnh đòi hỏi độ tin cậy cao và độ chính xác
trong việc xác định và phân loại các đối tượng trong ảnh Mô hình nhận diện ảnh cần
được huấn luyện và đánh giá kỹ lưỡng để đạt được hiệu suất tốt và giảm thiêu sai
2
sot.
Tính toàn diện: Nhận diện ảnh có thé bao gồm nhiều nhiệm vụ như phân loại,phát hiện, phân đoạn, và nhận biết thuộc tính của đối tượng Điều này đòi hỏi môhình nhận diện ảnh phải có khả năng xử lý và đáp ứng đa dạng các yêu cầu nhận
diện.
Tính thời gian thực: Trong nhiều ứng dụng, nhận diện ảnh phải xảy ra trong thờigian gần như ngay lập tức Ví dụ như trong nhận diện khuôn mặt trong hệ thốnggiám sát an ninh hoặc trong việc điều khiến xe tự hành Điều này đòi hỏi mô hình
nhận diện ảnh phải có khả năng xử lý nhanh và hiệu quả.
Tính khả diễn giải: Nhận diện ảnh đòi hỏi khả năng giải thích và hiểu được lý do
và cơ sở cho việc nhận diện của mô hình Điều này giúp người dùng có thể tin tưởng
vào kết quả nhận diện và đưa ra quyết định dựa trên thông tin được cung cấp
Điều chỉnh và cập nhật: Mô hình nhận diện ảnh cần có khả năng được điều chỉnh
và cập nhật khi có sự thay đổi trong dữ liệu hoặc yêu cầu nhận diện Điều này đảmbao rằng mô hình luôn duy trì hiệu suất cao và đáp ứng được các thay đồi trong môi
trường ứng dụng.
Trang 131.1.4 Ứng dụng của chương trình dịch
Dịch văn bản: Mô hình dịch máy được sử dụng dé dịch các văn bản từ một ngônngữ sang ngôn ngữ khác Điều này hỗ trợ giao tiếp và truyền đạt thông tin giữa các
quôc gia, ngôn ngữ va văn hóa khác nhau.
Dịch website và ứng dụng di động: Mô hình dịch máy có thê được tích hợp vàowebsite hoặc ứng dụng di động dé cung cap khả năng dich tự động cho người dùng.Điều này giúp người dùng truy cập và hiểu thông tin trên các trang web và ứng dụng
mà không cân biêt ngôn ngữ gôc.
Giao tiếp và du lịch: Mô hình dịch máy được sử dụng trong các tình huống giaotiếp trực tiếp, ví dụ như trong du lịch, khi gặp người nói một ngôn ngữ khác Người
dùng có thể sử dụng ứng dụng dịch máy trên điện thoại di động đề dịch các câu, đoạnhội thoại hoặc biên báo
Dịch tài liệu và văn bản chuyên ngành: Mô hình dich máy cũng có thé được sử
dụng dé dich các tài liệu và văn bản chuyên ngành trong lĩnh vực kỹ thuật, y tế, pháp
lý, kinh tế, v.v Điều này giúp tiết kiệm thời gian và công sức trong quá trình dịch
thuật chuyên môn.
Hỗ trợ học tập và nghiên cứu: Mô hình dịch máy có thê hỗ trợ người học và nhà
nghiên cứu trong việc doc và hiéu các tài liệu, bai việt, và công trình nghiên cứu
trong các ngôn ngữ khác nhau Nó cung câp khả năng truy cập kiên thức và thông
tin từ các nguôn tài liệu đa ngôn ngữ.
Phân tích ngôn ngữ và thông tin: Mô hình dịch máy có thé được sử dụng dé phântích và xử lý ngôn ngữ tự nhiên, giúp trích xuất thông tin, tóm tắt văn bản, phân loại
chủ dé, và xử lý ngôn ngữ tự động
Tích hợp trong các sản phẩm công nghệ: Mô hình dich máy có thé được tích hợpvào các sản phẩm công nghệ khác nhau như điện thoại thông minh, thiết bị đeo thôngminh, trình duyệt web, và các ứng dụng trò chuyện, dé cung cap tinh nang dich thuat
cho nguoi ding.
Trang 141.2 Giới thiệu về đối tượng được sử dụng trong chương trình dịch
STILL HE'LL FORGET THE HALLWAY
STANDING AFTER A WHILE, UNTIL SUNSET.
IN THE
Truyện tranh là một hình thức nghệ thuật kế chuyện thông qua các hình ảnh liên
tiếp và văn bản đi kèm Các mô hình dịch máy và nhận diện hình ảnh có thé được áp
dụng để giúp chuyền đổi và hiểu nội dung của truyện tranh từ một ngôn ngữ sang
ngôn ngữ khác, hoặc dé xác định và phân loại các đối tượng, nhân vật, và biểu cảm
trong truyện tranh.
Thông qua việc sử dụng các kỹ thuật và mô hình phân tích ngôn ngữ tự nhiên và
xử lý hình ảnh, chúng ta có thé xây dựng các chương trình dich máy và nhận diệnhình anh đặc biệt đề xử lý truyện tranh Các mô hình này có khả năng hiểu và chuyên
đổi từng khung hình và phân tích nội dung văn bản trong truyện tranh.
Trang 15Ứng dụng của mô hình dịch thuật và nhận diện hình ảnh trong truyện tranh cóthé giúp cho việc dịch truyện tranh từ một ngôn ngữ sang ngôn ngữ khác trở nên dédàng và tự động hơn Ngoài ra, nhận diện hình ảnh cũng giúp phân loại các đối tượng,nhân vật, biểu cảm và sự kiện trong truyện tranh, tạo ra những công cụ hỗ trợ cho
việc nghiên cứu, sáng tạo và trải nghiệm truyện tranh.
1.3 Lý do chọn đề tài
Sự phổ biến của truyện tranh: Truyện tranh và tiểu thuyết là hai hình thức nghệthuật rất phố biến trên toàn thế giới, có sự yêu thích và tiếp cận từ đông đảo người
đọc Dịch thuật và nhận diện trong lĩnh vực này có thể mang lại lợi ích lớn cho việc
truyên tai nội dung và tăng cường trải nghiệm đọc của độc gia.
Khả năng hỗ trợ giao tiếp và truyền đạt thông tin: Dịch thuật và nhận diện truyện
tranh giúp loại bỏ rào cản ngôn ngữ và văn hóa, cho phép độc giả từ các quốc gia vàngôn ngữ khác nhau truy cập và tận hưởng các tác phâm này một cách dễ dàng Điềunày mở rộng khả năng giao tiếp, trao đôi và truyền đạt thông tin giữa các cộng đồng
đa văn hóa.
Sự tiện lợi và tự động hóa: Áp dụng mô hình dịch thuật và nhận diện vào truyệntranh giúp tự động hóa quá trình dich và phân tích nội dung Điều này giúp tiết kiệm
thời gian và công sức của người dùng, đồng thời tạo ra công cụ hữu ích trong việc
tạo ra phiên bản dịch và phân tích nhanh chóng và chính xác.
Tiềm năng ứng dụng rộng rãi: Khả năng dịch thuật và nhận diện truyện tranhkhông chỉ có lợi ích trong việc đọc và truyền tải nội dung, mà còn có thê áp dụng
trong các lĩnh vực như giáo dục, văn hóa, giải trí, nghiên cứu và công nghiệp Đây
là một lĩnh vực có tiềm năng phát triển và tạo ra nhiều giá trị thực tiễn.
Tổng hợp lại, việc chọn đề tài dịch thuật và nhận diện truyện tranh mang lại lợiich trong việc truyền tải nội dung, mở rộng khả năng giao tiếp và truyền dat thôngtin, tiết kiệm thời gian và tự động hóa quá trình, cũng như có tiềm năng ứng dụng
rộng rãi trong nhiêu lĩnh vực khác nhau.
Trang 16cụ hỗ trợ tự động và tiện lợi cho người dùng, mở rộng khả năng giao tiếp và truyền
đạt thông tin giữa các ngôn ngữ và văn hóa khác nhau.
Trang 17Chương 2 CƠ SỞ LÝ THUYET
Nội dung chương 2 nhằm giới thiệu các thuật toán, mô hình, ngôn ngữ và công
cụ được ứng dụng trong đề tài này Đồng thời mô tả phương pháp ứng dụng và hiện
thực chúng vào yêu cau bài toán đặt ra
2.1 Các công nghệ sử dụng
e Công nghệ dịch và nhận diện ảnh
Phạm vi đề tài thử nghiệm trên các công nghệ sau:
- Mô hình dịch Fairseq (Facebook AI)
- Mô hình nhận diện hộp thoại: YOLO
- Mô hình nhận diện ký tự: PaddleOCR
e Môi trường phát triển
- Xây dựng mô hình dịch và nhận diện hình ảnh bằng Python
- Xây dựng giao diện người đùng bằng HTML, CSS, Lavarel, Bootstrap
- Cơ sở dữ liệu: MySQL
- Công cụ quản lý code: Github
- Môi trường thực thi: Visual Studio Code
- Đánh gia mô hình dịch: BLEU score
2.1.1 Web Front End
HTML (HyperText Markup Language): HTML là ngôn ngữ đánh dấu được sửdụng dé xây dựng và cấu trúc các trang web Nó sử dụng các thẻ dé định dang vàhiển thị nội dung trên trang web, bao gồm văn bản, hình ảnh, liên kết và các thànhphần khác
CSS (Cascading Style Sheets): CSS là ngôn ngữ định dạng được sử dụng để tạokiểu cho các phần tử HTML trên trang web Nó giúp điều chỉnh màu sắc, phông chữ,kích thước, định dạng và vị trí của các phần tử, giúp trang web trở nên hấp dẫn hơn
va dé đọc hơn.
Trang 18JavaScript: JavaScript là một ngôn ngữ lập trình phía máy khách (client-side)
thường được sử dụng dé tạo ra các hiệu ứng tương tác trên trang web Nó cho phépbạn thêm các chức năng động như kiểm tra hành vi người dùng, thay đổi nội dung
trang và tương tác với các API khác.
Bootstrap: Bootstrap là một framework CSS được phát triển bởi Twitter, cungcấp các công cụ và tai nguyên dé phát triển các trang web đáp ứng (responsive) vàthân thiện với di động Nó bao gồm một bộ các lớp CSS và JavaScript để xây dựnggiao diện người dùng nhanh chóng và dễ dàng mà không cần viết lại từ đầu.Bootstrap giúp tạo ra các trang web có bố cục chuyên nghiệp và tương thích trênnhiều thiết bị khác nhau
2.1.2 Framework Back End
Laravel là một framework phát trién ứng dụng web được viết bang ngôn ngữPHP Nó được thiết kế dé giúp nhà phát triển xây dựng các ứng dụng web mạnh mẽ
và linh hoạt Laravel tuân theo mô hình MVC (Model-View-Controller) giúp tách
biệt logic xử lý, hiển thị và quản lý dữ liệu trong ứng dụng.
Một số tính năng nỗi bật của Laravel bao gồm:
- Routing: Laravel cung cấp cú pháp đơn giản đề định nghĩa các tuyến đường(routes) và xử lý các yêu cầu HTTP
- ORM (Object-Relational Mapping): Laravel cung cấp Eloquent ORM, giúp
tương tác với cơ sở dữ liệu dé dàng thông qua các đối tượng và quan hệ
- Migration và Seeder: Laravel hỗ trợ quản lý cơ sở dữ liệu thông qua các migration và seeder, giúp xây dựng cơ sở đữ liệu và tạo dữ liệu mẫu một cách dễ
dàng.
- Blade Template Engine: Laravel sử dụng Blade, một công cụ mạnh mẽ dé xay dựng các giao diện người dùng linh hoạt và dé bao trì.
- Bảo mật: Laravel cung câp các công cụ bảo mật như mã hóa, xác thực người
dùng, xử lý CSRF (Cross-Site Request Forgery), và phân quyền
Trang 19- Các gói mở rộng: Laravel có cộng đồng lớn và phong phú, cung cấp nhiều gói
mở rộng dé ang cường chức năng của ứng dụng
Flask là một framework phát triển ứng dụng web được viết bằng ngôn ngữPython Nó nhẹ nhàng và linh hoạt, giúp nhà phát triển xây dựng các ứng dụng webnhanh chóng và dễ dàng Flask không bắt buộc sử dụng mô hình MVC mà cho phéplinh hoạt trong việc tổ chức mã nguồn ứng dụng
Một số tính năng nỗi bật của Flask bao gồm:
- Routing: Flask cung cấp cú pháp đơn giản dé định nghĩa các tuyến đường và xử
lý các yêu cầu HTTP
- Jinja2 Template Engine: Flask sử dụng Jinja2, một công cụ mạnh mẽ dé xây
dựng các giao diện người dùng dựa trên templates.
- Cơ sở đữ liệu: Flask không bao gồm ORM tích hợp nhưng cho phép bạn sửdụng các thư viện Python như SQLAIchemy dé tương tác với cơ sở dit liệu
- Bảo mật: Flask cung cấp các công cụ bảo mật như mã hóa, xác thực người dùng,
và xử lý CSRF.
- Mở rộng: Flask có một cộng đông lớn và nhiêu gói mở rộng (extensions) dé
thêm chức năng như đăng nhập, gửi email, xử lý form, và nhiều hơn nữa
2.1.3 Database
MySQL là một hệ quan tri cơ sở dir liệu quan hệ ma nguồn mở (open-source)phô biến Nó được phát triển bởi Oracle Corporation MySQL được sử dụng đề lưu
trữ và quan ly dit liệu trong các ứng dụng web và các hệ thống thông tin khác
MySQL tuân theo mô hình quan hệ, trong đó dit liệu được tô chức thành các bảng
có mối quan hệ với nhau thông qua các khóa ngoại (foreign keys) Nó sử dụng ngônngữ truy van cấu trúc (Structured Query Language - SQL) dé tương tác với cơ sở dit
liệu.
MySQL có nhiều đặc điểm và lợi ích như sau:
Trang 20+ Tốc độ và hiệu suất: MySQL được tối ưu hóa đề đạt hiệu suất cao và xử lý dữ
liệu nhanh chóng Nó có khả năng xử lý hàng ngàn truy vẫn mỗi giây và hỗ trợ cấuhình dé tăng tốc độ truy xuất dữ liệu
+ Độ tin cậy: MySQL có tính đồng nhất và độ tin cậy cao Nó có khả năng tự
động khôi phục dữ liệu trong trường hợp xảy ra sự cố và hỗ trợ các tính năng bảo
mật và sao lưu dữ liệu.
+ Tính mở rộng: MySQL có kha năng mở rộng với khối lượng dit liệu lớn Nó
hỗ trợ các tính năng như phân vùng (partitioning), sao lưu nâng cao và phân tán cơ
sở dit liệu dé giải quyết các van dé về tăng trưởng dữ liệu
+ Hỗ trợ chuẩn SQL: MySQL tuân thủ các tiêu chuân SQL phô biến và cung cấpcác tính năng như truy vấn, sắp xếp, lọc và kết hợp dữ liệu theo cách tiêu chuẩn
+ Hỗ trợ đa nền tảng: MySQL có thê chạy trên nhiều nền tảng khác nhau nhưWindows, Linux, macOS và các hệ điều hành khác, cho phép bạn triển khai và chạy
cơ sở đữ liệu trên nên tảng mà bạn chọn.
MySQL được sử dụng rộng rãi trong các ứng dụng web và hệ thống thông tin, từcác trang web cá nhân cho đến các hệ thống quy mô lớn Nó là một công cụ quantrọng để lưu trữ, truy xuất và quản lý đữ liệu trong các ứng dụng phức tạp
2.2 Web Crawler
e Seleium
Selenium là một thu viện phô biến trong lĩnh vực tự động hóa trình duyệt web.
Nó cung cấp một API cho việc tương tác với các trình duyệt web như Chrome,
Firefox, Safari, Edge và Opera Selenium cho phép bạn điều khiến và kiểm soát trìnhduyệt web một cách tự động, thực hiện các tác vụ như điều hướng đến các trang web,
điền vào biéu mẫu, nhấp chuột, thu thập dữ liệu và kiểm tra giao diện người dùng.
Thư viện Selenium được viết bằng ngôn ngữ Python, nhưng nó cũng hỗ trợ cácngôn ngữ khác như Java, C#, Ruby và JavaScript thông qua các trình điều khiển(drivers) tương ứng Các trình điều khiển này là những phan mở rộng cho Selenium,
cho phép nó tương tác với các trình duyệt web khác nhau.
Trang 21Có ba thành phần chính trong Selenium:
+ Selenium WebDriver: Đây là thành phần chính của Selenium và cung cấp API
dé tương tác với trình duyệt web Bạn có thé sử dụng WebDriver dé điều khiển trìnhduyệt, thực hiện các hành động như click, gõ phím, điều hướng trang web và lay ditliệu từ các phần tử trên trang
+ Selenum Grid: Đây là một công cụ cho phép bạn chạy các bài kiểm tra
Selenium song song trên nhiều máy tính và trình duyệt khác nhau Nó giúp tăng tốc
quá trình kiêm thử và đảm bảo tính nhât quán của ứng dụng trên nhiêu môi trường.
+ Selenium IDE: Day là một công cụ ghi và phát lại các hành động trên trình
duyệt web Selenium IDE giúp tạo các kịch bản kiểm thử tự động một cách dễ dàng
băng cách ghi lại các hành động người dùng trên trình duyệt
Selenium rất phô biến trong việc tự động hóa kiểm thử ứng dụng web, giúp tăng
tốc quá trình kiêm thử và đảm bảo tính ổn định và chính xác của ứng dụng Ngoài
ra, Selenium cũng có thé được sử dụng cho các mục đích khác như tự động hóa các
tác vụ web và cào dữ liệu từ các trang web.
e Beautiful Soup
Beautiful Soup là một thư viện Python phô biến và mạnh mẽ được sử dung déphân tích cú pháp và trích xuất dữ liệu từ các tài liệu HTML và XML Nó cung cấpmột giao diện dễ sử dụng dé truy cập vào các thành phần của tài liệu web, như thẻHTML, văn bản, các liên kết và các thuộc tính
Đây là một số tính năng quan trọng của Beautiful Soup:
+ Phân tích cú pháp: Beautiful Soup cho phép bạn phân tích cú pháp các tài liệu
Trang 22+ Tìm kiếm linh hoạt: Beautiful Soup cung cấp các phương thức tìm kiếm linhhoạt để lọc dữ liệu dựa trên các tiêu chí như tên thẻ, lớp CSS, id và nội dung cuaphần tử Điều này cho phép bạn tìm kiếm và trích xuất dữ liệu một cách nhanh chóng
và dễ dàng.
+ Xử lý lỗi và dữ liệu không chuẩn: Beautiful Soup được thiết kế dé xử lý các tài
liệu không chuẩn và lỗi Thư viện này cố gắng khôi phục các lỗi cú pháp và giúp bantruy cập dữ liệu một cách linh hoạt, ké cả khi tài liệu không hoàn chỉnh hoặc bị lỗi
2.3 Cac mô hình được áp dụng trong ứng dụng
2.3.1 Mô hình dịch Fairseq
Giới thiệu
Trước đây hầu hết các tác vụ xử lý ngôn ngữ tự nhiên, đặc biệt là dịch máy(Machine Translation) sử dụng kiến trúc Recurrent Neural Networks (RNNs) Điểm
yếu của phương pháp này là rất khó bắt được su phụ thuộc xa giữa các từ trong câu
và tốc độ huấn luyện chậm do phải xử lý input tuần tự Transformers sinh ra dé giảiquyết 2 vấn đề này; và các biến thể của nó như BERT, GPT-2 tạo ra state-of-the-art
mới cho các tác vụ liên quan đên NLP.
Trang 23Mô hình Sequence-to-Sequence nhận input là một sequence và trả lai output cũng
là một sequence Vi dụ bài toán Q&A, input là câu hỏi "how are you ?" và output là
câu trả lời "I am good" Phương pháp truyền thống sử dụng RNNs cho ca encoder(phần mã hóa input) và decoder (phần giải mã input và đưa ra output tương ứng).Điểm yếu thứ nhất của RNNs là thời gian train rất chậm, đến mức người ta phải sửdụng phiên bản Truncated Backpropagation đề train nó Mặc dù vậy, tốc độ train vẫnrất chậm do phải sử dụng CPU, không tận dụng được tính toán song song trên GPU
Truncated Backpropagation through time
(TL
Hình 3 Truncated Backpropagation
Điểm yếu thứ hai là nó xử lý không tốt với những câu dài do hiện tượng GradientVanishing/Exploding Khi số lượng units càng lớn, gradient giảm dần ở các unitscuối do công thức Đạo hàm chuỗi, dẫn đến mắt thông tin/sự phụ thuộc xa giữa các
units.
Decay of information through time
Timet=0 Time†=l Timet=2 Timet=3 Timet=4 Timet=5 Timet=6 Time t = 100
Trang 24Ra đời năm 1991, Long-short Term Memory (LSTM) cell là một biến thé củaRNNs nhằm giải quyết vấn đề Gradient Vanishing trên RNNs LSTM cell có thêm
một nhánh C cho phép toàn bộ thông tin di qua cell, giúp duy tri thông tin cho những câu dai.
Trang 25Vậy dé tận dụng kha năng tính toán song song của GPU dé tăng tốc độ train cho
các mô hình ngôn ngữ, đồng thời khắc phục điểm yếu xử lý câu dài Transformers
Trang 26lúc; và sẽ không còn khái niệm timestep trong Transformers nữa Vậy cơ chê đã thay
thế cho su "recurrent" của RNNs, đó cính là Self-Attention
Hinh 8 Minh hoa Input Embedding
May tính không hiéu câu chữ ma chi đọc được sô, vector, ma trận; vì vậy ta phải
biểu diễn câu chữ dưới dạng vector, gọi là input embedding Điều này đảm bảo các
từ gân nghĩa có vector gân giông nhau Hiện đã có khá nhiêu pretrained word
embeddings như GloVe, Fasttext, gensim Word2Vec, cho bạn lựa chọn.
Y Positional Encoding
Word embeddings phan nào cho giúp ta biểu diễn ngữ nghĩa của một từ, tuy nhiên
cùng một từ ở vi trí khác nhau của câu lại mang ý nghĩa khác nhau Đó là ly do
Transformers có thêm một phan Positional Encoding dé inject thêm thông tin về vị
trí của một từ.
PE(pos,2i) )=sin(pos/100002i/dmodel)
PE(pos,2i+1)=cos(pos/100002i/dmodel)
Trong đó PE(pos,2i) là vị tri của từ trong câu, PE là giá trị phan tử thứ i trong
embeddings có độ dài model Sau đó ta cộng PE vector va Embedding vector.
Trang 27Embedding Vector Encoding of
of "Dog” position in sentence Embedding of Dog
(with context info)
PE(pos,2i) = sin(pos /100007*/ 4")
PE (pos,38+1) = cos(pos /10000?*/4»«")
Hình 9 Công thức PE vector va Embedding vector
Y Self-AttentionTM
Self-Attention là co chế giúp Transformers "hiéu" được sự liên quan giữa các từ
trong một câu Ví dụ như từ "kicked" trong cau "I kicked the ball" (tôi đã đá quả
bóng) liên quan như thế nào đến các từ khác? Rõ ràng nó liên quan mật thiết đến từ
"I" (chủ ngữ), "kicked" là chính nó lên sẽ luôn "liên quan mạnh" và "ball" (vị ngữ).
Ngoài ra từ "the" là giới từ nên sự liên kết với từ "kicked" gần như không có
Self-Attention
| kicked the ball
Who Did what?
| kicked the ball
Hình 10 Mô hình Self-Attention
Trang 28Quay trở lại với kiến trúc tổng thé ở trên, có thé thấy đầu vào của các module
Multi-head Attention (bản chất là Self-Attention) có 3 mũi tên, đó chính là 3 vectors
Querys (Q), Keys (K) va Values (V) Từ 3 vectors này, ta sẽ tính vector attention Z
cho một từ theo công thức sau:
Q-KT?
Z = softmax | —————————————————_———_—_ | -V
/ Dimension of vector Q, K or V
Công thức nay khá don giản, nó được thực hiện như sau Dau tiên, dé có được 3
vectors Q, K, V, input embeddings được nhân với 3 ma trận trọng sỐ tương ứng
(được tune trong quá trình huấn luyện) WQ, WK, WV
Input Thinking Machines
Lúc nay, vector K đóng vai tro như một khóa đại diện cho từ, và Q sé truy van
đên các vector K của các từ trong câu băng cách nhân chập với những vector này.
Mục đích của phép nhân chập đê tính toán độ liên quan giữa các từ với nhau Theo
đó, 2 từ liên quan đên nhau sẽ có "Score" lớn và ngược lại.
Trang 29Bước thứ 2 là bước "Scale", đơn giản chi là chia "Score" cho căn bậc hai của số
chiều của Q/K/V (trong hình chia 8 vì Q/K/V là 64-D vectors) Việc này giúp cho
giá tri "Score" không phụ thuộc vào độ dài cua vector Q/K/V.
Bước thứ 3 là softmax các kết quả vừa rồi dé đạt được một phân bố xác suất trên
các từ.
Bước thứ 4 ta nhân phân bồ xác suất đó với vector V dé loại bỏ những từ không
cần thiết (xác suất nhỏ) và giữ lại những từ quan trọng (xác suất lớn)
Ở bước cuối cùng, các vectors V (đã được nhân với softmax output) cộng lại với
nhau, tạo ra vector attention Z cho một từ Lặp lại quá trình trên cho tat cả các từ ta
được ma trận attention cho 1 câu.
Input Thinking Machines
Trang 30vx Multi-head Attention
Van đê của Self-attention là attention của một từ sẽ luôn "chú ý” vào chính nó Điêu nay rat hợp lý thôi vì rõ ràng "nó" phải liên quan đên "nó" nhiêu nhât Vi dụ như sau:
The ae big red dog
big —> The(bi® red dog
red — The big @ dog
Hinh 13 Diém yếu cua Self-Attention
Nhung vì không mong muốn điều này, thay vào đó là sự tương tác giữa các từ
khác nhau trong câu Tác giả đã giới thiệu một phiên bản nâng cấp hơn của attention là Multi-head attention Ý tưởng rất đơn giản là thay vì sử dụng 1 Self-
Self-attention (1 head) thi sử dụng nhiều Attention khác nhau (multi-head) và biết đâumỗi Attention sẽ chú ý đến một phần khác nhau trong câu
Vi môi "head" sẽ cho ra một ma trận attention riêng nên phải concat các ma trận này và nhân với ma trận trọng sô WO dé ra một ma trận attention duy nhat (weighted
sum) Và tất nhiên, ma trận trọng số này cũng được tune trong khi training
Trang 311) Concatenate all the attention heads 2) Multiply with a weight
matrix VV" that was trained jointly with the model
trong Transformers cho phép thông tin đi qua sub-layer trực tiếp Thông tin này (x)
được cộng với attention (z) cua nó và thực hiện Layer Normalization.
> Add & Normalize
Trang 32w Feed Forward
Sau khi được Normalize, các vectors z được đưa qua mang fully connected trước
khi day qua Decoder Vì các vectors này không phụ thuộc vào nhau nên có thé tận
dụng được tính toán song song cho cả câu.
¥ Masked Multi-head Attention
Giả sử muốn Transformers thực hiện bài toán En glish-France translation, thi côngviệc của Decoder là giải mã thông tin từ Encoder và sinh ra từng từ tiếng Pháp dựatrên những từ trước đó Vậy nên, nếu sử dụng Multi-head attention trên cả câu như
ở Encoder, Decoder sẽ "thay" luôn từ tiếp theo mà nó can dịch Dé ngăn điều đó, khi
Decoder dịch đến từ thứ i, phần sau của câu tiếng Pháp sẽ bị che lại (masked) va
Decoder chỉ được phép "nhìn" thấy phần nó đã dịch trước đó
Self
Attention
Le _ đệ gros chien rouge
gros —> Legis chien rouge
chien > Le grô8⁄€liỂ8 rouge
rouge Legros
Trang 33Y Quá trình decode
Quá trình decode về cơ bản là giống với encode, chỉ khác là Decoder decode từng
từ một và input của Decoder (câu tiếng Pháp) bị masked Sau khi masked input đưa
qua sub-layer #1 của Decoder, nó sẽ không nhân với 3 ma trận trọng số dé tạo ra Q,
K, V nữa mà chỉ nhân với 1 ma trận trọng số WQ K và V được lấy từ Encoder cùng
với Q từ Masked multi-head attention đưa vào sub-layer #2 và #3 tương tự như
Encoder Cuối cùng, các vector được day vào lớp Linear (là 1 mạng Fully Connected)theo sau bới Softmax đề cho ra xác suất của từ tiếp theo
Hai hình dưới đây mô tả trực quan quá trình Transformers encode và decode
Decoding time step:(1) 2 3456 OUTPUT
EMBEDDINGS [ES HS IEEEI
INPUT e suis étudiant
EMBEDDINGS ES HS EEEEI foo
INPUT Je suis étudiant PREVIOUS
OUTPUTS
Hình 19 Quá trình decode
Trang 34Thư viện Fairseq là một thư viện mã nguồn mở được phát trién bởi nhóm nghiên
cứu Facebook AI N6 cung cấp các công cụ và mô hình dé thực hiện nhiều nhiệm vụliên quan đến xử lý ngôn ngữ tự nhiên (NLP) như dịch máy, phân loại văn bản, và
sinh văn bản.
Fairseq tập trung vào việc triển khai các mô hình mạng nơ-ron dựa trên kiến trúc
transformer, một kiến trúc nồi tiếng trong lĩnh vực NLP Transformer được giới thiệu
trong bai báo "Attention is All You Need" của Vaswani et al vào năm 2017, và đã
trở thành một trong những tiêu chuẩn trong các nhiệm vụ NLP
Fairseq cung cap các thành phân cân thiệt đê xây dựng, huân luyện va sử dụng các mô hình dựa trên transformer Thư viện này cung câp các công cụ đê xử lý dữ liệu ngôn ngữ tự nhiên, xây dựng các mô hình mã hóa-giải mã (encoder-decoder), triên khai các kiên trúc attention và tôi ưu hóa huân luyện mô hình.
Ngoài ra, Fairseq cũng hỗ trợ việc triển khai các mô hình pre-trained nổi tiếng
trong NLP như BERT và RoBERTa, cho phép người dùng tận dụng sức mạnh của
những mô hình đã được huấn luyện trên dit liệu lớn trước đó.
Fairseq là một thư viện phổ biến trong cộng đồng NLP, được sử dụng rộng rãitrong nghiên cứu và công nghiệp dé xây dựng và trién khai các mô hình dựa trên
transformer cho các nhiệm vụ NLP khác nhau.
2.3.2 Mô hình nhận diện ký tự Paddle OCR"!
Thư viện PaddleOCR là một thư viện mã nguồn mở được phát triển bởiPaddlePaddle, một nền tảng học máy mã nguồn mở được phát triển bởi Baidu.PaddleOCR cung cấp các công cụ và mô hình dé thực hiện nhận dang ký tự quang
học (OCR) trong các hình ảnh và video.
PaddleOCR có thé nhận dang văn bản trong hình ảnh chứa nhiều ngôn ngữ khácnhau Nó hỗ trợ nhiều nhiệm vụ OCR như nhận dạng ký tự đơn giản, đọc số điện
thoại, nhận dạng biển số xe, trích xuất thông tin từ thẻ ID, và nhiều nhiệm vụ khác
liên quan đên xử lý văn bản.
Trang 35Thư viện PaddleOCR cung cấp các mô hình dựa trên deep learning, bao gồm các
mô hình kiến trúc CNN và transformer, để xử lý và nhận dạng văn bản trong hìnhảnh Nó cung cấp các công cụ dé huấn luyện lại mô hình trên dữ liệu tùy chỉnh, giúpngười dùng tùy chỉnh và tăng cường khả năng nhận dạng theo nhu cầu của họ
PaddleOCR cũng hỗ trợ triển khai các mô hình nhận dạng ký tự trên nền tang di
động và vi xử lý nhúng, cho phép tích hợp dễ dàng vào các ứng dụng di động và hệ
thống nhúng
Thư viện PaddleOCR đã nhận được sự quan tâm và sử dụng rộng rãi trong cộng
đồng AI và ứng dụng thực tế, nhờ vào hiệu suất và khả năng nhận dạng văn bản tốt
và phân tích, chúng tôi tin rằng PaddleOCR sử dụng cả hai mô hình này và đạt được
sự tích hợp tuyệt vời.
Trang 36Như bạn có thé tưởng tượng dễ dàng, khi PaddleOCR nhận được một bức anh,
nó không thê xác định ngôn ngữ, hướng hoặc vị trí của các ký tự Đầu tiên, các kỹ
sư của Baidu chia quy trình xử lý một bức ảnh thành các bước nhận dạng văn bản,
phân loại hướng và nhận dạng, trong đó mô hình ống dẫn và bộ lọc hoạt động Nhữngnhà phát triển này cũng thiết kế và điều khiển các mô hình đa dạng tương ứng vớinguồn tri thức trong bang den dé thu được một giải pháp xấp xỉ với các thuật toánkhác nhau Bằng cách sử dụng hai mô hình này, PaddleOCR chuyên đổi dữ liệu gốc
(ảnh) thành cấu trúc nâng cao (văn bản)
Hơn nữa, trong PaddleOCR, các thuật toán đa dang được áp dụng dé giải quyết
một bài toán cụ thé như nhận dạng văn bản Cơ chế của mô hình bang đen hoàn hảo
đáp ứng nhu cầu áp dụng nhiều thuật toán để giải quyết một bài toán cụ thể Nhưđược thê hiện trong hình đưới đây, mỗi đơn vị tham gia trong mô hình này có chuyênmôn và tri thức giải quyết riêng (nguồn tri thức) có thể áp dụng cho một phần củabài toán Bảng đen cho phép nhiều quy trình (hoặc đơn vị) giao tiếp với cơ sở dữ liệu
toàn cục bang cách đọc và ghi yêu cầu và thông tin Các đơn vị giao tiếp chặt chẽ
thông qua một bang đen chung mà nội dung của nó có thé nhìn thấy bởi tất cả các
đơn vị Giống như bảng đen trong lớp học, khi một bài toán cụ thể cần được giải
quyết, các đơn vị ứng viên có thê xử lý nó được liệt kê Cơ chế đã đề cập không chỉcho phép các thuật toán sử dụng kết quả của nhau mà còn giúp PaddleOCR chọn rakết quả tốt nhất giữa nhiều thuật toán trong một bước
Solution Blackboard |
Font Candidates
Language Candidates
Characters Word Hypothese Word Boxes Subword Boxes
Aribiter/Control
Control Interaction between KnowledgeSource and the Blackboard
Punctuation
Tools Knowledge Sources
+ Text Line Detector ị + Font & Language Confidence
+ Font Reconizer - : » Statistical Features(Line Height, Space
* Language Recognizer : Width, Pen Width, Base Line Position)
« Base-Line Detector E—————> e Confusion Matrix
- Dot Remover ị « Character Direction
- Segmentor « Sign & Dots Info
5 Overlap Detector « Word Dictionary
- Classifiers * Segmentation and Recognition Results
1 SpellChecker - + Overlap Info
Trang 37e_ Mô hình kiến trúc Tricky
‘Multi-language
Paddle :
' Multi- OCR :
‘direction Quality :
DiverseData Changeability & Team Problem
-Sources | Maintainablity Solving
Archite-cture
Physically-Distributed
Environments
Từ quan điểm về các đặc điểm mẫu, các kiến trúc bảng đen và ống dẫn và bộ lọc
chia sẻ khái niệm cốt lõi là tách biệt các thành phần, điều này trang bị cho
PaddleOCR kha năng tái sử dụng, bảo trì và thay đổi dé mở rộng thêm Hình trên là
phân tích của chúng tôi về những phẩm chất chính của PaddleOCR do kiến trúc cung
cap.
Về mặt các lựa chọn trong thiết kế kiến trúc, minh họa trong hình bên dưới Sự
thỏa hiệp chính là giữa độ chính xác và tốc độ Trong mô hình bảng đen, nhiều thuật
toán được áp dụng dé xử lý dữ liệu và thu được kết quả tối ưu, đảm bảo chất lượng
và tính ôn định của giải pháp
Lợi ích về hiệu suất trong mô hình ống dẫn và bộ lọc thông qua xử lý song song
thường chỉ là một ảo tưởng Không chỉ chi phí chuyên đổi dữ liệu giữa các bộ lọc có
thé tuong đối cao so với chi phí tính toán, mà bộ lọc chậm nhất cũng xác định tốc độ
của toàn bộ ống dẫn.
Trang 38Tất cả các đặc điểm kiến trúc trước đây mang lại gánh nặng tính toán và hiệu suất
thấp, hạn chế thời gian phản hồi Nhà phát triển của Baidu không chi áp dụng mộtthuật toán đề tránh loại lãng phí này, mà còn tập trung vào cải tiến thuật toán Nóicách khác, điểm hạn chế trong kiến trúc được bù đắp bằng các thuật toán và mã nângcao, đòi hỏi sự tận tụy lớn từ phía nhà phát triển Trong paper1, chúng tôi thay rằngcác nhà phát triên PaddleOCR đã thành công đề xuất một mô hình siêu nhẹ chi 8.4
MB, đạt được sự cân băng giữa tốc độ và độ chính xác
Hơn nữa, PaddleOCR có thể được đơn giản coi là một công cụ xử lý dtr liệu vớiảnh đầu vào và văn bản đầu ra thay vì một phần mềm tương tác cao Sự tương tác
yếu là điểm yếu của kiến trúc bảng đen và ống dẫn và bộ lọc Tuy nhiên, điều này
không gây phiền hà cho người dùng PaddleOCR vì họ chỉ cần nhận được văn bản
dau ra.
Self- >> Trade-off “Complex Control»
Development ` Strategy Design ~
Optimal >» | Seperate
Result | Components Reusability
Non- Enormous Trade-off Deterministic Knowledge Trade-off
ye Algorithms Sources
ˆ Hard to Test ` | Multiple Algorithms lew
ÀNG -ế | for one solution | \ Efficiency ’
‘Fault Tolerance& © Computational `
Robustness _Trade-off _ Overheads “
Hình 23 Sự đánh đổi trong thiết kế theo phong cách kiến trúc mô-ẩun
e _ Thiết kế mô hình kiến trúc
Sau khi mô tả về kiểu kiến trúc chính của hệ thống Paddle OCR, chúng em sử
dụng một phần của mô hình C4 dé trực quan hóa cấu trúc kiến trúc, từ hai khía cạnh
- các đôi tượng và thành phan Mô hình C4 phản ánh ý tưởng chính của hệ thong
phân mêm.
Trang 39Vùng chứa: máy chủ và thiết bị di động.
Trước tiên, chúng tôi giới thiệu sơ đồ container của hệ thống phần mềmPaddleOCR Hiện tại, PaddleOCR có hai bản triển khai - máy chủ và di động Dựa
trên các bản triên khai này, chúng tôi vẽ các sơ đô container.
Phan bên phải của sơ đồ là quy trình huấn luyện mô hình, người dùng có thê cungcấp từ dién riêng và chuyên đổi định dang dit liệu bằng cách sử dụng các tập lệnh
Python được cung cấp Người dùng cũng được phép chọn bộ dir liệu Iedar2015 dé
huấn luyện mô hình Sau khi nhập tập huấn luyện, mô hình sẽ tính toán lỗi và truyền
nó cho bộ tối ưu hóa, trong khi người dùng có thể điều chỉnh siêu tham số trong bộtối ưu hóa dé điều khiển tốc độ học, chính quy hóa và tối ưu hóa ham mat mát Và
bộ tối ưu hóa sẽ truyền các tham số ước lượng tối ưu cho mô hình huấn luyện Khi
đã có mô hình được huấn luyện hoàn chỉnh, có thé triển khai mô hình đã huấn luyệnlên máy chủ PaddleHub hoặc thiết bị đi động
Phần bên trái của sơ đồ tập trung vào triển khai trên di động và máy chủ Lite được sử dụng cho việc triển khai trên di động, có thể nhận kết quả dự đoán trênđiện thoại di động Vì vẫn chuyển mô hình suy luận vào thiết bi di động, chúng em
Paddle-có thê tải xuống mô hình suy luận từ thư viện hoặc sử dụng mô hình đã huấn luyện
Người dùng được phép đây các hình ảnh góc lên thiết bị di động, sau đó chỉ nhận kết
quả văn bản.
Ngược lại với chất lượng siêu nhẹ của PaddleOCR, triển khai trên máy chủ được
thiết kế để có tốc độ nhận dạng nhanh hơn và tính toán từ xa, người dùng có thể gửi
ảnh dưới dạng yêu cầu dự đoán và nhận kết quả từ máy chủ Hub Đường kẻ cham
mau xanh biéu thị ứng dụng di động có thé không bao gồm mô hình suy luận nhưng
người dùng có thé sử dung mô hình trong máy chủ
Trang 40Am `
% Provide traning data set
Retum prediction - “2 aed ôn tothatUareRiihetLBil
aig 2-77 inputimages “Send prediction, +” 4 : {Data format transformer (.py)j
se pe) requests ¢”, ¢ Return prediction Ric
= =a Se +> *—— results `
h2 an /
PaddieHub Server [ Self-trained Model
Mobile Application i [Container: PaddleHub]
[Container:
Andorid and IOS joe packages:
a devices} é n nition and two
| Download inference Inference Model Traning Model Optimize the
' model [Container: Python] [Container: Python] training model {Container: Python]
Trained by user or downloaded Providelfully-lrained The detection model of Leaming rate, regularization
from library by User PaddieOCR hà cà and optimization
Máy chủ PaddleHub bao gồm các thành phần phát hiện, phân loại góc và nhận
dạng So với việc triển khai trên máy chủ, ứng dụng di động không cần những thành
phần này
Từ quan điểm của thành phan, việc triển khai trên thiết bi di động không có mô
hình suy luận, không thể được sử dụng cho việc nhận dạng văn bản cục bộ, nhưng
cung cấp giao diện người dùng và lưu trữ hình ảnh Công mạng xây dựng một kênh
truyền thông giữa người dùng và máy chủ
Đối với mô hình huấn luyện, phân tích lỗi trả về kết quả cho thành phần mô hình
hóa và hướng dẫn cách điều chỉnh tham số Một kết quả đánh giá mô hình sẽ được
tạo ra thông qua đường dẫn kiểm tra