このプログラムは、熊などの害獣を検知するとPush通知と共に音を出して害獣を追い払います。
プログラムの内容としては、標準搭載のAI検知プログラムと同じですが、検知した際にPush通知だけでなく、予め用意したWAVファイルを指定した時間繰り返し再生する、という処理が追加されています。
AIBOX OSには、標準でYOLO11をNCNNで実行できるDocker Imageが登録されています。
REPOSITORY TAG SIZE
aicap/arm64/ultralytics 1.0.250923 3.43GB
このイメージは、Ultralyticsが公開しているYOLO11用のイメージをベースに、ncnn変換・実行に必要なモジュールのインストールや、aicapコマンドを実行するための環境構築処理が行われていますので、 AIBOX OS上で稼働させるYOLO11を使用した基本的な検知プログラムは、このイメージから起動したコンテナ上で動作させることが可能になっています。
今回実行する熊撃退プログラムは、YOLOによる物体検知の他に、音声を出力するための機能が追加で必要になりますので、この標準搭載のDocker イメージをベースに、音声出力に必要なモジュール等をインストールしたイメージを作成します。
ただし、AIBOXでのDocker イメージの登録には少し手順が必要になります。下記を参考にして、音声対応のイメージを構築&登録してください。
このDockerイメージのビルド&登録の手順をまとめたスクリプトも用意しています。
下記の手順で、このスクリプトを使用して音声出力に対応したDockerイメージをAIBOXに登録することができます。
$ sudo ramdisk disable
$ wget https://raw.githubusercontent.com/daddyYukio/AICAPTURE/refs/heads/main/docker/audio/setup.sh
$ wget https://raw.githubusercontent.com/daddyYukio/AICAPTURE/refs/heads/main/docker/audio/Dockerfile
$ sudo ./setup.sh
$ sudo ramdisk enable
$ docker images
REPOSITORY TAG IMAGE ID
aicap/arm64/ultralytics 1.0.250923-audio xxxxx
aicap/arm64/ultralytics 1.0.250923 xxxxx
TAG=1.0.250923-audioが登録されていればOKです!
基本的なファイル構成は、標準搭載のAI検知プログラムと同じです。
(音声ファイルalert.wavが追加されています)
ただ、docker-compose.ymlの内容は、使用するDockerイメージが音声対応のイメージに変更したり、USB接続したサウンド出力デバイスへのアクセス許可をDockerコンテナに付与するパラメータが追加されています。
標準搭載AI検知プログラムから変更・追加があるファイルは以下になります。
| ファイル名 | 説明 |
|---|---|
| extmod.py | 物体検出を行うPythonのプログラム |
| alert.wav | 検知時に鳴らすサウンドファイル |
| docker-compose.yml | Dockerコンテナの構成・設定をまとめたファイル |
これらのファイルを更新するスクリプトを用意してあります。
下記のGitHub上に公開されているupdate.zipをダウンロードし、解凍後に、update.shを実行すると、必要なファイルが一括で更新できます。
更新できたら、USB接続のサウンド出力デバイスをAIBOXに接続して、再起動してください。
デフォルトでは検知物体は熊に設定されていますので、熊の写真などをカメラに撮して見てください。
検知されるとスマホへのPush通知と同時にアラート音が10秒間なります。
検知プログラムの解説は、Zennに記事として投稿していますので、そちらを参照してください。
検知する物体の変更方法や検知精度の修正方法は、標準搭載AI検知プログラムと同じです。
検知した際に鳴らすアラート音は、プログラムファイルと同じ場所に保存されたalert.wavです。
リピート再生されるので、短めのWAVフォーマットのファイル担っています。
鳴らす音を帰る場合は、このalert.wavファイルを置き換えてください。
※フォーマットはWAVフォーマットです。
また、鳴らす時間は、下記の外部変数で定義されています。
# 再生継続時間(秒)
WAV_PLAY_TIME_SEC = 10