0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YOLOv8入門

Posted at

YOLOv8入門

YOLOv8とは?革新的な物体検出AI

🤖 YOLOv8の基本概念

YOLOv8(You Only Look Once version 8)は、画像や動画の中にある物体を瞬時に発見・識別するAI技術です。例えば、以下のようなことが可能になります:

  • 写真を見せるだけで「犬2匹、車1台、人3人」を自動検出
  • リアルタイムで防犯カメラの映像から人の侵入を検知
  • 工場の製品写真から不良品を自動判別

❓ なぜYOLOが革新的なのか

従来の物体検出は2段階プロセス(「物体がありそうな場所を探す」→「その物体が何かを判断する」)でしたが、YOLOは画像を一度見るだけで位置と種類を同時に判断することができるので

  • 処理速度が劇的に向上(リアルタイム処理可能)
  • 精度も従来手法を上回る
  • 実装が簡単(数行のコードで動作)

🎯 YOLOv8の主な特徴

技術的革新

  • Anchor-free設計:従来の複雑な設定が不要
  • マルチタスク対応:物体検出・セグメンテーション・姿勢推定
  • 高精度:YOLOv8xで53.9% mAP(業界トップクラス)

実用性

  • 80種類の物体を標準で検出可能
  • 5段階のモデルサイズ(軽量~高精度)

🛠️ YOLOv8を使ってみよう

環境準備

# インストール
pip install ultralytics

簡単なコード例

from ultralytics import YOLO

# YOLOv8モデルを読み込み(初回は自動ダウンロード)
model = YOLO("yolov8n.pt")  # nは軽量版

# 画像で物体検出を実行
results = model("your_photo.jpg", save=True)

# 検出結果を表示
for result in results:
    print(f"検出された物体数: {len(result.boxes)}")
    for box in result.boxes:
        class_name = result.names[int(box.cls[0])]
        confidence = float(box.conf[0])
        print(f"- {class_name}: {confidence:.2f}")

リアルタイム検出(ウェブカメラ)

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

# ウェブカメラでリアルタイム検出
results = model.predict(source=0, show=True)

検出できる物体の種類

YOLOv8は80種類の物体を検出できます:

カテゴリ 種類数
人・動物 人、犬、猫、鳥、馬、象 16種類
乗り物 車、バス、電車、船、飛行機 8種類
家具・日用品 椅子、テーブル、ベッド、テレビ 18種類
食品・飲料 バナナ、ピザ、ケーキ、コーヒー 11種類
その他 本、時計、スマートフォン 27種類

⚡ モデルサイズの選び方

YOLOv8は用途に応じて5つのサイズから選択可能:

モデル 精度 速度 用途 mAP パラメータ数
YOLOv8n ★★☆ ★★★ リアルタイム・モバイル 37.3% 3.2M
YOLOv8s ★★★ ★★☆ 一般的な用途 44.9% 11.2M
YOLOv8m ★★★ ★☆☆ 精度重視 50.2% 25.9M
YOLOv8l ★★★ ★☆☆ 高精度が必要 52.9% 43.7M
YOLOv8x ★★★ ☆☆☆ 最高精度 53.9% 68.2M

選択の目安

  • スマホアプリ・リアルタイム重視 → YOLOv8n
  • バランス型・初心者 → YOLOv8s
  • 精度重視・研究用 → YOLOv8m以上

💰 商用利用の現実:ライセンスと費用

⚠️ YOLOv8の商用利用制約

YOLOv8はAGPL-3.0ライセンスのため、商用利用には以下の制約があります:

無料で使える場合

  • 個人の趣味プロジェクト
  • 学習・研究目的
  • オープンソースプロジェクト
  • プロトタイプ作成

💰 有料ライセンスが必要な場合

  • 商用サービス・アプリ
  • ソースコード非公開での利用
  • SaaS・API サービス提供
  • 企業内での業務利用

💸 商用ライセンスの実際の費用

Ultralytics Enterprise Licenseの価格:

企業規模 年額費用 対象
スタートアップ $5,000~ 小規模チーム
中規模企業 $15,000~$50,000 中規模チーム・複数PJ
大企業 $50,000~$200,000+ 大規模組織・グローバル

現実的な判断

  • 年商数千万円未満 → ライセンス費用が重い負担
  • 年商1億円以上 → 検討の価値あり
  • 個人開発には到底使えない...

🔓 現実的な解決策:Apache 2.0代替モデル

年額75万円は高すぎる? そんな場合は、Apache 2.0ライセンスの代替モデルが最適解です!

推奨代替モデル

1. YOLOX(商用利用無し)

  • 開発者:Megvii (Face++)
  • ライセンス:Apache 2.0
  • 性能:YOLOX-Lで50.0% mAP、68.9 FPS

実装例

# YOLOXの使用例(商用制約なし)
import torch
from yolox.models import build_model

# モデル読み込み
model = build_model("yolox-l")
model.load_state_dict(torch.load("yolox_l.pth"))

# 推論実行
output = model(input_tensor)
# 商用利用もライセンス料不要!

✅ YOLOXの利点

  • 完全商用フリー:制約一切なし
  • 高性能:YOLOv8に匹敵する精度
  • 豊富なモデルサイズ:nano〜extra large
  • 活発なコミュニティ:8.9k+ GitHub stars

2. YOLO-NAS(最新技術 / 一部商用制約有り)

  • 開発者:Deci AI (現NVIDIA傘下)
  • ライセンス:Apache 2.0(ライブラリ)
  • 性能:YOLOv8より0.5 mAP高精度

⚠️ 重要な注意点
事前学習済みモデルは商用利用制限あり。自分で学習すれば商用利用可能

3. PP-YOLO (中国製)

  • 開発者:PaddlePaddle (百度)
  • ライセンス:Apache 2.0(PaddleDetection版)
  • 特徴:実用重視の設計

📊 性能・コスト比較表

モデル mAP ライセンス 年間コスト 商用制約 推奨度
YOLOv8-L 52.9% AGPL-3.0 $5,000/年 あり ⭐⭐
YOLOX-L 50.0% Apache 2.0 無料 なし ⭐⭐⭐
YOLO-NAS-L 52.3% Apache 2.0* 無料 注意必要 ⭐⭐
PP-YOLO 45.9% Apache 2.0 無料 なし ⭐⭐

🎯 最適な選択指針

📈 プロジェクト段階別の推奨

🔬 プロトタイプ・学習段階

推奨:YOLOv8
理由:最新技術、豊富な情報、簡単実装
制約:オープンソース化前提

🏢 商用サービス開発段階

推奨:YOLOX
理由:商用制約なし、YOLOv8レベルの性能
利点:年額75万円の節約

🎓 学習・研究目的

推奨:YOLOv8
理由:最新技術、豊富なドキュメント
制約:なし(非商用なら自由)

💡 実用的な開発戦略

段階的アプローチ

1️⃣ 検証段階:YOLOv8で技術検証
2️⃣ 開発段階:YOLOXに移行
3️⃣ 商用段階:Apache 2.0の恩恵を活用

商用プロジェクトでの注意点

✅ 必須対応

# ソースコードに必須記載(YOLOXの場合)
"""
This software uses YOLOX
Copyright (c) 2021-2022 Megvii Inc. All rights reserved.
Licensed under the Apache License, Version 2.0
"""
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?