- लाइन स्कैन कैमरा ट्रेन जैसी गतिमान वस्तुओं को उच्च रिज़ॉल्यूशन में बिना विकृति के कैप्चर करने के लिए बेहद उपयुक्त है
- इमेज प्रोसेसिंग के लिए 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 पर आधारित हैं, और इनमें बहुत अधिक विविधता व गुणवत्ता है
- तकनीकी समस्याओं के कारण साइट अक्सर डाउन रहती है, और संपर्क भी संभव नहीं है
अभी कोई टिप्पणी नहीं है.