TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu về đề tài
1.1.1 Sự tiện lợi của công cụ dịch thuật và lí do chọn đề tài:
Trong thời đại quốc tế hóa, nhu cầu tiếp cận tài liệu và phương tiện giải trí bằng ngôn ngữ nước ngoài ngày càng tăng Tuy nhiên, với sự phát triển của công nghệ 4.0, người dùng không còn lo lắng về rào cản ngôn ngữ nhờ vào các công cụ dịch thuật tiện lợi Chỉ cần một bức ảnh, chẳng hạn như một trang manga, và một thiết bị kết nối internet, người dùng có thể dễ dàng hiểu nội dung mà không cần biết ngôn ngữ gốc.
Một số ưu điểm của việc dịch manga trực tuyến có thể kể đến như sau:
Người dùng có thể dễ dàng truy cập nội dung trong bức ảnh chỉ với một chiếc điện thoại di động hoặc laptop và thực hiện vài thao tác đơn giản.
- Tiện lợi: Có thể thay thế cho việc sử dụng từ điển để dò và dịch một cách thủ công
Với tiềm năng và tính tiện dụng nổi bật, chúng tôi quyết định phát triển một ứng dụng nhằm cải thiện trải nghiệm đọc manga, giúp người dùng dễ dàng tiếp cận và thưởng thức thể loại này hơn.
Khảo sát các ứng dụng hỗ trợ dịch manga hiện nay
Hiện nay, một số trang web dịch thuật nổi bật như IchigoReader và Cotrans thu hút sự chú ý nhờ giao diện thân thiện và chức năng tương đồng Tuy nhiên, các trang web này cũng tồn tại nhược điểm là có những tính năng không cần thiết, cần được lược bỏ để mang lại sự đơn giản và tiện lợi cho người dùng, đồng thời không hoàn toàn miễn phí.
Đối tượng nghiên cứu
Người dùng có nhu cầu dịch ảnh, manga
CƠ SỞ LÝ THUYẾT
React JS
ReactJS, một thư viện JavaScript mã nguồn mở do Facebook phát triển và ra mắt vào năm 2013, cho phép xây dựng các tương tác với các thành phần trên website Điểm nổi bật của ReactJS là khả năng render dữ liệu không chỉ trên tầng Server mà còn trên Client, mang lại hiệu suất và trải nghiệm người dùng tốt hơn.
ReactJS là thư viện JavaScript hỗ trợ các lập trình viên trong việc phát triển giao diện người dùng (UI) Trong lập trình ứng dụng front-end, các nhà phát triển chủ yếu tập trung vào hai yếu tố chính: thiết kế UI và xử lý tương tác của người dùng.
Các ưu điểm chính của React JS đối với phát triển UI:
● Phát triển ứng dụng di động
Typescript
TypeScript là một ngôn ngữ mã nguồn mở có liên quan đến JavaScript, được thiết kế nhằm hỗ trợ phát triển các dự án ứng dụng quy mô lớn và phức tạp.
TypeScript là phiên bản nâng cao của JavaScript, cung cấp nhiều chức năng tiện lợi và cải tiến, khắc phục các điểm yếu của JavaScript như hỗ trợ lớp hướng đối tượng và kiểu tĩnh Ngoài ra, TypeScript còn tương thích tốt với các ứng dụng sử dụng Angular2 và Node.js.
● Thao tác nhanh chóng và đơn giản
● Giảm tỷ lệ mắc lỗi hệ thống
● Hợp nhất mã đơn giản
● Hỗ trợ tối ưu hóa quy trình làm việc
Python
Python là ngôn ngữ lập trình phổ biến trong phát triển ứng dụng web, phần mềm, khoa học dữ liệu và máy học Với tính hiệu quả, dễ học và khả năng chạy trên nhiều nền tảng, Python thu hút nhiều nhà phát triển Phần mềm Python miễn phí, tích hợp tốt với các hệ thống khác nhau và giúp tăng tốc độ phát triển dự án.
Python có thể được xem là một ngôn ngữ có độ phổ biến cao trong ngành lập trình, nhờ vào những điểm nổi bật sau:
● Có cấu trúc code dễ đọc và dễ hiểu, dù là người mới bắt đầu
● Có tính ứng dụng rộng rãi
● Tốc độ xử lý của Python nhanh hơn PHP
● Cho phép các lập trình viên thực hiện sửa lỗi các đoạn mã một cách trực tiếp
● Sở hữu lượng lớn các khối cơ sở dữ liệu, phục vụ hiệu quả cho các chương trình mang tính thương mại
● Nhờ có tính năng đơn giản, nên việc bảo trì các chương trình được tạo ra bởi Python cũng khá đơn giản và nhanh chóng
● Chứa GUI programming hỗ trợ việc hiển thị ảnh minh họa một cách sống động và chân thật
● Khi sử dụng Python, các lập trình viên có thể thoải mải thêm và tùy chỉnh các công cụ, để có thể tối đa hiệu quả trong công việc.
OpenCV
OpenCV, viết tắt của open source computer vision library, là một thư viện mã nguồn mở dành cho máy tính, chuyên về xử lý hình ảnh và phát triển ứng dụng đồ họa thời gian thực.
OpenCV giúp tăng tốc độ xử lý của CPU trong các tác vụ thời gian thực, đồng thời cung cấp nhiều mã nguồn cho các quy trình thị giác máy tính và các ứng dụng học máy khác.
OpenCV là phần mềm đa nhiệm với nhiều ứng dụng khác nhau, đặc biệt trong lĩnh vực định vị và bản đồ Nó cho phép người dùng tìm đường, tra cứu tình hình giao thông và xem xét hình ảnh thực tế một cách hiệu quả.
OpenCV đóng vai trò quan trọng trong việc cung cấp dữ liệu hình ảnh cho các ứng dụng bản đồ, giúp người dùng có được hình ảnh rõ nét về đường phố, nhà cửa và con người xung quanh địa điểm được chỉ định.
OpenCV là công cụ quan trọng trong việc tạo ra hình ảnh 3 chiều phức tạp, đặc biệt trong thời đại trí tuệ nhân tạo đang phát triển mạnh mẽ Công nghệ này không thể thiếu trong các ứng dụng hiện đại như robot, xe tự lái và bảng cảm ứng thông minh, nhờ vào khả năng xử lý hình ảnh vượt trội Một ví dụ thực tế dễ thấy là hệ thống mở khóa điện thoại qua nhận diện khuôn mặt người dùng, cho thấy vai trò quan trọng của OpenCV trong cuộc sống hàng ngày.
EasyOCR
EasyOCR là một thư viện Python hỗ trợ Nhận dạng Ký tự Quang học (OCR), giúp người dùng dễ dàng trích xuất văn bản từ hình ảnh và tài liệu quét.
Khi phải xử lý hình ảnh văn bản không thể chỉnh sửa, tệp PDF và bản in giấy, bạn sẽ tốn nhiều thời gian và công sức Giải pháp OCR có thể giúp bạn nhanh chóng trích xuất văn bản từ các tài liệu này, thay vì làm thủ công Sử dụng OCR không chỉ tiết kiệm thời gian mà còn tăng hiệu quả công việc và giảm thiểu lỗi do con người.
Hình 2.5: Minh hoạ cách lấy chữ của EasyOCR
Các ưu điểm của EasyOCR:
● Xử lý tài liệu dễ dàng và nhanh chóng
● Giảm khối lượng công việc của nhân viên
● Thân thiện với môi trường- Khi đọc văn bản từ tài liệu và xử lý chúng, nó sẽ giảm việc sử dụng giấy và tiết kiệm giấy.
Google Cloud Translation
Google Cloud Translation API là dịch vụ dịch thuật linh hoạt, sử dụng mô hình máy học tiên tiến của Google API này có khả năng mở rộng cao, hỗ trợ hơn 100 ngôn ngữ và tự động phát hiện ngôn ngữ.
Hình 2.6: Logo Google Cloud Translation
PHÂN TÍCH HỆ THỐNG
Tổng quan hệ thống
Trang web Manga Translator là công cụ hỗ trợ người dùng dịch manga bằng cách chuyển đổi nội dung ký tự từ hình ảnh Với sự kết hợp của công nghệ nhận diện, thị giác máy tính và chuyển đổi hình ảnh, trang web này mang lại giải pháp hiệu quả cho việc dịch manga và các tài liệu liên quan.
Sơ đồ UseCase
Bảng danh sách các actor
STT Tên actor Ý nghĩa/ ghi chú
1 User Người dùng truy cập vào trang web và tiến hành dịch ảnh trang manga
3.2.2 Danh sách các Use-case
Bảng danh sách các Use-case
STT Tên Use-case Ý nghĩa/ ghi chú
1 Dịch Manga Người dùng tiến hành chọn trang ảnh manga và tiến hành dịch trên trang web
2 Quản lý và chỉnh sửa nội dung muốn dịch
Người dùng tiến hành xem xét các ký tự được nhận diện và sửa lại nếu sai sót, sau đó có thể chọn những cụm muốn dịch
3 Xóa nội dung ký tự trong ảnh
Người dùng có thể sử dụng trang web để xóa những nội dung ký tự không mong muốn ra khỏi ảnh
Đặc tả Use Case
Bảng 3.1 Đặc tả Use-case dịch Manga
Tên Use-case Dịch Manga
Mô tả tóm tắt Người dùng tiến hành chọn ảnh và dịch Điều kiện trước Truy cập trang web Manga Translator Điều kiện sau N/A
Dòng sự kiện chính Hiển thị màn hình bắt đầu và chọn ảnh Manga
● Người dùng truy cập trang web
● Hiển thị màn hình bắt đầu Người dùng chọn và xác nhận ảnh trang Manga muốn dịch Xác nhận hệ thống bắt đầu xử lý ảnh
Nếu thành công xuất ra trang manga đã được dịch Lưu ảnh
Bảng 3.1 Đặc tả Use-case Quản lý và chỉnh sửa nội dung muốn dịch
Tên Use-case Quản lý và chỉnh sửa nội dung muốn dịch
Người dùng có thể chọn và chỉnh sửa ký tự được trích xuất từ ảnh Trước khi thực hiện, cần xác nhận lựa chọn và hệ thống sẽ tiến hành xử lý ảnh Manga Sau khi hoàn thành, không có điều kiện nào cần thiết.
Dòng sự kiện chính Hiển thị màn hình ký tự được lấy từ ảnh Manga
● Chỉnh sửa nếu ký tự được lấy có sai sót
● Chọn dòng muốn dịch Nhấp xác nhận quá trình chỉnh sửa và tiến hành dịch manga Dòng sự kiện phụ
Bảng 3.1 Đặc tả Use-case Xóa nội dung ký tự trong ảnh
Tên Use-case Xóa nội dung ký tự trong ảnh
Mô tả tóm tắt Xóa những ký tự không mong muốn trong ảnh manga Điều kiện trước Truy cập trang web Điều kiện sau N/A
Dòng sự kiện chính Hiển thị màn hình ký chọn và xác nhận ảnh Manga
Xóa tất cả những ký tự sau khi hệ thống xử lý Lưu ảnh
Sơ đồ Activity
Quá trình thực hiện dịch Manga
HIỆN THỰC HỆ THỐNG
Quá trình hệ thống hoạt động
4.1.1 Cách thức lấy và xóa văn bản ra khỏi ảnh Để xóa văn bản khỏi hình ảnh sẽ trải qua ba bước:
● Xác định văn bản trong hình ảnh và lấy tọa độ hộp giới hạn của từng văn bản
● Đối với mỗi hộp giới hạn, hãy áp dụng mặt nạ để cho thuật toán biết chúng ta nên tô phần nào của hình ảnh
● Cuối cùng, áp dụng thuật toán inpainting để inpaint các vùng bị che của hình ảnh, dẫn đến hình ảnh không có văn bản, sử dụng cv2
Lấy văn bản ra từ ảnh:
- Sau khi hình ảnh được EasyOCR xử lý sẽ được xác định văn bản bằng những khung với tọa độ nhất định
Xóa văn bản ra khỏi ảnh:
- Cv2 có hai thuật toán inpainting khả dụng và cho phép áp dụng mask hình chữ nhật, hình tròn hoặc đường thẳng
Tôi chọn sử dụng mặt nạ đường kẻ vì tính linh hoạt của nó cho phép che văn bản theo nhiều hướng khác nhau Trong khi mặt nạ hình chữ nhật chỉ hiệu quả với các từ song song hoặc vuông góc với trục x, mặt nạ hình tròn lại che phủ một diện tích lớn hơn mức cần thiết.
- Dựa vào tọa độ đã xác định được tiến hành xóa văn bản khỏi ảnh
28 Đây là vùng mask tương ứng với từ “Tuesday”
Cuối cùng, chúng ta có thể inpaint hình ảnh:
29 Đây là hình ảnh sau khi thực hiện xóa văn bản “Tuesday”
Một số các ví dụ cho các bước xác định và xóa văn bản khỏi ảnh:
4.1.2 Dịch văn bản đã được xác định từ ảnh
Việc xác định văn bản có thể gặp sai sót do nhiều yếu tố như kiểu chữ, kích cỡ và phông chữ phức tạp, dẫn đến kết quả không đạt yêu cầu.
Nhóm em sẽ thực hiện thêm một bước chỉnh sửa thủ công đối với nội dung được trích xuất từ ảnh trước khi tiến hành dịch qua Google API.
Sơ đồ trình tự qua trình dịch văn bản:
Giao diện hệ thống
- Chọn ảnh manga từ file máy tính để bắt đầu dịch
- Nhấp vào button “Detect Bubble” để tiến hành xác định văn bản trong ảnh
- Nhấp button “Remove/Change Image” để hủy thao tác và chọn ảnh manga khác
4.2.2.1 Ảnh sau khi hệ thống xử lý
- Những khung bong bóng thoại trong manga được xác định và đánh dấu
- Các ký tự văn bản được hệ thống định vị để tiến hành xử lý trong bước tiếp theo
4.2.1.2 Khung kết quả ký tự văn bản đã lấy
- Các văn bản được xác định và lấy ra từ ảnh manga
- Các khung text input để thuận lợi cho việc chính sửa thủ công nội dung lấy xuống
- Các bản dịch của nội dung văn bản được thể thiện ngay bên phải
- Các nút bên phải ngoài dùng để xác nhận những dòng nào cần dịch hoặc không
4.2.1.3 Các tùy chọn cho văn bản sau khi dịch
- Có thể tùy chỉnh số chữ trên một dòng và cỡ chữ sau khi dịch để tiến hành dán lại ảnh manga
- Chỉnh Font chữ mong muốn để sử dụng cho văn bản sau khi dịch
4.2.1.4 Các tùy chọn xử lý ảnh
- Nhấp button “Translate Comic” để tiến hành dịch manga
- Nhấp button “Remove Text in Comic” để xóa toàn bộ văn bản có trong ảnh manga
Nhấn vào checkbox "Hiển thị văn bản gốc" để xem văn bản hệ thống lấy từ ảnh, giúp bạn dễ dàng so sánh với văn bản đã được dịch.
Nhấp vào checkbox “Sử dụng hình hiện tại để dịch” cho phép bạn tiếp tục chỉnh sửa trên tấm ảnh đã dịch, giúp bạn dịch các văn bản riêng lẻ mà không làm ảnh hưởng đến toàn bộ nội dung.
- Các văn bản sau khi được dịch sẽ được vẽ lại vào ảnh
- Các vị trí vẽ lại chính là vị trí xóa khi xử lý ở bước trước
- Có thể điều chỉnh size và số dòng thể hiện ở kết quả
- Chọn font chữ mong muốn để dán vào ảnh