Computer Visioun Objekterkennungstechnologie ass wesentlech fir vill Uwendungen. Mir benotzen et a Robotik, Iwwerwaachungsausrüstung, selbstfahrend Autoen, a vill méi Beräicher. Dofir kréie mir verschidde Saachen an engem Bild oder Video ze fannen an unerkennen.
Ee vun de bekanntste Objekt Identifikatioun Algorithmen ass den YOLO (Dir kuckt nëmmen eemol) Set vu Modeller. Dës Modeller sinn geschaf duerch Ultralytics LLC.
Déi lescht Versioun vun dëser Serie ass YOLOv5. An, et ass de schnellsten a präzissten Objektidentifikatiounsmodell um Maart. D'Kapazitéit vum Modell fir op nei Daten ze generaliséieren ass staark verbessert ginn. Och enthält et vill Features déi et besser maachen wéi fréier Iteratiounen.
YOLOv5 ass super fir Echtzäit Uwendungen well et Biller mat enger Rate vu bis zu 1000 Frames pro Sekonn op enger eenzeger GPU veraarbecht kann.
An dësem Artikel wäerte mir YOLOv5 aféieren an iwwer d'Detailer vu sengen Uwendungsberäicher goen.
YOLO Rees: Vun YOLO op YOLOv5
Joseph Redmon et al. ursprénglech agefouert der YOLO, eng Rei vun Objet Identifikatioun Modeller, an 2016. Den initialen YOLO Modell konnt Objeten an real Zäit identifizéieren. Wéi och ëmmer, et hat eng niddereg Genauegkeet am Verglach mat anere Modeller zu där Zäit.
Verschidde aktualiséiert Versioune vun YOLO goufen duerch d'Jore verëffentlecht. A schliisslech huet Ultralytics LLC déi neist Editioun vun der YOLO Serie erstallt, YOLOv5.
YOLOv5 ass dee geneesten a séiersten Objektidentifikatiounsmodell dee momentan verfügbar ass.
Wichtegst Features
Anker Këschte
YOLOv5 virausgesot Grenzkëschte fir Objeten an engem Bild mat Ankerboxen. De Modell virausgesot wéi eng vu ville vir-definéierte Këschte mat verschiddenen Aspektverhältnisser am Beschten entsprécht am Bild mat Ankerboxen. Dëst sinn pre-definéiert Këschte.
An, si erlaben YOLOv5 Elementer an engem Bild mat Genauegkeet z'erkennen an ze fannen.
Mosaik daten Erhéijung
Beim Training benotzt YOLOv5 eng Method bekannt als Mosaik daten Erhéijung. Fir frësch Trainingsbilder z'entwéckelen, kombinéiert eise Modell zoufälleg Flecken vu verschiddene Fotoen. Als Resultat gëtt de Modell méi elastesch an zouverlässeg. Dofir gëtt et op nei Donnéeën ze generaliséieren an Iwwerfitting reduzéieren.
Eng eenzegaarteg Training Pipeline
Eng eenzegaarteg Trainingspipeline déi iwwerwaacht a mëscht net iwwerwaacht Léieren benotzt gëtt.
Also léiert de Modell vun enger méi klenger Probe a benotzt effektiv onlabeléiert Input. Dëst erhéicht d'Performance vum Modell a verbessert seng Kapazitéit fir op nei Inputen ze generaliséieren.
Schichten déi Rescht an Net-Rescht sinn
YOLOv5 d'Architektur kombinéiert Schichten déi Rescht an Net-residual sinn. Andeems Dir Gradienten iwwer d'Schichte fléisst, hëllefe Reschtschichten de Modell beim Léieren vun schwieregen Features. Och net-residuell Schichten bidden de Modell e méi ëmfaassend Grëff vum Inputbild. Als Resultat kann YOLOv5 méi präzis an effektiv operéieren.
Wéi benotzt Dir YOLOv5
Installatioun
YOLOv5 Installatioun ka séier mat Pip ofgeschloss ginn. Pip ass e Python Package Manager. Déi allgemeng Prozedure fir YOLOv5 z'installéieren sinn wéi follegt:
1- PyTorch installéieren: Well YOLOv5 op dem PyTorch Kader baséiert, musst Dir PyTorch als éischt installéieren.
pip install torch torchvision
2. Installéiert CUDA: Dir musst CUDA installéieren wann Dir wëllt YOLOv5 op enger GPU lafen.
3. Installéiert YOLOv5: Nodeems Dir PyTorch an CUDA opgeriicht hutt, benotzt de folgende Kommando fir YOLOv5 erofzelueden.
pip install yolov5
4-No der Installatioun vun YOLOv5, Dir musst déi pre-trainéiert Gewiichter eroflueden. Déi pre-trainéiert Gewiichter sinn am Ultralytics GitHub Repo verfügbar.
Gitt op den "Gewichte" Deel vun der Websäit andeems Dir erof scrollt. Dir kënnt pre-trainéiert Gewiichter aus der Lëscht eroflueden déi Dir hei fannt.
5. Wielt d'Gewiichter déi scho trainéiert sinn an am Beschten Äre Gebrauchsfall passen. Den Dataset oder déi speziell YOLOv5 Versioun, déi d'Gewichte geléiert goufen, kënne benotzt ginn fir d'Lëscht ze schmuel.
6- Nodeems Dir déi richteg Gewiichter gewielt hutt, wielt d'Gewiicht andeems Dir op de "Download" Knäppchen nieft et klickt. D'Gewiichter ginn als download verfügbar. pt Dateien.
7- Transfert déi erofgeluede Gewiichter an de Verzeechnes. Dëst ass wou Ären Detektiounsskript funktionnéiert.
8- Zu dësem Zäitpunkt kënnt Dir Objekterkennung op Äre Fotoen oder Videoe lafen andeems Dir d'pre-trainéiert Gewiichter an Ärem Detektiounsskript benotzt.
Preparéieren d'Daten
Dir musst déi folgend Aktiounen huelen fir d'Donnéeën prett ze kréien fir mat YOLOv5 ze benotzen:
1. Sammelt d'Donnéeën: Den éischte Schrëtt ass d'Bild- oder Videodaten ze sammelen déi Dir braucht Objet Detektioun. D'Saachen déi Dir z'entdecken wëllt sollten an de Fotoen oder Videoen präsent sinn.
2- Formatéiert d'Donnéeën: Dir kënnt just Fotoen an Äert Skript importéieren wann Dir se benotzt. Dir musst e Video an eng Serie vu Fotoen ëmsetzen wann Dir plangt eng ze benotzen. Dir kënnt d'Frames aus engem Film extrahéieren mat enger Bibliothéik wéi OpenCV.
import cv2
img = cv2.imread('path/to/image')
Mat der OpenCV Bibliothéik kënnt Dir de folgende Kommando benotze fir e Video an eng Serie vu Biller ze maachen:
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. Label d'Donnéeën: Dir musst d'Donnéeën Label wann Dir Är Dataset benotzt. Zeechnen Grenzkëschte ronderëm d'Elementer déi Dir an all Frame vun engem Bild identifizéieren wëllt. Et ass de Prozess fir d'Daten ze markéieren. Dir kënnt verschidden Tools benotzen fir Iech mat dëser Operatioun ze hëllefen, dorënner LabelImg a RectLabel.
4- Dir musst d'Donnéeën an Trainings- an Testsets opdeelen nodeems Dir se gezeechent hutt. Dëst ass entscheedend fir ze bewäerten wéi gutt Äre Modell funktionnéiert.
5. Schlussendlech musst Dir d'Donnéeën virum Training oder Tester virveraarbechten. Dëst kann d'Skaléierung vun de Biller oder Videoen enthalen, d'Pixelwäerter standardiséieren oder Methoden fir Datenvergréisserung benotzen.
Nodeems Dir dës Schrëtt ofgeschloss hutt, sinn Är Donnéeën prett.
Run der Detectioun Skript
Hei ass eng Illustratioun vun engem Detektiounsskript dat e Bild analyséiert an Objete fënnt.
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))
Postveraarbechtung
Net-maximal Ënnerdréckung ass eng vun den heefegste Postveraarbechtungstechniken déi an der Objekterkennung (NMS) benotzt ginn. Mir benotzen NMS fir iwwerlappend Grenzkëschte fir dee selwechten Objet ze eliminéieren. Fir NMS op d'Erkennungen auszeféieren, kënne mir d'Cv2.dnn.NMSBoxes () Method vun der OpenCV Bibliothéik benotzen.
Hei ass e Beispill vu wéi een Post-Prozess Detectiounen mat NMS benotzt.
import cv2
# Perform Non-Maxima Suppression (NMS)
indizes = cv2.dnn.NMSBoxes(detections, confidences, conf_thres, nms_thres)
Visualiséierung
Am Fall vun der Visualiséierung kënne mir erëm eng Bibliothéik wéi OpenCV benotzen. Mir kënnen d'Grenzfelder ronderëm d'entdeckt Objeten op der Quellbild oder Video weisen. Zeechnen d'Bild Grenzkëschte, benotzen d'cv2.rectangle () Method. Hei ass wéi Dir d'Erkennunge vum Originalbild kuckt:
import cv2
# Draw the bounding boxes on the image
fir I an Indizes:
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
Applicatioun
YOLOv5 ass e staarken Objektidentifikatiounsmodell. Dofir kënne mir et a ville Real-Welt Szenarie benotzen. Ee vun de prominentsten Uwendungen ass a selbstfahrend Autoen. YOLOv5 kann Elementer an Echtzäit identifizéieren wéi Autoen a Verkéiersluuchten.
An Iwwerwaachungssystemer kënne mir YOLOv5 benotzen fir Objekter a Live Videostreamen z'erkennen an ze verfolgen. Ausserdeem kann YOLOv5 e grousse Verméigen an der Robotik sinn. Et kann Roboteren hëllefen hir Ëmgéigend z'entdecken an ze verstoen. Dëst ass extrem wichteg fir Aktivitéiten wéi Navigatioun a Manipulatioun.
YOLOv5 kann och an all Industrie benotzt ginn déi Objekterkennung erfuerdert, sou wéi Retail, Sport, Medizin a Sécherheet.
Konklusioun
Schlussendlech ass YOLOv5 déi lescht a raffinéiert Versioun vun der YOLO Famill vun Objet Detektioun Modellen
. Och ass et fair ze soen datt et dee genausten Objekterkennungsmodell ass verfügbar. Dank senger héijer Genauegkeet a Geschwindegkeet kënnt Dir et sécher fir Är Objekterkennungsprojete wielen.
Resky Agus
Ech maachen en éischte Journal iwwer Detektiounsauto mat yolov5 an dëse Web hëlleft mir fir Informatioun doriwwer ze sichen.
Ech ganz interesséiert iwwer AI.
Wann Dir kënnt, hunn ech vill Froen iwwer AI, vläicht kënnt Dir mir hëllefen
Merci