Hlutagreiningartækni tölvusjónar er nauðsynleg fyrir fjölmörg forrit. Við notum það í vélfærafræði, eftirlitsbúnaði, sjálfkeyrandi bifreiðum og mörgum fleiri sviðum. Þess vegna fáum við að finna og þekkja ákveðna hluti í mynd eða myndbandi.
Einn af þeim þekktustu reiknirit til að bera kennsl á hluti er YOLO (You Only Look Once) sett af módelum. Þessar gerðir eru búnar til af Ultralytics LLC.
Nýjasta útgáfan af þessari seríu er YOLOv5. Og það er fljótlegasta og nákvæmasta hlutagreiningarlíkanið á markaðnum. Geta líkansins til að alhæfa yfir ný gögn hefur verið stórbætt. Einnig inniheldur það marga eiginleika sem gera það að verkum að það skilar betri árangri en fyrri endurtekningar.
YOLOv5 er frábært fyrir rauntíma forrit þar sem það getur unnið myndir á allt að 1000 ramma á sekúndu á einni GPU.
Í þessari grein munum við kynna YOLOv5 og fara yfir upplýsingar um notkunarsvið þess.
Ferð YOLO: Frá YOLO til YOLOv5
Joseph Redmon o.fl. upphaflega kynnti YOLO, sett af hlutagreiningarlíkönum, árið 2016. Upphaflega YOLO líkanið gæti auðkennt hluti í rauntíma. Hins vegar hafði það litla nákvæmni í samanburði við aðrar gerðir á þeim tíma.
Nokkrar uppfærðar útgáfur af YOLO voru gefnar út í gegnum árin. Og að lokum bjó Ultralytics LLC til nýjustu útgáfuna af YOLO seríunni, YOLOv5.
YOLOv5 er nákvæmasta og fljótlegasta hlutagreiningarlíkanið sem til er.
Mikilvægir eiginleikar
Akkeriskassar
YOLOv5 spáir fyrir um afmarkandi reiti fyrir hluti í mynd með því að nota akkerareiti. Líkanið spáir fyrir um hvaða af mörgum fyrirfram skilgreindum reitum með mismunandi stærðarhlutföllum passar best við hlutinn á myndinni með því að nota akkerisboxa. Þetta eru fyrirfram skilgreindir kassar.
Og þeir gera YOLOv5 kleift að þekkja og finna hluti á mynd með nákvæmni.
Mósaík gagnaaukning
Við þjálfun notar YOLOv5 aðferð sem kallast mósaík gagnaaukning. Til að þróa ferskar æfingamyndir sameinar líkanið okkar plástra af nokkrum myndum af handahófi. Fyrir vikið verður líkanið seigur og áreiðanlegri. Þess vegna fær það að alhæfa yfir ný gögn og draga úr offitun.
Einstök þjálfunarleiðsla
Einstök þjálfunarleiðsla sem blandar saman eftirliti og eftirlit án náms er notað.
Þannig lærir líkanið af minna úrtaki og nýtir ómerkt inntak á áhrifaríkan hátt. Þetta eykur afköst líkansins og eykur getu þess til að alhæfa yfir í ný inntak.
Lög sem eru leifar og ekki leifar
Arkitektúr YOLOv5 sameinar lög sem eru leifar og ekki leifar. Með því að leyfa halla að flæða yfir lögin aðstoða leifar af lögum líkaninu við að læra erfiða eiginleika. Einnig veita óafleiðandi lög líkaninu ítarlegri tökum á inntaksmyndinni. Fyrir vikið getur YOLOv5 starfað nákvæmari og skilvirkari.
Hvernig á að nota YOLOv5
uppsetning
Hægt er að ljúka YOLOv5 uppsetningu fljótt með því að nota pip. Pip er Python pakkastjóri. Almennar aðferðir við að setja upp YOLOv5 eru sem hér segir:
1- Settu upp PyTorch: Vegna þess að YOLOv5 er byggt á PyTorch ramma, verður þú fyrst að setja upp PyTorch.
pip install torch torchvision
2. Settu upp CUDA: Þú verður að setja upp CUDA ef þú ætlar að keyra YOLOv5 á GPU.
3. Settu upp YOLOv5: Eftir að hafa sett upp PyTorch og CUDA skaltu nota eftirfarandi skipun til að hlaða niður YOLOv5.
pip install yolov5
4-Eftir uppsetningu á YOLOv5 verður þú að hlaða niður forþjálfuðum lóðum. Forþjálfuðu lóðin eru fáanleg í Ultralytics GitHub endurhverfunni.
Farðu í „þyngd“ hluta vefsíðunnar með því að fletta niður. Þú getur halað niður forþjálfuðum lóðum af listanum sem þú getur fundið hér.
5. Veldu þær lóðir sem þegar hafa verið þjálfaðar og henta best þínum notkunartilvikum. Hægt er að nota gagnasafnið eða tiltekna YOLOv5 útgáfu sem lóðin voru lærð til að þrengja listann.
6- Eftir að hafa valið rétta þyngd skaltu velja þyngdina með því að smella á „Hlaða niður“ hnappinn við hliðina á henni. Hægt verður að hlaða niður lóðunum sem. pt skrár.
7- Flyttu niður lóðin yfir í möppuna. Þetta er þar sem uppgötvunarforritið þitt mun starfa.
8- Á þessum tímapunkti geturðu keyrt hlutgreiningu á myndunum þínum eða myndböndum með því að nota fyrirfram þjálfaðar lóðir í uppgötvunarhandritinu þínu.
Undirbúa gögnin
Þú verður að grípa til eftirfarandi aðgerða til að gera gögnin tilbúin til notkunar með YOLOv5:
1. Safnaðu gögnunum: Fyrsta skrefið er að safna myndum eða myndbandsgögnum sem þú þarft fyrir hlutgreining. Hlutirnir sem þú vilt uppgötva ættu að vera til staðar í myndunum eða myndskeiðunum.
2- Forsníða gögnin: Þú getur bara flutt inn myndir í handritið þitt ef þú ert að nota þær. Þú verður að breyta myndbandi í myndasyrpu ef þú ætlar að nota það. Þú getur dregið rammana úr kvikmynd með því að nota bókasafn eins og OpenCV.
import cv2
img = cv2.imread('path/to/image')
Með OpenCV bókasafninu geturðu notað eftirfarandi skipun til að breyta myndbandi í röð mynda:
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. Merktu gögnin: Þú verður að merkja gögnin ef þú ert að nota gagnasafnið þitt. Teiknaðu afmarkandi ramma utan um hlutina sem þú vilt bera kennsl á í hverjum ramma myndar. Það er ferlið við að merkja gögnin. Þú getur notað nokkur verkfæri til að aðstoða þig við þessa aðgerð, þar á meðal LabelImg og RectLabel.
4- Þú verður að skipta gögnunum í þjálfunar- og prófunarsett eftir að þú hefur merkt þau. Þetta er mikilvægt til að meta hversu vel líkanið þitt stendur sig.
5. Að lokum gætirðu þurft að forvinna gögnin fyrir þjálfun eða prófun. Þetta getur falið í sér að skala myndirnar eða myndböndin, staðla pixlagildin eða nota aðferðir til að auka gögn.
Eftir að hafa lokið þessum skrefum eru gögnin þín tilbúin.
Keyrðu uppgötvunarforskriftina
Hér er mynd af uppgötvunarhandriti sem greinir mynd og finnur hluti.
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))
Eftirvinnsla
Óhámarksbæling er ein algengasta eftirvinnsluaðferðin sem notuð er við hlutgreiningu (NMS). Við notum NMS til að útrýma skarast afmörkunarreitum fyrir sama hlut. Til að framkvæma NMS á uppgötvunum getum við notað cv2.dnn.NMSBoxes() aðferð OpenCV bókasafnsins.
Hér er dæmi um hvernig á að endurvinna uppgötvun með NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
vísitölur = cv2.dnn.NMSBoxes(uppgötvun, öryggi, conf_thres, nms_thres)
Sjónræn
Þegar um er að ræða sjónmynd, getum við aftur notað bókasafn eins og OpenCV. Við getum sýnt afmörkunarreitina utan um hlutina sem fundust á upprunamyndinni eða myndbandinu. Notaðu cv2.rectangle() aðferðina til að teikna afmarkareiti myndarinnar. Svona á að skoða greiningar á upprunalegu myndinni:
flytja inn cv2
# Draw the bounding boxes on the image
fyrir I í vísitölum:
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
Umsóknir
YOLOv5 er sterkt hlutagreiningarlíkan. Þess vegna getum við nýtt okkur það í mörgum raunverulegum aðstæðum. Ein mest áberandi notkunin er í sjálfkeyrandi bílum. YOLOv5 getur greint hluti í rauntíma eins og bíla og umferðarljós.
Í eftirlitskerfum getum við notað YOLOv5 til að þekkja og rekja hluti í lifandi myndbandsstraumum. Ennfremur getur YOLOv5 verið mikill kostur í vélfærafræði. Það getur hjálpað vélmenni að greina og skilja umhverfi sitt. Þetta er afar mikilvægt fyrir athafnir eins og siglingar og meðferð.
YOLOv5 má einnig nota í hvaða iðnaði sem krefst hlutgreiningar, eins og smásölu, íþróttir, læknisfræði og öryggismál.
Niðurstaða
Að lokum, YOLOv5 er nýjasta og háþróaðasta útgáfan af YOLO fjölskyldunni hlutgreining módel
. Það er líka sanngjarnt að segja að það sé nákvæmasta hlutgreiningarlíkanið sem til er. Þökk sé mikilli nákvæmni og hraða geturðu örugglega valið það fyrir hlutgreiningarverkefni þín.
Resky Agus
Ég geri fyrsta dagbók um uppgötvunartæki með yolov5 og þessi vefur hjálpar mér að leita upplýsinga um það.
Ég hef mikinn áhuga á gervigreind.
ef þú getur þá hef ég miklar spurningar um gervigreind gætirðu kannski hjálpað mér
Þakka þér