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
- Tách văn bản theo từng dòng
- 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
- Trích xuất biên trang
- 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
- Nhóm các đường bao văn bản thành các vùng ngang
- Lấy mẫu keypoint trong các vùng ngang
- Ước lượng tham số mô hình ban đầu
- 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
- 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
Ý kiến trên Hacker News
Tóm tắt:
de-curlingcho các trang quét không thể mở phẳng là một bài toán cần giải quyếtde-wrinklingcho hóa đơnde-warpingkhông tiếp xúc bằng chụp cắt lớp tia X