Компьютердик көрүнүштүн объектти аныктоо технологиясы көптөгөн колдонмолор үчүн абдан маанилүү. Биз аны робототехникада, байкоочу жабдууларда, өзүн өзү башкарган унааларда жана башка көптөгөн тармактарда колдонобуз. Демек, биз сүрөттө же видеодо кандайдыр бир нерселерди таап, тааныйбыз.
Эң белгилүүлөрдүн бири объектти аныктоо алгоритмдери YOLO болуп саналат (Бир гана жолу карайсыз) моделдердин топтому. Бул моделдер тарабынан түзүлгөн Ultralytics ЖЧКсы.
Бул сериянын эң акыркы версиясы YOLOv5. Жана бул рынокто объектти аныктоонун эң тез жана эң так модели. Моделдин жаңы маалыматтарга жалпылоо мүмкүнчүлүгү абдан жакшырды. Ошондой эле, ал мурунку итерацияларга караганда жакшыраак аткарган көптөгөн функцияларды камтыйт.
YOLOv5 реалдуу убакыт колдонмолору үчүн эң сонун, анткени ал сүрөттөрдү бир GPUде секундасына 1000 кадрга чейин иштете алат.
Бул макалада биз YOLOv5 менен тааныштырабыз жана аны колдонуу чөйрөлөрүнүн чоо-жайын карап чыгабыз.
YOLOнун саякаты: YOLOдан YOLOv5ке чейин
Джозеф Редмон жана башкалар. алгач YOLO, объектти идентификациялоо моделдеринин топтомун 2016-жылы киргизген. Баштапкы YOLO модели объекттерди реалдуу убакытта аныктай алган. Бирок, ал ошол кездеги башка моделдерге салыштырмалуу төмөн тактыкка ээ болгон.
YOLOнун бир нече өркүндөтүлгөн версиялары жыл бою чыгарылган. Акыр-аягы, Ultralytics LLC YOLO сериясынын эң жаңы чыгарылышын, YOLOv5 түздү.
YOLOv5 учурда жеткиликтүү объектти аныктоонун эң так жана эң ылдам модели.
Маанилүү өзгөчөлүктөр
Anchor Boxes
YOLOv5 анкердик кутучаларды колдонуу менен сүрөттөлүштөгү объекттер үчүн чектеш кутуларды болжолдойт. Модель анкердик кутуларды колдонуп, ар кандай пропорциядагы алдын ала аныкталган кутучалардын кайсынысы сүрөттөгү нерсеге эң жакшы дал келерин алдын ала айтат. Бул алдын ала аныкталган кутулар.
Жана алар YOLOv5ке сүрөттөгү нерселерди так таанууга жана табууга мүмкүнчүлүк берет.
Мозаика маалыматтарын көбөйтүү
Машыгуу учурунда YOLOv5 мозаика деп аталган ыкманы колдонот маалыматтарды көбөйтүү. Жаңы машыгуу сүрөттөрүн иштеп чыгуу үчүн, биздин моделибиз бир нече сүрөттөрдүн тактарын туш келди бириктирет. Натыйжада, модель көбүрөөк ийкемдүү жана ишенимдүү болуп калат. Демек, ал жаңы маалыматтарды жалпылап, ашыкча тууралоону азайтат.
Уникалдуу машыгуу түтүгү
Көзөмөлдөнгөн жана аралашкан уникалдуу машыгуу түтүгү көзөмөлсүз окутуу колдонулат.
Ошентип, модель кичине үлгүдөн үйрөнөт жана белгиленбеген киргизүүнү натыйжалуу колдонот. Бул моделдин иштешин жогорулатат жана анын жаңы киргизүүгө жалпылоо мүмкүнчүлүгүн жогорулатат.
Калдык жана калдыксыз катмарлар
YOLOv5 архитектурасы калдык жана калдык эмес катмарларды бириктирет. Градиенттердин катмарлар боюнча агып өтүшүнө жол берүү менен, калдык катмарлар моделге татаал функцияларды үйрөнүүгө жардам берет. Ошондой эле, калдык эмес катмарлар моделге киргизилген сүрөттү кеңири түшүнүү менен камсыз кылат. Натыйжада, YOLOv5 так жана натыйжалуу иштей алат.
YOLOv5 кантип колдонсо болот
орнотуу
YOLOv5 орнотуу пипти колдонуу менен тез бүтүшү мүмкүн. 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ти аткаруу үчүн OpenCV китепканасынын cv2.dnn.NMSBoxes() ыкмасын колдонсок болот.
Бул жерде 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 менен унааны аныктоо жөнүндө биринчи журналды түзөм жана бул веб мага бул тууралуу маалыматты издөөгө жардам берет.
Мен AI жөнүндө абдан кызыгам.
Эгер сизде AI жөнүндө көп суроолорум бар, балким, мага жардам бере аласыз
Рахмат сага