A tecnulugia di rilevazione di l'ughjettu di a visione di computer hè essenziale per numerosi applicazioni. L'utilicemu in robotica, equipaghji di surviglianza, automobili autoguidati, è assai più spazii. Dunque, avemu da truvà è ricunnosce certe cose in una foto o video.
Unu di i più cunnisciuti l'algoritmi di identificazione di l'ughjettu hè u YOLO (You Only Look Once) set di mudelli. Sti mudelli sò creati da Ultralytics LLC.
A versione più recente di sta serie hè YOLOv5. È, hè u mudellu di identificazione di l'ughjettu più veloce è precisu in u mercatu. A capacità di u mudellu di generalizà à novi dati hè stata assai migliurata. Inoltre, cuntene assai caratteristiche chì facenu megliu cà iterazioni precedenti.
YOLOv5 hè grande per l'applicazioni in tempu reale, postu chì pò processà e foto à una freccia di finu à 1000 frames per seconda in una sola GPU.
In questu articulu, presenteremu YOLOv5 è andemu nantu à i dettagli di e so aree d'applicazione.
U viaghju di YOLO: Da YOLO à YOLOv5
Joseph Redmon et al. urigginariamente introduttu u YOLO, un inseme di mudelli di identificazione di l'ughjettu, in 2016. U mudellu YOLO iniziale puderia identificà l'uggetti in tempu reale. In ogni casu, hà avutu una precisione bassa cumparatu cù altri mudelli à quellu tempu.
Diversi versioni aghjurnate di YOLO sò state liberate in l'anni. È infine, Ultralytics LLC hà creatu a nova edizione di a serie YOLO, YOLOv5.
YOLOv5 hè u mudellu di identificazione di l'ughjettu più precisu è rapidu attualmente dispunibule.
Caratteristiche impurtanti
Scatole d'ancora
YOLOv5 predice scatuli di delimitazione per l'uggetti in una maghjina utilizendu scatuli di ancora. U mudellu predice quale di parechje scatuli predefiniti cù diverse proporzioni d'aspettu currisponde megliu à l'articulu in a stampa cù scatuli di ancora. Quessi sò scatuli predefiniti.
E, permettenu à YOLOv5 di ricunnosce è truvà elementi in una stampa cun precisione.
Aumento di dati di mosaicu
Quandu a furmazione, YOLOv5 impiega un metudu chjamatu mosaicu aumentu di dati. Per sviluppà foto di furmazione fresche, u nostru mudellu combina aleatoriamente parche di parechje foto. In u risultatu, u mudellu diventa più resistente è affidabile. Dunque, vene à generalizà à novi dati è diminuite l'overfitting.
Un Pipeline di Formazione Unicu
Un pipeline di furmazione unicu chì mischia supervisatu è amparera senza supervisione veni usatu.
Cusì, u mudellu ampara da una mostra più chjuca è utilizza input senza etichetta in modu efficace. Questu aumenta u rendiment di u mudellu è aumenta a so capacità di generalizà à novi inputs.
Capi chì sò residuali è micca residuali
L'architettura di YOLOv5 combina strati chì sò residuali è micca residuali. Permettenu à i gradienti di scorri à traversu i strati, i strati residuali aiutanu u mudellu à amparà e caratteristiche difficili. Inoltre, i strati non-residuali furnisce u mudellu cù una capiscitura più cumpleta di a stampa di input. In u risultatu, YOLOv5 pò operà più precisamente è efficace.
Cumu aduprà YOLOv5
stallanu
L'installazione di YOLOv5 pò esse cumpletata rapidamente usendu pip. Pip hè un gestore di pacchetti Python. I prucedure generale per installà YOLOv5 sò i seguenti:
1- Installa PyTorch: Perchè YOLOv5 hè basatu annantu à u framework PyTorch, prima deve installà PyTorch.
pip install torch torchvision
2. Installa CUDA: Avete da installà CUDA se avete intenzione di eseguisce YOLOv5 nantu à una GPU.
3. Installa YOLOv5: Dopu avè stallatu PyTorch è CUDA, aduprate u cumandimu seguitu per scaricà YOLOv5.
pip install yolov5
4-Dopu à a stallazione di YOLOv5, duvete scaricà i pesi pre-addestrati. I pesi pre-addestrati sò dispunibili in Ultralytics GitHub repo.
Andà à a parte "pesi" di u situ web scorrendu. Pudete scaricà pesi pre-addestrati da a lista chì pudete truvà quì.
5. Selezziunà i pesi chì sò digià furmati è megliu cunvene u vostru casu d'usu. U dataset o a versione particulari di YOLOv5 chì i pesi sò stati amparati pò esse usatu per restringe a lista.
6- Dopu à sceglie u pesu propriu, sceglie u pesu clicchendu u buttone "Download" accantu. I pesi seranu dispunibuli per scaricà cum'è. i schedari pt.
7- Trasferisce i pesi telecaricati in u cartulare. Questu hè induve u vostru script di rilevazione operarà.
8- À questu puntu, pudete eseguisce a rilevazione di l'ughjettu nantu à e vostre foto o video cù i pesi pre-furmati in u vostru script di rilevazione.
Preparate i Dati
Duvete piglià e seguenti azzioni per uttene e dati pronti per l'usu cù YOLOv5:
1. Gather i dati: U primu passu hè di riunite i dati foto o video vi tuccherà rilevazione d'ogetti. E cose chì vulete detect deve esse presente in e foto o video.
2- Formate i dati: Pudete solu impurtà e foto in u vostru script s'ellu l'utilizate. Duvete trasfurmà un video in una seria di foto se pensa à aduprà una. Pudete estrattà i frames da un film cù una biblioteca cum'è OpenCV.
import cv2
img = cv2.imread('path/to/image')
Cù a libreria OpenCV, pudete aduprà u cumandimu seguitu per trasfurmà un video in una seria d'imaghjini:
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 i dati: You deve labellu i dati s'è vo sò cù u vostru dataset. Disegnu scatuli di delimitazione intornu à l'articuli chì vulete identificà in ogni quadru di una maghjina. Hè u prucessu di etichettatura di dati. Pudete aduprà parechje arnesi per aiutà vi cù sta operazione, cumprese LabelImg è RectLabel.
4- Duvete divide e dati in setti di furmazione è di teste dopu avè taggatu. Questu hè cruciale per valutà quantu u vostru mudellu funziona.
5. Infine, vi putissi bisognu di preprocess i dati prima di furmazione o di prova. Questu pò esse a scala di l'imaghjini o i video, a standardizazione di i valori di pixel, o l'usu di metudi per l'aumentu di dati.
Dopu à compie sti passi, i vostri dati hè prontu.
Eseguite u script di rilevazione
Eccu un'illustrazione di un script di deteczione chì analizeghja una stampa è trova l'uggetti.
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-trasfurmazione
A suppressione non-massimu hè una di e tecniche di post-processamentu più frequenti aduprate in a rilevazione di l'ogetti (NMS). Utilizemu NMS per eliminà i scatuli di delimitazione sovrapposti per u stessu ughjettu. Per eseguisce NMS nantu à i rilevamenti, pudemu usà u metudu cv2.dnn.NMSBoxes() di a biblioteca OpenCV.
Eccu un esempiu di cumu post-processà e rilevazioni cù NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indici = cv2.dnn.NMSBoxes (detections, confidences, conf_thres, nms_thres)
Visualization
In u casu di visualizazione, pudemu dinò aduprà una biblioteca cum'è OpenCV. Pudemu affissà i scatuli di delimitazione intornu à l'uggetti scuperti nantu à a stampa o video di fonte. Per disegnà e scatuli di delimitazione di l'imaghjini, utilizate u metudu cv2.rectangle(). Eccu cumu vede i rilevamenti nantu à l'imaghjini originale:
impurtà cv2
# Draw the bounding boxes on the image
per I in indici:
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
Travaux
YOLOv5 hè un mudellu d'identificazione di l'ughjettu forte. Dunque, pudemu aduprà in parechji scenarii di u mondu reale. Unu di l'usi più prominenti hè in vitture auto-guida. YOLOv5 pò identificà elementi in tempu reale cum'è l'automobile è i semafori.
In i sistemi di surviglianza, pudemu usà YOLOv5 per ricunnosce è seguità l'uggetti in flussi video in diretta. Inoltre, YOLOv5 pò esse un grande asset in robotica. Puderà aiutà i robot à detectà è capisce u so circondu. Questu hè assai impurtante per attività cum'è a navigazione è a manipulazione.
YOLOv5 pò ancu esse aduprata in ogni industria chì richiede a rilevazione di l'ughjettu, cum'è vendita, sport, medica è sicurità.
cunchiusioni
Finalmente, YOLOv5 hè a versione più recente è sofisticata di a famiglia di YOLO rilevazione d'ogetti Mudelli
. Inoltre, hè ghjustu dì chì hè u mudellu di deteczione di l'ughjettu più precisu dispunibule. Grazie à a so alta precisione è veloce, pudete sceglie in modu sicuru per i vostri prughjetti di rilevazione di l'ughjetti.
Resky Agus
Facciu un primu ghjurnale nantu à i veiculi di deteczione cù yolov5 è questu web m'aiuta à circà l'infurmazioni nantu à questu.
Sò assai interessatu à l'AI.
se pudete avè assai dumande nantu à l'AI, forse pudete aiutà mi
Grazie