OCR qua camera: chỉ, chụp, dịch

Last updated: 2026-09-03

OCR của camera chạy nhận dạng văn bản cục bộ bằng gói vision_text_recognition đã fork hỗ trợ chữ Latin, Trung Quốc (giản thể và phồn thể), Nhật và Hàn. Không có gì được tải lên để nhận dạng. Mỗi khối do công cụ OCR trả về đều mang hộp giới hạn và văn bản phát hiện riêng; trang kết quả vẽ bản dịch lên cùng tọa độ để giữ nguyên bố cục gốc.

Quy trình chụp

  1. Khởi tạo camera. Bộ điều khiển camera được khởi tạo không đồng bộ với các trạng thái rõ ràng initializing / ready / failed. Khi thất bại, nút thử lại sẽ chạy lại quá trình khởi tạo mà không cần vào lại bảo vệ initializing.
  2. Hướng thực sự. DeviceOrientation và EXIF của iOS không đáng tin khi ứng dụng bị khóa dọc. Ứng dụng đọc gia tốc kế thô qua sensors_plus và lưu cache khung hình gần nhất, để màn trập chụp theo hướng cầm thực ngay cả khi UI bị khóa. Hướng EXIF sau đó được đối chiếu với sự thật này.
  3. Màn trập. Chạm để chụp theo tỉ lệ khung hình hiện tại của bản xem trước. Khung đã chụp được giảm xuống cạnh tối đa có thể cấu hình trước khi OCR — hầu hết các trang cần 1500–2000 px ở cạnh dài để công cụ đọc chữ nhỏ mà không làm phình bộ nhớ.
  4. Đèn flash. Bốn chế độ trong khung ngắm — tự động, tắt, bật và đèn pin — với công tắc liên kết với API flash của hệ thống.

Những gì OCR trả về

Tại sao trên thiết bị

Thực hành tốt nhất để có OCR chính xác

  1. Ánh sáng đều, gián tiếp. Ánh sáng từ cửa sổ tốt hơn đèn rọi trần. Bóng tối đi ngang trang là nguyên nhân phổ biến nhất khiến ký tự bị đọc sai.
  2. Chạm để lấy nét. Nếu lấy nét tự động chọn sai chủ thể (mặt bàn, ngón tay, mép trang), hãy chạm vào giữa văn bản trước khi chụp.
  3. Trang phẳng. Các trang cong về phía gáy sách sẽ mất ký tự gần rãnh. Dùng tay kia ấn phẳng trang khi có thể.
  4. Một ngôn ngữ mỗi lần chụp. Các trang có hệ chữ hỗn hợp hoạt động trong một lần quét, nhưng trang trộn chữ Latin với tiếng Nhật dọc thì tốt nhất nên chia thành hai lần chụp.