Interface編集部

ailia SDKを試す<第17回> YOLO11を利用したオブジェクト検出のモデル比較(GPU環境編)
これまでYOLOシリーズを用いた静止画検証と動画検証を行ってきましたが,実際の応用では監視カメラやロボットなど,動画入力を扱うケースが中心となります.そのためリアルタイム性や処理速度が重要な要素となります.
そこで今回は,動画入力を前提とした運用環境を想定し,GPU実行による性能向上に着目して検証を行いました.具体的には,ailia-modelsのyolov11-segの実装を利用し,複数のGPU環境で推論を実施しています.その結果をもとに,動画処理における実用性やモデル選択の指針を整理していきます.
●検証環境
今回は,GPU環境での検証を実施しました.これまで利用してきた環境に加えて,新たに2種類のGPU搭載環境を用意し,それぞれで推論性能を比較していました.各環境の構成を表1に示します.また,yolov11-segを実行するソフトウェア環境を表2に示します.
環境 | OS | CPU | RAM | GPU |
---|---|---|---|---|
1 | Windows 11 Pro | Intel(R) N100 | 16GB | Intel(R) N100 UHD Graphics |
2 | Windows 11 Pro | AMD Ryzen 5 3600 | 32GB | NVIDIA GeForce RTX 3060 |
3 | Ubuntu 24 | Intel(R) Core(TM) Ultra 7 265K | 128GB | NVIDIA GeForce RTX 5060Ti |
表1 ハードウェア環境一覧
名称 | 内容 |
---|---|
Python | python-3.10.11-amd64 |
ailia-SDK | Version 1.5.0.0 |
ailia-models | v1.4.0 (https://github.com/axinc-ai/ailia-models) |
表2 ソフトウェア環境一覧
●使用する動画
ここでは,前回の動画検証(https://interface.cqpub.co.jp/ailia016/)で使用したものと同じ複数オブジェクト・リスト(生成AI作成)を利用しました.この動画には多数のオブジェクトが同時に表示されており,処理負荷が高くなるため,環境ごとの速度差が明確に現れる素材となっています.動画の詳細については,前回の記事を参照ください.
●検証方法
各環境において,CPUのみで実行した場合と,GPUを併用した場合のオブジェクトの検出精度と検出速度を計測しました.その結果を比較することで,環境ごとの違いを明らかにするとともに,使用モデルとハードウェア環境のマッチング傾向を検証します.
●検証結果
▲オブジェクトの検出結果
検出結果を表3と表4に示します.
モデル カテゴリ |
11N | 11S | 11M | 11L | 11X |
---|---|---|---|---|---|
airplane | 1 | 1 | 1 | 1 | 1 |
backpack | 1 | 1 | 1 | 1 | 1 |
bench | 1 | 1 | 1 | 1 | 1 |
car | 1 | 1 | 1 | 2 | 3 |
cat | 0 | 1 | 1 | 1 | 1 |
chair | 2 | 1.75 | 1 | 1 | 1 |
couch | 3 | 3 | 3 | 2 | 2 |
cow | 1 | 1 | 1 | 1 | 1 |
dog | 2 | 1 | 1 | 1 | 1 |
fire hydrant | 1 | 1 | 1 | 1 | 1 |
frisbee | 0 | 1 | 1 | 1 | 1 |
handbag | 0 | 1 | 1 | 1 | 1 |
motorcycle | 1 | 1 | 1 | 1 | 1 |
parking meter | 1 | 1 | 1 | 1 | 1 |
person | 3 | 3 | 3 | 3 | 3 |
snowboard | 0 | 1 | 1 | 1 | 1.25 |
stop sign | 1 | 1 | 1 | 1 | 1 |
sheep | 1 | 1 | 1 | 1 | 1 |
suitcase | 0 | 1.75 | 1 | 1 | 1 |
tie | 1 | 1 | 1 | 1 | 1 |
train | 1 | 1 | 1 | 1 | 1 |
tv | 1 | 1 | 1 | 1 | 1 |
zebra | 1 | 1 | 1 | 1 | 1 |
合計 | 24 | 28.5 | 27 | 27 | 28.25 |
表3 CPUのみ(AMD Ryzen 5 3600)における検出結果
モデル カテゴリ |
11N | 11S | 11M | 11L | 11X |
---|---|---|---|---|---|
airplane | 1 | 1 | 1 | 1 | 1 |
backpack | 1 | 1 | 1 | 1 | 1 |
bench | 1 | 1 | 1 | 1 | 1 |
car | 1 | 1 | 1 | 2 | 3 |
cat | 0 | 1 | 1 | 1 | 1 |
chair | 2 | 1.75 | 1 | 1 | 1 |
couch | 3 | 3 | 3 | 2 | 2 |
cow | 1 | 1 | 1 | 1 | 1 |
dog | 2 | 1 | 1 | 1 | 1 |
fire hydrant | 1 | 1 | 1 | 1 | 1 |
frisbee | 0 | 1 | 1 | 1 | 1 |
handbag | 0 | 1 | 1 | 1 | 1 |
motorcycle | 1 | 1 | 1 | 1 | 1 |
parking meter | 1 | 1 | 1 | 1 | 1 |
person | 3 | 3 | 3 | 3 | 3 |
sheep | 1 | 1 | 1 | 1 | 1 |
snowboard | 0 | 1 | 1 | 1 | 1.25 |
stop sign | 1 | 1 | 1 | 1 | 1 |
suitcase | 0 | 1.75 | 1 | 1 | 1 |
tie | 1 | 1 | 1 | 1 | 1 |
train | 1 | 1 | 1 | 1 | 1 |
tv | 1 | 1 | 1 | 1 | 1 |
zebra | 1 | 1 | 1 | 1 | 1 |
合計 | 24 | 28.5 | 27 | 27 | 28.25 |
表4 GPU併合(AMD Ryzen 5 3600+RTX3060)における検出結果
今回の検証では,CPUのみの環境とGPU併用の環境で,同一フレームに対する検出結果(検出クラス/件数/バウンディング・ボックス配置/セグメンテーション・マスクの形状)がいずれも同一となりました.ここには掲載していませんが,Intel Core Ultra 7 265K +NVIDIA RTX5060 Tiの環境でも同様の結果でした.
以上より,ここでの条件下ではYOLO11 Segmentationは検出内容は環境に依存せず,主に速度のみが環境に依存する傾向であると確認できました.
なお,ここでの検証条件は,
******
・同一モデル/同一重み
・同一前処理/入力解像度
・同一しきい値」
******
を揃えたものです.実運用においては,ドライバやライブラリの違い,浮動小数点計算の非決定性により,スコアの小差やバウンディング・ボックス境界の数ピクセル程度の違いが生じる可能性があります.
▲検出速度
モデル別検出速度を表5に示します.
モデル 環境 |
11N | 11S | 11M | 11L | 11X |
---|---|---|---|---|---|
CPU: N100 | 3.967 | 2.394 | 1.107 | 0.98 | 0.49 |
CPU: AMD Ryzen 5 3600 | 6.11 | 4.41 | 3.14 | 2.85 | 1.81 |
GPU: AMD Ryzen 5 3600 + NVIDIA RTX 3060 | 6.13 | 5.12 | 5.29 | 5.15 | 4.4 |
CPU: Intel(R) Core™ Ultra 7 265K | 8.88 | 7.02 | 5.27 | 4.92 | 3.19 |
GPU: Intel(R) Core™ Ultra 7 265K + NVIDIA RTX 5060 Ti | 9.75 | 8.66 | 8.65 | 8.456 | 7.87 |
表5 モデル別の検出速度比較
図示したものを図1に示します.
図1 モデルとハードウェア環境違いによる検出速度
今回の結果から,CPU環境ではモデルが大きくなるほど処理速度が急激に低下する一方,GPU環境では大型モデルでも安定したFPSを維持できることが分かります.さらに,同じGPUを搭載していてもCPU性能差によってFPSが大きく変動し,特にRTX3060とRTX5060Tiの比較ではGPU性能の違いに加えて,CPU性能の差が全体の結果に強く影響していると考えられます.また,今回の検出結果を基に,各CPUに対して異なるGPUを装着した場合のFPSを仮定すると表6の結果となります.
なお,この結果はあくまでも仮定の値ですので,実際にこの値になるとは言えませんが,CPUの影響とGPUの影響を検討する値をしてみてください.
環境 | 11N | 11S | 11M | 11L | 11X |
---|---|---|---|---|---|
Ryzen 5 + RTX5060Ti (推定) | 6.98 | 6.04 | 6.52 | 6.38 | 6.49 |
Ultra 7 + RTX3060 (推定) | 8.91 | 8.15 | 8.6 | 8.46 | 7.76 |
表6 推定環境でのモデル別FPS
●まとめ
▲モデル選択の目安
今回の検証と推定結果から,利用環境ごとに実用的なモデルの目安を次のように整理できます.
・軽量CPU環境(例:Intel N100)
YOLO11nのみが実用範囲です.リアルタイム処理には限界があり,監視や簡易用途に向きます.
・中級CPU環境(例:Ryzen 5 3600)
CPU単体では,YOLO11n/11sが実用範囲です.GPUをRTX3060やRTX5060Tiに強化すればYOLO11xまで利用可能となり,幅広い用途に対応できます.
・高性能CPU環境(例:Ultra 7 265K)
CPU単体でもYOLO11n/11s はリアルタイム処理可能です.さらにGPUにRTX5060Tiを搭載すればYOLO11xでも7FPS以上を確保でき,ほぼ全モデルを実用的に利用できます.
▲得られた知見
まず,CPUの性能差は軽量モデルに大きく影響し,同じGPUを使っていてもFPSに明確な差が生じました.また,GPUの世代差は大型モデルで顕著に現れ,RTX3060とRTX5060Tiでは最大1.5倍近い性能差が確認できました.さらに,推定結果からもCPUとGPUのバランスが性能に直結することが明らかになりました.
▲モデル選択の指針
用途や環境に応じたモデル選択の指針は次の通りです.
******
・軽量/リアルタイム性重視(監視カメラや簡易ロボット):YOLO11nをCPU 単体で利用可能
・中規模処理(YOLO11m/YOLO11l):運用目的やコストに応じてCPU/GPUのバランスを検討
・高精度用途(産業利用/研究でYOLO11xを使用):高性能CPUと最新GPUを搭載した環境が必須
******
今回の検証により,YOLO11 Segmentationは 小型PCから高性能サーバまで,用途に応じて柔軟に活用できることが確認できました.AILIA-SDKを利用することで環境構築も容易になりますので,ぜひ一度試してみてください.
氏森 充(うじもり・たかし)
約30年間,(株)構造計画研究所にてIoT,ビッグデータ,機械学習,AI関連のシステム開発や実務応用に従事.退職後はLLM(大規模言語モデル)関連の情報収集や技術動向の調査・発信に注力し,雑誌「Interface」でもLLM技術に関する記事を執筆中.