Luyện tập Olympic AI, Tuần 3
Điểm: 100
1. Bối cảnh thực tế & Mục tiêu
Trong lịch sử Việt Nam, chữ Nôm là hệ thống văn tự được sử dụng rộng rãi để ghi chép tiếng Việt trong nhiều thế kỷ. Rất nhiều tài liệu quý như thơ văn, sử ký, sách giáo khoa cổ, văn bản hành chính, gia phả, ... hiện vẫn tồn tại dưới dạng bản scan hoặc ảnh chụp.
Tuy nhiên, việc số hóa các tài liệu chữ Nôm vẫn là một bài toán rất khó do:
- Hình ảnh xuống cấp theo thời gian.
- Nhiễu, mờ, mất nét.
- Ký tự có hình dạng phức tạp và số lượng lớp lớn.
- Font chữ và chất lượng in rất đa dạng.
Trong đề thi này, thí sinh sẽ xây dựng hệ thống OCR (Optical Character Recognition) để nhận diện các ký tự chữ Nôm từ ảnh.
Đây là bài toán nền tảng trong:
- Số hóa tài liệu lịch sử.
- Xây dựng thư viện văn bản cổ điện tử.
- Hỗ trợ nghiên cứu Hán Nôm.
- Phát triển các hệ thống OCR cho ngôn ngữ low-resource.
2. Nhiệm vụ
Mục tiêu: Dự đoán ký tự chữ Nôm tương ứng từ ảnh chứa một ký tự duy nhất.
Bài toán
Đầu vào:
- Một ảnh chứa đúng một ký tự chữ Nôm.
Đầu ra:
- Ký tự chữ Nôm tương ứng.
Đây là bài toán Image Classification nhiều lớp.
3. Quy định & Giới hạn
Để đảm bảo tính công bằng, cuộc thi áp dụng các quy định sau:
Được phép
Sử dụng:
torchtorchvision
Được phép sử dụng:
- Các model classification có sẵn trong
torchvision.models - Pretrained weights trên ImageNet
- Các model classification có sẵn trong
Không được phép
- Không được sử dụng dữ liệu ngoài dưới mọi hình thức. Chỉ được sử dụng dataset do BTC cung cấp tại link Google Drive ở Mục 5.
- Không được sử dụng pretrained model hoặc pretrained weights từ nguồn khác ngoài
torchvision/ImageNet. - Không được sử dụng OCR model pretrained bên ngoài.
- Không được sử dụng dữ liệu test cho training, validation hoặc pseudo-labeling.
- Không được can thiệp thủ công vào prediction của test set.
4. Tiêu chí đánh giá
Do dữ liệu có phân bố class không đồng đều, metric chính được sử dụng là:
Macro F1 Score
F1-score được tính độc lập cho từng class: $$ F1 = \frac{2PR}{P + R} $$ Điểm cuối cùng: $$ Macro\ F1 = \frac{1}{N}\sum_{i=1}^{N}F1_i $$ Trong đó:
- N là số lượng class.
- Mỗi class được đóng góp trọng số như nhau.
5. Data và Baseline
- Tải về qua link Google Drive
- Slide giới thiệu: link
6. Dataset và Submission Format
Cấu trúc Dataset
dataset/
│
├── train/
│ ├── images/
│ └── labels.csv
│
└── test/
└── images/
Format Labels
File labels.csv:
image,label
0000000.jpg,保
0000001.jpg,大
0000002.jpg,元
0000003.jpg,年
...
Submission Format
Thí sinh cần tạo file:
submission.csv
Nội dung file:
image,label
0000000.jpg,保
0000001.jpg,大
0000002.jpg,元
0000003.jpg,年
0000004.jpg,春
0000005.jpg,新
Sau đó nén trực tiếp thành:
submission.zip
Cấu trúc file nộp
submission.zip
└── submission.csv
Lưu ý: File
submission.csvphải nằm trực tiếp bên trong.zip, không được chứa trong thư mục cha.
Quy định
- File nộp phải ở định dạng
.zip - Bên trong
.zipphải chứa duy nhất file:
submission.csv
- Header bắt buộc:
image,label
- Tên file ảnh phải giữ nguyên.
- Mỗi ảnh chỉ được dự đoán đúng một ký tự.
- Các file
.zipsai cấu trúc sẽ bị từ chối tự động.
7. Lưu ý
- Một số ký tự chữ Nôm có hình dạng rất giống nhau.
- Dataset có thể chứa nhiều ký tự hiếm với rất ít sample.
- Dữ liệu có thể chứa nhiễu, blur hoặc chất lượng scan không đồng đều.
- Các submission lỗi format sẽ bị từ chối tự động.
8. Acknowledgement
Dataset được curate và xử lý lại từ các nguồn dữ liệu public về chữ Nôm phục vụ mục đích học thuật và nghiên cứu.
Một phần dữ liệu tham khảo từ Nôm OCR Training Corpus (Albert Errickson, 2026), phát hành dưới giấy phép CC-BY-4.0.
Thông tin chi tiết về nguồn dữ liệu và attribution sẽ được công bố sau khi cuộc thi kết thúc.
Chúc các bạn số hóa di sản chữ Nôm thành công!
Điểm: 100
1. Bối cảnh thực tế & Mục tiêu
Các hệ thống OCR tiếng Việt trong thực tế thường tạo ra nhiều lỗi do:
- Ảnh scan mờ, nhiễu hoặc chất lượng thấp.
- Font chữ đa dạng.
- Văn bản bị méo, lệch hoặc mất dấu.
- OCR engine nhận diện sai ký tự hoặc sai dấu tiếng Việt.
Ví dụ:
nhim hūu han, công ty cô phàn mói
Cần được sửa thành:
nhiệm hữu hạn, công ty cổ phần mới
Trong đề thi này, thí sinh sẽ xây dựng hệ thống Vietnamese OCR Text Correction nhằm tự động sửa lỗi văn bản OCR tiếng Việt.
Đây là bài toán quan trọng trong:
- Số hóa tài liệu tiếng Việt.
- Hậu xử lý cho hệ thống OCR.
- Khôi phục văn bản lịch sử hoặc scan chất lượng thấp.
- Xây dựng NLP cho tiếng Việt low-resource và noisy text.
2. Nhiệm vụ
Mục tiêu: Dự đoán phiên bản văn bản đã được sửa lỗi từ đầu vào OCR bị nhiễu.
Bài toán
Đầu vào:
- Một đoạn văn bản OCR chứa lỗi.
Đầu ra:
- Phiên bản văn bản đã được sửa lỗi.
Ví dụ:
Input:
vn tiép tuc thyc hin quyěn và nghía vu
Output:
vẫn tiếp tục thực hiện quyền và nghĩa vụ
Đây là bài toán Text Correction / Sequence-to-Sequence.
3. Quy định & Giới hạn
Để đảm bảo tính công bằng, cuộc thi áp dụng các quy định sau:
Được phép
Sử dụng:
torchtorchvisiontransformerssentencepiece
Được phép tự xây dựng model từ đầu (train from scratch).
Không được phép
- Không được sử dụng dữ liệu ngoài dưới mọi hình thức. Chỉ được sử dụng dataset do BTC cung cấp tại link Google Drive ở Mục 5.
- Không được sử dụng pretrained model dưới mọi hình thức.
- Không được finetune từ checkpoint pretrained.
- Không được sử dụng pretrained embeddings từ bên ngoài.
- Không được sử dụng dữ liệu test cho training, validation hoặc pseudo-labeling.
- Không được can thiệp thủ công vào prediction của test set.
4. Tiêu chí đánh giá
Metric chính:
Character Error Rate (CER)
CER đo khoảng cách chỉnh sửa giữa prediction và ground truth ở cấp độ ký tự.
$$ CER = \frac{S + D + I}{N} $$
Trong đó:
- S: số ký tự bị thay thế
- D: số ký tự bị xóa
- I: số ký tự được chèn thêm
- N: số ký tự trong ground truth
CER càng thấp càng tốt.
Lưu ý: trên leaderboard, điểm số sẽ được tính là 1 - CER.
5. Data và Baseline
- Tải về qua link Google Drive
- Slide giới thiệu: link
6. Dataset và Submission Format
Cấu trúc Dataset
dataset/
│
├── train.csv
└── test.csv
6.1 Training Format
File train.csv:
id,input,corrected_text
0,"nhim hūu han","nhiệm hữu hạn"
1,"vn tiép tuc","vẫn tiếp tục"
2,"Doi voi cac","Đối với các"
Trong đó:
input: văn bản OCR lỗicorrected_text: văn bản đúng
6.2 Test Format
File test.csv:
id,input
0,"Doi voi cac bo tuong tac"
1,"5. Soan thao va ky van ban"
2,"7. Dai chet cua he thong"
6.3 Submission Format
File nộp bài:
id,corrected_text
0,"Đối với các bộ tương tác"
1,"5. Soạn thảo và ký văn bản"
2,"7. Dải chết của hệ thống"
Quy định
- File phải ở định dạng
.csv - Header bắt buộc:
id,corrected_text
- Không được thay đổi
id. - Prediction phải là chuỗi Unicode hợp lệ UTF-8.
7. Lưu ý
OCR noise có thể bao gồm:
- Sai dấu tiếng Việt
- Thiếu ký tự
- Thừa ký tự
- Sai khoảng trắng
- Sai chữ hoa/thường
- Ký tự Unicode bất thường
CER rất nhạy với lỗi thiếu/thừa ký tự.
Các submission lỗi format sẽ bị từ chối tự động.
8. Acknowledgement
Một phần dữ liệu được curate và xử lý lại từ các nguồn dữ liệu public phục vụ nghiên cứu về OCR text correction tiếng Việt.
Chúc các bạn xây dựng thành công hệ thống sửa lỗi OCR tiếng Việt!