Ordenagailu bidezko ikusmenaren objektuak detektatzeko teknologia ezinbestekoa da aplikazio ugaritarako. Robotikan, zaintza-ekipoetan, auto gidatzen diren autoetan eta beste hainbat arlotan erabiltzen dugu. Horregatik, argazki edo bideo batean gauza batzuk aurkitu eta ezagutuko ditugu.
Ezagunenetako bat objektuak identifikatzeko algoritmoak YOLO da (Behin bakarrik begiratzen duzu) modelo multzoa. Eredu hauek sortutakoak dira Ultralytics LLC.
Serie honen azken bertsioa YOLOv5 da. Eta, merkatuan dagoen objektuen identifikazio eredurik azkarrena eta zehatzena da. Ereduak datu berrietara orokortzeko duen gaitasuna asko hobetu da. Gainera, aurreko iterazioak baino hobeto funtzionatzen duten ezaugarri asko ditu.
YOLOv5 bikaina da denbora errealeko aplikazioetarako, irudiak segundoko 1000 fotograma arteko abiaduran prozesatu ditzakeelako GPU bakarrean.
Artikulu honetan, YOLOv5 aurkeztuko dugu eta bere aplikazio-eremuen xehetasunak aztertuko ditugu.
YOLOren bidaia: YOLOtik YOLOv5era
Joseph Redmon et al. 2016an aurkeztu zuen jatorriz YOLO, objektuak identifikatzeko ereduen multzoa. Hasierako YOLO ereduak objektuak denbora errealean identifika ditzake. Hala ere, zehaztasun txikia zuen garai hartan beste modelo batzuekin alderatuta.
Urteetan zehar YOLOren bertsio berritu batzuk kaleratu ziren. Eta azkenik, Ultralytics LLCk YOLO seriearen edizio berriena sortu zuen, YOLOv5.
YOLOv5 gaur egun eskuragarri dagoen objektuen identifikazio eredurik zehatzena eta azkarrena da.
Ezaugarri garrantzitsuak
Aingura-kutxak
YOLOv5-ek irudi bateko objektuen muga-koadroak aurreikusten ditu aingura-kutxak erabiliz. Ereduak aurreikusten du aspektu-erlazio ezberdinekin aurrez definitutako koadroetatik zein den ondoen bat datorren irudiko elementuarekin aingura-kutxak erabiliz. Aurrez zehaztutako kutxak dira.
Eta, YOLOv5-ek argazki bateko elementuak zehaztasunez ezagutu eta aurkitzeko aukera ematen diote.
Mosaikoen datuen gehikuntza
Prestakuntzan, YOLOv5-ek mosaiko gisa ezagutzen den metodoa erabiltzen du datuen handitzea. Entrenamendu-irudi freskoak garatzeko, gure modeloak ausaz hainbat argazkiren adabakiak konbinatzen ditu. Ondorioz, eredua sendoagoa eta fidagarriagoa bihurtzen da. Hori dela eta, datu berrietara orokortu eta gehiegizko egokitzapena murrizten du.
Prestakuntza kanal paregabea
Gainbegiratuak eta nahasten dituen prestakuntza kanal paregabea gainbegiratu gabeko ikaskuntza erabiltzen da.
Horrela, ereduak lagin txikiago batetik ikasten du eta etiketarik gabeko sarrera modu eraginkorrean erabiltzen du. Horrek ereduaren errendimendua areagotzen du eta sarrera berrietara orokortzeko duen gaitasuna areagotzen du.
Hondar eta hondar ez diren geruzak
YOLOv5-en arkitekturak hondarrak eta ez-hondarrak diren geruzak konbinatzen ditu. Gradienteak geruzetan zehar igarotzen utziz, hondar geruzek ereduari laguntzen diote ezaugarri zailak ikasten. Gainera, geruzak ez diren geruzek sarrerako irudiaren ulermen zabalagoa eskaintzen diote ereduari. Ondorioz, YOLOv5 zehatzago eta eraginkorrago funtziona dezake.
Nola erabili YOLOv5
instalazioa
YOLOv5 instalazioa azkar osa daiteke pip erabiliz. Pip Python paketeen kudeatzailea da. YOLOv5 instalatzeko prozedura orokorrak hauek dira:
1- PyTorch instalatu: YOLOv5 PyTorch esparruan oinarritzen denez, lehenik PyTorch instalatu behar duzu.
pip install torch torchvision
2. Instalatu CUDA: CUDA instalatu behar duzu YOLOv5 GPU batean exekutatzeko asmoa baduzu.
3. Instalatu YOLOv5: PyTorch eta CUDA konfiguratu ondoren, erabili komando hau YOLOv5 deskargatzeko.
pip install yolov5
4-YOLOv5 instalatu ondoren, aurrez prestatutako pisuak deskargatu behar dituzu. Aurrez trebatutako pisuak Ultralytics GitHub repo-n daude eskuragarri.
Joan webguneko "pisuak" atalera behera korrituz. Aurrez prestatutako pisuak deskarga ditzakezu hemen aurki dezakezun zerrendatik.
5. Hautatu dagoeneko entrenatuta dauden eta zure erabilera-kasuari hobekien egokitzen zaizkion pisuak. Pisuak ikasitako datu-multzoa edo YOLOv5 bertsio partikularra erabil daitezke zerrenda murrizteko.
6- Pisu egokiak aukeratu ondoren, aukeratu pisua ondoan dagoen “Deskargatu” botoian klik eginez. Pisuak deskargatzeko moduan egongo dira eskuragarri. pt fitxategiak.
7- Transferitu deskargatutako pisuak direktoriora. Hemen funtzionatuko du zure detekzio-gidoia.
8- Une honetan, objektuen detekzioa exekutatu dezakezu zure argazki edo bideoetan zure detekzio-gidoian aldez aurretik trebatutako pisuak erabiliz.
Prestatu Datuak
Ekintza hauek egin behar dituzu datuak YOLOv5-rekin erabiltzeko prest izateko:
1. Bildu datuak: lehen urratsa behar dituzun argazki edo bideo datuak biltzea da objektuak hautematea. Detektatu nahi dituzun gauzak argazki edo bideoetan egon behar dira.
2- Datuak formateatu: argazkiak zure script-era inporta ditzakezu, erabiltzen ari bazara. Bideo bat argazki sorta bihurtu behar duzu bat erabiltzeko asmoa baduzu. Film batetik fotogramak atera ditzakezu OpenCV bezalako liburutegi bat erabiliz.
import cv2
img = cv2.imread('path/to/image')
OpenCV liburutegiarekin, komando hau erabil dezakezu bideo bat irudi sorta batean bihurtzeko:
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. Datuak etiketatzea: datuak etiketatu behar dituzu zure datu multzoa erabiltzen ari bazara. Irudi baten fotograma bakoitzean identifikatu nahi dituzun elementuen inguruan muga-koadroak marraztea. Datuak etiketatzeko prozesua da. Eragiketa honetan laguntzeko hainbat tresna erabil ditzakezu, besteak beste, LabelImg eta RectLabel.
4- Datuak entrenamendu eta proba multzoetan banatu behar dituzu etiketatu ondoren. Hau funtsezkoa da zure eredua nola funtzionatzen duen ebaluatzeko.
5. Azkenik, baliteke datuak aldez aurretik prozesatu behar izatea entrenatu edo probatu aurretik. Horrek irudiak edo bideoak eskalatzea, pixelen balioak estandarizatzea edo datuak handitzeko metodoak erabiltzea ekar dezake.
Urrats hauek amaitu ondoren, zure datuak prest daude.
Exekutatu detekzio-scripta
Hona hemen irudi bat aztertzen eta objektuak aurkitzen dituen detekzio-script baten ilustrazioa.
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-prozesatzeko
Ez-gehienezko ezabaketa objektuen detekzioan (NMS) erabiltzen den postprozesatzeko tekniketako bat da. NMS erabiltzen dugu objektu beraren muga-koadroak gainjarriz kentzeko. Detekzioetan NMS exekutatzeko, OpenCV liburutegiaren cv2.dnn.NMSBoxes() metodoa erabil dezakegu.
Hona hemen NMS erabiliz detekzioak postprozesatzeko moduaren adibide bat.
import cv2
# Perform Non-Maxima Suppression (NMS)
indizeak = cv2.dnn.NMSBoxes (detekzioak, konfiantzak, conf_thres, nms_thres)
Bisualizazioa
Bistaratzearen kasuan, berriro OpenCV bezalako liburutegi bat erabil dezakegu. Aurkitutako objektuen inguruko muga-koadroak iturburuko irudian edo bideoan bistaratu ditzakegu. Irudiaren muga-koadroak marrazteko, erabili cv2.rectangle() metodoa. Hona hemen jatorrizko irudiaren detekzioak nola ikusi:
inportatu cv2
# Draw the bounding boxes on the image
I-rentzat indizeetan:
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
aplikazioak
YOLOv5 objektuak identifikatzeko eredu sendoa da. Hori dela eta, mundu errealeko eszenatoki askotan erabil dezakegu. Erabilera nabarmenenetako bat auto gidatzen duten autoetan dago. YOLOv5-ek denbora errealean identifika ditzake elementuak, hala nola automobilak eta semaforoak.
Zaintza sistemetan, YOLOv5 erabil dezakegu zuzeneko bideo-korronteetako objektuak ezagutzeko eta jarraitzeko. Gainera, YOLOv5 aktibo bikaina izan daiteke robotikan. Robotei beren ingurua hautematen eta ulertzen lagun diezaieke. Hau oso garrantzitsua da nabigazioa eta manipulazioa bezalako jardueretarako.
YOLOv5 objektuak hautematea behar duen edozein industriatan ere erabil daiteke, hala nola, txikizkako merkataritzan, kiroletan, medikuntzan eta segurtasunean.
Ondorioa
Azkenik, YOLOv5 YOLO familiaren bertsio berriena eta sofistikatua da objektuak hautematea ereduak
. Gainera, bidezkoa da eskuragarri dagoen objektuak hautemateko eredurik zehatzena dela esatea. Bere zehaztasun eta abiadura handiari esker, modu seguruan hauta dezakezu zure objektuak hautemateko proiektuetarako.
Resky Agus
Yolov5-ekin detekzio ibilgailuari buruzko lehen aldizkari bat egiten dut eta web honek horri buruzko informazioa bilatzen laguntzen dit.
Asko interesatzen zait IA.
Ahal baduzu, AIari buruzko galdera asko ditut, agian lagun zaitzake
Eskerrik asko