コンテンツにスキップ

クイックスタートガイド: Ultralytics YOLO11とRaspberry Pi

この包括的なガイドでは、Raspberry PiデバイスへのUltralytics YOLO11のデプロイについて詳しく説明します。さらに、これらの小型で強力なデバイス上でのYOLO11の性能を示すパフォーマンスベンチマークを紹介します。



見る: Raspberry Pi 5のアップデートと改善点。

このガイドは、最新のRaspberry Pi OS Bookworm (Debian 12)を実行している Raspberry Pi 4 および Raspberry Pi 5 でテストされています。同じ Raspberry Pi OS Bookworm がインストールされていれば、Raspberry Pi 3 などの古い Raspberry Pi デバイスでもこのガイドを使用できるはずです。

Raspberry Piとは何ですか?

Raspberry Piは、小型で手頃な価格のシングルボードコンピュータです。趣味のホームオートメーションから産業用途まで、幅広いプロジェクトやアプリケーションで普及しています。Raspberry Piボードは、さまざまなオペレーティングシステムを実行でき、センサー、アクチュエータ、その他のハードウェアコンポーネントとの容易な統合を可能にするGPIO(汎用入出力)ピンを提供します。仕様が異なるさまざまなモデルがありますが、すべて低コスト、コンパクト、汎用性があるという基本的な設計思想を共有しています。

Raspberry Piシリーズ比較

Raspberry Pi 3 Raspberry Pi 4 Raspberry Pi 5
CPU Broadcom BCM2837, Cortex-A53 64Bit SoC Broadcom BCM2711、Cortex-A72 64Bit SoC Broadcom BCM2712, Cortex-A76 64Bit SoC
CPU 最大周波数 1.4GHz 1.8GHz 2.4GHz
GPU Videocore IV Videocore VI VideoCore VII
GPU 最大周波数 400MHz 500MHz 800Mhz
メモリ 1GB LPDDR2 SDRAM 1GB、2GB、4GB、8GB LPDDR4-3200 SDRAM 4GB、8GB LPDDR4X-4267 SDRAM
PCIe N/A N/A 1xPCIe 2.0インターフェース
最大消費電力 2.5A@5V 3A@5V 5A@5V (PD対応)

Raspberry Pi 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へのRaspberry Pi OSのフラッシュ

Raspberry Piを入手した後に最初にすべきことは、Raspberry Pi OSをmicro-SDカードに書き込み、デバイスに挿入してOSを起動することです。詳細なRaspberry Piによる入門ドキュメントに従って、デバイスを初めて使用する準備をしてください。

Ultralyticsのセットアップ

UltralyticsパッケージをRaspberry Piにセットアップして、次世代のコンピュータービジョンプロジェクトを構築する方法は2つあります。どちらの方法でも可能です。

Dockerから開始

Raspberry PiでUltralytics YOLO11を始める最も速い方法は、Raspberry Pi用の構築済みDockerイメージで実行することです。

下記のコマンドを実行して、Dockerコンテナをpullし、Raspberry Pi上で実行してください。これは、Python 3環境にDebian 12(Bookworm)を含むarm64v8/debian Dockerイメージに基づいています。

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

完了したら、Raspberry PiでNCNNを使用するセクションに進んでください。

Dockerなしで開始

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

ここでは、PyTorchモデルを他のさまざまな形式でエクスポートできるように、オプションの依存関係とともにUltralyticsパッケージをRaspberry Piにインストールします。

  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がサポートするすべてのモデルエクスポート形式の中で、NCNNは、Raspberry Piデバイスで作業する場合に最高の推論パフォーマンスを提供します。これは、NCNNがモバイル/組み込みプラットフォーム(ARMアーキテクチャなど)向けに高度に最適化されているためです。

モデルを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 5 YOLO11 ベンチマーク

YOLO11のベンチマークは、Ultralyticsチームによって、速度と精度を測定するために10種類のモデル形式(PyTorch、TorchScript、ONNX、OpenVINO、TF SavedModel、TF GraphDef、TF Lite、PaddlePaddle、MNN、NCNN)で実行されました。ベンチマークは、Raspberry Pi 5上で、FP32 精度、デフォルトの入力画像サイズ640で実行されました。

比較チャート

YOLO11nおよびYOLO11sモデルのベンチマークのみを含めました。他のモデルサイズはRaspberry Piで実行するには大きすぎ、十分なパフォーマンスを提供しないためです。

RPi 5でのYOLO11ベンチマーク
Ultralytics 8.3.152でベンチマークを実施

詳細な比較表

以下の表は、Raspberry Pi 5上で実行される2つの異なるモデル(YOLO11n、YOLO11s)について、10種類の異なる形式(PyTorch、TorchScript、ONNX、OpenVINO、TF SavedModel、TF GraphDef、TF Lite、PaddlePaddle、MNN、NCNN)でのベンチマーク結果を示しています。各組み合わせについて、ステータス、サイズ、mAP50-95(B)メトリック、推論時間を提供します。

パフォーマンス

形式 ステータス ディスク上のサイズ(MB) mAP50-95(B) 推論時間 (ms/im)
PyTorch 5.4 0.5101 387.63
TorchScript 10.5 0.5077 457.84
ONNX 10.2 0.5077 191.09
OpenVINO 10.4 0.5058 84.76
TF SavedModel 25.9 0.5077 306.94
TF GraphDef 10.3 0.5077 309.82
TF Lite 10.3 0.5077 425.77
PaddlePaddle 20.5 0.5077 463.93
MNN 10.1 0.5059 114.97
NCNN 10.2 0.5031 94.03
形式 ステータス ディスク上のサイズ(MB) mAP50-95(B) 推論時間 (ms/im)
PyTorch 18.4 0.5791 962.69
TorchScript 36.5 0.5782 1181.94
ONNX 36.3 0.5782 449.85
OpenVINO 36.4 0.5810 181.53
TF SavedModel 91.0 0.5782 660.62
TF GraphDef 36.4 0.5782 669.23
TF Lite 36.3 0.5782 1093.41
PaddlePaddle 72.6 0.5782 1140.61
MNN 36.2 0.5805 274.63
NCNN 36.2 0.5784 224.20

Ultralytics 8.3.152でベンチマークを実施

推論時間には、プリ/ポスト処理は含まれていません。

結果の再現

上記のUltralyticsベンチマークをすべてのエクスポート形式で再現するには、次のコードを実行します:

from ultralytics import YOLO

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

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

ベンチマークの結果は、システムの正確なハードウェアおよびソフトウェア構成、ベンチマーク実行時のシステムの現在のワークロードによって異なる可能性があることに注意してください。最も信頼性の高い結果を得るには、多数の画像を含むデータセット(例:)を使用してください。 data='coco.yaml' (5000の検証画像)。

Raspberry Pi Cameraを使用する

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

Raspberry Pi 5 は Raspberry Pi 4 よりも小型の CSI コネクタを使用しているため (15 ピン vs 22 ピン)、Raspberry Pi カメラに接続するには 15 ピン - 22 ピンのアダプタケーブル が必要になります。

カメラのテスト

カメラをRaspberry Piに接続した後、次のコマンドを実行します。カメラからのライブビデオフィードが約5秒間表示されるはずです。

rpicam-hello

ヒント

詳細についてはこちらをご覧ください rpicam-hello 公式のRaspberry Piドキュメントでの使用法

カメラを使用した推論

Raspberry Pi Cameraを使用してYOLO11モデルを推論するには、2つの方法があります。

使用法

使用できます picamera2 これは、カメラにアクセスし、YOLO11 モデルを推論するために Raspberry Pi OS にプリインストールされています。

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 Piで最大のパフォーマンスを実現するために従うべきいくつかのベストプラクティスがあります。

  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を少し節約でき、コンピュータビジョン処理のためのスペースを増やすことができます。

  3. Raspberry Piのオーバークロック

    Raspberry Pi 5でUltralytics YOLO11モデルを実行する際にパフォーマンスを少し向上させたい場合は、CPUをベースの2.4GHzから2.9GHzに、GPUを800MHzから1GHzにオーバークロックできます。システムが不安定になったりクラッシュしたりする場合は、オーバークロック値を100MHzずつ減らしてください。オーバークロックは発熱量を増加させ、サーマルスロットリングにつながる可能性があるため、適切な冷却対策を講じてください。

    a. ソフトウェアをアップグレードする

    sudo apt update && sudo apt dist-upgrade
    

    b. 構成ファイルを編集するために開きます

    sudo nano /boot/firmware/config.txt
    

    c. 以下の行を末尾に追加します

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1
    

    d. CTRL + X、次にYを押して保存して終了し、ENTERを押します

    e. Raspberry Piを再起動します

次のステップ

Raspberry PiへのYOLOのセットアップが完了しました。おめでとうございます!更なる学習とサポートについては、Ultralytics YOLO11 DocsKashmir World Foundationをご覧ください。

謝辞と引用

このガイドは当初、絶滅危惧種の保護に YOLO を活用することに尽力している Kashmir World Foundation の Daan Eeltink によって作成されました。オブジェクト検出技術の分野における彼らの先駆的な取り組みと教育的焦点に感謝いたします。

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形式は、モバイルおよび組み込みプラットフォーム向けに高度に最適化されており、Raspberry PiデバイスでのAIタスクの実行に最適です。NCNNは、ARMアーキテクチャを活用して推論性能を最大化し、他の形式と比較してより高速かつ効率的な処理を提供します。サポートされているエクスポートオプションの詳細については、Ultralyticsのデプロイメントオプションに関するドキュメントページをご覧ください。

Raspberry Piで使用するために、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-bit SoCを使用し、Raspberry Pi 5はBroadcom BCM2712、Cortex-A76 64-bit 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シリーズの比較表を参照してください。

Ultralytics YOLO11でRaspberry Pi Camera Moduleを使用するには、どのように設定すればよいですか?

YOLO11推論用にRaspberry Piカメラをセットアップする方法は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年前に作成 ✏️ 2か月前に更新

コメント