YOLOv8 की छवि पहचान उत्कृष्ट है, लेकिन मॉडल का प्रशिक्षण एक महत्वपूर्ण कार्य है जिसे आपको अनदेखा नहीं करना चाहिए।
YOLOv8 एक रीयल-टाइम ऑब्जेक्ट डिटेक्शन एल्गोरिदम है जो ऑब्जेक्ट डिटेक्शन के क्षेत्र में व्यापक रूप से उपयोग किया जाता है। यह अल्ट्रालिटिक्स द्वारा विकसित यू ओनली लुक वंस (योलो) श्रृंखला का हिस्सा है। एल्गोरिथ्म छवियों और वीडियो में वस्तुओं को ट्रैक, पता लगाता है, सेगमेंट करता है, अनुमान लगाता है और वस्तुओं को वर्गीकृत करता है। इसका लक्ष्य अपने पूर्ववर्ती एल्गोरिदम की तुलना में तेज़ और अधिक सटीक होना है।
CIFAR-10 और CIFAR-100 जैसे प्रायोगिक डेटासेट पर YOLOv8 का उपयोग करना प्राय: प्रूफ-ऑफ-कॉन्सेप्ट (POC) परियोजनाओं के लिए वास्तविक दुनिया के डेटासेट की तुलना में आसान होता है, जिसके लिए अनुकूलित डेटासेट की आवश्यकता होती है।
यह ट्यूटोरियल आपको कस्टम डेटा पर YOLOv8 के प्रशिक्षण में शामिल चरणों के बारे में बताएगा।
पायथन पर्यावरण की स्थापना
नीचे दिए गए निर्देशों का पालन करते हुए, प्रोजेक्ट के लिए विकास परिवेश स्थापित करके प्रारंभ करें।
- टर्मिनल पर जाएं और नाम की एक नई निर्देशिका बनाएं yolov8project:
mkdir yolov8project
- प्रोजेक्ट निर्देशिका पर नेविगेट करें और एक आभासी वातावरण बनाएँ:
सीडी योलोव8प्रोजेक्ट
पायथन -एम वेनव एनवी - फिर, आभासी वातावरण को सक्रिय करें।
अपना कोड चलाने के लिए, आपको Ultralytics इंस्टॉल करना होगा, ऑब्जेक्ट डिटेक्शन और इमेज सेगमेंटेशन के लिए एक लाइब्रेरी। यह एक YOLOv8 निर्भरता भी है। इसे स्थापित करो पिप का उपयोग करना नीचे कमांड चलाकर।# विंडोज़ पर
env/Scripts/active# लिनक्स / macOS पर
स्रोत env/bin/activeपिप अल्ट्रालिटिक्स स्थापित करें
- यह आदेश YOLOv8 के पूर्व-प्रशिक्षित मॉडल को स्थापित करता है, योलोव8n.pt. क्रमशः YOLOv8 का उपयोग करके अपनी चुनी हुई छवि या वीडियो पर पूर्व-प्रशिक्षित भार के साथ पता लगाने के लिए नीचे दिए गए आदेशों को चलाकर मॉडल का परीक्षण करें।
यदि सब कुछ सही ढंग से काम करता है, तो परिणाम में उपलब्ध होंगे yolov8project निर्देशिका में चलाता है / पता लगाता है / ऍक्स्प उपनिर्देशिका।#छवि का पता लगाने
योलो टास्क = मोड का पता लगाएं = मॉडल की भविष्यवाणी करें = yolov8n.pt स्रोत = "पथ/से/छवि.png"#वीडियो पहचान
योलो टास्क = मोड का पता लगाएं = मॉडल की भविष्यवाणी करें = yolov8n.pt स्रोत = "पथ/से/वीडियो.mp4"
अपना कस्टम डेटासेट तैयार करना
आपके कस्टम डेटासेट को तैयार करने के चरणों में डेटा संग्रह, डेटा लेबलिंग और डेटा विभाजन (प्रशिक्षण, परीक्षण, सत्यापन) शामिल हैं।
डेटा संग्रहण
यह छवियों का एक सेट एकत्र करने की प्रक्रिया है जिसमें वे वस्तुएं हैं जिनका आप पता लगाना चाहते हैं। उच्च-गुणवत्ता वाली छवियों का उपयोग करना सुनिश्चित करें, फ़ोकस में, और ऑब्जेक्ट स्पष्ट रूप से दिखाई दे रहे हैं। छवियों को एकत्रित करने के लिए आप विभिन्न प्रकार के उपकरणों का उपयोग कर सकते हैं, जैसे कि Google छवियाँ, फ़्लिकर, या आपका अपना कैमरा। यदि आपके पास छवि डेटासेट नहीं है, तो से डेटासेट का उपयोग करें openimages डेटाबेस। यह लेख निर्माण स्थल सुरक्षा छवि का उपयोग करेगा कागले से डेटासेट.
डेटा लेबलिंग
अपनी छवियों को एकत्रित करने के बाद, आपको उन्हें लेबल करना होगा। इसका अर्थ है प्रत्येक छवि और उनके बाउंडिंग बॉक्स में वस्तुओं की पहचान करना। आपके डेटा को लेबल करने में आपकी मदद करने के लिए कई टूल उपलब्ध हैं, जैसे कि LabelImg, CVAT, और रोबोफ्लो. ये उपकरण उपयोग करने के लिए सभी निःशुल्क हैं।
डेटा को विभाजित करना
मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए, आपको अपने डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना होगा। बड़ी मात्रा में डेटा का उपयोग करते समय 70%-30% विभाजन अनुपात का उपयोग करने का प्रयास करें। अन्यथा, अपने मॉडल को ओवरफिटिंग या अंडरफिटिंग से बचने के लिए 80% -20% तक टिके रहें।
उपयोग विभाजन-फ़ोल्डर, अपने डेटा को अपने वांछित विभाजन अनुपात के साथ ट्रेन, परीक्षण और सत्यापन सेट में बेतरतीब ढंग से विभाजित करने के लिए।
अपने डेटासेट के लिए YOLOv8 को कॉन्फ़िगर करना
अपने डेटा को लेबल करने के बाद, अपने कस्टम डेटासेट के लिए YOLOv8 को कॉन्फ़िगर करने के लिए आगे बढ़ें। इसमें कॉन्फ़िगरेशन फ़ाइल बनाना शामिल है जो निम्न निर्दिष्ट करता है:
- आपके प्रशिक्षण डेटा का पथ।
- आपके सत्यापन डेटा का पथ।
- आप जिन वर्गों का पता लगाना चाहते हैं उनकी संख्या।
कॉन्फ़िगरेशन को संग्रहीत करने के लिए एक config.yaml फ़ाइल बनाएँ:
पथ:(डेटासेटनिर्देशिकापथ)
रेलगाड़ी:(रेलगाड़ीडाटासेटफ़ोल्डरपथ)
परीक्षा:(परीक्षाडाटासेटफ़ोल्डरपथ)
वैध:(सत्यापनडाटासेटफ़ोल्डरपथ)# कक्षाएं
एनसी:5# अपने डेटासेट की कक्षाओं की संख्या के आधार पर बदलें
# कक्षा के नाम
# सभी वर्ग नामों को अपनी कक्षाओं के नामों से बदलें
नाम:['वर्ग 1','कक्षा 2','कक्षा3','कक्षा 4','क्लास 5']
कॉन्फ़िगरेशन फ़ाइल बनाना आपके कंप्यूटर विज़न मॉडल के लिए महत्वपूर्ण पैरामीटरों की संरचना और संग्रह करने का एक उपयोगी तरीका है। अपने डेटासेट की प्रकृति और संरचना के अनुसार config.yaml फ़ाइल को अपडेट करना सुनिश्चित करें।
अपने डेटासेट के लिए सही पथ का उपयोग करना सुनिश्चित करें क्योंकि प्रशिक्षण मॉडल पूरी तरह से कॉन्फ़िगरेशन फ़ाइल पर निर्भर करता है।
कस्टम डेटा पर YOLOv8 का प्रशिक्षण
कॉन्फ़िगरेशन फ़ाइल बनाने के बाद, YOLOv8 का प्रशिक्षण शुरू करें। अपने मॉडल को प्रशिक्षित करने के लिए YOLOv8 कमांड लाइन टूल का उपयोग करें। कमांड लाइन टूल कई पैरामीटर लेता है, जैसे कि कॉन्फ़िगरेशन फ़ाइल का पथ, युगों की संख्या और छवि का आकार निम्नानुसार है:
योलो टास्क=डिटेक्ट मोड=ट्रेन मॉडल=योलोव8n.pt डेटा=पथ/से/config.yaml युग=10 imgsz=640
इस कमांड के कई भाग हैं।
काम कार्य का प्रकार निर्धारित करता है: पता लगाएँ, खंडित करें या वर्गीकृत करें। तरीका एक क्रिया का प्रतिनिधित्व करता है: ट्रेन, भविष्यवाणी, वैल, निर्यात, ट्रैक या बेंचमार्क। नमूना उपयोग करने के लिए मॉडल है, इस मामले में, yolov8n.pt। आप yolov8s/yolov8l/yolov8x का भी उपयोग कर सकते हैं।
अवधियों को प्रशिक्षण राउंड (10) की संख्या का प्रतिनिधित्व करता है। igsz छवि आकार (640) का प्रतिनिधित्व करता है। छवि का आकार हमेशा 32 के गुणक पर सेट होना चाहिए।
यहां उस आउटपुट का एक उदाहरण दिया गया है जिसकी आप उम्मीद कर सकते हैं:
प्रशिक्षण के लिए उपयोग किया जाने वाला समय आपके डेटासेट के आकार, युगों की संख्या और उन कक्षाओं की संख्या पर निर्भर करता है जिनका आप पता लगाना चाहते हैं। एक बार प्रशिक्षण प्रक्रिया पूरी हो जाने के बाद, आपके पास एक प्रशिक्षित YOLOv8 मॉडल होगा जिसका उपयोग आप छवियों और वीडियो में वस्तुओं का पता लगाने के लिए करेंगे।
प्रशिक्षण पूरा होने के बाद, नए वज़न के साथ अनुमान लगाएं, best.pt
योलो टास्क = मोड का पता लगाएं = मॉडल की भविष्यवाणी करें = "रन/ट्रेन/वेट/बेस्ट.पीटी" स्रोत = "इमेज.पीएनजी"
पर नेविगेट करें रन/ट्रेन/ऍक्स्प/वजन/best.pt कस्टम-प्रशिक्षित वज़न तक पहुँचने के लिए निर्देशिका। YOLOv8 ने अनुमानित छवि को इसमें संग्रहीत किया होगा चलाता है / पता लगाता है / ऍक्स्प उपनिर्देशिका।
मॉडल के प्रदर्शन का मूल्यांकन
आप निम्न आदेश का उपयोग करके YOLOv8 मॉडल के प्रदर्शन का मूल्यांकन कर सकते हैं जो परीक्षण छवियों के एक सेट पर मॉडल का मूल्यांकन करता है:
योलो वैल मॉडल=yolov8n.pt डेटा=पथ/से/config.yaml बैच=1 imgsz=640
अपेक्षित परिणाम इस प्रकार हैं:
मूल्यांकन प्रक्रिया विभिन्न मेट्रिक्स उत्पन्न करेगी, जैसे सटीक, रिकॉल और एफ1 स्कोर। सटीक मीट्रिक उन वस्तुओं के प्रतिशत को मापता है जिनका सही पता लगाया गया है। रिकॉल मीट्रिक उन वस्तुओं के प्रतिशत को मापता है जिनका YOLOv8 पता लगाता है। F1 स्कोर सटीक और रिकॉल मेट्रिक्स का भारित औसत है।
अपने कस्टम YOLOv8 मॉडल को डिप्लॉय करना
अपने YOLOv8 मॉडल के प्रदर्शन का परीक्षण करें।
योलो डिटेक्ट प्रेडिक्ट मॉडल=पथ/टू/बेस्ट.पीटी सोर्स='पाथ/टू/इमेज.जेपीजी'
आउटपुट इस प्रकार है:
फिर, मॉडल के वज़न को फ़ाइल में सहेजें।
योलो निर्यात मॉडल=पथ/से/सर्वश्रेष्ठ.पीटी प्रारूप=onnx
मॉडल को अपने एप्लिकेशन में लोड करने के लिए फ़ाइल का उपयोग करें और वास्तविक समय में वस्तुओं का पता लगाने के लिए इसका उपयोग करें। यदि आप मॉडल को a क्लाउड सेवा, सेवा पर मौजूद छवियों और वीडियो में वस्तुओं का पता लगाने के लिए क्लाउड सेवा का उपयोग करें।
YOLOv8 Takeaway
Ultralytics टीम ने YOLO श्रृंखला के मॉडलों में लगातार सुधार किया है। इसने उन्हें ऑब्जेक्ट डिटेक्शन टेक्नोलॉजी और कंप्यूटर विजन के क्षेत्र में उद्योग के नेता बना दिया है।
YOLOv8 एक बेहतर मॉडल है जिसका उपयोग आप कई प्रकार की कंप्यूटर विज़न परियोजनाओं को संभालने के लिए कर सकते हैं।