4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

YOLOv8のクラス名リスト

Posted at

概要

YOLOv8で物体検出する際に引数のclassesを調べた.

環境

Windows 11 Pro
Python 3.10.1
torch 2.0.1+cpu

背景

次のようにYOLOv8の既存モデルをCLI上で推論だけすると, デフォルトで様々なクラスラベルにより物体が検出される.

yolo predict model=yolov8x.pt source=source

対象物体に主にラベリングされたクラスだけを抽出して再度推論させたかったためclasses = []にクラスに対応する数値を入力する必要があったが, それの対応表がドキュメントのどこにあるか分からなかった!(知ってる方いたら教えてください)

やったこと&結果

YOLOv8で物体検出モデルを試してみた
を参考に適当にmodelに画像を読み込ませて results から読み取る.

from ultralytics import YOLO
model = YOLO("yolov8x.pt")
#bus.jpgをカレントディレクトリに置いたがそうでない場合は適当なpathを指定
path = ""
results = model.predict(source=path+"bus.jpg", save=True)
results[0].names

結果は次の通り.

{0: 'person',
 1: 'bicycle',
 2: 'car',
 3: 'motorcycle',
 4: 'airplane',
 5: 'bus',
 6: 'train',
 7: 'truck',
 8: 'boat',
 9: 'traffic light',
 10: 'fire hydrant',
 11: 'stop sign',
 12: 'parking meter',
 13: 'bench',
 14: 'bird',
 15: 'cat',
 16: 'dog',
 17: 'horse',
 18: 'sheep',
 19: 'cow',
 20: 'elephant',
 21: 'bear',
 22: 'zebra',
 23: 'giraffe',
 24: 'backpack',
 25: 'umbrella',
 26: 'handbag',
 27: 'tie',
 28: 'suitcase',
 29: 'frisbee',
 30: 'skis',
 31: 'snowboard',
 32: 'sports ball',
 33: 'kite',
 34: 'baseball bat',
 35: 'baseball glove',
 36: 'skateboard',
 37: 'surfboard',
 38: 'tennis racket',
 39: 'bottle',
 40: 'wine glass',
 41: 'cup',
 42: 'fork',
 43: 'knife',
 44: 'spoon',
 45: 'bowl',
 46: 'banana',
 47: 'apple',
 48: 'sandwich',
 49: 'orange',
 50: 'broccoli',
 51: 'carrot',
 52: 'hot dog',
 53: 'pizza',
 54: 'donut',
 55: 'cake',
 56: 'chair',
 57: 'couch',
 58: 'potted plant',
 59: 'bed',
 60: 'dining table',
 61: 'toilet',
 62: 'tv',
 63: 'laptop',
 64: 'mouse',
 65: 'remote',
 66: 'keyboard',
 67: 'cell phone',
 68: 'microwave',
 69: 'oven',
 70: 'toaster',
 71: 'sink',
 72: 'refrigerator',
 73: 'book',
 74: 'clock',
 75: 'vase',
 76: 'scissors',
 77: 'teddy bear',
 78: 'hair drier',
 79: 'toothbrush'}

これにより例えばperson, truck, hot dogだけを検出したい場合はCLI上で次のようにすればいい.

yolo predict model=yolov8x.pt source=source classes=[0, 7, 52]

余談

stream=True の場合はgeneratorが返ってくるよう. 最初こっちでやっててエラーをChatGPTに投げてnext関数というものを知りました.

results = model.predict(source=path+"bus.jpg", stream=True)
result = next(results)
result.names
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?