• लाइन स्कैन कैमरा ट्रेन जैसी गतिमान वस्तुओं को उच्च रिज़ॉल्यूशन में बिना विकृति के कैप्चर करने के लिए बेहद उपयुक्त है
  • इमेज प्रोसेसिंग के लिए ROI detection, speed estimation, resampling जैसी कई algorithms और techniques की ज़रूरत होती है
  • क्षैतिज और ऊर्ध्वाधर stripes हटाना और noise suppression जैसी quality improvement प्रक्रियाएँ महत्वपूर्ण हैं
  • implementation में बड़े पैमाने के data processing, Python, numpy का उपयोग, और कई experimental improvements शामिल हैं
  • अन्य फोटोग्राफरों के line scan फोटो उदाहरणों से तुलना करके अतिरिक्त insights मिल सकते हैं

लाइन स्कैन कैमरा का अवलोकन

  • लाइन स्कैन कैमरा एक पंक्ति (या दो पंक्तियों) के pixels से बहुत तेज़ गति पर इमेज स्कैन करता है
  • कैमरा स्थिर रहता है, और ट्रेन कैमरे के सामने से गुजरते समय उसका पूरा आकार रिकॉर्ड हो जाता है
  • स्थिर background इमेज के हर vertical column में दोहराया जाता है, जिससे विशिष्ट stripe effect दिखाई देता है
  • यह तरीका पूरी ट्रेन की लंबाई में बिना विकृति वाली high-resolution फोटो लेने देता है, इसलिए ट्रेन modeling जैसे शौकों के लिए भी उपयोगी है
  • film-based strip camera भी लगभग इसी सिद्धांत पर काम करता है, लेकिन sensitivity की समस्या के कारण उसमें film speed को manually match करना पड़ता है

कैमरा उपकरण

  • [Alkeria Necta N4K2-7C] मॉडल का उपयोग किया गया है, जिसमें 4096×2 dual Bayer array image sensor है
  • raw data को 16-bit binary array के रूप में संग्रहीत किया जाता है
  • शूटिंग शहर की metro सहित कई तरह के environments में की गई

रुचि क्षेत्र (ROI) detection

  • लंबे समय तक scan करने पर background data बहुत अधिक जमा होता है, इसलिए moving object segment auto-detection algorithm अनिवार्य है
  • energy function (gradient-based) और maximum pixel value आदि को मिलाकर vertical structure (movement) और horizontal structure (background) में भेद किया जाता है
  • इमेज को कई chunks में बाँटा जाता है, और हर chunk की 99th percentile energy से score निकाला जाता है
  • जिन chunks का score न्यूनतम की तुलना में 1.5 गुना या अधिक हो, उन्हें moving object वाले region के रूप में माना जाता है
  • पुराने तरीक़े generalize नहीं कर पाए, जबकि मौजूदा तरीका अलग-अलग परिस्थितियों में अधिक प्रभावी है

गति अनुमान

  • जब subject चल रहा हो, तब speed estimation विफल होने पर इमेज फैल या सिकुड़ कर विकृत हो जाती है
  • कैमरे के दो green channels की तुलना करके हर chunk के लिए motion speed निकाली जाती है
  • हर chunk पर -7~+7 तक छोटे shifts लागू करने के बाद दोनों channels के absolute difference से cost array बनाई जाती है
  • subpixel peak खोजने के लिए Gaussian-आधारित [mean shift] शैली interpolation का उपयोग किया जाता है, और spline से कुल variation को correct किया जाता है
  • निकाली गई spline values original time series में sample intervals को दर्शाती हैं, और इन्हें इमेज distortion सुधारने में उपयोग किया जाता है

री-सैंपलिंग

  • spline के अनुसार sample positions निकालकर नई इमेज तैयार की जाती है
  • spline negative होने पर left-right flip, 0 के क़रीब होने पर error handling जैसी exceptional conditions का ध्यान रखा जाता है
  • हर sample position के लिए sample width की जानकारी भी संग्रहीत की जाती है, और Hann window जैसी उपयुक्त windowing function से anti-aliasing performance बेहतर होती है
  • केवल column selection या rectangular window, upsampling के समय खुरदरे artifacts पैदा करते हैं, इसलिए उपयुक्त नहीं हैं

डिमोज़ाइकिंग

  • 2-column Bayer array के spatial offset को ध्यान में रखते हुए bilinear interpolation जैसी custom demosaicing की आवश्यकता होती है
  • speed estimation के बाद linear interpolation से fringing जैसी समस्याओं को सुधारा जाता है
  • दो green channel data के अंतर के कारण सामान्य Bayer array की तुलना में बेहतर full-color reconstruction की संभावना भी है

ऊर्ध्वाधर stripes हटाना

  • clock jitter (stripes), subject brightness variation के कारण इमेज में vertical stripes पैदा होते हैं
  • linear regression और Gaussian weights का उपयोग कर हर column के लिए correction function (iteratively reweighted least squares) के माध्यम से stripes सुधारे जाते हैं
  • ऐसे correction functions एक mathematical group structure बनाते हैं, और correction accumulation के दौरान drift रोकने के लिए band-diagonal linear system solution पर विचार किया जाता है
  • व्यवहार में exponential smoothing filter आदि से high-frequency noise suppression भी संभव है
  • stripe correction को speed estimation से पहले करना अनिवार्य है

noise suppression

  • patch-based (block matching) noise control technique लागू की जाती है, जो ट्रेन की सतह की दोहरावदार texture का सक्रिय उपयोग करती है
  • हर 3×3 pixel patch के feature vector का उपयोग करके, similar patches के भीतर weighted average से noise कम किया जाता है
  • signal strength के अनुसार Poisson distribution (root transform) के साथ pre-processing करने पर performance बेहतर होती है
  • मौजूदा total variation denoising techniques में texture loss अधिक होता है, इसलिए वे उपयुक्त नहीं हैं
  • इस technique की सीमा यह है कि इसकी computation बहुत अधिक है और यह धीमी है

skew correction

  • यदि कैमरा पूरी तरह vertical न हो, तो पूरी इमेज थोड़ा तिरछी दिखाई देती है
  • skew detection को speed estimation के बाद और अंतिम resampling से पहले करना चाहिए, ताकि information loss न्यूनतम रहे
  • Hough transform आदि की मदद से vertical structures पर आधारित automatic detection संभव है

color correction

  • फिलहाल color tone को manual correction matrix से समायोजित किया जाता है
  • व्यवहार में natural skin tone जैसी चीज़ों सहित quality काफ़ी अच्छी है

implementation details

  • पूरा pipeline Python और numpy में implemented है
  • data size बहुत बड़ा होने के कारण (4096 rows × कई लाख columns), memory shortage से निपटने के लिए chunk-based stage-by-stage processing अपनाई गई है
  • एकमुश्त memory allocation व्यावहारिक नहीं होने से, हर stage में data को आंशिक रूप से process और store किया जाता है

implementation अनुभव

  • code implementation के लिए AI tools अपनाने की कोशिश की गई, लेकिन परिणाम सीमित रहे
  • कई बार AI ने linear problems के लिए अनावश्यक quadratic time complexity वाला अक्षम code तैयार किया
  • बड़े arrays के processing में अनावश्यक full-mask generation जैसी memory issues भी सामने आईं
  • कुछ APIs, code structuring, और visualization (Matplotlib) जैसे कामों में AI उपयोगी साबित हो सकता है

अन्य लोगों के line scan train photo उदाहरण

Adam Magyar

  • [Adam Magyar] ने अपने स्वतंत्र black-and-white line scan camera से "Stainless", "Urban Flow" projects किए
  • उन्होंने इनडोर metro जैसे low-light environments में भी बेहद साफ़ results कैप्चर किए हैं
  • metro lighting के flicker से बचने के लिए shooting location सावधानी से चुननी पड़ती है

KR64 ब्लॉग

  • [kr64.seesaa.net] पर जापान भर की विभिन्न ट्रेनों की line scan तस्वीरें बड़ी मात्रा में प्रकाशित हैं
  • अनुमान है कि ये film slit-scan camera पर आधारित हैं, और इनमें बहुत अधिक विविधता व गुणवत्ता है
  • तकनीकी समस्याओं के कारण साइट अक्सर डाउन रहती है, और संपर्क भी संभव नहीं है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.