Soracom

Users

ドキュメント
Home ドキュメント SORACOM Mosaic アルゴリズム

アルゴリズム一覧

SORACOM Mosaic の提供の終了について
  • 2024 年 6 月 30 日をもって SORACOM Mosaic に対応するエッジコンピューターである S+ Camera シリーズの販売およびサポートを終了しました。SORACOM Mosaic のサポートは 2024 年 12 月 31 日まで承ります。
  • 2024 年 12 月 31 日に SORACOM Mosaic の提供を終了します。

S+ Camera シリーズ にインストールできるアルゴリズムとして、ソラコムが提供するサンプルアルゴリズムとソラコムパートナーから提供される 3rd party アルゴリズムが用意されています。

Harvest Data/Files を利用するアルゴリズムは、継続してデータを送信する仕組みです。そのため、インストール後は継続して料金が発生します。動作確認後は、アンインストールしてください。

同時にインストールできるアルゴリズムは 1 種類のみです。

独自のアルゴリズムを開発するには

独自のアルゴリズムを開発する手順、および開発したアルゴリズムをインストールする手順については、独自のアルゴリズムを開発する を参照してください。

共通操作

Harvest Data/Files を有効化する

サンプルアルゴリズムが Harvest Data/Files を使用する場合は、あらかじめ各機能を有効化してください。詳しくは、「S+ Camera シリーズユーザーガイド」の ステップ 3: S+ Camera シリーズを Mosaic コンソールに登録する を参照してください。

別途料金が発生します

Harvest Data/Files を使用すると、別途料金が発生します。

アルゴリズムをインストールする

アルゴリズムをインストールする操作について詳しくは、アルゴリズムをインストールする を参照してください。

Harvest Files にアップロードされたデータを確認する

Harvest Files の /cap/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/ に画像がアップロードされている場合は、以下の手順で確認します。

  1. Mosaic コンソール のデバイス詳細画面で、[アルゴリズム] タブ → [開く][Harvest Files で開く] の順にクリックします。

    Harvest Files で開く Harvest Files で開く

  2. [cap/][{MOSAIC ID}/][{撮影年}/][{撮影月}/][{撮影日}/] の順にクリックします。

    アップロードされた画像の一覧が表示されます。

  3. 任意の画像の ダウンロード (ダウンロード) をクリックします。

ファイルエクスポート料金が発生します

Harvest Files にはプレビュー機能はありません。画像や動画を確認する場合には、PC にダウンロードしてください。画像や動画をダウンロードすると、Harvest Files の ファイルエクスポート料金 が発生します。

なお、動画のダウンロードはデータ通信量が多いためデータ通信料金が高くなる傾向があります。

Harvest Files を有効化してください

画像がアップロードされない場合は、エッジコンピューターの IoT SIM の SIM グループで、Harvest Files を有効化してください。詳しくは、Harvest Files を有効化する を参照してください。

Harvest Data にアップロードされたデータを確認する

  1. Mosaic コンソール のデバイス詳細画面で、[アルゴリズム] タブ → [開く][Harvest Data で開く] の順にクリックします。

    Harvest Data で開く Harvest Data で開く

    エッジコンピューターから送信されたデータが表示されます。

    Harvest Data に送信されたデータを確認する操作について詳しくは、Harvest Data に保存したデータを確認する を参照してください。

Harvest Data を有効化してください

Harvest Data にデータがアップロードされない場合は、エッジコンピューターの IoT SIM の SIM グループで、Harvest Data を有効化してください。詳しくは、SORACOM Harvest Data を有効化する を参照してください。

サンプルアルゴリズム

Check Environment settings (環境変数チェック)

Check Environment settings は、エッジコンピューターに設定された環境変数を表示し、定期的に現在の時間をログに出力するアルゴリズムです。詳しくは、アルゴリズムをインストールする を参照してください。

Periodic Image Upload (定期画像送信)

定期的に Harvest Files に画像をアップロードし、同時に Harvest Data に画像およびデバイスのメタデータをアップロードするサンプルアルゴリズムです。

インストールする

アルゴリズムをインストールする の手順に従って、[Periodic Image Upload] をインストールします。

パラメータ設定

Periodic Image Upload では、以下のパラメータを利用しています。

パラメータ説明
SORACOM_ENV_MODE動作モード。以下のいずれかの値を指定できます。動作モードについて詳しくは、動作モード (SORACOM_ENV_MODE) を参照してください。
0: 画像撮影モード
100: 顔 (目線) 検出モード
101: 顔 (目線) 検出 + モザイクモード
SORACOM_ENV_WAITアルゴリズムが動作する時間間隔 (秒)。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。デフォルトは 60 です。
SORACOM_ENV_FREE_PARAMアルゴリズムの詳細設定。詳しくは、Periodic Image Upload の詳細設定 (SORACOM_ENV_FREE_PARAM) を参照してください。
そのほかのパラメータこのサンプルアルゴリズムでは使用されません
SORACOM_ENV_WAIT のデフォルトは 60 です

SORACOM_ENV_WAIT のデフォルトは 0 が設定されているように見えますが、実際は 60 が設定されています。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で動作が繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。

動作モード (SORACOM_ENV_MODE)

SORACOM_ENV_MODE の値によって、Harvest Files にアップロードされる画像が変わります。

SORACOM_ENV_MODE説明Harvest Files の
保存場所
0: 画像撮影モードSORACOM_ENV_WAIT で指定した間隔 (秒) で画像を撮影し、Harvest Files にアップロード/cap/
100: 顔 (目線) 検出モードSORACOM_ENV_WAIT で指定した間隔 (秒) で画像を撮影し、人物の顔 (目線) が検出できた場合に限り、顔の周りを切り出して、Harvest Files にアップロード

顔 (目線) 検出 顔 (目線) 検出
/face/
101: 顔 (目線) 検出 + モザイクモードSORACOM_ENV_WAIT で指定した間隔 (秒) で画像を撮影し、人物の顔 (目線) が検出できた場合に限り、顔の周りを切り出し、目線にモザイクをかけて、Harvest Files にアップロード

顔検出 (モザイク) 顔検出 (モザイク)
/face/

Harvest Data にアップロードされるメタデータは、動作モードの影響を受けません。

Periodic Image Upload の詳細設定 (SORACOM_ENV_FREE_PARAM)

SORACOM_ENV_FREE_PARAM には、JSON 形式で以下のパラメータを指定できます。

パラメータ (型)説明
upload_begin_time (integer)アルゴリズム動作開始時間 (024)。デフォルトは、0 です。
upload_end_time (integer)アルゴリズム動作終了時間 (024)。デフォルトは、24 です。

例: 9 時から 17 時の間のみアップロードする設定

{
    "upload_begin_time": 9,
    "upload_end_time": 17
}

Periodic Image Upload のデータを確認する

Harvest Files

Periodic Image Upload では、Harvest Files の /cap/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/ に、定期的に Wepb 形式の画像がアップロードされます。

  • 動作モード によっては、/face/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/ にアップロードされます。
  • WebP 形式の画像は、ブラウザなどで確認できます。

データを確認する操作について詳しくは、Harvest Files にアップロードされたデータを確認する を参照してください。

Harvest Data

Periodic Image Upload では、Harvest Data にパスや動作モードがアップロードされます。

{"file": "/cap/8665XXXXXXXXXXX_XXXXXXXXXXXXXXX/2021/08/26/cap_8665XXXXXXXXXXX_XXXXXXXXXXXXXXX_2021-08-26T19-16-13-374670.webp", "mode": "cap", "size": 36894, "timestamp": 1629972973374}
プロパティ (型)説明
file (string)画像の保存場所 (Harvest Files 内のパス)
mode (string)動作モード
size (integer)画像のファイルサイズ
timestamp (integer)エッジコンピューターが画像を撮影した日時 (UNIX 時間 (秒))

データを確認する操作について詳しくは、Harvest Data にアップロードされたデータを確認する を参照してください。

OCR (英数字読み取り)

OCR (英数字読み取り) は、ArUco Marker で指定された領域内にある数字やアルファベットをテキスト化して、Harvest Data にテキストデータをアップロードするサンプルアルゴリズムです。同時に、Harvest Files に画像をアップロードします。

  • OCR エンジンは Tesseract OCR を利用しています。
  • ここに掲載している画像は、--oem 3 --psm 3 --l eng を設定した状態 ([SORACOM_ENV_FREE_PARAM]{"OEM": 3, "PSM": 3, "LANG": "eng"} を設定した状態) で動作した結果です。
  • --l eng ([SORACOM_ENV_FREE_PARAM]{"LANG": "eng"} を設定した状態) で動作している場合は、日本語のテキストは読み取れません。
ArUco Marker (アルコマーカー) とは?

QR コードに似た図形をしたマーカー (基準点) です。現実世界にコンピュータの情報を重ね合わせた AR (拡張現実) 向けのマーカーとして、この図形をコンピューターが識別することで AR 空間内での位置を特定できます。

具体的には、以下のように認識させたい領域の 2 頂点に ArUco Marker を貼ります。1 組の ArUco Marker を結ぶ領域 (水色の線で囲まれた領域) が、認識領域として設定されます。

領域設定 領域設定

ArUco Marker を作成する

ArUco Marker を作成する Python のスクリプト (aruco_marker.py) を用意しています。以下の手順で、スクリプトをダウンロードおよび必要なライブラリをインストールして、ArUco Marker を作成できます。

  1. お使いの PC に Python 3 をインストールします。

  2. aruco_marker.py にアクセスして、 ダウンロード (ダウンロード) → [ダウンロード] の順にクリックします。

    aruco_marker.py がダウンロードされます。

  3. 以下のコマンドを実行して、必要なライブラリをインストールします。

    pip install opencv-contrib-python==4.5.3.56
    pip install numpy==1.18.1
    
  4. aruco_marker.py を任意のディレクトリに移動して、以下のコマンドを実行します。

    python aruco_marker.py -n 10
    

    以下のような ArUcoMarker.png が作成されます。

    ArUco Marker ArUco Marker

    なお、-n 10 は、10 組の ArUco Marker を作成するオプションです。指定できるオプションは以下のとおりです。

    オプション説明
    -n NUMBER、--number NUMBER作成する ArUco Marker の数 (1250)。デフォルトは 4 です。
    -s SIZE、--size SIZE作成する ArUco Marker のサイズ (0100)。デフォルトは 100 です。
    -p PADDING、--padding PADDINGArUco Marker の周囲の余白 (ピクセル)。デフォルトは、40 です。
    -d、--displayプレビュー画面を表示する。環境によっては、プレビュー画面を表示できない場合があります。
    作成した ARuco Marker がアルゴリズムによって検出されないときは

    ArUco Marker の周囲の余白を大きくしてください。

  5. ArUco Marker を読み取りたい英数字の左上と右上に貼り付けます。

    領域設定 領域設定

    上の写真に描かれている水色の四角は、ArUco Marker が示す領域を説明するために後から追加しました。OCR を実行する際は、水色の四角は必要ありません。

OCR をインストールする

アルゴリズムをインストールする の手順に従って、[OCR] をインストールしてください。

インストール完了後、エッジコンピューターで、ArUco Marker と英数字を撮影し、ArUco Marker が示す領域内の英数字が読み取れた場合は、Harvest Files に画像が、Harvest Data にテキストデータやメタデータが送信されます。

OCR のパラメータ設定

OCR では、以下のパラメータを利用しています。

パラメータ説明
SORACOM_ENV_WAITアルゴリズムが動作する時間間隔 (秒)。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で動作が繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。デフォルトは 60 です。
SORACOM_ENV_FREE_PARAMアルゴリズムの詳細設定。詳しくは、OCR の詳細設定 (SORACOM_ENV_FREE_PARAM) を参照してください。
そのほかのパラメータこのサンプルアルゴリズムでは使用されません
SORACOM_ENV_WAIT のデフォルトは 60 です

SORACOM_ENV_WAIT のデフォルトは 0 が設定されているように見えますが、実際は 60 が設定されています。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で動作が繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。

OCR の詳細設定 (SORACOM_ENV_FREE_PARAM)

SORACOM_ENV_FREE_PARAM には、JSON 形式で以下のパラメータを指定できます。

パラメータ (型)説明
OEM (integer)OCR Engine Mode (03)。デフォルトは、3 です。(*1)
PSM (integer)Layout analysis (013)。デフォルトは、3 です。(*1)
LANG (string)eng 以外を指定する場合は、PreSetup でのインストールおよび、OCR の filterOcrResult 関数の修正が必要です。(*1)
OThresh (float)認識の信頼度の閾値 (01.0)。閾値以下の認識を破棄。デフォルトは、0.2 です。
MCount (integer)ArUco Marker の最低検出個数 (0250)。たとえば、4 を設定すると 4 個以上 (一般的に 2 組以上) の ArUco Marker が読み取れなかった場合は、データが送信されません。デフォルトは、1 です。
IMargin (float)認識する領域のマージン (1.0~2.0)。デフォルトは、1.1 です。
MPnum (integer)OCR 実行時の CPU の並列数。デフォルトは、1 です。
UInv (float)Harvest Data および Harvest Files への送信間隔 (秒)。デフォルトは、SORACOM_ENV_WAIT に設定した値です。

例:OEMPSMMCount を変更する設定

{"OEM": 1, "PSM": 1, "MCount": 4}

OCR のデータを確認する

Harvest Files

英数字が読み取れた場合は、Harvest Files の /OCR/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/ に以下のような画像が送信されます。

英数字の認識 英数字の認識

データを確認する操作について詳しくは、Harvest Files にアップロードされたデータを確認する を参照してください。

Harvest Data

英数字が読み取れた場合は、Harvest Data に各領域のテキストデータやメタデータが送信されます。

{"text": "ABCDE", "location": [42, 36, 139, 57], "confidence": 92, "mosaicId": "8xxxxxxxxx_AX0XXXXXXXX", "marker_id": X, "ts": 1599783601.6256475, "image_path": "/OCR/8xxxxxxxxx_AX0XXXXXXXX/2020/09/11/ocr_image_8xxxxxxxxx_AX0XXXXXXXX_20200911T09-21-36-226797.jpg"}
{"text": 1234567, "location": [46, 36, 165, 57], "confidence": 96, "mosaicId": "8xxxxxxxxx_AX0XXXXXXXX", "marker_id": X, "ts": 1599783696.2267966, "image_path": "/OCR/8xxxxxxxxx_AX0XXXXXXXX/2020/09/11/ocr_image_8xxxxxxxxx_AX0XXXXXXXX_20200911T09-21-36-226797.jpg"}
プロパティ (型)説明
text (string/integer/float)OCR (英数字読み取り) が読み取ったテキストデータ
location (structure)認識した英数字の図中の座標 ([left, top, left+width, top+height])
confidence (integer)読み取ったテキストデータに対する信頼度 (0~100。100 に近いほうが読み取り結果が信頼できる)
mosaicId (string)エッジコンピューターの Mosaic ID
marker_id (integer)ArUco Marker の ID
ts (float)エッジコンピューターが OCR (英数字読み取り) を実行した日時 (UNIX 時間 (秒。小数を含む))
image_path (string)text の根拠になる画像の保存場所 (Harvest Files 内のパス)

データを確認する操作について詳しくは、Harvest Data にアップロードされたデータを確認する を参照してください。

OCR を利用したレシピ

OCR を利用した SORACOM レシピ:IoT カメラで計測機器のデータを可視化したい もあわせて参照してください。このレシピでは、7 セグメント (フォント) を読み取るために学習されたデータを OCR エンジンに適用することで、認識対象の文字を追加する方法についても解説しています。

Movie (Animated Image) (差分動画)

1 秒ごとに画像を撮影し、直前の画像から大きな変更があった場合に、WebP 形式のアニメーション画像を作成して Harvest Files にアップロードするサンプルアルゴリズムです。同時に、Harvest Data に画像のメタデータをアップロードします。

パラメータ設定

Movie (Animated Image) では、以下のパラメータを利用しています。

パラメータ説明
SORACOM_ENV_WAITアルゴリズムが動作する時間間隔 (秒)。60 を指定した場合は、最長 60 秒間の変化を検知して、アニメーション画像が作成されます。デフォルトは 60 です。
SORACOM_ENV_WAIT のデフォルトは 60 です

SORACOM_ENV_WAIT のデフォルトは 0 が設定されているように見えますが、実際は 60 が設定されています。

Fish-eye Lens Calibration (広角/魚眼レンズのキャリブレーションパラメータ作成)

広角レンズのキャリブレーションパラメータを作成し、Harvest Files にアップロードするサンプルアルゴリズムです。詳しくは、広角レンズのキャリブレーションパラメータの作成 を参照してください。

Object Detection Movie (物体検出動画アップロード)

指定した物体を検出したときに、その前後に SORACOM_ENV_WAIT (秒) の動画を結合して Harvest Files にアップロードし、同時に、Harvest Data に物体の情報をアップロードするサンプルアルゴリズムです。

デフォルトでは、Giraffe (キリン) など 90 種類の検出が可能な MobileNet SSD v2 (COCO) モデルを使用しています。検出できる物体のラベルは、COCO Label を参照してください。

インストールする

  1. アルゴリズムをインストールする の手順に従って、[Object Detection Movie] をインストールします。

    アルゴリズムをインストールすると同時に録画が開始されます

    録画を停止するには、アルゴリズムをアンインストールしてから、以下のいずれかを実行してください。

  2. [SORACOM_ENV_FREE_PARAM]TLabel パラメータを指定した JSON を入力し、検出する物体を指定します。

    horse (馬)、giraffe (キリン)、zebra (シマウマ) を検出する例:

    {"TLabel": ["horse", "giraffe", "zebra"]}
    

    Object Detection Movie のパラメータについて詳しくは、Object Detection Movie のパラメータ設定 を参照してください。

  3. [適用] をクリックします。

Object Detection Movie のパラメータ設定

Object Detection Movie では、以下のパラメータを利用しています。

パラメータ説明
SORACOM_ENV_WAIT指定した物体を検出した際に、前後に結合する動画の長さ (秒)、かつ Harvest Data および Harvest Files への送信間隔 (秒)。60 を指定した場合は、物体を検出する前 60 秒と検出した後 60 秒の動画が結合されます。また、Harvest Data および Harvest Files への送信間隔は 60 秒です。デフォルトは 60 です。なお、送信間隔は、SORACOM_ENV_FREE_PARAM の UInv で変更できます。
SORACOM_ENV_FREE_PARAMアルゴリズムの詳細設定。詳しくは、Object Detection Movie の詳細設定 (SORACOM_ENV_FREE_PARAM) を参照してください。
SORACOM_ENV_WAIT のデフォルトは 60 です

SORACOM_ENV_WAIT のデフォルトは 0 が設定されているように見えますが、実際は 60 が設定されています。

Object Detection Movie の詳細設定 (SORACOM_ENV_FREE_PARAM)

SORACOM_ENV_FREE_PARAM には、JSON 形式で以下のパラメータを指定できます。

パラメータ (型)説明
Model (string)物体認識に利用するモデルファイル名。モデルファイルは、エッジコンピューターの /opt/app/ 以下に配置してください。
Label (string)物体認識に利用するラベルファイル名。デフォルトは、「labels.txt」です。
TOut (integer)物体検出のタイムアウト (秒)。デフォルトは、60 です。
UInv (float)Harvest Data および Harvest Files への送信間隔 (秒)。デフォルトは、SORACOM_ENV_WAIT です。
OThresh (float)認識の信頼度の閾値 (0~1.0)。閾値以下の認識を破棄。デフォルトは、0.5 です。
TPK (integer)一画像に対する物体認識の最大数。デフォルトは、10 です。
MPnum (integer)プロセスの並列数。MPnum を増やすと、動画を並列アップロードできます。デフォルトは、1 です。
FIFO (boolean)並列で物体認識させた場合に、画像を取得した時間順に結果を受け取るかどうか。
true: 時間順に結果を受け取る
false: 物体認識の処理が終わった順に結果を受け取る
デフォルトは、true です。
TLabel (string の配列)検出する物体のラベル。省略した場合は、動画はアップロードされません。

例:horse (馬)、giraffe (キリン)、zebra (シマウマ) を検出する設定

{"TLabel": ["horse", "giraffe", "zebra"]}

Object Detection Movie のデータを確認する

Harvest Files

Object Detection Movie では、指定した物体を検出した際に、Harvest Files の /movie/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/ にインデックスファイル (m3u8) がアップロードされ、さらに ts/ にセグメントファイル (ts) がアップロードされます。各ファイルは Http Live Streaming (HLS) に基づいているため、ffmpeg を利用して、一つの動画ファイルに変換できます。

データを確認する操作について詳しくは、Harvest Files にアップロードされたデータを確認する を参照してください。

ffmpeg version 4.3.1 で動作を確認しています。

PC に保存して動画に変換する

PC に m3u8 ファイルと ts ファイルを保存してから、ffmpeg を利用して一つの動画ファイル (以下の例では mosaic.mp4) に変換します。

  1. 以下のように m3u8 ファイルと同じディレクトリ (Windows の場合はフォルダ。以下同様です) に ts ディレクトリを作成し、その中に ts ファイルを保存します。

    • yyyymmdd_hhMMss_index.m3u8 (例: 20210414_185937_index.m3u8)
    • ts/
      • yyyymmdd_hhMMss.ts
      • yyyymmdd_hhMMss.ts
      • yyyymmdd_hhMMss.ts

    m3u8 ファイルが複数アップロードされているときに、動画を 1 つだけ変換する場合は、m3u8 ファイルの中に書かれている ts ファイルだけをダウンロードして保存してください。

  2. ffmpeg を利用して、一つの動画ファイルに変換します。

    ffmpeg -i 20210414_185937_index.m3u8 -c copy mosaic.mp4
    

    ffmpeg のバージョンによっては、一つの動画ファイルに変換したときに映像が乱れる場合があります。ffmpeg の最新バージョンを使用してください。

SORACOM API を利用して動画に変換する

SORACOM API を利用して、m3u8 ファイルをダウンロードし、ffmpeg を利用して一つの動画ファイル (以下の例では mosaic.mp4) に変換します。

  1. SORACOM API の API キーと API トークンを取得します。

    詳しくは、API キーと API トークンの取り扱いについて を参照してください。

  2. SORACOM API (getFile) と ffmpeg を利用して、一つの動画ファイルに変換します。

    ffmpeg \
    -headers 'x-soracom-api-key: ${API_Key}'$'\r\n''x-soracom-token: ${API_Token}' \
    -i "https://api.soracom.io/v1/files/private/movie/{MOSAIC ID}/{撮影年}/{撮影月}/{撮影日}/20210414_185937_index.m3u8" \
    mosaic.mp4
    

    ${API_Key} と ${API_Token} には、それぞれ手順 1 で取得した API キーと API トークンを指定します。/movie/ 以降のパスは、Harvest Files にアップロードされた m3u8 ファイルのパスです。

ObjectDetection with Google Coral Edge TPU USB Accelerator (物体検出)

Google Coral Edge TPU USB Accelerator をお持ちの場合 ObjectDetection with Google Coral Edge TPU USB Accelerator を利用できます。アルゴリズムがうまく動作しない場合には、Google Coral Edge TPU を USB 接続した状態で S+ Camera シリーズ 電源断の後、電源を入れ直してください。Google Coral Edge TPU USB Accelerator の接続方法については、Google Coral Edge TPU USB Accelerator の利用方法 を参照してください。

Image Classification (Face) (顔認識)

Image Classification (Face) は S+ Camera シリーズ で取得した顔画像に対して顔認識モデルによる判定をします。また、モデルの作成、学習用に専用のコンソールもご用意しています。詳細は サンプルアルゴリズム「Image Classification(Face)」を使用した顔認識モデルを作成する を参照してください。

顔認識 顔認識

Object Detection (物体検出)

Object Detection はカメラに写った物体の認識と、認識した物体の位置を検出できます。SORACOM_ENV_WAIT 間隔ごとに検出された物体のアノテーションを付加した画像を Harvest Files の /object_detection/{Mosaic ID} へ送信します。

物体検出 物体検出

合わせて、Harvest Data へ検出したオブジェクトの情報が送信されます。

{"location": [0.3244456946849823, 0.31557196378707886, 0.23213914036750793, 0.6655720472335815], "score": 0.97265625, "label": "giraffe", "mosaicId": "8xxxxxxxxx_AX0XXXXXXXX", "ts": 1601625875.4137168, "image_path": "/object_detection/8xxxxxxxxx_AX0XXXXXXXX/2020/10/01/object_detection_8xxxxxxxxx_AX0XXXXXXXX_20201002T17-04-35-413717.webp"}
index説明
locationarray検出した物体の図中の相対位置 (x0, y0, x1, y1)。実際の位置は ([x0 x width, y0 x height, x1 x width, y1 x height])
scorefloat信頼度 (0~1.0)
labelstring検出した物体名
mosaicIdstringMosaic ID
tsfloatTimestamp
image_pathstring画像の保存場所 (Harvest Files)

サンプルでは、90 種類の検出が可能な COCO Label および MobileNet SSD v2 (COCO) モデルを使用しています。アルゴリズムの最大サイズは 10 MiB となっているため、モデルの差異が大きな場合には PreSetup を利用して、別途ダウンロードしてください。サンプルではラベルを labels.txt としてアーカイブに含めるとともに、モデル (ssd_mobilenet_v2_coco_quant_postprocess.tflite) は PreSetup を利用してダウンロードしています。

次の値は SORACOM_ENV_FREE_PARAM から変更可能です。

引数名説明
Modelstring物体認識に利用するモデルファイル名。モデルは /opt/app/ 以下に配置してください。
Labelstring物体認識に利用するラベルファイル名。Default labels.txt
TOutinteger物体検出のタイムアウト (秒)。Default 60
UInvfloatHarvest Data/Files への送信間隔 (秒)。Default SORACOM_ENV_WAIT
OThreshfloat認識の信頼度の閾値 (0~1.0)。閾値以下の認識を破棄。Default 0.5
TPKinteger一画像に対する物体認識の最大数。Default 10
MPnumintegerプロセスの並列数。Default 1
FIFOboolean並列で物体認識させた場合に、画像取得時間順に結果を受け取りたい場合 true。Default true
TLabelstring検出する物体を指定。指定しない場合には 90 種類すべてが対象。

特定する 物体SORACOM_ENV_FREE_PARAM に次のように設定してください (例では horsegiraffezebra 検出時に動画がアップロードされます)。

{"TLabel": ["horse", "giraffe", "zebra"]}

ArUcoMarker Image (画像の切り出し)

ArUcoMarker Image は OCR (英数字読み取り) で利用した ArUco Marker で指定された範囲を切り出して、Harvest Files にアップロードするサンプルアルゴリズムです。同時に、Harvest Data にメタデータを送信します。

1 組の ArUco Marker を切り出す場所に貼ると、ArUco Marker の中心を頂点とする長方形が切り出されます。ArUcoMarker については、OCR (英数字読み取り) を参照してください。

切り出し領域指定 切り出し領域指定

切り出された写真は Harvest Files へ送信されます。

  • ArUco Marker ID=1

    切り出されたイメージ-1 切り出されたイメージ-1

  • ArUco Marker ID=2

    切り出されたイメージ-2 切り出されたイメージ-2

合わせて、それぞれの領域のメタ情報が Harvest Data へ送信されます。

{"marker_id":1,"location":[410,408,380,161],"mosaicId":"8xxxxxxxxx_AX0XXXXXXXX","ts":1599783601.6256475,"image_path":"/ArUcoMarker/8xxxxxxxxx_AX0XXXXXXXX/2021/02/16/aruco_image_8xxxxxxxxx_AX0XXXXXXXX_20210216T16-02-47-138434.webp","algorithm":"arucomarker"}
{"marker_id":2,"location":[442,627,408,211],"mosaicId":"8xxxxxxxxx_AX0XXXXXXXX","ts":1599783601.6256475,"image_path":"/ArUcoMarker/8xxxxxxxxx_AX0XXXXXXXX/2021/02/16/aruco_image_8xxxxxxxxx_AX0XXXXXXXX_20210216T16-02-47-138435.webp","algorithm":"arucomarker"}
index説明
marker_idintegerArUco Marker の ID
locationstructureArUco Marker で囲われる図中の座標 ([left, top, left+width, top+height])
mosaicIdstringMosaic ID
tsfloatTimestamp
image_pathstring画像の保存場所 (Harvest Files)
algorithmstringアルゴリズム名

ArUcoMarker Image をインストールする

アルゴリズムをインストールする の手順に従って、[ArUcoMarker Image] をインストールしてください。

インストール完了後、エッジコンピューターで ArUco Marker を読み取れた場合は、Harvest Files に画像が、Harvest Data にメタデータが送信されます。

ArUcoMarker Image のパラメータ設定

ArUcoMarker Image では、以下のパラメータを利用しています。

パラメータ説明
SORACOM_ENV_WAITアルゴリズムが動作する時間間隔 (秒)。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で動作が繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。デフォルトは 60 です。
SORACOM_ENV_FREE_PARAMアルゴリズムの詳細設定。詳しくは、ArUcoMarker Image の詳細設定 (SORACOM_ENV_FREE_PARAM) を参照してください。
そのほかのパラメータこのサンプルアルゴリズムでは使用されません
SORACOM_ENV_WAIT のデフォルトは 60 です

SORACOM_ENV_WAIT のデフォルトは 0 が設定されているように見えますが、実際は 60 が設定されています。エッジコンピューターが実際に動作できる間隔よりも小さい値 (例: 0) を指定した場合は、できる限り短い間隔で動作が繰り返されます。動作可能間隔は、エッジコンピューターの仕様や IoT SIM (plan-D D-300MB) の通信速度 (速度クラス) によって異なります。

ArUcoMarker Image の詳細設定 (SORACOM_ENV_FREE_PARAM)

SORACOM_ENV_FREE_PARAM には、JSON 形式で以下のパラメータを指定できます。

パラメータ (型)説明
MCount (integer)ArUco Marker の最低検出個数 (0250)。たとえば、4 を設定すると 4 個以上 (一般的に 2 組以上) の ArUco Marker が読み取れなかった場合は、データが送信されません。デフォルトは、1 です。
IMargin (float)認識する領域のマージン (1.0~2.0)。デフォルトは、1.1 です。
UInv (float)Harvest Data および Harvest Files への送信間隔 (秒)。デフォルトは、SORACOM_ENV_WAIT に設定した値です。

サンプルアルゴリズム共通の環境変数について

以下の値は、サンプルアルゴリズム共通の値として [SORACOM_ENV_FREE_PARAM] で変更できます。

パラメータ (型)説明
IForm (string)画像フォーマット (webp または jpeg)。デフォルトは、webp です。
IQl (integer)画質 (0100)。デフォルトは、100 です。
IDf (integer)画像の縮小率 (1 : 大きさを変更しない。2 : 1/2 の大きさに縮小する)。デフォルトは、1 です。

3rd party アルゴリズム

Customer Attributes (顧客属性判定)

カメラが捉えた人物の性別と年齢を推定する AI アルゴリズムです。詳しくは、顧客属性判定 を参照してください。

Congestion Monitor (滞在人数カウント)

一定エリア内でカメラが捉えた人数をカウントする AI アルゴリズムです。詳しくは、滞在人数カウント を参照してください。

People Tracking Counter (通行量カウント)

カメラ前を通行した人数と向かう方向を検知する AI アルゴリズムです。詳しくは、通行量カウント を参照してください。

Vehicle Counter (駐車場台数カウント)

カメラが捉えた車両の台数をカウントする AI アルゴリズムです。詳しくは、駐車場台数カウント を参照してください。

People Stay Time (滞在時間計測)

カメラに写った人物の滞在時間を計測する AI アルゴリズムです。詳しくは、滞在時間計測 を参照してください。

Person Movement Flow (動線分析)

カメラに写った人物の移動経路を見える化する AI アルゴリズムです。詳しくは、動線分析 を参照してください。

Area Alert (禁止エリア侵入検知アラート)

立ち入り禁止エリアに侵入した人物をカメラが検知し、メールで通知する AI アルゴリズムです。詳しくは、禁止エリア侵入検知アラート を参照してください。

立ち入り禁止エリアを指定してください

立ち入り禁止エリアを、環境変数 [SORACOM_ENV_FREE_PARAM] で指定してください。詳しくは、アルゴリズムにカメラ画像上の座標を渡す を参照してください。

Mask Classification (マスク未着用者検知アラート)

マスク未着用の人物を発見するとメールで通知する AI アルゴリズムです。詳しくは、マスク未着用者検知アラート を参照してください。

Number Plate Detection (ナンバープレート OCR)

車のナンバープレートを読み取る AI アルゴリズムです。詳しくは、ナンバープレート OCR を参照してください。

Helmet Alert (ヘルメット検知)

カメラが捉えた人物のヘルメット着用有無を検出する AI アルゴリズムです。詳しくは、ヘルメット検知 を参照してください。

Cardboard Counter (段ボール検知)

カメラに写った段ボール数をカウントする AI アルゴリズムです。詳しくは、段ボール検知 を参照してください。

Facial Expression (表情分類)

人の表情を推定する AI アルゴリズムです。詳しくは、表情分類 を参照してください。

Cat Alert (物体検知+アラート(猫))

カメラに写った猫を検知する AI アルゴリズムです。詳しくは、物体検知+アラート(猫) を参照してください。

Dog Alert (物体検知+アラート(犬))

カメラに写った犬を検知する AI アルゴリズムです。詳しくは、物体検知+アラート(犬) を参照してください。

Vehicle Alert (物体検知+アラート (乗り物))

カメラに写った乗り物 (車、トラック、バイク、バス、自転車) を検知する AI アルゴリズムです。詳しくは、物体検知+アラート (乗り物) を参照してください。

Truck Alert (物体検知+アラート(トラック))

カメラに写ったトラックを検知する AI アルゴリズムです。詳しくは、物体検知+アラート(トラック) を参照してください。

People Alert (物体検知+アラート(人物))

カメラに写った人物を検知する AI アルゴリズムです。詳しくは、物体検知+アラート(人物) を参照してください。

Smartphone Alert (物体検知+アラート(スマートフォン))

カメラに写ったスマートフォンを検知する AI アルゴリズムです。詳しくは、物体検知+アラート(スマートフォン) を参照してください。

QR Code Reader (QR コード検知)

カメラに写った QR コードを読み込む AI アルゴリズムです。詳しくは、QR コード検知 を参照してください。

Ramen Type Classifier (ラーメン種別推定)

カメラに写ったラーメンの種類を判別する AI アルゴリズムです。詳しくは、ラーメン種別推定 を参照してください。

Car Counter (自動車交通量カウント)

自動車の通行量をカウントするアルゴリズムです。設定したラインをまたいだ自動車の台数をカウントします。詳しくは、自動車交通量カウント を参照してください。

自動車交通量カウントは試用版のため、2022 年 9 月 30 日まで無料で使用できます。