コンテンツへスキップ

クイックスタートガイドラズベリーパイとUltralytics YOLO11

この包括的なガイドでは、Ultralytics YOLO11 をRaspberry Piデバイスにデプロイするための詳細なウォークスルーを提供します。さらに、これらの小型で強力なデバイス上でのYOLO11 の機能を実証するためのパフォーマンスベンチマークも紹介しています。



見るんだ: Raspberry Pi 5のアップデートと改良。

このガイドは最新のRaspberry Pi OS Bookworm (Debian 12)が動作するRaspberry Pi 4とRaspberry Pi 5でテストされています。Raspberry Pi 3などの古いRaspberry Piデバイスにこのガイドを使用しても、同じRaspberry Pi OS Bookwormがインストールされている限り、動作することが期待されます。

ラズベリーパイとは?

ラズベリー・パイは小型で手頃な価格のシングルボードコンピューターだ。趣味のホームオートメーションから産業用途まで、幅広いプロジェクトやアプリケーションで人気を博している。ラズベリー・パイのボードは、さまざまなオペレーティング・システムを実行でき、センサーやアクチュエーター、その他のハードウェア・コンポーネントと簡単に統合できるGPIO(汎用入出力)ピンを備えている。さまざまな仕様のモデルがあるが、低価格、コンパクト、多用途という基本的な設計思想は共通している。

Raspberry Piシリーズの比較

ラズベリーパイ3 ラズベリーパイ4 ラズベリーパイ5
CPU Broadcom BCM2837、Cortex-A53 64ビットSoC Broadcom BCM2711、Cortex-A72 64ビットSoC Broadcom BCM2712、Cortex-A76 64ビットSoC
CPU 最大周波数 1.4GHz 1.8GHz 2.4GHz
GPU ビデオコアIV ビデオコアVI ビデオコアVII
GPU 最大周波数 400Mhz 500Mhz 800Mhz
メモリー 1GB LPDR2 SDRAM 1GB、2GB、4GB、8GB LPDR4-3200 SDRAM 4GB、8GB LPDR4X-4267 SDRAM
PCIe 該当なし 該当なし 1xPCIe 2.0インターフェイス
最大消費電力 2.5A@5V 3A@5V 5A@5V(PD有効)

ラズベリーパイOSとは?

Raspberry Pi OS(旧称:Raspbian)は、Raspberry Pi Foundationが配布するコンパクトなシングルボードコンピュータRaspberry Piファミリ用のDebian GNU/LinuxディストリビューションをベースにしたUnixライクなオペレーティングシステムである。Raspberry Pi OSは、ARM CPUを搭載したRaspberry Pi向けに高度に最適化されており、Openboxスタッキングウィンドウマネージャと修正LXDEデスクトップ環境を使用しています。Raspberry Pi OS は、Raspberry Pi 上で可能な限り多くの Debian パッケージの安定性と性能を向上させることに重点を置き、活発に開発が進められています。

Raspberry Pi OSをRaspberry Piにフラッシュする

Raspberry Piを手に入れたらまず最初にすることは、Raspberry Pi OSが入ったマイクロSDカードをフラッシュし、デバイスに挿入してOSを起動することです。Raspberry Piによる詳細な「Getting Started Documentation」に沿って、デバイスを初めて使う準備をしましょう。

セットアップUltralytics

次のComputer Visionプロジェクトを構築するために、Raspberry PiでUltralytics パッケージをセットアップする方法は2つあります。どちらを使っても構いません。

Dockerで始める

Raspberry Pi でUltralytics YOLO11 を使い始める最も早い方法は、Raspberry Pi 用にビルド済みの docker イメージを使って実行することだ。

以下のコマンドを実行すると、Raspberry Pi上でDockerコンテナが実行されます。これは、Python3環境のDebian 12 (Bookworm) を含むarm64v8/debiandockerイメージに基づいています。

t=ultralytics/ultralytics:latest-arm64 && sudo docker pull $t && sudo docker run -it --ipc=host $t

これが終わったら、Raspberry PiでNCNN

Dockerなしで始める

Ultralytics パッケージのインストール

ここでは、Ultralytics パッケージを Raspberry Pi にインストールします。 PyTorchをインストールします。

  1. パッケージリストの更新、pipのインストール、最新版へのアップグレード

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. インストール ultralytics pip パッケージと依存関係のあるオプション

    pip install ultralytics[export]
    
  3. デバイスを再起動する

    sudo reboot
    

Raspberry PiでNCNN 。

Ultralytics でサポートされているすべてのモデルエクスポートフォーマットの中で、、 NCNNNCNN はモバイル/組込みプラットフォーム(ARMアーキテクチャなど)に高度に最適化されているため、Raspberry Piデバイスで作業する際に最高の推論パフォーマンスを発揮します。そのため、NCNN を Raspberry Pi で使用することをお勧めします。

モデルをNCNN に変換し、推論を実行する。

PyTorch 形式のYOLO11nモデルは、エクスポートされたモデルで推論を実行するためにNCNN 。

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo11n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn  # creates 'yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

チップ

サポートされているエクスポートオプションの詳細については、Ultralytics 配置オプションのドキュメントページを参照してください。

Raspberry Pi 5YOLO11 ベンチマーク

YOLO11 Ultralytics PyTorch, , , , , , Lite, , .ベンチマークはRaspberry Pi 5上で、FP32のTorchScript ONNX OpenVINO TF SavedModel TF GraphDef TF PaddlePaddle NCNN精度で、デフォルトの入力画像サイズ640で実行された。

比較表

YOLO11nとYOLO11sのベンチマークを掲載したのは、YOLO11nとYOLO11sのみである。

YOLO11 RPi 5でのベンチマーク
Ultralytics 8.3.39でベンチマーク。

詳細比較表

下の表は、2つの異なるモデル(YOLO11n、YOLO11s)を9つの異なるフォーマット(PyTorch 、TorchScript 、ONNX 、OpenVINO 、TF 、SavedModel 、TF 、GraphDef 、TF Lite 、PaddlePaddle 、NCNN )でRaspberry Pi 5上で実行した場合のベンチマーク結果で、各組み合わせのステータス、サイズ、mAP50-95(B)メトリック、推論時間を示している。

パフォーマンス

フォーマット ステータス ディスク上のサイズ (MB) mAP50-95(B) 推論時間(ms/im)
PyTorch 5.4 0.6100 405.238
TorchScript 10.5 0.6082 526.628
ONNX 10.2 0.6082 168.082
OpenVINO 10.4 0.6082 81.192
TF SavedModel 25.8 0.6082 377.968
TF GraphDef 10.3 0.6082 487.244
TF ライト 10.3 0.6082 317.398
PaddlePaddle 20.4 0.6082 561.892
MNN 10.1 0.6106 112.554
NCNN 10.2 0.6106 88.026
フォーマット ステータス ディスク上のサイズ (MB) mAP50-95(B) 推論時間(ms/im)
PyTorch 18.4 0.7526 1011.60
TorchScript 36.5 0.7416 1268.502
ONNX 36.3 0.7416 324.17
OpenVINO 36.4 0.7416 179.324
TF SavedModel 91.1 0.7416 714.382
TF GraphDef 36.4 0.7416 1019.83
TF ライト 36.4 0.7416 849.86
PaddlePaddle 72.5 0.7416 1276.34
MNN 36.2 0.7409 273.032
NCNN 36.2 0.7419 194.858

Ultralytics 8.3.39でベンチマーク。

結果を再現する

上記のUltralytics のベンチマークをすべてのエクスポートフォーマットで再現するには、以下のコードを実行してください:

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml", imgsz=640)
# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolo11n.pt data=coco8.yaml imgsz=640

ベンチマークの結果は、システムの正確なハードウェアとソフトウェアの構成、およびベンチマークの実行時のシステムの現在の作業負荷によって異なる可能性があることに注意してください。最も信頼性の高い結果を得るには、画像数の多いデータセットを使用します。 data='coco8.yaml' (4 val images), ordata='coco.yaml'` (5000 val images)。

ラズベリーパイのカメラを使う

Raspberry PiをComputer Visionプロジェクトに使用する場合、リアルタイムのビデオフィードを取得して推論を実行することが基本になります。Raspberry Piに搭載されているMIPI CSIコネクタを使用すると、公式のRaspberry Piカメラモジュールを接続することができます。このガイドでは、Raspberry Pi カメラモジュール 3を使用してビデオフィードを取得し、YOLO11 モデルを使用して推論を実行します。

Raspberry Pi 5はRaspberry Pi 4より小さいCSIコネクタ(15ピン対22ピン)を使用しているため、Raspberry Pi Cameraに接続するには15ピンから22ピンへのアダプタケーブルが必要です。

カメラのテスト

カメラをRaspberry Piに接続した後、以下のコマンドを実行します。カメラのライブ映像が約5秒間表示されるはずです。

rpicam-hello

カメラによる推論

YOLO11 モデルの推論にRaspberry Pi Cameraを使用する方法は2つある。

使用方法

を使うことができる。 picamera2ラズベリー・パイOSがプリインストールされており、カメラと推論YOLO11 モデルにアクセスできる。

import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLO11 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()

でTCPストリームを開始する必要がある。 rpicam-vid このストリームのURLは、後で推論を行う際に入力として使用できます。以下のコマンドを実行して、TCPストリームを開始する。

rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888

詳細はこちら rpicam-vid Raspberry Pi公式ドキュメントの使い方

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolo11n.pt source="tcp://127.0.0.1:8888"

チップ

画像/ビデオ入力タイプを変更したい場合は、推論ソースに関するドキュメントをチェックしてください。

Raspberry Piを使用する際のベストプラクティス

YOLO11 が動作する Raspberry Pis で最大限のパフォーマンスを発揮するためには、いくつかのベストプラクティスがあります。

  1. SSDの使用

    Raspberry Piを24時間365日使い続ける場合、SDカードでは連続した書き込みに耐えられず壊れてしまう可能性があるため、システムにはSSDを使用することをお勧めします。Raspberry Pi 5のオンボードPCIeコネクタでは、NVMe Base for Raspberry Pi 5のようなアダプタを使用してSSDを接続することができます。

  2. GUIなしのフラッシュ

    Raspberry Pi OSをフラッシュする際、デスクトップ環境(Raspberry Pi OS Lite)をインストールしないことを選択することができ、これによりデバイスのRAMを少し節約することができ、コンピュータビジョン処理により多くのスペースを残すことができます。

次のステップ

Raspberry PiにYOLO !さらなる学習とサポートについては、Ultralytics YOLO11 DocsandKashmir World Foundationをご覧ください。

謝辞と引用

このガイドブックは当初、Daan Eeltink氏によって、絶滅危惧種の保護にYOLO を使用することを専門とする団体、Kashmir World Foundationのために作成された。私たちは、物体検出技術の領域における彼らの先駆的な仕事と教育的な焦点に敬意を表します。

カシミール・ワールド財団の活動についての詳細は、ウェブサイトをご覧ください。

よくあるご質問

Dockerを使わずにRaspberry Pi上でUltralytics YOLO11 。

Dockerを使わずにRaspberry Pi上でUltralytics YOLO11 をセットアップするには、以下の手順に従ってください:

  1. パッケージリストを更新し、インストールする pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. Ultralytics パッケージとオプションの依存関係をインストールする:
    pip install ultralytics[export]
    
  3. デバイスを再起動して変更を適用する:
    sudo reboot
    

詳細な手順については、Dockerなしで開始するセクションを参照してください。

なぜAIタスクのためにRaspberry Pi上でUltralytics YOLO11 'のNCNN フォーマットを使う必要があるのか?

Ultralytics YOLO11 NCNN NCNN はARMアーキテクチャを活用することで推論パフォーマンスを最大化し、他のフォーマットと比較してより高速で効率的な処理を提供します。サポートされているエクスポートオプションの詳細については、Ultralytics ドキュメントのデプロイオプションのページをご覧ください。

ラズベリーパイで使用するために、YOLO11 のモデルをNCNN フォーマットに変換するにはどうすればよいですか?

Python またはCLI コマンドを使用して、PyTorch YOLO11 モデルをNCNN フォーマットに変換できます:

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolo11n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolo11n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn  # creates 'yolo11n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

詳しくは、Raspberry PiでNCNN

YOLO11 の実行に関連する Raspberry Pi 4 と Raspberry Pi 5 のハードウェアの違いは何ですか?

主な違いは以下の通り:

  • CPU:Raspberry Pi 4はBroadcom BCM2711、Cortex-A72 64ビットSoCを使用し、Raspberry Pi 5はBroadcom BCM2712、Cortex-A76 64ビットSoCを使用しています。
  • 最大周波数CPU :Raspberry Pi 4の最大周波数は1.8GHzですが、Raspberry Pi 5は2.4GHzです。
  • メモリ:Raspberry Pi 4は最大8GBのLPDDR4-3200 SDRAMを、Raspberry Pi 5は4GBと8GBのLPDDR4X-4267 SDRAMを搭載しています。

これらの機能強化により、Raspberry Pi 5のYOLO11 モデルの性能ベンチマークは、Raspberry Pi 4に比べて向上しています。詳細については、Raspberry Pi シリーズ比較表を参照してください。

Raspberry Pi カメラモジュールをUltralytics YOLO11 で動作させるにはどうすればいいですか?

YOLO11 推論用にRaspberry Pi Cameraをセットアップするには2つの方法がある:

  1. 使用 picamera2:

    import cv2
    from picamera2 import Picamera2
    
    from ultralytics import YOLO
    
    picam2 = Picamera2()
    picam2.preview_configuration.main.size = (1280, 720)
    picam2.preview_configuration.main.format = "RGB888"
    picam2.preview_configuration.align()
    picam2.configure("preview")
    picam2.start()
    
    model = YOLO("yolo11n.pt")
    
    while True:
        frame = picam2.capture_array()
        results = model(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("Camera", annotated_frame)
    
        if cv2.waitKey(1) == ord("q"):
            break
    
    cv2.destroyAllWindows()
    
  2. TCPストリームを使う

    rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
    
    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    results = model("tcp://127.0.0.1:8888")
    

詳細な設定方法については、「カメラによる推論」のセクションをご覧ください。

📅作成:1年前 ✏️更新しました 8日前

コメント