कंप्यूटर विज़न की ऑब्जेक्ट डिटेक्शन तकनीक कई अनुप्रयोगों के लिए आवश्यक है। हम इसका उपयोग रोबोटिक्स, निगरानी उपकरण, स्व-ड्राइविंग ऑटोमोबाइल और कई अन्य क्षेत्रों में करते हैं। इसलिए, हम किसी तस्वीर या वीडियो में कुछ चीजों को ढूंढ और पहचान सकते हैं।
सबसे प्रसिद्ध में से एक ऑब्जेक्ट आइडेंटिफिकेशन एल्गोरिदम YOLO है (यू ओनली लुक वंस) मॉडलों का सेट। इन मॉडलों द्वारा बनाया गया है अल्ट्रालिटिक्स एलएलसी।
इस श्रृंखला का नवीनतम संस्करण YOLOv5 है। और, यह बाजार पर सबसे तेज और सबसे सटीक वस्तु पहचान मॉडल है। नए डेटा को सामान्यीकृत करने के लिए मॉडल की क्षमता में काफी सुधार हुआ है। साथ ही, इसमें कई विशेषताएं शामिल हैं जो इसे पहले के पुनरावृत्तियों से बेहतर प्रदर्शन करती हैं।
YOLOv5 वास्तविक समय के अनुप्रयोगों के लिए बहुत अच्छा है क्योंकि यह एक GPU पर प्रति सेकंड 1000 फ्रेम तक की दर से चित्रों को संसाधित कर सकता है।
इस लेख में, हम YOLOv5 का परिचय कराएंगे और इसके अनुप्रयोग के क्षेत्रों के विवरण की समीक्षा करेंगे।
YOLO की यात्रा: YOLO से YOLOv5 तक
जोसेफ रेडमोन एट अल। मूल रूप से 2016 में YOLO, वस्तु पहचान मॉडल का एक सेट पेश किया गया था। प्रारंभिक YOLO मॉडल वास्तविक समय में वस्तुओं की पहचान कर सकता है। हालांकि, उस समय अन्य मॉडलों की तुलना में इसकी सटीकता कम थी।
वर्षों के दौरान YOLO के कई उन्नत संस्करण जारी किए गए। और अंत में, Ultralytics LLC ने YOLO श्रृंखला का नवीनतम संस्करण YOLOv5 बनाया।
YOLOv5 वर्तमान में उपलब्ध सबसे सटीक और तेज वस्तु पहचान मॉडल है।
महत्वपूर्ण विशेषताएं
एंकर बॉक्स
YOLOv5 एंकर बॉक्स का उपयोग करके छवि में वस्तुओं के लिए बाउंडिंग बॉक्स की भविष्यवाणी करता है। मॉडल भविष्यवाणी करता है कि एंकर बॉक्स का उपयोग करके विभिन्न पहलू अनुपात वाले कई पूर्व-निर्धारित बॉक्स में से कौन सा चित्र में आइटम से सबसे अच्छा मेल खाता है। ये पूर्व निर्धारित बक्से हैं।
और, वे YOLOv5 को सटीकता के साथ चित्र में आइटम पहचानने और खोजने में सक्षम बनाते हैं।
मोज़ेक डेटा वृद्धि
प्रशिक्षण के दौरान, YOLOv5 मोज़ेक नामक एक विधि का उपयोग करता है डेटा वृद्धि. ताज़ा प्रशिक्षण चित्र विकसित करने के लिए, हमारा मॉडल बेतरतीब ढंग से कई फ़ोटो के पैच जोड़ता है। नतीजतन, मॉडल अधिक लचीला और भरोसेमंद हो जाता है। इसलिए, यह नए डेटा को सामान्यीकृत करता है और ओवरफिटिंग को कम करता है।
एक अद्वितीय प्रशिक्षण पाइपलाइन
एक अद्वितीय प्रशिक्षण पाइपलाइन जो पर्यवेक्षित और मिश्रित करती है अप्रकाशित शिक्षा प्रयोग किया जाता है।
इस प्रकार, मॉडल एक छोटे नमूने से सीखता है और बिना लेबल वाले इनपुट का प्रभावी ढंग से उपयोग करता है। यह मॉडल के प्रदर्शन को बढ़ाता है और नए इनपुट को सामान्य बनाने की क्षमता को बढ़ाता है।
परतें जो अवशिष्ट और गैर-अवशिष्ट हैं
YOLOv5 की वास्तुकला उन परतों को जोड़ती है जो अवशिष्ट और गैर-अवशिष्ट हैं। ग्रेडिएंट्स को परतों में प्रवाहित करने की अनुमति देकर, अवशिष्ट परतें कठिन विशेषताओं को सीखने में मॉडल की सहायता करती हैं। इसके अलावा, गैर-अवशिष्ट परतें मॉडल को इनपुट चित्र की अधिक व्यापक समझ प्रदान करती हैं। नतीजतन, YOLOv5 अधिक सटीक और प्रभावी ढंग से काम कर सकता है।
YOLOv5 का उपयोग कैसे करें
स्थापना
पाइप का उपयोग करके YOLOv5 की स्थापना जल्दी से पूरी की जा सकती है। पिप एक पायथन पैकेज मैनेजर है। YOLOv5 को स्थापित करने की सामान्य प्रक्रिया इस प्रकार है:
1- PyTorch स्थापित करें: क्योंकि YOLOv5 PyTorch ढांचे पर आधारित है, आपको पहले PyTorch को स्थापित करना होगा।
pip install torch torchvision
2. CUDA स्थापित करें: यदि आप YOLOv5 को GPU पर चलाना चाहते हैं तो आपको CUDA को स्थापित करना होगा।
3. YOLOv5 इंस्टॉल करें: PyTorch और CUDA को सेट करने के बाद, YOLOv5 को डाउनलोड करने के लिए निम्न कमांड का उपयोग करें।
pip install yolov5
4-YOLOv5 की स्थापना के बाद, आपको पूर्व-प्रशिक्षित भार डाउनलोड करना होगा। पूर्व-प्रशिक्षित भार Ultralytics GitHub रेपो में उपलब्ध हैं।
नीचे स्क्रॉल करके वेबसाइट के “वेट” भाग पर जाएँ। आप यहां दी गई सूची से पूर्व-प्रशिक्षित भार डाउनलोड कर सकते हैं।
5. उन भारों का चयन करें जो पहले से ही प्रशिक्षित हैं और आपके उपयोग के मामले में सबसे उपयुक्त हैं। डेटासेट या विशेष YOLOv5 संस्करण जो वजन सीखा गया था, सूची को संकीर्ण करने के लिए उपयोग किया जा सकता है।
6- उचित वजन का चयन करने के बाद, वजन के बगल में स्थित "डाउनलोड" बटन पर क्लिक करके वजन चुनें। वजन के रूप में डाउनलोड करने के लिए उपलब्ध हो जाएगा। पीटी फाइलें।
7- डाउनलोड किए गए वेट को डायरेक्टरी में ट्रांसफर करें। यहीं पर आपकी डिटेक्शन स्क्रिप्ट काम करेगी।
8- इस बिंदु पर, आप अपनी पहचान स्क्रिप्ट में पूर्व-प्रशिक्षित भार का उपयोग करके अपने फ़ोटो या वीडियो पर ऑब्जेक्ट डिटेक्शन चला सकते हैं।
डाटा तैयार करें
YOLOv5 के साथ उपयोग के लिए डेटा तैयार करने के लिए आपको निम्नलिखित कदम उठाने होंगे:
1. डेटा एकत्र करें: पहला कदम वह चित्र या वीडियो डेटा एकत्र करना है जिसकी आपको आवश्यकता होगी वस्तु का पता लगाना. आप जिन चीज़ों का पता लगाना चाहते हैं, वे फ़ोटो या वीडियो में मौजूद होनी चाहिए।
2- डेटा को प्रारूपित करें: यदि आप उनका उपयोग कर रहे हैं तो आप केवल अपनी स्क्रिप्ट में फ़ोटो आयात कर सकते हैं। यदि आप एक का उपयोग करने की योजना बना रहे हैं तो आपको एक वीडियो को तस्वीरों की एक श्रृंखला में बदलना होगा। आप OpenCV जैसी लाइब्रेरी का उपयोग करके मूवी से फ़्रेम निकाल सकते हैं।
import cv2
img = cv2.imread('path/to/image')
OpenCV लाइब्रेरी के साथ, आप वीडियो को छवियों की एक श्रृंखला में बदलने के लिए निम्न आदेश का उपयोग कर सकते हैं:
import cv2
cap = cv2.VideoCapture('path/to/video')
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3. डेटा को लेबल करें: यदि आप अपने डेटासेट का उपयोग कर रहे हैं तो आपको डेटा को लेबल करना होगा। छवि के प्रत्येक फ्रेम में उन वस्तुओं के चारों ओर बाउंडिंग बॉक्स बनाना जिन्हें आप पहचानना चाहते हैं। यह डेटा को लेबल करने की प्रक्रिया है। आप इस ऑपरेशन में अपनी सहायता के लिए कई टूल का उपयोग कर सकते हैं, जिसमें LabelImg और RectLabel शामिल हैं।
4- टैग करने के बाद आपको डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना होगा। यह आकलन करने के लिए महत्वपूर्ण है कि आपका मॉडल कितना अच्छा प्रदर्शन करता है।
5. अंत में, आपको प्रशिक्षण या परीक्षण से पहले डेटा को प्रीप्रोसेस करने की आवश्यकता हो सकती है। इसमें चित्रों या वीडियो को स्केल करना, पिक्सेल मानों को मानकीकृत करना, या डेटा वृद्धि के तरीकों का उपयोग करना शामिल हो सकता है।
इन चरणों को पूरा करने के बाद आपका डेटा तैयार है।
डिटेक्शन स्क्रिप्ट चलाएँ
यहां एक डिटेक्शन स्क्रिप्ट का एक उदाहरण दिया गया है जो एक तस्वीर का विश्लेषण करती है और वस्तुओं को ढूंढती है।
import yolov5
import cv2
# Pre-trained weights should be loaded.
weights = 'path/to/weights.pt'
# Set the detection confidence level
conf_thres = 0.5
# Set the Non-Maxima Suppression (NMS) threshold
nms_thres = 0.5
# Create the detector object
detector = yolov5.YOLOv5(weights, conf_thres, nms_thres)
# Load the image
img = cv2.imread('path/to/image')
# Perform object detection
detections = detector.detect(img)
# Print the detections
for x1, y1, x2, y2, conf, cls_conf, cls_pred in detections:
print("Object:", classes[int(cls_pred)])
print("Confidence:", conf)
print("Bounding box:", (x1, y1, x2, y2))
प्रोसेसिंग के बाद
गैर-अधिकतम दमन ऑब्जेक्ट डिटेक्शन (एनएमएस) में उपयोग की जाने वाली सबसे लगातार पोस्ट-प्रोसेसिंग तकनीकों में से एक है। हम एक ही वस्तु के लिए अतिव्यापी बाउंडिंग बॉक्स को खत्म करने के लिए एनएमएस का उपयोग करते हैं। पता लगाने पर NMS को निष्पादित करने के लिए, हम OpenCV लाइब्रेरी की cv2.dnn.NMSBoxes() पद्धति का उपयोग कर सकते हैं।
यहाँ इसका एक उदाहरण दिया गया है कि NMS का उपयोग करके पोस्ट-प्रोसेस कैसे करें।
import cv2
# Perform Non-Maxima Suppression (NMS)
सूचकांक = cv2.dnn.NMSBoxes (जांच, विश्वास, conf_thres, nms_thres)
विज़ुअलाइज़ेशन
विज़ुअलाइज़ेशन के मामले में, हम फिर से OpenCV जैसी लाइब्रेरी का उपयोग कर सकते हैं। हम स्रोत चित्र या वीडियो पर खोजी गई वस्तुओं के चारों ओर बाउंडिंग बॉक्स प्रदर्शित कर सकते हैं। इमेज के बाउंडिंग बॉक्स बनाने के लिए, cv2.rectangle() मेथड का इस्तेमाल करें। मूल छवि पर पता लगाने का तरीका यहां बताया गया है:
आयात cv2
# Draw the bounding boxes on the image
I के लिए सूचकांकों में:
i = i[0]
x1, y1, x2, y2 = detections[i][0], detections[i][1], detections[i][2], detections[i][3]
cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)
cv2.putText(img, classes[class_ids[i]], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# Show the image
cv2.imshow("Object Detection", img)
cv2
अनुप्रयोगों
YOLOv5 एक मजबूत वस्तु पहचान मॉडल है। इसलिए, हम वास्तविक दुनिया के कई परिदृश्यों में इसका उपयोग कर सकते हैं। स्व-ड्राइविंग कारों में सबसे प्रमुख उपयोगों में से एक है। YOLOv5 वास्तविक समय में ऑटोमोबाइल और ट्रैफिक लाइट जैसी वस्तुओं की पहचान कर सकता है।
निगरानी प्रणालियों में, हम लाइव वीडियो स्ट्रीम में वस्तुओं को पहचानने और ट्रैक करने के लिए YOLOv5 का उपयोग कर सकते हैं। इसके अलावा, YOLOv5 रोबोटिक्स में एक बड़ी संपत्ति हो सकती है। यह रोबोट को अपने परिवेश का पता लगाने और समझने में मदद कर सकता है। नेविगेशन और हेरफेर जैसी गतिविधियों के लिए यह बेहद महत्वपूर्ण है।
YOLOv5 का उपयोग किसी भी ऐसे उद्योग में भी किया जा सकता है जिसके लिए खुदरा, खेल, चिकित्सा और सुरक्षा जैसे ऑब्जेक्ट डिटेक्शन की आवश्यकता होती है।
निष्कर्ष
अंत में, YOLOv5, YOLO परिवार का सबसे नवीनतम और परिष्कृत संस्करण है वस्तु का पता लगाना मॉडल
. इसके अलावा, यह कहना उचित है कि यह सबसे सटीक ऑब्जेक्ट डिटेक्शन मॉडल उपलब्ध है। इसकी उच्च सटीकता और गति के लिए धन्यवाद, आप इसे अपने ऑब्जेक्ट डिटेक्शन प्रोजेक्ट्स के लिए सुरक्षित रूप से चुन सकते हैं।
रेस्की अगस
मैं yolov5 के साथ पता लगाने वाले वाहन के बारे में पहली पत्रिका बनाता हूं और यह वेब मुझे उसके बारे में जानकारी खोजने में मदद करता है।
मुझे एआई के बारे में बहुत दिलचस्पी है।
यदि आपके पास एआई के बारे में बहुत सारे प्रश्न हैं तो शायद आप मेरी मदद कर सकते हैं
ठनक