人口統計に基づくデジタルキオスクでの 4K 広告の表示


この記事は、GitHub* に公開されている「4K Advertisement Display on Digital Kiosk Based on Demographics」の日本語参考訳です。


詳細
ターゲット OS: Ubuntu* 16.04 LTS
プログラミング言語: C++
作業時間: 45 分

サンプルイメージ

説明

このリファレンス実装は、視聴者解析にインテル® ディストリビューションの OpenVINO™ ツールキット、4K 広告の表示にインテル® Media SDK を使用して開発されました。このアプリケーションは、デジタルサイネージの前に立っている視聴者の年齢と性別を識別し、識別した情報に基づいて適切な 4K 広告を選択します。Grafana* でリアルタイム・データ視覚化が行われ、開発者は経時的な傾向をモニターできます。このリファレンス実装は、実世界のマーケティングおよび広告を向上することを目標としています。

要件

ハードウェア

ソフトウェア

  • Ubuntu* 16.04 LTS
  • インテル® ディストリビューションの OpenVINO™ ツールキット 2019 R2 リリース
  • インテル® Media SDK

仕組み

このアプリケーションは、カメラなどのビデオソースからフレームを取得し、ディープ・ニューラル・ネットワーク (DNN) を使用してデータを処理します。最初のネットワークは顔を検出します。2 つ目のニューラル・ネットワークは検出した顔の年齢と性別を判断します。3 つ目のニューラル・ネットワークは、人の頭部姿勢を検出します。

アプリケーションは、デジタル・サイネージ・カメラの前に立っている人の年齢、性別、頭部姿勢を観測して、5 つのフレームのデータを収集します。観測の変動を避けるため、データは正規化されます。正規化されたデータに基づいて、アプリケーションは性別に適した広告を選択します。

JSON ファイルは、異なる年齢および性別グループの広告のリストを提供します。この JSON ファイルは解析され、年代グループ、性別、広告のリストなど、ファイルに含まれるデータは C++ 構造で格納されます。ソフトウェアは、視聴者解析で年齢グループと性別を判断すると、JSON データから広告を選択します。広告は HEVC プラグインを使用してデコードされ、インテル® Media SDK を使用して再生されます。

このアプリケーションには、視聴者解析プロセス (AAP) と広告表示プロセス (ADP) の 2 つのプロセスがあります。これらのプロセス間の通信にはパイプを使用します。

AAP は、視聴者を解析し、適切な広告を選択して、選択した広告をパイプに書き込みます。ADP は、パイプからファイル名を読み取り、H.265 または HEVC 形式のビデオをデコードしてレンダリングします。広告の再生が終了すると、ADP は広告完了の肯定応答をパイプを通じて AAP に送信します。肯定応答を受信すると、AAP はその時間の視聴者に基づいて次の広告を選択し、ADP に送信します。新しい広告は、前の広告が完了した場合にのみ再生されます。

2 つのプロセスは並列で実行され、視聴者解析は広告の再生中にも行われます。20 フレームごとに、アプリケーションは InfluxDB* データベースにデータを送信し、Grafana* で視覚化されて、経時的な傾向が表示されます。Grafana* は、広告に興味を持った人の数、興味を持たなかった人の数、現在再生している広告、デジタルサイネージの前に立ったユニークな人の総数を視覚化します。

コード構成

セットアップ

コードの取得

リファレンス実装のクローンを作成します。

sudo apt-get update && sudo apt-get install git
git clone https://github.com/intel-iot-devkit/intelligent-kiosk-analytics-cpp.git

インテル® ディストリビューションの OpenVINO™ ツールキットのインストール

インテル® ディストリビューションの OpenVINO™ ツールキットのインストールおよびセットアップ方法の詳細は、Linux* 向けインテル® ディストリビューションの OpenVINO™ ツールキットのインストール (英語) を参照してください。

GPU で推論を実行する場合は、下記の手順に従って OpenCL* ランタイムパッケージをインストールします。CPU で推論を実行する場合は不要です。

その他の依存ファイル

インテル® Media SDK
インテル® Media SDK は、インテル® グラフィックス・ハードウェア・プラットフォームのハードウェア・アクセラレーションによるビデオデコード、エンコードおよびフィルタリングにアクセスする C API を提供します。

InfluxDB*
InfluxDB* は大量の書き込みとクエリーロードを扱うように設計された時系列データベースです。InfluxDB* は、DevOps モニタリング、アプリケーション・メトリック、IoT センサーデータ、リアルタイム分析を含む、大量の時系列データを含むユースケースで外部記憶装置として使用されます。

Grafana*
Grafana* はオープンソースの汎用ダッシュボードおよびグラフ・コンポーザーで、ウェブ・アプリケーションとして動作します。Graphite*、InfluxDB*、Prometheus*、OpenTSDB をバックエンドとしてサポートしています。Grafana* を使用すると、メトリックがどこに格納されていても、メトリックを照会、視覚化、アラートおよび把握できます。

使用するモデル

このアプリケーションは、インテルの face-detection-retail-0004 (英語)、age-gender-recognition-retail-0013 (英語) および head-pose-estimation-adas-0001 (英語) モデルを使用します。モデルは、モデル・ダウンローダーを使用してダウンロードできます。モデル・ダウンローダーは、アプリケーションで使用する .xml ファイルと .bin ファイルをダウンロードします。

モデルをダウンロードしてアプリケーションの依存ファイルをインストールするには、intelligent-kiosk-analytics-cpp ディレクトリーで下記のコマンドを実行します。

./setup.sh

設定ファイル

resources/config.json は、入力としてアプリケーションで使用されるビデオのパスを含んでいます。

例:

{
"inputs": [
{
   "video":"path_to_video/video1.mp4",
}
]
}

path/to/video は入力ビデオファイルのパスです。

使用する入力ビデオ

アプリケーションは任意の入力ビデオで動作します。サンプルビデオはこちら (英語) で提供されています。

初回は、face-demographics-walking-and-pause (英語) を使用することを推奨します。

例:

{
"inputs": [
{
   "video":"sample-videos/face-demographics-walking-and-pause.mp4",
}
]
}

ほかのビデオを使用する場合は、config.json ファイルにビデオのパスを指定します。

ビデオの代わりにカメラを使用する

config.json ファイルの path/to/video をカメラ ID に変更します。ID はビデオデバイスの ID です (/dev/videoX の数 X)。

Ubuntu* で、利用可能なすべてのビデオデバイスをリストするには、次のコマンドを使用します。

ls /dev/video*

例えば、上記のコマンドの出力が /dev/video0 の場合、config.json は次のようになります。

  {
"inputs": [
{
   "video":"0"
}
]
}

環境の設定

プロジェクト・ディレクトリーに移動します。

cd <path-to-intelligent-kiosk-analytics-cpp>

インテル® ディストリビューションの OpenVINO™ ツールキットを使用するように環境を設定します。

source /opt/intel/openvino/bin/setupvars.sh

アプリケーションのビルド

ビルドするには、intelligent-kiosk-analytics-cpp ディレクトリーに移動して次のコマンドを実行します。

mkdir -p build && cd build
cmake ..
make
export LD_LIBRARY_PATH=$PWD/ie_cpu_extension:$LD_LIBRARY_PATH

アプリケーションの実行

CPU で実行する

アプリケーションはデフォルトで CPU で実行されますが、コマンドライン引数で -d CPU -d_hp CPU -d_ag CPU と明示的に指定することもできます。

__bin/Release/application -m /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Retail/object_detection/face/sqnet1.0modif-ssd/0004/dldt/FP32/face-detection-retail-0004.xml -m_ag /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Retail/object_attributes/age_gender/dldt/FP32/age-gender-recognition-retail-0013.xml -m_hp /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Transportation/object_attributes/headpose/vanilla_cnn/dldt/FP32/head-pose-estimation-adas-0001.xml

インテル® ディストリビューションの OpenVINO™ ツールキットで提供されるモデルに加えて、Caffe*、TensorFlow*、または Apache* MXNet マシンラーニング・フレームワークでトレーニングされた、顔検出、年齢/性別認識、頭部姿勢モデルを含めることもできます。これらのモデルを含めるには、使用するフレームワーク向けにモデル・オプティマイザーを設定した後、トレーニング済みモデルを変換して、モデルの最適化された中間表現 (IR) を作成します。

モデル・オプティマイザーの詳細は、モデル・オプティマイザー開発者ガイド (英語) を参照してください。

IR が取得できたら、アプリケーションを実行します。

__bin/Release/application -m <path-to-face-detection-IR>/face-detection.xml -m_ag <path-to-age-gender-IR>/age-gender-recognition.xml -m_hp <path-to-head-pose-estimation-IR>/head-pose-estimation.xml

注:

  1. アプリケーションを終了するには、[Detection results] ウィンドウをクリックして ESC キーを長押しします。
  2. 同期モードでアプリケーションを実行するには、コマンドライン引数で -async 0 を使用します。デフォルトでは、アプリケーションは非同期モードで実行されます。
  3. 複数のデバイスで実行するには、-d MULTI:device1,device2 を使用します (例: -d MULTI:CPU,GPU,MYRIAD)。

異なるハードウェアで実行する

アプリケーションは、異なるモデルに異なるハードウェア・アクセラレーターを使用できます。下記のコマンドライン引数を使用して、各モデルのターゲットデバイスを指定します。

-d <device>: Target device for Face Detection network (CPU, GPU, MYRIAD or HDDL).
-d_ag <device>: Target device for Age Gender Recognition network (CPU, GPU, MYRIAD or HDDL).
-d_hp <device>: Target device for Head Pose Estimation network (CPU, GPU, MYRIAD or HDDL).

例:
顔検出モデルを CPU、年齢認識モデル (FP32) を GPU、頭部姿勢推定モデルを MYRIAD で実行するには、下記のコマンドを使用します。

__bin/Release/application -m /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Retail/object_detection/face/sqnet1.0modif-ssd/0004/dldt/FP32/face-detection-retail-0004.xml -m_ag /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Retail/object_attributes/age_gender/dldt/FP32/age-gender-recognition-retail-0013.xml -m_hp /opt/intel/openvino/deployment_tools/open_model_zoo/tools/downloader/Transportation/object_attributes/headpose/vanilla_cnn/dldt/FP16/head-pose-estimation-adas-0001.xml -d CPU -d_ag GPU -d_hp MYRIAD

FP32: FP32 は数の表現に 32 ビットを使用する単精度浮動小数点演算です。大きさ (仮数部) は 8 ビット、精度 (指数部) は 23 ビットです。詳細は、ここをクリックしてください。
FP16: FP16 は 16 ビットを使用する半精度浮動小数点演算です。大きさ (仮数部) は 5 ビット、精度 (指数部) は 10 ビットです。詳細は、ここをクリックしてください。

注: インテル® ニューラル・コンピュート・スティックおよび HDDL は FP16 モデルのみ実行できます。コマンドライン引数でアプリケーションに渡されるモデルは FP16 データ型でなければなりません。

トラブルシューティング

アプリケーションを実行すると、共有ライブラリーのロードに関する次のエラーが表示されることがあります: __bin/Release/application: error while loading shared libraries: libcpu_extension.so: cannot open shared object file: No such file or directory

このエラーが発生した場合、intelligent-kiosk-analytics-cpp ディレクトリーに移動して LD_LIBRARY_PATH 環境変数をエクスポートします。

cd build
export LD_LIBRARY_PATH=$PWD/ie_cpu_extension:$LD_LIBRARY_PATH

広告リストへの新しい広告の追加

JSON ファイルに新しい広告を追加するには、以下の手順に従います。

  1. FFmpeg を使用して、デコードプロセスの入力ビデオ形式である H.265 または HEVC 形式にビデオを変換します。MP4 ビデオを必要な形式に変換するには、次の操作を行います。

    • FFmpeg をインストールします。
    sudo apt install ffmpeg
    • FFmpeg を使用して .mp4 から .hevc 形式にビデオを変換します。
    ffmpeg -i <input_video>.mp4 -c:v libx265 -c:a aac -b:a 128k <output_video>.hevc
  2. intelligent-kiosk-analytics-cpp ディレクトリー以下の resources ディレクトリーにビデオをコピーします。

  3. 広告のビデオファイルの名前を追加します。例えば、29 才から 49 才の年齢グループの男性向けに再生する新しい広告ファイル intel.hevc を追加するには、adlist.json ファイルを変更します。

    • エディターで、intelligent-kiosk-analytics-cpp/resources ディレクトリーの adList.json ファイルを開きます。
    • "Age_Group": 3、"Gender": "M" の広告リストの最後に、ファイル名 intel.hevc を追加します。
        {
    "Age_Group": 3,
    "Gender": "M",
    "Ads": [
    	"maleAd.h265",
    	"maleAd.h265",
    	"maleAd.h265",
    	"intel.hevc"
    ]
    }

    :

    • アプリケーションの年齢グループは 4 つに分かれています。
      • 子ども: 1 才から 13 才、年齢グループ 1 に属します。
      • 青年: 14 才から 28 才、年齢グループ 2 に属します。
      • 大人: 29 才から 49 才、年齢グループ 3 に属します。
      • シニア: 50 才以上、年齢グループ 4 に属します。

InfluxDB* データベース

  • InfluxDB* データベースの時系列人口統計データをチェックします。

    influx
    show databases
    use Demographics
    select * from Demographics

Grafana* での視覚化

  • Grafana* でデータを視覚化します。

    • 端末で、Grafana* サーバーを開始します。

      sudo service grafana-server start
    • ブラウザーを開いて localhost:3000 に移動します。

    • ユーザー admin およびパスワード admin でログインします。

    • Configuration アイコンをクリックし、[Data Sources] を選択します。

      Grafana*

    • [+ Add data source] をクリックして下記の情報を設定します。

      • Name: Demographics
      • Type: InfluxDB
      • URL: http://localhost:8086
      • Database: Demographics
      • [Save and Test] をクリックします。
    • ページの下部の [Back] ボタンをクリックします。[+ Add data source] をクリックして下記の情報を設定します。

      • Name: AdData
      • Type: InfluxDB
      • URL: http://localhost:8086
      • Database: AdData
      • [Save and Test] をクリックします。
    • ページの下部の [Back] ボタンをクリックします。AdData と Demographics がデータソースに追加されます。

      Grafana*

    • 新しいダッシュボードを作成します。

      1. Grafana* アイコンの下のサイドバー・メニューの + アイコンをクリックして [Dashboard] を選択します。

        Grafana*

      2. [Singlestat] を選択します。[Panel Title] をクリックして [Edit] を選択します。

        • [Singlestat] メニュータブの [General] をクリックして [Panel Title] を Number of people に変更します。

        • [Singlestat] メニュータブの [Metrics] をクリックします。[Data Source] から Demographics を選択します。

        • [Add Query] を選択します。[select measurement] をクリックして [Demographics] を選択します。

        • [field (value)] で、[value] をクリックして [Total people] を選択します。

        • [SELECT] フィールドの mean の横の + をクリックします。[Selectors] から last() を選択します。mean() がオーバーライドされます。

          ステップ 2 の後、クエリー A は次のようになります。

          FROM default Demographics SELECT field(Total people) last() GROUP BY time($__interval) fill(null) FORMAT AS Time Series

        Grafana*

        • [Singlestat] メニュータブの [Options] をクリックします。[stat] フィールドから [Current] を選択して、最初の行の [Font size]120 に変更します。
        • 下部の [Gauge] オプションで [show] を選択します。
        • ダッシュボードの名前を Kiosk にします。[Save] ボタンをクリックします。

        Grafana*

      3. 以下を変更してステップ 2 を繰り返し、ダッシュボードに Number of maleSinglestat パネルを追加します。

        • [Panel title] を Number of people から Number of male に変更します。

        • [Singlestat] メニュータブの [Metrics][field (value)] で、[Total male] を選択します。

          クエリー A は次のようになります。

          FROM default Demographics SELECT field(Total male) last() GROUP BY time($__interval) fill(null) FORMAT AS Time Series

        Grafana*

        • ダッシュボードを保存して、上部メニューの右上隅の [Back to dashboard] アイコンをクリックします。
      4. 同様に、以下を変更してステップ 2 を繰り返し、ダッシュボードに Number of femaleSinglestat パネルを追加します。

        • [Panel title] を Number of people から Number of female に変更します。

        • [Singlestat] メニュータブの [Metrics][field (value)] で、[Total female] を選択します。

          クエリー A は次のようになります。

          FROM default Demographics SELECT field(Total female) last() GROUP BY time($__interval) fill(null) FORMAT AS Time Series
        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。

      5. 人口統計時系列データを視覚化するグラフを追加します。

        • 上部メニューの [add panel] アイコンをクリックして、[Graph] をクリックします。グラフがダッシュボードに追加されます。

        • グラフの [Panel Title] をクリックして [Edit] を選択します。

        • [Graph] メニュータブの [General] をクリックして [Panel Title] を People viewing Ad に変更します。

        • [Graph] メニュータブの [Metrics] をクリックします。[Data Source] から Demographics を選択します。

        • [Add Query] を選択します。[select measurement] をクリックして [Demographics] を選択します。

        • [field (value)] をクリックして [Total people] を選択します。

        • [SELECT] フィールドの + をクリックします。[Selectors] から last() を選択します。

        • [GROUP BY] フィールドで、[time($__interval)] をクリックして 10s を選択します。

        • [ALIAS BY] 行のクエリー名を Number of people にします。

          クエリー A は次のようになります。

          FROM default Demographics SELECT field(Total people) last() GROUP BY time(10s) fill(null) FORMAT AS Time Series ALIAS BY Number of People
        • + をクリックして、男性と女性の数を表示するクエリーを同様に追加します。男性と女性のクエリーは次のようになります。

          クエリー B:

          FROM default Demographics SELECT field(Total male) last() GROUP BY time(10s) fill(null) FORMAT AS Time Series ALIAS BY Number of male

          クエリー C:

          FROM default Demographics SELECT field(Total female) last() GROUP BY time(10s) fill(null) FORMAT AS Time Series ALIAS BY Number of female

        Grafana*

        • [Graph] メニュータブの [Display] をクリックして、[Mode Options][Fill][Line Width] の値を 2 に変更します。
        • メニュータブの [Time Range] をクリックし、[Override relative time] [Last] の横のテキストボックスに 500s と入力します。
        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。
      6. 人口統計データを表示する表を追加します。

        • 上部メニューの [add panel] アイコンをクリックして、[Table] をクリックします。

        • 表の [Panel Title] をクリックして [Edit] を選択します。

        • [Table] メニュータブの [General] をクリックして [Panel Title] を Demographics に変更します。

        • [Table] メニュータブの [Metrics] をクリックします。[Data Source] から Demographics を選択します。

        • [Metrics] でクエリーを次のように設定します。

          クエリー A:

          FROM default Demographics SELECT field(Total people) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series ALIAS BY Number of People

          クエリー B:

          FROM default Demographics SELECT field(Total male) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series  ALIAS BY Number of male

          クエリー C:

          FROM default Demographics SELECT field(Total female) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series ALIAS BY Number of female
        • 下記のイメージのように、メニュータブの [Column Styles] から、[+Add] をクリックして [Apply to columns named]No. of people と設定し、Type[Type]Number を選択して [Decimals] フィールドに 0 と入力します。

        Grafana*

        • 同様に、[Column Styles]No. of maleNo. of female のルールを追加し、[Type]Number を選択して [Decimals] フィールドに 0 と入力します。
        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。
      7. 広告に興味を持った人を表示するグラフを追加します。

        • 上部メニューの [add panel] アイコンをクリックして、[Graph] をクリックします。グラフがダッシュボードに追加されます。

        • グラフの [Panel Title] をクリックして [Edit] を選択します。

        • [Graph] メニュータブの [General] をクリックして [Panel Title] を Audience interested in viewing the Ad に変更します。

        • [Graph] メニュータブの [Metrics] をクリックします。[Data Source] から AdData を選択します。

        • [Metrics] でクエリーを次のように設定します。

          クエリー A:

          FROM default AdData SELECT field(peopleInterested) last() GROUP BY time(10s) fill(null) FORMAT AS Time Series ALIAS BY People Interested

          クエリー B:

          FROM default AdData SELECT field(peopleNotInterested) last() GROUP BY time(10s) fill(null) FORMAT AS Time Series ALIAS BY People Not Interested
        • [Graph] メニュータブの [Display] をクリックして、[Mode Options][Fill][Line Width] の値を 2 に変更します。

        • メニュータブの [Time Range] をクリックし、[Override relative time] [Last] の横のテキストボックスに 500s と入力します。

        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。

      8. 広告に興味を持った人を表示する表を追加します。

        • 上部メニューの [add panel] アイコンをクリックして、[Table] をクリックします。

        • 表の [Panel Title] をクリックして [Edit] を選択します。

        • [Table] メニュータブの [General] をクリックして [Panel Title] を Ad Data に変更します。

        • [Table] メニュータブの [Metrics] をクリックします。[Data Source] から AdData を選択します。

        • [Metrics] でクエリーを次のように設定します。

          クエリー A:

          FROM default AdData SELECT field(previousAd) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series ALIAS BY Ad name

          クエリー B:

          FROM default AdData SELECT field(peopleInterested) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series ALIAS BY People Interested

          クエリー C:

          FROM default AdData SELECT field(peopleNotInterested) last() GROUP BY time(1s) fill(none) FORMAT AS Time Series ALIAS BY People Not Interested
        • [Column Styles]People interestedPeople not interested のルールを追加し、[Type]Number を選択して [Decimals] フィールドに 0 と入力します。

        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。

      9. ダッシュボードで現在再生されている広告を表示します。

        • [Singlestat] を選択し、[Panel Title] をクリックして [Edit] を選択します。

        • [Singlestat] メニュータブの [General] をクリックして [Panel Title] を Ad currently playing に変更します。

        • [Singlestat] メニュータブの [Metrics] をクリックします。[Data Source] から AdData を選択します。

        • [Metrics] でクエリーを次のように設定します。

          クエリー A:

          FROM default AdData SELECT field(currentAd) last() GROUP BY time($__interval) fill(null) FORMAT AS Time Series
        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。

      10. 以下を変更してステップ 2 を繰り返し、ダッシュボードに Number of unique visitorsSinglestat パネルを追加します。

        • [Panel title] を Number of people から Number of unique visitors に変更します

        • [Singlestat] メニュータブの [Metrics][field (value)] で、[Unique visitors] を選択します。

          クエリー A は次のようになります。

          FROM default Demographics SELECT field((Unique visitors)) last() GROUP BY time(1m) fill(null) FORMAT AS Time Series
        • [Singlestat] メニュータブの [Options] をクリックします。Value の下の [stat] フィールドから [Current] を選択して、最初の行の [Font size]120 に変更します。

        • ダッシュボードを保存して、[Back to dashboard] アイコンをクリックします。

      11. ダッシュボードの上部メニューから [Time picker] を選択します。[Custom range] で、[From]now-10m[To]now[Refreshing every:]5s に設定し、[Apply] をクリックしてダッシュボードを保存します。

      Grafana*

    • C++ コードを実行して Grafana* でデータを視覚化します。

    • ダッシュボードのパネルのサイズと位置は変更できます。

      Grafana*

      Grafana* での視覚化は、以下の手順で行うこともできます。

      1. ブラウザーで、localhost:3000 に移動します。

      2. ユーザー admin およびパスワード admin でログインします。

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

      4. [Data Sources] を選択します。

      5. [+ Add data source] をクリックして下記の情報を設定します。

        • Name: Demographics
        • Type: InfluxDB
        • URL: http://localhost:8086
        • Database: Demographics
        • [Save and Test] をクリックします。

        ページの下部の [Back] ボタンをクリックします。[+ Add data source] をクリックして下記の情報を設定します。

        • Name: AdData
        • Type: InfluxDB
        • URL: http://localhost:8086
        • Database: AdData
        • [Save and Test] をクリックします。
      6. ブラウザーの左側の + アイコンをクリックして、import を選択します。

      7. Upload.json File をクリックします。

      8. intelligent-kiosk-analytics-cpp/resources ディレクトリーから kiosk-analytics.json を選択します。

      9. Demographics[Select a influxDB data source] で "Demographics"、AdData フィールドで "AdData" データソースを選択します。

      10. [Import] をクリックします。

      11. アプリケーションを実行して Grafana* でデータを確認します。