2 điểm bởi GN⁺ 2024-05-14 | 1 bình luận | Chia sẻ qua WhatsApp

Hiệu chỉnh biến dạng trang (Page Dewarping)

  • Tiếp cận bài toán làm phẳng ảnh trang bị cuộn/cong như một bài toán tối ưu hóa

Bối cảnh

  • Các phương pháp hiệu chỉnh biến dạng hiện có như thư viện Leptonica hay phương pháp Coordinate Transform Model (CTM) sử dụng cách tiếp cận phân rã bài toán theo thứ bậc
    1. Tách văn bản theo từng dòng
    2. Tìm phép warping hoặc biến đổi tọa độ để các dòng trở nên song song và nằm ngang
  • Lấy ý tưởng từ cách tiếp cận dựa trên mô hình hình trụ 3D của CTM, tác giả tạo ra mô hình tham số riêng sử dụng các tham số quyết định hình dạng trang
    • vector quay/tịnh tiến 3D, độ dốc độ cong của trang, độ lệch đường ngang, v.v.
  • Định nghĩa nó như một bài toán tối ưu hóa
    • Tìm các keypoint dọc theo các vùng văn bản nằm ngang trong ảnh gốc
    • Bắt đầu từ ước lượng ban đầu, tối ưu các tham số mô hình để giảm thiểu lỗi tái chiếu của keypoint

Quy trình

  1. Trích xuất biên trang
  2. Phát hiện đường bao văn bản
  • Sử dụng nhị phân hóa, phép toán morphology và phân tích thành phần liên thông
  • Được tinh chỉnh để cũng phát hiện cả bảng văn bản dọc
  1. Nhóm các đường bao văn bản thành các vùng ngang
  2. Lấy mẫu keypoint trong các vùng ngang
  3. Ước lượng tham số mô hình ban đầu
  4. Giảm thiểu lỗi tái chiếu bằng tối ưu hóa
  • Sử dụng bộ giải Powell của scipy.optimize.minimize
  • Chiếm phần lớn thời gian chạy
  1. Biến đổi tọa độ bằng mô hình tối ưu rồi remap ảnh và nhị phân hóa

Kết quả

  • Hoạt động tốt trên nhiều ảnh ví dụ khác nhau
  • Do số lượng tham số mô hình lớn nên việc tối ưu hóa mất thời gian
  • Chưa xem xét biến dạng theo chiều ngang

Kết luận

  • Đây là một quy trình điển hình: xây dựng nền tảng kiến thức rồi mô hình hóa thành bài toán tối ưu hóa
  • Cách tiếp cận tương tự Deformable Part Model và Active Appearance Model
  • Cũng thu được kinh nghiệm sử dụng các công cụ như Emacs, Pylint
  • Dù chưa có kế hoạch phát triển thêm, đây vẫn là dự án đáng tham khảo khi giảng dạy computer vision

Ý kiến của GN⁺

  • Để có tính ứng dụng thực tế, có vẻ vẫn cần hiệu chỉnh cả biến dạng theo chiều ngang. Muốn làm vậy có lẽ cần một mô hình tinh vi hơn như CTM.
  • Cải thiện tốc độ tối ưu hóa có vẻ rất quan trọng. Việc giảm số tham số hoặc dùng kỹ thuật tối ưu hóa tốc độ cao có thể sẽ hữu ích.
  • Sẽ khá thú vị nếu đem so sánh với các phương pháp dựa trên deep learning. Biết đâu deep learning có thể đồng thời giải quyết cả trích xuất đặc trưng và mô hình hóa.
  • Nếu muốn áp dụng vào các công việc số hóa tài liệu trong môi trường công nghiệp, có lẽ cần tăng thêm độ bền vững trước nhiều kiểu bố cục tài liệu khác nhau.
  • Việc mã nguồn được công bố dưới dạng open source là điều tốt, nhưng để dùng thực tế thì có lẽ nên phát hành dưới dạng chương trình chạy độc lập thay vì chỉ là script Python.

1 bình luận

 
GN⁺ 2024-05-14
Ý kiến trên Hacker News

Tóm tắt:

  • Cần cẩn thận khi áp dụng ngưỡng cao trong quá trình nhị phân hóa hình ảnh
    • Hoạt động tốt với văn bản thông thường, nhưng minh họa hoặc chú thích cuối trang có thể bị hỏng đến mức không đọc được
    • Nếu bản quét trên Google Books là bản duy nhất thì có thể gặp xui xẻo
  • Dù đã là năm 2024, các ứng dụng máy quét tài liệu vẫn chưa tích hợp sẵn tính năng này
  • Cựu CEO Adobe John Warnock đã nỗ lực bảo tồn các sách lịch sử quý hiếm
    • de-curling cho các trang quét không thể mở phẳng là một bài toán cần giải quyết
    • Dự án liên quan: Rare Book Room
  • Bài viết này là một ví dụ đáng tham khảo ở nơi làm việc về cách ghi chép hiệu quả các dự án kỹ thuật và các quyết định
  • Thời đại học, khi làm một ứng dụng quét ghi chú có mã màu, đã gặp vấn đề méo màu
    • Màu ở đầu và cuối trang khác nhau nên khó phân biệt bút xanh dương và xanh lá
  • Kết quả trông khá ổn, nhưng mô hình warp có phần hơi toàn cục
    • Nó không nắm bắt được hết các biến dạng phức tạp của tờ giấy nên vẫn còn thấy biến dạng dư trong kết quả cuối cùng
  • Một bài viết thú vị mà tiếc là đã không thấy vào năm 2016
    • Toàn bộ quá trình từ xác định vấn đề, áp dụng kỹ thuật thông minh đến đưa ra giải pháp hoạt động tốt đều được mô tả rõ ràng
    • Có lẽ sẽ không bao giờ trực tiếp dùng đến, nhưng đây là một ví dụ rất hay về quy trình giải quyết vấn đề
  • Gặp lỗi cài đặt, đã đăng issue trên GitHub
  • Sẽ hay nếu thử cả de-wrinkling cho hóa đơn
  • Nếu chỉ cần OCR thì có thể bỏ qua bước này
  • Google đã giải quyết vấn đề này từ 10 năm trước
  • Với sách hoặc tài liệu cổ có giá trị, có thể de-warping không tiếp xúc bằng chụp cắt lớp tia X