2009-12-17 13 views
10

मैं बिना किसी सफलता के AdaBoost algorithm को समझने की कोशिश कर रहा हूं। मैं उदाहरण के रूप में Viola Jones paper on Face Detection को समझने के साथ संघर्ष कर रहा हूं।गैर-तकनीकी लोगों को एडाबुस्ट एल्गोरिदम समझाएं

क्या आप लेमेन के नियमों में एडाबुस्ट को समझा सकते हैं और इसका उपयोग कब किया जा सकता है?

उत्तर

9

एडाबुस्ट कई अच्छी 'विशेषताओं'/'क्लासिफायर' चुनने के लिए कई प्रशिक्षण नमूना छवियों (जैसे चेहरे) का उपयोग करता है। चेहरे की पहचान के लिए एक क्लासिफायर आमतौर पर पिक्सल का एक आयताकार होता है जिसमें एक निश्चित औसत रंग मान और सापेक्ष आकार होता है। AdaBoost कई क्लासिफायरों को देखेगा और पता लगाएगा कि नमूना छवियों के आधार पर चेहरे का सबसे अच्छा अनुमानक कौन सा है। सर्वोत्तम वर्गीकरणकर्ता चुनने के बाद यह एक और दूसरे को तब तक खोजना जारी रखेगा जब तक कि कुछ सीमा तक नहीं पहुंच जाती है और उन क्लासिफायर एक साथ मिलकर अंतिम परिणाम प्रदान करेंगे।

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

उम्मीद है कि इससे मदद मिलती है।

12

एडोबूस्ट एक एल्गोरिदम है जो क्लासिफायर को खराब प्रदर्शन, उर्फ ​​कमजोर शिक्षार्थियों के साथ जोड़ता है, जो बहुत अधिक प्रदर्शन के साथ एक बड़े वर्गीकृत में होता है।

यह कैसे काम करता है?

  1. ट्रेन एक कमजोर शिक्षार्थी: एक बहुत ही सरल बनाया तरीके में।
  2. कमजोर शिक्षार्थियों (एक इष्टतम वजन के साथ) अब तक प्रशिक्षित
  3. नमूने है कि अभी भी याद आती है-वर्गीकृत किया जाता है के महत्व को बढ़ाने के सेट करने के लिए इसे जोड़ें।
  4. को 1.

जाओ पर्दे के पीछे एक व्यापक और विस्तृत सिद्धांत नहीं है, लेकिन अंतर्ज्ञान है सिर्फ इतना है कि: प्रत्येक "गूंगा" वर्गीकारक फोकस गलतियों पर पिछले अभियानों को ठीक करने में सक्षम नहीं थे।

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

विओला और जोन्स में, प्रत्येक अलग-अलग प्रकार के कमजोर-शिक्षाकर्ता आपके पास 4 या 5 अलग-अलग हायर सुविधाओं में से एक से जुड़े होते हैं।

+0

मैं 1. के बारे में उत्सुक क्या एक कमजोर शिक्षार्थी वास्तव में मतलब प्रशिक्षित करता हूँ? उदाहरण के लिए, यदि मैं हायर सुविधाओं का उपयोग कर रहा हूं, तो प्रशिक्षण क्या है? – dicroce

+0

@dicroce, एक कमजोर शिक्षार्थी को प्रशिक्षण देना वर्गीकरण नियम (व्हायोला जोन्स पेपर में एक हायर फीचर) की खोज करना है जो प्रशिक्षण सेट में न्यूनतम भारित त्रुटि प्राप्त करता है। यही है: यह सबसे महत्वपूर्ण उदाहरणों (यानी हाइट वजन वाले लोगों) को सही ढंग से वर्गीकृत करता है। –

3

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

1 - इसका उपयोग ऑब्जेक्ट में और ज्यादातर, चेहरे का पता लगाने-पहचान में किया जाता है।मूल रूप से इंटेल से ओपनसीवी सबसे लोकप्रिय और काफी अच्छी सी ++ लाइब्रेरी है। मैं एक उदाहरण के रूप में ओपनसीवी में फेस डिटेक्शन का हिस्सा लेता हूं। (सकारात्मक कहा जाता है) सबसे पहले, बढ़ाया classifiers नमूना आयतों ("सुविधाओं") के साथ काम करने का एक झरना चेहरे के साथ छवियों के नमूने पर प्रशिक्षित किया जाता है और चेहरे (नकारात्मक) के बिना -

2।

कुछ Googled कागज से:

"· बढ़ाने अंगूठे का किसी न किसी और मध्यम गलत नियमों के संयोजन के द्वारा एक बहुत ही सटीक वर्गीकारक उत्पादन की एक सामान्य और provably प्रभावी विधि को संदर्भित करता

· यह पर आधारित है। अवलोकन अंगूठे के कई किसी न किसी नियम को खोजने के लिए एक एकल, बेहद सटीक वर्गीकारक खोजने की तुलना में बहुत आसान हो सकता है।

· शुरू करने के लिए, हम अंगूठे का नियम है, जो हम एक कमजोर शिक्षार्थी फोन को खोजने के लिए एक एल्गोरिथ्म परिभाषित करते हैं।

· बूस्टिंग एल्गोरिदम बार-बार इस कमजोर शिक्षार्थी को कॉल करता है, हर बार इसे प्रशिक्षण डेटा (एडाबुस्ट में) पर एक अलग वितरण खिला रहा है।

· प्रत्येक कॉल एक कमजोर वर्गीकारक उत्पन्न करता है और हम एक ही वर्गीकारक कि हमें उम्मीद है कि ज्यादा नियमों में से किसी एक से अधिक सटीक है में इन सभी का गठबंधन करना चाहिए। "

इस प्रक्रिया छवियों स्कैन किए जाते हैं के दौरान प्रत्येक चेहरे के कुछ हिस्सों से संबंधित विशिष्ट क्षेत्रों को निर्धारित करें। जटिल गणना-परिकल्पना आधारित एल्गोरिदम लागू होते हैं (जो आपको मुख्य विचार प्राप्त करने के बाद समझना मुश्किल नहीं होता है)

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

3 - उसके बाद आप इस फ़ाइल को ओपनसीवी फेस डिटेक्शन प्रोग्राम में आपूर्ति करते हैं जो 99% सकारात्मक दर (शर्तों के आधार पर) के साथ काफी तेजी से चलता है। जैसा कि यहां बताया गया था, स्कैनिंग की गति को "अभिन्न छवि" के नाम से जाना जाने वाला तकनीक बहुत बढ़ाया जा सकता है।

और अंत में, इन उपयोगी स्रोत हैं - Object Detection in OpenCV और Generic Object Detection using AdaBoost कैलिफोर्निया विश्वविद्यालय से 2008

+0

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

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