కంప్యూటర్ విజన్ యొక్క ఆబ్జెక్ట్ డిటెక్షన్ టెక్నాలజీ అనేక అనువర్తనాలకు అవసరం. మేము దీన్ని రోబోటిక్స్, నిఘా పరికరాలు, సెల్ఫ్ డ్రైవింగ్ ఆటోమొబైల్స్ మరియు మరెన్నో ప్రాంతాల్లో ఉపయోగిస్తాము. అందువల్ల, మేము ఫోటో లేదా వీడియోలో కొన్ని విషయాలను కనుగొని, గుర్తించగలము.
బాగా తెలిసిన వాటిలో ఒకటి వస్తువు గుర్తింపు అల్గోరిథంలు YOLO (మీరు ఒక్కసారి మాత్రమే చూడండి) మోడల్ల సెట్. ఈ నమూనాలు సృష్టించబడ్డాయి అల్ట్రాలిటిక్స్ LLC.
ఈ సిరీస్ యొక్క అత్యంత ఇటీవలి వెర్షన్ YOLOv5. మరియు, ఇది మార్కెట్లో వేగవంతమైన మరియు అత్యంత ఖచ్చితమైన వస్తువు గుర్తింపు మోడల్. కొత్త డేటాకు సాధారణీకరించే మోడల్ సామర్థ్యం బాగా మెరుగుపరచబడింది. అలాగే, ఇది మునుపటి పునరావృతాల కంటే మెరుగ్గా పనిచేసేలా చేసే అనేక లక్షణాలను కలిగి ఉంది.
ఒకే GPUలో సెకనుకు 5 ఫ్రేమ్ల చొప్పున చిత్రాలను ప్రాసెస్ చేయగలదు కాబట్టి YOLOv1000 నిజ-సమయ అనువర్తనాలకు గొప్పది.
ఈ కథనంలో, మేము YOLOv5ని పరిచయం చేస్తాము మరియు దాని అప్లికేషన్ యొక్క ప్రాంతాల వివరాలను పరిశీలిస్తాము.
YOLO ప్రయాణం: YOLO నుండి YOLOv5 వరకు
జోసెఫ్ రెడ్మోన్ మరియు ఇతరులు. వాస్తవానికి YOLO, ఆబ్జెక్ట్ ఐడెంటిఫికేషన్ మోడల్ల సమితిని 2016లో పరిచయం చేసింది. ప్రారంభ 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ని ఇన్స్టాల్ చేయండి: మీరు GPUలో YOLOv5ని అమలు చేయాలనుకుంటే తప్పనిసరిగా CUDAని ఇన్స్టాల్ చేయాలి.
3. YOLOv5ని ఇన్స్టాల్ చేయండి: PyTorch మరియు CUDAని సెటప్ చేసిన తర్వాత, YOLOv5ని డౌన్లోడ్ చేయడానికి కింది ఆదేశాన్ని ఉపయోగించండి.
pip install yolov5
4-YOLOv5 యొక్క ఇన్స్టాలేషన్ను అనుసరించి, మీరు ముందుగా శిక్షణ పొందిన బరువులను తప్పనిసరిగా డౌన్లోడ్ చేసుకోవాలి. ముందుగా శిక్షణ పొందిన బరువులు అల్ట్రాలిటిక్స్ 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() పద్ధతిని ఉపయోగించండి. ఒరిజినల్ ఇమేజ్లో డిటెక్షన్లను ఎలా వీక్షించాలో ఇక్కడ ఉంది:
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తో డిటెక్షన్ వెహికల్ గురించి మొదటి జర్నల్ని తయారు చేసాను మరియు దాని గురించి సమాచారాన్ని వెతకడానికి ఈ వెబ్ నాకు సహాయం చేస్తుంది.
నాకు AI గురించి చాలా ఆసక్తి ఉంది.
మీకు AI గురించి చాలా ప్రశ్నలు ఉంటే మీరు నాకు సహాయం చేయవచ్చు
ధన్యవాదాలు