Технология обнаружения объектов компьютерного зрения необходима для многих приложений. Мы используем его в робототехнике, оборудовании для наблюдения, беспилотных автомобилях и во многих других областях. Следовательно, мы можем найти и распознать определенные вещи на картинке или видео.
Один из самых известных алгоритмы идентификации объектов YOLO (You Only Look Once) набор моделей. Эти модели созданы ООО Ультралитикс.
Самая последняя версия этой серии — YOLOv5. И это самая быстрая и точная модель идентификации объектов на рынке. Способность модели обобщать новые данные была значительно улучшена. Кроме того, он содержит множество функций, благодаря которым он работает лучше, чем предыдущие версии.
YOLOv5 отлично подходит для приложений реального времени, поскольку он может обрабатывать изображения со скоростью до 1000 кадров в секунду на одном графическом процессоре.
В этой статье мы познакомим вас с YOLOv5 и подробно рассмотрим области его применения.
Путешествие YOLO: от YOLO до YOLOv5
Джозеф Редмон и др. первоначально представила YOLO, набор моделей идентификации объектов, в 2016 году. Первоначальная модель YOLO могла идентифицировать объекты в режиме реального времени. Однако он имел низкую точность по сравнению с другими моделями того времени.
За прошедшие годы было выпущено несколько обновленных версий YOLO. И, наконец, ООО «Ультралитикс» создало новейшее издание серии YOLO — YOLOv5.
YOLOv5 — самая точная и быстрая модель идентификации объектов, доступная в настоящее время.
Важные особенности
Якорные коробки
YOLOv5 предсказывает ограничивающие рамки для объектов на изображении, используя поля привязки. Модель предсказывает, какой из множества предопределенных блоков с различными соотношениями сторон лучше всего соответствует элементу на изображении, используя блоки привязки. Это заранее определенные поля.
И они позволяют YOLOv5 с точностью распознавать и находить элементы на изображении.
Увеличение данных мозаики
При обучении YOLOv5 использует метод, известный как мозаика. увеличение данных. Для разработки свежих обучающих изображений наша модель случайным образом объединяет фрагменты нескольких фотографий. В результате модель становится более устойчивой и надежной. Следовательно, он может обобщать новые данные и уменьшать переоснащение.
Уникальная система обучения
Уникальный процесс обучения, сочетающий контролируемое и неконтролируемое обучение используется.
Таким образом, модель учится на меньшей выборке и эффективно использует немаркированные входные данные. Это повышает производительность модели и повышает ее способность обобщать новые входные данные.
Слои, которые являются остаточными и не остаточными
Архитектура YOLOv5 сочетает в себе остаточные и неостаточные слои. Позволяя градиентам течь по слоям, остаточные слои помогают модели изучать сложные функции. Кроме того, неостаточные слои обеспечивают модели более полное представление о входном изображении. В результате YOLOv5 может работать более точно и эффективно.
Как использовать YOLOv5
Установка
Установка YOLOv5 может быть быстро завершена с помощью pip. 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 при обнаружении, мы можем использовать метод библиотеки OpenCV cv2.dnn.NMSBoxes().
Вот пример того, как выполнять постобработку обнаружений с помощью NMS.
import cv2
# Perform Non-Maxima Suppression (NMS)
index = 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, и этот веб-сайт помогает мне искать информацию об этом.
Меня очень интересует ИИ.
если можно, у меня много вопросов об ИИ, может быть, вы мне поможете
Спасибо