Я новичок в YOLOv8, я просто хочу, чтобы модель обнаруживала только некоторые классы, а не все 80 классов, на которых обучалась модель. Как я могу указать модель YOLOv8 для обнаружения только одного класса? Например, только человек.
from ultralytics import YOLO
model = YOLO('YOLOv8m.pt')
Я помню, что мы можем сделать это с YOLOv5, но я не мог сделать то же самое с YOLOv8:
model = torch.hub.load("ultralytics/yolov5", 'custom', path='yolov5s.pt')
model.classes = [0] # Only person
model.conf = 0.6
Это один метод. Но я думаю, что лучше ограничить модель обнаружением только определенного класса.
Почему этот вопрос был закрыт? Я не вижу здесь проблем...
@MikeB Понятия не имею.
Я не знаю, что эти «опытные члены сообщества» ожидают от меня разъяснений. Можете ли вы проголосовать за его повторное открытие? Я только что прочитал «что значит, если Q закрыт», и там говорится, что если он получит один голос за повторное открытие от кого-то с достаточной репутацией, он будет снова открыт.
Просто укажите classes
в predict
с идентификаторами классов, которые вы хотите предсказать.
from ultralytics.yolo.engine.model import YOLO
model = YOLO("yolov8n.pt")
model.predict(source = "0", show=True, stream=True, classes=0)
for i, (result) in enumerate(results):
print('Do something with class 0')
почему бы просто не отфильтровать полученные обнаружения, выбрав только те классы, которые вам интересны?