2013-01-17 15 views
8

मैं एक स्थिर छवि से वाहन (कारें, बाइक इत्यादि) को पहचानना चाहता हूं। मैं सर्फ का उपयोग करके मुझे उपयोगी keypoints और वर्णनकर्ता मिलता है और फिर एक MLP (मल्टी परत perceptron) तंत्रिका नेटवर्क को प्रशिक्षित करने की सोच रहा था। हालांकि मुझे नहीं पता कि तंत्रिका नेटवर्क में इनपुट क्या होगा और यह आउटपुट क्या होगा ताकि मैं पहचान सकूं कि छवि का कौन सा हिस्सा एक वाहन स्थित है (शायद इसके चारों ओर एक आयताकार खींचा गया है)। मुझे पता है कि एसयूआरएफ छवि में उपयोगी वर्णों को उनके वर्णनकर्ताओं के साथ वापस कर सकता है (मैंने यह किया है)। कीपॉइंट्स में कोण हैं और प्रत्येक कुंजीपटल वर्णनकर्ता के रूप में 64 या 128 लंबे वेक्टर से मेल खाता है। मुझे नहीं पता कि वास्तव में ये मुख्य बिंदु क्या हैं और न्यूरल नेटवर्क में इनपुट के रूप में उनका उपयोग कैसे किया जा सकता है।ओपनसीवी संयोजन एसयूआरएफ तंत्रिका नेटवर्क

मैं पायथन के साथ ओपनसीवी का उपयोग कर रहा हूं।

मैं SURF और अन्य फ़ीचर निष्कर्षण विधियों का उपयोग करने के लिए नया हूं। इससे संबंधित कोई भी मदद बहुत अच्छी होगी।

उत्तर

8

आप सर्फ सुविधाओं का उपयोग करते हैं, तो thats एक नाव वेक्टर [128] या [64] आप सर्फ विन्यास के आधार पर आप तंत्रिका शुद्ध स्थापित किया जाएगा का पालन के रूप में

बनाएँ मॉडल के साथ एक डेटा बेस सेट मतलब है:

-bikes 
-cars 
-autobus 
-truck 

लो diferents diferents के 10 फोटो मॉडल बंद कारों, diferents के 10 फोटो मॉडल बंद बाइक विभिन्न मॉडल बंद ट्रक ... आदि के 10 तस्वीरों वस्तुओं की तरह प्रत्येक प्रकार के फोटो, प्रत्येक वस्तु के बंद प्रत्येक तस्वीर के लिए कक्षा अपने सर्फ फीचर वैक्टर निकालें।

-प्रत्येक प्रकार का ऑब्जेक्ट इस तरह तंत्रिका-नेट में ऑब्जेक्ट की एक ऑफ क्लास का प्रतिनिधित्व करेगा;

-car ;object class 1 =binary representaation in 4 bits= 0 0 0 1 
-bikes ;obejct class 2 =binary representaation in 4 bits= 0 0 1 0 
-truck ;obejct class 3 =binary representaation in 4 bits= 0 0 1 1 
-ball ;obejct class 4 =binary representaation in 4 bits= 0 1 0 0 

द्विआधारी repesentacion में -Each बिट नेटवर्क के उत्पादन में परत में एक न्यूरॉन के अनुरूप की जाएगी और वस्तु के एक वर्ग का प्रतिनिधित्व मान्यता प्राप्त होना

अब तंत्रिका नेटवर्क के विन्यास पर आधारित होगा फीचर वेक्टर का आकार और उस ऑब्जेक्ट के प्रकार की संख्या जिसे आप इस तरह पहचानना चाहते हैं;

इनपुट परत में nuerons की संख्या; 64 या 128 आकार बंद सर्फ फीचर वेक्टर के आधार पर है कि आप विन्यस्त और इस्तेमाल किया

तंत्रिका-जाल में उत्पादन परत में nuerons की संख्या हो जाएगा ऑब्जेक्ट्स की कक्षाओं की संख्या जिन्हें आप इस उदाहरण में पहचानना चाहते हैं 4

प्रत्येक न्यूरॉन के लिए सक्रियण फ़ंक्शन नेसिसरी सिग्मोइड या तन फ़ंक्शन (http://www.learnartificialneuralnetworks.com/) है, यदि सर्क फीचर्स फ्लोट नंबरों द्वारा दर्शाए जाते हैं, तो यदि आप फ्रीक भ्रूण का उपयोग करते हैं या एक और बाइनरी स्थानीय फीचर डिस्क्रिप्टर (ब्रिस्क, ओआरबी, ब्रफ) तो आप प्रत्येक न्यूरॉन जैसे बाएं फंक्शन ओ सिग मजेदार के लिए एक बाइनरी सक्रियण समारोह का उपयोग करेंगे ction

नेटवर्क को प्रशिक्षित करने के लिए प्रयोग किया जाता एल्गोरिथ्म backpropagation

इससे पहले कि आप सेट की जरूरत जारी रखने के लिए और डेटा इस उदाहरण आप के लिए तंत्रिका नेटवर्क को प्रशिक्षित करने के

उदाहरण

-all feature vector extracted from picture belong a car will be label or asociated to class 1    
-all feature vector extracted from picture belong a bike will be label or asociated to class 2 
-all feature vector extracted from picture belong a truk will be label or asociated to class 3 
-all feature vector extracted from picture belong a ball will be label or asociated to class 4 

सेट तैयार है इनपुट-लेयर में आउट-पुट लेयर और 128 0 आर 64 न्यूरॉन्स में 4 न्यूरॉन्स होंगे।

- मान्यता मोड में तंत्रिका नेट का उत्पादन न्यूरॉन होगा जिसमें इस 4 nuerons का सबसे अधिक मूल्य है।

प्रशिक्षण चरण शुरू करने से पहले, डेटा सेट में सभी सुविधाओं के अंतराल [0,1] में अपने necesarry सामान्यीकरण का उपयोग करें, क्योंकि तंत्रिका नेट का आउट-पुट संभावना है जिसमें इनपुट वेक्टर संबंधित है डेटा सेट में ऑब्जेक्ट का एक वर्ग।जब इसकी 85-90%

के पास है recognittion दर

-70% off the data used to train 
-15% off the data used to validate the network arquitecture (number of neurons in the hidden layyer) 
-15% off the data used to test the final network 

जब तंत्रिका नेटवर्क प्रशिक्षण, रोकने की कसौटी है,:

डाटा नेटवर्क को प्रशिक्षित करने के लिए सेट के रूप में पालन के विभाजित होने का है

तंत्रिका नेट का उपयोग क्यों करें और एसवीएम मशीनों का उपयोग न करें, एसवीएम मशीन ठीक काम करती हैं, लेकिन यह इस तरह की रैखिक वर्गीकरण समस्याओं में सबसे अच्छा अलगाव वर्ग मानचित्र नहीं बना सकता है या जब आपके पास कक्षाओं या वस्तुओं के प्रकारों की वस्तुएं होती हैं, तो इसकी कमी मान्यता चरण चरण

में अपर्याप्त है

मैं सिफारिश आप तंत्रिका नेटवर्क सिद्धांत के बारे में कुछ पढ़ा समझने के लिए वे कैसे काम करते

http://link.springer.com/chapter/10.1007%2F11578079_10

opencv तंत्रिका जाल पर मशीन लर्निंग वर्ग MLP मॉड्यूल

उम्मीद है यह आप

+0

मुझे समझाने के लिए धन्यवाद कि मैं ऑब्जेक्ट रिकग्निशन के लिए तंत्रिका नेटवर्क का उपयोग कैसे कर सकता हूं। हालांकि, मेरे परिदृश्य में समान ऑब्जेक्ट्स से निपटना पड़ सकता है जो एक-दूसरे के करीब हैं (उदाहरण के लिए एक दूसरे के साथ दो करियां)। मुझे अलग-अलग पहचानने में सक्षम होना चाहिए। क्या कोई तरीका है कि तंत्रिका नेटवर्क इस से मेरी मदद कर सकता है? मुझे लगता है कि आपने जिस तकनीक का उल्लेख किया है उसका उपयोग करने से मुझे वाहनों को पहचानने की अनुमति मिल जाएगी, लेकिन उन्हें अलग-अलग अलग नहीं किया जाएगा (दो टैक्सियों के चारों ओर एक आयत खींचने की तरह) –

2

मेरा सुझाव तंत्रिका नेटवर्क के बजाय बीओओ का निरीक्षण करना है। ऑब्जेक्ट वर्गीकरण (first part, second part) के लिए बैग ऑफ़ वर्ड्स मॉडल के साथ SURF का उपयोग करने का एक उदाहरण यहां देखें। वर्गीकरण प्रदर्शन में सुधार करने के लिए आप Naive Bayes क्लासिफायर को SVM के साथ प्रतिस्थापित करने का प्रयास कर सकते हैं। इसके अलावा, लेखक ने source code example प्रदान किया। मुझे लगता है कि यह शुरू करने के लिए एक अच्छा मुद्दा है।

+0

मैंने आपके द्वारा निर्दिष्ट बॉय तकनीक की जांच की है। यह काफी आशाजनक प्रतीत होता है, हालांकि मैं एक सीखने की प्रक्रिया की तलाश में था जिसे तंत्रिका नेटवर्क के मामले में डिस्क से बचाया जा सकता था (सीखना जारी रखा गया था)। मैंने सर्फ का उपयोग करके विशेषताओं के वर्णनकर्ताओं को निकालने में कामयाब रहा है, हालांकि डेटा बहु-आयामी ('एन' कीपॉइंट्स बनाम 128 फीचर वैक्टर) है मेरा नया सवाल यह है कि मैं बहु-आयामी डेटा को तंत्रिका नेटवर्क में कैसे दर्ज कर सकता हूं? –

2

एक मदद कर सकते हैं पता चला ऑब्जेक्ट को सेपरेट करने का आसान तरीका that जैसे इनपुट छवि में एक समोच्च डिटेक्टर चला रहा है।

अपने आप प्रत्येक सुविधा तंत्रिका नेटवर्क द्वारा मान्यता प्राप्त करने के लिए प्रत्येक वेक्टर महत्वपूर्ण बिंदुओं सहयोगी से एक्स, वाई coords उपयोग कर सकते हैं, और जाँच कैसे इन महत्वपूर्ण बिंदुओं के कई पक्ष प्रत्येक वस्तुओं में से प्रत्येक के समोच्च में हैं के बाद,

इसके साथ ही आप एक सही कार का पता लगाने के लिए एक ट्रेसहोल्ड डाल देते हैं, उदाहरण के लिए यदि आपके पास 2 टैक्सियां ​​हैं; 2 कॉन्टूर प्रत्येक कार से संबंधित है और एफ़टर जांचता है कि प्रत्येक समोच्च में कितने महत्वपूर्ण पोनेट हैं;

  • समोच्च हैं टैक्सी 1
  • समोच्च अंदर 20 कुंजी ponits है संबंधित टैक्सी 1 5 प्रमुख ponits

अंदर आप टैक्सी 1 ओ कार 1 के रूप में के रूप में वस्तु

पर मान्यता प्राप्त दे सकते हैं जब आपके पास वैध ऑब्जेक्ट पहचाना जाता है और उसका समोच्च होता है, तो आप ऑब्जेक्ट

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

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