Ubuntu 24.04とYOLO11によるAI物体検出の要素技術検証 ― Intel N95でのCPU推論性能比較

要素実証

1. はじめに

画像認識AIは、製造設備の監視、物体検出、ロボットの周辺環境認識など、さまざまな分野で利用されています。

こうした技術を実際のシステムに組み込む場合、物体を認識できるかどうかだけでなく、使用するハードウェアでどの程度の処理性能が得られるか、また、どのような誤認識が発生するかを確認することが重要です。

今回は、Ubuntu 24.04 LTSを搭載したIntel Processor N95の小型PCとUSB Webカメラを使用し、YOLO11によるリアルタイム物体検出の要素技術検証を行いました。

YOLO11nとYOLO11sの2種類の学習済みモデルを使用し、GPUアクセラレーションを利用しないCPU推論で、物体検出結果と処理性能を比較しました。

2. 検証目的

今回の検証では、以下の項目を確認します。

  • Ubuntu環境でのYOLO11によるリアルタイム物体検出
  • USB Webカメラを使用した画像取得と認識結果の表示
  • YOLO11nとYOLO11sのCPU推論性能の違い
  • 一般物体の検出結果と、誤認識・未検出の事例
  • IoT、設備監視、ロボットシステムへの応用可能性

今回は学習済みモデルをそのまま使用し、独自データによる追加学習は行っていません。

また、認識精度の統計的な評価ではなく、実際の撮影環境での基本動作と推論性能の確認を目的としています。

3. 検証環境

3.1 ハードウェア構成

項目内容
CPUIntel Processor N95(4コア/4スレッド)
内蔵GPUIntel UHD Graphics
WebカメラLogicool C920
カメラ取得解像度640 × 480ピクセル(VGA)
推論デバイスCPUのみ

Intel Processor N95は、小型PCなどで利用される省電力プロセッサです。

内蔵GPUを搭載していますが、今回の検証ではGPUアクセラレーションを使用せず、CPUのみで推論処理を実行しました。

WebカメラにはLogicool C920を使用しました。C920はフルHD対応ですが、今回の画像取得解像度は640 × 480ピクセルとしています。

3.2 ソフトウェア構成

項目バージョン
OSUbuntu 24.04 LTS
Python3.12系
Ultralytics8.4.183
PyTorch2.14.1
OpenCV(opencv-python)5.0.0.93
AIモデルYOLO11n / YOLO11s

Pythonの仮想環境(venv)を作成し、必要なライブラリを導入しました。
YOLO11はUltralyticsが提供する物体検出モデルのシリーズです。

今回使用したYOLO11nとYOLO11sは、モデルの規模が異なります。
YOLO11nは軽量で高速な処理を重視したモデルであり、YOLO11sはYOLO11nより大きなモデルです。一般に、モデル規模が大きくなると認識性能の向上が期待できる一方、計算負荷も増加します。

4. 検証方法

4.1 システム構成

今回の検証システムは、次の構成です。

Logicool C920 → OpenCV → YOLO11 → 検出結果の画面表示

OpenCVでWebカメラから画像を取得し、YOLO11に入力します。
YOLO11は画像内の物体を検出し、検出対象の位置を示す矩形枠、物体クラス名、信頼度を出力します。

これらを元画像に描画し、推論処理のFPSとともに画面に表示しました。

4.2 CPU推論の指定

推論処理には、UltralyticsのPython APIを使用しました。

results = model.predict(
    frame,
    device="cpu",
    verbose=False
)

device="cpu" を指定することで、CPUによる推論処理を明示しています。

使用するモデルファイルを yolo11n.pt または yolo11s.pt に変更し、それぞれの動作を確認しました。

4.3 FPSの測定

Pythonの time.perf_counter() を使用し、推論処理の呼び出し時間を測定しました。

start = time.perf_counter()

results = model.predict(
    frame,
    device="cpu",
    verbose=False
)

elapsed = time.perf_counter() - start
fps = 1.0 / elapsed

測定したFPSは、YOLOの推論呼び出しに要した時間から算出した値です。

カメラからの画像取得、検出結果の描画、画面表示などを含めたシステム全体の実効FPSではありません。

また、Webカメラの取得解像度は640 × 480ピクセルですが、YOLO内部での画像前処理や推論入力サイズとは区別する必要があります。

5. 検証結果

5.1 一般物体の検出

最初に、机の上にコーヒーカップ、PC用マウス、はさみを配置して検証しました。
YOLO11n、YOLO11sともに、3種類の物体を検出できました。

【図1:YOLO11nによるカップ・マウス・はさみの検出結果】

【図2:YOLO11sによるカップ・マウス・はさみの検出結果】

各モデルの検出結果は次のとおりです。

検出対象YOLO11nYOLO11s
カップ(cup)0.910.93
マウス(mouse)0.720.75
はさみ(scissors)0.960.97

数値は各スクリーンショットに表示された検出信頼度です。
いずれのモデルでも、対象物の位置と物体クラスを適切に検出していることを確認しました。

ただし、信頼度は認識の正解率そのものを表す数値ではありません。また、今回の少数の検出例だけで、モデル間の認識精度の優劣を判断することはできません。

5.2 スマートフォン・USBメモリ・ICカードの検出

次に、iPhone、USBメモリ、交通系ICカード(Suica)を配置して検証しました。

【図3:YOLO11nによるスマートフォン等の検出結果】

【図4:YOLO11sによるスマートフォン等の検出結果】

検出結果は次のとおりです。

対象物YOLO11nYOLO11s
iPhonecell phone(0.89)cell phone(0.91)
USBメモリcell phone(0.69)cell phone(0.52)
Suica検出なし検出なし

iPhoneについては、両モデルとも cell phone として検出できました。
一方、USBメモリについては、両モデルとも cell phone として誤認識しました。
また、Suicaについては、いずれのモデルでも検出されませんでした。

YOLO11の今回使用した学習済みモデルは、COCOデータセットの80種類の物体クラスを対象としています。

このクラスには cup、mouse、scissors、cell phone などが含まれていますが、USBメモリや交通系ICカードを独立したクラスとして識別する構成にはなっていません。

したがって、学習済みモデルをそのまま使用した場合、対象物によっては別のクラスへの誤認識や未検出が発生することが確認できました。

5.3 YOLO11nとYOLO11sのCPU推論性能比較

今回の検証では、同じPC上でYOLO11nとYOLO11sのCPU推論を実行しました。

観測した処理性能は次のとおりです。

項目YOLO11nYOLO11s
観測FPSの目安約6.6 FPS約2.65 FPS
スクリーンショット上のFPS5.3 / 6.52.7 / 2.6
1回の推論呼び出し時間(概算)約152ms約377ms
推論デバイスCPUCPU

YOLO11nでは、おおむね6.5~6.7 FPSで動作する状況を確認しましたが、スクリーンショットには5.3 FPSの表示も記録されています。

YOLO11sでは、2.6~2.7 FPS程度の処理性能を確認しました。
代表値を比較すると、YOLO11nはYOLO11sに対して約2.5倍の処理速度となりました。

今回の環境では、モデル規模の違いがCPU推論性能に大きく影響する結果となりました。

なお、これらは実行時に観測したFPSであり、一定時間にわたる統計的なベンチマーク結果ではありません。

6. 考察

6.1 CPUのみでの物体検出

今回の検証では、Intel Processor N95のCPUのみでも、YOLO11による物体検出が実行できることを確認しました。

YOLO11nでは約6.6 FPS、YOLO11sでは約2.65 FPSという処理性能が得られました。

高速な映像解析には制約がありますが、対象物の存在確認や、一定間隔で画像を解析する用途では、CPUのみでの構成も検討できる可能性があります。

実際の適用可否は、要求される応答時間や認識性能によって判断する必要があります。

6.2 モデル規模と処理性能

YOLO11nとYOLO11sの比較では、軽量なYOLO11nの方が約2.5倍高速でした。

AIモデルをシステムに組み込む場合、モデルの認識性能だけでなく、処理速度、消費リソース、ハードウェアコストなどを考慮する必要があります。

特に小型PCや組込みLinux環境では、用途に適したモデルの選択が重要になります。

6.3 誤認識と未検出

今回の検証で特徴的だったのは、USBメモリをスマートフォンとして誤認識したことです。

また、Suicaについては検出されませんでした。

この結果は、学習済みモデルの検出対象と、実際にシステムで認識したい対象物が必ずしも一致しないことを示しています。

特定の電子部品、工具、製品、設備の状態などを識別する場合には、目的に応じたデータセットの準備やモデルの追加学習などが必要になる可能性があります。

また、信頼度が表示されていても、それだけで検出結果の正しさを保証できるわけではありません。

6.4 今後の評価課題

今回の検証は基本動作の確認であり、実用化に向けては追加評価が必要です。

  • 照明や撮影距離による検出結果の変化
  • 誤認識・未検出の発生頻度
  • 長時間連続運転時の安定性
  • CPU負荷・メモリ使用量
  • カメラ入力から結果出力までの全体遅延
  • OpenVINOなどを使用した推論処理の高速化

これらについては、今後の検証課題とします。

7. 今後の応用可能性

7.1 設備監視・IoTシステム

カメラで撮影した画像から対象物を検出し、その結果を監視システムやデータベースに送信する構成が考えられます。

例えば、物体の有無や配置状況を検出し、HTTP APIなどを通じて既存システムに通知する用途です。

ただし、業務で利用するためには、対象物に応じた認識性能の検証が必要です。

7.2 ROS2・移動ロボットとの連携

画像認識結果をROS2のトピックとして配信することで、ロボットの周辺環境認識や動作判断に利用することが考えられます。

例えば、カメラで人物や対象物を検出し、その結果をロボットの制御プログラムに渡す構成です。

実際の移動制御では、画像認識だけに依存するのではなく、LiDARなどの距離センサーや安全機構との組み合わせが必要になります。

7.3 エッジAI・フィジカルAIへの展開

Raspberry Piや産業用小型PCなどのエッジデバイスで画像認識を実行し、認識結果をマイコンやロボット制御システムに連携する構成も考えられます。

AIによる認識結果を物理的な機器の動作に結び付けることは、フィジカルAIを構成する要素技術の一つです。

今回の検証では画像認識部分のみを扱いましたが、今後はROS2、センサー、モーター制御などとの連携を検討していきます。

8. まとめ

Ubuntu 24.04 LTSを搭載したIntel Processor N95のPCとLogicool C920を使用し、YOLO11によるAI物体検出の要素技術検証を実施しました。

YOLO11nとYOLO11sの2種類の学習済みモデルをCPUのみで実行し、次の結果を確認しました。

  • カップ、PC用マウス、はさみ、iPhoneを検出できた
  • USBメモリをスマートフォンとして誤認識した
  • Suicaは検出されなかった
  • YOLO11nは約6.6 FPS、YOLO11sは約2.65 FPSで動作した
  • YOLO11nはYOLO11sに対して約2.5倍の処理速度を示した

今回の検証により、専用GPUによるアクセラレーションを使用しない小型PCでも、学習済みAIモデルによる物体検出が実行できることを確認しました。

同時に、学習済みモデルの検出対象には制約があり、誤認識や未検出を考慮する必要があることも確認できました。

今後は、ROS2やIoT、既存業務システムとの連携など、画像認識を実際のシステムに組み込むための技術検証へ展開していきます。


関連技術: Ubuntu 24.04 / Python / OpenCV / PyTorch / YOLO11 / CPU推論 / エッジAI / ROS2 / IoT

開発・技術検証に関するお問い合わせ

株式会社インデペンデンスシステムズ横浜では、組込みLinux、Raspberry Pi、センサー連携、ROS2、画像処理などを利用したソフトウェア開発・技術検証に取り組んでいます。

技術検証や既存システムとの連携については、企業サイトのお問い合わせフォームよりご相談ください。

株式会社インデペンデンスシステムズ横浜