Тэхналогія выяўлення аб'ектаў камп'ютэрнага зроку вельмі важная для шматлікіх прыкладанняў. Мы выкарыстоўваем яго ў робататэхніцы, абсталяванні назірання, беспілотных аўтамабілях і ў многіх іншых галінах. Такім чынам, мы можам знаходзіць і распазнаваць пэўныя рэчы на фота ці відэа.
Адзін з самых вядомых алгарытмы ідэнтыфікацыі аб'ектаў - гэта YOLO Набор мадэляў (You Only Look Once). Гэтыя мадэлі створаны Кампанія Ultralytics LLC.
Апошняя версія гэтай серыі - 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: вы павінны ўсталяваць CUDA, калі вы збіраецеся запускаць YOLOv5 на графічным працэсары.
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)
Візуалізацыя
У выпадку візуалізацыі мы зноў можам выкарыстоўваць такую бібліятэку, як 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, і гэты вэб-сайт дапамагае мне шукаць інфармацыю пра гэта.
Я вельмі зацікаўлены ў ІІ.
калі вы можаце, у мяне шмат пытанняў пра штучны інтэлект, магчыма, вы можаце мне дапамагчы
Дзякуй