Технологияи муайянкунии объекти биниши компютерӣ барои барномаҳои сершумор муҳим аст. Мо онро дар робототехника, таҷҳизоти назоратӣ, автомобилҳои худидоракунанда ва бисёр дигар соҳаҳо истифода мебарем. Аз ин рӯ, мо метавонем чизҳои муайянро дар тасвир ё видео пайдо кунем ва эътироф кунем.
Яке аз маъруфтарин алгоритмҳои муайянкунии объект YOLO мебошад (Шумо танҳо як маротиба нигаред) маҷмӯи моделҳо. Ин моделҳо аз ҷониби ҶДММ Ultralytics.
Варианти охирини ин силсила YOLOv5 мебошад. Ва, ин зудтарин ва дақиқтарин модели мушаххаскунии объект дар бозор аст. Қобилияти модел барои ҷамъбаст кардани маълумоти нав хеле беҳтар шудааст. Ғайр аз он, он дорои хусусиятҳои зиёде мебошад, ки онро нисбат ба такрорҳои қаблӣ беҳтар иҷро мекунанд.
YOLOv5 барои замимаҳои вақти воқеӣ бузург аст, зеро он метавонад тасвирҳоро бо суръати то 1000 кадр дар як сония дар як GPU коркард кунад.
Дар ин мақола, мо YOLOv5-ро муаррифӣ мекунем ва тафсилоти соҳаҳои татбиқи онро дида мебароем.
Сафари YOLO: Аз YOLO то YOLOv5
Ҷозеф Редмон ва дигарон. дар аввал YOLO, маҷмӯи моделҳои мушаххаскунии объектро дар соли 2016 муаррифӣ кард. Модели ибтидоии YOLO метавонад объектҳоро дар вақти воқеӣ муайян кунад. Бо вуҷуди ин, он дар муқоиса бо дигар моделҳои он вақт дақиқии паст дошт.
Якчанд версияҳои такмилёфтаи YOLO дар тӯли солҳо бароварда шуданд. Ва ниҳоят, Ultralytics LLC нашри навтарини силсилаи YOLO YOLOv5-ро эҷод кард.
YOLOv5 модели дақиқтарин ва зудтарин муайянкунии объект мебошад, ки ҳоло дастрас аст.
Хусусиятҳои муҳим
Қуттиҳои лангар
YOLOv5 бо истифода аз қуттиҳои лангар қуттиҳои маҳдудро барои объектҳои тасвир пешгӯӣ мекунад. Модел пешгӯӣ мекунад, ки кадоме аз бисёр қуттиҳои пешакӣ муайяншуда бо таносуби ҷанбаҳои гуногун бо истифода аз қуттиҳои лангар ба ашё дар расм мувофиқтар аст. Инҳо қуттиҳои пешакӣ муайяншуда мебошанд.
Ва онҳо ба YOLOv5 имкон медиҳанд, ки ашёро дар расм ба таври дақиқ шинохт ва пайдо кунад.
Афзоиши маълумоти мозаика
Ҳангоми омӯзиш, YOLOv5 усули бо номи мозаикаро истифода мебарад афзоиш додани маълумот. Барои таҳияи расмҳои таълимии нав, модели мо ба таври тасодуфӣ часбҳои якчанд аксҳоро муттаҳид мекунад. Дар натиҷа, модел боз ҳам устувортар ва боэътимодтар мешавад. Аз ин рӯ, он ба маълумоти нав ҷамъбаст карда, аз ҳад зиёд мувофиқат мекунад.
Як лӯлаи беҳамтои омӯзишӣ
Як лӯлаи беҳамтои омӯзишӣ, ки назоратшаванда ва омӯзиши беназорат истифода бурда мешавад.
Ҳамин тариқ, модел аз намунаи хурдтар омӯхта мешавад ва вуруди номбаршударо самаранок истифода мебарад. Ин кори моделро баланд мебардорад ва қобилияти онро барои умумӣ кардан ба воридоти нав афзоиш медиҳад.
Қабатҳое, ки боқимонда ва ғайриқонунӣ мебошанд
Меъмории YOLOv5 қабатҳои боқимонда ва ғайриқонуниро муттаҳид мекунад. Бо имкон додани градиентҳо дар болои қабатҳо, қабатҳои боқимонда ба модел дар омӯхтани хусусиятҳои душвор кӯмак мекунанд. Инчунин, қабатҳои ғайриқонунӣ моделро бо дарки ҳамаҷонибаи тасвири вуруд таъмин мекунанд. Дар натича YOLOv5 аниктар ва самарабахштар кор карда метавонад.
Чӣ тавр истифода бурдани YOLOv5
насби
Насбкунии YOLOv5 метавонад бо истифода аз pip зуд анҷом дода шавад. Pip мудири бастаи Python аст. Тартиби умумии насби YOLOv5 инҳоянд:
1- PyTorch-ро насб кунед: Азбаски YOLOv5 ба чаҳорчӯбаи PyTorch асос ёфтааст, шумо аввал бояд PyTorch-ро насб кунед.
pip install torch torchvision
2. CUDA насб кунед: Агар шумо ният доред, ки YOLOv5-ро дар GPU иҷро кунед, шумо бояд CUDA-ро насб кунед.
3. YOLOv5-ро насб кунед: Пас аз насб кардани PyTorch ва CUDA, барои зеркашии YOLOv5 фармони зеринро истифода баред.
pip install yolov5
4-Пас аз насби YOLOv5, шумо бояд вазнҳои қаблан омӯзонидашударо зеркашӣ кунед. Вазнҳои қаблан омӯзонидашуда дар репо Ultralytics GitHub дастрасанд.
Бо ҳаракат ба поён ба қисми "вазнҳо" -и вебсайт гузаред. Шумо метавонед вазнҳои қаблан омӯзонидашударо аз рӯйхате, ки шумо метавонед дар ин ҷо пайдо кунед, зеркашӣ кунед.
5. Вазнҳоеро, ки аллакай омӯзонида шудаанд ва ба ҳолати истифодабарии шумо мувофиқтаранд, интихоб кунед. Маҷмӯи додаҳо ё версияи махсуси YOLOv5, ки вазнҳо омӯхта шудаанд, метавонанд барои танг кардани рӯйхат истифода шаванд.
6- Пас аз интихоби вазнҳои мувофиқ, вазнро бо пахш кардани тугмаи "Зеркашӣ" дар паҳлӯи он интихоб кунед. Вазнҳо ҳамчун зеркашӣ дастрас хоҳанд буд. файлҳои pt.
7- Вазнҳои зеркашидашударо ба директория интиқол диҳед. Дар ин ҷо скрипти муайянкунии шумо кор хоҳад кард.
8- Дар ин лаҳза, шумо метавонед бо истифода аз вазнҳои қаблан омӯзонидашуда дар скрипти кашфи худ ошкоркунии объектро дар аксҳо ё видеоҳои худ иҷро кунед.
Маълумотро омода кунед
Барои омода кардани маълумот бо YOLOv5 шумо бояд амалҳои зеринро иҷро кунед:
1. Ҷамъоварии маълумот: Қадами аввал ин ҷамъоварӣ кардани тасвир ё видеоест, ки ба шумо лозим аст ошкор кардани объект. Чизҳое, ки шумо мехоҳед ошкор кунед, бояд дар аксҳо ё видеоҳо мавҷуд бошанд.
2- Формат кардани маълумот: Шумо метавонед танҳо аксҳоро ба скрипти худ ворид кунед, агар шумо онҳоро истифода баред. Агар шумо нақшаи истифодаи онро дошта бошед, шумо бояд видеоро ба як силсила аксҳо табдил диҳед. Шумо метавонед чаҳорчӯбаҳоро аз филм бо истифода аз китобхонаи монанди OpenCV истихроҷ кунед.
import cv2
img = cv2.imread('path/to/image')
Бо китобхонаи OpenCV, шумо метавонед фармони зеринро истифода баред, то видеоро ба як қатор тасвирҳо табдил диҳед:
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. Маълумотро нишон диҳед: Агар шумо маҷмӯи додаҳои худро истифода баред, шумо бояд маълумотро нишон диҳед. Дар атрофи ашёе, ки шумо мехоҳед дар ҳар як чаҳорчӯбаи тасвир муайян кунед, қуттиҳои маҳдудкунанда кашед. Ин раванди тамғагузории маълумот аст. Шумо метавонед якчанд асбобҳоро истифода баред, аз ҷумла LabelImg ва RectLabel.
4- Шумо бояд маълумотро ба маҷмӯаҳои омӯзишӣ ва санҷишӣ пас аз нишонгузорӣ тақсим кунед. Ин барои баҳодиҳии дурустии модели шумо муҳим аст.
5. Ниҳоят, шумо бояд пеш аз омӯзиш ё санҷиш маълумотро коркард кунед. Ин метавонад миқёси тасвирҳо ё видеоҳо, стандартизатсияи арзишҳои пиксел ё истифодаи усулҳо барои афзоиш додани маълумотро дар бар гирад.
Пас аз анҷом додани ин қадамҳо, маълумоти шумо омода аст.
Скрипти ошкоркуниро иҷро кунед
Дар ин ҷо як тасвири скрипти муайянкунӣ аст, ки тасвирро таҳлил мекунад ва объектҳоро пайдо мекунад.
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))
Пас аз коркарди
Қатъи ғайримаксимӣ яке аз усулҳои маъмултарини коркарди пас аз коркард мебошад, ки дар муайянкунии объект (NMS) истифода мешавад. Мо NMS-ро истифода мебарем, то қуттиҳои ҳудудҳои такроршавандаро барои як объект нест кунем. Барои иҷрои NMS дар ошкоркунӣ, мо метавонем усули cv2.dnn.NMSBoxes()-и китобхонаи OpenCV-ро истифода барем.
Ин аст як мисоли чӣ гуна коркарди пас аз коркард бо истифода аз NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
индексҳо = cv2.dnn.NMSBoxes (ошкоркуниҳо, эътимодҳо, conf_thres, nms_thres)
Visualization
Дар ҳолати визуализатсия, мо метавонем боз китобхонаеро ба монанди OpenCV истифода барем. Мо метавонем қуттиҳои маҳдудкунандаро дар атрофи объектҳои кашфшуда дар расм ё видеои сарчашма нишон диҳем. Барои кашидани қуттиҳои маҳдудкунандаи тасвир, усули cv2.rectangle() -ро истифода баред. Ин аст тарзи дидани ошкоркуниҳо дар тасвири аслӣ:
воридоти cv2
# Draw the bounding boxes on the image
барои I дар индексҳо:
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
Барномаҳо
YOLOv5 модели қавии мушаххаскунии объект аст. Аз ин рӯ, мо метавонем онро дар бисёр сенарияҳои ҷаҳони воқеӣ истифода барем. Яке аз маъмултарин истифода дар мошинҳои худидоракунанда мебошад. YOLOv5 метавонад ашёро дар вақти воқеӣ, ба монанди автомобилҳо ва чароғҳои светофор муайян кунад.
Дар системаҳои назоратӣ, мо метавонем YOLOv5-ро барои шинохтан ва пайгирии объектҳо дар ҷараёнҳои видеоии мустақим истифода барем. Ғайр аз он, YOLOv5 метавонад дороии бузург дар робототехника бошад. Он метавонад ба роботҳо дар муайян ва дарк кардани атрофашон кӯмак кунад. Ин барои фаъолиятҳо ба монанди паймоиш ва манипуляция хеле муҳим аст.
YOLOv5 инчунин метавонад дар ҳама гуна соҳаҳое истифода шавад, ки кашфи ашёро талаб мекунад, ба монанди чакана, варзиш, тиббӣ ва амният.
хулоса
Ниҳоят, YOLOv5 версияи навтарин ва мураккаби оилаи YOLO мебошад ошкор кардани объект моделҳо
. Инчунин, гуфтан дуруст аст, ки он модели дақиқтарини ошкоркунии объект мебошад. Бо шарофати дақиқӣ ва суръати баланд, шумо метавонед онро барои лоиҳаҳои муайянкунии объекти худ бехатар интихоб кунед.
Рески Агус
Ман як маҷаллаи аввалинро дар бораи кашфи мошин бо yolov5 месозам ва ин веб ба ман дар ҷустуҷӯи маълумот дар бораи он кӯмак мекунад.
Ман ба AI хеле таваҷҷӯҳ дорам.
Агар шумо метавонед ман дар бораи AI саволҳои зиёде дошта бошед, шояд шумо ба ман кӯмак карда метавонед
Сипос