2 पॉइंट द्वारा GN⁺ 2024-05-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें

पेज विकृति सुधार (Page Dewarping)

  • मुड़ी हुई पेज इमेज को सीधा करने के काम को एक optimization समस्या के रूप में लिया गया है

पृष्ठभूमि

  • Leptonica लाइब्रेरी या Coordinate Transform Model (CTM) जैसी मौजूदा विकृति-सुधार विधियाँ hierarchical problem decomposition approach का उपयोग करती हैं
    1. टेक्स्ट को लाइन-स्तर पर अलग करना
    2. लाइनों को समानांतर और क्षैतिज बनाने के लिए warping या coordinate transform खोजना
  • CTM के 3D cylinder model-आधारित approach से प्रेरणा लेकर, पेज का आकार निर्धारित करने वाले parameters का उपयोग करते हुए एक स्वयं का parametric model बनाया गया
    • 3D rotation/translation vectors, page curvature slope, horizontal line offset आदि
  • इसे एक optimization समस्या के रूप में परिभाषित किया गया
    • मूल फोटो में क्षैतिज टेक्स्ट क्षेत्रों के साथ keypoints खोजे जाते हैं
    • प्रारंभिक अनुमान से शुरू करके model parameters को optimize किया जाता है ताकि keypoint reprojection error न्यूनतम हो

प्रक्रिया

  1. पेज boundary extraction
  2. टेक्स्ट contour detection
  • binarization, morphological operations, connected component analysis का उपयोग
  • vertical text tables को भी detect करने के लिए विशेष रूप से अनुकूलित
  1. टेक्स्ट contours को क्षैतिज क्षेत्रों में group करना
  2. क्षैतिज क्षेत्रों में keypoint sampling
  3. प्रारंभिक model parameters का अनुमान
  4. optimization के जरिए reprojection error को न्यूनतम करना
  • scipy.optimize.minimize के Powell solver का उपयोग
  • runtime का अधिकांश हिस्सा यही लेता है
  1. सर्वोत्तम model के साथ coordinate transform के बाद image remapping और binarization

परिणाम

  • विभिन्न उदाहरण इमेजों पर यह अच्छी तरह काम करता है
  • model parameters की संख्या अधिक होने से optimization में समय लगता है
  • क्षैतिज दिशा की विकृति पर विचार नहीं किया गया

समापन

  • पृष्ठभूमि ज्ञान इकट्ठा करके उसे optimization समस्या के रूप में formalize करने वाला एक विशिष्ट workflow
  • Deformable Part Model, Active Appearance Model जैसी समान approach
  • Emacs, Pylint जैसे टूल्स के उपयोग का व्यावहारिक ज्ञान भी मिला
  • आगे विकास की योजना नहीं है, लेकिन computer vision सिखाने के समय संदर्भ के लिए उपयोगी परियोजना

GN⁺ की राय

  • वास्तविक उपयोगिता के लिए क्षैतिज दिशा की विकृति भी सुधारनी होगी। इसके लिए CTM की तरह अधिक परिष्कृत model की आवश्यकता दिखती है।
  • optimization की गति में सुधार महत्वपूर्ण लगता है। parameters की संख्या घटाने या high-speed optimization techniques का उपयोग मददगार हो सकता है।
  • deep learning-आधारित तरीकों से इसकी तुलना करना रोचक होगा। संभव है कि deep learning feature extraction और modeling को एक साथ हल कर सके।
  • औद्योगिक दस्तावेज़ digitization जैसे कार्यों में उपयोग के लिए, विभिन्न layout वाले दस्तावेज़ों पर इसकी robustness और बढ़ानी होगी।
  • इसे open source के रूप में जारी करना अच्छा है, लेकिन वास्तविक उपयोग के लिए Python script की बजाय standalone executable program के रूप में वितरित करना बेहतर हो सकता है।

1 टिप्पणियां

 
GN⁺ 2024-05-14
Hacker News राय

सारांश:

  • इमेज बाइनराइज़ेशन करते समय बहुत ऊँचा threshold लगाने में सावधानी रखनी चाहिए
    • सामान्य टेक्स्ट पर यह अच्छी तरह काम करता है, लेकिन illustrations या footnotes इतने खराब हो सकते हैं कि पढ़ना मुश्किल हो जाए
    • अगर Google Books scan ही एकमात्र प्रति हो, तो यह दुर्भाग्यपूर्ण हो सकता है
  • 2024 होने के बावजूद document scanner apps में यह फीचर built-in नहीं है
  • Adobe के पूर्व CEO John Warnock ने दुर्लभ ऐतिहासिक पुस्तकों के संरक्षण पर काम किया था
    • ऐसे scan pages का de-curling एक चुनौती थी जिन्हें पूरी तरह खोलकर स्कैन नहीं किया जा सकता था
    • संबंधित प्रोजेक्ट: Rare Book Room
  • यह लेख इस बात का अच्छा उदाहरण है कि तकनीकी projects और decisions को प्रभावी ढंग से document कैसे किया जाए; काम पर इससे सीख ली जा सकती है
  • कॉलेज के दिनों में color-coded notes के लिए scan app बनाते समय color distortion की समस्या सामने आई
    • पेज के ऊपर और नीचे रंग अलग दिखते थे, इसलिए नीले और हरे pen में फर्क करना मुश्किल था
  • परिणाम ठीक लगते हैं, लेकिन warp model कुछ ज़्यादा global है
    • यह कागज़ की जटिल distortions को पूरी तरह capture नहीं कर पाता, इसलिए final output में residual distortion दिखती है
  • 2016 में न देख पाने का अफसोस रहने वाला दिलचस्प लेख
    • समस्या को परिभाषित करने, smart techniques लागू करने और काम करने वाला solution निकालने की पूरी प्रक्रिया अच्छी तरह बताई गई है
    • शायद इसे सीधे इस्तेमाल न करना पड़े, फिर भी यह problem-solving process का शानदार उदाहरण है
  • installation error आया, GitHub issue दर्ज कर दिया गया
  • receipts की de-wrinkling भी आज़माना अच्छा होगा
  • अगर सिर्फ OCR चाहिए, तो इस step को छोड़ा जा सकता है
  • Google ने यह समस्या 10 साल पहले ही हल कर ली थी
  • अगर किताबें या पुराने दस्तावेज़ बहुत मूल्यवान हों, तो X-ray tomography से non-contact de-warping किया जा सकता है