Kompyuter ko'rish ob'ektlarini aniqlash texnologiyasi ko'plab ilovalar uchun juda muhimdir. Biz undan robototexnika, kuzatuv uskunalari, o'zi boshqariladigan avtomobillar va boshqa ko'plab sohalarda foydalanamiz. Shunday qilib, biz rasm yoki videodagi ba'zi narsalarni topamiz va tan olamiz.
Eng mashhurlaridan biri ob'ektni identifikatsiya qilish algoritmlari YOLO hisoblanadi (Siz faqat bir marta ko'rasiz) modellar to'plami. Ushbu modellar tomonidan yaratilgan Ultralytics MChJ.
Ushbu seriyaning eng so'nggi versiyasi YOLOv5. Va bu bozorda ob'ektni identifikatsiyalashning eng tezkor va eng aniq modelidir. Modelning yangi ma'lumotlarga umumlashtirish qobiliyati sezilarli darajada yaxshilandi. Bundan tashqari, u oldingi iteratsiyalarga qaraganda yaxshiroq ishlashini ta'minlaydigan ko'plab xususiyatlarni o'z ichiga oladi.
YOLOv5 real vaqt rejimidagi ilovalar uchun juda yaxshi, chunki u bitta grafik protsessorda sekundiga 1000 kadrgacha suratlarni qayta ishlay oladi.
Ushbu maqolada biz YOLOv5 bilan tanishamiz va uning qo‘llanish sohalari tafsilotlarini ko‘rib chiqamiz.
YOLO sayohati: YOLOdan YOLOv5ga
Jozef Redmon va boshqalar. dastlab 2016 yilda ob'ektni identifikatsiyalash modellari to'plami YOLOni taqdim etdi. Dastlabki YOLO modeli real vaqtda ob'ektlarni aniqlay oladi. Biroq, o'sha paytdagi boshqa modellarga nisbatan past aniqlikka ega edi.
Yillar davomida YOLO ning bir necha takomillashtirilgan versiyalari chiqarildi. Va nihoyat, Ultralytics MChJ YOLO seriyasining eng yangi nashri YOLOv5 ni yaratdi.
YOLOv5 hozirda mavjud boʻlgan obʼyektlarni identifikatsiyalashning eng aniq va tezkor modelidir.
Muhim Xususiyatlar
Ankraj qutilari
YOLOv5 langar qutilari yordamida tasvirdagi ob'ektlar uchun chegara qutilarini bashorat qiladi. Model turli tomonlar nisbatiga ega oldindan belgilangan ko'plab qutilarning qaysi biri langar qutilari yordamida rasmdagi elementga eng mos kelishini bashorat qiladi. Bular oldindan belgilangan qutilar.
Va ular YOLOv5-ga rasmdagi narsalarni aniqlik bilan tanib olish va topish imkonini beradi.
Mozaik ma'lumotlarini ko'paytirish
Treningda YOLOv5 mozaika deb nomlanuvchi usuldan foydalanadi ma'lumotlarni ko'paytirish. Yangi o'quv rasmlarini ishlab chiqish uchun bizning modelimiz tasodifiy ravishda bir nechta fotosuratlarning yamoqlarini birlashtiradi. Natijada, model yanada mustahkam va ishonchli bo'ladi. Shunday qilib, u yangi ma'lumotlarga umumlashtiriladi va ortiqcha moslamalarni kamaytiradi.
Noyob ta'lim quvuri
Nazorat qilinadigan va birlashtirgan noyob o'quv quvuri nazoratsiz o'rganish ishlatilgan.
Shunday qilib, model kichikroq namunadan o'rganadi va yorliqsiz kirishdan samarali foydalanadi. Bu modelning ishlashini oshiradi va uning yangi ma'lumotlarga umumlashtirish qobiliyatini oshiradi.
Qoldiq va qoldiq bo'lmagan qatlamlar
YOLOv5 arxitekturasi qoldiq va qoldiq bo'lmagan qatlamlarni birlashtiradi. Qatlamlar bo'ylab gradientlarning oqishiga ruxsat berish orqali qoldiq qatlamlar modelga qiyin xususiyatlarni o'rganishda yordam beradi. Bundan tashqari, qoldiq bo'lmagan qatlamlar modelga kirish rasmini yanada to'liqroq tushunishni ta'minlaydi. Natijada, YOLOv5 yanada aniq va samarali ishlashi mumkin.
YOLOv5 dan qanday foydalanish kerak
o'rnatish
YOLOv5 o'rnatilishi pip yordamida tezda bajarilishi mumkin. Pip - bu Python paket menejeri. YOLOv5 ni o'rnatishning umumiy tartiblari quyidagilardan iborat:
1- PyTorch-ni o'rnating: YOLOv5 PyTorch ramkasiga asoslanganligi sababli, avval PyTorch-ni o'rnatishingiz kerak.
pip install torch torchvision
2. CUDA-ni o'rnating: Agar siz GPU-da YOLOv5-ni ishga tushirmoqchi bo'lsangiz, CUDA-ni o'rnatishingiz kerak.
3. YOLOv5 ni o'rnating: PyTorch va CUDA ni o'rnatganingizdan so'ng YOLOv5 ni yuklab olish uchun quyidagi buyruqdan foydalaning.
pip install yolov5
4-YOLOv5-ni o'rnatgandan so'ng, siz oldindan o'rgatilgan og'irliklarni yuklab olishingiz kerak. Oldindan o'qitilgan vaznlar Ultralytics GitHub repo-da mavjud.
Pastga siljitish orqali veb-saytning "vaznlar" qismiga o'ting. Siz bu yerda topishingiz mumkin bo'lgan ro'yxatdan oldindan o'rgatilgan vaznlarni yuklab olishingiz mumkin.
5. O'qitilgan va sizning foydalanish holatlaringizga eng mos keladigan og'irliklarni tanlang. Ro'yxatni qisqartirish uchun ma'lumotlar to'plami yoki og'irliklar o'rganilgan YOLOv5 versiyasidan foydalanish mumkin.
6- To'g'ri og'irliklarni tanlagandan so'ng, yonidagi "Yuklab olish" tugmasini bosish orqali vaznni tanlang. Og'irliklar sifatida yuklab olish mumkin bo'ladi. pt fayllari.
7- Yuklab olingan og'irliklarni katalogga o'tkazing. Bu yerda aniqlash skriptingiz ishlaydi.
8- Ushbu nuqtada siz aniqlash skriptidagi oldindan o'rgatilgan og'irliklardan foydalanib, fotosuratlar yoki videolaringizda ob'ektni aniqlashni ishga tushirishingiz mumkin.
Ma'lumotlarni tayyorlang
Maʼlumotlarni YOLOv5 bilan ishlatishga tayyorlash uchun quyidagi amallarni bajarishingiz kerak:
1. Ma'lumotlarni to'plang: Birinchi qadam sizga kerak bo'ladigan rasm yoki video ma'lumotlarini yig'ishdir ob'ektni aniqlash. Siz aniqlamoqchi bo'lgan narsalar fotosuratlar yoki videolarda mavjud bo'lishi kerak.
2- Ma'lumotni formatlash: Agar siz ulardan foydalanayotgan bo'lsangiz, shunchaki skriptingizga rasmlarni import qilishingiz mumkin. Agar siz foydalanmoqchi bo'lsangiz, videoni bir qator fotosuratlarga aylantirishingiz kerak. OpenCV kabi kutubxonadan foydalanib, filmdan kadrlarni ajratib olishingiz mumkin.
import cv2
img = cv2.imread('path/to/image')
OpenCV kutubxonasi yordamida videoni bir qator rasmlarga aylantirish uchun quyidagi buyruqdan foydalanishingiz mumkin:
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. Ma'lumotlarni belgilang: Agar siz ma'lumotlar to'plamidan foydalanayotgan bo'lsangiz, ma'lumotlarni belgilashingiz kerak. Tasvirning har bir ramkasida aniqlamoqchi bo'lgan narsalar atrofida chegaralovchi qutilarni chizish. Bu ma'lumotlarni etiketlash jarayoni. Ushbu operatsiyani bajarishda sizga yordam berish uchun bir nechta vositalardan foydalanishingiz mumkin, jumladan LabelImg va RectLabel.
4- Belgilangandan so'ng, ma'lumotlarni o'quv va sinov to'plamlariga bo'lishingiz kerak. Bu sizning modelingiz qanchalik yaxshi ishlashini baholash uchun juda muhimdir.
5. Va nihoyat, trening yoki sinovdan oldin ma'lumotlarni qayta ishlashingiz kerak bo'lishi mumkin. Bu rasmlar yoki videolarni masshtablash, piksel qiymatlarini standartlashtirish yoki ma'lumotlarni ko'paytirish usullaridan foydalanishni talab qilishi mumkin.
Ushbu amallarni bajarganingizdan so'ng, ma'lumotlaringiz tayyor.
Aniqlash skriptini ishga tushiring
Mana, rasmni tahlil qiladigan va ob'ektlarni topadigan aniqlash skriptining illyustratsiyasi.
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))
Post-qayta ishlash
Maksimal bo'lmagan bostirish ob'ektni aniqlashda (NMS) qo'llaniladigan eng tez-tez qayta ishlash usullaridan biridir. Biz NMS-dan bir xil ob'ekt uchun bir-birining ustiga chiqadigan chegara qutilarini yo'q qilish uchun foydalanamiz. Aniqlanishlarda NMSni bajarish uchun OpenCV kutubxonasining cv2.dnn.NMSBoxes() usulidan foydalanishimiz mumkin.
Bu erda NMS yordamida aniqlashni keyingi qayta ishlashga misol.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekslar = cv2.dnn.NMSBoxes (aniqlashlar, ishonchlar, conf_thres, nms_thres)
Vizualizatsiya
Vizualizatsiya holatida biz yana OpenCV kabi kutubxonadan foydalanishimiz mumkin. Biz manba rasm yoki videoda topilgan ob'ektlar atrofida chegaralovchi qutilarni ko'rsatishimiz mumkin. Tasvirning chegaralovchi maydonlarini chizish uchun cv2.rectangle() usulidan foydalaning. Asl rasmdagi aniqlanishlarni qanday ko'rish mumkin:
import cv2
# Draw the bounding boxes on the image
indekslarda I uchun:
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
ilovalar
YOLOv5 ob'ektni identifikatsiyalashning kuchli modelidir. Shunday qilib, biz undan ko'plab real stsenariylarda foydalanishimiz mumkin. Eng ko'zga ko'ringan foydalanishlardan biri bu o'z-o'zidan boshqariladigan avtomobillarda. YOLOv5 real vaqt rejimida avtomobillar va svetoforlar kabi narsalarni aniqlay oladi.
Kuzatuv tizimlarida biz YOLOv5 dan jonli video oqimlaridagi obyektlarni tanib olish va kuzatish uchun foydalanishimiz mumkin. Bundan tashqari, YOLOv5 robototexnika sohasida katta boylik bo'lishi mumkin. Bu robotlarga atrofni aniqlash va tushunishga yordam beradi. Bu navigatsiya va manipulyatsiya kabi harakatlar uchun juda muhimdir.
YOLOv5 chakana savdo, sport, tibbiyot va xavfsizlik kabi ob'ektlarni aniqlashni talab qiladigan har qanday sohada ham qo'llanilishi mumkin.
Xulosa
Nihoyat, YOLOv5 YOLO oilasining eng yangi va murakkab versiyasidir ob'ektni aniqlash Modellari
. Bundan tashqari, bu ob'ektni aniqlashning eng aniq modeli ekanligini aytish adolatli. Uning yuqori aniqligi va tezligi tufayli siz ob'ektni aniqlash loyihalaringiz uchun uni xavfsiz tanlashingiz mumkin.
Resky Agus
Men yolov5 bilan transport vositalarini aniqlash haqida birinchi jurnal tuzaman va bu veb menga bu haqda ma'lumot qidirishda yordam beradi.
Men AIga juda qiziqaman.
Agar sizda AI haqida juda ko'p savollarim bo'lsa, ehtimol siz menga yordam bera olasiz
Rahmat