クイックスタートガイド: Raspberry Pi と Ultralytics YOLO26
この包括的なガイドでは、Raspberry Pi デバイスに Ultralytics YOLO26 をデプロイするための詳細な手順を説明します。さらに、小型で強力なこれらのデバイス上での YOLO26 の能力を実証するために、パフォーマンスベンチマークを紹介します。
Watch: Raspberry Pi 5 updates and improvements.
本ガイドは、最新の Raspberry Pi OS Bookworm (Debian 12) を実行する Raspberry Pi 4 および Raspberry Pi 5 でテストされています。Raspberry Pi 3 などの古いデバイスでも、同じ Raspberry Pi OS Bookworm がインストールされていれば、本ガイドを使用して動作することが期待されます。
Raspberry Pi とは?
Raspberry Pi は、小型で手頃な価格のシングルボードコンピュータです。ホビー用途のホームオートメーションから産業利用まで、幅広いプロジェクトやアプリケーションで人気を博しています。Raspberry Pi ボードは多様なオペレーティングシステムを動作させることができ、GPIO (General Purpose Input/Output) ピンを備えているため、センサー、アクチュエータ、その他のハードウェアコンポーネントとの統合が容易です。異なる仕様のモデルが提供されていますが、すべて「低コスト、コンパクト、多用途」という基本的な設計哲学を共有しています。
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 が提供するコンパクトなシングルボードコンピュータファミリー向けに、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 を入手した後に最初に行うべきことは、micro-SD カードに Raspberry Pi OS を書き込み、デバイスに挿入して OS を起動することです。詳細については、Raspberry Pi による入門ドキュメントに従って、初回利用のためのデバイス準備を行ってください。
Ultralytics のセットアップ
Raspberry Pi 上で次の コンピュータビジョン プロジェクトを構築するために、Ultralytics パッケージをセットアップする方法は 2 通りあります。どちらを使用しても構いません。
Docker で開始する
Raspberry Pi で Ultralytics YOLO26 を使用する最も早い方法は、Raspberry Pi 用の事前構築済み Docker イメージで実行することです。
以下のコマンドを実行して Docker コンテナをプルし、Raspberry Pi 上で実行してください。これは、Python3 環境で 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 モデルを他の異なるフォーマットにエクスポートできるように、オプションの依存関係を含めて Raspberry Pi に Ultralytics パッケージをインストールします。
-
パッケージリストを更新し、pipをインストールして最新版にアップグレードします
sudo apt update sudo apt install python3-pip -y pip install -U pip -
オプションの依存関係を含む
ultralyticspipパッケージをインストールしますpip install ultralytics[export] -
デバイスを再起動します
sudo reboot
Raspberry Pi で NCNN を使用する
Ultralytics がサポートするすべてのモデルエクスポートフォーマットの中で、NCNN は、Raspberry Pi デバイスで作業する場合に最高の推論パフォーマンスを発揮します。これは、NCNN がモバイル/組み込みプラットフォーム (ARM アーキテクチャなど) 向けに高度に最適化されているためです。
モデルを NCNN に変換して推論を実行する
PyTorch フォーマットの YOLO26n モデルを 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")サポートされているエクスポートオプションの詳細については、デプロイメントオプションに関する Ultralytics ドキュメントページをご覧ください。
YOLO11 と比較した YOLO26 のパフォーマンス向上
YOLO26 は、Raspberry Pi 5 のようなハードウェア制約のあるデバイスで実行するために特別に設計されています。YOLO11n と比較して、YOLO26n は Raspberry Pi 5 上の ONNX エクスポートモデル(入力サイズ 640)において、mAP を向上(39.5 → 40.1)させつつ、FPS も約 15% 向上(6.79 → 7.79)させています。以下の表とグラフでこの比較を示します。
| モデル | mAP50-95(B) | 推論時間 (ms/im) |
|---|---|---|
| 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 チームによって 10 種類のモデルフォーマット(PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch)の速度と精度を測定して実行されました。ベンチマークは、デフォルトの入力画像サイズ 640 を使用し、FP32 精度で Raspberry Pi 5 上で実行されました。
比較チャート
YOLO26n および YOLO26s モデルのベンチマークのみを含めています。他のモデルサイズは Raspberry Pi で実行するには大きすぎ、適切なパフォーマンスが得られないためです。
詳細な比較表
下の表は、2 種類のモデル (YOLO26n, YOLO26s) を 10 種類のフォーマット (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch) で Raspberry Pi 5 上で実行したベンチマーク結果を示しており、各組み合わせのステータス、サイズ、mAP50-95(B) メトリクス、推論時間を提供します。
| 形式 | ステータス | ディスク上のサイズ (MB) | mAP50-95(B) | 推論時間 (ms/im) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4798 | 302.15 |
| TorchScript | ✅ | 9.8 | 0.4764 | 357.58 |
| ONNX | ✅ | 9.5 | 0.4764 | 130.33 |
| OpenVINO | ✅ | 9.6 | 0.4818 | 70.74 |
| TF SavedModel | ✅ | 24.6 | 0.4764 | 213.58 |
| TF GraphDef | ✅ | 9.5 | 0.4764 | 213.5 |
| TF Lite | ✅ | 9.9 | 0.4764 | 251.41 |
| MNN | ✅ | 9.4 | 0.4784 | 90.89 |
| NCNN | ✅ | 9.4 | 0.4805 | 67.69 |
| ExecuTorch | ✅ | 9.4 | 0.4764 | 148.36 |
Ultralytics 8.4.1 でベンチマーク測定
推論時間には前処理/後処理は含まれていません。
結果の再現
すべての エクスポートフォーマット で上記の 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枚の検証用画像)のように、画像数の多いデータセットを使用してください。
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カメラに接続するには15ピン-22ピン変換アダプタケーブルが必要です。
カメラのテスト
カメラをRaspberry Piに接続した後、次のコマンドを実行してください。約5秒間、カメラからのライブビデオフィードが表示されるはずです。
rpicam-hello公式Raspberry Piドキュメントでのrpicam-helloの使用方法について詳細をご覧ください。
カメラを用いた推論
Raspberry Piカメラを使用して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日連続で使用する場合、システムにはSSDを使用することを推奨します。SDカードは継続的な書き込みに耐えられず、破損する可能性があるためです。Raspberry Pi 5のオンボードPCIeコネクタを使用すれば、NVMe Base for Raspberry Pi 5などのアダプタを使用してSSDを接続できます。
-
GUIなしでのフラッシュ
Raspberry Pi OSをフラッシュする際、デスクトップ環境(Raspberry Pi OS Lite)をインストールしないことを選択できます。これによりデバイスのRAMを節約でき、コンピュータビジョン処理により多くの領域を確保できます。
-
Raspberry Piのオーバークロック
Raspberry Pi 5でUltralytics YOLO26モデルを実行する際、パフォーマンスを少し向上させたい場合は、CPUをベースの2.4GHzから2.9GHzに、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でYOLOのセットアップが完了しました。さらなる学習とサポートについては、Ultralytics YOLO26 DocsおよびKashmir World Foundationをご覧ください。
謝辞および引用
このガイドは当初、絶滅危惧種の保護のためにYOLOを活用することに専念する団体、Kashmir World FoundationのDaan Eeltink氏によって作成されました。オブジェクト検出技術の領域における彼らの先駆的な取り組みと教育的な重点に敬意を表します。
Kashmir World Foundationの活動に関する詳細は、彼らのウェブサイトをご覧ください。
FAQ
Dockerを使用せずにRaspberry PiでUltralytics YOLO26をセットアップするにはどうすればよいですか?
DockerなしでRaspberry PiにUltralytics YOLO26をセットアップするには、以下の手順に従ってください。
- パッケージリストを更新し、
pipをインストールします。sudo apt update sudo apt install python3-pip -y pip install -U pip - オプションの依存関係を含めてUltralyticsパッケージをインストールします。
pip install ultralytics[export] - デバイスを再起動して変更を適用します。
sudo reboot
詳細な手順については、Dockerなしで開始するセクションを参照してください。
AIタスクのためにRaspberry PiでUltralytics YOLO26のNCNN形式を使用すべき理由は何ですか?
Ultralytics YOLO26のNCNN形式はモバイルおよび組み込みプラットフォーム向けに高度に最適化されており、Raspberry PiデバイスでのAIタスク実行に最適です。NCNNはARMアーキテクチャを活用することで推論パフォーマンスを最大化し、他の形式と比較してより高速で効率的な処理を提供します。サポートされているエクスポートオプションの詳細については、デプロイオプションに関するUltralyticsドキュメントページをご覧ください。
Raspberry Piで使用するためにYOLO26モデルをNCNN形式に変換するにはどうすればよいですか?
PythonまたはCLIコマンドを使用して、PyTorchのYOLO26モデルを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を使用するセクションを参照してください。
YOLO26を実行する上で関連する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 4と比較してRaspberry Pi 5でのYOLO26モデルのパフォーマンスベンチマークが向上しています。詳細はRaspberry Piシリーズ比較テーブルを参照してください。
Ultralytics YOLO26で動作するようにRaspberry Piカメラモジュールをセットアップするにはどうすればよいですか?
YOLO26の推論のためにRaspberry Piカメラをセットアップする方法は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")
詳細なセットアップ手順については、カメラを用いた推論セクションをご覧ください。