डिटेक्ट्रॉन 2 प्लेटोब्लॉकचैन डेटा इंटेलिजेंस के साथ पायथन में ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन। लंबवत खोज। ऐ.

Detectron2 के साथ पायथन में ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन

परिचय

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

ऑब्जेक्ट डिटेक्शन छवि वर्गीकरण के रूप में मानकीकृत नहीं है, मुख्यतः क्योंकि अधिकांश नए विकास आम तौर पर बड़े पुस्तकालयों और ढांचे के बजाय व्यक्तिगत शोधकर्ताओं, अनुरक्षकों और डेवलपर्स द्वारा किए जाते हैं। TensorFlow या PyTorch जैसे ढांचे में आवश्यक उपयोगिता स्क्रिप्ट को पैकेज करना और अब तक के विकास को निर्देशित करने वाले API दिशानिर्देशों को बनाए रखना मुश्किल है।

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

मेटा एआई का डिटेक्टर 2 - इंस्टेंस सेगमेंटेशन और ऑब्जेक्ट डिटेक्शन

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

इसका उपयोग एक पुस्तकालय के रूप में किया जाना है जिसके शीर्ष पर आप शोध परियोजनाएं बना सकते हैं। यह प्रदान करता है a मॉडल चिड़ियाघर रेटिनानेट के साथ-साथ सामान्य रूप से मास्क आर-सीएनएन और आर-सीएनएन पर निर्भर अधिकांश कार्यान्वयन के साथ। उनके पास एक बहुत ही सभ्य भी है दस्तावेज़ीकरण. आइए एक एक्सप्लोरी इंट्रेंस स्क्रिप्ट चलाते हैं!

सबसे पहले, निर्भरताएँ स्थापित करें:

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

इसके बाद, हम Detectron2 उपयोगिताओं को आयात करेंगे - यह वह जगह है जहाँ फ्रेमवर्क-डोमेन ज्ञान काम आता है। आप का उपयोग करके एक डिटेक्टर का निर्माण कर सकते हैं DefaultPredictor क्लास, एक कॉन्फ़िगरेशन ऑब्जेक्ट में पास करके जो इसे सेट करता है। Visualizer परिणामों को देखने के लिए समर्थन प्रदान करता है। MetadataCatalog और DatasetCatalog Detectron2 के डेटा API से संबंधित हैं और बिल्ट-इन डेटासेट के साथ-साथ उनके मेटाडेटा के बारे में जानकारी प्रदान करते हैं।

आइए उन कक्षाओं और कार्यों को आयात करें जिनका हम उपयोग करेंगे:

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

का प्रयोग requests, हम एक छवि डाउनलोड करेंगे और इसे अपने स्थानीय ड्राइव में सहेजेंगे:

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

इसका परिणाम यह होगा:

डिटेक्ट्रॉन 2 प्लेटोब्लॉकचैन डेटा इंटेलिजेंस के साथ पायथन में ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन। लंबवत खोज। ऐ.

अब, हम कॉन्फ़िगरेशन लोड करते हैं, यदि आवश्यक हो तो परिवर्तन लागू करें (मॉडल डिफ़ॉल्ट रूप से GPU पर चलते हैं, इसलिए यदि आपके पास GPU नहीं है, तो आप कॉन्फ़िगरेशन में डिवाइस को 'cpu' पर सेट करना चाहेंगे):

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


यहां, हम निर्दिष्ट करते हैं कि हम किस मॉडल से चलाना चाहते हैं model_zoo. हमने मास्क R-CNN आर्किटेक्चर पर आधारित और ResNet50 बैकबोन के साथ एक इंस्टेंस सेगमेंटेशन मॉडल आयात किया है। आप जो हासिल करना चाहते हैं उसके आधार पर (कीपॉइंट डिटेक्शन, इंस्टेंस सेगमेंटेशन, पैनोप्टिक सेगमेंटेशन या ऑब्जेक्ट डिटेक्शन), आप उपयुक्त मॉडल में लोड करेंगे।

अंत में, हम इसके साथ एक भविष्यवक्ता बना सकते हैं cfg और इसे इनपुट पर चलाएं! Visualizer कक्षा का उपयोग छवि पर भविष्यवाणियां करने के लिए किया जाता है (इस मामले में, खंडित उदाहरण, कक्षाएं और बाउंडिंग बॉक्स:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

अंत में, इसका परिणाम होता है:

सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!

डिटेक्ट्रॉन 2 प्लेटोब्लॉकचैन डेटा इंटेलिजेंस के साथ पायथन में ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन। लंबवत खोज। ऐ.

आगे जाना - कंप्यूटर विजन के लिए व्यावहारिक गहन शिक्षण

आपका जिज्ञासु स्वभाव आपको और आगे जाना चाहता है? हम अनुशंसा करते हैं कि हमारी जाँच करें कोर्स: "पायथन के साथ कंप्यूटर विजन के लिए प्रैक्टिकल डीप लर्निंग".

डिटेक्ट्रॉन 2 प्लेटोब्लॉकचैन डेटा इंटेलिजेंस के साथ पायथन में ऑब्जेक्ट डिटेक्शन और इंस्टेंस सेगमेंटेशन। लंबवत खोज। ऐ.

एक और कंप्यूटर विजन कोर्स?

हम MNIST अंकों या MNIST फैशन का वर्गीकरण नहीं करेंगे। उन्होंने बहुत समय पहले अपनी भूमिका निभाई थी। उन्नत ब्लैक-बॉक्स आर्किटेक्चर को प्रदर्शन का बोझ उठाने देने से पहले बहुत से सीखने के संसाधन बुनियादी डेटासेट और बुनियादी आर्किटेक्चर पर ध्यान केंद्रित कर रहे हैं।

हम पर ध्यान केंद्रित करना चाहते हैं रहस्योद्घाटन, व्यावहारिकता, समझ, अंतर्ज्ञान और वास्तविक परियोजनाएं. सीखना चाहते है कैसे आप कुछ कर सकते है? हम आपको हमारे दिमाग की छवियों को संसाधित करने से लेकर स्तन कैंसर के लिए एक शोध-ग्रेड डीप लर्निंग क्लासिफायर लिखने से लेकर गहन शिक्षण नेटवर्क तक ले जाएंगे जो "मतिभ्रम" करते हैं, आपको व्यावहारिक कार्य के माध्यम से सिद्धांत और सिद्धांत सिखाते हैं, आपको इससे लैस करते हैं कंप्यूटर विज़न को हल करने के लिए गहन शिक्षण को लागू करने में विशेषज्ञ बनने के लिए जानकारी और उपकरण।

अंदर क़या है?

  • दृष्टि के पहले सिद्धांत और कंप्यूटर को "देखना" कैसे सिखाया जा सकता है
  • कंप्यूटर विज़न के विभिन्न कार्य और अनुप्रयोग
  • व्यापार के उपकरण जो आपके काम को आसान बना देंगे
  • कंप्यूटर विज़न के लिए डेटासेट खोजना, बनाना और उपयोग करना
  • दृढ़ तंत्रिका नेटवर्क का सिद्धांत और अनुप्रयोग
  • डेटासेट में डोमेन शिफ्ट, सह-घटना और अन्य पूर्वाग्रहों को संभालना
  • अपने लाभ के लिए सीखने और दूसरों के प्रशिक्षण समय और कम्प्यूटेशनल संसाधनों का उपयोग करना स्थानांतरित करें
  • एक अत्याधुनिक स्तन कैंसर क्लासिफायर का निर्माण और प्रशिक्षण
  • मुख्यधारा के विचारों पर संदेह की एक स्वस्थ खुराक कैसे लागू करें और व्यापक रूप से अपनाई गई तकनीकों के निहितार्थ को समझें
  • t-SNE और PCA का उपयोग करके ConvNet के "अवधारणा स्थान" की कल्पना करना
  • बेहतर परिणाम प्राप्त करने के लिए कंपनियां कंप्यूटर विज़न तकनीकों का उपयोग कैसे करती हैं, इसका केस अध्ययन
  • उचित मॉडल मूल्यांकन, गुप्त स्थान विज़ुअलाइज़ेशन और मॉडल के ध्यान की पहचान करना
  • डोमेन अनुसंधान करना, अपने स्वयं के डेटासेट को संसाधित करना और मॉडल परीक्षण स्थापित करना
  • अत्याधुनिक वास्तुकला, विचारों की प्रगति, उन्हें क्या विशिष्ट बनाता है और उन्हें कैसे लागू किया जाए
  • KerasCV - अत्याधुनिक पाइपलाइन और मॉडल बनाने के लिए WIP लाइब्रेरी
  • पेपर कैसे पार्स करें और पढ़ें और उन्हें स्वयं कैसे लागू करें
  • अपने आवेदन के आधार पर मॉडल का चयन
  • एंड-टू-एंड मशीन लर्निंग पाइपलाइन बनाना
  • तेजी से आर-सीएनएन, रेटिनानेट्स, एसएसडी और योलो के साथ ऑब्जेक्ट डिटेक्शन पर लैंडस्केप और अंतर्ज्ञान
  • इंस्टेंस और सिमेंटिक सेगमेंटेशन
  • YOLOv5 . के साथ रीयल-टाइम ऑब्जेक्ट रिकग्निशन
  • YOLOv5 ऑब्जेक्ट डिटेक्टरों का प्रशिक्षण
  • KerasNLP (उद्योग-शक्ति WIP पुस्तकालय) का उपयोग कर ट्रांसफॉर्मर के साथ कार्य करना
  • छवियों के कैप्शन उत्पन्न करने के लिए ट्रांसफॉर्मर को कन्वनेट के साथ एकीकृत करना
  • DeepDream

निष्कर्ष

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

इस संक्षिप्त मार्गदर्शिका में, हमने इस पर एक त्वरित नज़र डाली है कि कैसे Detectron2 अपने API के माध्यम से मास्क R-CNN का उपयोग करके इंस्टेंस सेगमेंटेशन और ऑब्जेक्ट डिटेक्शन को आसान और सुलभ बनाता है।

समय टिकट:

से अधिक स्टैकब्यूज