Segment экземпляров и track с использованием Ultralytics YOLO26 🚀
Что такое сегментация экземпляров?
Сегментация экземпляров — это задача компьютерного зрения, которая включает в себя идентификацию и выделение отдельных объектов на изображении на уровне пикселей. В отличие от семантической сегментации, которая классифицирует пиксели только по категориям, сегментация экземпляров уникальным образом маркирует и точно разграничивает каждый экземпляр объекта, что делает ее важной для приложений, требующих детального пространственного понимания, таких как медицинская визуализация, автономное вождение и промышленная автоматизация.
Ultralytics YOLO26 предоставляет мощные возможности segment экземпляров, которые обеспечивают точное detect границ объектов, сохраняя при этом скорость и эффективность, которыми известны модели YOLO.
В пакете Ultralytics доступны два типа отслеживания сегментации экземпляров:
Сегментация экземпляров с объектами классов: Каждому объекту класса присваивается уникальный цвет для четкого визуального разделения.
Сегментация экземпляров с отслеживанием объектов: Каждый трек представлен отдельным цветом, что облегчает идентификацию и отслеживание по видеокадрам.
Смотреть: Segment экземпляров с track объектов с использованием Ultralytics YOLO26
Примеры
| Сегментация экземпляров | Сегментация экземпляров + отслеживание объектов |
|---|---|
![]() | |
| Сегментация экземпляров Ultralytics 😍 | Сегментация экземпляров Ultralytics с отслеживанием объектов 🔥 |
Сегментация экземпляров с использованием Ultralytics YOLO
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
# classes=[0, 2], # segment specific classes, e.g., person and car with the pretrained model.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = isegment(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
InstanceSegmentation Аргументы
Вот таблица с InstanceSegmentation аргументы:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Список точек, определяющих область подсчета. |
Вы также можете воспользоваться track аргументы внутри InstanceSegmentation Решение:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Указывает алгоритм отслеживания, например, bytetrack.yaml или botsort.yaml. |
conf | float | 0.1 | Устанавливает порог уверенности для обнаружений; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания. |
iou | float | 0.7 | Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений. |
classes | list | None | Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы. |
verbose | bool | True | Управляет отображением результатов отслеживания, обеспечивая визуальный вывод отслеживаемых объектов. |
device | str | None | Указывает устройство для инференса (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели. |
Кроме того, доступны следующие аргументы визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, отображает аннотированные изображения или видео в окне. Полезно для немедленной визуальной обратной связи во время разработки или тестирования. |
line_width | int or None | None | Указывает ширину линии ограничивающих рамок. Если None, ширина линии автоматически регулируется в зависимости от размера изображения. Обеспечивает визуальную настройку для большей четкости. |
show_conf | bool | True | Отображает оценку достоверности для каждого обнаружения рядом с меткой. Дает представление об уверенности модели для каждого обнаружения. |
show_labels | bool | True | Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает немедленное понимание обнаруженных объектов. |
Приложения для сегментации экземпляров
Segment экземпляров с YOLO26 имеет многочисленные реальные применения в различных отраслях промышленности:
Управление отходами и переработка
YOLO26 может использоваться на объектах по управлению отходами для идентификации и сортировки различных типов материалов. Модель может с высокой точностью segment пластиковые отходы, картон, металл и другие перерабатываемые материалы, позволяя автоматизированным системам сортировки более эффективно обрабатывать отходы. Это особенно ценно, учитывая, что только около 10% из 7 миллиардов тонн пластиковых отходов, образующихся во всем мире, перерабатывается.
Автономные транспортные средства
В беспилотных автомобилях segment экземпляров помогает идентифицировать и track пешеходов, транспортные средства, дорожные знаки и другие элементы дороги на уровне пикселей. Это точное понимание окружающей среды имеет решающее значение для навигации и принятия решений по безопасности. Производительность YOLO26 в реальном времени делает его идеальным для этих критически важных по времени приложений.
Медицинская визуализация
Segment экземпляров может идентифицировать и обрисовывать опухоли, органы или клеточные структуры на медицинских снимках. Способность YOLO26 точно очерчивать границы объектов делает его ценным для медицинской диагностики и планирования лечения.
Мониторинг строительной площадки
На строительных площадках instance segmentation может отслеживать тяжелую технику, рабочих и материалы. Это помогает обеспечить безопасность за счет мониторинга положения оборудования и обнаружения, когда рабочие входят в опасные зоны, а также оптимизирует рабочий процесс и распределение ресурсов.
Примечание
Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в разделе проблем Ultralytics или в разделе обсуждений, упомянутом ниже.
Часто задаваемые вопросы
Как выполнить segment экземпляров с использованием Ultralytics YOLO26?
Для выполнения segment экземпляров с использованием Ultralytics YOLO26 инициализируйте модель YOLO версией YOLO26 для segment и обрабатывайте через нее видеокадры. Вот упрощенный пример кода:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = isegment(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Узнайте больше о segment экземпляров в руководстве Ultralytics YOLO26.
В чем разница между segment экземпляров и track объектов в Ultralytics YOLO26?
Segment экземпляров идентифицирует и обрисовывает отдельные объекты на изображении, присваивая каждому объекту уникальную метку и маску. Track объектов расширяет это, присваивая объектам согласованные идентификаторы в видеокадрах, облегчая непрерывное track одних и тех же объектов с течением времени. В сочетании, как в реализации YOLO26, вы получаете мощные возможности для анализа движения и поведения объектов в видео, сохраняя при этом точную информацию о границах.
Почему следует использовать Ultralytics YOLO26 для segment экземпляров и track вместо других моделей, таких как Mask R-CNN или Faster R-CNN?
Ultralytics YOLO26 предлагает производительность в реальном времени, превосходную точность и простоту использования по сравнению с другими моделями, такими как Mask R-CNN или Faster R-CNN. YOLO26 обрабатывает изображения за один проход (одностадийный detect), что делает его значительно быстрее, сохраняя при этом высокую точность. Он также обеспечивает бесшовную интеграцию с платформой Ultralytics, позволяя пользователям эффективно управлять моделями, наборами данных и конвейерами обучения. Для приложений, требующих как скорости, так и точности, YOLO26 обеспечивает оптимальный баланс.
Предоставляет ли Ultralytics какие-либо наборы данных, подходящие для обучения моделей YOLO26 для segment экземпляров и track?
Да, Ultralytics предлагает несколько наборов данных, подходящих для обучения моделей YOLO26 для сегментации экземпляров, включая COCO-Seg, COCO8-Seg (меньший поднабор для быстрого тестирования), Package-Seg и Crack-Seg. Эти наборы данных содержат аннотации на уровне пикселей, необходимые для задач сегментации экземпляров. Для более специализированных приложений вы также можете создавать пользовательские наборы данных в формате Ultralytics. Полную информацию о наборах данных и инструкции по их использованию можно найти в документации Ultralytics по наборам данных.
