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

1 टिप्पणियां

 
GN⁺ 2025-08-24
Hacker News टिप्पणियाँ
  • मुझे भी यह आइडिया सच में बहुत पसंद आया, मैंने भी इसी तरह ड्रोन का इस्तेमाल करके New England के सबसे बड़े पेड़ को स्कैन करने की कोशिश की थी, नतीजा बहुत अच्छा नहीं था, लेकिन फिर से कोशिश करने का मन है
    नतीजा
    यह प्रोजेक्ट इस कहानी का हिस्सा था

  • मैं भी इसी तरह की प्रक्रिया इस्तेमाल करता हूँ, लेकिन सामान्य कैमरे से शूट करके फ़्रेमों को हाथ से जोड़कर animation बनाता हूँ
    इस तरीके की खासियत यह है कि subject पर अपने-आप फ़ोकस आ जाता है, और background abstract pattern में बदल जाता है
    हर ‘line’ लगभग 15px चौड़ी होती है
    उदाहरण1 उदाहरण2 उदाहरण3
    मैंने Tokyo skyline का sunset timelapse शूट करके ऐसा ही technique लगाया, फिर motion tracking से समय को फ़्रेम के बाएँ से दाएँ बहने जैसा बनाया
    यहाँ हर line 4 pixel की है, और original animation 8k resolution में है
    संबंधित वीडियो motion tracking

  • मैंने line scan train के और उदाहरण ढूँढे, यहाँ देखें

  • इससे flatbed scanner को digital back की तरह इस्तेमाल करने वाले शुरुआती प्रयोग याद आ गए
    उदाहरण: लिंक

  • line scan camera से कार या ट्रेन के चलती हुई खिड़की के बाहर के दृश्य को शूट करने पर कैसा दिखेगा, यह सोच रहा हूँ, parallax effect से दिलचस्प distortion आ सकता है

    • ट्रेन से ली गई कुछ तस्वीरें हैं —
      Osaka Nankai 6000 Series: तस्वीर
      France landscape: तस्वीर1
      Marseille: तस्वीर2
      California: तस्वीर3 तस्वीर4
      बैंगनी पेड़ इसलिए दिख रहे हैं क्योंकि कैमरा near-infrared के प्रति संवेदनशील था, IR cut filter खरीदने के बाद से मैं ट्रेन की तस्वीरें नहीं ले पाया हूँ, कुछ में frame drop या दूसरे artifacts भी हैं
    • यही बात मैं जानना चाहता था, तकनीकी रूप से क्या लगभग एक घंटे की पूरी ट्रेन यात्रा के दृश्य को ‘scan’ करना संभव होगा?
    • सब बस धुंधला हो जाता है, इस पोस्ट के मुख्य फोटो के background जैसा एहसास आता है
      कार या ट्रेन जैसी तेज़ गति में चीज़ें ठीक से नहीं दिखतीं, अच्छी distortion के लिए बहुत धीमी गति चाहिए
  • लेख सच में दिलचस्प है, खासकर cable car photo बहुत प्रभावशाली लगी
    background content कैसे चुना जाए, यह भी सोचने लायक मज़ेदार बात है

  • मुझे याद है कि पिछले Olympics में Omega ने finish line strip camera के साथ high-frequency line display जोड़ा था
    सामान्य कैमरे में वह चमकती हुई line जैसी दिखती थी, लेकिन photo finish background में Omega logo दिखाई देता था
    बहुत सूक्ष्म था, लेकिन इसे इस तरह लागू करना प्रभावशाली लगा

  • horse racing track के photo finish camera पर यह वीडियो मुझे पसंद है, लगा कि दूसरों को भी यह रोचक लगेगा

  • जिस तरह ट्रेन रंगों की धारियों के बीच बिल्कुल धारदार तरीके से रुकी हुई दिखती है, उससे जबरदस्त गति का एहसास होता है

  • मेरी राय में denoising कुछ हद तक अप्राकृतिक दिखती है और बचे हुए artifacts, खासकर detail वाले हिस्सों में color fringe, को और उभार देती है
    मुझे लगता है इसे बंद रखना बेहतर होगा
    और demosaic प्रक्रिया के संबंध में, RCD के इस version को लागू करने से शायद artifact-free high resolution मिल सके, यह सोच रहा हूँ

    • वास्तव में मैं भी default रूप से denoising बंद रखता हूँ, क्योंकि इससे हर horizontal stripe pattern ज़्यादा साफ़ दिखने लगता है और processing भी बहुत धीमी हो जाती है
      vertical stripe correction भी हर मामले में अच्छा काम नहीं करती, बल्कि कभी-कभी pattern और बढ़ा देती है
      अभी बहुत काम बाकी है
      RCD demosaicing अगला कदम है, color fringing की समस्या इसलिए है क्योंकि red और blue channel के लिए simple linear interpolation इस्तेमाल की गई थी
      green channel पूरी image में फैला होता है, इसलिए मैं सोच रहा हूँ कि इसे guide की तरह इस्तेमाल करके interpolation को और बेहतर कैसे बनाया जाए
    • मुझे भी denoised result खास अच्छा नहीं लगता