Rekenaarvisie se objekbespeuringstegnologie is noodsaaklik vir talle toepassings. Ons gebruik dit in robotika, toesigtoerusting, selfbesturende motors en vele meer gebiede. Daarom kan ons sekere dinge in 'n prent of video vind en herken.
Een van die bekendstes objek identifikasie algoritmes is die YOLO (Jy kyk net een keer) stel modelle. Hierdie modelle word geskep deur Ultralytics LLC.
Die mees onlangse weergawe van hierdie reeks is YOLOv5. En dit is die vinnigste en mees akkurate objekidentifikasiemodel op die mark. Die model se vermoë om na nuwe data te veralgemeen is aansienlik verbeter. Dit bevat ook baie kenmerke wat dit beter laat presteer as vroeëre iterasies.
YOLOv5 is ideaal vir intydse toepassings, aangesien dit prente kan verwerk teen 'n tempo van tot 1000 rame per sekonde op 'n enkele GPU.
In hierdie artikel sal ons YOLOv5 bekendstel en die besonderhede van sy toepassingsgebiede deurgaan.
Reis van YOLO: Van YOLO na YOLOv5
Joseph Redmon et al. het oorspronklik die YOLO, 'n stel objekidentifikasiemodelle, in 2016 bekendgestel. Die aanvanklike YOLO-model kon voorwerpe intyds identifiseer. Dit het egter 'n lae akkuraatheid gehad in vergelyking met ander modelle op daardie tydstip.
Verskeie opgegradeerde weergawes van YOLO is deur die jare vrygestel. En uiteindelik het Ultralytics LLC die nuutste uitgawe van die YOLO-reeks, YOLOv5, geskep.
YOLOv5 is die akkuraatste en vinnigste objekidentifikasiemodel wat tans beskikbaar is.
Belangrike kenmerke
Anker bokse
YOLOv5 voorspel grenskassies vir voorwerpe in 'n prent deur ankerkassies te gebruik. Die model voorspel watter van baie vooraf gedefinieerde bokse met verskillende aspekverhoudings die beste by die item in die prentjie pas deur ankerbokse te gebruik. Dit is vooraf gedefinieerde bokse.
En hulle stel YOLOv5 in staat om items in 'n prentjie met akkuraatheid te herken en te vind.
Mosaïekdatavergroting
By opleiding gebruik YOLOv5 'n metode bekend as mosaïek datavergroting. Om vars opleidingsfoto's te ontwikkel, kombineer ons model lukraak kolle van verskeie foto's. As gevolg hiervan word die model meer veerkragtig en betroubaar. Gevolglik word dit veralgemeen na nuwe data en verminder die ooraanpassing.
'n Unieke opleidingspyplyn
N unieke opleiding pyplyn wat onder toesig en meng onbewaakte leer is gebruik.
Die model leer dus uit 'n kleiner steekproef en benut ongemerkte insette effektief. Dit verhoog die model se werkverrigting en verbeter sy vermoë om na nuwe insette te veralgemeen.
Lae wat residueel en nie-residueel is
YOLOv5 se argitektuur kombineer lae wat oorblywend en nie-residueel is. Deur gradiënte oor die lae te laat vloei, help oorblywende lae die model om moeilike kenmerke aan te leer. Ook, nie-residuele lae bied die model 'n meer omvattende begrip van die insetprentjie. As gevolg hiervan kan YOLOv5 meer presies en doeltreffend werk.
Hoe om YOLOv5 te gebruik
installasie
YOLOv5-installasie kan vinnig voltooi word met behulp van pip. Pip is 'n Python-pakketbestuurder. Die algemene prosedures vir die installering van YOLOv5 is soos volg:
1- Installeer PyTorch: Omdat YOLOv5 op die PyTorch-raamwerk gebaseer is, moet jy eers PyTorch installeer.
pip install torch torchvision
2. Installeer CUDA: Jy moet CUDA installeer as jy van plan is om YOLOv5 op 'n GPU te laat loop.
3. Installeer YOLOv5: Nadat jy PyTorch en CUDA opgestel het, gebruik die volgende opdrag om YOLOv5 af te laai.
pip install yolov5
4-Na die installering van YOLOv5, moet jy die vooraf-opgeleide gewigte aflaai. Die vooraf-opgeleide gewigte is beskikbaar in die Ultralytics GitHub-repo.
Gaan na die "gewigte"-deel van die webwerf deur af te blaai. Jy kan vooraf opgeleide gewigte aflaai vanaf die lys wat jy hier kan vind.
5. Kies die gewigte wat reeds opgelei is en die beste by jou gebruiksgeval pas. Die datastel of die spesifieke YOLOv5-weergawe wat die gewigte geleer is, kan gebruik word om die lys te verklein.
6- Nadat u die regte gewigte gekies het, kies die gewig deur op die "Download"-knoppie langsaan te klik. Die gewigte sal beskikbaar wees vir aflaai as. pt lêers.
7- Dra die afgelaaide gewigte oor na die gids. Dit is waar jou opsporingskrip sal werk.
8- Op hierdie stadium kan jy voorwerpopsporing op jou foto's of video's laat loop deur die vooraf opgeleide gewigte in jou opsporingskrip te gebruik.
Berei die data voor
Jy moet die volgende stappe doen om die data gereed te kry vir gebruik met YOLOv5:
1. Versamel die data: Die eerste stap is om die prent- of videodata in te samel waarvoor jy nodig sal hê objekopsporing. Die dinge wat jy wil opspoor, moet in die foto's of video's teenwoordig wees.
2- Formateer die data: Jy kan net foto's in jou skrif invoer as jy dit gebruik. Jy moet 'n video in 'n reeks foto's verander as jy van plan is om een te gebruik. Jy kan die rame uit 'n fliek onttrek deur 'n biblioteek soos OpenCV te gebruik.
import cv2
img = cv2.imread('path/to/image')
Met die OpenCV-biblioteek kan u die volgende opdrag gebruik om 'n video in 'n reeks beelde te verander:
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. Benoem die data: Jy moet die data benoem as jy jou datastel gebruik. Teken grenskassies rondom die items wat jy in elke raam van 'n prent wil identifiseer. Dit is die proses van etikettering van die data. Jy kan verskeie gereedskap gebruik om jou te help met hierdie bewerking, insluitend LabelImg en RectLabel.
4- Jy moet die data in opleiding- en toetsstelle verdeel nadat jy dit gemerk het. Dit is van kardinale belang om te bepaal hoe goed jou model presteer.
5. Laastens moet jy dalk die data vooraf verwerk voor opleiding of toetsing. Dit kan die skaal van die foto's of video's behels, die standaardisering van die pixelwaardes of die gebruik van metodes vir datavergroting.
Nadat u hierdie stappe voltooi het, is u data gereed.
Begin die opsporingskrip
Hier is 'n illustrasie van 'n opsporingskrip wat 'n prent ontleed en voorwerpe vind.
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))
Na-verwerking
Nie-maksimum onderdrukking is een van die mees algemene na-verwerking tegnieke wat gebruik word in objek opsporing (NMS). Ons gebruik NMS om oorvleuelende grenskassies vir dieselfde voorwerp uit te skakel. Om NMS op die opsporings uit te voer, kan ons die OpenCV-biblioteek se cv2.dnn.NMSBoxes()-metode gebruik.
Hier is 'n voorbeeld van hoe om opsporings met behulp van NMS na te verwerk.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekse = cv2.dnn.NMSBoxes(bespeurings, vertroue, conf_thres, nms_thres)
Visualisering
In die geval van visualisering kan ons weer 'n biblioteek soos OpenCV gebruik. Ons kan die grenskassies rondom die ontdekte voorwerpe op die bronprent of video vertoon. Gebruik die cv2.rectangle()-metode om die prent se grenskassies te teken. Hier is hoe om die bespeurings op die oorspronklike prent te sien:
invoer cv2
# Draw the bounding boxes on the image
vir I in 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
aansoeke
YOLOv5 is 'n sterk objekidentifikasiemodel. Daarom kan ons dit in baie werklike scenario's gebruik. Een van die mees prominente gebruike is in selfbesturende motors. YOLOv5 kan items intyds identifiseer soos motors en verkeersligte.
In toesigstelsels kan ons YOLOv5 gebruik om voorwerpe in lewendige videostrome te herken en op te spoor. Verder kan YOLOv5 'n groot bate in robotika wees. Dit kan robotte help om hul omgewing op te spoor en te verstaan. Dit is uiters belangrik vir aktiwiteite soos navigasie en manipulasie.
YOLOv5 kan ook gebruik word in enige bedryf wat voorwerpopsporing vereis, soos kleinhandel, sport, medies en sekuriteit.
Gevolgtrekking
Ten slotte, YOLOv5 is die mees onlangse en gesofistikeerde weergawe van die YOLO-familie van objekopsporing modelle
. Dit is ook billik om te sê dat dit die mees akkurate voorwerpopsporingsmodel is wat beskikbaar is. Danksy die hoë akkuraatheid en spoed daarvan, kan u dit veilig kies vir u voorwerpopsporingsprojekte.
Resky Agus
Ek maak 'n eerste joernaal oor opsporingsvoertuig met yolov5 en hierdie web help my om inligting daaroor te soek.
Ek stel baie belang in KI.
as jy kan, het ek baie vrae oor AI, miskien kan jy my help
Dankie