De technology foar objektdeteksje fan kompjûterfisy is essensjeel foar ferskate applikaasjes. Wy brûke it yn robotika, tafersjochapparatuer, selsridende auto's, en folle mear gebieten. Hjirtroch kinne wy beskate dingen fine en werkenne yn in foto of fideo.
Ien fan de meast bekende algoritmen foar objektidentifikaasje is de YOLO (Jo sjogge mar ien kear) set fan modellen. Dizze modellen wurde makke troch It bedriuw Ultralytics LLC.
De meast resinte ferzje fan dizze searje is YOLOv5. En, it is it rapste en meast krekte model foar objektidentifikaasje op 'e merke. De kapasiteit fan it model om te generalisearjen nei nije gegevens is gâns ferbettere. Ek befettet it in protte funksjes dy't it better meitsje dan eardere iteraasjes.
YOLOv5 is geweldig foar real-time applikaasjes, om't it foto's kin ferwurkje mei in taryf fan maksimaal 1000 frames per sekonde op ien GPU.
Yn dit artikel sille wy YOLOv5 yntrodusearje en de details oer syn tapassingsgebieten gean.
Journey of YOLO: Fan YOLO nei YOLOv5
Joseph Redmon et al. oarspronklik yntrodusearre de YOLO, in set fan foarwerp identifikaasje modellen, yn 2016. It earste YOLO model koe identifisearje objekten yn it echt. It hie lykwols in lege krektens yn ferliking mei oare modellen op dat stuit.
Ferskate opwurdearre ferzjes fan YOLO waarden troch de jierren hinne frijlitten. En úteinlik makke Ultralytics LLC de nijste edysje fan 'e YOLO-searje, YOLOv5.
YOLOv5 is it meast krekte en rapste model foar objektidentifikaasje dat op it stuit beskikber is.
Wichtige eigenskippen
Anker doazen
YOLOv5 foarseit beheinende doazen foar objekten yn in ôfbylding mei help fan anker doazen. It model foarseit hokker fan in protte foarôf definieare doazen mei ferskate aspektferhâldingen it bêste oerienkomme mei it item op 'e foto mei ankerdoazen. Dit binne foarôf definieare doazen.
En se skeakelje YOLOv5 yn om items op in foto mei krektens te herkennen en te finen.
Fergrutting fan mozaïekgegevens
By training brûkt YOLOv5 in metoade bekend as mozaïek data fergrutting. Om frisse trainingsfoto's te ûntwikkeljen, kombinearret ús model willekeurige patches fan ferskate foto's. As gefolch, it model wurdt duorsumer en betrouber. Dêrtroch wurdt it generalisearjen nei nije gegevens en ôfnimme overfitting.
In unike training pipeline
In unike training pipeline dy't mingt tafersjoch en sûnder tafersjoch learen is brûkt.
Sa leart it model fan in lytsere stekproef en brûkt effektyf ynput sûnder label. Dit fergruttet de prestaasjes fan it model en ferbettert syn kapasiteit om te generalisearjen nei nije ynputs.
Lagen dy't residueel en net-residueel binne
De arsjitektuer fan YOLOv5 kombineart lagen dy't residueel en net-residueel binne. Troch it tastean fan gradiënten om oer de lagen te streamen, helpe oerbleaune lagen it model by it learen fan lestige funksjes. Ek net-residuele lagen jouwe it model in mear wiidweidich begryp fan 'e ynfierôfbylding. As resultaat kin YOLOv5 krekter en effektiver operearje.
Hoe kinne jo YOLOv5
Ynstallaasje
YOLOv5-ynstallaasje kin rap wurde foltôge mei pip. Pip is in Python-pakketbehearder. De algemiene prosedueres foar it ynstallearjen fan YOLOv5 binne as folget:
1- PyTorch ynstallearje: Om't YOLOv5 basearre is op it PyTorch-ramt, moatte jo PyTorch earst ynstallearje.
pip install torch torchvision
2. Ynstallearje CUDA: Jo moatte ynstallearje CUDA as jo fan doel in run YOLOv5 op in GPU.
3. Ynstallearje YOLOv5: Nei it ynstellen fan PyTorch en CUDA, brûk it folgjende kommando om YOLOv5 te downloaden.
pip install yolov5
4-Nei de ynstallaasje fan YOLOv5 moatte jo de foartrainde gewichten downloade. De pre-trained gewichten binne beskikber yn de Ultralytics GitHub repo.
Gean nei it diel "gewichten" fan 'e webside troch nei ûnderen te rôljen. Jo kinne foarôf trainde gewichten downloade fan 'e list dy't jo hjir kinne fine.
5. Selektearje de gewichten dy't al oplaat binne en it bêste passe by jo gebrûk. De dataset as de bepaalde YOLOv5-ferzje dy't de gewichten waarden leard, kin brûkt wurde om de list te beheinen.
6- Nei it kiezen fan de juste gewichten, kies it gewicht troch te klikken op de "Download" knop njonken it. De gewichten sille beskikber wêze foar download as. pt triemmen.
7- Oermeitsje de ynladen gewichten nei de map. Dit is wêr jo deteksjeskript sil wurkje.
8- Op dit punt kinne jo objektdeteksje útfiere op jo foto's of fideo's mei de foartrainde gewichten yn jo deteksjeskript.
Tariede de gegevens
Jo moatte de folgjende aksjes nimme om de gegevens klear te meitsjen foar gebrûk mei YOLOv5:
1. Sammelje de gegevens: De earste stap is it sammeljen fan de foto of fideo gegevens dy't jo nedich hawwe foar objektdeteksje. De dingen dy't jo wolle ûntdekke moatte oanwêzich wêze yn 'e foto's of fideo's.
2- Formatearje de gegevens: Jo kinne gewoan foto's ymportearje yn jo skript as jo se brûke. Jo moatte in fideo omsette yn in searje foto's as jo fan plan binne ien te brûken. Jo kinne de frames út in film ekstrahearje mei in bibleteek lykas OpenCV.
import cv2
img = cv2.imread('path/to/image')
Mei de OpenCV-bibleteek kinne jo it folgjende kommando brûke om in fideo yn in searje ôfbyldings te feroarjen:
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 de gegevens: Jo moatte label de gegevens as jo brûke jo dataset. Beheinende fakjes tekenje om de items dy't jo wolle identifisearje yn elk frame fan in ôfbylding. It is it proses fan it labeljen fan de gegevens. Jo kinne ferskate ark brûke om jo te helpen mei dizze operaasje, ynklusyf LabelImg en RectLabel.
4- Jo moatte de gegevens ferdiele yn training- en testsets neidat jo it tagged hawwe. Dit is krúsjaal foar it beoardieljen fan hoe goed jo model prestearret.
5. Uteinlik moatte jo miskien de gegevens foarferwurkje foardat jo traine of testen. Dit kin skaalfergrutting fan de foto's of fideo's omfetsje, it standerdisearjen fan de pikselwearden, of it brûken fan metoaden foar gegevensfergrutting.
Nei it foltôgjen fan dizze stappen binne jo gegevens klear.
Run it deteksjeskript
Hjir is in yllustraasje fan in deteksjeskript dat in foto analysearret en objekten fynt.
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-ferwurking
Net-maksimale ûnderdrukking is ien fan 'e meast foarkommende post-ferwurkingstechniken brûkt yn objektdeteksje (NMS). Wy brûke NMS foar in elimineren oerlappende grinzen doazen foar itselde objekt. Foar in útfiere NMS op de detections, kinne wy brûke de OpenCV bibleteek syn cv2.dnn.NMSBoxes () metoade.
Hjir is in foarbyld fan hoe't jo deteksjes kinne postferwurkje mei NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indices = cv2.dnn.NMSBoxes(detections, confidences, conf_thres, nms_thres)
fisualisaasje
Yn it gefal fan fisualisaasje kinne wy wer in bibleteek lykas OpenCV brûke. Wy kinne de grinzende fakjes om 'e ûntdutsen objekten werjaan op' e boarneôfbylding of fideo. Foar in tekenje de ôfbylding syn grinzen doazen, brûk de cv2.rectangle () metoade. Hjir is hoe't jo de deteksjes op 'e orizjinele ôfbylding kinne besjen:
ymport cv2
# Draw the bounding boxes on the image
foar I yn yndeksen:
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
Oanfraach
YOLOv5 is in sterk foarwerp identifikaasje model. Hjirtroch kinne wy it gebrûk meitsje yn in protte senario's yn 'e echte wrâld. Ien fan 'e meast foaroansteande gebrûk is yn selsridende auto's. YOLOv5 kin items yn realtime identifisearje lykas auto's en ferkearsljochten.
Yn tafersjochsystemen kinne wy YOLOv5 brûke om objekten te herkennen en te folgjen yn live fideostreamen. Fierder kin YOLOv5 in geweldige oanwinst wêze yn robotika. It kin robots helpe om har omjouwing te ûntdekken en te begripen. Dit is ekstreem wichtich foar aktiviteiten lykas navigaasje en manipulaasje.
YOLOv5 kin ek brûkt wurde yn elke yndustry dy't objektdeteksje fereasket, lykas detailhannel, sport, medysk en feiligens.
Konklúzje
Uteinlik is YOLOv5 de meast resinte en ferfine ferzje fan 'e YOLO-famylje fan objektdeteksje modellen
. Ek is it earlik te sizzen dat it it meast krekte model foar objektdeteksje is beskikber. Mei tank oan syn hege krektens en snelheid kinne jo it feilich kieze foar jo projekten foar objektdeteksje.
Resky Agus
Ik meitsje in earste sjoernaal oer deteksjeauto mei yolov5 en dit web helpt my om dêr ynformaasje oer te sykjen.
Ik bin tige ynteressearre yn AI.
As jo kinne, haw ik in protte fragen oer AI, miskien kinne jo my helpe
Dankewol