स्टीरियो विजन सिस्टम के लिए कैमरों का चयन कैसे करें?


18

मैं एक यूजीवी पर उपयोग किए जाने वाले स्टीरियो विजन सिस्टम के निर्माण की प्रक्रिया में हूं। यह प्रणाली एक रोबोट के लिए है जिसका उपयोग एक प्रतियोगिता में किया जाएगा, जिसमें एक बड़े आउटडोर क्षेत्र में अपेक्षाकृत छोटे रंगीन चट्टानों को खोजने के लिए रोबोट को टेलीपोर्नेट किया जाता है। मैं समझता हूं कि इस तरह की प्रणाली को कैसे जांचना है और एक स्टीरियो विजन सिस्टम के लिए डेटा को संसाधित करना है। मैं नहीं जानता कि इस तरह की प्रणाली के लिए कैमरों का चयन कैसे करें। स्टीरियो विज़न सिस्टम के लिए कैमरे चुनने के लिए सर्वोत्तम अभ्यास क्या हैं?

जवाबों:


11

मेरे सिर के ऊपर से मैं निम्नलिखित चयन मानदंड से जाऊंगा

  • रंग / बी एंड डब्ल्यू - आमतौर पर बी एंड डब्ल्यू बेहतर होता है, क्योंकि स्टीरियो एल्गोरिदम केवल एक ही चैनल का उपयोग करते हैं
  • आधार रेखा - यह वास्तव में दृश्य पर निर्भर करता है। आधार रेखा से आप नियंत्रित करते हैं कि आप दूरी के साथ कितनी सटीकता प्राप्त करते हैं। वाइडर बेसलाइन के परिणामस्वरूप उच्च असमानता के मान होते हैं और इस प्रकार दूरी के अनुमान पर कम शोर होता है। उच्च बेसलाइन का अर्थ यह भी है कि आपको अपने विचारों के क्षेत्र के बीच एक कम ओवरलैप मिलेगा। हालांकि, सबसे महत्वपूर्ण बात यह है कि आधारभूत दो दृष्टिकोणों के बीच मिलान जितना कठिन है। तो परिणाम की गुणवत्ता नीचे जाती है।
  • शटर - हमेशा मोबाइल रोबोट पर कंप्यूटर दृष्टि के साथ किसी भी चीज के लिए एक वैश्विक शटर का उपयोग करें
  • संकल्प - सबसे स्टीरियो एल्गोरिदम कम्प्यूटेशनल रूप से महंगे हैं। और आपको संभवतः कई 3D बिंदुओं की आवश्यकता नहीं होगी। निकट क्षेत्र में नमूना घनत्व आमतौर पर पर्याप्त है, और कम असमानता से आपकी त्रुटि दूर क्षेत्र नमूना घनत्व की तुलना में एक समस्या का अधिक है। ज्यादातर मामलों में 640x480 ठीक है। कुछ चिप्स में एक व्यापक पहलू अनुपात होता है, जो ओवरलैप के लिए अनुकूल होता है, लेकिन आप अपनी चिप की उप-विंडो का उपयोग करके इसे प्राप्त कर सकते हैं।
  • उद्देश्य / देखने का क्षेत्र - मोबाइल आउटडोर रोबोट के लिए मैं संकीर्ण उद्देश्यों से अधिक व्यापक दृष्टिकोण पसंद करता हूं। संकल्प के समान कारणों के लिए कम या ज्यादा। सुनिश्चित करें कि आपके उद्देश्य कठोर हैं और समायोज्य फोकल लंबाई जैसे किसी भी चलती भागों को ठीक करने का एक साधन है। ज्यादातर मामलों में एक निश्चित फोकल लंबाई वैसे भी ठीक है, क्योंकि आप अपने बेसलाइन के चयन से सीमित हैं।
  • ट्रिगर - जब आप अपने स्वयं के स्टीरियो रिग बनाते हैं, तो आपके कैमरों को हार्डवेयर ट्रिगर का समर्थन करना चाहिए और आदर्श रूप से दूसरे को ट्रिगर करना चाहिए।
  • framerate - मेरी राय में कम से कम महत्वपूर्ण विचार। जब तक आपके पास बहुत अधिक प्रोसेसिंग पावर नहीं है, तब तक आपको 5 हर्ट्ज की तरह कुछ भी नहीं मिलेगा। तो आपके एल्गोरिथ्म में चिप या कनेक्शन के बजाय टोंटी होने की अधिक संभावना है।
  • इंटरफ़ेस - अधिकांश कैमरे Firewire / USB2 / USB3 / ईथरनेट के साथ आते हैं। USB2 बेकार है क्योंकि यह सीपीयू की बहुत खपत करता है। अगर आपके पास पोर्ट है तो फायरवायर अच्छा है, लेकिन मुझे लगता है कि यह इन दिनों USB3 के पक्ष में गिरावट पर है। USB3 के साथ अभी तक बहुत अनुभव नहीं था। ईथरनेट काफी अच्छा है क्योंकि आप वर्तमान में USB3 की तुलना में GigE ईथरनेट के साथ एम्बेडेड सिस्टम को खोजने की अधिक संभावना रखते हैं।
  • आवास - यथासंभव कठोर। रिकैलिब्रेट करना एक कष्टप्रद प्रक्रिया है।

6

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

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

संभवतः सबसे अच्छी चीज जो आप कर सकते हैं वह यह है कि आप अपनी इमेज प्रोसेसिंग एल्गोरिदम को कुछ स्टैटिक इमेजेस पर चलाएं जो कि आप डीएसएलआर के साथ लेते हैं, फिर फ्रेम के आकार और गुणवत्ता को कम करने का प्रयास करते हैं जहां चीजें टूटने लगती हैं।


6

कुछ चीजें जो आपको तलाशनी चाहिए:

  • ग्लोबल शटर मूल रूप से इसका मतलब है कि सभी पिक्सेल एक ही समय में कैप्चर किए जाते हैं, रोलिंग शटर के विपरीत जहां उन्हें लाइन स्कैन फैशन में क्रमिक रूप से कैप्चर किया जाता है। चूंकि आपका UGV घूम रहा है और आपके द्वारा कैप्चर की गई छवियों पर स्टीरियो एल्गोरिदम का प्रदर्शन कर रहा है, इसलिए यह महत्वपूर्ण हो सकता है कि आप कैमरा चाल के दौरान होने वाले विपथन से बचें, जैसे कि नीचे दी गई तस्वीरों में देखा गया ( विकिपीडिया से लिया गया ):

CMOS कैमरा फोन के साथ ली गई चलती कार तिरछा प्रदर्शित करती है आंशिक प्रदर्शन दिखाती एक तस्वीर।  फोटो के ऊपरी और निचले हिस्सों के संपर्क के बीच प्रकाश की स्थिति बदल गई। एक टर्बोप्रॉप प्रोपेलर का एक शॉट

  • हार्डवेयर में कैमरा सिंक्रोनाइज़ेशन कुछ कैमरों द्वारा प्राप्त किया जा सकता है, विशेष रूप से फायरफॉक्स कैमरा AFAIK। जब चीजें इधर-उधर हो रही हैं, तो स्टीरियो के लिए परिणामों में बहुत सुधार हो सकता है।

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

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

हमेशा की तरह, और आप बेहतर परिणाम देने के लिए तैयार हैं। ईमानदार होने के लिए, यदि आप Bumblebee2 जैसे पूर्ण-विकसित स्टीरियो कैमरा खरीदने में सक्षम हैं, तो मैं यही करूँगा। अन्यथा, यदि आप सस्ते पक्ष में हैं, तो मैं बस एक किनेक्ट के साथ जाऊंगा : यह संभावना नहीं है कि आप एक ऐसी प्रणाली प्राप्त करने में सक्षम होंगे जो एक ही कीमत के लिए इसे बेहतर बनाती है।


सवाल एक बाहरी व्यवस्था के लिए था। यह प्रभावी रूप से Kinect को नियंत्रित करता है। इसके अलावा, भौंरा के साथ आने वाले एल्गोरिदम इष्टतम से बहुत दूर हैं, हमने पाया।
जकोब

मैं Kinect टिप्पणी पर आपके साथ हूं, लेकिन भौंरा के साथ आने वाले स्टीरियो एल्गोरिदम को आपके स्वयं के कोड के साथ प्रतिस्थापित नहीं किया जा सकता है? सबसे बड़ा फायदा जो मैं इशारा कर रहा था, वह वास्तविक हार्डवेयर में था, न कि उस सॉफ्टवेयर से जो उसके साथ जुड़ा हुआ है।
जॉर्जियोबिंद्रो

हाँ वह सच है। आप इसे दो सामान्य कैमरों की तरह ही उपयोग कर सकते हैं और इसमें कठोर आवास का लाभ है।
जकोब

न केवल कि बल्कि वैश्विक शटर, अच्छे लेंस और अन्य
अच्छाइयाँ

4

यह एक दिलचस्प विषय है, और पहली कोशिश में सही होने के लिए बहुत आसान नहीं है। इसके साथ अनुभव से, यहां सबसे महत्वपूर्ण चीजें हैं।

  • संक्रान्ति । कैमरा 100% सिंक होना चाहिए। उदाहरण के लिए, मान लें कि UGV एक मामूली 36Km / hr (10m / s) ड्राइव कर रहा है और 30 फ्रेम प्रति सेकंड पर रिकॉर्डिंग कर रहा है। यही है, हर फ्रेम पर UGV 3m कवर करेगा। अब, मान लें कि आपका सिंक 1ms से बंद है, कैमरों में से एक ~ 0.3m से बंद हो जाएगा, जो कि खराब है [मेरे सिर के ऊपर से बस]। सिंक समस्याओं का पता लगाना बहुत कठिन है।

  • δजेड=जेड2बीδδजेडबीδजेडδδ1/2δ

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

यूजीवी के लिए, स्टीरियो के लिए दो उपयोग हैं।

  1. नेविगेशन और पोज़ अनुमान इस मामले में आपको संभवतः एक बड़ी आधार रेखा + लंबी फोकल लंबाई की आवश्यकता है। यह स्टीरियो को बेहतर और लंबी दूरी तक गहराई को देखने और हल करने की अनुमति देता है।

  2. बाधा का पता लगाने और बचने के लिए आपको संभवतः एक छोटे बेसलाइन और व्यापक लेंस (छोटी फोकल लंबाई) की आवश्यकता होगी ताकि आप अपने बहुत करीब की चीजों पर ध्यान केंद्रित कर सकें।

कुछ यूजीवी में दोनों स्टीरियो सेटअप हो सकते हैं, नेविगेशन के लिए बड़े बेसलाइन संकीर्ण क्षेत्र और बाधा से बचाव के लिए एक या दो या अन्य।

बहुत सावधान रहें कि आप क्या खरीदते हैं। कुछ कंपनियां पहले से निर्मित स्टीरियो सेटअप की पेशकश करती हैं। वे चीजों की मजबूती के पक्ष में महान हैं, वे आसानी से अंशांकन को ढीला नहीं करते हैं और हमेशा सिंक में होते हैं। समस्या यह है कि व्यावसायिक रूप से उपलब्ध लोगों के पास एक छोटी आधार रेखा है। अगर आप अपना खुद का निर्माण करना चाहते हैं। मुझे लगता है कि आप ऐसा करने का अंत करेंगे, सुनिश्चित करें कि कैमरा सिंक करने योग्य है । फायरवायर इसके लिए बहुत अच्छा है, एक ही बस में दो कैमरे बॉक्स से बाहर 125microsecond सटीकता के साथ सिंक करेंगे! USB और Gige कैम सिंक करने के लिए दर्दनाक हैं। जब आप सब कुछ एक साथ डालते हैं, तो आप यह सुनिश्चित करना चाहते हैं कि लेंस बिल्कुल भी नहीं हिलेंगे, और बेसलाइन कठोर है, आवेदन के लिए बहुत कठोर है।

लेंस चयन में भी सावधानी बरतें। सभी कैमरे के साथ सभी लेंस काम नहीं करते हैं। लेंस का एक संकल्प भी है। यह एक और विषय है, यहाँ इस पर एक छोटा लेख है http://www.qualitymag.com/articles/90642-qa--selecting-lenses-for-machine-vision-systems


4
आपका सिंक्रनाइज़ेशन कम्प्यूटेशन गलत है। 10m / s पर 30 FPS प्रति फ्रेम 33cm (3m नहीं) की दूरी देता है। इस गति पर भी 1ms का मतलब 1cm की दूरी (एफपीएस की परवाह किए बिना) है। तो एमएस स्तर पर सिंक्रनाइज़ेशन वास्तव में ऐसी गति के लिए एक सुपर परिणाम है!
Kozuch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.