Teknolojiya vedîtina objeyê ya vîzyona komputerê ji bo gelek serlêdanan pêdivî ye. Em wê di robotîk, alavên çavdêriyê, otomobîlên xwe-ajotinê û gelek deverên din de bikar tînin. Ji ber vê yekê, em dikarin di wêneyek an vîdyoyê de hin tiştan bibînin û nas bikin.
Yek ji yên herî naskirî algorîtmayên nasandina tiştan YOLO ye (Tu Tenê Carekê Dinihêrî) komek modelan. Ev model ji hêla têne çêkirin Ultralytics LLC.
Guhertoya herî dawî ya vê rêzê YOLOv5 e. Û, ew li ser sûkê modela nasnameyê ya herî bilez û rastîn e. Kapasîteya modelê ya ji bo gelemperîkirina daneyên nû pir çêtir bûye. Di heman demê de, ew gelek taybetmendiyan vedihewîne ku wê ji dubareyên berê çêtir performansê dike.
YOLOv5 ji bo serîlêdanên di dema rast de pir girîng e ji ber ku ew dikare wêneyan bi rêjeya 1000 çarçove di çirkeyê de li ser yek GPU-yê pêvajoyê bike.
Di vê gotarê de, em ê YOLOv5 bidin nasîn û hûrguliyên warên serîlêdana wê bigerin.
Rêwîtiya YOLO: Ji YOLO berbi YOLOv5
Joseph Redmon et al. di eslê xwe de YOLO, komek modelên nasîna tiştan, di sala 2016-an de destnîşan kir. Modela YOLO ya destpêkê dikare tiştan di wextê rast de nas bike. Lêbelê, ew di wê demê de li gorî modelên din rastiyek kêm bû.
Di nav salan de çend guhertoyên nûvekirî yên YOLO hatin berdan. Û di dawiyê de, Ultralytics LLC guhertoya herî nû ya rêza YOLO, YOLOv5, afirand.
YOLOv5 modela nasnameya herî rast û bilez a ku niha heye heye.
Taybetiyên girîng
Boxes Anchor
YOLOv5 bi karanîna qutiyên lengerê ji bo tiştên di wêneyekê de qutiyên sînordar pêşbînî dike. Model pêşbînî dike ku ji gelek qutiyên pêş-danasînkirî yên bi rêjeyên cûrbecûr yên cihêreng bi karanîna qutiyên lengerê çêtirîn tişta di wêneyê de li hev dike. Ev qutiyên pêş-pênaskirî ne.
Û, ew YOLOv5 dihêlin ku tiştên di wêneyekê de bi rasthatin nas bike û bibîne.
Zêdekirina daneyên mozaîk
Dema perwerdehiyê, YOLOv5 rêbazek ku wekî mozaîk tê zanîn bikar tîne zêdekirina daneyan. Ji bo pêşdebirina wêneyên perwerdehiya nû, modela me bi korfelaqî perçeyên çend wêneyan berhev dike. Wekî encamek, modela bêtir berxwedêr û pêbawer dibe. Ji ber vê yekê, ew digihîje daneyên nû yên giştî û zêdebarkirinê kêm dike.
Xetek Perwerdehiya Yekta
Xetek perwerdehiyê ya bêhempa ku çavdêrî û tevlihev dike fêrbûna bêpergal tê bikar anîn.
Bi vî rengî, model ji nimûneyek piçûktir fêr dibe û têketina bêlabelkirî bi bandor bikar tîne. Ev performansa modelê zêde dike û kapasîteya wê ya giştîkirina têketinên nû zêde dike.
Qatên ku bermayî û nemayî ne
Mîmariya YOLOv5 qatên ku bermayî û ne-mayî ne bi hev re dike. Bi hişt ku gradient li seranserê qatan biherikin, qatên bermayî di fêrbûna taybetmendiyên dijwar de arîkariya modelê dikin. Di heman demê de, qatên ne-mayî ji modelê re têgihiştinek berfirehtir a wêneya têketinê peyda dikin. Wekî encamek, YOLOv5 dikare rasttir û bi bandortir bixebite.
Meriv çawa YOLOv5 bikar tîne
Lêkirinî
Sazkirina YOLOv5 dibe ku bi karanîna pip zû were qedandin. Pip rêveberek pakêtê ya Python e. Pêvajoyên gelemperî ji bo sazkirina YOLOv5 wiha ne:
1- PyTorch saz bikin: Ji ber ku YOLOv5 li ser çarçoveya PyTorch-ê ye, divê hûn pêşî PyTorch saz bikin.
pip install torch torchvision
2. CUDA saz bikin: Ger hûn dixwazin YOLOv5-ê li ser GPU-yê bimeşînin divê hûn CUDA saz bikin.
3. YOLOv5 saz bikin: Piştî sazkirina PyTorch û CUDA, emrê jêrîn bikar bînin da ku YOLOv5 dakêşin.
pip install yolov5
4-Piştî sazkirina YOLOv5, divê hûn giraniyên pêş-perwerdekirî dakêşin. Giranên pêş-perwerdekirî di depoya Ultralytics GitHub de hene.
Bi gerandina jêrîn biçin beşa "giran" a malperê. Hûn dikarin giraniyên pêş-perwerdekirî ji navnîşa ku hûn dikarin li vir bibînin dakêşin.
5. Giranên ku jixwe hatine perwerdekirin hilbijêrin û herî baş li gorî doza karanîna we ne. Danûstendin an guhertoya taybetî ya YOLOv5 ya ku giranî hatine fêr kirin dibe ku ji bo tengkirina navnîşê were bikar anîn.
6- Piştî bijartina giranan, bi tikandina bişkoka "Daxistin" ya li kêleka wê, giraniyê hilbijêrin. Giran dê ji bo dakêşanê wekî wekî. pelên pt.
7- Giranên daxistî veguhezîne pelrêça. Li vir skrîpta tespîtkirina we dê bixebite.
8- Di vê nuqteyê de, hûn dikarin li ser wêneyan an vîdyoyên xwe bi karanîna giraniyên pêş-perwerdekirî yên di skrîpta tespîtkirina xwe de tespîtkirina tiştan bimeşînin.
Daneyan amade bikin
Pêdivî ye ku hûn çalakiyên jêrîn bikin da ku daneya ji bo karanîna bi YOLOv5 re amade bibin:
1. Daneyên berhev bikin: Gava yekem ev e ku hûn daneya wêne an vîdyoyê ya ku hûn hewce ne berhev bikin tespîtkirina objektê. Tiştên ku hûn dixwazin kifş bikin divê di wêne an vîdyoyan de hebin.
2- Daneyan format bikin: Heke hûn wan bi kar tînin hûn dikarin tenê wêneyan têxin nav nivîsara xwe. Ger hûn plan dikin ku yek bikar bînin divê hûn vîdyoyek veguherînin rêzek wêneyan. Hûn dikarin çarçoveyên ji fîlimek bi karanîna pirtûkxaneyek mîna OpenCV derxînin.
import cv2
img = cv2.imread('path/to/image')
Bi pirtûkxaneya OpenCV re, hûn dikarin fermana jêrîn bikar bînin da ku vîdyoyek li rêzek wêneyan veguherînin:
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. Daneyan etîket bikin: Heke hûn daneya xwe bikar tînin divê hûn daneyan etîket bikin. Li dora tiştên ku hûn dixwazin di her çarçoweya wêneyekê de nas bikin qutiyên sînor xêz bikin. Ew pêvajoya etîketkirina daneyan e. Hûn dikarin çend amûran bikar bînin ku ji we re bi vê operasyonê re bibin alîkar, di nav de LabelImg û RectLabel.
4- Piştî ku we etîket kir, divê hûn daneyan li komên perwerde û ceribandinê parve bikin. Ev ji bo nirxandina ku modela we çiqas baş dike pir girîng e.
5. Di dawiyê de, dibe ku hûn hewce ne ku berî perwerdehiyê an ceribandinê daneyên pêşdibistanê bikin. Ev dikare pîvana wêneyan an vîdyoyan, standardkirina nirxên pixel, an jî karanîna rêbazên ji bo zêdekirina daneyan pêk bîne.
Piştî qedandina van gavan, daneyên we amade ne.
Skrîpta tespîtkirinê bimeşînin
Li vir nîgarek nivîsarek tespîtkirinê ye ku wêneyek analîz dike û tiştan dibîne.
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))
Pêvajoya paşîn
Tepeserkirina ne-herî zêde yek ji teknîkên paş-pêvajoyê yên herî gelemperî ye ku di tespîtkirina tiştan (NMS) de tê bikar anîn. Em NMS-ê bikar tînin da ku ji bo heman tiştan qutiyên sînorkirî yên hevgirtî ji holê rakin. Ji bo pêkanîna NMS-ê li ser tespîtan, em dikarin rêbaza cv2.dnn.NMSBoxes() ya pirtûkxaneya OpenCV bikar bînin.
Li vir mînakek e ku meriv çawa bi karanîna NMS-ê vedîtinên paşîn-pêvajoyê dike.
import cv2
# Perform Non-Maxima Suppression (NMS)
indeks = cv2.dnn.NMSBox (teşhîs, pêbawer, conf_thres, nms_thres)
Visualization
Di doza dîtbarî de, em dîsa dikarin pirtûkxaneyek mîna OpenCV bikar bînin. Em dikarin qutiyên sînorkirî yên li dora tiştên ku hatine vedîtin li ser wêneya çavkanî an vîdyoyê nîşan bidin. Ji bo xêzkirina qutiyên sînorkirî yên wêneyê, rêbaza cv2.rectangle() bikar bînin. Li vir meriv çawa tespîtên li ser wêneya orîjînal dibîne:
import cv2
# Draw the bounding boxes on the image
ji bo I di indexan de:
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
Applications
YOLOv5 modela nasîna tişta bihêz e. Ji ber vê yekê, em dikarin wê di gelek senaryoyên cîhana rastîn de bikar bînin. Yek ji karanîna herî berbiçav di otomobîlên xwe-ajotinê de ye. YOLOv5 dikare tiştên di wextê rast de wekî otomobîl û roniyên trafîkê nas bike.
Di pergalên çavdêriyê de, em dikarin YOLOv5 bikar bînin da ku tiştên di weşanên vîdyoyê yên zindî de nas bikin û bişopînin. Wekî din, YOLOv5 dikare di robotîkê de sermayek mezin be. Ew dikare ji robotan re bibe alîkar ku derdora xwe nas bikin û fam bikin. Ev ji bo çalakiyên wekî navîgasyon û manîpulasyonê pir girîng e.
YOLOv5 di heman demê de dibe ku di her pîşesazî de ku hewceyê tespîtkirina tiştan e, wekî firoşgeh, werzîş, bijîjkî û ewlehî were bikar anîn.
Xelasî
Di dawiyê de, YOLOv5 guhertoya herî dawî û sofîstîke ya malbata YOLO ye tespîtkirina objektê Modela
. Di heman demê de, meriv rast e ku meriv bibêje ku ew modela tespîtkirina objektê ya herî rast a berdest e. Spas ji rastbûn û leza wê ya bilind, hûn dikarin bi ewlehî wê ji bo projeyên tespîtkirina tiştan hilbijêrin.
Resky Agus
Ez bi yolov5 re yekem kovarek di derbarê wesayîta tespîtkirinê de çêdikim û ev malper ji min re dibe alîkar ku ez li ser wê agahdarî bigerim.
Ez ji AI-ê pir eleqedar im.
heke hûn dikarin di derbarê AI-ê de pir pirsa min heye dibe ku hûn ji min re bibin alîkar
Spas dikim