Kakip (RZ/V2H)で鳥獣侵入監視システムを作ってみた
農地や設備で問題になる鳥獣の侵入。カメラを置いても「録画を見返すのが大変」「気付くのが遅れる」という課題が残ります。
そこで今回も「エレクトロニクスを簡単に」をテーマに、ルネサスのRZ/V2Hを搭載したKakipで、動物を検知すると画面にアラートを出し、ログを自動で残すアプリを作ってみました。
前回動かした物体検知サンプル R01_object_detectionに、main.cppへのコード追加だけで機能を加えます。AIモデルの再学習は不要です。
※前回記事「KakipでAIアプリケーションを動かして物体検知を試してみた」の手順で、R01_object_detectionが動作している前提で進めます。
目次
Kakipとは
Kakipは、ルネサスのRZ/Vシリーズを搭載したAI向けシングルボードコンピュータ (AI-SBC)です。
AI推論専用アクセラレータ「DRP-AI」を活用することで、エッジ環境でも高速に画像認識AIを実行できます。
また、物体検知や人物検知などのサンプルアプリケーションが公開されており、画像認識AIを比較的手軽に試せる点も大きな特長です。
PoC(概念実証)から製品開発まで幅広く活用できるため、AIを使ったシステム開発を始めたい方にも適したプラットフォームとなっています。
Kakipを実行環境にした理由
今回のPoCでは、Kakip (RZ/V2H) を実行環境として採用しました。
Kakipには画像認識AI向けアクセラレータ「DRP-AI」が搭載されており、物体検知などのAI処理をエッジ側で効率よく実行できます。
また、AIアプリケーション開発に必要なソフトウェアやサンプルが用意されているため、短期間でPoCを開始できる点も大きなメリットです。
さらに、PoCで作成したアプリケーションをベースとして、将来的にRZ/Vシリーズ搭載機器へ展開しやすいことも採用理由の一つです。
まずはKakipでアイデアを迅速に検証し、有効性が確認できた段階で製品への組み込みを検討するといった進め方が可能です。
今回の鳥獣侵入監視システムも、PoCによる実現性検証から製品開発までを視野に入れたテーマとして取り組んでいます。
AI推論部分を共通資産として活用しながら、通知機能や装置制御機能を追加することで、実際の監視システムへ段階的に発展させることができます。
今回作るもの
今回作成するアプリケーションは、USBカメラで撮影した映像をAIで解析し、監視対象となる動物を検知すると画面上にアラートを表示します。
また、検知した日時や対象をCSVファイルへ自動的に記録します。
状態 | 画面表示 |
監視対象なし | 緑バッジ Monitoring |
監視対象を検知 | 赤バッジ ALERT: dog x1 など |
監視対象は、学習済みモデルで検出できる bird / cat / dog / horse / sheep / cow / bear です。
屋内で動作確認するため、テスト用に person (人) も対象に含めています。
今回は室内環境で動作確認を実施したため、テスト用として person も検知対象に追加しています。
実運用時は TEST_MODE=0 とすることで人を除外できます。
※イノシシ・シカ・サルはこのモデルでは検出できません。対応するには専用モデルが必要です。
システム構成
今回の構成は前回と同様、シンプルな構成です。
USBカメラ
↓
Kakip (RZ/V2H)
↓
動物だけを抽出 (YOLOv3で物体検知)
↓
HDMIディスプレイ (画面にアラート表示 + ログ記録)USBカメラから取得した映像に対してAI推論を実施し、検出結果をHDMIディスプレイへ表示します。
必要な機材
今回使用した機材は以下の通りです。
Kakip
Kakip用電源
DC12V/25W以上の出力
DCジャック(外形: 5.5mm、ピン: 2.1mm、センタープラス) 形状のもの
USBカメラ
USB TypeA Hub
USB TypeA - HDMI変換器
今回はBuffalo GX-HDMI/U2を使用
HDMIディスプレイ
HDMIケーブル
キーボード
マウス
ネットワーク環境 (Ethernet接続)
アプリケーションの準備
前回のサンプルをコピーして、新しいアプリを作ります。
export WORK=/home/ubuntu/workspace/kakip_ai_apps/
cd $WORK
cp -r R01_object_detection wildlife_monitor
rm -rf wildlife_monitor/build今回追加した機能
今回の変更では、既存の物体検知サンプルに対して以下の機能を追加しています。
鳥獣 (bird / cat / dog / horse / sheep / cow / bear) のみを抽出
3フレーム連続で検知された場合のみアラート表示
侵入イベントをCSVファイルへ記録
画面上に監視状態/警報状態を表示
これにより、単なる物体検知デモから、簡易的な鳥獣侵入監視システムとして利用できるようになります。
※今回利用した学習済みモデルはCOCOデータセットベースのため、クマ (bear) は検出できる一方で、イノシシやシカは検出対象に含まれていません。
main.cppの変更点
$WORK/wildlife_monitor/src/main.cpp を編集します。変更は2か所だけです。
※本プログラムは生成AIを用いて作成していますが、
動作確認は筆者環境で実施しています。
(1) 侵入判定の関数を追加
print_result 関数の直前に、次のブロックを丸ごと追加します。
/*===== Wildlife intrusion monitor =====*/
#include <ctime>
#include <fstream>
#define TEST_MODE (1) /* 1: personも対象 (テスト用) 0: 動物のみ */
#define MIN_PROB (0.50f) /* この確率未満は無視 */
#define ALERT_FRAMES (3) /* 連続検知でアラート (誤検知対策) */
#define LOG_INTERVAL (10) /* ログ記録の最短間隔 [秒] */
#define WM_RED_DATA (0xFF0000u)
void print_intrusion(Image* img)
{
static const std::string targets[] = {
"bird", "cat", "dog", "horse", "sheep", "cow", "bear",
#if TEST_MODE
"person",
#endif
};
static uint32_t hit_frames = 0;
static std::time_t last_log = 0;
/* 監視対象を数える */
uint32_t count = 0;
std::string names = "";
for (uint32_t i = 0; i < print_det.size(); i++)
{
if (print_det[i].prob < MIN_PROB) continue;
std::string label = label_file_map[print_det[i].c];
for (const std::string& t : targets)
{
if (label == t)
{
count++;
if (names.find(label) == std::string::npos)
{
names += (names.empty() ? "" : "/") + label;
}
}
}
}
/* 連続フレームで判定 */
hit_frames = (count > 0) ? hit_frames + 1 : 0;
bool alert = (hit_frames >= ALERT_FRAMES);
/* パネル描画 (緑: 監視中 / 赤: アラート) */
uint32_t rgb = alert ? WM_RED_DATA : GREEN_DATA;
cv::Scalar color(rgb & RGB_FILTER, (rgb >> 8) & RGB_FILTER, (rgb >> 16) & RGB_FILTER, 0xFF);
cv::rectangle(img->img_mat, cv::Point(40, 40), cv::Point(600, 200),
cv::Scalar(0x1E, 0x1E, 0x1E, 0xFF), cv::FILLED);
cv::rectangle(img->img_mat, cv::Point(60, 60), cv::Point(580, 120), color, cv::FILLED);
std::stringstream stream;
if (alert) stream << "ALERT: " << names << " x" << count;
else stream << "Monitoring";
img->write_string_rgb(stream.str(), ALIGHN_LEFT, 75, 105, 0.9, BLACK_DATA);
std::time_t now = std::time(nullptr);
char ts[32];
std::strftime(ts, sizeof(ts), "%Y-%m-%d %H:%M:%S", std::localtime(&now));
stream.str("");
stream << "Time: " << (ts + 11);
img->write_string_rgb(stream.str(), ALIGHN_LEFT, 60, 170, 0.7, WHITE_DATA);
/* ログ記録 (CSV) */
if (alert && (now - last_log) >= LOG_INTERVAL)
{
last_log = now;
std::ofstream ofs("intrusion_log.csv", std::ios::app);
ofs << ts << "," << names << "," << count << "\n";
}
}(2) 呼び出しを1行追加
同じく print_result 関数の先頭に、1行だけ追加します。
int8_t print_result(Image* img)
{
print_intrusion(img); /* この1行を追加 */
std::stringstream stream;
...(以下、既存のコードのまま)ビルドと実行
cd $WORK/wildlife_monitor
mkdir build && cd build
cmake ../src
make -j$(nproc)
cd ../exe
cp ../build/object_detection .
./object_detection実行結果
検知ログは exe フォルダの intrusion_log.csv に記録されます。
ログは
日時,検出対象,検出数
の形式で保存されるため、後から侵入履歴を確認したり、
クラウド連携の入力データとして利用することもできます。
cat $WORK/wildlife_monitor/exe/intrusion_log.csv2026-10-14 14:32:08, dog, 1
2026-10-14 14:32:21, bird/cat, 2屋外で動物だけを監視する場合は、TEST_MODE を 0 にして再ビルドします。
KakipでRZ/V2Hを使って物体検知を試すメリット
Raspberry PiはPoCには便利ですが、KakipでRenesasのRZ/V2Hを使うと、AIを試すだけでなく、そのまま実機向け開発につなげやすいのが大きなメリットです。
RZ/V2Hは、AI推論用のDRP-AI3に加え、Linux向けのCortex-A55、リアルタイム制御向けのCortex-R8、システム制御向けのCortex-M33を搭載しており、推論・画像処理・機器制御を並列に進めやすい構成になっています。さらに、OpenCV系の画像処理もアクセラレータで分担できるため、AIカメラやロボティクス用途を意識した開発と相性が良い点もRenesas製品の強みです。
また、RenesasはRZ/V2H AI Software Development Kitやサンプル環境を用意しているため、サンプル取得、ビルド、モデル配置、実行という流れで物体検知をすぐ試せます。USBカメラ入力から推論、描画、表示まで一通りそろっており、実装の手間を抑えながら、製品化を見据えた検証に入りやすいのも魅力です。
Renesas RZ/V2H製品ページ:https://www.renesas.com/ja/products/rz-v2h?srsltid=AfmBOoq51Qs9OxjagrJdcLZK0AanZnVocubIHgtfWkZZV0sjM8RPJBTM
注意点と今後の展開
今回はPoCのため、次の点に注意が必要です。
イノシシ・シカ・サルは検出対象外
夜間は通常のUSBカメラでは精度が下がる
遠くの小さな動物は検出しにくい
今後は、次のような発展が考えられます。
専用モデルによるイノシシ・シカの検知
赤外線カメラによる夜間対応
MQTTやTeamsへの通知
ブザー・LEDなどの威嚇装置との連携
RZ/V2HはAI推論用のDRP-AI3に加え、リアルタイム制御向けのCortex-R8も搭載しています。「検知して、その場で機器を動かす」ところまで1チップで実現しやすいのが強みです。
例えば、
侵入検知時に回転灯やブザーを動作させる
電気柵やゲート制御装置と連携する
LTE通信によってクラウドへ通知する
管理者へメールやTeams通知を送信する
といったシステムへの発展も考えられます。
PoCで検証したAI推論部分をそのまま活用しながら、実運用システムへ段階的に発展させやすい点もRZ/V2Hの魅力です。
まとめ
既存の物体検知サンプルに少しコードを追加するだけで、鳥獣の検知、アラート表示、ログ記録までを実現できました。
今回のように、AIモデルそのものを作り込まなくても、物体検知の結果を現場で活用できる形にすることで、実用に近いシステムを短期間で試すことができます。
また、KakipとRZ/V2Hを活用することで、PoCとしての動作検証だけでなく、通知機能や機器制御機能を追加しながら実運用システムへ発展させやすい点も大きな魅力です。
まずは既存サンプルを動かしてみる。そこから現場の課題に合わせて機能を追加していく。
KakipとRZ/V2Hは、PoCによるアイデア検証から製品開発までをスムーズにつなげられる、非常に魅力的なプラットフォームだと感じました。




