Teknologjia e zbulimit të objekteve të vizionit kompjuterik është thelbësore për shumë aplikacione. Ne e përdorim atë në robotikë, pajisje vëzhgimi, automobila që drejtojnë vetë, dhe shumë fusha të tjera. Prandaj, ne mund të gjejmë dhe njohim disa gjëra në një foto ose video.
Një nga më të njohurit Algoritmet e identifikimit të objektit janë YOLO (Ju shikoni vetëm një herë) grup modelesh. Këto modele janë krijuar nga Ultralytics LLC.
Versioni më i fundit i kësaj serie është YOLOv5. Dhe, është modeli më i shpejtë dhe më i saktë i identifikimit të objektit në treg. Kapaciteti i modelit për të përgjithësuar në të dhëna të reja është përmirësuar shumë. Gjithashtu, ai përmban shumë veçori që e bëjnë atë të performojë më mirë se përsëritjet e mëparshme.
YOLOv5 është i shkëlqyeshëm për aplikacione në kohë reale pasi mund të përpunojë fotografi me një shpejtësi deri në 1000 korniza për sekondë në një GPU të vetme.
Në këtë artikull, ne do të prezantojmë YOLOv5 dhe do të shqyrtojmë detajet e fushave të tij të aplikimit.
Udhëtimi i YOLO: Nga YOLO në YOLOv5
Joseph Redmon et al. fillimisht prezantoi YOLO, një grup modelesh identifikimi të objekteve, në vitin 2016. Modeli fillestar YOLO mund të identifikonte objektet në kohë reale. Megjithatë, ai kishte një saktësi të ulët në krahasim me modelet e tjera të asaj kohe.
Disa versione të përmirësuara të YOLO u lëshuan gjatë viteve. Dhe së fundi, Ultralytics LLC krijoi edicionin më të ri të serisë YOLO, YOLOv5.
YOLOv5 është modeli më i saktë dhe më i shpejtë i identifikimit të objektit aktualisht i disponueshëm.
Karakteristika të rëndësishme
Kuti ankorimi
YOLOv5 parashikon kufizues kufizues për objektet në një imazh duke përdorur kutitë e ankorimit. Modeli parashikon se cila nga shumë kutitë e paracaktuara me raporte të ndryshme pamjesh përputhet më mirë me artikullin në figurë duke përdorur kutitë e ankorimit. Këto janë kuti të paracaktuara.
Dhe, ato mundësojnë YOLOv5 të njohë dhe gjejë artikujt në një foto me saktësi.
Rritja e të dhënave të mozaikut
Gjatë trajnimit, YOLOv5 përdor një metodë të njohur si mozaik shtimi i të dhënave. Për të zhvilluar fotografi të freskëta stërvitore, modeli ynë kombinon rastësisht arna të disa fotove. Si rezultat, modeli bëhet më elastik dhe më i besueshëm. Prandaj, duhet të përgjithësohet në të dhëna të reja dhe të zvogëlohet mbipërshtatja.
Një tubacion unik trajnimi
Një tubacion unik trajnimi që përzien të mbikëqyrura dhe të mësuarit pa mbikëqyrje përdoret.
Kështu, modeli mëson nga një kampion më i vogël dhe përdor në mënyrë efektive hyrjen e paetiketuar. Kjo rrit performancën e modelit dhe rrit kapacitetin e tij për të përgjithësuar në inpute të reja.
Shtresat që janë të mbetura dhe jo të mbetura
Arkitektura e YOLOv5 kombinon shtresa që janë të mbetura dhe jo të mbetura. Duke lejuar gradientët të rrjedhin nëpër shtresa, shtresat e mbetura ndihmojnë modelin në mësimin e veçorive të vështira. Gjithashtu, shtresat jo të mbetura i ofrojnë modelit një zotërim më të plotë të figurës hyrëse. Si rezultat, YOLOv5 mund të funksionojë në mënyrë më të saktë dhe më efektive.
Si të përdorni YOLOv5
Instalim
Instalimi i YOLOv5 mund të përfundojë shpejt duke përdorur pip. Pip është një menaxher i paketave Python. Procedurat e përgjithshme për instalimin e YOLOv5 janë si më poshtë:
1- Instaloni PyTorch: Për shkak se YOLOv5 bazohet në kornizën PyTorch, së pari duhet të instaloni PyTorch.
pip install torch torchvision
2. Instaloni CUDA: Duhet të instaloni CUDA nëse keni ndërmend të ekzekutoni YOLOv5 në një GPU.
3. Instaloni YOLOv5: Pas konfigurimit të PyTorch dhe CUDA, përdorni komandën e mëposhtme për të shkarkuar YOLOv5.
pip install yolov5
4-Pas instalimit të YOLOv5, duhet të shkarkoni peshat e paratrajnuara. Peshat e trajnuara paraprakisht janë të disponueshme në depon e Ultralytics GitHub.
Shkoni te pjesa "pesha" e faqes së internetit duke lëvizur poshtë. Ju mund të shkarkoni peshat e para-stërvitura nga lista që mund të gjeni këtu.
5. Zgjidhni peshat që tashmë janë stërvitur dhe i përshtaten më së miri rastit tuaj të përdorimit. Të dhënat e të dhënave ose versioni i veçantë YOLOv5 që peshat janë mësuar mund të përdoren për të ngushtuar listën.
6- Pasi të zgjidhni peshat e duhura, zgjidhni peshën duke klikuar butonin "Shkarko" pranë saj. Peshat do të jenë të disponueshme për shkarkim si. skedarët pt.
7- Transferoni peshat e shkarkuara në drejtori. Këtu do të funksionojë skripti juaj i zbulimit.
8- Në këtë pikë, mund të ekzekutoni zbulimin e objekteve në fotot ose videot tuaja duke përdorur peshat e para-stërvitura në skriptin tuaj të zbulimit.
Përgatitni të dhënat
Duhet të ndërmerrni veprimet e mëposhtme për t'i bërë gati të dhënat për përdorim me YOLOv5:
1. Mblidhni të dhënat: Hapi i parë është mbledhja e të dhënave fotografike ose video që ju nevojiten zbulimi i objektit. Gjërat që dëshironi të zbuloni duhet të jenë të pranishme në foto ose video.
2- Formatoni të dhënat: Ju thjesht mund të importoni foto në skriptin tuaj nëse i përdorni ato. Ju duhet ta ktheni një video në një seri fotografish nëse planifikoni të përdorni një të tillë. Ju mund të nxirrni kornizat nga një film duke përdorur një bibliotekë si OpenCV.
import cv2
img = cv2.imread('path/to/image')
Me bibliotekën OpenCV, mund të përdorni komandën e mëposhtme për ta kthyer një video në një seri imazhesh:
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. Etiketoni të dhënat: Ju duhet t'i etiketoni të dhënat nëse jeni duke përdorur të dhënat tuaja. Vizatimi i kutive kufizuese rreth artikujve që dëshironi të identifikoni në çdo kornizë të një imazhi. Është procesi i etiketimit të të dhënave. Ju mund të përdorni disa mjete për t'ju ndihmuar me këtë operacion, duke përfshirë LabelImg dhe RectLabel.
4- Duhet t'i ndani të dhënat në grupe trajnimi dhe testimi pasi t'i keni etiketuar. Kjo është thelbësore për të vlerësuar se sa mirë performon modeli juaj.
5. Së fundi, mund t'ju duhet të përpunoni paraprakisht të dhënat përpara trajnimit ose testimit. Kjo mund të përfshijë shkallëzimin e fotove ose videove, standardizimin e vlerave të pikselit ose përdorimin e metodave për shtimin e të dhënave.
Pas përfundimit të këtyre hapave, të dhënat tuaja janë gati.
Ekzekutoni skriptin e zbulimit
Këtu është një ilustrim i një skenari zbulimi që analizon një foto dhe gjen objekte.
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))
Post-përpunimit
Shtypja jo-maksimale është një nga teknikat më të shpeshta të pas-përpunimit të përdorura në zbulimin e objekteve (NMS). Ne përdorim NMS për të eliminuar kutitë kufizuese të mbivendosura për të njëjtin objekt. Për të ekzekutuar NMS në zbulimet, ne mund të përdorim metodën cv2.dnn.NMSBoxes() të bibliotekës OpenCV.
Ja një shembull se si të postohen zbulimet duke përdorur NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekset = cv2.dnn.NMS Boxes (zbulimet, konfidencat, conf_thres, nms_thres)
Vizualizimi
Në rastin e vizualizimit, ne mund të përdorim përsëri një bibliotekë si OpenCV. Ne mund të shfaqim kutitë kufizuese rreth objekteve të zbuluara në foton ose videon burimore. Për të vizatuar kutitë kufizuese të imazhit, përdorni metodën cv2.rectangle(). Ja se si të shikoni zbulimet në imazhin origjinal:
importoni cv2
# Draw the bounding boxes on the image
për I në indekse:
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
Aplikime
YOLOv5 është një model i fortë identifikimi i objekteve. Prandaj, ne mund ta përdorim atë në shumë skenarë të botës reale. Një nga përdorimet më të spikatura është në makinat që drejtojnë vetë. YOLOv5 mund të identifikojë artikujt në kohë reale si automobilat dhe semaforët.
Në sistemet e mbikqyrjes, ne mund të përdorim YOLOv5 për të njohur dhe gjurmuar objektet në transmetime video të drejtpërdrejta. Për më tepër, YOLOv5 mund të jetë një aset i madh në robotikë. Mund të ndihmojë robotët të zbulojnë dhe kuptojnë rrethinën e tyre. Kjo është jashtëzakonisht e rëndësishme për aktivitete si lundrimi dhe manipulimi.
YOLOv5 mund të përdoret gjithashtu në çdo industri që kërkon zbulimin e objekteve, të tilla si shitja me pakicë, sporti, mjekësia dhe siguria.
Përfundim
Së fundi, YOLOv5 është versioni më i fundit dhe më i sofistikuar i familjes YOLO zbulimi i objektit Modele
. Gjithashtu, është e drejtë të thuhet se është modeli më i saktë i zbulimit të objekteve në dispozicion. Falë saktësisë dhe shpejtësisë së lartë, mund ta zgjidhni me siguri për projektet tuaja të zbulimit të objekteve.
Resky Agus
Unë bëj një ditar të parë për zbulimin e automjetit me yolov5 dhe ky ueb më ndihmoi të kërkoj informacione për këtë.
Unë jam shumë i interesuar për AI.
nëse mundeni, kam shumë pyetje në lidhje me AI, ndoshta ju mund të më ndihmoni
Faleminderit