Raspberry Pi 5とAI HAT+で物体検出に挑戦
映像そのものを無線で送り続けるのではなく、端末側で映像を解析し、「何が、どのくらい滞在したか」という小さなデータだけを送信する仕組みを作ってみます。
無線のホップ通信を使って映像や音声をリアルタイムに伝送するには、十分な通信帯域を確保し、通信が途切れない環境を構築することが重要です。
しかし、複数の無線端末を経由するホップ通信では、ホップ数が増えるほど実効的な通信速度が低下しやすくなります。電波状況の変化やパケットの再送もあるため、映像を安定して送り続けるのは、なかなか難しいのが現状です。
それならば、映像そのものを送るのではなく、通信端末側で映像を解析し、必要な情報だけを取り出して送信すればよいのではないかと考えました。
例えば、カメラの映像から次のような情報を生成します。
何が映っているか
何個存在しているか
どのくらいの時間滞在していたか
いつ現れて、いついなくなったか
映像に比べれば、これらは非常に小さなデータです。そのため、通信速度がそれほど高くない無線方式でも、安定して情報を伝えられる可能性があります。
このように、データが発生する現場に近い場所で情報を処理する仕組みは、一般に「エッジコンピューティング」と呼ばれます。AIによる推論を端末側で行う場合は、「エッジAI」と呼ばれることもあります。
今回、実際にエッジAIを手元で動かしてみたくなりました。技術雑誌、メーカーの公式資料、インターネット、ChatGPTなどから情報を集め、Raspberry Pi 5を使って実現していきます。
システム開発では、最初に何を実現するのかを明確にする必要があります。いわゆる「要求仕様」です。
会社員時代の開発でも、この要求仕様が曖昧なまま作業を始め、後になって苦労することが何度もありました。
今回も、最初に二つの案を考えました。
Raspberry Pi 5はWi-Fiのステーションとしてインターネットに接続できます。
そこで、インターネットから取得したアメダスなどの気象観測データと、カメラで撮影した実際の空模様、降雨の状態、エッジ端末の設置位置などを組み合わせて、何らかの推論ができないかと考えました。
例えば、「現在の空模様から、この後に雨が降りそうか」を判定するシステムです。
面白そうなテーマですが、屋外に設置する場合は、防水・防塵、電源、夜間撮影、温度変化なども考慮しなければなりません。初めてのエッジAIとしては、少し規模が大きそうです。
もう一つは、カメラ映像に映った物体が何であるかをAIで判別し、その物体の滞在時間などを無線で送信するシステムです。
例えば、次のような情報を取得します。
人が映った
自動車が映った
犬や猫が映った
人が指定した範囲に30秒間滞在した
自動車が入ってきて、2分後に出ていった
よくある構成ではありますが、「まずエッジAIを動かしてみる」という段階では、この案の方が取り組みやすそうです。そこで今回は、案2を最初の目標にします。
USBカメラで映像を取得する
AIで映像内の物体を検出する
検出した物体を継続して追跡する
指定範囲内での滞在時間を計測する
物体の種類と滞在時間をWi-Fiで送信する
最初から映像の無線伝送までは行いません。Raspberry Pi 5の中で映像を解析し、物体名や滞在時間などの小さなデータだけを送信します。
USBカメラ
↓
Raspberry Pi 5
↓
YOLOによる物体検出
↓
物体ごとにIDを付けて追跡
↓
指定範囲内の滞在時間を計測
↓
検出結果をWi-Fiで送信
↓
受信側PCまたはサーバーで保存・表示
ChatGPTの回答と『Interface 2026年10月号』などを参考に、次のような構成を考えました。
本体:Raspberry Pi 5・8GB/システム全体の制御
AIアクセラレータ:AI HAT+ 13 TOPS/YOLOの推論処理
カメラ:手持ちのUSBカメラ/映像の取得
冷却:Raspberry Pi 5 Active Cooler/長時間動作時の発熱対策
ストレージ:64GB以上のmicroSDカード/OS、プログラム、ログの保存
電源:公式27W USB-C電源/Raspberry Pi 5の安定動作
無線:Raspberry Pi 5内蔵Wi-Fi/認識結果の送信
Raspberry Pi 5に「Raspberry Pi AI HAT+」を搭載すると、Hailo製のAIアクセラレータを利用して、物体検出などのAI推論を高速に実行できるようです。
これはAIモデルを学習させるための装置ではなく、学習済みのAIモデルを使って判定する「推論処理」を高速化するための装置です。
Raspberry Pi 5とUSBカメラはすでに持っているため、今回はAI HAT+だけを追加購入しました。
Amazonで購入したところ、13 TOPS版の価格は購入時点で15,650円でした。
https://www.amazon.co.jp/dp/B0DPLQ9TB9
26 TOPS版もありますが、価格が高いため今回は見送りました。カメラ1台と軽量なYOLOモデルを使った物体検出であれば、まずは13 TOPS版で十分と判断しました。
今後、複数のカメラや複数のAIモデルを同時に使用する場合は、26 TOPS版が必要になるかもしれません。
現時点では、次のソフトウェアを使用する予定です。
Raspberry Pi OS 64-bit:基本OS
Video4Linux2・OpenCV:USBカメラからの映像取得
HailoRT:AI HAT+の制御
YOLO:人、車、動物などの物体検出
ByteTrack:同じ物体を継続して追跡
Python:滞在時間の計算とシステム制御
OpenCV:映像処理と検出枠の表示
MQTT:認識結果の無線送信
SQLiteまたはCSV:検出結果と送信待ちデータの保存
当初はPicamera2とlibcameraの使用を考えていましたが、今回は手持ちのUSBカメラを使うため、Video4Linux2とOpenCVを中心に構成します。
将来、Raspberry Pi Camera Moduleに変更する場合は、Picamera2とlibcameraを使用する予定です。
YOLOは、カメラ映像や静止画に映っている物体を検出するためのAIモデルです。
単に「人が映っている」と判定するだけでなく、画像内のどの位置に存在するかを四角い枠で示すことができます。
一方、YOLOだけでは、連続する映像に映っている人物が同じ人物かどうかを管理するのは困難です。そこでByteTrackなどの追跡処理を追加し、検出した物体ごとにIDを割り当てます。
同じIDが指定した範囲内に存在している時間を計測することで、滞在時間を求めます。
最初は、Hailo向けに変換済みの軽量YOLOモデルを使用するのがよさそうです。候補には次のようなモデルがあります。
YOLOv8n
YOLOv8s
YOLOv11n
YOLOv5s
モデル名の末尾にある「n」は「nano」を表します。処理が軽いため、最初の動作確認に向いています。
HailoのAIアクセラレータでモデルを実行するには、通常、学習済みモデルをHailo用のHEF(Hailo Executable Format)形式に変換する必要があります。
ただし、最初から自分で変換するのは難しそうです。そこで、まずはHailo Model Zooやサンプルプログラムで提供されている、変換済みのモデルを使用します。
独自モデルの学習やHEF形式への変換は、基本的な物体検出が動作してから挑戦する予定です。
一般的なCOCOデータセットで学習されたYOLOモデルでは、約80種類の物体を検出できます。例えば、次のような物体です。
人
自動車
自転車
バイク
バス
トラック
犬
猫
椅子
バッグ
ペットボトル
これらは、自分で撮影データを集めて学習させなくても、学習済みモデルを使うことで検出できるようです。ここまでが最初から用意されているのは、ありがたいところです。
ただし、特定の電子部品、工具、製品型番など、COCOに含まれていない物体を検出するには、画像を収集して独自モデルを学習させる必要があります。
まずは既存モデルで人や車、身近な物体を検出し、YOLOとAI HAT+の使い方を理解することから始めます。
最終的には、映像そのものではなく、次のような情報だけを送信する予定です。
{
"device_id": "camera-01",
"object_id": 3,
"class": "person",
"confidence": 0.92,
"entered_at": "2026-09-03T14:20:10+09:00",
"left_at": "2026-09-03T14:21:02+09:00",
"dwell_seconds": 52,
"zone": "entrance"
}
この程度のデータ量であれば、映像をそのまま送信する場合と比べて通信量を大幅に削減できます。
最初はRaspberry Pi 5の内蔵Wi-Fiを使用します。その後、動作が確認できた段階で、802.11ahなどの長距離無線を使ったホップ通信へ発展させたいと考えています。
2026年9月3日((記)
Raspberry Pi 5へAI HAT+を取り付ける
Raspberry Pi OSからAI HAT+が認識されることを確認する
CSIカメラの映像を表示する
Hailoのサンプルプログラムを実行する
YOLOで人や車などを検出する
ByteTrackで同じ物体を追跡する
指定範囲内での滞在時間を計測する
MQTTを使って認識結果を送信する
Wi-Fiから802.11ahへ通信手段を変更する
今回は、実現したい内容と、必要になるハードウェア・ソフトウェア・推論モデルを整理しました。
次回は、Raspberry Pi 5へのAI HAT+の取り付けと、OSから正常に認識されるところまで確認してみます。
『Interface 2026年10月号』
OpenAI ChatGPT
※本記事は、OpenAIのChatGPTを利用して原案の整理と文章の編集を行い、RKテックが内容を確認・修正したものです。製品仕様やソフトウェアの対応状況については、各メーカーの最新の公式資料もご確認ください。