お問い合わせ
トップ » SORACOM IoT DIY レシピ » IoTカメラで人物検知と通知 (クラウド常時録画ライセンス版)

SORACOM IoT レシピ:IoTカメラで人物検知と通知 (クラウド常時録画ライセンス版)

ソラカメで取得した画像から SORACOM Flux で人物を検知し、メールやチャットで通知して、SORACOM Lagoon でダッシュボードにも表示する

公開日:2025年4月

レシピ難易度:★☆☆☆☆

現場をカメラで撮影して画像を分析し状況を通知したり可視化したい、というのは IoT でよくあるシナリオです。たとえば、倉庫や陳列棚の状態を認識して商品の補充を知らせたり、オフィスにどれだけ人が出社しているのかを可視化して混雑を緩和するようなことも考えられます。

本レシピでは、Soracom Cloud Camera Services(以下、ソラカメ) 対応のIoTカメラ「ATOM Cam」のクラウド常時録画機能によって取得した撮影動画を利用します。SORACOM Flux による静止画の取得と人物検知、検知したデータの SORACOM Harvest への保存、および SORACOM Lagoon のダッシュボードによる画像とデータの可視化を実施します。ローコード IoT アプリケーションビルダー SORACOM Flux を利用することで、これまで必要だったクラウド上でのアプリケーション構築を不要とし、生成 AI を活用した IoT アプリケーションをすばやく作成します。

本レシピを行うのに必要な時間、概算費用

本レシピは以下の通りです。

  • 必要な時間: 約 60 分
  • 概算費用:
    • 初期費用: 3,980円
      • ソラカメ対応製品 ATOM Cam 2 の場合
    • 月額費用: 1,993円
      • Soracom Cloud Camera Services クラウド常時録画ライセンス: 月額 990 円
      • SORACOM Flux: 月額 590 円 (クレジット使用量の上限値を変更した場合)
      • SORACOM Harvest Files: 月額 242 円
      • SORACOM Harvest Data: 月額 171 円

※ 概算費用: ハードウェアや SORACOM 各種サービスの概ねの費用 (送料などの付帯費用や無料枠適用は考慮しないものとしています)

使用する SORACOM サービス

全体構成

  1. SORACOM Flux の インターバルタイマーイベントソース が一定間隔でイベントをトリガー
  2. SORACOM API アクション がソラカメのクラウド録画から静止画を切り出して SORACOM Harvest Files に保存するように指示
  3. ソラカメのクラウドサービスが Harvest Files に静止画を保存
  4. SORACOM Flux の Harvest Files イベントソースが 静止画の保存を検知してイベントをトリガー
  5. AI アクションが静止画に写っている人物などの物体を検知して、その情報を後続のチャネルに送信
  6. Email 通知アクション が画像認識の情報をもとにメールで送信*
  7. SORACOM API アクション が画像認識の情報を カメラのデバイスIDをもとに SORACOM Harvest Data に保存
  8. SORACOM Lagoon が Harvest Data に保存されたデータ や Harvest Files の静止画ファイルをダッシュボードに可視化

本IoTレシピはソラカメのクラウド常時録画ライセンスでの利用に対応しています

SORACOM Flux の Developer プランでは月間 100 通まで Email 通知がご利用いただけます
月間 100 通を超える利用をご希望の場合は、Standard plan をご利用ください。または、メール通知ではなくチャットへの通知もご検討ください。

本レシピでは通知方法としてメール通知をご紹介していますが、通知方法は、Slack や Microsoft Teams、 Google Chat などのチャットへの通知も可能です。Slack の場合は、[Slack 通知] アクションを、Microsoft Teams や Google Chat への通知は、[Webhook] アクションで設定可能です。詳しくは、下記のUsers ドキュメントを合わせて確認して下さい。
Slack 通知アクション
Microsoft Power Automate を使用して Microsoft Teams のチャネルにメッセージを送信する
– Google Chat への通知は、通知先のスペースに Webhook を追加のうえ表示された ”着信 Webhook” のURLを使用して、Webhook アクションのガイドを参考にご自身で設定を実施して下さい。
チャットへの通知の場合、メッセージの本文の表記方法は本レシピで実施する [Email 通知] アクションでの設定と異なる場合があります。詳しくは上記 ドキュメントだけでなく、チャットツールのユーザーガイドも参考にして設定して下さい。

AI アクションで生成 AI に画像を読み込ませることで、静止画に写っている人や車両、商品棚などの状況を認識して、認識した物体に関する情報を、次のチャネルに送信します。AI アクションでは、複数の 生成 AI モデルを選択することができます。この Flux アプリでは 例として人と車両を検出することを指示していますが、検出できるものは人や車両に限りません。使用する画像に合わせて生成 AI への指示 (プロンプト) を変更して下さい。より高い精度や複雑な状況において高度な物体認識を実施したい場合は、より高度な処理が可能な AI モデルの選択も検討して下さい。

このコンテンツの進め方

上から内容を読み進みながら作業を行なっていきます。また左サイドに追従する目次からページ内の移動が可能です。

本コンテンツは現状のままで提供され、株式会社ソラコムは、誤りがないことの保証を含め、明示であると黙示であるとを問わず、本コンテンツの記載内容につき、いかなる種類の表明も保証も行いません。

掲載情報の閲覧及び利用により、利用者自身、もしくは第三者が被った損害に対して、直接的、間接的を問わず、株式会社ソラコムは責任を負いかねます。

本コンテンツを実践する中で用意された機器、利用されたサービスについてのご質問は、それぞれの機器やサービスの提供元にお問い合わせをお願いします。機器やサービスの仕様は、本コンテンツ作成当時のものです。

株式会社ソラコムが提供する機器・サービスについてのご質問はフォームで受け付けております。機器・サービスご利用前の導入相談は https://soracom.jp/contact/ に、機器・サービスご利用開始後のサポートは、SORACOMユーザーコンソール内のサポートサイトから「リクエストを送信」(要ログイン)にてお問い合わせください。

Copyright (c) 2023 SORACOM, INC.

準備

本レシピを行うためには以下のものをご用意ください。

ハードウェア

品名数量価格備考
[ソラカメ] ATOM Cam 2 + クラウド常時録画ライセンス13,980円ATOM Cam Swing でも構いません。本レシピを進めるためには、クラウド常時録画ライセンスが必要です。ソラカメのライセンスはユーザーコンソールから追加購入することもできます。ソラカメのクラウド常時録画ライセンスの月額料金が別途発生します。
パソコン1インターネット接続が可能でサイトへの接続が自由であること。 Google Chrome 等の最新ブラウザーが利用可能な事。
※ 金額はレシピ作成時となります。金額は税込み・送料別です。

ご購入について

ハードウェアは以下よりご購入いただけます。

その他必要なもの

必要なもの費用作成方法など
SORACOM アカウント無料※SORACOM アカウントの作成
※ アカウント作成・維持の費用の料金です。

ソラカメが届いたら

Soracom Cloud Camera Services のカメラ (以降、ソラカメ) は ATOM アプリへ登録することでモーションなどのイベントを SORACOM API で取得できるようになります。まず ATOM アプリの利用開始、ソラカメの登録をしましょう。

※既に登録しているソラカメについてレシピを実施する場合は次へお進みください。

ソラカメを登録する

以下の SORACOM ユーザードキュメントを参照して登録してください。

ソラカメのファームウェアバージョンを確認 / 更新する

以下の SORACOM ユーザードキュメントを参照して実施してください。

ソラカメにライセンスを割り当てる

以下の SORACOM ユーザードキュメントを参照して実施してください。

ソラカメからクラウドに保存された動画を確認する

以下の SORACOM ユーザードキュメントを参照して実施してください。

ソラカメのデバイス ID を控える

ここからは SORACOM ユーザーコンソールで操作します。

SORACOM ユーザーコンソールにログインした後 [メニュー]>[ソラコムクラウドカメラサービス]>[デバイス管理]とクリックします。

今回、画像の認識に使用したいソラカメの「デバイス ID」(12 桁の英数字、以下の画面例では 1A2B3C4D5E6F ) をコピーします。PC 上のメモ帳アプリなどへペーストしてください。控えたデバイス ID は後で使用します。

SORACOM Flux アプリを作成する

一定間隔でソラカメの録画から静止画を切り出すプロセスの作成

SORACOM ユーザーコンソールにログインした後 [メニュー]>[SORACOM Flux]>[Flux アプリ]とクリックします。

[+ 新しい Flux アプリ を作成する] をクリックします。

Flux アプリに任意の名前をつけて [作成] をクリックします。( Flux アプリの名前は後から変更できます。 )

新しいチャネルを作成します。最初にイベントソースを選びます。イベントソースとは、Flux アプリを起動するトリガーとなる要素です。ここでは一定間隔で起動させる[インターバルタイマー]を選び、[次へ]をクリックします。

チャネルに任意の名前をつけて、”イベントソース設定” のボタンをクリックし “無効” (灰色の状態) にします。そして “スケジュール定義” は 10分と入力して [チャネルを作成する] をクリックします。

インターバルタイマーイベントソースはアプリ作成完了後に再度 “有効” (青緑色の状態) にします。アプリ作成の過程で無駄なイベントのトリガーを防ぐことができます。

作成したチャネルの画面が開きますが、閉じると Flux アプリの作成状況を確認できます。Flux アプリは以下のような状態です。作成したチャネルの部分をクリックします。

[アクション] をクリックし、[+ アクションを追加] をクリックします。

ソラカメのクラウド録画から静止画を切り出す指示を出すため、アクションは[SORACOM API]を選び、[OK]をクリックします。

アクションに任意の名前をつけて、画面を下方向にスライドし 、

[CONFIG] 入力エリアの “API” 欄に「exportsora」と入力し、候補に出てきた exportSoraCamDeviceRecordedImage “クラウドに保存された録画映像から静止画をエクスポートする処理を開始する” を選択します。

さらに下方向に画面をスライドし、”URL” 欄に入力されている文字列のうちプレースホルダー ( {device_id} の部分 ) を控えておいたソラカメのデバイス ID の値に変えます。

以下は、デバイスID “1A2B3C4D5E6F” として書き換えた例です。

次に、”HTTP ボディ” 欄の初期値の文字列 {} を消去し、以下の文字列をプレースホルダー ( {device_id} の部分 ) を控えておいたソラカメのデバイス ID の値に置き換えて貼り付けます。なお、入力欄右下の青緑色のマークをドラッグすることで、入力欄を大きくして入力しやすくできます。

{
  "harvestFiles": { 
    "pathPrefix": "/recipe/sora_cam/{device_id}"
  },
  "time": ${now()}
}

以下は、デバイスID “1A2B3C4D5E6F” として置き換えて貼り付けた例です。

HTTP ボディに指定する “pathPrefix” の値は SORACOM Harvest Files の保存先を指定しています。任意のパスを指定できます。 ”time” の値は静止画を切り出す時刻の指定です。now() 関数は Flux がアクション実行時に現在時刻を動的に入力します。

注意事項を良く読み[注意点を理解して利用する]チェックボックスをクリックします。

API を実行する SAM ユーザー” 欄は[新しく SAM User を作成する]を選択し、[作成する]をクリックします。

SORACOM API アクション内で新規作成される SAM User には、Fluxアプリがこのアクションを実行するためだけに使用する権限が指定されます。既存の SAM User から選択することもでき、その場合は事前に SORACOM Flux に SAM ユーザーの利用を委任する “信頼ポリシー” の設定が必要です。詳しくは、Users ドキュメント( https://users.soracom.io/ja-jp/docs/flux/action-soracom-api/ )を確認して下さい。

作成したアクションの画面を閉じると Flux アプリは以下のような状態です。

静止画の保存を検知して画像認識による物体検知をするプロセスの作成

[+ チャネルを追加する] をクリックします。

次のプロセスのためのチャネルを作成します。最初にイベントソースを選びます。イベントソースとは、Flux アプリを起動するトリガーとなる要素です。切り出された静止画が Harvest Files に保存されたことをトリガーとするため、[SORACOM Harvest Files]イベントソースを選び、[次へ]をクリックします。

チャネルに任意の名前をつけて、”イベントソース設定” の ”ファイルパス(前方一致)” 欄の初期値の文字 / を消去し、以下の文字列をプレースホルダー ( {device_id} の部分 ) を控えておいたソラカメのデバイス ID の値に置き換えて貼り付けます。

/recipe/sora_cam/{device_id}

そして “イベントタイプ” は “ファイル作成” がチェックされた状態で [チャネルを作成する] をクリックします。

以下は、デバイスID “1A2B3C4D5E6F” として置き換えて貼り付けた例です。

先に設定したインターバルタイマーイベントソースとは異なり、SORACOM Harest Files イベントソースは “有効” (青緑色の状態) のままで構いません。SORACOM Harest Files イベントソースは、”ファイルパス(前方一致)” で指定したパスにファイルが(新規)作成されたときにのみイベントをトリガーします。

作成したチャネルの画面を一度閉じて確認します。Flux アプリは以下のような状態です。作成したチャネルの部分をクリックします。

[アクション] をクリックし、[+ アクションを追加] をクリックします。

取得した静止画に対して、生成 AI で画像認識による物体の検知をするため、アクションは[AI]を選び、[OK]をクリックします。

アクションに任意の名前をつけて、画面を下方向にスライドし 、[CONFIG] 入力エリアの “AI モデル” 欄で “Amazon Bedrock – Amazon Nova Lite” を選択します。“プロンプト” 欄には以下の文章を貼り付けます。入力欄右下の青緑色のマークをドラッグすることで、入力欄を大きくして入力した内容を見やすくできます。

# リクエスト内容 "静止画中の物体検知"
添付された画像について、画像に映り込んでいるすべての人物(部分的に写っている人も含む)および車両(反射や窓越しのものも含む)を数えてください。

# 画像の前提
この画像はオフィス室内(執務エリア)を撮影したものです。

# 物体検知の方針
一部が隠れていたり、鮮明でない人物・車両も、推定されるものはすべてカウント対象としてください。

# 出力フォーマット
結果は必ず以下のようなJSONフォーマットで返してください。
{"person":2, "car":1}

“AI からの返答を JSON 形式にする” チェックボックスと “AI に画像を読み込ませる” チェックボックスをそれぞれチェック (青緑のチェック状態) し、入力エリアには

${event.payload.presignedUrls.get}

と入力します。

プロンプトとは?
このような、生成 AI に対する指示を“プロンプト” と呼び、入力内容の補足や、必要な処理、出力すべき情報などを指示します。使い慣れたことば (自然言語) で指示ができるため、修正や変更も簡単に行うことができます。短い指示であっても、生成 AI が不足する情報を自律的に補って処理を進めることもできます。特に重要な指示については、複雑な表現やあいまいな表現は避けて簡潔で具体的な指示を出すことが必要です。

AI に画像を読み込ませる” の入力欄に入力した、${event.payload.presignedUrls.get} は、SORACOM Harest Files イベントソースがトリガーされた際に取得した画像のURLを指定するものです。この表記方法について、詳しくは、Users ドキュメント( https://users.soracom.io/ja-jp/docs/flux/action-payload-condition/ )で確認して下さい。

AI アクションで生成 AI に画像を読み込ませることで、静止画に写っている人や車両、商品棚などの状況を認識して、認識した物体に関する情報を、次のチャネルに送信します。AI アクションでは、複数の 生成 AI モデルを選択することができます。この Flux アプリでは 例として人と車両を検出することを指示していますが、検出できるものは人や車両に限りません。使用する画像に合わせて生成 AI への指示 (プロンプト) を変更して下さい。より高い精度や複雑な状況において高度な物体認識を実施したい場合は、より高度な処理が可能な AI モデルの選択も検討して下さい。

画面を下方向にスライドし 、[OUTPUT] 入力エリアの “アクションのアウトプットを別のチャネルに送信する” を “有効” (青緑色の状態) にします。“送信先チャネル” は “新しくチャネルを作成する” がチェックされた状態で、任意のチャネル名を入力し [作成する] をクリックします。

作成したチャネルの画面を閉じると Flux アプリは以下のような状態です。作成したチャネルの部分をクリックします。

画像認識の出力をもとにメール送信するプロセスの作成

[アクション] をクリックし、[+ アクションを追加] をクリックします。

メールでの通知を設定するため、アクションは[Email 通知]を選び、[OK]をクリックします。

SORACOM Flux の Developer プランでは月間 100 通まで Email 通知がご利用いただけます
月間 100 通を超える利用をご希望の場合は、Standard plan をご利用ください。または、メール通知ではなくチャットへの通知もご検討ください。

本レシピでは通知方法としてメール通知をご紹介していますが、通知方法は、Slack や Microsoft Teams、 Google Chat などのチャットへの通知も可能です。Slack の場合は、[Slack 通知] アクションを、Microsoft Teams や Google Chat への通知は、[Webhook] アクションで設定可能です。詳しくは、下記のUsers ドキュメントを合わせて確認して下さい。
Slack 通知アクション
Microsoft Power Automate を使用して Microsoft Teams のチャネルにメッセージを送信する
– Google Chat への通知は、通知先のスペースに Webhook を追加のうえ表示された ”着信 Webhook” のURLを使用して、Webhook アクションのガイドを参考にご自身で設定を実施して下さい。
チャットへの通知の場合、メッセージの本文の表記方法は本レシピで実施する [Email 通知] アクションでの設定と異なる場合があります。詳しくは上記 ドキュメントだけでなく、チャットツールのユーザーガイドも参考にして設定して下さい。

アクションに任意の名前をつけます。人物を検知したときのみ通知させるため、[CONDITION] 入力エリアの “アクションの実行条件” 欄に

payload.output.person >= 1

と入力します。

アクションの実行条件” 欄に入力した、payload.output.person >= 1 は、AI アクションの結果を利用して判定しています。この欄を空欄にした場合は、AI アクションの結果に関わらず必ず通知されるようになります。数値を変更することで、通知の頻度を少なくすることもできます。この表記方法について、詳しくは、Users ドキュメント( https://users.soracom.io/ja-jp/docs/flux/action-payload-condition/ )で確認して下さい。

画面を下方向にスライドし 、[CONFIG] 入力エリアの “To” 欄で、通知先のメールアドレスを選択します。

通知先のメールアドレスは変更できますか?
SORACOM アカウント (オペレーター) を作成したときに使用したルートユーザーのメールアドレス (プライマリメールアドレス) が選択可能ですが、プライマリーメールアドレスに送信される他の重要なメールを管理する妨げにならないよう、Flux アプリのメール通知で利用するための別のメールアドレスを利用することをお勧めします。SORACOM アカウント内で利用するメールアドレスの追加は、Users ドキュメント( https://users.soracom.io/ja-jp/docs/email/add/ )で確認して下さい。
なお、メールアドレスの管理は SAM ユーザーでは実施出来ないため、ルートユーザーで実行して下さい

さらに画面を下方向にスライドし 、“件名” 欄に任意のメールの件名を入力し、“本文” 欄には以下の文字列を貼り付けます。

カメラから取得した静止画に、以下の物体が検知されました。
人:${payload.output.person} 人
車:${payload.output.car} 台

そして、“アクションのアウトプットを別のチャネルに送信する” は “無効” (灰色の状態) のまま [作成する] をクリックします。

作成したアクションの画面を閉じると Flux アプリは以下のような状態です。先ほど作成した AI アクションの出力のチャネルの部分をクリックします。

画像認識の情報を SORACOM Harvest Data に保存するプロセスの作成

[アクション] をクリックし、[+ アクションを追加] をクリックします。

画像認識の情報を SORACOM Harvest Data に保存するため、アクションは[SORACOM API]を選び、[OK]をクリックします。

アクションに任意の名前をつけて、画面を下方向にスライドし 、[CONFIG] 入力エリアの “API” 欄に「createsora」と入力し、候補に出てきた createSoraCamDeviceDataEntry “任意のデータをソラカメ対応カメラに紐づけて Harvest Data に保存する” を選択します。

さらに下方向に画面をスライドし、”URL” 欄に入力されている文字列のうちプレースホルダー ( {device_id} の部分 ) を控えておいたソラカメのデバイス ID の値に変えます。

以下は、デバイスID “1A2B3C4D5E6F” として書き換えた例です。

次に、”HTTP ボディ” 欄の初期値の文字列 {} を消去し、以下の文字列を貼り付けます。なお、入力欄右下の青緑色のマークをドラッグすることで、入力欄を大きくして入力しやすくできます。

{
  "person": ${payload.output.person},
  "car": ${payload.output.car},
  "density": ${payload.output.person / 10},
  "image_path":"${event.payload.path}"
}

HTTP ボディ” 欄に入力した、${payload.output.person} は、AI アクションの結果を利用しています。${event.payload.path} は、SORACOM Harest Files イベントソースで指定した保存先のパスです。”density” は混雑度として利用する例として、AI アクションの画像認識で検出された人数を10で割った値として定義しています。これらの表記方法について、詳しくは、Users ドキュメント( https://users.soracom.io/ja-jp/docs/flux/action-payload-condition/ )で確認して下さい。

注意事項を良く読み[注意点を理解して利用する]チェックボックスをクリックします。

API を実行する SAM ユーザー” 欄は[新しく SAM User を作成する]を選択し、[作成する]をクリックします。

SORACOM API アクション内で新規作成される SAM User には、Fluxアプリがこのアクションを実行するためだけに使用する権限が指定されます。既存の SAM User から選択することもできますが、あらかじめ SORACOM Flux に SAM ユーザーの利用を委任する “信頼ポリシー” の設定が必要です。詳しくは、Users ドキュメント( https://users.soracom.io/ja-jp/docs/flux/action-soracom-api/ )で確認して下さい。

作成したアクションの画面を閉じると Flux アプリは以下のような状態です。

これで、Flux アプリの設定はほぼ完了です。

Flux アプリをテストする

SORACOM Flux のテスト実行機能を利用し、実行履歴を確認する

Flux アプリが正常に稼働するかテストします。インターバルタイマーのチャネルの部分をクリックします。

[テスト実行] をクリックし、”Body” 欄に以下の文字列 {} を貼り付けます。

{}

[実行]をクリックします。

 [実行履歴] をクリックします。

この画面では、Flux アプリの実行履歴 (ログ) を確認することができます。[新しいイベントを取得]をクリックします。

今回の Flux アプリは、最初にタイマーでイベントがトリガーされ、その後に Harvest Files (へのデータ保存) でイベントがトリガーされます。実行履歴画面では発生時刻の新しい順に並ぶため、実行履歴の先頭に Harvest Files イベントの履歴 “HARVEST_FILES EVENT” が表示されています。右側のアイコンがすべて緑チェックであることを確認して、画面を下方向にスライドします。

タイマーイベントのプロセスは今回 [テスト実行] 機能でトリガーされたので、イベントのトリガーは、”API EVENT” として表示されます。こちらも右側のアイコンが緑チェックであることを確認します。

エラーが発生した場合は?
実行履歴でエラーが発生している場合は、赤いバツ印のマークがトップに表示されます。実行履歴内で赤く ”x ERROR” とマークされているチャネルやアクションの名前を確認して、該当箇所の設定を再確認して下さい。本レシピの流れに沿ってタイマーイベントがトリガーされ稼働するアクションの設定内容を順番に再確認してください。

E メールが通知されたことを確認する

通知先として設定したメールアドレスのメールボックスを確認します。

送信元 “no-reply@soracom.io” からのメールが受信できているかを確認します。確認できない場合は、迷惑メールフォルダ (スパムフォルダ) やメールフィルタの設定なども確認してください。

受信したメールの文面は以下のようなイメージです。

SORACOM Harvest Data にデータが保存されたこと確認する

SORACOM ユーザーコンソールにログインした後 [メニュー]>[データ収集・蓄積・可視化]>[SORACOM Harvest Data]とクリックします。

[リソース]をクリックします。対象に[ソラカメ]を選択して、入力エリアに控えておいたソラカメのデバイス ID の値を入力し、候補に出てきたソラカメを選択します。以下は、デバイスID “1A2B3C4D5E6F” として入力した例です。

ソラカメのデバイスIDに紐づいた画像認識のデータが保存されていることを確認します。データが1件も確認できない場合は、時間指定ボックスで “直近24時間” を選択するなど、Flux アプリをテスト実行した時間枠を含めて表示しているかを確認して下さい。

Flux アプリの最初のトリガーとなるタイマーイベントソースを有効化する

テスト実行が問題無ければ、忘れずに無効にしていたインターバルタイマーイベントソースの設定をします。インターバルタイマーのチャネルの部分をクリックします。

イベントソース設定のボタンをクリックし  “有効” (青緑色の状態) にし、[変更を保存] をクリックします。変更が保存されると、[変更を保存] ボタンの点滅が停止します。

SORACOM Flux 上での設定は以上です。これで、インターバルタイマーで指定した時間間隔で、自動的にソラカメからの静止画取得と画像認識、および通知とデータ保存が開始されます。

SORACOM Lagoon でダッシュボードを作成する

SORACOM Flux のアプリが作成できたら、SORACOM Harvest Data に蓄積される物体検知のデータとカメラの画像のパスを用いて SORACOM Lagoon のダッシュボードで可視化します。SORACOM Lagoon は無料の Free プランですぐ利用を始めることができ、インフラやサービスを用意することなく手軽にデータを可視化できます。

SORACOM Lagoon 用語解説

ここで SORACOM Lagoon で使われる用語を解説します。

用語意味
プランSORACOM Lagoon の契約プランです。プランによって機能と料金が異なり、今回は無料の Free プランを利用します。SORACOM Lagoon のご利用料金に機能や料金の比較表があります。
SORACOM Lagoon ユーザー(Lagoon ユーザー)SORACOM Lagoon へログインするためのユーザー( ID とパスワードの組)です。SORACOM ユーザコンソールへのログインとは異なるユーザ一覧となり、皆さん自身で登録・削除が可能です。ダッシュボードやパネルを編集できる「編集可能」と表示専用の「読み取り」の2段階の権限を設定できます。作成可能数はプランによります。
リソースの種類表示するデータの種別です。SORACOM Lagoon では以下の4つの中から選び、その中からノード(SIMや回線)を選択します。・Air = SORACOM Air for セルラー (SORACOM IoT SIM)・Lora = SORACOM Air for LoRaWAN デバイス・Sigfox = SORACOM Air for Sigfox デバイス・Device = SORACOM Inventory デバイス今回はSIMなので、「Air」の SIM を選択します。
パネル (Panel)パネルはデータを表示する領域です。データソースとメトリクスを指定すると、そのメトリクス(たとえば SIM )のデータをパネルで使えるようになります。様々なパネルが存在します。
ダッシュボード (Dashboard)複数のパネルを束ねて「1枚の画面」にしたものがダッシュボードです。共有の画面表示単位となります。
アラート (Alert)リソースのメトリクスデータに対して条件を設定し、その条件を満たしたら通知を行う仕組みの事です。
今回は、SORACOM Lagoon のアラートは使用しません。
データリフレッシュSORACOM Harvest から SORACOM Lagoon へデータが反映される事、もしくは反映タイミングとなります。反映タイミングはプランによります。

SORACOM Lagoon の利用を開始する

初めて SORACOM Lagoon の利用を開始する場合の手順を説明します。すでに利用されている場合は、先へ進んでください。

SORACOM ユーザーコンソールの[メニュー]>[データ収集・蓄積・可視化]>[SORACOM Lagoon]とクリックします。

[SORACOM Lagoon の利用を開始する]をクリックします。

表示された Lagoon のプランのうち Free の[選択する]ボタンをクリックし、[利用開始]をクリックします。

SORACOM Lagoon ユーザーの初期ユーザーに設定するパスワードを入力し、[利用開始]をクリックします。

SORACOM Lagoon ユーザーの初期ユーザの ID は?
ID は SORACOM ユーザコンソールにログインしたときのメールアドレスが使われることになります。そのため、ここではパスワードのみ設定することになります。SORACOM ユーザコンソールへのログインとは異なるパスワードを設定する事を強くお勧めします。

利用開始がクリックできない場合は?
パスワードの条件が不足しています。全てに✔がつくようにパスワードを設定してください。

SORACOM Lagoon の有効化に成功すると、以下のように SORACOM Lagoon コンソールへのリンクと、Lagoon ユーザーの一覧が管理できるようになります。この画面を SORACOM Lagoon 管理画面と呼びます。SORACOM Lagoon 管理画面は、SORACOM Lagoon が有効化されている間は [メニュー]>[データ収集・蓄積・可視化]>[SORACOM Lagoon]で表示する事ができます。

SORACOM Lagoon 管理画面を表示したあと、[SORACOM Lagoon 3 コンソール]ボタンをクリックします。

SORACOM Lagoon にログインし、ダッシュボードを設定する

メールアドレス (SORACOM ユーザコンソールへログインする際のメールアドレス) と、SORACOM Lagoon 初期ユーザ作成時に利用したパスワードでログインします。

ログインに成功すると、以下のような画面が表示されます。これが SORACOM Lagoon ログイン直後の画面です。このあとDashboardをインポートして表示します。

背景を白くするには?
SORACOM Lagoon の標準では背景が黒となっています。これは設定で変更が可能です。左下のアイコンにカーソルを合わせて表示される[Preferences]をクリックします。

設定画面に “UI Theme” を “Light” に変更して[Save]ボタンをクリックすると、背景が白くなります。

ダッシュボードを作成する

検知した人数と算出した混雑度、そしてソラカメから切り出した静止画を表示するパネルを含めたダッシュボードを作成します。[Dashboards] メニューの [ + New dashboard ] をクリックします。

新規ダッシュボード作成画面を開いた状態です。このダッシュボードの中に、3つのパネル (グラフなどの表示領域) を追加していきます。

最初は検知した人数の推移をグラフ表示したパネルを追加します。初期状態では右上メニューボタンの中のにある [Add panel] (パネルの追加) をクリックしなくても、パネル追加ウィンドウが1つ表示されています。[Add a new panel] をクリックします。

パネル編集画面を開いた状態です。以下の表のように入力します。

項目入力・選択するもの
(パネルの種類)Time series
Panel Option > Title検知した人数の推移
Resource TypeSoraCam
Resources{ソラカメのデバイスID}
Propertiesperson

検知した人数の推移をグラフ表示したパネルができました。右上の [Save] をクリックします。続けて表示される “Save dashboard” のウィンドウでも [Save] します。

ダッシュボードにパネルが追加されました。

次は混雑度をゲージ表示したパネルを追加します。右上メニューボタンの中のにある [Add panel] (パネルの追加) をクリックして、先ほどと同様にパネル追加ウィンドウの [Add a new panel] をクリックします。

パネル編集画面を開いた状態で、以下の表のように入力します。

項目入力・選択するもの
(パネルの種類)Gauge (ゲージ)
Panel Option > Title混雑度
Resource TypeSoraCam
Resources{ソラカメのデバイスID}
Propertiesdensity

混雑度を分かりやすく表示するために、ゲージの最大値やしきい値を設定します。

右側のパネルオプションの検索ボックス [Search options] で “standard” と検索します。

以下の表のように入力します。

項目入力する値項目の意味
Standard options > Min0ゲージの最小値を指定
Standard options > Max1ゲージの最大値を指定
Standard options > Decimals1表示する値の桁数を指定

続いて、右側のパネルオプションの検索ボックスで “threshold” と検索し、[+ Add threshold] を1回クリックして以下のように入力します。

混雑度をゲージ表示したパネルができました。右上の [Save] をクリックします。続けて表示される “Save dashboard” のウィンドウでも [Save] します。

ダッシュボードに2つ目のパネルが追加されました。最後にソラカメから切り出した静止画を表示するパネルを追加します。右上メニューボタンの中のにある [Add panel] (パネルの追加) をクリックして、先ほどと同様にパネル追加ウィンドウの [Add a new panel] をクリックします。

パネル編集画面を開いた状態で、以下の表のように入力します。

項目入力・選択するもの
(パネルの種類)Soracom Dynamic Image Panel
Panel Option > Titleソラカメ画像
Resource TypeSoraCam
Resources{ソラカメのデバイスID}

続けて、右側のパネルオプションの [Soracom Dynamic Image Panel] 欄の設定項目で以下のように選択します。画像が表示されたら、右上の [Save] をクリックします。続けて表示される “Save dashboard” のウィンドウでも [Save] します。

項目選択するもの
ModeHarvest Files
Name{ソラカメのデバイスID} image_path
Current Value (自動的に入力されます)/recipe/sora_cam/{ソラカメのデバイスID}

最後に見やすいようにパネルを並び替えるなどして完成です。ダッシュボードの各パネルは、タイトル左右の空白部分をドラッグすることで移動できたり、一般的なアプリケーションウィンドウのようにパネル右下をドラッグすることでサイズを変更できます。
見やすく並び替えができたらタイトル保存ボタンをクリックし、続けて表示される “Save dashboard” のウィンドウでも [Save] します。

ダッシュボードのカスタマイズはSORACOM Usersの「SORACOM Lagoon 3」(https://users.soracom.io/ja-jp/docs/lagoon-v3/) を参照してください。

以上で全ての設定が終了です

あとかたづけと注意事項

本 IoT レシピで作成した Flux アプリは 10分に1回稼働します。このとき、

  • インターバルタイマーイベントソースが1回トリガーされます。
  • SORACOM Harvest Files イベントソースが1回トリガーされます。

つまり、10分ごとに1度のアプリの稼働でイベントソースが2回トリガーされます。これは、1日あたり288回イベント数がカウントされ、1ヶ月間 (31日) で 8,928回のイベント数がカウントされます。さらに、

  • AI アクションが1回実行されます。
  • AI モデル “Amazon Bedrock – Amazon Nova Lite” 1回の実行で 3クレジットが使用されます。

つまり、10分ごとに1度のアプリの稼働でクレジット使用量は 3 です。これは、1日あたり 432 クレジットが使用され、1ヶ月間 (31日) の稼働で 13,392 クレジットが使用されます。

SORACOM Flux では、イベント数とクレジット使用量について、プランごとに無料で利用できるバンドルが設定されています。また、意図せず従量課金が発生しないように、バンドルと同等の上限が設定されています。例えば、Developer プランでは月間で、10,000イベント数と 1,500クレジットがバンドルされているため、本 IoT レシピで作成した Flux アプリをそのままの設定で利用すると、3日強でバンドルされているクレジット使用量の無料利用枠を使い切ることになります。他にも、Flux アプリのカスタマイズや他にも Flux アプリを作成する場合には、イベント数とクレジット使用量がプランごとに設定されているバンドル利用量の上限に達する可能性があるため、イベント数とクレジット使用量の上限の変更 (従量課金でのご利用) やプランのアップグレードをご検討下さい。

なお、初期設定では各プランのバンドルと等しい上限がイベント数とクレジット使用量に設定されているため、自動的に超過料金が発生することはありませんが、上限に達した場合はイベントソースやアクションは実行されなくなります。Developer プランでもイベント数やクレジット使用量の上限を変更することで従量課金で SORACOM Flux をご利用頂けます。例えば、Developer プランのクレジット使用量の上限値を初期値の 1,500 クレジットから 13,392 クレジットに変更することで、本レシピの AI アクションを 1ヶ月間 (31日) 連続で稼働することができ、そのときの SORACOM Flux の利用料金は 590円です。

例えばクレジット使用量の上限は以下の画面で設定変更できます。

SORACOM ユーザーコンソールにログインした後 [メニュー]>[SORACOM Flux]>[Flux アプリ]とクリックします。イベント数または、クレジット使用量について、[~上限を変更する] をクリックします。

以下は、クレジット使用量の上限を変更する画面です。設定したい上限値を入力し、[次へ] をクリックします。

変更内容について確認し、[上限を変更する] をクリックすることで上限値が変更されます。上限値を変更したうえで、イベント数やクレジット使用量がプランごとに設定されているバンドル利用量を超えると、従量課金で利用料金が発生します。

設定変更について、詳しくは Users ドキュメント「イベント数、クレジット使用量の上限を設定する」( https://users.soracom.io/ja-jp/docs/flux/set-upper-limit/ )を確認して下さい。

次のステップ

本レシピでは、ソラカメのクラウド常時録画機能によって取得した撮影動画を利用し、人物検知を通知したり可視化する仕組みをローコード IoT アプリケーションビルダー SORACOM Flux を使用して作りました。次のステップとして以下のような応用が考えられます。

  • 環境センサー (温度・湿度・二酸化炭素など) を組み合わせて、利用者に向けたアナウンス通知を追加する
  • AIアクションで他の生成 AI モデルを利用し、より高い精度や複雑な状況における物体認識と分析を実施する

このように、ソラカメと SORACOM Flux を組み合わせることで、クラウドへ接続したカメラを「眼」として、高度な IoT システムを素早く簡単に組み上げる事ができます。是非いろいろなユースケースでご活用ください。

SORACOM IoT DIY レシピ »

ご質問などはこちらよりお問い合わせください。