AI-For-Beginners/translations/ne/lessons/4-ComputerVision/11-ObjectDetection/README.md

20 KiB
Raw Blame History

वस्तु पहिचान

अहिलेसम्म हामीले प्रयोग गरेका छवि वर्गीकरण मोडेलहरूले एउटा छवि लिएर वर्गीय नतिजा उत्पादन गर्थे, जस्तै MNIST समस्यामा 'संख्या' वर्ग। तर, धेरै अवस्थामा हामीलाई केवल यो थाहा पाउन चाहिँदैन कि तस्बिरले वस्तुहरू देखाउँछ - हामीलाई तिनीहरूको ठ्याक्कै स्थान निर्धारण गर्न सक्षम हुन चाहिन्छ। यही नै वस्तु पहिचानको उद्देश्य हो।

Pre-lecture quiz

Object Detection

छवि YOLO v2 वेब साइट बाट

वस्तु पहिचानको साधारण तरिका

मानौं हामीले तस्बिरमा बिरालो खोज्न चाहेका छौं, वस्तु पहिचानको एकदम साधारण तरिका निम्नानुसार हुनेछ:

  1. तस्बिरलाई धेरै टाइलहरूमा विभाजन गर्नुहोस्।
  2. प्रत्येक टाइलमा छवि वर्गीकरण चलाउनुहोस्।
  3. ती टाइलहरू जसले पर्याप्त उच्च सक्रियता देखाउँछन्, तिनीहरूमा सोधिएको वस्तु भएको मान्न सकिन्छ।

Naive Object Detection

छवि Exercise Notebook बाट

तर, यो तरिका आदर्शबाट धेरै टाढा छ, किनकि यसले एल्गोरिदमलाई वस्तुको बाउन्डिङ बक्सको स्थान धेरै अस्पष्ट रूपमा निर्धारण गर्न मात्र अनुमति दिन्छ। थप सटीक स्थानको लागि, हामीले बाउन्डिङ बक्सको समन्वय भविष्यवाणी गर्न रेग्रेशनको केही प्रकार चलाउन आवश्यक छ - र त्यसका लागि, हामीलाई विशेष डेटासेटहरू चाहिन्छ।

वस्तु पहिचानका लागि रेग्रेशन

यो ब्लग पोस्टले आकारहरू पहिचान गर्नको लागि राम्रो परिचय प्रदान गर्दछ।

वस्तु पहिचानका लागि डेटासेटहरू

तपाईंले निम्न डेटासेटहरू भेट्टाउन सक्नुहुन्छ:

  • PASCAL VOC - २० वर्गहरू
  • COCO - सामान्य वस्तुहरू सन्दर्भमा। ८० वर्गहरू, बाउन्डिङ बक्सहरू र सेग्मेन्टेसन मास्कहरू

COCO

वस्तु पहिचान मेट्रिक्स

Intersection over Union

छवि वर्गीकरणको लागि एल्गोरिदम कत्तिको राम्रो प्रदर्शन गर्छ भनेर मापन गर्न सजिलो छ, तर वस्तु पहिचानको लागि हामीले वर्गको शुद्धता मात्र होइन, अनुमान गरिएको बाउन्डिङ बक्सको स्थानको सटीकता पनि मापन गर्नुपर्छ। यसका लागि, हामी Intersection over Union (IoU) प्रयोग गर्छौं, जसले दुई बक्सहरू (वा दुई मनमौजी क्षेत्रहरू) कत्तिको ओभरलाप गर्छन् भनेर मापन गर्छ।

IoU

IoU सम्बन्धी उत्कृष्ट ब्लग पोस्ट बाट चित्र २

यो विचार सरल छ - हामी दुई आकृतिहरूको बीचको अन्तर क्षेत्रलाई तिनीहरूको युनियन क्षेत्रले विभाजन गर्छौं। दुई समान क्षेत्रहरूको लागि, IoU १ हुनेछ, जबकि पूर्ण रूपमा अलग क्षेत्रहरूको लागि यो हुनेछ। अन्यथा यो देखि १ सम्म फरक हुनेछ। हामी सामान्यतया ती बाउन्डिङ बक्सहरू मात्र विचार गर्छौं जसको IoU निश्चित मानभन्दा माथि छ।

Average Precision

मानौं हामीले C वर्गको वस्तुहरू कत्तिको राम्रोसँग पहिचान गरिन्छ भनेर मापन गर्न चाहेका छौं। यसलाई मापन गर्न, हामी Average Precision मेट्रिक्स प्रयोग गर्छौं, जुन निम्नानुसार गणना गरिन्छ:

  1. Precision-Recall कर्भले थ्रेसहोल्ड मान ( देखि १ सम्म) अनुसार शुद्धता देखाउँछ।
  2. थ्रेसहोल्डको आधारमा, तस्बिरमा धेरै वा थोरै वस्तुहरू पहिचान गरिन्छ, र शुद्धता र रिकलका विभिन्न मानहरू प्राप्त हुन्छन्।
  3. कर्भ यस प्रकार देखिन्छ:

छवि NeuroWorkshop बाट

C वर्गको लागि Average Precision कर्भको क्षेत्र हो। थप स्पष्ट रूपमा, Recall अक्षलाई सामान्यतया १० भागमा विभाजन गरिन्छ, र Precision ती सबै बिन्दुहरूमा औसत गरिन्छ:


AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})

AP र IoU

हामी केवल ती पहिचानहरू विचार गर्नेछौं, जसको IoU निश्चित मानभन्दा माथि छ। उदाहरणका लागि, PASCAL VOC डेटासेटमा सामान्यतया \mbox{IoU Threshold} = 0.5 मानिन्छ, जबकि COCO मा AP विभिन्न \mbox{IoU Threshold} मानहरूको लागि मापन गरिन्छ।

छवि NeuroWorkshop बाट

Mean Average Precision - mAP

वस्तु पहिचानको मुख्य मेट्रिकलाई Mean Average Precision वा mAP भनिन्छ। यो Average Precisionको मान हो, सबै वस्तु वर्गहरूमा औसत गरिएको, र कहिलेकाहीं \mbox{IoU Threshold} मा पनि। थप विवरणमा, mAP गणना गर्ने प्रक्रिया यो ब्लग पोस्टमा वर्णन गरिएको छ, र यहाँ कोड नमूनाहरू सहित

वस्तु पहिचानका विभिन्न तरिकाहरू

वस्तु पहिचान एल्गोरिदमका दुई व्यापक वर्गहरू छन्:

  • Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN)। मुख्य विचार भनेको Regions of Interests (ROI) उत्पन्न गर्नु हो र तिनीहरूमा CNN चलाउनु हो, अधिकतम सक्रियता खोज्दै। यो साधारण तरिकासँग अलिकति मिल्दोजुल्दो छ, तर ROIs अधिक चतुर तरिकाले उत्पन्न गरिन्छ। यस्ता विधिहरूको मुख्य कमजोरी भनेको तिनीहरू ढिलो हुनु हो, किनकि तस्बिरमा CNN वर्गीकरणको धेरै पासहरू आवश्यक हुन्छ।
  • One-pass (YOLO, SSD, RetinaNet) विधिहरू। ती आर्किटेक्चरहरूमा हामी नेटवर्कलाई एक पासमा वर्गहरू र ROIs दुवै भविष्यवाणी गर्न डिजाइन गर्छौं।

R-CNN: Region-Based CNN

R-CNNले Selective Search प्रयोग गरेर ROI क्षेत्रहरूको हाइरार्किकल संरचना उत्पन्न गर्छ, जुन CNN फिचर एक्स्ट्र्याक्टरहरू र SVM-क्लासिफायरहरू मार्फत पास गरिन्छ, वस्तु वर्ग निर्धारण गर्न, र बाउन्डिङ बक्स समन्वय निर्धारण गर्न रेखीय रेग्रेशन प्रयोग गरिन्छ। Official Paper

RCNN

छवि van de Sande et al. ICCV11 बाट

RCNN-1

छवि यो ब्लग बाट

F-RCNN - Fast R-CNN

यो विधि R-CNNसँग मिल्दोजुल्दो छ, तर क्षेत्रहरू कनभोल्युसन तहहरू लागू भएपछि परिभाषित गरिन्छ।

FRCNN

छवि Official Paper, arXiv, 2015 बाट

Faster R-CNN

यस विधिको मुख्य विचार भनेको ROIs भविष्यवाणी गर्न न्युरल नेटवर्क प्रयोग गर्नु हो - Region Proposal Network भनिन्छ। Paper, 2016

FasterRCNN

छवि Official Paper बाट

R-FCN: Region-Based Fully Convolutional Network

यो एल्गोरिदम Faster R-CNN भन्दा पनि छिटो छ। मुख्य विचार निम्नानुसार छ:

  1. हामी ResNet-101 प्रयोग गरेर फिचरहरू निकाल्छौं।
  2. फिचरहरू Position-Sensitive Score Map द्वारा प्रशोधन गरिन्छ। C वर्गका प्रत्येक वस्तुहरूलाई k\times k क्षेत्रहरूद्वारा विभाजन गरिन्छ, र हामी वस्तुका भागहरू भविष्यवाणी गर्न प्रशिक्षण गर्छौं।
  3. k\times k क्षेत्रका प्रत्येक भागका लागि सबै नेटवर्कहरूले वस्तु वर्गहरूको लागि मतदान गर्छन्, र अधिकतम मतदान भएको वस्तु वर्ग चयन गरिन्छ।

r-fcn image

छवि Official Paper बाट

YOLO - You Only Look Once

YOLO एक रियलटाइम एक-पास एल्गोरिदम हो। मुख्य विचार निम्नानुसार छ:

  • तस्बिरलाई S\times S क्षेत्रहरूमा विभाजन गरिन्छ।
  • प्रत्येक क्षेत्रका लागि, CNNले n सम्भावित वस्तुहरू, बाउन्डिङ बक्स समन्वयहरू र confidence=probability * IoU भविष्यवाणी गर्छ।

YOLO

छवि Official Paper बाट

अन्य एल्गोरिदमहरू

✍️ अभ्यास: वस्तु पहिचान

निम्न नोटबुकमा आफ्नो सिकाइ जारी राख्नुहोस्:

ObjectDetection.ipynb

निष्कर्ष

यस पाठमा तपाईंले वस्तु पहिचान गर्न सकिने विभिन्न तरिकाहरूको संक्षिप्त भ्रमण गर्नुभयो!

🚀 चुनौती

यी लेखहरू र नोटबुकहरू पढ्नुहोस् र YOLO आफैं प्रयास गर्नुहोस्:

Post-lecture quiz

समीक्षा र आत्म अध्ययन

Assignment: Object Detection

अस्वीकरण:
यो दस्तावेज़ AI अनुवाद सेवा Co-op Translator प्रयोग गरी अनुवाद गरिएको हो। हामी यथासम्भव सटीकता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादहरूमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छन्। यसको मूल भाषामा रहेको मूल दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्त्वपूर्ण जानकारीका लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार हुने छैनौं।