कॉम्प्युटर व्हिजनचे ऑब्जेक्ट डिटेक्शन तंत्रज्ञान असंख्य अनुप्रयोगांसाठी आवश्यक आहे. आम्ही ते रोबोटिक्स, पाळत ठेवणारी उपकरणे, सेल्फ-ड्रायव्हिंग ऑटोमोबाईल आणि इतर अनेक क्षेत्रांमध्ये वापरतो. म्हणून, आपल्याला चित्र किंवा व्हिडिओमध्ये काही गोष्टी शोधता येतात आणि ओळखता येतात.
सर्वात प्रसिद्ध एक ऑब्जेक्ट ओळख अल्गोरिदम YOLO आहे (तुम्ही फक्त एकदा पहा) मॉडेलचा संच. हे मॉडेल द्वारे तयार केले जातात Ultralytics LLC.
या मालिकेची सर्वात अलीकडील आवृत्ती YOLOv5 आहे. आणि, हे बाजारात सर्वात जलद आणि सर्वात अचूक ऑब्जेक्ट ओळख मॉडेल आहे. नवीन डेटाचे सामान्यीकरण करण्याची मॉडेलची क्षमता मोठ्या प्रमाणात सुधारली गेली आहे. तसेच, त्यात अनेक वैशिष्ट्ये आहेत ज्यामुळे ती पूर्वीच्या पुनरावृत्तीपेक्षा चांगली कामगिरी करते.
YOLOv5 हे रिअल-टाइम ऍप्लिकेशन्ससाठी उत्तम आहे कारण ते एका GPU वर प्रति सेकंद 1000 फ्रेम्सच्या दराने चित्रांवर प्रक्रिया करू शकते.
या लेखात, आम्ही YOLOv5 ची ओळख करून देऊ आणि त्याच्या अनुप्रयोगाच्या क्षेत्रांचे तपशील पाहू.
YOLO चा प्रवास: YOLO ते YOLOv5
जोसेफ रेडमॉन इ. मूलतः YOLO, ऑब्जेक्ट आयडेंटिफिकेशन मॉडेल्सचा एक संच, 2016 मध्ये सादर केला. प्रारंभिक YOLO मॉडेल रिअल टाइममध्ये वस्तू ओळखू शकते. तथापि, त्यावेळच्या इतर मॉडेलच्या तुलनेत त्याची अचूकता कमी होती.
YOLO च्या अनेक अपग्रेड केलेल्या आवृत्त्या वर्षभरात प्रसिद्ध झाल्या. आणि शेवटी, Ultralytics LLC ने YOLO मालिकेची नवीनतम आवृत्ती, YOLOv5 तयार केली.
YOLOv5 हे सध्या उपलब्ध असलेले सर्वात अचूक आणि जलद ऑब्जेक्ट ओळख मॉडेल आहे.
महत्वाची वैशिष्ट्ये
अँकर बॉक्सेस
YOLOv5 अँकर बॉक्सेस वापरून इमेजमधील ऑब्जेक्ट्ससाठी बाउंडिंग बॉक्सेसचा अंदाज लावतो. अँकर बॉक्सेसचा वापर करून चित्रातील आयटमशी विविध आस्पेक्ट रेशो असलेल्या अनेक पूर्व-परिभाषित बॉक्सेसपैकी कोणते बॉक्स सर्वोत्तम जुळतात हे मॉडेल अंदाज लावते. हे पूर्व-परिभाषित बॉक्स आहेत.
आणि, ते YOLOv5 अचूकतेसह चित्रातील आयटम ओळखण्यास आणि शोधण्यास सक्षम करतात.
मोजॅक डेटा वाढवणे
प्रशिक्षण देताना, YOLOv5 मोज़ेक म्हणून ओळखली जाणारी पद्धत वापरते डेटा वाढ. नवीन प्रशिक्षण चित्रे विकसित करण्यासाठी, आमचे मॉडेल यादृच्छिकपणे अनेक फोटोंचे पॅच एकत्र करते. परिणामी, मॉडेल अधिक लवचिक आणि विश्वासार्ह बनते. त्यामुळे, ते नवीन डेटाचे सामान्यीकरण करते आणि ओव्हरफिटिंग कमी करते.
एक अद्वितीय प्रशिक्षण पाइपलाइन
एक अद्वितीय प्रशिक्षण पाइपलाइन जी पर्यवेक्षित आणि मिसळते पर्यवेक्षण न केलेले शिक्षण वापरलेले आहे.
अशा प्रकारे, मॉडेल लहान नमुन्यातून शिकते आणि लेबल न केलेले इनपुट प्रभावीपणे वापरते. हे मॉडेलचे कार्यप्रदर्शन वाढवते आणि नवीन इनपुटसाठी सामान्यीकरण करण्याची क्षमता वाढवते.
अवशिष्ट आणि अवशिष्ट नसलेले स्तर
YOLOv5 चे आर्किटेक्चर अवशिष्ट आणि अवशिष्ट नसलेले स्तर एकत्र करते. ग्रेडियंट्सला थरांमध्ये वाहू देऊन, अवशिष्ट स्तर कठीण वैशिष्ट्ये शिकण्यात मॉडेलला मदत करतात. तसेच, अवशिष्ट नसलेले स्तर मॉडेलला इनपुट चित्राचे अधिक व्यापक आकलन प्रदान करतात. परिणामी, YOLOv5 अधिक अचूक आणि प्रभावीपणे कार्य करू शकते.
YOLOv5 कसे वापरावे
स्थापना
YOLOv5 इंस्टॉलेशन pip वापरून लवकर पूर्ण केले जाऊ शकते. पिप हा पायथन पॅकेज मॅनेजर आहे. YOLOv5 स्थापित करण्यासाठी सामान्य प्रक्रिया खालीलप्रमाणे आहेत:
1- PyTorch स्थापित करा: YOLOv5 PyTorch फ्रेमवर्कवर आधारित असल्यामुळे, तुम्ही प्रथम PyTorch स्थापित करणे आवश्यक आहे.
pip install torch torchvision
2. CUDA स्थापित करा: जर तुमचा GPU वर YOLOv5 चालवायचा असेल तर तुम्ही CUDA स्थापित करणे आवश्यक आहे.
3. YOLOv5 स्थापित करा: PyTorch आणि CUDA सेट केल्यानंतर, YOLOv5 डाउनलोड करण्यासाठी खालील आदेश वापरा.
pip install yolov5
4-YOLOv5 च्या स्थापनेनंतर, तुम्ही पूर्व-प्रशिक्षित वजने डाउनलोड करणे आवश्यक आहे. पूर्व-प्रशिक्षित वजने Ultralytics GitHub रेपोमध्ये उपलब्ध आहेत.
खाली स्क्रोल करून वेबसाइटच्या "वजन" भागावर जा. तुम्ही येथे शोधू शकता त्या सूचीमधून तुम्ही पूर्व-प्रशिक्षित वजने डाउनलोड करू शकता.
5. आधीपासून प्रशिक्षित असलेले वजन निवडा आणि तुमच्या वापराच्या बाबतीत सर्वात योग्य आहे. डेटासेट किंवा विशिष्ट YOLOv5 आवृत्ती ज्याचे वजन शिकले होते ते सूची कमी करण्यासाठी वापरले जाऊ शकते.
6- योग्य वजन निवडल्यानंतर, त्याच्या शेजारी असलेल्या “डाउनलोड” बटणावर क्लिक करून वजन निवडा. वजने डाउनलोड करण्यासाठी उपलब्ध असतील. pt फाइल्स.
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) मध्ये वापरल्या जाणार्या पोस्ट-प्रोसेसिंग तंत्रांपैकी एक नॉन-कमॅक्सिमम सप्रेशन आहे. आम्ही समान ऑब्जेक्टसाठी ओव्हरलॅपिंग बाउंडिंग बॉक्सेस काढून टाकण्यासाठी NMS वापरतो. शोधांवर NMS कार्यान्वित करण्यासाठी, आम्ही OpenCV लायब्ररीची cv2.dnn.NMSBoxes() पद्धत वापरू शकतो.
NMS वापरून पोस्ट-प्रोसेस डिटेक्शन कसे करायचे याचे उदाहरण येथे आहे.
import cv2
# Perform Non-Maxima Suppression (NMS)
निर्देशांक = cv2.dnn.NMSBoxes(शोध, आत्मविश्वास, conf_thres, nms_thres)
व्हिज्युअलायझेशन
व्हिज्युअलायझेशनच्या बाबतीत, आम्ही पुन्हा OpenCV सारखी लायब्ररी वापरू शकतो. आम्ही स्त्रोत चित्र किंवा व्हिडिओवर शोधलेल्या वस्तूंभोवती बाउंडिंग बॉक्स प्रदर्शित करू शकतो. प्रतिमेचे बाउंडिंग बॉक्स काढण्यासाठी, cv2.rectangle() पद्धत वापरा. मूळ प्रतिमेवरील शोध कसे पहायचे ते येथे आहे:
सीव्ही 2 आयात करा
# 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 कुटुंबाची सर्वात अलीकडील आणि अत्याधुनिक आवृत्ती आहे ऑब्जेक्ट शोध मॉडेल
. तसेच, हे उपलब्ध सर्वात अचूक ऑब्जेक्ट शोध मॉडेल आहे असे म्हणणे योग्य आहे. त्याच्या उच्च अचूकता आणि गतीबद्दल धन्यवाद, आपण आपल्या ऑब्जेक्ट शोध प्रकल्पांसाठी सुरक्षितपणे निवडू शकता.
Resky Agus
मी yolov5 सह डिटेक्शन व्हेईकल बद्दल पहिली जर्नल बनवतो आणि हे वेब मला त्याबद्दल माहिती शोधण्यात मदत करते.
मला AI बद्दल खूप रस आहे.
जर तुमच्याकडे AI बद्दल मला बरेच प्रश्न असतील तर कदाचित तुम्ही मला मदत करू शकता
धन्यवाद