
「YOLOをGPUで動かしたい」と思ったとき、多くの人が身構えるのが CUDA Toolkit / cuDNN の環境構築です。
でも実は、ゲーミングPC(NVIDIA GPU搭載)を持っている人なら、難しいセットアップなしでYOLOを動かせます。
この記事では Ultralytics YOLO を使って、Windows上で
- 画像1枚の物体検出
- USBカメラのリアルタイム物体検出
までを コマンドだけで進めます。
この記事のポイント(メリット)
- ✅ ゲーミングPC(NVIDIA GPU)ならすぐ試せる
- ✅ CUDA Toolkit / cuDNN を手動で入れなくてOK
- ✅ Python仮想環境 + pipコマンドだけで完結
- ✅ まずは「動いた!」を最短で体験できる
なぜCUDA Toolkitが不要なの?
→ Ultralyticsは内部でPyTorchを使いますが、GPU対応のPyTorchは(多くの場合)実行に必要なCUDA関連ライブラリを同梱しているため、学習・推論するだけならCUDA Toolkit(nvcc等)を別途入れなくても動きます。
※ただし「自作CUDA拡張をコンパイルする」など特殊用途では必要になることがあります。
前提条件(これだけ)
- Windows 10/11
- NVIDIA GPU(例:RTX 3060/3070/3080/3090など)
- NVIDIAドライバがインストール済み(最新推奨)
- Python(おすすめ:3.10〜3.12)
1. 作業フォルダを作って仮想環境を作成
PowerShellで、作業用フォルダへ移動して実行します。
mkdir windows_yolo
cd windows_yolo
py -m venv .venv
.\.venv\Scripts\activate
python -m pip install -U pip
プロンプト先頭に (.venv) が付いていればOKです。
2. PyTorch(GPU対応)をインストール
ここが一番重要です。CPU版PyTorchを入れるとGPUが使えません。
以下を実行:
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
インストールできたら、GPUが使えるか確認します。
python -c "import torch; print('torch', torch.__version__); print('cuda', torch.cuda.is_available()); print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'no gpu')"
理想の出力例:
torch 2.x.x+cu121
cuda True
NVIDIA GeForce RTX xxxx
3. Ultralytics YOLO をインストール
pip install -U ultralytics opencv-python
簡易チェック(任意):
yolo checks
4. まずは画像で物体検出してみる(最短で成功体験)
ローカルに画像を用意しなくても、サンプル画像で試せます。
yolo detect predict model=yolo11n.pt source=https://ultralytics.com/images/bus.jpg
初回は yolo11n.pt が自動ダウンロードされます。
結果はこのフォルダに出ます:
runs\detect\predict\
ここに、検出結果(枠が描かれた画像)が保存されていれば成功です。
もし
yolo11n.ptがうまくいかない場合は、モデル名をyolov8n.ptにしてもOKです。
5. USBカメラでリアルタイム物体検出(CLI一発)
次はUSBカメラ(Webカメラ)でリアルタイム推論です。
yolo detect predict model=yolo11n.pt source=0 show=True
source=0が一般的に最初のカメラ- もし映らなければ
source=1、source=2を試してください
軽量設定(まずはこれが無難):
yolo detect predict model=yolo11n.pt source=0 show=True imgsz=640 device=0
6. Pythonで「VideoCapture + imshow」で動かしたい人向け(定番スタイル)
ブログ読者が一番やりたい形はこれだと思います。realtime.py を作成して貼り付けます。
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # 軽いモデルでまず動作確認
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # WindowsはDSHOWが安定しやすい
# 低遅延寄せ(効かない環境もあります)
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
while True:
ok, frame = cap.read()
if not ok:
break
results = model.predict(frame, device=0, imgsz=640, verbose=False)
vis = results[0].plot()
cv2.imshow("YOLO Realtime", vis)
if cv2.waitKey(1) & 0xFF == 27: # ESCで終了
break
cap.release()
cv2.destroyAllWindows()
実行:
python realtime.py
よくある詰まりポイント(初心者がハマりがち)
1) test.jpg does not exist
→ 画像ファイルのパスが間違っているだけです。フルパス指定が確実です。
yolo detect predict model=yolo11n.pt source="C:\path\to\your.jpg"
2) cuda False になる
- CPU版PyTorchを入れてしまった可能性が高いです
→ もう一度--index-url .../cu121で入れ直します
3) カメラが映らない
source=1/source=2を試す- Zoom/Teams等がカメラを掴んでいたら閉じる
まとめ:ゲーミングPCなら「とりあえずYOLO」は拍子抜けするほど簡単
- CUDA Toolkit / cuDNN を手で入れなくても
- Python仮想環境 + pip + yoloコマンドだけで
- 画像検出→USBカメラのリアルタイム推論まで到達できます。
入門としてはこれ以上ないくらい「成功体験」が早いので、まずは bus.jpg から試してみてください。
【追記】動画を入力して推論し、表示しながら結果を保存する
画像やUSBカメラで動いたら、次は **動画ファイル(mp4など)**を入力にして、YOLOで推論しながら画面表示し、さらに推論結果を動画として保存します。
Ultralyticsはここも簡単で、sourceに動画パスを指定するだけです。
事前準備(前章までで完了していればOK)
仮想環境を有効化しておきます。
.\.venv\Scripts\activate
1) 動画を推論して「表示」しながら「保存」する(コマンド一発)
作業フォルダに input.mp4 を置いて、次を実行します。
yolo detect predict model=yolo11n.pt source=input.mp4 show=True save=True
show=True:推論しながら画面に表示save=True:枠が描かれた推論結果を保存
出力先は通常、以下に自動生成されます:
runs\detect\predict\配下
動画ファイルが別フォルダにある場合はフルパスでもOKです:
yolo detect predict model=yolo11n.pt source="C:\Users\hidek\Videos\input.mp4" show=True save=True
2) 保存先を分かりやすく指定する(ブログ向けにおすすめ)
runs\detect\predict だと実験が増えると迷子になりがちなので、プロジェクト名・実験名を付けると管理しやすいです。
yolo detect predict model=yolo11n.pt source=input.mp4 show=True save=True project=runs_video name=exp1
出力は:
runs_video\exp1\配下
3) 推論結果を「動画+テキスト(検出結果)」で保存する
動画だけでなく、検出した座標(bbox)も欲しい場合は save_txt を付けます。
yolo detect predict model=yolo11n.pt source=input.mp4 show=True save=True save_txt=True save_conf=True
save_txt=True:検出結果をテキストで保存save_conf=True:confidence(確信度)も保存
4) 動画が重い/遅いときの軽量化(入門で効く設定)
動画推論は「入力が大きい」「モデルが重い」「表示負荷が高い」でfpsが落ちやすいです。まずはこの3つを抑えるのが定石です。
まずは軽量モデル + 画像サイズ固定
yolo detect predict model=yolo11n.pt source=input.mp4 show=True save=True imgsz=640 device=0
model=yolo11n.pt:軽量モデル(入門向け)imgsz=640:入力サイズを抑えるdevice=0:GPUを明示(あなたの環境はRTX 3090でOK)
検出が多すぎる/少なすぎるとき(しきい値)
yolo detect predict model=yolo11n.pt source=input.mp4 show=True save=True conf=0.35
conf を上げるほど「確信度の高い検出だけ」に絞られます。
5) USBカメラでも「表示+保存」ができる(ついでに)
動画だけでなく、USBカメラ(source=0)でも同じノリで録画できます。
yolo detect predict model=yolo11n.pt source=0 show=True save=True
カメラ番号が違うときは source=1 / 2 を試します。
6) (応用)Pythonで「表示しながら保存」したい場合
「保存先を固定したい」「フレーム加工したい」「ログを取りたい」など、後から拡張するならPython版が便利です。入門記事では“応用枠”として載せるのがおすすめです。
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("input.mp4") # 0ならUSBカメラ
fps = cap.get(cv2.CAP_PROP_FPS) or 30
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter("output.mp4", fourcc, fps, (w, h))
while True:
ok, frame = cap.read()
if not ok:
break
results = model.predict(frame, device=0, imgsz=640, verbose=False)
vis = results[0].plot()
cv2.imshow("YOLO", vis)
out.write(vis)
if cv2.waitKey(1) & 0xFF == 27: # ESCで終了
break
cap.release()
out.release()
cv2.destroyAllWindows()
よくあるエラー(動画編)
動画が読み込めない(形式/コーデック)
→ まずは mp4(H.264)など一般的な形式で試す。
FileNotFoundError: input.mp4 does not exist
→ 動画が作業フォルダに無い/名前が違う。フルパス指定が確実。
それではまた!






LEAVE A REPLY