मुझे सबसे सटीक कैमरा कैलिब्रेशन कैसे मिलता है?


16

सबसे पहले, मुझे आशा है कि यह सही स्टैक एक्सचेंज बोर्ड है। अगर यह नहीं है तो मेरी माफ़ी।

मैं कुछ ऐसा काम कर रहा हूं जिसके लिए मुझे कैमरे को कैलिब्रेट करने की आवश्यकता है। मैंने OpenCV (C ++) में ऐसा करने के लिए कोड को सफलतापूर्वक लागू किया है। मैं इनबिल्ट चेसबोर्ड फ़ंक्शंस और एक शतरंजबोर्ड का उपयोग कर रहा हूं जिसे मैंने बंद कर दिया है।

इंटरनेट पर कई ट्यूटोरियल हैं जो शतरंज की बिसात पर एक से अधिक दृश्य देने और प्रत्येक फ्रेम से कोनों को निकालने के लिए कहते हैं।

क्या सबसे सटीक कैमरा अंशांकन प्राप्त करने के लिए फ़ंक्शन को देने के लिए विचारों का एक इष्टतम सेट है? अंशांकन की सटीकता को क्या प्रभावित करता है?

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

किसी को भी जाने पर FYI करें: मुझे हाल ही में पता चला है कि आपको असममित हलकों और संबंधित ओपनसीवी फ़ंक्शन के ग्रिड का उपयोग करके बेहतर कैमरा अंशांकन प्राप्त करना चाहिए।

जवाबों:


8

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

विरूपण गुणांक "विशेष" कैमरों में व्यापक-कोण या 360 ° जैसे मौजूद हैं।

यहाँ अंशांकन के बारे में विकिपीडिया प्रविष्टि है । और यहां गैर-रैखिक विरूपण है , जो अधिकांश कैमरों के लिए नगण्य है।


यूलर्स एंगल्स द्वारा मेरा मानना ​​है कि आप x, y में शतरंज के चारों ओर कैमरे (शतरंज की चौकी के साथ धुरी के साथ) को घुमाते हैं और कैमरे को z में शतरंज की बिसात की ओर और दूर ले जाते हैं? मैंने किसी ऐसे व्यक्ति के बारे में पढ़ा, जिसने बस ट्रांसफॉर्म की हुई बिसातें छपवाईं और कैमरे को उसी जगह पर रखा। उदाहरण के लिए: i.imgur.com/rYzV4.png और i.imgur.com/McG9z.png । क्या इस तरह की चीजों का उपयोग करना एक खराब निर्णय है क्योंकि यह प्रतिनिधित्व नहीं कर सकता है कि वास्तविकता में चीजें कैसे दूर होंगी?
चीता

चल कैमरा के बारे में हाँ। हाँ फिर से रखने के बारे में।
दर्पण २।

@ mirror2image आपका मतलब है, व्यावहारिक संचालन में, विभिन्न कोणों को बदलना बेहतर है। लेकिन इसका मतलब है कि विभिन्न विचारों में अलग-अलग विश्व समन्वय प्रणालियां होंगी। क्या मुझे समान समन्वय प्रणाली में ऑब्जेक्ट पॉइंट्स रखने के लिए एक साझा विश्व समन्वय प्रणाली का उपयोग करने की आवश्यकता है?
रिचर्ड

3

@ - दृश्य की संख्या कैमरा और अंतिम सटीकता की आवश्यकता पर निर्भर करती है।

बहुत उच्च गुणवत्ता के साथ, कम विरूपण वाले लेंस (उच्च अंत 35 मिमी एसएलआर) बहुत सारे शतरंज की छवियों का उपयोग करके विकृतियों को मैप करने के लिए अस्थिर हो सकते हैं - चूंकि विकृतियां पिक्सेल के अंश हैं।
आपको अभी भी बोर्ड (या कैमरा) के साथ कई शॉट्स चाहिए, क्योंकि छवि केंद्र सामान्य रूप से केवल नाममात्र x / 2, y / 2 के पिक्सेल के एक जोड़े के भीतर होता है और फ़ोकस के साथ बदल जाएगा। और बेशक ज़ूम सब कुछ बदल देता है।

एक बार जब आपके पास लेंस-चिप केंद्र और फोकल लंबाई (एक्स और वाई में) होती है, तो आपको शॉट में केवल एक शतरंज बोर्ड की आवश्यकता होती है ताकि आपको अपनी स्थिति मिल सके


मैं वास्तव में खराब अंशांकन प्राप्त कर रहा हूं और मैं ईमानदारी से समझ नहीं पा रहा हूं कि क्यों। मेरे पास दीवार पर एक मुद्रित बिसात है और मैं कैमरे को अलग-अलग स्थिति में ले जा रहा हूं, इसलिए यह बिसात पर अलग-अलग विचार रखता है, लेकिन जब भी मैं ऑप्सनव में अविष् ट फ़ंक्शन का उपयोग करता हूं और यह मूल की तुलना में बहुत अजीब और विकृत हो जाता है। मेरा कैमरा Microsoft LifeCam Studio 1080p है।
चीता

@ किसी भी ऑटोफोकस को अक्षम करें। छोटे लेंस पर फोकस के साथ फोकल लंबाई और लेंस केंद्र बदलते हैं। क्या आप पर्याप्त घूम रहे हैं कि यह केंद्र के लिए एक अच्छा फिट हो जाए? क्या चौकों को कोनों तक जाना है? अंत में जांचें कि सभी लक्ष्यों में सभी वर्गों का पता लगाया गया है।
मार्टिन बेकेट

ऑटोफोकस को पहले ही अक्षम कर दिया गया है। पर्याप्त परिभाषित करें? मैं चरम कोण के रूप में कोशिश कर रहा हूं क्योंकि मैं अंक उठा सकता हूं। सुनिश्चित नहीं हैं कि "कोनों से बाहर जाने वाले" से आपका क्या मतलब है, यदि आपका मतलब उस फ़ंक्शन से है जो छवि पर निकाले गए कोनों को खींचता है - तो हाँ। मेरे पास पहले से ही यह देखने के लिए चेक है कि सभी कोनों का पता चला है। मुझे लगता है कि मेरी समस्या हो सकती है कि मैं क्या आंतरिक मैट्रिक्स है कि मैं अंशांकन समारोह को पारित में करने के लिए प्रारंभिक फोकल लंबाई सेट के साथ झूठ बोलते हैं। मैंने 1: 1, 16: 9 की कोशिश की है (जो मुझे लगता है कि वेब कैमरा पहलू अनुपात है) और उसने कुछ भी नहीं करने की कोशिश की है (जो आप कर सकते हैं)
चीता

@Martin क्या यह संभव है कि कैमरे को स्टेशनरी की स्थिति में रखते हुए और कैमरे और शतरंज के बीच की दूरी को बदले बिना शतरंज की बिसात को बदलते हुए अंशांकन किया जाए ??

@ संतोष - हाँ यह बिल्कुल स्पष्ट है। आपको यह सुनिश्चित करने की आवश्यकता है कि आपने बहुत सारे अलग-अलग कोणों को कवर किया है
मार्टिन बेकेट

3

मैंने इस उत्तर को यहाँ पोस्ट करने का निर्णय लिया क्योंकि कुछ समय पहले, यह Google में शीर्ष परिणाम के रूप में आया था और इसके सुझावों ने मेरी मदद की। इसलिए मैंने अपना अनुभव भी साझा करने का फैसला किया।

एक Kinect पर सबसे अच्छा स्टीरियो अंशांकन प्राप्त करने की कोशिश कर अनगिनत घंटे बिताए, मैंने अपने सुझाव और निष्कर्ष यहां एक ब्लॉग पोस्ट में साझा किए हैं

यद्यपि यह स्टीरियो कैलिब्रेशन और अधिक विशेष रूप से Kinect की ओर सक्षम है, मेरा मानना ​​है कि युक्तियां किसी को भी मदद करेगी जो एक कैमरा को कैलिब्रेट करने की कोशिश कर रहा है।

इसके अलावा, अगर मुझे किसी दिन मर जाना चाहिए या अपनी मेजबानी को नवीनीकृत करना भूल जाना चाहिए, तो यहां पोस्ट से एक संशोधित उद्धरण है:

  1. सुनिश्चित करें कि आपके पास सबसे बड़ा संभव अंशांकन पैटर्न है। मैंने ऊपर जो कहा उसका पालन करें। पेशेवर रूप से मुद्रित एक अच्छा पैटर्न प्राप्त करें। सुनिश्चित करें कि प्रत्येक वर्ग कम से कम 8 सेमी x 8 सेमी है। इसके अलावा, सुनिश्चित करें कि अंशांकन पैटर्न के एक तरफ वर्गों की एक विषम संख्या है और दूसरे पक्ष में वर्गों की एक समान संख्या है (जैसे 9 × 6 या 7 × 8)। यह लक्ष्य की मुद्रा का सही तरीके से पता लगाने के लिए महत्वपूर्ण है। साथ ही, कुछ टूलबॉक्स इस आवश्यकता को पूरा नहीं करने वाले पैटर्न का पता लगाने में सक्षम नहीं होंगे। जैसा कि पहले उल्लेख किया गया है, मैंने जिन पैटर्न का इस्तेमाल किया है, वे बड़ी शीटों पर छपाई के लिए उपयुक्त हैं (9cm वर्ग के लिए) और यहाँ (10cm वर्ग के लिए) अपलोड किए गए हैं।
  2. सुनिश्चित करें कि आपके मुद्रित पैटर्न के चारों ओर पर्याप्त सफेद सीमा है, अन्यथा यह आसानी से अधिकांश टूलबॉक्स द्वारा पता नहीं लगाया जा सकता है।
  3. सुनिश्चित करें कि Kinect नहीं चलती है। मैंने अपने Kinect को तिपाई पर चढ़ाने के लिए एक माउंट का उपयोग किया।
  4. के रूप में आप कर सकते हैं अंशांकन लक्ष्य की कई छवियों को प्राप्त करने की कोशिश करें। मेरा सबसे अच्छा अंशांकन 300 छवियों का उपयोग करके प्राप्त किया गया था, कम से कम 0.5 मीटर की दूरी पर कैमरे से 10 मीटर की दूरी पर। सुनिश्चित करें कि आप X, Y और Z कुल्हाड़ियों के आसपास पैटर्न को घुमाते हैं। एक ही दूरी पर ली गई छवियों के साथ दृश्य को "टाइल" करने का भी प्रयास करें: यानी एक छवि लें, लक्ष्य को दृश्य के क्षेत्र में अगली टाइल पर ले जाएं, एक और लें और तब तक दोहराएं जब तक आप सभी "चालू" न हों देखने के क्षेत्र। लक्ष्य प्रत्येक क्षेत्र पर जितना संभव हो सके, पूरे क्षेत्र को कवर करना है।
  5. यदि संभव हो तो MATLAB के स्टीरियो कैलिब्रेशन ऐप का उपयोग करें। यह आपको प्रत्येक अंशांकन चरण के बाद आउटलेर्स से छुटकारा पाने की अनुमति देता है।

3

यहाँ कैमरा अंशांकन के लिए 'सर्वोत्तम प्रथाओं' की एक सूची दी गई है, जिसे मैंने मूल रूप से यहाँ पोस्ट किया है: https://calib.io/blogs/knowledge-base/calibration-best-practices

  • सही आकार का अंशांकन लक्ष्य चुनें। बड़े पैमाने पर ठीक से कसौटी पर कसने के लिए। अधिमानतः यह लगभग कवर किया जाना चाहिए। कैमरे की छवियों में फ्रंट-समानांतर को देखने पर कुल क्षेत्रफल का आधा।
  • अपने अंतिम आवेदन की अनुमानित कार्य दूरी (WD) पर अंशांकन करें। कैमरे को इस दूरी पर केंद्रित किया जाना चाहिए और अंशांकन के बाद फोकस को अपरिवर्तित किया जाना चाहिए।
  • लक्ष्य में एक उच्च विशेषता गणना होनी चाहिए। ठीक पैटर्न का उपयोग करना बेहतर है। हालांकि, कुछ बिंदु पर मजबूती का पता चलता है। हमारी सिफारिश है कि 3MPx से ऊपर के कैमरों के लिए फाइन पैटर्न काउंट्स का उपयोग किया जाए और यदि लाइटिंग को नियंत्रित और अच्छा किया जाए।
  • अलग-अलग क्षेत्रों और झुकावों से छवियां एकत्र करें। छवि क्षेत्र को पूरी तरह से कवर करने और यहां तक ​​कि कवरेज के लिए लक्ष्य को ले जाएं। लेंस विरूपण केवल फ्रंटो-समानांतर छवियों से ठीक से निर्धारित किया जा सकता है, लेकिन फोकल लंबाई का अनुमान पूर्वाभास के अवलोकन पर निर्भर है। दोनों सामने की समानांतर छवियां शामिल करें, और बोर्ड के साथ ली गई छवियां क्षैतिज रूप से दोनों ऊर्ध्वाधर दिशा में +/- 45 डिग्री तक झुकी हुई हैं। अधिक झुकाना आमतौर पर एक अच्छा विचार नहीं है क्योंकि सुविधा स्थानीयकरण सटीकता से ग्रस्त है।
  • अच्छी लाइटिंग का इस्तेमाल करें। यह अक्सर अनदेखी की जाती है, लेकिन बेहद महत्वपूर्ण है। अंशांकन लक्ष्य अधिमानतः नियंत्रित फोटोग्राफी प्रकाश के माध्यम से प्रज्ज्वलित किया जाना चाहिए। मजबूत बिंदु स्रोत असमान रोशनी को जन्म देते हैं, संभवतः पता लगाने में विफल होते हैं, और कैमरे की गतिशील सीमा का उपयोग नहीं करते हैं। छायाएं भी ऐसा कर सकती हैं।
  • पर्याप्त अवलोकन करें। आमतौर पर, अंशांकन लक्ष्य के कम से कम 6 अवलोकनों (छवियों) पर अंशांकन किया जाना चाहिए। यदि एक उच्च क्रम कैमरा या विरूपण मॉडल का उपयोग किया जाता है, तो अधिक अवलोकन फायदेमंद होते हैं।
  • चारुको बोर्डों जैसे विशिष्ट कोडित लक्ष्यों का उपयोग करने पर विचार करें। ये आपको कैमरा सेंसर और लेंस के बहुत किनारों से टिप्पणियों को इकट्ठा करने की अनुमति देते हैं, और इसलिए विरूपण मापदंडों को बहुत अच्छी तरह से विवश करते हैं। इसके अलावा, वे आपको तब भी डेटा एकत्र करने की अनुमति देते हैं, जब एकल सुविधा बिंदु अन्य आवश्यकताओं को पूरा नहीं करते हैं।
  • कैलिब्रेशन केवल उतना ही सटीक है जितना कि उपयोग किए गए अंशांकन लक्ष्य। केवल मान्य और परीक्षण करने के लिए लेजर मुद्रित लक्ष्य का उपयोग करें।
  • अंशांकन लक्ष्य और कैमरे का उचित बढ़ते। विकृति को कम करने और बड़े लक्ष्यों में झुकने के लिए, उन्हें या तो लंबवत रूप से माउंट करें, या कठोर समर्थन पर फ्लैट बिछाएं। इसके बजाय इन मामलों में कैमरा ले जाने पर विचार करें। एक गुणवत्ता तिपाई का उपयोग करें, और अधिग्रहण के दौरान कैमरे को छूने से बचें।
  • बुरी टिप्पणियों को निकालें। ध्यान से reprojection त्रुटियों का निरीक्षण करें। प्रति-दृश्य और प्रति-सुविधा दोनों। यदि इनमें से कोई भी आउटलेर के रूप में दिखाई देता है, तो उन्हें बाहर करें और पुन: जाँचें।

अंशांकन लक्ष्यों के लिए PDF जनरेट करने का एक ऑनलाइन टूल यहां पाया गया है: https://calib.io/pages/camera-calibration-pattern-generator


नमस्ते, डीएसपी एसई में आपका स्वागत है। स्व-प्रचारक उत्तर आमतौर पर यहाँ स्वागत योग्य नहीं हैं। कृपया इसे उच्च गुणवत्ता का उत्तर बनाने पर विचार करें।
jojek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.