सामग्री पर जाएं

YOLO-वर्ल्ड मॉडल

वही YOLO-वर्ल्ड मॉडल एक उन्नत, वास्तविक समय का परिचय देता है Ultralytics YOLOv8खुली शब्दावली का पता लगाने कार्यों के लिए आधारित दृष्टिकोण. यह नवाचार वर्णनात्मक ग्रंथों के आधार पर एक छवि के भीतर किसी भी वस्तु का पता लगाने में सक्षम बनाता है। प्रतिस्पर्धी प्रदर्शन को संरक्षित करते हुए कम्प्यूटेशनल मांगों को काफी कम करके, YOLO-World कई दृष्टि-आधारित अनुप्रयोगों के लिए एक बहुमुखी उपकरण के रूप में उभरता है।

YOLO-World Model वास्तुकला अवलोकन

विहंगावलोकन

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

प्रमुख विशेषताऐं

  1. वास्तविक समय समाधान: सीएनएन की कम्प्यूटेशनल गति का दोहन, YOLO-वर्ल्ड एक तेजी से खुली शब्दावली का पता लगाने का समाधान प्रदान करता है, जो तत्काल परिणामों की आवश्यकता वाले उद्योगों को पूरा करता है।

  2. दक्षता और प्रदर्शन: YOLO-वर्ल्ड प्रदर्शन का त्याग किए बिना कम्प्यूटेशनल और संसाधन आवश्यकताओं को कम करता है, जैसे मॉडल के लिए एक मजबूत विकल्प प्रदान करता है SAM लेकिन कम्प्यूटेशनल लागत के एक अंश पर, वास्तविक समय के अनुप्रयोगों को सक्षम करना।

  3. ऑफ़लाइन शब्दावली के साथ अनुमान: YOLO-वर्ल्ड एक "शीघ्र-तत्काल-पहचान" रणनीति पेश करता है, दक्षता को और बढ़ाने के लिए एक ऑफ़लाइन शब्दावली को नियोजित करता है। यह दृष्टिकोण कैप्शन या श्रेणियों सहित गणना किए गए कस्टम संकेतों के उपयोग को सक्षम बनाता है, जिन्हें एन्कोड किया जाता है और ऑफ़लाइन शब्दावली एम्बेडिंग के रूप में संग्रहीत किया जाता है, जिससे पता लगाने की प्रक्रिया सुव्यवस्थित होती है।

  4. इसके द्वारा संचालित YOLOv8: पर निर्मित Ultralytics YOLOv8, YOLO-वर्ल्ड अद्वितीय सटीकता और गति के साथ खुली शब्दावली का पता लगाने की सुविधा के लिए वास्तविक समय वस्तु का पता लगाने में नवीनतम प्रगति का लाभ उठाता है।

  5. बेंचमार्क उत्कृष्टता: YOLO-वर्ल्ड मानक बेंचमार्क पर गति और दक्षता के मामले में MDETR और GLIP श्रृंखला सहित मौजूदा ओपन-शब्दावली डिटेक्टरों से बेहतर प्रदर्शन करता है, प्रदर्शन करता है YOLOv8एकल NVIDIA V100 GPU पर बेहतर क्षमता।

  6. बहुमुखी अनुप्रयोग: YOLO-वर्ल्ड का अभिनव दृष्टिकोण दृष्टि कार्यों की एक भीड़ के लिए नई संभावनाओं को अनलॉक करता है, मौजूदा तरीकों पर परिमाण के आदेशों द्वारा गति में सुधार प्रदान करता है।

उपलब्ध मॉडल, समर्थित कार्य और ऑपरेटिंग मोड

यह खंड उनके विशिष्ट पूर्व-प्रशिक्षित भारों के साथ उपलब्ध मॉडलों का विवरण देता है, वे कार्य जिनका वे समर्थन करते हैं, और विभिन्न ऑपरेटिंग मोड जैसे अनुमान, सत्यापन, प्रशिक्षण और निर्यात के साथ उनकी संगतता, समर्थित मोड के लिए और ❌ असमर्थित मोड के लिए निरूपित ✅ हैं।

नोट

सभी YOLOv8-विश्व भार सीधे अधिकारी से स्थानांतरित कर दिया गया है YOLO-वर्ल्ड रिपॉजिटरी, उनके उत्कृष्ट योगदान पर प्रकाश डालते हुए।

मॉडल प्रकार पूर्व-प्रशिक्षित वजन समर्थित कार्य अनुमान मान्यता प्रशिक्षण निर्यातित माल
YOLOv8s-संसार yolov8s-world.pt वस्तु का पता लगाना
YOLOv8s-वर्ल्डv2 yolov8s-worldv2.pt वस्तु का पता लगाना
YOLOv8m-संसार yolov8m-world.pt वस्तु का पता लगाना
YOLOv8m-वर्ल्डv2 yolov8m-worldv2.pt वस्तु का पता लगाना
YOLOv8l-संसार yolov8l-world.pt वस्तु का पता लगाना
YOLOv8l-वर्ल्डv2 yolov8l-worldv2.pt वस्तु का पता लगाना
YOLOv8x-संसार yolov8x-world.pt वस्तु का पता लगाना
YOLOv8x-वर्ल्डv2 yolov8x-worldv2.pt वस्तु का पता लगाना

COCO डेटासेट पर शून्य-शॉट स्थानांतरण

मॉडल प्रकार मानचित्र एमएपी50 एमएपी75
yolov8s-संसार 37.4 52.0 40.6
yolov8s-वर्ल्डv2 37.7 52.2 41.0
yolov8m-संसार 42.0 57.0 45.6
yolov8m-वर्ल्डv2 43.0 58.4 46.8
yolov8l-संसार 45.7 61.3 49.8
yolov8l-वर्ल्डv2 45.8 61.3 49.8
yolov8x-संसार 47.0 63.0 51.2
yolov8x-वर्ल्डv2 47.1 62.8 51.4

उपयोग के उदाहरण

वही YOLO-World मॉडल आपके में एकीकृत करना आसान है Python अनुप्रयोगों। Ultralytics उपयोगकर्ता के अनुकूल प्रदान करता है Python API और CLI विकास को सुव्यवस्थित करने के लिए आदेश।

ट्रेन का उपयोग

नोक

हम दृढ़ता से उपयोग करने की सलाह देते हैं yolov8-worldv2 कस्टम प्रशिक्षण के लिए मॉडल, क्योंकि यह नियतात्मक प्रशिक्षण का समर्थन करता है और अन्य प्रारूपों को निर्यात करना भी आसान है onnx/tensorrt.

ऑब्जेक्ट डिटेक्शन के साथ सीधा है train विधि, जैसा कि नीचे दिखाया गया है:

उदाहरण

PyTorch पूर्व-प्रशिक्षित *.pt मॉडल के साथ-साथ कॉन्फ़िगरेशन *.yaml फ़ाइलों को पास किया जा सकता है YOLOWorld() में एक मॉडल उदाहरण बनाने के लिए वर्ग python:

from ultralytics import YOLOWorld

# Load a pretrained YOLOv8s-worldv2 model
model = YOLOWorld('yolov8s-worldv2.pt')

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')
# Load a pretrained YOLOv8s-worldv2 model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8s-worldv2.yaml data=coco8.yaml epochs=100 imgsz=640

उपयोग की भविष्यवाणी करें

ऑब्जेक्ट डिटेक्शन के साथ सीधा है predict विधि, जैसा कि नीचे दिखाया गया है:

उदाहरण

from ultralytics import YOLOWorld

# Initialize a YOLO-World model
model = YOLOWorld('yolov8s-world.pt')  # or select yolov8m/l-world.pt for different sizes

# Execute inference with the YOLOv8s-world model on the specified image
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()
# Perform object detection using a YOLO-World model
yolo predict model=yolov8s-world.pt source=path/to/image.jpg imgsz=640

यह स्निपेट पूर्व-प्रशिक्षित मॉडल लोड करने और छवि पर पूर्वानुमान चलाने की सरलता को प्रदर्शित करता है।

वैल उपयोग

डेटासेट पर मॉडल सत्यापन निम्नानुसार सुव्यवस्थित है:

उदाहरण

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or select yolov8m/l-world.pt for different sizes

# Conduct model validation on the COCO8 example dataset
metrics = model.val(data='coco8.yaml')
# Validate a YOLO-World model on the COCO8 dataset with a specified image size
yolo val model=yolov8s-world.pt data=coco8.yaml imgsz=640

नोट

वही YOLO-वर्ल्ड मॉडल द्वारा प्रदान किए गए Ultralytics कोको डेटासेट श्रेणियों के साथ उनकी ऑफ़लाइन शब्दावली के हिस्से के रूप में पूर्व-कॉन्फ़िगर किया गया है, जिससे तत्काल आवेदन के लिए दक्षता बढ़ जाती है। यह एकीकरणYOLOv8-विश्व मॉडल अतिरिक्त सेटअप या अनुकूलन की आवश्यकता के बिना COCO डेटासेट में परिभाषित 80 मानक श्रेणियों को सीधे पहचानने और भविष्यवाणी करने के लिए।

संकेत सेट करें

YOLO-वर्ल्ड प्रॉम्प्ट क्लास नाम अवलोकन

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

उदाहरण के लिए, यदि आपके आवेदन को केवल 'व्यक्ति' और 'बस' वस्तुओं का पता लगाने की आवश्यकता है, तो आप इन वर्गों को सीधे निर्दिष्ट कर सकते हैं:

उदाहरण

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or choose yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction for specified categories on an image
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()

कस्टम कक्षाएं सेट करने के बाद आप एक मॉडल भी सहेज सकते हैं। ऐसा करके आप YOLO-वर्ल्ड मॉडल जो आपके विशिष्ट उपयोग के मामले के लिए विशिष्ट है। यह प्रक्रिया आपकी कस्टम क्लास परिभाषाओं को सीधे मॉडल फ़ाइल में एम्बेड करती है, जिससे मॉडल बिना किसी समायोजन के आपके निर्दिष्ट वर्गों के साथ उपयोग करने के लिए तैयार हो जाता है। अपने कस्टम को सहेजने और लोड करने के लिए इन चरणों का पालन करें YOLOv8 को गढ़ना:

उदाहरण

पहले लोड a YOLO-World मॉडल, इसके लिए कस्टम कक्षाएं सेट करें और इसे सहेजें:

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or select yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Save the model with the defined offline vocabulary
model.save("custom_yolov8s.pt")

सहेजने के बाद, custom_yolov8s.pt मॉडल किसी भी अन्य पूर्व-प्रशिक्षित की तरह व्यवहार करता है YOLOv8 मॉडल लेकिन एक महत्वपूर्ण अंतर के साथ: अब यह केवल आपके द्वारा परिभाषित कक्षाओं का पता लगाने के लिए अनुकूलित है। यह अनुकूलन आपके विशिष्ट अनुप्रयोग परिदृश्यों के लिए पहचान प्रदर्शन और दक्षता में काफी सुधार कर सकता है।

from ultralytics import YOLO

# Load your custom model
model = YOLO('custom_yolov8s.pt')

# Run inference to detect your custom classes
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()

कस्टम शब्दावली के साथ बचत के लाभ

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

यह दृष्टिकोण विशिष्ट कार्यों के लिए अत्याधुनिक ऑब्जेक्ट डिटेक्शन मॉडल को अनुकूलित करने का एक शक्तिशाली साधन प्रदान करता है, जिससे उन्नत एआई अधिक सुलभ और व्यावहारिक अनुप्रयोगों की एक विस्तृत श्रृंखला पर लागू होता है।

खरोंच से आधिकारिक परिणाम पुन: पेश करें (प्रायोगिक)

डेटासेट तैयार करें

  • ट्रेन डेटा
डेटासेट प्रकार नमूने बक्से एनोटेशन फ़ाइलें
ऑब्जेक्ट्स365v1 खोज 609k 9621k objects365_train.json
जीक्यूए ग्राउंडिंग 621k 3681k final_mixed_train_no_coco.json
फ़्लिकर30k ग्राउंडिंग 149k 641k final_flickr_separateGT_train.json
  • वैल डेटा
डेटासेट प्रकार एनोटेशन फ़ाइलें
एलवीआईएस न्यूनतम खोज minival.txt

खरोंच से प्रशिक्षण शुरू करें

नोट

WorldTrainerFromScratch प्रशिक्षण की अनुमति देने के लिए अत्यधिक अनुकूलित है yolo-वर्ल्ड मॉडल दोनों डिटेक्शन डेटासेट और ग्राउंडिंग डेटासेट पर एक साथ। अधिक जानकारी कृपया चेकआउट करें ultralytics।को गढ़ना।yolo.world.train_world.py.

उदाहरण

from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch
from ultralytics import YOLOWorld

data = dict(
    train=dict(
        yolo_data=["Objects365.yaml"],
        grounding_data=[
            dict(
                img_path="../datasets/flickr30k/images",
                json_file="../datasets/flickr30k/final_flickr_separateGT_train.json",
            ),
            dict(
                img_path="../datasets/GQA/images",
                json_file="../datasets/GQA/final_mixed_train_no_coco.json",
            ),
        ],
    ),
    val=dict(yolo_data=["lvis.yaml"]),
)
model = YOLOWorld("yolov8s-worldv2.yaml")
model.train(data=data, batch=128, epochs=100, trainer=WorldTrainerFromScratch)

प्रशंसा पत्र और पावती

हम Tencent AILab कंप्यूटर विजन सेंटर के प्रति अपना आभार व्यक्त करते हैं, जो वास्तविक समय में ओपन-वोकेबुलरी ऑब्जेक्ट डिटेक्शन में उनके अग्रणी काम के लिए है YOLO-संसार:

@article{cheng2024yolow,
title={YOLO-World: Real-Time Open-Vocabulary Object Detection},
author={Cheng, Tianheng and Song, Lin and Ge, Yixiao and Liu, Wenyu and Wang, Xinggang and Shan, Ying},
journal={arXiv preprint arXiv:2401.17270},
year={2024}
}

आगे पढ़ने के लिए, मूल YOLO-वर्ल्ड पेपर arXiv पर उपलब्ध है। प्रोजेक्ट के स्रोत कोड और अतिरिक्त संसाधनों को उनके GitHub रिपॉजिटरी के माध्यम से एक्सेस किया जा सकता है। हम क्षेत्र को आगे बढ़ाने और समुदाय के साथ अपनी मूल्यवान अंतर्दृष्टि साझा करने की उनकी प्रतिबद्धता की सराहना करते हैं।



2024-02-14 बनाया गया, अपडेट किया गया 2024-04-02
लेखक: बुरहान-क्यू (1), लाफिंग-क्यू (4), ग्लेन-जोचर (1)

टिप्पणियाँ