Tehnologija zaznavanja predmetov računalniškega vida je bistvena za številne aplikacije. Uporabljamo ga v robotiki, opremi za nadzor, samovozečih avtomobilih in na mnogih drugih področjih. Tako lahko najdemo in prepoznamo določene stvari na sliki ali videu.
Eden najbolj znanih algoritmov za identifikacijo objektov je YOLO (You Only Look Once) komplet modelov. Te modele ustvarjajo Ultralytics LLC.
Najnovejša različica te serije je YOLOv5. In je najhitrejši in najbolj natančen model identifikacije predmeta na trgu. Zmogljivost modela za posploševanje novih podatkov je bila močno izboljšana. Vsebuje tudi veliko funkcij, zaradi katerih deluje bolje kot prejšnje iteracije.
YOLOv5 je odličen za aplikacije v realnem času, saj lahko obdeluje slike s hitrostjo do 1000 sličic na sekundo na enem GPE.
V tem članku bomo predstavili YOLOv5 in preučili podrobnosti o njegovih področjih uporabe.
Potovanje YOLO: Od YOLO do YOLOv5
Joseph Redmon idr. je prvotno predstavil YOLO, nabor modelov za identifikacijo objektov, leta 2016. Začetni model YOLO je lahko identificiral predmete v realnem času. Vendar pa je imel nizko natančnost v primerjavi z drugimi modeli v tistem času.
Skozi leta je bilo izdanih več nadgrajenih različic YOLO. In končno, Ultralytics LLC je ustvaril najnovejšo izdajo serije YOLO, YOLOv5.
YOLOv5 je najbolj natančen in najhitrejši model identifikacije objektov, ki je trenutno na voljo.
Pomembne lastnosti
Sidrne škatle
YOLOv5 predvideva omejevalne okvire za predmete na sliki z uporabo sidrnih okvirjev. Model napove, katera izmed številnih vnaprej določenih polj z različnimi razmerji stranic se najbolje ujema z elementom na sliki z uporabo sidrnih polj. To so vnaprej določena polja.
Poleg tega omogočajo YOLOv5 natančno prepoznavanje in iskanje predmetov na sliki.
Mozaično povečevanje podatkov
Pri usposabljanju YOLOv5 uporablja metodo, znano kot mozaik povečanje podatkov. Za razvoj svežih slik treninga naš model naključno združuje zaplate več fotografij. Posledično postane model bolj odporen in zanesljiv. Zato se lahko posploši na nove podatke in zmanjša prekomerno opremljanje.
Edinstven cevovod za usposabljanje
Edinstven cevovod za usposabljanje, ki združuje nadzorovano in nenadzorovano učenje se uporablja.
Tako se model uči iz manjšega vzorca in učinkovito uporablja neoznačen vnos. To poveča zmogljivost modela in izboljša njegovo zmožnost posploševanja na nove vnose.
Plasti, ki so rezidualne in nerezidualne
Arhitektura YOLOv5 združuje plasti, ki so preostale in nerezidualne. Z omogočanjem prelivov, da tečejo čez plasti, preostali sloji pomagajo modelu pri učenju težkih funkcij. Prav tako plasti brez ostankov zagotavljajo modelu bolj celovito razumevanje vhodne slike. Posledično lahko YOLOv5 deluje bolj natančno in učinkovito.
Kako uporabljati YOLOv5
namestitev
Namestitev YOLOv5 je mogoče hitro dokončati z uporabo pip. Pip je upravitelj paketov Python. Splošni postopki za namestitev YOLOv5 so naslednji:
1- Namestite PyTorch: Ker YOLOv5 temelji na ogrodju PyTorch, morate najprej namestiti PyTorch.
pip install torch torchvision
2. Namestite CUDA: Če nameravate zagnati YOLOv5 na GPE, morate namestiti CUDA.
3. Namestite YOLOv5: Ko nastavite PyTorch in CUDA, uporabite naslednji ukaz za prenos YOLOv5.
pip install yolov5
4-Po namestitvi YOLOv5 morate prenesti vnaprej pripravljene uteži. Vnaprej pripravljene uteži so na voljo v skladišču Ultralytics GitHub.
Pojdite na del spletnega mesta »uteži« tako, da se pomaknete navzdol. Vnaprej pripravljene uteži lahko prenesete s seznama, ki ga najdete tukaj.
5. Izberite uteži, ki so že natrenirane in najbolj ustrezajo vašemu primeru uporabe. Nabor podatkov ali določena različica YOLOv5, za katero so bile pridobljene uteži, se lahko uporabi za zoženje seznama.
6- Ko izberete ustrezne uteži, izberite težo s klikom na gumb »Prenesi« poleg nje. Uteži bodo na voljo za prenos kot. pt datoteke.
7- Prenesite prenesene uteži v imenik. Tukaj bo deloval vaš skript za zaznavanje.
8- Na tej točki lahko zaženete zaznavanje predmetov na svojih fotografijah ali videoposnetkih z uporabo vnaprej pripravljenih uteži v skriptu za zaznavanje.
Pripravite podatke
Izvesti morate naslednje ukrepe, da pripravite podatke za uporabo z YOLOv5:
1. Zberite podatke: Prvi korak je zbiranje slikovnih ali video podatkov, ki jih potrebujete odkrivanje predmetov. Stvari, ki jih želite zaznati, naj bodo prisotne na fotografijah ali videoposnetkih.
2- Formatirajte podatke: fotografije lahko preprosto uvozite v svoj skript, če jih uporabljate. Videoposnetek morate spremeniti v niz fotografij, če ga nameravate uporabiti. Okvirje lahko ekstrahirate iz filma s knjižnico, kot je OpenCV.
import cv2
img = cv2.imread('path/to/image')
S knjižnico OpenCV lahko uporabite naslednji ukaz za pretvorbo videa v niz slik:
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. Označite podatke: Podatke morate označiti, če uporabljate svoj nabor podatkov. Risanje omejevalnih okvirjev okoli elementov, ki jih želite identificirati v vsakem okvirju slike. To je postopek označevanja podatkov. Za pomoč pri tej operaciji lahko uporabite več orodij, vključno z LabelImg in RectLabel.
4- Ko ste jih označili, morate podatke razdeliti na nize za usposabljanje in testiranje. To je ključnega pomena za oceno, kako dobro deluje vaš model.
5. Nazadnje, morda boste morali pred usposabljanjem ali testiranjem podatke predhodno obdelati. To lahko vključuje spreminjanje velikosti slik ali videoposnetkov, standardizacijo vrednosti slikovnih pik ali uporabo metod za povečanje podatkov.
Po zaključku teh korakov so vaši podatki pripravljeni.
Zaženite skript za odkrivanje
Tukaj je ilustracija skripta za zaznavanje, ki analizira sliko in najde predmete.
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))
Naknadna obdelava
Ne-maksimalno zatiranje je ena najpogostejših tehnik naknadne obdelave, ki se uporablja pri zaznavanju objektov (NMS). NMS uporabljamo za odpravo prekrivanja omejevalnih polj za isti predmet. Za izvedbo NMS pri zaznavah lahko uporabimo metodo cv2.dnn.NMSBoxes() knjižnice OpenCV.
Tukaj je primer, kako naknadno obdelati zaznave z uporabo NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indeksi = cv2.dnn.NMSBoxes(zaznavanja, zaupanja, conf_thres, nms_thres)
Vizualizacija
V primeru vizualizacije lahko ponovno uporabimo knjižnico, kot je OpenCV. Na izvorni sliki ali videu lahko prikažemo omejevalne okvirje okoli odkritih predmetov. Za risanje omejevalnih okvirjev slike uporabite metodo cv2.rectangle(). Takole si ogledate zaznave na izvirni sliki:
uvoz cv2
# Draw the bounding boxes on the image
za I v indeksih:
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
Aplikacije
YOLOv5 je močan model identifikacije objektov. Zato ga lahko uporabimo v številnih realnih scenarijih. Ena najvidnejših uporab je v samovozečih avtomobilih. YOLOv5 lahko prepozna predmete v realnem času, kot so avtomobili in semaforji.
V nadzornih sistemih lahko uporabljamo YOLOv5 za prepoznavanje in sledenje predmetov v video tokovih v živo. Poleg tega je YOLOv5 lahko velika prednost v robotiki. Robotom lahko pomaga zaznati in razumeti okolico. To je izjemno pomembno za dejavnosti, kot sta navigacija in manipulacija.
YOLOv5 se lahko uporablja tudi v kateri koli panogi, ki zahteva zaznavanje predmetov, kot so maloprodaja, šport, medicina in varnost.
zaključek
YOLOv5 je najnovejša in izpopolnjena različica družine YOLO odkrivanje predmetov modeli
. Prav tako je pošteno reči, da je to najnatančnejši model zaznavanja predmetov, ki je na voljo. Zaradi visoke natančnosti in hitrosti ga lahko varno izberete za svoje projekte zaznavanja predmetov.
Resky Agus
Izdelujem prvo revijo o vozilih za odkrivanje z yolov5 in ta splet mi pomaga pri iskanju informacij o tem.
Zelo me zanima AI.
če lahko, imam veliko vprašanj o AI, mi morda lahko pomagate
Hvala