子供見守りシステム(仮)

Cisco Meraki × Webex × AWS安価構成 × 3Dハザードマップ

ダッシュボード画面(UIモック)を開く

1. システムアーキテクチャ (Webex & Cost-Optimized)

graph TD subgraph Edge ["Cisco Meraki Edge"] C[MV Camera] T[MT10: Temp/Humidity] D[MT20: Door Sensor] end subgraph AWS ["AWS Cloud (Cost Optimized)"] IoT[AWS IoT Core] EC2[Amazon EC2
Spot Instance] DB[(Amazon DynamoDB
Provisioned: 1WCU)] S3[Amazon S3 + CloudFront] end subgraph UI_Layer ["Frontend & Notification"] UI[Dedicated Site
React + Three.js] PC[Polycam 3D Model] Webex[Cisco Webex
Bot / Space] end C -- Area Occupancy / Audio --> IoT T -- Temp Alert --> IoT D -- Door Open --> IoT IoT -- MQTT Trigger --> EC2 EC2 -- Fetch RTSP Stream --> C EC2 -- 1. AI Inference --> DB EC2 -- 2. Send Alert + Image --> Webex S3 -- Host Static Assets --> UI DB -- Fetch Hazard Data --> UI PC -- .gltf Model --> UI IoT -. MQTT over WebSocket
(Real-time Alert) .-> UI classDef meraki fill:#74b82d,stroke:#fff,stroke-width:2px,color:#fff; classDef aws fill:#FF9900,stroke:#fff,stroke-width:2px,color:#232F3E; classDef ui fill:#ff4a4a,stroke:#fff,stroke-width:2px,color:#fff; classDef cisco fill:#00bceb,stroke:#fff,stroke-width:2px,color:#fff; class C,T,D meraki; class IoT,EC2,DB,S3 aws; class UI ui; class Webex cisco;

【通知機能とコスト最適化のポイント】
1. Cisco Webex連携: EC2上のAIが危険を検知した際、YOLOで枠を描画した証拠画像をWebex API経由でチャットルームに即時送信(API利用無料)。
2. 専用サイトへのリアルタイム通知: AWS IoT Coreの「MQTT over WebSocket」をフロントエンドから直接購読。追加サーバーなしでブラウザへの即時ポップアップを実現。
3. Amazon DynamoDB: プロビジョニングモードで上限を最小(1WCU/1RCU)に固定し自動拡張をOFF。万が一バグで暴走しても月額約100円で課金が物理的にストップ(青天井リスクゼロ)。

2. 主要機能要件

危険因子通知機能
YOLOv8 Webex API EC2 Spot
子供が危険エリアに接近した際、即座に画像付きで通知します。
  • 誤飲防止: EC2上でYOLOを稼働させ、小さな物体を検出。結果画像をWebexに送信。
  • カーテン紐: MVのArea Occupancyで紐付近への侵入を検知。
子供の事故通知機能
MediaPipe Webex API IoT Core
転倒音や急激な温度変化をトリガーに、骨格推定を起動して事故状態を判定します。
  • 転倒検知: 頭部と足首のY座標から判定し、専用サイトへWebSocketで緊急アラート。
  • うつ伏せ寝: 顔のキーポイント消失から判定。
子供移動検知機能
MT20 MV Lux Sensor
夜間の危険な徘徊や移動を検知します。
  • MT20のドア開閉イベントを受信。
  • MVカメラの照度データを参照し、消灯状態でのドア開閉のみをアラートとしてWebexへ通知。
ハザードマップ生成機能
Polycam Three.js S3 Hosting
専用サイト上に直感的な3Dハザードマップを生成します。
  • LiDAR不要: 手持ちのスマホとPolycamで部屋を撮影し、3Dモデルを生成。
  • S3から配信された3D空間上に、DynamoDBのデータをヒートマップとして重畳表示。
行動パターン解析機能
Scikit-learn Isolation Forest
統計情報から危険に繋がる予兆を分析します。
  • 蓄積した滞在座標と時間帯をクラスタリング。
  • 普段行かない場所へのアクセスを潜在的リスクとして抽出し、専用サイトのダッシュボードにサジェスト。

3. 技術スタック

Hardware / Edge

  • Cisco Meraki MV Camera
  • Cisco Meraki MT10 (温湿度)
  • Cisco Meraki MT20 (ドア開閉)

Cloud / Notification

  • AWS IoT Core (MQTT / WebSocket)
  • Amazon EC2 (Spot) / DynamoDB / S3
  • Cisco Webex Messaging API

AI / Frontend

  • YOLOv8 / MediaPipe / OpenCV
  • Scikit-learn / NumPy
  • Polycam (3D Photogrammetry)
  • React + Three.js (Dedicated Site)

4. チーム開発体制と役割分担 (計5名)

学生の稼働率の偏りを吸収するため、依存関係を最小限に抑えた疎結合な3つのロールに分割し、各モジュールを独立してテスト可能にします。

Role A: エッジAI & センサー

2名

ミッション: データソースの構築とAI推論

  • Webカメラ映像の取得とYOLOv8/MediaPipeのローカル稼働
  • MT10/MT20のダミーデータ生成とMQTT送信シミュレータ作成
  • 危険検知時のデータおよび画像をRole Bへ連携

Role B: バックエンド & Webex

1〜2名

ミッション: クラウドインフラ構築と外部API連携

  • AWS IoT Coreの受け口作成とDynamoDBへのデータ保存
  • Webex Messaging APIを利用したアラート・画像送信処理
  • ※初期はローカルNode.js/PythonサーバーとSQLiteで代替可

Role C: フロントエンド & 3D

1〜2名

ミッション: 専用サイトのUI構築とリアルタイム描画

  • React + Three.jsの環境構築
  • Polycamで生成した.gltfモデルの読み込みと表示
  • MQTT over WebSocketによるアラートの即時ポップアップ処理

5. 実機なしでの代替実装アプローチ

Cisco機器が手元にない初期フェーズでも、仕様を縮小せずに開発を進めるためのシミュレーション方針です。後日実機が手に入った際、接続先を変更するだけで移行可能な設計とします。

MV Cameraの代替
  • PCの内蔵Webカメラ、またはスマートフォンをWebカメラ化するアプリを使用。
  • Pythonの cv2.VideoCapture(0) でフレームを取得し、YOLOv8/MediaPipeの入力に流し込む。
MT10 / MT20の代替
  • PythonスクリプトでダミーのJSONデータを生成し、定期的にMQTTブローカーへPublishする。
  • 初期は公開テストサーバー(test.mosquitto.org)を利用し、AWS IoT Core準備後に切り替え。
EC2 (Spot)の代替
  • 開発中は、Role A担当者のローカルPCを「EC2インスタンス」と見立ててAI推論とバックエンド処理を稼働。
  • コンテナ化(Docker)しておくとAWS移行がスムーズ。