कम्प्युटर दृष्टिको वस्तु पत्ता लगाउने प्रविधि धेरै अनुप्रयोगहरूको लागि आवश्यक छ। हामी यसलाई रोबोटिक्स, निगरानी उपकरण, सेल्फ ड्राइभिङ अटोमोबाइल, र धेरै अन्य क्षेत्रमा प्रयोग गर्छौं। तसर्थ, हामीले चित्र वा भिडियोमा केहि चीजहरू फेला पार्न र पहिचान गर्न पाउँछौं।
सबैभन्दा प्रसिद्ध मध्ये एक वस्तु पहिचान एल्गोरिदम YOLO हो (तपाईं एक पटक मात्र हेर्नुहोस्) मोडेलहरूको सेट। यी मोडेलहरू द्वारा बनाईएको हो Ultralytics LLC।
यो शृङ्खलाको सबैभन्दा पछिल्लो संस्करण YOLOv5 हो। र, यो बजारमा सबैभन्दा छिटो र सबैभन्दा सटीक वस्तु पहिचान मोडेल हो। नयाँ डाटामा सामान्यीकरण गर्न मोडेलको क्षमता धेरै सुधार गरिएको छ। साथै, यसले धेरै सुविधाहरू समावेश गर्दछ जसले यसलाई पहिलेको पुनरावृत्तिहरू भन्दा राम्रो प्रदर्शन गर्दछ।
YOLOv5 वास्तविक-समय अनुप्रयोगहरूको लागि उत्कृष्ट छ किनकि यसले एकल GPU मा प्रति सेकेन्ड 1000 फ्रेमको दरमा चित्रहरू प्रशोधन गर्न सक्छ।
यस लेखमा, हामी YOLOv5 परिचय गर्नेछौं र यसको अनुप्रयोगको क्षेत्रहरूको विवरणहरूमा जानेछौं।
YOLO को यात्रा: YOLO देखि YOLOv5 सम्म
जोसेफ रेडमन एट अल। मूल रूपमा योलो, वस्तु पहिचान मोडेलहरूको सेट, 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. डेटा जम्मा गर्नुहोस्: पहिलो चरण भनेको तस्विर वा भिडियो डेटा जम्मा गर्नु हो जुन तपाईलाई आवश्यक पर्दछ वस्तु पहिचान। तपाईंले पत्ता लगाउन चाहनुभएको चीजहरू फोटो वा भिडियोहरूमा उपस्थित हुनुपर्छ।
२- डेटा ढाँचा गर्नुहोस्: यदि तपाइँ तिनीहरूलाई प्रयोग गर्दै हुनुहुन्छ भने तपाइँ तपाइँको स्क्रिप्टमा फोटोहरू आयात गर्न सक्नुहुन्छ। यदि तपाइँ एक प्रयोग गर्ने योजना बनाउनुहुन्छ भने तपाइँले एक भिडियोलाई तस्बिरहरूको श्रृंखलामा परिणत गर्नुपर्छ। तपाईंले 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)
indices = 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 परिवारको सबैभन्दा भर्खरको र परिष्कृत संस्करण हो वस्तु पहिचान मोडेलहरू
। साथै, यो भन्न उचित छ कि यो उपलब्ध सबैभन्दा सटीक वस्तु पत्ता लगाउने मोडेल हो। यसको उच्च सटीकता र गतिको लागि धन्यवाद, तपाइँ यसलाई तपाइँको वस्तु पत्ता लगाउने परियोजनाहरूको लागि सुरक्षित रूपमा छनौट गर्न सक्नुहुन्छ।
Resky Agus
मैले yolov5 को साथ पत्ता लगाउने सवारी साधनको बारेमा पहिलो जर्नल बनाउँछु र यो वेबले मलाई यसको बारेमा जानकारी खोज्न मद्दत गर्दछ।
मलाई AI को बारेमा धेरै चासो छ।
यदि तपाईंसँग AI को बारेमा धेरै प्रश्नहरू छन् भने तपाईंले मलाई मद्दत गर्न सक्नुहुन्छ
धन्यवाद