Как исключить определенные объекты из распознавания в YOLOv8?

Как извлечь из базовой версии YOLOv8 функционал для распознавания только определенных объектов, а не всех, используя фильтрацию классов?
  • 10 мая 2024 г. 16:50
Ответы на вопрос 2
Для исключения определенных объектов из распознавания в YOLOv8 можно использовать фильтрацию классов. Для этого необходимо внести изменения в файл конфигурации модели (например, `yolov8.cfg`), где указываются параметры модели, включая список классов объектов для распознавания.

1. Откройте файл конфигурации модели (обычно это файл с расширением `.cfg`) в текстовом редакторе.

2. Найдите секцию `[yolo]` или `[conv]`, которая содержит параметры для распознавания объектов. 

3. В этой секции найдите строку, содержащую список классов объектов (обычно это параметр `classes`). Удалите из этого списка классы объектов, которые вы хотите исключить из распознавания.

4. Сохраните изменения в файле конфигурации и перезапустите обучение модели с учетом новых параметров.

Таким образом, после проведенных выше шагов модель YOLOv8 будет обучаться только на распознавание определенных объектов, которые вы указали в списке классов, и будет игнорировать остальные объекты. 

Помните, что для корректной работы модели необходимо также привести размеченные данные в соответствие с измененными классами объектов и выполнить обучение с учетом этих изменений.
Здравствуйте! Если Вы используйте метод predict или просто обращаетесь к экземпляру model(), то Вы можете использовать атрибут classes. Он принимает список с id классов, которые будут распознаны. 

id классов можно найти в .yaml файле для обучения модели. в случае в датасетом COCO, на котором обучена модель YOLO, которая идет в этой библиотеке, этот файл можно найти по ссылке https://github.com/ultralytics/ultralytics/blob/ma...

from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO('yolov8n.pt')

# Run inference on 'bus.jpg' with arguments
model.predict('bus.jpg', save=True, imgsz=320, conf=0.5, classes=[0,1])

#или так
#model('bus.jpg', save=True, imgsz=320, conf=0.5, classes=[0,1])


вот ссылка на документацию https://docs.ultralytics.com/modes/predict/#infere...

и если нужен будет какой то более сложный функционал, то можно наследовать свой класс от стандартной модели и делать в нем изменения. но в большинстве случаев это не пригодится
Похожие вопросы