Mae technoleg canfod gwrthrychau gweledigaeth gyfrifiadurol yn hanfodol ar gyfer nifer o gymwysiadau. Rydym yn ei ddefnyddio mewn roboteg, offer gwyliadwriaeth, automobiles hunan-yrru, a llawer mwy o feysydd. Felly, rydyn ni'n dod o hyd i rai pethau mewn llun neu fideo a'u hadnabod.
Un o'r rhai mwyaf adnabyddus algorithmau adnabod gwrthrych yw'r YOLO Set o fodelau (Ti Dim ond Edrych Unwaith). Mae'r modelau hyn yn cael eu creu gan Ultralytics LLC.
Y fersiwn diweddaraf o'r gyfres hon yw YOLOv5. A dyma'r model adnabod gwrthrychau cyflymaf a mwyaf manwl gywir ar y farchnad. Mae gallu'r model i gyffredinoli i ddata newydd wedi gwella'n fawr. Hefyd, mae'n cynnwys llawer o nodweddion sy'n gwneud iddo berfformio'n well nag iteriadau cynharach.
Mae YOLOv5 yn wych ar gyfer cymwysiadau amser real gan y gall brosesu lluniau ar gyfradd o hyd at 1000 o fframiau yr eiliad ar un GPU.
Yn yr erthygl hon, byddwn yn cyflwyno YOLOv5 ac yn mynd dros fanylion ei feysydd cais.
Taith YOLO: O YOLO i YOLOv5
Roedd Joseph Redmon et al. cyflwynodd y YOLO yn wreiddiol, set o fodelau adnabod gwrthrychau, yn 2016. Gallai model cychwynnol YOLO adnabod gwrthrychau mewn amser real. Fodd bynnag, roedd ei gywirdeb yn isel o'i gymharu â modelau eraill bryd hynny.
Rhyddhawyd sawl fersiwn uwchraddedig o YOLO trwy gydol y blynyddoedd. Ac yn olaf, creodd Ultralytics LLC y rhifyn diweddaraf o'r gyfres YOLO, YOLOv5.
YOLOv5 yw'r model adnabod gwrthrychau mwyaf cywir a chyflym sydd ar gael ar hyn o bryd.
Nodweddion Pwysig
Blychau Angor
Mae YOLOv5 yn rhagweld blychau ffiniol ar gyfer gwrthrychau mewn delwedd gan ddefnyddio blychau angori. Mae'r model yn rhagweld pa rai o lawer o flychau a ddiffiniwyd ymlaen llaw gyda chymarebau agwedd amrywiol sy'n cyd-fynd orau â'r eitem yn y llun gan ddefnyddio blychau angori. Mae'r rhain yn flychau wedi'u diffinio ymlaen llaw.
Ac, maent yn galluogi YOLOv5 i adnabod a dod o hyd i eitemau mewn llun yn gywir.
Ychwanegiad data mosaig
Wrth hyfforddi, mae YOLOv5 yn defnyddio dull a elwir yn fosaig cynyddu data. I ddatblygu lluniau hyfforddi ffres, mae ein model yn cyfuno clytiau o sawl llun ar hap. O ganlyniad, mae'r model yn dod yn fwy gwydn a dibynadwy. Felly, mae'n mynd i gyffredinoli i ddata newydd a lleihau gorffitio.
Piblinell Hyfforddiant Unigryw
Piblinell hyfforddi unigryw sy'n cymysgu dan oruchwyliaeth a dysgu heb oruchwyliaeth yn cael ei ddefnyddio.
Felly, mae'r model yn dysgu o sampl llai ac yn defnyddio mewnbwn heb ei labelu yn effeithiol. Mae hyn yn hybu perfformiad y model ac yn gwella ei allu i gyffredinoli i fewnbynnau newydd.
Haenau sy'n weddilliol ac nad ydynt yn weddilliol
Mae pensaernïaeth YOLOv5 yn cyfuno haenau sy'n weddilliol ac nad ydynt yn weddilliol. Trwy ganiatáu i raddiannau lifo ar draws yr haenau, mae haenau gweddilliol yn cynorthwyo'r model i ddysgu nodweddion anodd. Hefyd, mae haenau nad ydynt yn weddillion yn rhoi amgyffrediad mwy cynhwysfawr i'r model o'r darlun mewnbwn. O ganlyniad, gall YOLOv5 weithredu'n fwy manwl gywir ac effeithiol.
Sut i Ddefnyddio YOLOv5
Gosod
Gellir cwblhau gosodiad YOLOv5 yn gyflym gan ddefnyddio pip. Mae Pip yn rheolwr pecyn Python. Mae'r gweithdrefnau cyffredinol ar gyfer gosod YOLOv5 fel a ganlyn:
1- Gosod PyTorch: Oherwydd bod YOLOv5 yn seiliedig ar fframwaith PyTorch, rhaid i chi osod PyTorch yn gyntaf.
pip install torch torchvision
2. Gosod CUDA: Rhaid i chi osod CUDA os ydych chi'n bwriadu rhedeg YOLOv5 ar GPU.
3. Gosod YOLOv5: Ar ôl sefydlu PyTorch a CUDA, defnyddiwch y gorchymyn canlynol i lawrlwytho YOLOv5.
pip install yolov5
4-Ar ôl gosod YOLOv5, rhaid i chi lawrlwytho'r pwysau sydd wedi'u hyfforddi ymlaen llaw. Mae'r pwysau sydd wedi'u hyfforddi ymlaen llaw ar gael yn repo Ultralytics GitHub.
Ewch i'r rhan “pwysau” o'r wefan trwy sgrolio i lawr. Gallwch lawrlwytho pwysau sydd wedi'u hyfforddi ymlaen llaw o'r rhestr y gallwch ddod o hyd iddi yma.
5. Dewiswch y pwysau sydd eisoes wedi'u hyfforddi ac sy'n gweddu orau i'ch achos defnydd. Gellir defnyddio'r set ddata neu'r fersiwn YOLOv5 penodol y dysgwyd y pwysau i gyfyngu ar y rhestr.
6- Ar ôl dewis y pwysau cywir, dewiswch y pwysau trwy glicio ar y botwm "Lawrlwytho" wrth ei ymyl. Bydd y pwysau ar gael i'w lawrlwytho fel. ffeiliau pt.
7- Trosglwyddwch y pwysau wedi'u llwytho i lawr i'r cyfeiriadur. Dyma lle bydd eich sgript canfod yn gweithredu.
8- Ar y pwynt hwn, gallwch redeg canfod gwrthrychau ar eich lluniau neu fideos gan ddefnyddio'r pwysau sydd wedi'u hyfforddi ymlaen llaw yn eich sgript canfod.
Paratowch y Data
Rhaid i chi gymryd y camau canlynol i gael y data yn barod i'w ddefnyddio gyda YOLOv5:
1. Casglu'r data: Y cam cyntaf yw casglu'r data llun neu fideo y bydd ei angen arnoch chi canfod gwrthrych. Dylai'r pethau rydych chi am eu canfod fod yn bresennol yn y lluniau neu'r fideos.
2- Fformatio'r data: Gallwch fewnforio lluniau i'ch sgript os ydych chi'n eu defnyddio. Rhaid i chi droi fideo yn gyfres o luniau os ydych chi'n bwriadu defnyddio un. Gallwch dynnu'r fframiau o ffilm gan ddefnyddio llyfrgell fel OpenCV.
import cv2
img = cv2.imread('path/to/image')
Gyda'r llyfrgell OpenCV, gallwch ddefnyddio'r gorchymyn canlynol i droi fideo yn gyfres o ddelweddau:
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. Labelwch y data: Rhaid i chi labelu'r data os ydych chi'n defnyddio'ch set ddata. Lluniadu blychau ffinio o amgylch yr eitemau yr hoffech eu hadnabod ym mhob ffrâm o ddelwedd. Dyma'r broses o labelu'r data. Gallwch ddefnyddio sawl teclyn i'ch cynorthwyo gyda'r llawdriniaeth hon, gan gynnwys LabelImg a RectLabel.
4- Rhaid i chi rannu'r data yn setiau hyfforddi a phrofi ar ôl i chi ei dagio. Mae hyn yn hanfodol ar gyfer asesu pa mor dda y mae eich model yn perfformio.
5. Yn olaf, efallai y bydd angen i chi ragbrosesu'r data cyn hyfforddi neu brofi. Gall hyn olygu graddio'r lluniau neu'r fideos, safoni'r gwerthoedd picsel, neu ddefnyddio dulliau ar gyfer ychwanegu at ddata.
Ar ôl cwblhau'r camau hyn, mae eich data yn barod.
Rhedeg y sgript canfod
Dyma enghraifft o sgript synhwyro sy'n dadansoddi llun ac yn dod o hyd i wrthrychau.
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))
Ôl-brosesu
Ataliad di-uchaf yw un o'r technegau ôl-brosesu mwyaf cyffredin a ddefnyddir i ganfod gwrthrychau (NMS). Rydym yn defnyddio SGC i ddileu blychau terfyn sy'n gorgyffwrdd ar gyfer yr un gwrthrych. I weithredu NMS ar y darganfyddiadau, gallwn ddefnyddio dull cv2.dnn.NMSBoxes() y llyfrgell OpenCV.
Dyma enghraifft o sut i ôl-brosesu datgeliadau gan ddefnyddio SGC.
import cv2
# Perform Non-Maxima Suppression (NMS)
mynegeion = cv2.dnn.NMSBoxes(canfyddiadau, cyfrinachedd, conf_thres, nms_thres)
Delweddu
Yn achos delweddu, gallwn eto ddefnyddio llyfrgell fel OpenCV. Gallwn arddangos y blychau terfyn o amgylch y gwrthrychau a ddarganfuwyd ar y llun ffynhonnell neu'r fideo. I dynnu blychau terfyn y ddelwedd, defnyddiwch y dull cv2.rectangle(). Dyma sut i weld y darganfyddiadau ar y ddelwedd wreiddiol:
mewnforio cv2
# Draw the bounding boxes on the image
i mi mewn mynegeion:
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
ceisiadau
Mae YOLOv5 yn fodel adnabod gwrthrychau cryf. Felly, gallwn ei ddefnyddio mewn llawer o senarios byd go iawn. Un o'r defnyddiau mwyaf amlwg yw ceir hunan-yrru. Gall YOLOv5 nodi eitemau mewn amser real fel automobiles a goleuadau traffig.
Mewn systemau gwyliadwriaeth, gallwn ddefnyddio YOLOv5 i adnabod ac olrhain gwrthrychau mewn ffrydiau fideo byw. Ar ben hynny, gall YOLOv5 fod yn ased gwych mewn roboteg. Gall helpu robotiaid i ganfod a deall eu hamgylchedd. Mae hyn yn hynod bwysig ar gyfer gweithgareddau fel llywio a thrin.
Gellir defnyddio YOLOv5 hefyd mewn unrhyw ddiwydiant sy'n gofyn am ganfod gwrthrychau, megis manwerthu, chwaraeon, meddygol a diogelwch.
Casgliad
Yn olaf, YOLOv5 yw'r fersiwn mwyaf diweddar a soffistigedig o deulu YOLO o canfod gwrthrych modelau
. Hefyd, mae'n deg dweud mai dyma'r model canfod gwrthrychau mwyaf cywir sydd ar gael. Diolch i'w gywirdeb a'i gyflymder uchel, gallwch ei ddewis yn ddiogel ar gyfer eich prosiectau canfod gwrthrychau.
Resky Agus
Rwy'n gwneud dyddlyfr cyntaf am gerbyd canfod gydag yolov5 ac mae'r we hon yn help i mi chwilio am wybodaeth am hynny.
Roedd gen i ddiddordeb mawr mewn AI.
os gallwch chi mae gen i lawer o gwestiynau am AI efallai y gallwch chi fy helpu
Diolch