क्या सी # का उपयोग वास्तविक समय के अनुप्रयोग के विकास के लिए किया जा सकता है जिसमें लगातार वेब कैम से इनपुट लेना और इनपुट को प्रोसेस करना शामिल है?वास्तविक समय अनुप्रयोगों के लिए सी # का उपयोग कर
उत्तर
मैं सी # का उपयोग किया है कई वास्तविक समय, उच्च गति, कि 24/7 चलाने के लिए और मशीनरी आवेदन पर निर्भर चलती है मशीन दृष्टि अनुप्रयोगों बनाने के लिए। अगर सॉफ़्टवेयर में कुछ गलत हो जाता है, तो वास्तविक दुनिया में कुछ तुरंत और स्पष्ट रूप से गलत हो जाता है।
मुझे पता चला है कि सी #/नेट ऐसा करने के लिए बहुत अच्छी कार्यक्षमता प्रदान करता है। जैसा कि अन्य ने कहा है, निश्चित रूप से कचरा संग्रह के शीर्ष पर रहें। कई तार्किक चरणों में प्रसंस्करण के लिए तोड़ें, और अलग-अलग धागे प्रत्येक काम कर रहे हैं। मुझे निर्माता उपभोक्ता प्रोग्रामिंग मॉडल को इसके लिए अच्छी तरह से काम करने के लिए मिला है, शायद स्टार्टर्स के लिए ConcurrentQueue।
आप की तरह कुछ के साथ शुरू कर सकता है:
- थ्रेड 1 कैमरा छवि कैप्चर करता है, कुछ फ़ॉर्मेट में बदल देता है, और यह एक ImageQueue में डालता है
- थ्रेड 2 ImageQueue से खपत, छवि प्रसंस्करण और एक डेटा ऑब्जेक्ट के साथ आता है जिसे प्रोसेस्ड्यूयू
- थ्रेड 3 प्रोसेसड्यूयूयू से खपत करता है और परिणाम के साथ कुछ दिलचस्प करता है।
यदि थ्रेड 2 बहुत लंबा लगता है, तो थ्रेड 1 और 3 अभी भी चिपक रहे हैं। यदि आपके पास मल्टीकोर प्रोसेसर है तो आप गणित में अधिक हार्डवेयर फेंक देंगे। आप ऊपर लिखे गए किसी भी धागे के स्थान पर कई धागे का उपयोग भी कर सकते हैं, हालांकि आपको परिणामों को मैन्युअल रूप से ऑर्डर करने का ख्याल रखना होगा।
संपादित
अन्य लोगों के जवाब पढ़ने के बाद, आप शायद "वास्तविक समय" की मेरी परिभाषा बहस कर सकते। मेरे मामले में, कंप्यूटर लक्ष्य उत्पन्न करता है जो यह गति नियंत्रकों को भेजता है जो वास्तविक रीयलटाइम गति करते हैं। गति नियंत्रक समय, अधिकतम/न्यूनतम श्रेणियों, चिकनी एक्सेल/decelerations और सुरक्षा सेंसर जैसी चीजों के लिए अपनी सुरक्षा परत प्रदान करते हैं। ये नियंत्रक एक पूरे कारखाने में 1ms से कम चक्र चक्र के साथ सेंसर पढ़ते हैं।
क्या होता है यदि आपका सॉफ़्टवेयर हर कुछ हफ्तों में एक बार छवि को संसाधित कर रहा है, तो शेष उपकरण केवल पकड़ने के बाद उत्पादन लाइन को रोकते हैं। –
बिल्कुल। जितना संभव हो कचरा संग्रह और स्मृति प्रबंधन से बचने के लिए कुंजी होगी। जब आप कर सकते हैं तो बफर या ऑब्जेक्ट पूल का उपयोग करके जितनी ज्यादा हो सके नई वस्तुओं को टालने का प्रयास करें।
क्या आप कृपया कचरा संग्रहण और स्मृति प्रबंधन से बच सकते हैं? इन मदद से कैसे बचाता है? और उनसे कैसे बचें :)? – mrid
-
बेशक
- , किसी को भी ऐसा करने के लिए एक पुस्तकालय विकसित की है: AForge.NET
- किसी भी वास्तविक समय आवेदन के साथ और न सिर्फ सी # रूप में, आप अच्छी तरह से बफ़र्स प्रबंधन करने के लिए के रूप में @ दाऊद सुझाव होगा ।
- इतना ही नहीं, वहाँ भी कर रहे हैं XNA Framework (3 डी गेम्स जैसी चीजों के लिए) और आप सी # रूप में अच्छी तरह का उपयोग कर जो बहुत वास्तविक समय कर रहे हैं DirectX कार्यक्रम कर सकते हैं।
- और क्या आप जानते हैं कि, यदि आप चाहते हैं, तो आप pointer manipulations in C# भी कर सकते हैं?
आप जानते हैं, प्रबंधित डायरेक्टएक्स गिरा दिया गया था क्योंकि यह बहुत धीमी थी। – Puppy
कि एक अच्छी जानकारी थी। AForge.NET मेरे लिए उपयोगी होगा। धन्यवाद – Jsinh
[यहां] (http://www.mesta-automation.com/getting-started-with-computer-vision-in-c-sharp/) कुछ उपयोगी दस्तावेज़ AForge ढांचे के साथ काम करने के लिए मौजूद हैं। – GntS
आप, "हार्ड रियल-टाइम प्रणालियां" के लिए किसी भी मुख्य धारा कचरा एकत्र भाषा का प्रयोग नहीं कर सकते हैं के रूप में कचरा इकट्ठा कभी कभी प्रणाली एक निर्धारित समय में जवाब बंद हो जाएगा। आवंटन वस्तु मदद कर सकते हैं बचना है, तथापि आप को साबित आप किसी भी कचरा नहीं बना रहे हैं के लिए एक रास्ता की जरूरत है और है कि कचरा कलेक्टर में लात नहीं होंगे।
हालांकि अधिकांश "वास्तविक समय" प्रणाली वास्तव में हमेशा की जरूरत नहीं है कठिन समय सीमा के भीतर प्रतिक्रिया दें, इसलिए यह सब कुछ "वास्तविक समय" से आपका मतलब है।
तब भी जब सिस्टम के कुछ हिस्सों को "कठिन वास्तविक समय" होना चाहिए, तो अन्य यूआई जैसी प्रणाली के बड़े हिस्सों नहीं हैं।
(मैं अपने अनुप्रयोग तेजी से नहीं बल्कि "वास्तविक समय" की तुलना में अगर 1 फ्रेम हर 100 साल कितने लोगों को मारा जाएगा खो दिया है हो सकता है, की आवश्यकता है?)
इसका उपयोग करने के बारे में क्या? Process.GetCurrentProcess()। PriorityClass = ProcessPriorityClass.RealTime; – Roger
यह स्वीकार्य उत्तर होना चाहिए !! +1 कचरा संग्रह वस्तुओं को कुछ मिलीसेकंड के लिए रोक देता है ताकि समय की बाधाएं पूरी तरह से पूर्ण हो जाएंगी। – schoetbi
जब तक आपकी टाइमिंग बाधा 1 सेकंड न हो और आपका शेष प्रोग्राम 500msec में चलता है? तो आपके पास कचरा संग्रह के लिए 500 अतिरिक्त मिलीसेकंड हैं? यदि आप समय की बाधा से नीचे हैं, तो क्या वास्तव में इससे कोई फर्क पड़ता है? – Paul
यह कैसे 'वास्तविक समय पर निर्भर करता है 'यह होना चाहिए; यानी, आपकी समय की बाधाएं क्या हैं, और आपको 'कुछ करने' की कितनी जल्दी आवश्यकता है।
आप शायद .NET में हर 300 मि.से या तो, एक टाइमर घटना पर कहते हैं कि 'कुछ कर रही' संभाल सकता है, मैं ठीक से काम करने के लिए Windows पाया है। ध्यान दें कि यह कुछ ऐसा है जो मैंने विभिन्न उम्र और विभिन्न गति के कई प्रणालियों पर सच पाया। हमेशा के रूप में, वाईएमएमवी।
लेकिन यह संख्या बहुत सारे अनुप्रयोगों के लिए बहुत लंबी है। शायद आपके लिए नहीं।
कुछ शोध करें, सुनिश्चित करें कि आपका ऐप आपके आवेदन के लिए पर्याप्त तेज़ी से प्रतिक्रिया दे।
- 1. क्यों एरलांग नरम रीयल-टाइम अनुप्रयोगों के लिए उपयुक्त है, लेकिन वास्तविक वास्तविक समय के लिए नहीं?
- 2. jQuery: मैं निम्नलिखित jQuery कार्यक्षमता का उपयोग कर रहा वास्तविक समय में शब्दों की गिनती करने के वास्तविक समय
- 3. वास्तविक समय
- 4. वास्तविक समय क्षमताओं?
- 5. प्रतिबिंब का उपयोग कर वास्तविक विधि हस्ताक्षर
- 6. क्या आप एमवीवीएम का उपयोग कर किसी वास्तविक दुनिया, उपयोगी WPF/Silverlight अनुप्रयोगों को जानते हैं?
- 7. समय में सी का उपयोग कर समय एच
- 8. वेब अनुप्रयोगों को बनाने के लिए अजगर का उपयोग
- 9. वास्तविक समय वीडियो (छवि)
- 10. वास्तविक समय प्रदर्शित करना
- 11. वास्तविक समय तुल्यकालन
- 12. कौन वास्तविक समय जावा का उपयोग करता है?
- 13. Node.js और सॉकेट.io - वे वास्तविक समय वेब अनुप्रयोगों के साथ कितने दूर जा सकते हैं?
- 14. वास्तविक समय ajax टिप्पणी
- 15. विंडोज .NET या ASP.NET अनुप्रयोगों का उपयोग करते समय डीबी पासवर्ड स्टोर करने के लिए कहां
- 16. पॉलिमॉर्फिज्म का वास्तविक महत्व (उपयोग)
- 17. डिजाइनिंग प्रणाली वास्तविक समय अधिग्रहण के लिए वास्तुकला और 'नियंत्रण'
- 18. अन्य अनुप्रयोगों की निगरानी के लिए SwingEventMonitor का उपयोग करना?
- 19. कलात्मक तंत्रिका नेटवर्क के लिए वास्तविक दुनिया का उपयोग
- 20. 'वास्तविक समय' का गठन क्या होता है
- 21. अंतर वास्तविक समय उदाहरण
- 22. सी ++: समय और स्थानीय समय के साथ वास्तविक समय कैसे प्राप्त करें?
- 23. अनुप्रयोगों में उपयोग के लिए डेटाबेस ढूंढना
- 24. विंडोज डेस्कटॉप अनुप्रयोगों के लिए उपयोग ट्रैकिंग
- 25. सी/सी ++ जीयूआई अनुप्रयोगों के लिए स्वचालित परीक्षण
- 26. विंडोज 7 में System.Speech का उपयोग कर .net अनुप्रयोगों के लिए आवाज कहां मिल सकती है?
- 27. एएनएसआई सी का उपयोग कर मिलीसेकंड में समय कैसे मापें?
- 28. jQuery स्वत: पूर्ण वास्तविक समय
- 29. क्या वास्तविक समय माप के लिए एचडीएफ 5 उपयुक्त है
- 30. आईओएस और मैक ओएस एक्स अनुप्रयोगों में सी ++ का उपयोग
मुझे यकीन नहीं है कि वर्तमान में वर्णित अनुसार, आपका ऐप "रीयल-टाइम" श्रेणी में आता है, क्योंकि यह ऐप स्टाल होने पर वीडियो को बफर किया गया था, तो यह महत्वहीन होगा। एकमात्र महत्वपूर्ण मुद्दा बफर को भरने से तेज़ी से संसाधित करना होगा। – spender
विंडोज का उद्देश्य "रीयलटाइम" ऑपरेटिंग सिस्टम नहीं है। वास्तविक समय में प्रक्रिया में विफलता के परिणामों पर विचार करें: आपके मामले में, विफलता मोड आपको वीडियो का एक फ्रेम याद आती है, शायद एक बड़ा सौदा नहीं। एक वास्तविक समय प्रणाली, जो कहती है, फैक्ट्री में रोबोट बाहों की स्थिति को नियंत्रित करती है, या हाई स्पीड रेल लाइनों पर ट्रैक स्विच ले जाती है, अगर वास्तविक समय के समय में बजट या नियंत्रण दूसरे थ्रेड पर स्विच हो जाता है तो बहुत ही वास्तविक मानव-जीवन-सुरक्षा प्रभाव पड़ता है। कुछ समय के लिए। मुझे नहीं लगता कि आपको वास्तव में * रीयलटाइम * की आवश्यकता है; मुझे लगता है कि आपको बस * तेज * की आवश्यकता है। –
@Eric: मुलायम वास्तविक समय और हार्ड रीयल-टाइम सिस्टम के बीच एक अंतर है। एक वेब कैम से इनपुट लेना मेरे लिए एक नरम वास्तविक समय परिदृश्य की तरह दिखता है, और विंडोज ठीक होना चाहिए। –