Как извлечь из базовой версии YOLOv8 функционал для распознавания только определенных объектов, а не всех, используя фильтрацию классов?
Для исключения определенных объектов из распознавания в 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...
и если нужен будет какой то более сложный функционал, то можно наследовать свой класс от стандартной модели и делать в нем изменения. но в большинстве случаев это не пригодится