2011-01-19 6 views
7

मैं वर्तमान में भू-भौतिक प्रोजेक्ट पर काम कर रहे एक दोस्त की मदद कर रहा हूं, मैं किसी भी तरह से एक छवि प्रसंस्करण समर्थक नहीं हूं, लेकिन इस तरह की समस्याओं के साथ खेलने के लिए मजेदार है। =)चट्टानों के पानी के स्तर से ऊपर की ऊंचाई को ढूंढना

इसका उद्देश्य सतह से ऊपर तक, पानी से चिपकने वाले छोटे चट्टानों की ऊंचाई का अनुमान लगाना है।

प्रायोगिक उपकरण एक ~ 10 एमपी कैमरा एक दूरी मीटर पर एक लेजर पॉइंटर के साथ घुड़सवार होगा। "ऑपरेटर" इसे एक चट्टान पर इंगित करेगा, एक ट्रिगर दबाएगा जो चट्टान की तस्वीर के साथ दूरी पंजीकृत करेगा, जो छवि के केंद्र में होगा।

eqipment हमेशा पानी के ऊपर एक निश्चित दूरी पर आयोजित किया जा सकता है।

मैं इसे देख कई समस्याओं का दूर करने के लिए देखते हैं:

  1. प्रकाश की स्थिति

    • दिन आदि के समय पर निर्भर करता है, रॉक उज्जवल तो हो सकता है पानी या विपरीत।
    • कभी-कभी चट्टान के पास पानी के बहुत करीब रंग होता है।
    • छाया की स्थिति पूरे दिन चली जाएगी।
    • पानी के कितने मोटे होने पर निर्भर करता है, कभी-कभी पानी में चट्टान का प्रतिबिंब हो सकता है।
  2. विविधता

    • रॉक समान रूप से आकार का नहीं है।
    • चट्टान के प्रकार, लाइसेंस के विकास आदि के आधार पर, चट्टान के रूप में परिवर्तन बदलता है।

Fortunateness, वहाँ परीक्षण डेटा की कोई कमी नहीं है। पानी में चट्टानों की तस्वीरें आना आसान है। यहां कुछ नमूना छवियां दी गई हैं: alt text मैंने छवियों पर एक एज डिटेक्टर चलाया है, और esp। चौथी तस्वीर में खराब कंट्रास्ट किनारों को देखना मुश्किल बनाता है: alt text किसी भी विचार की सराहना की जाएगी!

+0

वे एक ही समस्या पर थोड़ा सा काम करते हैं: http://gaugecam.com/blog/?page_id=62 (हालांकि मुझे आपकी समस्या का कोई समाधान नहीं दिख रहा है) – svrist

+0

ऐसा लगता है कि आप अपने किनारे डिटेक्टर को और अधिक ट्विक कर सकते हैं http://en.wikipedia.org/wiki/Edge_detection – svrist

+0

यह एक दृष्टि समस्या है; जब तक कि आप किनारे डिटेक्टर में सुधार करने में मदद नहीं चाहते हैं। – koan

उत्तर

4

मुझे नहीं लगता कि किनारे का पता लगाने चट्टानों का पता लगाने के लिए सबसे अच्छा तरीका है। अन्य वस्तुओं, पहाड़ों की तरह या यहां तक ​​कि पानी में प्रतिबिंब के परिणामस्वरूप किनारों का परिणाम होगा।

मेरा सुझाव है कि आप छवि की पृष्ठभूमि से चट्टानों के क्षेत्र के लिए एक पिक्सेल वर्गीकरण तरीके का प्रयास करें:

  • छवि में प्रत्येक पिक्सेल के लिए, एक NxN पड़ोस कि पर केन्द्रित से छवि वर्णनकर्ता का एक सेट निकालने पिक्सेल।
  • छवियों का एक सेट चुनें और पिक्सेल को रॉक या पृष्ठभूमि के रूप में मैन्युअल रूप से लेबल करें।
  • क्लासिफायर को प्रशिक्षित करने के लिए लेबल किए गए पिक्सल और संबंधित छवि वर्णनकर्ताओं का उपयोग करें (उदाहरण के लिए।एक बेवकूफ बेयस वर्गीकृत)

चट्टानों के समान बनावट होने के बाद, मैं वर्गीकरण को प्रशिक्षित करने के लिए बनावट छवि वर्णनकर्ताओं का उपयोग करूंगा। उदाहरण के लिए, आप प्रत्येक रंग चैनल (आर, जी, बी) से तीव्रता मूल्यों के औसत और मानक विचलन जैसे कुछ सांख्यिकीय उपायों को निकालने का प्रयास कर सकते हैं।

+0

हाँ, मैंने एनबी जैसे संभाव्य वर्गीकरण का उपयोग करने के बारे में सोचा, लेकिन मुझे नहीं लगता कि यह प्रतिबिंब को कैसे खत्म करेगा .. – Theodor

2

चट्टान को खोजने के लिए रंग विभाजन, शीर्ष पर खोजने के लिए किनारे का पता लगाने के साथ।

पानी के स्तर को खोजने के लिए मैं सभी पानी की चट्टानों की सीमाओं को कोशिश करता हूं और क्षितिज (यदि संभव हो) तो पानी की सतह पर एक विमान फिट करता हूं। इस तरह आपको चट्टान के प्रतिबिंबों के बारे में चिंता करने की आवश्यकता नहीं है।

आसान अगर आप कैमरे और पानी के बीच पिच कोण को जानते हैं और यदि कैमरा क्षैतिज (रोल) स्तर पर है।

ps। यह मैंने सोचा जितना कठिन है - आप सभी चट्टानों की दूरी नहीं जानते हैं ताकि विमान को फिट करना मुश्किल हो।

ऐसा होता है कि प्रतिबिंब वास्तव में स्तर खोजने का आदर्श तरीका है, चट्टान किनारे का पता लगाने में सममित पथ किनारों की तलाश करें और कशेरुक चुनें?

+0

चट्टान छवि में केंद्रित होगा, इसलिए छवि में चट्टान ढूंढना कोई समस्या नहीं है। लेकिन आप शायद छवि से चट्टान निकालने का जिक्र करते हैं। पानी की सतह पर एक विमान को फ़िट करना समझ में आता है, लेकिन आप प्रतिबिंबों को कैसे फ़िल्टर करते हैं? मैं मानता हूं कि रोल और पिच कोण को जाना जाना चाहिए, जो आसानी से उपकरण पर कैमरे के तिपाई पर आपके जैसे साधारण स्तर को फ़िट करके पूरा किया जा सकता है। – Theodor

2

पिक्सेल वर्गीकरण यहां काम कर सकता है, लेकिन कभी 100% सटीकता उत्पन्न नहीं करेगा। डेटा में भिन्नता वास्तव में बड़ी है, चट्टानों के अलग-अलग रंग होते हैं (जो प्रकाश के साथ "दूषित" भी होते हैं) और विभिन्न बनावट। इसलिए, किसी को भी वैश्विक जानकारी के लिए जिम्मेदार होना चाहिए।

आप जिस समस्या से निपटते हैं वह अग्रभूमि निष्कर्षण है। दो दृष्टिकोण हैं जिनके बारे में मुझे पता है।

  1. ग्राफ कट के माध्यम से ऊर्जा न्यूनीकरण, उदाहरण के लिए देखें। http://en.wikipedia.org/wiki/GrabCut (पेपर और ओपनसीवी कार्यान्वयन के लिंक हैं)। कुछ प्रारंभिकरण ("बीज") किया जाना चाहिए (या तो उपयोगकर्ता द्वारा या कुछ पूर्व ज्ञान से चट्टान केंद्र में है जबकि पानी परिधि पर है)। इनपुट का एक और संस्करण अनुमानित बाध्य आयताकार है। यह एमएस ऑफिस 2010 फोरग्राउंड निष्कर्षण उपकरण में लागू किया गया है। संभावित अग्रभूमि/पृष्ठभूमि लेबलिंग का ऊर्जा कार्य अग्रभूमि बीज, और एक चिकनी सीमा के समान होने के लिए अग्रभूमि को लागू करता है। तो, न्यूनतम ऊर्जा अच्छी अग्रभूमि मुखौटा से मेल खाती है। ध्यान दें कि पिक्सेल वर्गीकरण दृष्टिकोण के साथ किसी को सीखने के लिए बहुत सारी छवियों को प्री-लेबल करना चाहिए, फिर सेगमेंटेशन स्वचालित रूप से किया जाता है, जबकि इस दृष्टिकोण के साथ प्रत्येक को प्रत्येक क्वेरी छवि पर बीज का चयन करना चाहिए (या उन्हें पूरी तरह से चुना जाता है)।

  2. Active contours a.k.a. सांप भी कुछ उपयोगकर्ता इंटरैक्शन की आवश्यकता है। वे फ़ोटोशॉप मैजिक वंड टूल की तरह हैं। वे एक चिकनी सीमा खोजने की भी कोशिश करते हैं, लेकिन आंतरिक क्षेत्र पर विचार नहीं करते हैं।

दोनों विधियों में प्रतिबिंब (पिक्सेल वर्गीकरण निश्चित रूप से होगा) के साथ समस्या हो सकती है। यदि यह मामला है, तो आप अनुमानित लंबवत समरूपता को खोजने का प्रयास कर सकते हैं, और निचले भाग को हटा सकते हैं, यदि कोई हो। ग्राफ़ कटौती के आंकड़े एकत्र करते समय आप उपयोगकर्ता को पृष्ठभूमि के रूप में रिफ्लेक्शन को चिह्नित करने के लिए भी कह सकते हैं।

+0

कूल, ग्रैबकूट/ग्राफ कट तकनीक वास्तव में आशाजनक लगती है। पानी की सतह का पता लगाने के लिए कुछ तकनीक के साथ यह दिलचस्प हो सकता है। शायद आप निकाले गए ब्लॉब में एक त्रिकोण फिट कर सकते हैं, और त्रिभुजों की ऊंचाई के माध्यम से अनुमान लगा सकते हैं। – Theodor

संबंधित मुद्दे