კომპიუტერული ხედვის ობიექტების გამოვლენის ტექნოლოგია აუცილებელია მრავალი აპლიკაციისთვის. ჩვენ ვიყენებთ მას რობოტიკაში, სათვალთვალო მოწყობილობებში, თვითმართველ მანქანებში და ბევრ სხვა სფეროში. აქედან გამომდინარე, ჩვენ შეგვიძლია ვიპოვოთ და ამოვიცნოთ გარკვეული რამ სურათზე ან ვიდეოში.
ერთ-ერთი ყველაზე ცნობილი ობიექტის იდენტიფიკაციის ალგორითმები არის YOLO (You Only Look Once) მოდელების ნაკრები. ეს მოდელები შექმნილია შპს ულტრალიტიკსი.
ამ სერიის უახლესი ვერსია არის YOLOv5. და, ეს არის ყველაზე სწრაფი და ზუსტი ობიექტის იდენტიფიკაციის მოდელი ბაზარზე. მოდელის შესაძლებლობა განზოგადოს ახალ მონაცემებზე მნიშვნელოვნად გაუმჯობესდა. ასევე, ის შეიცავს ბევრ მახასიათებელს, რაც მას უკეთესად აქცევს, ვიდრე ადრე გამეორებები.
YOLOv5 შესანიშნავია რეალურ დროში აპლიკაციებისთვის, რადგან მას შეუძლია სურათების დამუშავება 1000 კადრი წამში სიჩქარით ერთ GPU-ზე.
ამ სტატიაში ჩვენ გავაცნობთ YOLOv5-ს და განვიხილავთ მისი გამოყენების სფეროების დეტალებს.
YOLO-ს მოგზაურობა: YOLO-დან YOLOv5-მდე
ჯოზეფ რედმონი და სხვ. თავდაპირველად წარმოადგინა YOLO, ობიექტების იდენტიფიკაციის მოდელების ნაკრები, 2016 წელს. საწყის YOLO მოდელს შეეძლო ობიექტების იდენტიფიცირება რეალურ დროში. თუმცა, მას ჰქონდა დაბალი სიზუსტე მაშინდელ სხვა მოდელებთან შედარებით.
წლების განმავლობაში გამოვიდა YOLO-ს რამდენიმე განახლებული ვერსია. და ბოლოს, Ultralytics LLC-მა შექმნა YOLO სერიის უახლესი გამოცემა, YOLOv5.
YOLOv5 არის ყველაზე ზუსტი და სწრაფი ობიექტის იდენტიფიკაციის მოდელი ამჟამად ხელმისაწვდომი.
მნიშვნელოვანი თვისებები
წამყვანის ყუთები
YOLOv5 პროგნოზირებს გამოსახულების ობიექტების შემოსაზღვრულ უჯრებს წამყვანი ყუთების გამოყენებით. მოდელი პროგნოზირებს მრავალი წინასწარ განსაზღვრული ყუთიდან, სხვადასხვა ასპექტის თანაფარდობით, საუკეთესოდ ემთხვევა სურათზე გამოსახულ ნივთს წამყვანი ყუთების გამოყენებით. ეს არის წინასწარ განსაზღვრული ყუთები.
და ისინი საშუალებას აძლევს YOLOv5-ს ამოიცნოს და მოძებნოს ნივთები სურათზე სიზუსტით.
მოზაიკის მონაცემების გაზრდა
ტრენინგის დროს, YOLOv5 იყენებს მეთოდს, რომელიც ცნობილია როგორც მოზაიკა მონაცემთა გაძლიერება. ახალი სასწავლო სურათების შესაქმნელად, ჩვენი მოდელი შემთხვევით აერთიანებს რამდენიმე ფოტოს. შედეგად, მოდელი ხდება უფრო ელასტიური და საიმედო. აქედან გამომდინარე, ხდება ახალ მონაცემებზე განზოგადება და ჭარბი მორგების შემცირება.
უნიკალური სასწავლო მილსადენი
უნიკალური სასწავლო მილსადენი, რომელიც აერთიანებს ზედამხედველობას და ზედამხედველობის გარეშე სწავლა გამოიყენება.
ამრიგად, მოდელი სწავლობს უფრო მცირე ნიმუშიდან და ეფექტურად იყენებს არალეიბლირებულ შეყვანას. ეს აძლიერებს მოდელის მუშაობას და ზრდის მის შესაძლებლობებს განზოგადოს ახალ შეყვანებზე.
ფენები, რომლებიც არის ნარჩენი და არანარჩენი
YOLOv5-ის არქიტექტურა აერთიანებს ნარჩენ და არანარჩენ ფენებს. გრადიენტების ფენებში გადინების ნებადართულით, ნარჩენი ფენები ეხმარება მოდელს რთული მახასიათებლების შესწავლაში. ასევე, არანარჩენი ფენები მოდელს აძლევს შეყვანის სურათის უფრო სრულყოფილ აღქმას. შედეგად, YOLOv5-ს შეუძლია უფრო ზუსტად და ეფექტურად იმუშაოს.
როგორ გამოვიყენოთ YOLOv5
მონტაჟი
YOLOv5 ინსტალაცია შეიძლება სწრაფად დასრულდეს პიპის გამოყენებით. პიპი არის პითონის პაკეტის მენეჯერი. YOLOv5-ის დაყენების ზოგადი პროცედურები შემდეგია:
1- დააინსტალირეთ PyTorch: რადგან YOLOv5 ეფუძნება PyTorch ჩარჩოს, ჯერ უნდა დააინსტალიროთ PyTorch.
pip install torch torchvision
2. დააინსტალირეთ CUDA: თქვენ უნდა დააინსტალიროთ CUDA, თუ აპირებთ YOLOv5-ის გაშვებას GPU-ზე.
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.NMS Boxes (გამოვლენები, ნდობა, 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.
თუ შეგიძლიათ, ბევრი კითხვა მაქვს ხელოვნური ინტელექტის შესახებ, იქნებ დამეხმაროთ
გმადლობთ