OCR tiếng Việt: test 50 file scan — độ chính xác theo font, DPI, góc nghiêng
Test OCR 50 file scan tiếng Việt (hóa đơn, giấy tờ, sách): đo tỉ lệ chính xác theo font, DPI, góc nghiêng.
OCR tiếng Việt — nghe thì hay, nhưng chính xác bao nhiêu phần trăm? File scan rõ nét thì OK, nhưng file chụp bằng điện thoại, scan cũ, nghiêng nghiêng thì sao? Có đáng tin để dùng không hay phải ngồi sửa lại từ đầu?
Mình lấy 50 file scan tiếng Việt — đủ loại: hóa đơn, giấy tờ hành chính, trang sách, biên lai — chạy OCR rồi so sánh kết quả với bản gốc. Kết luận: scan rõ nét từ 200 DPI trở lên thì 95-98% chính xác, còn lại thì tùy.
Setup test
| Thông số | Chi tiết |
|---|---|
| Số file | 50 file PDF (scan) |
| Nguồn | Hóa đơn GTGT cũ (10), giấy tờ hành chính (10), trang sách/tài liệu (10), biên lai/phiếu thu (10), file chụp điện thoại (10) |
| Engine | Tesseract 5.3 + model vie (giống AloPDF production) |
| Cách đánh giá | So sánh output text với bản gốc đánh máy. Tính Character Error Rate (CER) |
| Ngày test | 05/2026 |
Character Error Rate (CER): tỉ lệ ký tự sai / tổng ký tự. CER 2% = cứ 100 ký tự thì sai 2 ký tự. CER 5% trở xuống mình coi là dùng được (sửa ít). CER 10%+ thì gần như phải gõ lại.
Kết quả tổng hợp
| Nhóm file | DPI TB | CER TB | Đánh giá |
|---|---|---|---|
| Sách/tài liệu scan rõ | 300 | 1.8% | Rất tốt — gần như dùng luôn |
| Giấy tờ hành chính | 200-300 | 3.2% | Tốt — sửa vài chỗ |
| Hóa đơn GTGT cũ (in kim) | 150-200 | 5.7% | Tạm OK — mất công sửa |
| Biên lai/phiếu thu | 150-200 | 7.1% | Khá sai — check kỹ số tiền |
| Chụp điện thoại | 72-150 | 12.4% | Không đáng — gõ lại nhanh hơn |
Phân tích chi tiết từng nhóm
Sách/tài liệu scan 300 DPI — CER 1.8%
Nhóm này gần như perfect. 10 file, mỗi file 2-3 trang. Tesseract nhận dạng đúng cả dấu thanh phức tạp (ẵ, ỡ, ệ). Chỉ sai ở:
- Chữ in đậm sát nhau → "th" thành "lli" (2 lần/10 file)
- Số trang ở footer → bị nhận nhầm thành chữ (3 lần)
- Gạch chân dính vào ký tự → sai (1 lần)
Kết luận: Scan 300 DPI, font in rõ, nền trắng → Tesseract tiếng Việt rất đáng tin. Dùng luôn output, chỉ cần lướt qua check nhanh.
Giấy tờ hành chính — CER 3.2%
CMND, sổ hộ khẩu, giấy khai sinh (bản photo scan). Khó hơn vì:
- Có bảng, đường kẻ → Tesseract đôi khi "đọc" đường kẻ thành ký tự
- Chữ viết tay xen lẫn chữ in → viết tay bị nhận sai hoàn toàn
- Dấu mộc đỏ đè lên text → che ký tự
Kết luận: Phần chữ in thì tốt (~98%). Phần viết tay thì bỏ (Tesseract không recognize handwriting tiếng Việt). Nếu cần OCR giấy tờ, chỉ lấy phần in — bỏ qua phần viết tay.
Hóa đơn GTGT cũ (in kim) — CER 5.7%
Hóa đơn giấy đỏ thời xưa — in bằng máy in kim, font nhỏ, giấy carbon mỏng. Lỗi chủ yếu:
- Font in kim mỏng, nét đứt → Tesseract miss ký tự (nhất là dấu chấm, dấu phẩy)
- Số tiền bị sai: "1.500.000" → "1.500.0O0" (chữ O thay số 0)
- Cột bị lệch → text nhảy sang cột khác
Kết luận: Dùng được để search text, nhưng đừng tin số tiền — luôn check lại bằng mắt. Mình từng để OCR tự extract số liệu hóa đơn rồi tổng hợp — sai 3 trên 10 số. Không chấp nhận được cho kế toán.
Biên lai/phiếu thu — CER 7.1%
Giấy nhỏ, in nhiệt (thermal print), font bé. Scan thường chỉ 150 DPI vì kích thước nhỏ. Tesseract gặp khó với:
- In nhiệt bị phai → contrast thấp
- Font monospace nhỏ → ký tự dính nhau
- Tiếng Việt + tiếng Anh mix → engine nhầm ngôn ngữ
Kết luận: OCR biên lai chủ yếu để search/archive — không nên dùng kết quả để nhập liệu chính thức. Nếu cần chính xác → gõ tay nhanh hơn (biên lai thường < 50 ký tự).
Chụp điện thoại — CER 12.4%
Nhóm tệ nhất. File .jpg chụp bằng iPhone/Android, chuyển sang PDF. Vấn đề:
- Nghiêng → text bị biến dạng
- Ánh sáng không đều → vùng tối không đọc được
- Ngón tay/bóng che → mất ký tự
- DPI thấp (72-100) → pixel không đủ chi tiết
Kết luận: Ảnh chụp điện thoại → không nên OCR trực tiếp. Dùng app scan (CamScanner, Adobe Scan, Microsoft Lens) — chúng tự deskew, tăng contrast, crop → đầu ra tốt hơn nhiều. Sau đó mới OCR.
Yếu tố ảnh hưởng độ chính xác
| Yếu tố | Tốt | Kém | Impact |
|---|---|---|---|
| DPI | ≥ 200 | < 150 | Cao nhất — DPI thấp = mất chi tiết ký tự |
| Độ nghiêng | < 2° | > 5° | Cao — nghiêng → dòng bị merge |
| Contrast | Text đen, nền trắng | Giấy vàng, text mờ | Trung bình |
| Font size | ≥ 10pt | < 8pt | Trung bình — font nhỏ thiếu pixel |
| Font type | Sans-serif, rõ nét | In kim, handwriting | Cao — Tesseract train trên font in thường |
| Nhiễu/noise | Sạch | Đốm, vết bẩn, nếp gấp | Trung bình |
Rule of thumb: Nếu bạn zoom 100% trên màn hình mà đọc được bằng mắt → OCR cũng đọc được. Nếu bạn phải zoom 200%+ mới đọc rõ → OCR sẽ sai nhiều.
Lỗi hay gặp nhất với tiếng Việt
Tesseract xử lý tiếng Việt tốt hơn mình nghĩ — nhưng vẫn có mấy lỗi đặc trưng:
- Nhầm dấu: "ă" ↔ "â", "ơ" ↔ "ở", "ũ" ↔ "ủ" — khi scan mờ, dấu móc và dấu mũ trông giống nhau
- Nhầm ký tự giống hình: "rn" → "m", "cl" → "d", "0" → "O" — lỗi kinh điển của OCR mọi ngôn ngữ
- Dấu thanh bị tách: "á" thành "a'" hoặc "a ́" — khi dấu render hơi xa ký tự gốc
- Bảng bị loạn: Text trong cell nhảy sang cell khác — Tesseract không giỏi nhận dạng cấu trúc bảng
Cải thiện kết quả OCR
Trước khi chạy OCR, nếu file scan chất lượng kém, mấy bước này giúp khá nhiều:
- Scan lại ở 300 DPI (nếu có thể) — đây là cách hiệu quả nhất, hơn mọi xử lý hậu kỳ
- Deskew — nắn thẳng nếu nghiêng. App scan điện thoại thường làm tự động
- Tăng contrast — text đen hơn, nền trắng hơn. Photoshop Levels hoặc app scan
- Crop sát nội dung — bỏ viền đen, margin thừa. Tesseract xử lý nhanh hơn và ít "đọc" noise ở viền
Hoặc đơn giản hơn: dùng app scan (CamScanner, Microsoft Lens) thay vì chụp thẳng bằng Camera. App tự làm hết 4 bước trên.
Khi nào dùng OCR, khi nào gõ lại
| Tình huống | OCR hay gõ? | Lý do |
|---|---|---|
| Tài liệu dài (>5 trang), scan rõ | OCR | Gõ 5 trang mất 1-2 tiếng, OCR mất 1 phút |
| Biên lai ngắn (<50 chữ) | Gõ | OCR setup + check lâu hơn gõ |
| File chụp điện thoại, nghiêng | Scan lại rồi OCR | OCR trực tiếp sẽ quá sai |
| Chỉ cần search, không cần chính xác 100% | OCR | Sai vài ký tự vẫn search được |
| Số liệu tài chính, hợp đồng | OCR + check tay | Sai 1 số 0 là sai cả triệu đồng |
Thử OCR
Mở AloPDF OCR → upload file scan → chọn ngôn ngữ Tiếng Việt → chờ xử lý → tải PDF mới có text layer.
File output là PDF "searchable" — có cả ảnh gốc + text layer invisible nằm trên. Bạn vẫn thấy ảnh scan, nhưng có thể Ctrl+F tìm text, Select + Copy.
Tip: sau OCR, mở file → Ctrl+A → Ctrl+C → paste vào Google Docs → check nhanh. Cách này nhanh hơn đọc từng trang.
Dùng ngay: OCR PDF — Chuyển PDF scan thành văn bản có thể tìm kiếm
Nhận dạng văn bản OCR trong PDF scan online miễn phí. Hỗ trợ tiếng Việt có dấu. Chuyển ảnh scan thành text copy được, tìm kiếm được. Sử dụng Tesseract — chính xác và nhanh.
Mở công cụ →