2014-04-14 9 views
6

का उपयोग कर प्रसंस्करण छवियां मैं हैडूप के लिए नया हूं और मैं एक ऐसा एप्लीकेशन विकसित करने जा रहा हूं जो हैडूप का उपयोग करके कई छवियों को संसाधित करता है और उपयोगकर्ताओं को परिणाम दिखाता है, जबकि गणना गणना में है। मूल दृष्टिकोण निष्पादन योग्य और छवियों का समूह वितरित करता है और परिणामों को इकट्ठा करता है।हैडऑप

कंप्यूटिंग प्रक्रिया प्रगति पर होने पर मुझे परिणाम अंतःक्रियात्मक मिल सकते हैं?

क्या ऐसे उपयोग के मामले में हैडूप स्ट्रीमिंग से कोई अन्य विकल्प हैं?

मैं छवियों के साथ निष्पादन योग्य कैसे फ़ीड कर सकता हूं? मुझे stdin के साथ इसे खिलाने के अलावा अन्य कोई उदाहरण नहीं मिल रहा है।

+0

हडोप स्ट्रीमिंग (उर्फ एमआर) प्रकृति में उन्मुख बैच है, जो ओपनसीवी फेस डिटेक्शन का उपयोग करके तूफान के माध्यम से वीडियो फ़ाइलों को संसाधित कर सकते हैं। आपको ढांचे की तलाश करने की आवश्यकता है जो वास्तविक समय में डेटा को संसाधित कर सकते हैं (जैसे तूफान/सांज़ा/स्पार्क) और प्रोसेसिंग बाइनरी डेटा का भी समर्थन कर सकते हैं। –

उत्तर

2

Hadoop पर छवियों प्रसंस्करण व्यवस्थित करने के लिए संगणना सबसे अच्छा तरीका होगा के लिए:

एक दृश्य फ़ाइल में
  1. स्टोर छवियों। कुंजी - छवि का नाम या इसकी आईडी, मान - छवि बाइनरी डेटा। इस तरह आपके पास प्रक्रिया करने के लिए आवश्यक सभी छवियों के साथ एक फ़ाइल होगी। यदि आपके पास छवियों को गतिशील रूप से आपके सिस्टम में जोड़ा गया है, तो उन्हें दैनिक अनुक्रम फ़ाइलों में एकत्रित करने पर विचार करें। मुझे नहीं लगता कि आपको इस अनुक्रम फ़ाइल के लिए किसी भी संपीड़न का उपयोग करना चाहिए क्योंकि सामान्य संपीड़न एल्गोरिदम छवियों के साथ अच्छी तरह से काम नहीं करता है
  2. छवियों को संसाधित करें। यहां आपके पास चुनने के लिए कई विकल्प हैं। सबसे पहले हैडोप मैपराइडस का उपयोग करना और जावा के साथ जावा में एक प्रोग्राम लिखना है, आप अनुक्रम फ़ाइल को पढ़ने में सक्षम होंगे और प्रत्येक मानचित्र चरण पर सीधे "मूल्य" प्राप्त करेंगे, जहां "मान" बाइनरी फ़ाइल डेटा है। यह देखते हुए, आप किसी प्रसंस्करण तर्क को चला सकते हैं। दूसरा विकल्प हैडोप स्ट्रीमिंग है। इसकी एक सीमा है कि सभी डेटा आपके आवेदन के दायरे में जाते हैं और परिणाम stdout से पढ़ा जाता है। लेकिन आप जावा में अपना खुद का इनपुटफॉर्मेट लिखकर इसे दूर कर सकते हैं जो छवि बाइनरी डेटा को अनुक्रम फ़ाइल से बेस 64 स्ट्रिंग के रूप में क्रमबद्ध करेगा और इसे आपके सामान्य एप्लिकेशन पर पास कर देगा। तीसरा विकल्प इस डेटा को संसाधित करने के लिए स्पार्क का उपयोग करना होगा, लेकिन फिर आप प्रोग्रामिंग भाषाओं के चयन में सीमित हैं: स्कैला, जावा या पायथन।
  3. हाडोप को बड़ी मात्रा में डेटा पर बैच प्रोसेसिंग को सरल बनाने के लिए विकसित किया गया था। स्पार्क अनिवार्य समान है - यह एक बैच उपकरण है। इसका मतलब है कि सभी डेटा संसाधित होने से पहले आपको कोई परिणाम नहीं मिल सकता है। स्पार्क स्ट्रीमिंग एक अलग मामला है - वहां आप 1-10 सेकंड के माइक्रो बैचों के साथ काम करते हैं और उनमें से प्रत्येक को अलग से संसाधित करते हैं, इसलिए आम तौर पर आप इसे अपने मामले के लिए काम कर सकते हैं।

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

लेकिन सामान्य रूप में, आपके द्वारा प्रदत्त जानकारी एक उचित वास्तुकला की सिफारिश करने के

0

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

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

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

ओपनसीवी के साथ तूफान का उपयोग करने के कुछ उदाहरण हैं। उनके आधिकारिक गिट हब पेज पर उदाहरण हैं। आप इस चेहरे का पता लगाने के उदाहरण को देखना चाहते हैं और इसे मानव पहचान करने की कोशिश कर सकते हैं - https://github.com/sensorstorm/StormCV/blob/master/stormcv-examples/src/nl/tno/stormcv/example/E2_FacedetectionTopology.java

0

आप वास्तव में हडोप तूफान ढांचे का उपयोग करके अपना कस्टम तर्क बना सकते हैं। आप कुछ विशिष्ट कंप्यूटर विजन लाइब्रेरी की किसी भी कार्यक्षमता को आसानी से एकीकृत कर सकते हैं और इस ढांचे के बोल्ट में इसे घुसपैठ कर सकते हैं। इसके अलावा तूफान के पास डीआरपीसी सर्वर नामक एक बड़ा विस्तार है जो आपको अपने तर्क को एक साधारण आरपीसी कॉल के रूप में उपभोग करने की अनुमति देता है। आप मेरे आलेख Consuming OpenCV through Hadoop Storm DRPC Server from .NET

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