7-9 画像分類
学習目標
画像分類は、コンピュータビジョンにおける最も基本的かつ一般的なタスクの一つです。その目的は、コンピュータが「画像がどのカテゴリに属するか」を判定できるようにすることです。
入力画像に対して、以下の出力が得られます。
- 画像が属するカテゴリ
- 各カテゴリの信頼度スコア
Pythonと事前学習済みモデルを用いて画像分類を行います。
画像に対して画像分類を行い、上位5件の結果を出力してください。
import torch
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt")
results = model.predict("https://ultralytics.com/images/bus.jpg")
for result in results:
print(f'top 5: {[result.names[cls.item()] for cls in torch.topk(result.probs.data, 5)[1].detach().cpu().numpy()]}')
すると、最も可能性の高い上位5つのカテゴリを示す結果が表示されます。

ウェブカメラを使用してリアルタイムで画像分類を行い、結果を可視化する
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt")
video_path = 0
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
success, frame = cap.read()
if success:
results = model.predict(frame)
annotated_frame = results[0].plot()
cv2.imshow("YOLO Inference", annotated_frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
break
cap.release()
cv2.destroyAllWindows()
すると結果が表示されます。画像には、「聴診器」など、最も可能性の高い上位5つのカテゴリと、それぞれのスコア(例:0.09)が表示されます。
