Computer visions objektdetekteringsteknologi er essentiel til adskillige applikationer. Vi bruger det i robotteknologi, overvågningsudstyr, selvkørende biler og mange flere områder. Derfor kommer vi til at finde og genkende visse ting i et billede eller en video.
En af de mest kendte objektidentifikationsalgoritmer er YOLO (You Only Look Once) sæt modeller. Disse modeller er skabt af Ultralytics LLC.
Den seneste version af denne serie er YOLOv5. Og det er den hurtigste og mest præcise objektidentifikationsmodel på markedet. Modellens kapacitet til at generalisere til nye data er blevet væsentligt forbedret. Det indeholder også mange funktioner, der gør det bedre end tidligere iterationer.
YOLOv5 er fantastisk til realtidsapplikationer, da den kan behandle billeder med en hastighed på op til 1000 billeder i sekundet på en enkelt GPU.
I denne artikel vil vi introducere YOLOv5 og gennemgå detaljerne i dets anvendelsesområder.
YOLOs rejse: Fra YOLO til YOLOv5
Joseph Redmon et al. oprindeligt introducerede YOLO, et sæt objektidentifikationsmodeller, i 2016. Den oprindelige YOLO-model kunne identificere objekter i realtid. Den havde dog en lav nøjagtighed sammenlignet med andre modeller på det tidspunkt.
Adskillige opgraderede versioner af YOLO blev udgivet gennem årene. Og endelig skabte Ultralytics LLC den nyeste udgave af YOLO-serien, YOLOv5.
YOLOv5 er den mest nøjagtige og hurtigste objektidentifikationsmodel, der er tilgængelig i øjeblikket.
Vigtige funktioner
Ankerkasser
YOLOv5 forudsiger afgrænsningsfelter for objekter i et billede ved hjælp af ankerfelter. Modellen forudsiger hvilke af mange foruddefinerede bokse med forskellige billedformater, der bedst matcher emnet på billedet ved hjælp af ankerkasser. Disse er foruddefinerede bokse.
Og de gør det muligt for YOLOv5 at genkende og finde elementer i et billede med nøjagtighed.
Forøgelse af mosaikdata
Når du træner, bruger YOLOv5 en metode kendt som mosaik dataforøgelse. For at udvikle friske træningsbilleder, kombinerer vores model tilfældigt patches af flere billeder. Som et resultat bliver modellen mere robust og pålidelig. Derfor bliver det til at generalisere til nye data og mindske overfitting.
En unik træningspipeline
En unik træningspipeline, der blander superviseret og uovervåget læring anvendes.
Således lærer modellen af en mindre stikprøve og udnytter umærket input effektivt. Dette øger modellens ydeevne og forbedrer dens kapacitet til at generalisere til nye input.
Lag, der er resterende og ikke-rester
YOLOv5's arkitektur kombinerer lag, der er resterende og ikke-rester. Ved at tillade gradienter at flyde hen over lagene hjælper resterende lag modellen med at lære vanskelige funktioner. Ikke-resterende lag giver også modellen et mere omfattende greb om inputbilledet. Som et resultat kan YOLOv5 fungere mere præcist og effektivt.
Sådan bruges YOLOv5
Installation
YOLOv5-installationen kan afsluttes hurtigt ved hjælp af pip. Pip er en Python-pakkemanager. De generelle procedurer for installation af YOLOv5 er som følger:
1- Installer PyTorch: Fordi YOLOv5 er baseret på PyTorch-rammeværket, skal du først installere PyTorch.
pip install torch torchvision
2. Installer CUDA: Du skal installere CUDA, hvis du har til hensigt at køre YOLOv5 på en GPU.
3. Installer YOLOv5: Efter opsætning af PyTorch og CUDA, brug følgende kommando til at downloade YOLOv5.
pip install yolov5
4-Efter installationen af YOLOv5 skal du downloade de fortrænede vægte. De fortrænede vægte er tilgængelige i Ultralytics GitHub repo.
Gå til "vægte"-delen af hjemmesiden ved at scrolle ned. Du kan downloade fortrænede vægte fra listen, du kan finde her.
5. Vælg de vægte, der allerede er trænet og passer bedst til din brugssag. Datasættet eller den særlige YOLOv5-version, som vægtene blev lært, kan bruges til at indsnævre listen.
6- Efter at have valgt de rigtige vægte, vælg vægten ved at klikke på knappen "Download" ved siden af den. Vægtene vil være tilgængelige for download som. pt filer.
7- Overfør de downloadede vægte til biblioteket. Det er her dit detektionsscript vil fungere.
8- På dette tidspunkt kan du køre objektgenkendelse på dine fotos eller videoer ved hjælp af de forudtrænede vægte i dit detektionsscript.
Forbered dataene
Du skal tage følgende handlinger for at gøre dataene klar til brug med YOLOv5:
1. Saml dataene: Det første trin er at samle de billed- eller videodata, du skal bruge objektdetektion. De ting, du ønsker at opdage, skal være til stede i billederne eller videoerne.
2- Formater data: Du kan bare importere billeder til dit script, hvis du bruger dem. Du skal lave en video om til en serie billeder, hvis du planlægger at bruge en. Du kan udtrække rammerne fra en film ved hjælp af et bibliotek som OpenCV.
import cv2
img = cv2.imread('path/to/image')
Med OpenCV-biblioteket kan du bruge følgende kommando til at omdanne en video til en serie billeder:
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. Mærk dataene: Du skal mærke dataene, hvis du bruger dit datasæt. Tegn afgrænsningsrammer omkring de elementer, du ønsker at identificere i hver ramme af et billede. Det er processen med at mærke dataene. Du kan bruge flere værktøjer til at hjælpe dig med denne operation, inklusive LabelImg og RectLabel.
4- Du skal opdele dataene i trænings- og testsæt, efter du har tagget det. Dette er afgørende for at vurdere, hvor godt din model klarer sig.
5. Endelig skal du muligvis forbehandle dataene før træning eller test. Dette kan omfatte skalering af billeder eller videoer, standardisering af pixelværdier eller brug af metoder til dataforøgelse.
Når du har gennemført disse trin, er dine data klar.
Kør detektionsscriptet
Her er en illustration af et registreringsscript, der analyserer et billede og finder objekter.
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))
Efterbehandling
Ikke-maksimal undertrykkelse er en af de hyppigste efterbehandlingsteknikker, der bruges til objektdetektion (NMS). Vi bruger NMS til at eliminere overlappende afgrænsningsfelter for det samme objekt. For at udføre NMS på detektionerne kan vi bruge OpenCV-bibliotekets cv2.dnn.NMSBoxes()-metode.
Her er et eksempel på, hvordan man efterbehandler detektioner ved hjælp af NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekser = cv2.dnn.NMSBoxes(detections, confidences, conf_thres, nms_thres)
Visualisering
I tilfælde af visualisering kan vi igen bruge et bibliotek som OpenCV. Vi kan vise afgrænsningsfelterne omkring de opdagede objekter på kildebilledet eller videoen. Brug metoden cv2.rectangle() for at tegne billedets afgrænsningsrammer. Sådan får du vist registreringerne på det originale billede:
importere cv2
# Draw the bounding boxes on the image
for I i indekser:
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
Applikationer
YOLOv5 er en stærk objektidentifikationsmodel. Derfor kan vi gøre brug af det i mange scenarier i den virkelige verden. En af de mest fremtrædende anvendelser er i selvkørende biler. YOLOv5 kan identificere genstande i realtid såsom biler og trafiklys.
I overvågningssystemer kan vi bruge YOLOv5 til at genkende og spore objekter i live videostreams. Ydermere kan YOLOv5 være et stort aktiv inden for robotteknologi. Det kan hjælpe robotter med at opdage og forstå deres omgivelser. Dette er ekstremt vigtigt for aktiviteter som navigation og manipulation.
YOLOv5 kan også bruges i enhver industri, der kræver genstandsdetektion, såsom detailhandel, sport, medicin og sikkerhed.
Konklusion
Endelig er YOLOv5 den nyeste og sofistikerede version af YOLO-familien af objektdetektion modeller
. Det er også rimeligt at sige, at det er den mest nøjagtige objektdetekteringsmodel, der findes. Takket være dens høje nøjagtighed og hastighed kan du sikkert vælge den til dine objektdetekteringsprojekter.
Resky Agus
Jeg laver en første journal om detektionskøretøj med yolov5, og denne web hjælper mig med at søge information om det.
Jeg er meget interesseret i AI.
hvis du kan, jeg har en masse spørgsmål om AI måske du kan hjælpe mig
Tak