クイックスタートガイド: Raspberry PiでUltralytics YOLO26を使用する#
Raspberry Piは、Ultralytics YOLO26を実行して、GPUなしでエッジ上のリアルタイム物体検出を実現できる、小型で低価格のコンピューターです。このガイドでは、Raspberry Pi 4および5にYOLO26をデプロイする手順として、OSの書き込み、Ultralyticsのインストール、ARM上で最速の推論を実現するためのNCNNへのエクスポート、ライブカメラ映像での予測の実行までを説明します。また、8種類のエクスポート形式にわたるパフォーマンスベンチマークも掲載しているため、ハードウェアに最適な速度と精度のトレードオフを選択できます。
Ultralyticsのセットアップ、NCNNへのエクスポートと推論の実行、ベンチマーク、またはカメラ推論に移動します。
Watch: Raspberry Pi 5 updates and improvements.
このガイドは、最新のRaspberry Pi OS Bookworm (Debian 12)を実行するRaspberry Pi 4およびRaspberry Pi 5でテストされています。Raspberry Pi 3などの古いRaspberry Piデバイスでも、同じRaspberry Pi OS Bookwormがインストールされていれば、このガイドを使用できる見込みです。
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 | 該当なし | 該当なし | 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 OSをRaspberry Piに書き込む#
Raspberry Piを入手したら、まずmicro-SDカードにRaspberry Pi OSを書き込み、デバイスに挿入してOSを起動します。初回使用に向けたデバイスの準備については、Raspberry PiのGetting Startedドキュメントに沿って詳細を確認してください。
Ultralyticsをセットアップする#
次のコンピュータービジョンプロジェクトに向けて、Raspberry Pi上にUltralyticsパッケージをセットアップする方法は2つあります。
Dockerで始める#
Raspberry PiでUltralytics YOLO26を最も速く使い始める方法は、Raspberry Pi用のビルド済みDockerイメージを実行することです。
以下のコマンドを実行してDockerコンテナを取得し、Raspberry Pi上で実行します。これはarm64v8/ubuntu Dockerイメージをベースとしており、Python3環境でUbuntu 24.04を実行します。
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tDockerイメージにはすでにUltralyticsが含まれているため、そのままモデルをNCNNにエクスポートできます。
Dockerなしで始める#
Ultralyticsパッケージをインストールする#
ここでは、Raspberry PiにUltralyticsパッケージをインストールします。NCNNなどの形式用のエクスポート依存関係は、PyTorchモデルを初めてエクスポートするときに自動的にインストールされるため、ここではベースパッケージのみが必要です。
-
パッケージリストを更新し、pipをインストールして最新バージョンにアップグレードする
sudo apt update sudo apt install python3-pip -y pip install -U pip -
ultralyticspipパッケージをインストールするpip install ultralytics -
デバイスを再起動する
sudo reboot
Raspberry PiでNCNNを使用する#
Ultralyticsがサポートするすべてのモデルエクスポート形式の中で、NCNNはARMアーキテクチャなどのモバイル・組み込みプラットフォーム向けに高度に最適化されているため、Raspberry Piデバイスで最高の推論パフォーマンスを実現します。YOLO26n PyTorchモデルをNCNNに変換し、エクスポートしたモデルで推論を実行します。
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")サポートされているエクスポートオプションの詳細については、モデルデプロイオプションガイドを参照してください。
YOLO11に対するYOLO26のパフォーマンス向上#
YOLO26は、Raspberry Pi 5などのハードウェアリソースに制約のあるデバイスで実行するために特別に設計されています。YOLO11nと比較して、YOLO26nは、Raspberry Pi 5上でONNXにエクスポートしたモデルを入力サイズ640で使用した場合、より高いmAP(40.1対39.5)を実現しながら、FPSが約15%向上(6.79 → 7.79)します。以下の表とグラフにこの比較を示します。
| モデル | mAP50-95(B) | 推論時間(ms/画像) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.26 |
Ultralytics 8.4.14でベンチマークを実施しました。
Raspberry Pi 5 YOLO26ベンチマーク#
YOLO26のベンチマークは、Ultralyticsチームが8種類のモデル形式について速度と精度を測定して実施しました。対象はPyTorch、TorchScript、ONNX、OpenVINO、MNN、NCNN、ExecuTorch、LiteRTです。ベンチマークは、デフォルトの入力画像サイズ640、FP32精度でRaspberry Pi 5上で実施しました。
比較グラフ#
その他のモデルサイズはRaspberry Piで実行するには大きすぎ、十分なパフォーマンスも得られないため、YOLO26nモデルとYOLO26sモデルのベンチマークのみを掲載しています。
詳細比較表#
以下の表は、Raspberry Pi 5上で8種類の形式(PyTorch、TorchScript、ONNX、OpenVINO、MNN、NCNN、ExecuTorch、LiteRT)を使用して、2種類のモデル(YOLO26n、YOLO26s)について実行したベンチマーク結果を示し、各組み合わせのステータス、サイズ、mAP50-95(B)メトリック、推論時間をまとめています。
| 形式 | ステータス | ディスク上のサイズ(MB) | mAP50-95(B) | 推論時間(ms/画像) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
Ultralytics 8.4.108でベンチマークを実施しました
推論時間には前処理と後処理は含まれません。
結果を再現する#
上記のUltralyticsベンチマークをすべてのエクスポート形式で再現するには、次のコードを実行します。
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)ベンチマーク結果は、システムの正確なハードウェアおよびソフトウェア構成と、ベンチマーク実行時のシステムの現在のワークロードによって異なる場合があります。最も信頼性の高い結果を得るには、data='coco.yaml'(検証画像5000枚)など、画像数の多いデータセットを使用してください。
litert-converterにはaarch64 Linux wheelが含まれていないため、format=litertのエクスポートはLinux x86_64とmacOSでのみサポートされ、Raspberry Pi自体ではサポートされません。Linux x86_64マシンまたはMacで.tfliteモデルをエクスポートしてRaspberry Piにコピーし、推論にはPiを使用してください。
Raspberry Piカメラを使用する#
Raspberry Piをコンピュータービジョンプロジェクトで使用する場合、推論を実行するためにリアルタイムのビデオフィードを取得することが不可欠な場合があります。Raspberry Piに搭載されたMIPI CSIコネクターを使用すると、公式のRaspberry PIカメラモジュールを接続できます。このガイドでは、Raspberry Pi Camera Module 3を使用してビデオフィードを取得し、YOLO26モデルで推論を実行しています。
Raspberry Piが提供するさまざまなカメラモジュールと、Raspberry Piカメラモジュールの使い始め方について詳しく説明します。
Raspberry Pi 5はRaspberry Pi 4より小さいCSIコネクター(15ピン対22ピン)を使用するため、Raspberry Pi Cameraを接続するには15ピンから22ピンへのアダプターケーブルが必要です。
カメラをテストする#
カメラをRaspberry Piに接続した後、次のコマンドを実行します。カメラから約5秒間、ライブビデオフィードが表示されます。
rpicam-helloRaspberry Pi公式ドキュメントでのrpicam-helloの使用方法について詳しく説明します。
カメラで推論する#
Raspberry Pi Cameraを使用してYOLO26モデルで推論を実行する方法は2つあります。
Raspberry Pi OSにプリインストールされているpicamera2を使用してカメラにアクセスし、YOLO26モデルで推論を実行できます。
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 YOLO26 model
model = YOLO("yolo26n.pt")
while True:
# Capture frame-by-frame
frame = picam2.capture_array()
# Run YOLO26 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()画像またはビデオの入力タイプを変更する場合は、推論ソースに関するドキュメントを確認してください。
Raspberry Pi使用時のベストプラクティス#
YOLO26を実行するRaspberry Piで最大限のパフォーマンスを実現するには、いくつかのベストプラクティスに従う必要があります。
-
SSDを使用する
Raspberry Piを24時間365日継続して使用する場合、SDカードは連続書き込みに耐えられず故障する可能性があるため、システムにはSSDを使用することを推奨します。Raspberry Pi 5に搭載されたPCIeコネクターを使用すると、Raspberry Pi 5用NVMe BaseなどのアダプターでSSDを接続できます。
-
GUIなしで書き込む
Raspberry Pi OSを書き込む際に、デスクトップ環境(Raspberry Pi OS Lite)をインストールしないよう選択できます。これによりデバイスのRAMを少し節約し、コンピュータービジョン処理に使用できる領域を増やせます。
-
Raspberry Piをオーバークロックする
Raspberry Pi 5 上で Ultralytics YOLO26 モデルを実行する際にパフォーマンスをわずかに向上させたい場合は、CPU をベースの 2.4GHz から 3.0GHz に、GPU を 800MHz から 1GHz にオーバークロックできます。システムが不安定になったりクラッシュしたりする場合は、オーバークロック値を 100MHz 刻みで下げてください。オーバークロックにより発熱が増加しサーマルスロットリングを引き起こす可能性があるため、適切な冷却対策が施されていることを確認してください。
a. ソフトウェアをアップグレードする
sudo apt update && sudo apt dist-upgradeb. 設定ファイルを開いて編集する
sudo nano /boot/firmware/config.txtc. 以下の行を末尾に追加する
arm_freq=3000 gpu_freq=1000 force_turbo=1d. CTRL + X、Yの順に押して保存して終了し、ENTERを押す
e. Raspberry Piを再起動する
次のステップ#
これでRaspberry Pi上のYOLO26のセットアップが完了しました。さらに進むには、追加の推論オプションについてはPredictモード、追加のデプロイ形式についてはExportモードを確認してください。エッジでさらに多くの計算能力が必要な場合は、NVIDIA Jetsonガイドも参照してください。完全なドキュメントについては、Ultralytics YOLO26 Docsをご覧ください。
謝辞と引用#
このガイドは、絶滅危惧種の保全にYOLOを活用する団体、Kashmir World FoundationのためにDaan Eeltinkが初めに作成しました。物体検出技術の分野における同団体の先駆的な取り組みと教育への注力に感謝します。
Kashmir World Foundationの活動の詳細については、ウェブサイトをご覧ください。
FAQ#
Dockerを使用せずにRaspberry PiでUltralytics YOLO26をセットアップするには、次の手順に従います。
- パッケージリストを更新し、
pipをインストールします。sudo apt update sudo apt install python3-pip -y pip install -U pip - Ultralyticsパッケージをインストールします。
pip install ultralytics - 変更を適用するには、デバイスを再起動します:
sudo reboot
詳細な手順については、Dockerを使用せずに開始するセクションを参照してください。
- パッケージリストを更新し、
Ultralytics YOLO26のNCNN形式は、モバイルおよび組み込みプラットフォーム向けに高度に最適化されているため、Raspberry PiデバイスでAIタスクを実行するのに最適です。NCNNはARMアーキテクチャを活用して推論性能を最大化し、他の形式と比較して、より高速で効率的な処理を実現します。サポートされているその他のエクスポート形式については、モデルのエクスポートオプションを参照してください。
PyTorch YOLO26モデルは、PythonまたはCLIコマンドを使用してNCNN形式に変換できます:
例from ultralytics import YOLO # Load a YOLO26n PyTorch model model = YOLO("yolo26n.pt") # Export the model to NCNN format model.export(format="ncnn") # creates 'yolo26n_ncnn_model' # Load the exported NCNN model ncnn_model = YOLO("yolo26n_ncnn_model") # Run inference results = ncnn_model("https://ultralytics.com/images/bus.jpg")詳細については、Raspberry PiでNCNNを使用するセクションを参照してください。
主な違いは次のとおりです:
- 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 4と比較して、Raspberry Pi 5上でのYOLO26モデルのベンチマーク性能が向上します。詳細については、Raspberry Piシリーズ比較テーブルを参照してください。
YOLO26の推論用にRaspberry Pi Cameraを設定する方法は2つあります:
-
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("yolo26n.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() -
TCPストリームを使用する:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("tcp://127.0.0.1:8888")
詳細な設定手順については、カメラでの推論セクションを参照してください。
-