Ang teknolohiya sa pagtuki sa butang sa computer vision hinungdanon alang sa daghang mga aplikasyon. Gigamit namo kini sa mga robotics, kagamitan sa pagpaniid, self-driving nga mga sakyanan, ug daghan pa nga mga lugar. Busa, kita makakita ug makaila sa pipila ka mga butang sa usa ka hulagway o video.
Usa sa labing inila Ang mga algorithm sa pag-ila sa butang mao ang YOLO (Kausa ra Ka Tan-awon) set sa mga modelo. Kini nga mga modelo gihimo sa Ultralytics LLC.
Ang pinakabag-o nga bersyon niini nga serye mao ang YOLOv5. Ug, kini ang labing kadali ug labing tukma nga modelo sa pag-ila sa butang sa merkado. Ang kapasidad sa modelo sa pag-generalize sa bag-ong datos napauswag pag-ayo. Usab, kini naglangkob sa daghang mga bahin nga naghimo niini nga mas maayo kaysa sa naunang mga pag-uli.
Ang YOLOv5 maayo alang sa real-time nga mga aplikasyon tungod kay kini makaproseso sa mga hulagway sa gikusgon nga hangtod sa 1000 ka mga frame kada segundo sa usa ka GPU.
Niini nga artikulo, atong ipaila ang YOLOv5 ug susihon ang mga detalye sa mga bahin sa aplikasyon niini.
Panaw sa YOLO: Gikan sa YOLO ngadto sa YOLOv5
Joseph Redmon ug uban pa. orihinal nga gipaila ang YOLO, usa ka hugpong sa mga modelo sa pag-ila sa butang, sa 2016. Ang inisyal nga modelo sa YOLO mahimong makaila sa mga butang sa tinuod nga panahon. Bisan pa, kini adunay gamay nga katukma kung itandi sa ubang mga modelo sa panahon.
Daghang mga gi-upgrade nga bersyon sa YOLO ang gipagawas sa mga tuig. Ug sa katapusan, gihimo sa Ultralytics LLC ang pinakabag-o nga edisyon sa serye sa YOLO, YOLOv5.
Ang YOLOv5 mao ang labing tukma ug pinakadali nga modelo sa pag-ila sa butang nga anaa karon.
Mga Importanteng Feature
Angkla nga mga Kahon
Gitagna sa YOLOv5 ang mga kahon nga nagbugkos alang sa mga butang sa usa ka imahe gamit ang mga kahon sa angkla. Gitagna sa modelo kung hain sa daghang gitakda nang daan nga mga kahon nga adunay lainlaing mga ratios sa aspeto ang labing katugma sa aytem sa litrato gamit ang mga kahon sa angkla. Kini ang mga gitakda nang daan nga mga kahon.
Ug, sila makahimo sa YOLOv5 sa pag-ila ug pagpangita sa mga butang sa usa ka hulagway nga adunay tukma.
Pagdugang sa datos sa Mosaic
Kung nagbansay, ang YOLOv5 naggamit usa ka pamaagi nga nailhan nga mosaic pagdugang sa datos. Aron makahimo og bag-ong mga hulagway sa pagbansay, ang among modelo random nga naghiusa sa mga patch sa daghang mga litrato. Ingon nga resulta, ang modelo nahimong mas lig-on ug kasaligan. Busa, kini makakuha sa pag-generalize sa bag-ong data ug pagkunhod sa overfitting.
Usa ka Talagsaon nga Pipeline sa Pagbansay
Usa ka talagsaon nga pipeline sa pagbansay nga nagsagol sa gibantayan ug walay pagdumala nga pagkat-on gigamit.
Sa ingon, ang modelo nakakat-on gikan sa usa ka gamay nga sample ug epektibo nga gigamit ang wala’y label nga input. Gipadako niini ang pasundayag sa modelo ug gipauswag ang kapasidad niini sa pag-generalize sa mga bag-ong input.
Mga lut-od nga nahabilin ug dili nahabilin
Ang arkitektura sa YOLOv5 naghiusa sa mga layer nga nahabilin ug dili nahabilin. Pinaagi sa pagtugot sa mga gradient nga modagayday sa mga layer, ang nahabilin nga mga layer nagtabang sa modelo sa pagkat-on sa lisud nga mga bahin. Usab, ang non-residual layers naghatag sa modelo og mas komprehensibo nga pagsabot sa input picture. Ingon usa ka sangputanan, ang YOLOv5 mahimong molihok nga mas tukma ug epektibo.
Giunsa Paggamit ang YOLOv5
Instalar
Ang pag-instalar sa YOLOv5 mahimong mahuman dayon gamit ang pip. Ang Pip usa ka tagdumala sa pakete sa Python. Ang kinatibuk-ang mga pamaagi sa pag-instalar sa YOLOv5 mao ang mosunod:
1- I-install ang PyTorch: Tungod kay ang YOLOv5 gibase sa PyTorch framework, kinahanglan una nimo nga i-install ang PyTorch.
pip install torch torchvision
2. I-install ang CUDA: Kinahanglan nimo nga i-install ang CUDA kung gusto nimo nga ipadagan ang YOLOv5 sa usa ka GPU.
3. I-install ang YOLOv5: Human sa pag-set up sa PyTorch ug CUDA, gamita ang mosunod nga command para i-download ang YOLOv5.
pip install yolov5
4-Pagkahuman sa pag-instalar sa YOLOv5, kinahanglan nimo nga i-download ang pre-trained nga mga gibug-aton. Ang pre-trained nga mga gibug-aton anaa sa Ultralytics GitHub repo.
Adto sa "mga gibug-aton" nga bahin sa website pinaagi sa pag-scroll paubos. Mahimo nimong i-download ang pre-trained nga mga gibug-aton gikan sa lista nga imong makit-an dinhi.
5. Pilia ang mga gibug-aton nga nabansay na ug labing angay sa imong use case. Ang dataset o ang partikular nga bersyon sa YOLOv5 nga nakat-unan sa mga gibug-aton mahimong gamiton aron makit-an ang listahan.
6- Human sa pagpili sa tukma nga mga gibug-aton, pilia ang gibug-aton pinaagi sa pag-klik sa "Download" nga buton sunod niini. Ang mga gibug-aton mahimong magamit alang sa pag-download ingon. pt nga mga file.
7- Ibalhin ang na-download nga mga gibug-aton sa direktoryo. Dinhi mag-operate ang imong detection script.
8- Niining puntoha, mahimo nimong ipadagan ang pagtuki sa butang sa imong mga litrato o video gamit ang pre-trained nga mga gibug-aton sa imong detection script.
Pag-andam sa Data
Kinahanglan nimong buhaton ang mosunod nga mga aksyon aron maandam ang datos alang sa paggamit sa YOLOv5:
1. Tiguma ang datos: Ang unang lakang mao ang pagtigom sa hulagway o video data nga imong gikinahanglan pagpangita sa butang. Ang mga butang nga gusto nimong makit-an kinahanglan naa sa mga litrato o video.
2- I-format ang datos: Mahimo nimong i-import ang mga litrato sa imong script kung gigamit nimo kini. Kinahanglan nimo nga himuon ang usa ka video nga usa ka serye sa mga litrato kung nagplano ka nga mogamit usa. Mahimo nimong makuha ang mga frame gikan sa usa ka salida gamit ang librarya sama sa OpenCV.
import cv2
img = cv2.imread('path/to/image')
Uban sa OpenCV library, mahimo nimong gamiton ang mosunod nga command aron mahimo ang usa ka video nga usa ka serye sa mga imahe:
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. I-label ang datos: Kinahanglan nimo nga markahan ang datos kung imong gigamit ang imong dataset. Pagdrowing og mga bounding box sa palibot sa mga butang nga gusto nimong mailhan sa matag frame sa usa ka imahe. Kini ang proseso sa pag-label sa datos. Mahimo nimong gamiton ang daghang mga himan aron matabangan ka niini nga operasyon, lakip ang LabelImg ug RectLabel.
4- Kinahanglan nimong bahinon ang datos sa mga set sa pagbansay ug pagsulay pagkahuman nimo kini ma-tag. Importante kini sa pagtimbang-timbang kon unsa ka maayo ang imong modelo.
5. Sa katapusan, tingali kinahanglan nimo nga iproseso ang datos sa dili pa ang pagbansay o pagsulay. Mahimong maglakip kini sa pag-scale sa mga litrato o video, pag-standardize sa mga kantidad sa pixel, o paggamit sa mga pamaagi alang sa pagdugang sa datos.
Human makompleto kini nga mga lakang, andam na ang imong datos.
Pagdalagan ang detection script
Ania ang usa ka ilustrasyon sa usa ka detection script nga nag-analisar sa usa ka hulagway ug nangita og mga butang.
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))
Pagproseso sa post
Ang dili maximum nga pagsumpo mao ang usa sa labing kanunay nga post-processing nga mga teknik nga gigamit sa object detection (NMS). Gigamit namo ang NMS aron mawagtang ang nagsapaw-sapaw nga mga bounding box para sa parehas nga butang. Aron ipatuman ang NMS sa mga detection, magamit nato ang cv2.dnn.NMSBoxes() nga pamaagi sa OpenCV library.
Ania ang usa ka pananglitan kung giunsa ang pag-post-proseso nga mga detection gamit ang NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
indices = cv2.dnn.NMSBoxes(detections, confidences, conf_thres, nms_thres)
Pagtan-aw
Sa kaso sa visualization, makagamit na usab kita ug library sama sa OpenCV. Mahimo natong ipakita ang mga bounding box sa palibot sa nadiskobrehang mga butang sa tinubdan nga hulagway o video. Aron madrowing ang mga kahon nga nagbugkos sa imahe, gamita ang cv2.rectangle() nga pamaagi. Ania kung giunsa pagtan-aw ang mga nakit-an sa orihinal nga imahe:
import cv2
# Draw the bounding boxes on the image
kay ako sa mga indeks:
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
aplikasyon
Ang YOLOv5 usa ka lig-on nga modelo sa pag-ila sa butang. Busa, mahimo natong gamiton kini sa daghang mga senaryo sa tinuod nga kalibutan. Usa sa labing inila nga gamit mao ang nagmaneho sa kaugalingon nga mga awto. Mahimong mailhan sa YOLOv5 ang mga butang sa tinuud nga oras sama sa mga awto ug suga sa trapiko.
Sa mga sistema sa pagpaniid, magamit namo ang YOLOv5 aron mailhan ug masubay ang mga butang sa mga live video stream. Dugang pa, ang YOLOv5 mahimong usa ka maayong asset sa robotics. Makatabang kini sa mga robot nga makit-an ug masabtan ang ilang palibot. Kini hinungdanon kaayo alang sa mga kalihokan sama sa nabigasyon ug pagmaniobra.
Ang YOLOv5 mahimo usab nga gamiton sa bisan unsang industriya nga nanginahanglan nga makit-an ang butang, sama sa retail, sports, medikal, ug seguridad.
Panapos
Sa katapusan, ang YOLOv5 mao ang pinakabag-o ug sopistikado nga bersyon sa YOLO nga pamilya sa pagpangita sa butang mga modelo
. Usab, makatarunganon nga isulti nga kini ang labing tukma nga modelo sa pagtuki sa butang nga magamit. Salamat sa taas nga katukma ug katulin niini, mahimo nimo kini luwas nga mapili alang sa imong mga proyekto sa pagtuki sa butang.
Resky Agus
Naghimo ako usa ka una nga journal bahin sa awto sa pag-detect nga adunay yolov5 ug kini nga web nakatabang kanako sa pagpangita sa kasayuran bahin niana.
Interesado kaayo ko sa AI.
kung mahimo nimo daghan kog pangutana bahin sa AI basin makatabang ka nako
Salamat