Технологијата за откривање објекти на компјутерската визија е од суштинско значење за бројни апликации. Го користиме во роботиката, опремата за надзор, самоуправувачките автомобили и многу други области. Оттука, можеме да пронајдеме и препознаваме одредени работи во слика или видео.
Еден од најпознатите алгоритми за идентификација на објектот е YOLO (You Only Look Once) сет на модели. Овие модели се создадени од Ултралитикс ДОО.
Најновата верзија на оваа серија е YOLOv5. И, тоа е најбрзиот и најпрецизен модел за идентификација на објекти на пазарот. Капацитетот на моделот да се генерализира на нови податоци е значително подобрен. Исто така, содржи многу карактеристики што го прават да работи подобро од претходните повторувања.
YOLOv5 е одличен за апликации во реално време бидејќи може да обработува слики со брзина до 1000 фрејмови во секунда на еден графички процесор.
Во оваа статија, ќе го претставиме YOLOv5 и ќе ги разгледаме деталите за неговите области на примена.
Патување на YOLO: Од YOLO до YOLOv5
Џозеф Редмон и сор. првично го претстави YOLO, збир на модели за идентификација на објекти, во 2016 година. Почетниот YOLO модел можеше да идентификува објекти во реално време. Сепак, имаше мала прецизност во споредба со другите модели во тоа време.
Во текот на годините беа објавени неколку надградени верзии на YOLO. И конечно, Ultralytics LLC го создаде најновото издание на серијата YOLO, YOLOv5.
YOLOv5 е најточниот и најбрзиот модел за идентификација на објекти во моментов достапен.
Важни карактеристики
Сидро кутии
YOLOv5 предвидува ограничувачки кутии за објекти во слика користејќи кутии за прицврстување. Моделот предвидува која од многуте претходно дефинирани полиња со различни соодноси на страни најдобро се совпаѓа со ставката на сликата користејќи кутии за прицврстување. Ова се претходно дефинирани полиња.
И, тие му овозможуваат на YOLOv5 да препознава и наоѓа предмети на сликата со точност.
Зголемување на податоци од мозаик
Кога тренира, YOLOv5 користи метод познат како мозаик зголемување на податоците. За да развиеме свежи слики за обука, нашиот модел по случаен избор комбинира закрпи од неколку фотографии. Како резултат на тоа, моделот станува поотпорен и посигурен. Оттука, треба да се генерализира на нови податоци и да се намали преоптоварувањето.
Уникатен цевковод за обука
Уникатен цевковод за обука што ги меша надгледуваните и учење без надзор се користи.
Така, моделот учи од помал примерок и ефикасно користи неозначен влез. Ова ги зголемува перформансите на моделот и го подобрува неговиот капацитет да се генерализира на нови влезови.
Слоеви кои се резидуални и нерезидуални
Архитектурата на YOLOv5 комбинира слоеви кои се преостанати и не-резидуални. Со дозволување на градиентите да течат низ слоевите, преостанатите слоеви му помагаат на моделот да научи тешки карактеристики. Исто така, непреостанатите слоеви му обезбедуваат на моделот посеопфатно разбирање на влезната слика. Како резултат на тоа, YOLOv5 може да работи попрецизно и поефикасно.
Како да се користи YOLOv5
инсталација
Инсталирањето на YOLOv5 може брзо да се заврши со користење на пип. 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 и оваа веб-страница ми помогна да барам информации за тоа.
Многу ме интересира за вештачката интелигенција.
ако можете, имам многу прашања за вештачката интелигенција, можеби можете да ми помогнете
Ти благодарам