2011-10-09 15 views
56

वे कहां भिन्न हैं?आधिकारिक किनेक्ट एसडीके बनाम ओपन-सोर्स विकल्प

उदाहरण के लिए, आधिकारिक एसडीके पर, और इसके विपरीत, libfreenect या OpenNI + सेंसरकिनेक्ट चुनने के क्या फायदे हैं?

नुकसान क्या हैं?

+4

मैं नीचे दी गई सूची संकलित कर रहा हूं। क्या मतभेदों के लिए ब्याज के कोई विशिष्ट क्षेत्र हैं? –

+0

वास्तव में नहीं। दोस्तों और मैं एक समूह का एक छोटा किनेक्ट आवेदन विकसित करने के बारे में सोच रहा था, जो संभवतः बढ़ी हुई वास्तविकता तकनीकों का सहारा लेगा। –

+0

समस्या यह है कि हम में से कुछ लिनक्स/मैक का उपयोग करते हैं और मुझे कोड लिखने में समस्या है जो अनिवार्य रूप से विंडोज़ पर लॉक हो जाएगा। –

उत्तर

55

कृपया ध्यान दें कि नीचे दिया गया उत्तर प्रति तिथि है और कुछ तथ्य निकट भविष्य में पुराने हो सकते हैं। आधिकारिक किनेक्ट एसडीके की वर्तमान स्थिति बीटा 1.00.12 है।

पहले स्पष्ट अंतर है, जबकि OpenKinect एक खुला स्रोत एसडीके खुले स्रोत समुदाय द्वारा बनाए रखा है कि सरकारी एसडीके माइक्रोसॉफ्ट रिसर्च टीम द्वारा बनाए रखा जाता है। दोनों के पास इसके विपक्ष और पेशेवर हैं।

  • सरकारी एसडीके माइक्रोसॉफ्ट जो भी हार्डवेयर विकसित द्वारा विकसित की है और इसलिए उपकरण है, जो खुला स्रोत समाज रिवर्स इंजीनियर चाहिए के बारे में आंतरिक जानकारी पता होना चाहिए। जाहिर है यह माइक्रोसॉफ्ट के फायदे के लिए है।
  • माइक्रोसॉफ्ट इस डिवाइस में बहुत पैसा डाल रहा है और मुझे यकीन है कि वे ऐसा करेंगे जो उन्हें लगता है कि उनके एसडीके को बराबर रखने के लिए आवश्यक है। इसके पीछे अर्थव्यवस्था होने से कई फायदे मिलते हैं।
  • दूसरी तरफ, ओपन सोर्स सोसाइटी की ताकत को कभी कम मत समझें: "ओपनकिनेक्ट समुदाय में 2000 से अधिक सदस्य परियोजना में अपना समय और कोड योगदान करते हैं। हमारे सदस्य इस परियोजना में शामिल हो गए हैं ताकि सर्वश्रेष्ठ संभव बनाने के मिशन के साथ Kinect के लिए अनुप्रयोगों का सूट। OpenKinect एक असली "खुला स्रोत" समुदाय है! " - http://openkinect.org/wiki/Main_Page
  • ओपनकिनेक्ट को आधिकारिक एसडीके से बहुत पहले रिलीज़ किया गया था क्योंकि किनेक्ट डिवाइस को रिलीज के पहले या दूसरे दिन हैक किया गया था। OpenKinect के लिए Kudos!

प्रोग्रामिंग भाषाओं का समर्थन:

  • सरकारी एसडीके: C++, C#, या माइक्रोसॉफ्ट विजुअल स्टूडियो का उपयोग करके दृश्य मूल 2010
  • OpenKinect: अजगर, सी, सी ++, C#, जावा, लिस्प और अधिक! स्पष्ट रूप से विजुअल स्टूडियो की आवश्यकता नहीं है।

ऑपरेटिंग सिस्टम का समर्थन:

  • सरकारी एसडीके: केवल Windows पर स्थापित करता है 7.
  • OpenKinect: लिनक्स, ओएस एक्स और Windows

पर रन जाहिर OpenKinect लाभ।

लाइसेंस:

  • सरकारी एसडीके केवल परीक्षण के लिए अपने वर्तमान बीटा अवस्था में है। एसडीके को अकादमिक, अनुसंधान और उत्साही समुदायों द्वारा विस्तृत अन्वेषण और प्रयोग को प्रोत्साहित करने के लिए विशेष रूप से विकसित किया गया है। वाणिज्यिक अनुप्रयोगों की अनुमति नहीं है। नोट हालांकि यह शायद एसडीके की भविष्य की रिलीज में बदल जाएगा।अधिक जानकारी के लिए FAQ पर जाएं
  • वाणिज्यिक उपयोग के लिए ओपनकिनेक्ट एपर्स खुले रहेंगे, लेकिन ऑनलाइन स्रोत बताते हैं कि यह इतना आसान नहीं हो सकता है। मैं इसके साथ किसी भी वाणिज्यिक ऐप को जारी करने से पहले शर्तों पर एक अच्छा नज़र डालेगा। अधिक जानकारी के लिए Kinect – Licensing implications of open hardware projects पढ़ें।

प्रलेखन और समर्थन:

  • सरकारी एसडीके: अच्छी तरह से प्रलेखित है और एक support forum
  • OpenKinect प्रदान करता है: एक मेलिंग सूची, चहचहाना और irc प्रतीत होता है। लेकिन कोई आधिकारिक मंच/क्यूए नहीं? वेबसाइट पर दस्तावेज़ीकरण उतना समृद्ध नहीं है जितना मैं चाहता हूं।

डिवाइस अंशांकन:।

अलग Kinect उपकरणों बैच है कि वे में उत्पादन किया गया था पर निर्भर करता है थोड़ा अलग हो सकता इस प्रकार डिवाइस कैलिब्रेशन कभी कभी आवश्यक है। लेकिन:

  • आधिकारिक एसडीके कोई अंशांकन सेटिंग्स प्रदान नहीं करता है लेकिन मुझे अब तक जिस डिवाइस पर काम कर रहा है उसे कैलिब्रेट करना नहीं है। कुछ समय के अनुसार मैंने उत्पादन समय पर ऑनलाइन (लिंक खोया) पढ़ा है, अंशांकन पैरामीटर किनेक्ट डिवाइस पर लिखे गए हैं, इसलिए आधिकारिक एसडीके अंशांकन की आवश्यकता नहीं है।
  • ओपनकिनेक्ट डिवाइस कैलिब्रेशन सुविधाएँ: http://openkinect.org/wiki/Calibration। इस प्रकार मेरा मानना ​​है कि यदि आप OpenKinect के साथ जाते हैं तो आपको अपने डिवाइस को कैलिब्रेट करना चाहिए।

अपने असली कि अंशांकन केवल OpenKinect सरकारी एसडीके के लिए एक बड़ा लाभ है कि के रूप में यह इस तरह की आवश्यकता के बिना एप्लिकेशन का वितरण और स्थापित करने के लिए आसान है के लिए की जरूरत है।


व्यक्तिगत रूप से, मैं आधिकारिक SDK के साथ चला गया OpenKinect एसडीके के साथ एक असफल कोशिश है, जो

  1. ड्राइवरों कि बॉक्स से बाहर स्थापित के साथ आया था के बाद
  2. आसान के लिए उदाहरण और कोड के साथ आया था व्यवसाय में हो रहा है
  3. सभी में: मैं 15 मिनट या उससे भी कम समय में अपना खुद का विकास शुरू कर सकता हूं।
  4. अब, कुछ महीनों के लिए किनेक्ट के साथ काम करने के बाद, मुझे यह कहना है कि मैं प्रदान की गई एपीआई से काफी संतुष्ट हूं। हालांकि मैं इसे ओपनकिनेक्ट एसडीके से तुलना नहीं कर सकता क्योंकि वास्तव में मुझे यह काम नहीं मिला (लेकिन शायद यह इसे उचित प्रयास नहीं करता था)।

अद्यतन: "इस रिलीज के लिए वाणिज्यिक लाइसेंस विकास और वाणिज्यिक अनुप्रयोगों के वितरण का अधिकार देता है पहले SDK एक बीटा था:। 1st फ़रवरी 2012 के रूप में वहाँ सरकारी एसडीके के लिए एक वाणिज्यिक लाइसेंस है , और नतीजतन केवल अनुसंधान, परीक्षण और प्रयोग के लिए उपयुक्त था, और अंतिम, वाणिज्यिक उत्पाद के साथ उपयोग के लिए उपयुक्त नहीं था। नया लाइसेंस डेवलपर्स को विंडोज़ अनुप्रयोगों के लिए अपने किनेक्ट को बनाने और बेचने में सक्षम करेगा ताकि उपयोगकर्ता ग्राहकों को किनेक्ट का उपयोग कर समाप्त हो सके। विंडोज प्लेटफ़ॉर्म पर विंडोज हार्डवेयर।" Developer Frequently Asked Questions

+3

क्या आप भी OpenKinect SDK को आजमाते हुए कुछ कठिनाइयों का सामना करना पड़ा? कार्यक्षमता, डिज़ाइन, उपयोग की आसानी और स्थिरता के आधार पर, क्या आप आधिकारिक एसडीके की तुलना में ओपनकिनेक्ट उस संबंध में कम है? – greatwolf

+3

@VictorT .: मैंने इसे गर्मियों से पहले एक कोशिश दी, मुझे विफलता पर ब्योरा याद नहीं है। मुझे लगता है कि यह ड्राइवर थे जो मैं स्थापित करने में विफल रहा था। आधिकारिक एसडीके के साथ, हालांकि, यह सिर्फ एक डबल-क्लिक दूर था (निश्चित रूप से विंडोज़ 7 स्थापित करने के बाद :))। –

3

मैं दृढ़ता से भस्म ढांचे की सिफारिश करेंगे। (Libcinder.org)

इसका समर्थन करता है दोनों OpenNI और Kinect develoment, आप सी ++ उपयोग कर रहे हैं। अब यह Kinect एसडीके 1.7 और OpenNI 2 का समर्थन करता है, के माध्यम से इन cinderblocks:

एमएस Kinect एसडीके 1.7 (स्थिर) https://github.com/BanTheRewind/Cinder-MsKinect

OpenNI 2/नाईट 2.2 (अल्फा) https://github.com/wieden-kennedy/Cinder-OpenNI

दोनों Boz से कंकाल ट्रैकिंग कर सकते हैं, ओपनएनआई एक साथ छह कंकाल तक पहुंचने में सक्षम है। ओपनएनआई 2 किनेक्ट पर तेजी से बढ़ रहा है, हालांकि अगले महीने बाहर आने पर नया किनेक्ट शायद बदल जाएगा। हालांकि बुनियादी अंतर्निहित सिद्धांतों को बदलने की संभावना नहीं है।

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

+0

मैं wieden-kennedy repo का उपयोग कर रहा हूं लेकिन मुझे अभी भी किनेक्ट को पहचानने के लिए यह नहीं मिल रहा है। हालांकि यह एक xtion के साथ काम करेगा। – Kat

5

उसकी/उसके answer में Avada Kedavra द्वारा समझाया रूप में, इन कुछ रोचक अंतर हैं:

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

मेरी निजी राय में, खुला स्रोत समाधान और माइक्रोसॉफ्ट SDKs के बीच सबसे महत्वपूर्ण अंतर सख्ती से कंकाल ट्रैकिंग एल्गोरिथ्म से संबंधित है।

जबकि गहराई और आरजीबी डेटा प्रभावी रूप से दोनों खुला/नि: शुल्क एपीआई और माइक्रोसॉफ्ट SDKs द्वारा प्रदान की जा सकती है, कंकाल ट्रैकिंग क्षमताओं को लागू करने रिवर्स इंजीनियरिंग की बात नहीं है।

इस तरह के एक एल्गोरिथ्म को लागू करने के लिए, डेवलपर्स पैटर्न मान्यता और मशीन लर्निंग क्षेत्रों में मजबूत competences होना आवश्यक है, और मैं काफी यकीन है कि ज्ञान का इस तरह खुले स्रोत समुदाय के बीच उपलब्ध है हूँ। लेकिन कंकाल ट्रैकिंग का कार्यान्वयन "प्रशिक्षित" एल्गोरिदम पर आधारित है, जिसके लिए बहुत अधिक मात्रा में डेटा एकत्र करने के लिए बहुत से प्रयोगों की आवश्यकता होती है। इन आंकड़ों का उपयोग तब एल्गोरिदम को "ट्रेन" करने के लिए किया जाता है, जो कंकाल जोड़ों को पहचान सकते हैं।

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

मेरे पिछले अनुभवों में, मैंने देखा कि ओपन सोर्स समाधान अच्छे कंकाल ट्रैकिंग क्षमताओं को प्रदान करते हैं, लेकिन वे माइक्रोसॉफ्ट के एसडीके के साथ प्रदान किए जाने वाले स्तर के समान स्तर पर नहीं हैं।

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

तो मेरा सुझाव है कि: यदि आप किसी ऐसे प्रोजेक्ट पर काम कर रहे हैं जिसमें आपको गहराई और/या आरजीबी डेटा की आवश्यकता है, या यदि आपके पास प्रोग्रामिंग भाषा का उपयोग करने की आवश्यकता है जो Microsoft SDK द्वारा समर्थित नहीं है, तो आप ओपन सोर्स समाधान का चयन करना चाहिए। अन्यथा, माइक्रोसॉफ्ट एसडीके मेरी सबसे अच्छी पसंद होगी।

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