Gesture मान्यता प्रणाली के लिए RNN (LSTM) का उपयोग करना


10

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

बात यह है कि मैंने पहले से ही एक समान प्रणाली का निर्माण किया है, लेकिन स्थिर छवियों के लिए (कोई प्रस्ताव शामिल नहीं है), यह केवल अल्फाबेट्स के अनुवाद के लिए उपयोगी था जिसमें सीएनएन का निर्माण एक सीधा आगे का काम था, क्योंकि हाथ इतना आगे नहीं बढ़ता है और डेटा सेट संरचना भी प्रबंधनीय थी क्योंकि मैं केर का उपयोग कर रहा था और शायद अभी भी ऐसा करने का इरादा है (हर फ़ोल्डर में एक विशेष चिह्न के लिए छवियों का एक सेट होता है और फ़ोल्डर का नाम इस साइन के वर्ग का नाम है: ए, बी, सी , ..)

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

यह भी विचार कर रहा है कि मेरे डेटा सेट छवियों को मिलाकर होगा, मैं शायद एक convolutional परत की आवश्यकता होगी, यह कैसे गठबंधन करने के लिए संभव हो सकता है रूपा में परत LSTM एक (मैं मतलब कोड के संदर्भ में)।

उदाहरण के लिए मैं कल्पना करता हूं कि मेरा डेटा सेट कुछ इस तरह का हो

डेटा सेट संरचना

'रन' नाम के फ़ोल्डर में 3 फ़ोल्डर 1, 2 और 3 होते हैं, प्रत्येक फ़ोल्डर अनुक्रम के फ्रेम से मेल खाता है

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

तो Run_1 पहली फ्रेम के लिए छवियों में से कुछ सेट में शामिल होंगे, Run_2 दूसरे फ्रेम और के लिए Run_3 तीसरे के लिए, अपने मॉडल का उद्देश्य उत्पादन शब्द को यह अनुक्रम के साथ प्रशिक्षित किया जा रहा है भागो


आप एएसएल के लिए कौन से डेटासेट का उपयोग कर रहे हैं?
सैम जॉनसन

क्षमा करें, लेकिन हमने अपने स्वयं के डेटासेट को रिकॉर्ड किया और इसे सार्वजनिक रूप से जारी करने का प्रबंधन नहीं किया, यह इतना अधिक नहीं था और अपेक्षित सटीकता नहीं दी।
आसोविच

यह निश्चित रूप से उल्लेखनीय है और नीचे उल्लिखित लेख से बहुत अधिक अतिरिक्त कोडिंग नहीं दिखता है, लेकिन मैं अनुभव से नहीं बोल रहा हूं क्योंकि यह एक वास्तुकला नहीं है जिसका मैंने पहले उपयोग किया है। उम्मीद है कि यह लेख आपको सही दिशा में इंगित करेगा: machinelearningmastery.com/cnn-long-short-term-memory-networks
Ollie ग्राहम

जवाबों:


2

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

यहाँ कुछ संभावित विचार दिए गए हैं:

  1. प्रत्येक "RUN_ *" फ़ोल्डर के लिए dropoutऔर flatteningप्रत्येक परत के बीच / या के बीच CNN परत सेट करके शुरू करें ।

  2. अनुक्रम के सभी चरणों का प्रतिनिधित्व करने वाले एकल लंबे वेक्टर की स्थापना करके शुरू करें, फिर CNNs की कुछ परतों को जोड़ दें, dropoutऔर / या के साथ भी flattening

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

मैं सीएनएन का सुझाव दे रहा हूं, क्योंकि कुछ मामलों में, सीएनएन आवर्तक मॉडल को समान प्रदर्शन प्रदान कर सकता है, लेकिन लागत के एक अंश पर। दुर्भाग्य से, आपके डेटा के बारे में बहुत कम जानकारी के साथ बताना कठिन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.