公開されている定点カメラ画像を使って、地域ごとの危険兆候を早めに確認できるWebアプリの試作ページを作成してみました。
まだテスト段階のMVPですが、公開JPEGカメラの巡回取得、前回画像との差分比較、地域別の危険度表示、熊や河川敷人物候補のテストシナリオ表示まで入れています。
試作ページはこちらです。
何を作ったか
コンセプトは「カメラ一覧」ではなく、「危険があったら教えてくれる地域ウォッチ」です。
地域を選ぶと、登録済みの公開カメラを巡回し、前回画像と現在画像の差分から変化候補を出します。
現在入っている機能は以下です。
- 公開JPEGカメラの取得
- 最新画像と前回画像の保存
- 差分スコアの計算
- 地域別のカメラ一覧
- 地域危険度スコア
- 前回画像/現在画像の比較表示
- クリック位置を中心にした局所拡大比較
- RL鮮鋭化トグル
- 差分ROIの表示
- 熊候補、河川敷人物候補のテストシナリオ
- 通知候補のプレビュー
想定している用途
特に意識しているのは、水難事故や野生動物出没の早期確認です。
例えば以下のような兆候を、事故や被害と断定せずに「確認推奨」として扱います。
- 河川敷や水際に人物がいる
- 増水中の河川内や中州に人物がいる可能性
- 山間道路に大型動物がいる可能性
- 冠水、増水、漂流物、視界不良などの異常変化
- 道路上の停止車両や滞留
表現としても「事故発生」「溺れている」などの断定は避けています。
差分領域だけをAI判定対象にする方針
全画像を毎回AIに投げると、コストも誤検知も増えます。
そこで今回の設計では、まず画像差分を取り、変化が大きい領域だけをROIとして切り出す方針にしています。
前回画像
↓
現在画像
↓
差分計算
↓
差分ROI抽出
↓
ROIだけをローカル推論へ
↓
通知候補化
MVPではYOLO実推論はまだ接続していませんが、テストシナリオには以下のようなデータ構造を入れています。
-
stage1.diffRegions: 差分領域の矩形 -
stage2.detections: 物体検出結果 -
localAiDecision: 通知判断の理由
熊候補は高優先度通知、人物候補は確認推奨以上に引き上げる初期ルールにしています。
試作ページで見られるもの
試作ページでは、秋田県の取得可能カメラやテストシナリオを確認できます。
テストシナリオでは、
- 山間道路の熊候補
- 河川敷の人物滞在候補
を前回画像と現在画像の比較で表示しています。
差分ROIの枠も重ねてあり、「画像全体を見ている」のではなく「変化した箇所を絞って見る」方向性が分かるようにしています。
注意点
これはまだ検証用のMVPです。
公開カメラ画像を扱う場合は、以下を守る必要があります。
- 公開元の利用規約を確認する
- 再配信可否が不明な画像は検証用として扱う
- 大量アクセスしない
- 10分以上の巡回間隔を基本にする
- robots.txtや公開元の意図を尊重する
- 個人特定や監視目的にしない
- 事故や犯罪を断定しない
今後やりたいこと
- YOLOv11などのローカル物体検出を接続
- 差分ROIの自動抽出精度を上げる
- 河川敷、道路、空などのROIマスクを設定可能にする
- 雨量、水位、交通量APIと連携
- メール、Slack、Discord、LINE通知
- 誤検知分析用に切り出し画像を保存
- GPT Visionを二次判定や説明生成に使う
まだ荒い試作ですが、「公開カメラをただ見る」のではなく、「地域の変化に気づくネットワーク」にできるかを試しています。

