Kompüter görmə obyektinin aşkarlanması texnologiyası çoxsaylı tətbiqlər üçün vacibdir. Biz ondan robototexnika, müşahidə avadanlığı, özünü idarə edən avtomobillər və bir çox başqa sahələrdə istifadə edirik. Beləliklə, bir şəkil və ya videoda müəyyən şeyləri tapıb tanıyırıq.
Ən tanınmışlarından biri obyekt identifikasiyası alqoritmləri YOLO-dur (Yalnız bir dəfə baxırsınız) modellər dəsti. Bu modellər tərəfindən yaradılmışdır Ultralytics MMC.
Bu seriyanın ən son versiyası YOLOv5-dir. Və bu, bazarda ən sürətli və ən dəqiq obyekt identifikasiyası modelidir. Modelin yeni məlumatlara ümumiləşdirmə qabiliyyəti xeyli təkmilləşdirilmişdir. Bundan əlavə, əvvəlki iterasiyalardan daha yaxşı işləməsini təmin edən bir çox xüsusiyyətləri ehtiva edir.
YOLOv5 real vaxt proqramları üçün əladır, çünki o, şəkilləri bir GPU-da saniyədə 1000 kadr sürətinə qədər emal edə bilir.
Bu yazıda biz YOLOv5-i təqdim edəcəyik və onun tətbiq sahələrinin təfərrüatlarını nəzərdən keçirəcəyik.
YOLO-nun səyahəti: YOLO-dan YOLOv5-ə
Cozef Redmon və başqaları. ilk olaraq 2016-cı ildə obyekt identifikasiya modelləri dəsti olan YOLO təqdim etdi. İlkin YOLO modeli obyektləri real vaxtda müəyyən edə bilirdi. Lakin o vaxtkı digər modellərlə müqayisədə onun dəqiqliyi aşağı idi.
İllər ərzində YOLO-nun bir neçə təkmilləşdirilmiş versiyası buraxıldı. Və nəhayət, Ultralytics MMC YOLO seriyasının ən yeni nəşrini YOLOv5 yaratdı.
YOLOv5 hazırda mövcud olan ən dəqiq və ən sürətli obyekt identifikasiyası modelidir.
Mühüm xüsusiyyətlər
Çapa qutuları
YOLOv5 lövbər qutularından istifadə edərək təsvirdəki obyektlər üçün məhdudlaşdırıcı qutuları proqnozlaşdırır. Model müxtəlif aspekt nisbətləri ilə əvvəlcədən müəyyən edilmiş bir çox qutudan hansının lövbər qutularından istifadə edərək şəkildəki elementə ən yaxşı uyğun gəldiyini proqnozlaşdırır. Bunlar əvvəlcədən müəyyən edilmiş qutulardır.
Və onlar YOLOv5-ə şəkildəki əşyaları dəqiqliklə tanımağa və tapmağa imkan verir.
Mozaika məlumatlarının artırılması
Təlim zamanı YOLOv5 mozaika kimi tanınan üsuldan istifadə edir məlumatların artırılması. Yeni təlim şəkillərini hazırlamaq üçün modelimiz təsadüfi olaraq bir neçə fotoşəkilin yamaqlarını birləşdirir. Nəticədə model daha möhkəm və etibarlı olur. Beləliklə, o, yeni məlumatlara ümumiləşdirməli və həddindən artıq uyğunluğu azaldır.
Unikal Təlim Boru Kəməri
Nəzarət edilən və birləşdirən unikal təlim kəməri nəzarətsiz öyrənmə istifadə olunur.
Beləliklə, model daha kiçik bir nümunədən öyrənir və etiketlənməmiş girişdən səmərəli istifadə edir. Bu, modelin performansını artırır və onun yeni girişlərə ümumiləşdirmə qabiliyyətini artırır.
Qalıq və qalıq olmayan təbəqələr
YOLOv5-in arxitekturası qalıq və qalıq olmayan təbəqələri birləşdirir. Qradientlərin təbəqələr arasında axmasına icazə verməklə, qalıq təbəqələr modelə çətin xüsusiyyətləri öyrənməyə kömək edir. Həmçinin, qalıq olmayan təbəqələr modelə giriş şəklini daha əhatəli qavrayışla təmin edir. Nəticədə, YOLOv5 daha dəqiq və effektiv fəaliyyət göstərə bilər.
YOLOv5-dən Necə İstifadə Edilir
quraşdırma
YOLOv5 quraşdırılması pip istifadə edərək tez tamamlana bilər. Pip Python paket meneceridir. YOLOv5-in quraşdırılması üçün ümumi prosedurlar aşağıdakılardır:
1- PyTorch-u quraşdırın: YOLOv5 PyTorch çərçivəsinə əsaslandığı üçün əvvəlcə PyTorch-u quraşdırmalısınız.
pip install torch torchvision
2. CUDA quraşdırın: GPU-da YOLOv5-i işə salmaq niyyətindəsinizsə, CUDA-nı quraşdırmalısınız.
3. YOLOv5-i quraşdırın: PyTorch və CUDA-nı qurduqdan sonra YOLOv5-i yükləmək üçün aşağıdakı əmrdən istifadə edin.
pip install yolov5
4-YOLOv5-in quraşdırılmasından sonra əvvəlcədən hazırlanmış çəkiləri yükləməlisiniz. Əvvəlcədən hazırlanmış çəkilər Ultralytics GitHub repo-da mövcuddur.
Aşağı sürüşdürərək veb saytın "çəkilər" hissəsinə keçin. Burada tapa biləcəyiniz siyahıdan əvvəlcədən hazırlanmış çəkiləri yükləyə bilərsiniz.
5. Artıq öyrədilmiş və istifadə vəziyyətinizə ən uyğun olan çəkiləri seçin. Siyahını daraltmaq üçün məlumat dəsti və ya çəkilərin öyrənilmiş xüsusi YOLOv5 versiyası istifadə edilə bilər.
6- Uyğun çəkiləri seçdikdən sonra yanındakı “YÜKLƏ” düyməsini sıxaraq çəki seçin. Çəkilər kimi yükləmək mümkün olacaq. pt faylları.
7- Yüklənmiş çəkiləri qovluğa köçürün. Bu, aşkarlama skriptinizin işləyəcəyi yerdir.
8- Bu nöqtədə, aşkarlama skriptinizdə əvvəlcədən öyrədilmiş çəkilərdən istifadə edərək fotoşəkillərinizdə və ya videolarınızda obyekt aşkarlamasını işlədə bilərsiniz.
Məlumatları hazırlayın
Məlumatı YOLOv5 ilə istifadəyə hazırlamaq üçün aşağıdakı hərəkətləri etməlisiniz:
1. Məlumatları toplayın: İlk addım sizə lazım olan şəkil və ya video məlumatlarını toplamaqdır obyekt aşkarlanması. Aşkar etmək istədiyiniz şeylər foto və ya videolarda olmalıdır.
2- Verilənləri formatlayın: Əgər onlardan istifadə edirsinizsə, sadəcə fotoşəkilləri skriptinizə idxal edə bilərsiniz. Əgər birindən istifadə etməyi planlaşdırırsınızsa, videonu bir sıra fotoşəkillərə çevirməlisiniz. Siz OpenCV kimi bir kitabxanadan istifadə edərək filmdən kadrları çıxara bilərsiniz.
import cv2
img = cv2.imread('path/to/image')
OpenCV kitabxanası ilə videonu bir sıra şəkillərə çevirmək üçün aşağıdakı əmrdən istifadə edə bilərsiniz:
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. Verilənləri etiketləyin: Əgər məlumat dəstinizdən istifadə edirsinizsə, məlumatları etiketləməlisiniz. Şəklin hər bir çərçivəsində müəyyən etmək istədiyiniz elementlərin ətrafında məhdudlaşdırıcı qutular çəkmək. Bu, məlumatların etiketlənməsi prosesidir. Bu əməliyyatda sizə kömək etmək üçün LabelImg və RectLabel daxil olmaqla bir neçə alətdən istifadə edə bilərsiniz.
4- Verilənləri etiketlədikdən sonra onları təlim və sınaq dəstlərinə ayırmalısınız. Bu, modelinizin nə qədər yaxşı performans göstərdiyini qiymətləndirmək üçün çox vacibdir.
5. Nəhayət, təlim və ya sınaqdan əvvəl məlumatları əvvəlcədən emal etməli ola bilərsiniz. Bu, şəkillərin və ya videoların miqyasının dəyişdirilməsini, piksel dəyərlərinin standartlaşdırılmasını və ya məlumatların artırılması üsullarından istifadə etməyi tələb edə bilər.
Bu addımları tamamladıqdan sonra məlumatlarınız hazırdır.
Aşkarlama skriptini işə salın
Budur, şəkli təhlil edən və obyektləri tapan aşkarlama skriptinin təsviri.
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-emal
Qeyri-maksimum bastırma obyektin aşkarlanmasında (NMS) istifadə edilən ən çox yayılmış post-processing üsullarından biridir. Eyni obyekt üçün üst-üstə düşən məhdudlaşdırıcı qutuları aradan qaldırmaq üçün NMS-dən istifadə edirik. Aşkar edilmiş NMS-i yerinə yetirmək üçün biz OpenCV kitabxanasının cv2.dnn.NMSBoxes() metodundan istifadə edə bilərik.
NMS-dən istifadə edərək aşkarlamaların sonrakı emal edilməsinə dair bir nümunə.
import cv2
# Perform Non-Maxima Suppression (NMS)
indekslər = cv2.dnn.NMSBoxes(aşkarlamalar, güvənlər, conf_thres, nms_thres)
Görselleştirme
Vizuallaşdırma vəziyyətində yenidən OpenCV kimi bir kitabxanadan istifadə edə bilərik. Mənbə şəkilində və ya videoda aşkar edilmiş obyektlərin ətrafında məhdudlaşdırıcı qutuları göstərə bilərik. Şəklin məhdudlaşdırıcı qutularını çəkmək üçün cv2.rectangle() metodundan istifadə edin. Orijinal təsvirdə aşkarlamalara necə baxmaq olar:
idxal cv2
# Draw the bounding boxes on the image
indekslərdə I üçün:
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
Applications
YOLOv5 güclü obyekt identifikasiyası modelidir. Beləliklə, biz ondan bir çox real dünya ssenarilərində istifadə edə bilərik. Ən çox görülən istifadələrdən biri özünü idarə edən avtomobillərdədir. YOLOv5 real vaxt rejimində avtomobillər və svetoforlar kimi əşyaları müəyyən edə bilər.
Nəzarət sistemlərində biz canlı video axınlarında obyektləri tanımaq və izləmək üçün YOLOv5-dən istifadə edə bilərik. Bundan əlavə, YOLOv5 robototexnika sahəsində böyük bir aktiv ola bilər. O, robotlara ətraflarını aşkar etməyə və anlamağa kömək edə bilər. Bu naviqasiya və manipulyasiya kimi fəaliyyətlər üçün son dərəcə vacibdir.
YOLOv5 həmçinin pərakəndə satış, idman, tibb və təhlükəsizlik kimi obyektlərin aşkar edilməsini tələb edən istənilən sənayedə istifadə oluna bilər.
Nəticə
Nəhayət, YOLOv5 YOLO ailəsinin ən yeni və təkmil versiyasıdır obyekt aşkarlanması modelləri
. Bundan əlavə, bunun mövcud olan ən dəqiq obyekt aşkarlama modeli olduğunu söyləmək ədalətlidir. Yüksək dəqiqliyi və sürəti sayəsində onu obyekt aşkarlama layihələriniz üçün etibarlı şəkildə seçə bilərsiniz.
Resky Agus
Mən yolov5 ilə nəqliyyat vasitələrinin aşkarlanması haqqında ilk jurnal edirəm və bu internet mənə bu barədə məlumat axtarmağa kömək edir.
AI ilə çox maraqlanıram.
Əgər AI haqqında bir çox sualım ola bilərsə, mənə kömək edə bilərsiniz
Çox sağ ol