Computer visions objektdeteksjonsteknologi er avgjørende for en rekke bruksområder. Vi bruker det i robotikk, overvåkingsutstyr, selvkjørende biler og mange flere områder. Derfor får vi finne og gjenkjenne visse ting i et bilde eller en video.
En av de mest kjente objektidentifikasjonsalgoritmer er YOLO (You Only Look Once) sett med modeller. Disse modellene er laget av Ultralytics LLC.
Den siste versjonen av denne serien er YOLOv5. Og det er den raskeste og mest presise objektidentifikasjonsmodellen på markedet. Modellens kapasitet til å generalisere til nye data er kraftig forbedret. Den inneholder også mange funksjoner som gjør at den gir bedre resultater enn tidligere iterasjoner.
YOLOv5 er flott for sanntidsapplikasjoner siden den kan behandle bilder med en hastighet på opptil 1000 bilder per sekund på en enkelt GPU.
I denne artikkelen vil vi introdusere YOLOv5 og gå over detaljene i bruksområdene.
Journey of YOLO: Fra YOLO til YOLOv5
Joseph Redmon et al. opprinnelig introduserte YOLO, et sett med objektidentifikasjonsmodeller, i 2016. Den første YOLO-modellen kunne identifisere objekter i sanntid. Imidlertid hadde den lav nøyaktighet sammenlignet med andre modeller på den tiden.
Flere oppgraderte versjoner av YOLO ble utgitt gjennom årene. Og til slutt skapte Ultralytics LLC den nyeste utgaven av YOLO-serien, YOLOv5.
YOLOv5 er den mest nøyaktige og raskeste objektidentifikasjonsmodellen som er tilgjengelig for øyeblikket.
Viktige funksjoner
Ankerbokser
YOLOv5 forutsier grensebokser for objekter i et bilde ved hjelp av ankerbokser. Modellen forutsier hvilken av mange forhåndsdefinerte bokser med ulike sideforhold som best matcher elementet på bildet ved hjelp av ankerbokser. Dette er forhåndsdefinerte bokser.
Og de gjør det mulig for YOLOv5 å gjenkjenne og finne gjenstander i et bilde med nøyaktighet.
Mosaikkdataforstørrelse
Ved trening bruker YOLOv5 en metode kjent som mosaikk datautvidelse. For å utvikle ferske treningsbilder, kombinerer modellen vår tilfeldig lapper av flere bilder. Som et resultat blir modellen mer spenstig og pålitelig. Derfor blir det å generalisere til nye data og redusere overfitting.
En unik treningspipeline
En unik treningspipeline som blander overvåket og uovervåket læring benyttes.
Dermed lærer modellen av et mindre utvalg og utnytter umerket input effektivt. Dette øker modellens ytelse og forbedrer dens kapasitet til å generalisere til nye input.
Lag som er gjenværende og ikke-rester
YOLOv5s arkitektur kombinerer lag som er gjenværende og ikke-rester. Ved å la gradienter flyte over lagene, hjelper gjenværende lag modellen med å lære vanskelige funksjoner. I tillegg gir ikke-resterende lag modellen et mer omfattende grep om inngangsbildet. Som et resultat kan YOLOv5 fungere mer presist og effektivt.
Slik bruker du YOLOv5
Installasjon
YOLOv5-installasjonen kan fullføres raskt ved hjelp av pip. Pip er en Python-pakkebehandler. De generelle prosedyrene for å installere YOLOv5 er som følger:
1- Installer PyTorch: Fordi YOLOv5 er basert på PyTorch-rammeverket, må du først installere PyTorch.
pip install torch torchvision
2. Installer CUDA: Du må installere CUDA hvis du har tenkt å kjøre YOLOv5 på en GPU.
3. Installer YOLOv5: Etter å ha satt opp PyTorch og CUDA, bruk følgende kommando for å laste ned YOLOv5.
pip install yolov5
4-Etter installasjonen av YOLOv5 må du laste ned de ferdigtrente vektene. De ferdigtrente vektene er tilgjengelige i Ultralytics GitHub-repoen.
Gå til "vekter"-delen av nettstedet ved å rulle nedover. Du kan laste ned ferdigtrente vekter fra listen du finner her.
5. Velg vektene som allerede er trent og som passer best til ditt bruksområde. Datasettet eller den bestemte YOLOv5-versjonen som vektene ble lært kan brukes til å begrense listen.
6- Etter å ha valgt de riktige vektene, velg vekten ved å klikke på "Last ned"-knappen ved siden av den. Vektene vil være tilgjengelige for nedlasting som. pt filer.
7- Overfør de nedlastede vektene til katalogen. Det er her deteksjonsskriptet ditt vil fungere.
8- På dette tidspunktet kan du kjøre objektgjenkjenning på bildene eller videoene dine ved å bruke de forhåndstrente vektene i deteksjonsskriptet ditt.
Forbered dataene
Du må gjøre følgende for å gjøre dataene klare for bruk med YOLOv5:
1. Samle dataene: Det første trinnet er å samle bilde- eller videodataene du trenger objektdeteksjon. Tingene du ønsker å oppdage bør være til stede i bildene eller videoene.
2- Formater dataene: Du kan bare importere bilder til skriptet ditt hvis du bruker dem. Du må gjøre en video om til en serie bilder hvis du planlegger å bruke en. Du kan trekke ut rammene fra en film ved å bruke et bibliotek som OpenCV.
import cv2
img = cv2.imread('path/to/image')
Med OpenCV-biblioteket kan du bruke følgende kommando for å gjøre en video om til en serie bilder:
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. Merk dataene: Du må merke dataene hvis du bruker datasettet. Tegn avgrensningsrammer rundt elementene du ønsker å identifisere i hver ramme av et bilde. Det er prosessen med å merke dataene. Du kan bruke flere verktøy for å hjelpe deg med denne operasjonen, inkludert LabelImg og RectLabel.
4- Du må dele inn dataene i trenings- og testsett etter at du har merket den. Dette er avgjørende for å vurdere hvor godt modellen din yter.
5. Til slutt kan det hende du må forhåndsbehandle dataene før trening eller testing. Dette kan innebære å skalere bildene eller videoene, standardisere pikselverdiene eller bruke metoder for dataforsterkning.
Når du har fullført disse trinnene, er dataene dine klare.
Kjør deteksjonsskriptet
Her er en illustrasjon av et deteksjonsskript som analyserer et bilde og finner 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))
Post-prosessering
Ikke-maksimal undertrykkelse er en av de hyppigste etterbehandlingsteknikkene som brukes i objektdeteksjon (NMS). Vi bruker NMS for å eliminere overlappende grensebokser for samme objekt. For å utføre NMS på deteksjonene, kan vi bruke OpenCV-bibliotekets cv2.dnn.NMSBoxes()-metode.
Her er et eksempel på hvordan du etterbehandler deteksjoner ved hjelp av NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekser = cv2.dnn.NMSBoxes(deteksjoner, konfidenser, conf_thres, nms_thres)
Visualisering
Når det gjelder visualisering, kan vi igjen bruke et bibliotek som OpenCV. Vi kan vise avgrensningsboksene rundt de oppdagede objektene på kildebildet eller videoen. Bruk metoden cv2.rectangle() for å tegne bildets avgrensningsbokser. Slik viser du oppdagelsene på originalbildet:
importer 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
applikasjoner
YOLOv5 er en sterk objektidentifikasjonsmodell. Derfor kan vi bruke det i mange scenarier i den virkelige verden. En av de mest fremtredende bruksområdene er i selvkjørende biler. YOLOv5 kan identifisere gjenstander i sanntid som biler og trafikklys.
I overvåkingssystemer kan vi bruke YOLOv5 til å gjenkjenne og spore objekter i live videostrømmer. Videre kan YOLOv5 være en stor ressurs innen robotikk. Det kan hjelpe roboter med å oppdage og forstå omgivelsene sine. Dette er ekstremt viktig for aktiviteter som navigasjon og manipulasjon.
YOLOv5 kan også brukes i alle bransjer som krever gjenstandsdeteksjon, for eksempel detaljhandel, sport, medisinsk og sikkerhet.
konklusjonen
Til slutt, YOLOv5 er den nyeste og sofistikerte versjonen av YOLO-familien objektdeteksjon modeller
. Det er også rimelig å si at det er den mest nøyaktige objektdeteksjonsmodellen som er tilgjengelig. Takket være dens høye nøyaktighet og hastighet kan du trygt velge den for objektdeteksjonsprosjektene dine.
Resky Agus
Jeg lager en første journal om deteksjonskjøretøy med yolov5, og denne nettet hjelper meg å søke informasjon om det.
Jeg er veldig interessert i AI.
Hvis du kan, har jeg mange spørsmål om AI, kanskje du kan hjelpe meg
Takk skal du ha