Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Smart Camera: Azure IoT + Container

12/12に実施されたイベント「今日から使える!顧客、従業員の行動を可視化するSmart Store カメラリファレンスアーキテクチャー」の資料です。
日本マイクロソフト株式会社
平岡一成

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

Smart Camera: Azure IoT + Container

  1. 1. Smart Camera: Azure IoT + Container リファレンスアーキテクチャーで使われている Azure テクノロジーをご紹介 Microsoft Japan Smart Store Dev-Team
  2. 2. Smart Store プラットフォーム の設計概念 リファレンスアーキテクチャ 4. サンプル実装 Smart Camera
  3. 3. 小売業をとりまく環境変化と技術トレンド 新興経済圏の 成長 人口動態の変化 人材確保、 育成難 消費行動の変化 インターネット スマートフォン の普及 新たな競合 (Disrupter) の出現 モバイル ソーシャル ビッグデータ クラウドAI IoT
  4. 4. 1. Smart Store の目的
  5. 5. 1-1. 小売業界の最新状況(DX) ✓小売業界は顧客ニーズが多様化し、体験やストーリーを重視して購買を行うように変化していると言われています。 ✓その過程で競争力の維持・強化・顧客満足向上のために、デジタルトランスフォーメーションをスピーディーに進めていくことが求められています。 ✓日本マイクロソフト(株)は最新テクノロジとデータを活用してビジネスモデルを変革し、顧客志向で革新的なサービスを提供する次世代店舗 モデル「Smart Store」の実現に向けた支援策を提供開始しました。 Intelligent Retail Know your customers Empower your people Deliver intelligent supply chain Reimagine retailReimagine Retail 流通業ビジネスの 再創造 Know your Customers 顧客理解の促進 Deliver intelligent Supply chain サプライチェーンの 高度化 Empower your Employees 従業員の強化
  6. 6. 1-2. Smart Store 施策の背景 次世代の小売業で求められている姿 日本の小売業が直面しているシステム課題 • 単一のテクノロジ/ソリューションではビジネス課 題が解決できない (単発的なPOCの繰り返し) • 新しいテクノロジに追従する技術者育成・確保 困難 • 革新的なサービス開発を支えるシステムのサイロ 化による運用コストの増大 • 省人化や効率化かつ顧客満足の維持と向上 • 新しいビジネスモデルへの転換 • 顧客・店舗データの利活用 • カスタマイズされたサービス提供 • イノベーティブなサービスの実現 出典: 「スマートストアの実現に向けて」 平成30年3月経済産業省 消費・流通政策課 Smarter Retailing Forum 2018 VS 日本マイクロソフトは このGAPを本施策で解消します
  7. 7. 1-3. Smart Store プラットフォームの提供 ✓ 流通業界におけるシステム共通部分について、マイクロソフトによるリファレンスアーキテクチャーを提供します。 ✓ リファレンスアーキテクチャーでは、スマホ決済等のキャッスレス化対応や、数百店舗での数百万商品や在庫を一括管理でき る商品マスタ、および商品トランザクション管理など、店舗ビジネスにおける主要な業務シナリオ(ユースケース)、 サンプルアプリケーション、およびサンプルコードが含まれます。 ✓ 小売業各社は新規サービス開発期間、開発コスト、および運用コストを大幅削減し、イノベーションライフサイクルを短縮化 することができます。 Smart Store 迅速で柔軟な店舗展開とデータ取得の促進 今後提供予定 Smart Store リファレンスアーキテクチャー メーカー 物流卸売 小売 ECB 決済 消費者 提供中 今後提供予定
  8. 8. 今後提供予定 1-4. リファレンスアーキテクチャー利用イメージ Smart Store リファレンスアーキテクチャー API API API API API API メーカー 物流卸売 小売 ECB 決済 消費者 メーカー 卸・物流関連事業者 流通小売事業者 新規事業者 提供中 流通小売事業者 • 新しいビジネステーマに迅速な対応 • 継続的なイノベーションを実現 ソリューション パートナー • 店舗デバイスによる新規ビジネスモデル開発 • AI、IoT、カメラ等と連携した先進的なソリューション開発 RaaS (Retail As a Service) パートナー • 複数ソリューションを連携して、事業者へ統合サービスと して提供 日本マイクロソフト • 主要な業務シナリオにおける リファレンスアーキテクチャー を提供し、より短いサイクルで継続的なイノベーションを 実現可能にする • 適切なソリューションパートナー・RaaSパートナーを紹介する ダイナミック・ プライシング ソリューション カメラ ソリューション 電子タグ ソリューション 決済 ソリューション 在庫管理 ソリューション … ✓ 電子棚札 ✓ サイネージ ✓ 店舗メディア ✓ etc ✓ 映像 ✓ 赤外線 ✓ TOF(3D) ✓ etc ✓ 場所特定 ✓ Bluetooth ✓ RFID ✓ etc ✓ RFIDレジ ✓ カート一体型 セルフレジ ✓ モバイル端末 ✓ etc ✓ リアルタイム 在庫管理棚 ✓ 作業指示端末 ✓ etc 今後提供予定
  9. 9. 1-5. Smart Store プラットフォームの目的 ✓ 複数ソリューションを有機的に連携させる環境を作り、お客様が差別化すべき領域を限定的にします。 ✓ その効果により、中小小売業を含めた流通小売事業全体のイノベーションを加速化させます。 施策の概要 ① 先進的なテクノロジを用いた基本的な実現方式(リファレンス アーキテクチャー)を、業界共通でオープン化し各社へ提供 ② リファレンスアーキテクチャーをベースとしたパートナー・技術者を育成 ③ 事業者が差別化した新規ビジネス開発に専念できるよう支援 パートナー様 流通事業者様 サービス構築期間の短縮化 RaaS/Solutionの提供 技術者の育成 差別化したサービス開発 革新的な新事業展開 先進的なテクノロジ を用いたリファレンスの提供 日本マイクロソフト
  10. 10. 1-6. 今後のデジタルを活用した店舗イメージ • 商品の評価を入れる • ポイント付与 • クーポン発行 • 定性情報の蓄積 退店後 入店前 • 店外から商品在庫確認 • 予約 (決済) も可能 • 店外でも LINE などから レコメンドを受信 イートイン 商品在庫+予約 レコメンド 商品レビュー・評価 クルーデバイス 入店認証 動線分析 ロッカー商品受取 ヒートマップ 滞留分析 広告効果測定 店内行動 各種情報 電子棚札 オススメ 店内レコメンド 商品情報 (アレルギー等) AR商品情報 ランキング・商品評価配信 対面KIOSK 接客ロボ RFID対応レジ モバイル決済 Suica決済退出ゲート ウォークスルー ゲート決済 電子レシート サイネージ 店内調理 縦型サイネージ FF在庫管理 在庫管理 電子棚札制御 ¥1000¥550 空調・照明制御 スマートエネルギー 自動発注 個品単位での追跡 生産~廃棄まで 個品管理が可能 業務アシスト 需要予測 カート一体型セルフレジ 欠品分析 棚割分析 棚一体型サイネージ 防犯カメラ 画像認識レジ リアルタイムクーポン 冷蔵庫モニタリング
  11. 11. 2. Smart Store プラットフォームの設計概念
  12. 12. 2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(1) ✓ スピード これまでは機器設備の調達や設置に多くの日数を要するため、事前に入念な計画が必要でした。クラウドの最大の メリットは、最小限の準備で「すぐに」実行できるスピードにあります。店舗数や来店客数、品数や在庫量・流通 量などのデータ変動量の予測が困難になっている現在、フェイルファスト(行動学習)可能な環境は何よりも強い 武器になります。 ✓ スケーラビリティ 将来のデータの変動量の予測が難しい現状では、例えば3年後に必要になるサーバーやストレージのサイズを予想す ることに意味はありません。必要なのは「必要な時に必要なだけ拡張/縮小できるリソース」です。クラウドは、無 駄な資源とともに無駄な検討時間も減らしてくれます。 ✓ 高い保守性 オンプレでは最小限の物理機器で動作するため、店舗新規開設時やメンテナンス時の「取り回し」の軽さとともに、 データセンター側の冗長化や多重化などの災害対策環境も容易に構成できる能力が得られます。
  13. 13. 2-1. Smart Storeプラットフォームにクラウドを選ぶ理由(2) ✓ アクセス性の向上 クラウドではパブリックかつ無尽蔵のリソースを利用できるようになることで、場所と時間を問わずリソースに アクセスすることができます。また、これまでインターネット経由のチャネル利用には自社ネットワークの増強 が不可欠でしたが、プラットフォームにクラウドを選択することで、最初からストレスのない帯域が手に入りま す。 ✓ セキュリティ 業務プラットフォームにクラウドを利用する際の最大の障壁がセキュリティでした。自社データセンターと専用 線接続のみで構成された環境はセキュリティ面で最も強固です。しかし、現在のリテールシステムはインター ネットと切り離して考えることはできない状況になりつつあります。一方で、クラウドシステムは全てソフト ウェアで構成されています、高価なファイアウォールもクラウドであれば全てのエンドポイントに配置すること も可能です。これまでのデータセンターでは考えられなかった強固なセキュリティをクラウドでは実現すること ができるのです。
  14. 14. 2-2. マイクロサービスの採用 ✓ ビジネス機能を一定の単位でカプセル化し、サービス間を疎結合に保つ設計手法 ✓ 個々のサービスを、それぞれのビジネス機能に求められる非機能要件を適用できる ✓ ビジネスの規模や成長ステージに合わせて、個々のサービス毎に拡張、更新、スケールが可能となる ✓ それぞれのサービスに適したテクノロジーを個別に適用することができる 商品マスタサービス POSサービス BOX管理サービス 在庫管理サービス 利用者向け アプリ用サービス 管理者向けWeb用サー ビス ビジネス機能単位で サービスを分割 サービス間は疎結合に保ち独立し て追加・更新可能に サービスの処理特性に応じて 個々にテクノロジーを適用 サービス毎の非機能要件 に合わせて、デプロイ・ス ケールが可能 マイクロサービスの特徴と利点
  15. 15. ✓ 昨今のセキュリティ概念においては、外部からの脅威だけでなく、内部の不慮または故意による事故に対しても考慮しなければなりません。 ✓ そこで Smart Store では、Zero trust network という概念に基づき、クラウドベンダーとクラウド利用者間で責任範囲を分担し、 セキュリティの保護に努めるというモデルを前提とします。 ✓ さらに、PaaSおよびサーバーレスの構成に限定することで、クラウド利用者側の責務が最小限になるよう配慮します。 ✓ この構成において、クラウド利用者は下記における責任を負います。 ・データの管理 ・エンドポイントの管理 ・アカウントと権限の管理 ・行動の記録と監査 責任範囲 SaaS PaaS IaaS データの管理 エンドポイントの管理 アカウント、アクセス管理 IDとディレクトリ構成 アプリケーション ネットワーク制御 OS クラウド利用者が対応する サービスの種類により、 それぞれが対応する クラウドベンダー クラウド利用者 物理ホスト、ネットワーク データセンター 2-3. Smart Storeにおけるセキュリティの考え方
  16. 16. 2-4. Smart Storeのリファレンスアーキテクチャ構想例テナント別機能PF ショッピングアプリ スマホ決済 キャッシュレス 消費者向け スマートフォンアプリ ウェブアプリ、API 無人レジ 発注 品出し、棚卸 バックオフィス向け 端末 ウェブアプリ、API クーポン発行 ちらし配布 経営会議 マーケティング向け 管理画面、自動処理 BIツール 店舗PF POS データストア 分析・学習 商品照会 カート 決済 API IoT-PF 設備 監視・制御 入力装置 (カメラ・マイクなど) 出力装置 (空調・照明・放送など) 販売BOX・陳列棚 利用者動向追跡 商品動向追跡 制御・データ送受信 機器管理制御・データ送受信 API、処理商品マスタ 利用者データ 在庫データ 設備データ 商品学習 利用者分析 需要予測 設備メンテナンス予測 データストア
  17. 17. Function App単位でスケールでき 2-5. クラウドPOSとは ✓サービスの中心となるPOSをクラウドでAPI化することで、既存のPOS,タブレットなど様々なデバイスにも共有できるロジックを作ることができます。 ✓POSサービスAPI(Web API)を介しPOSとして必要な商品追加や支払等の複雑な処理をクラウドPOSが引き受けることにより、 様々なシーンのPOSデバイスが必要なWeb APIを呼び出して決済完了~取引情報の生成を簡単に行うことができます。 Function App単 位でスケールで き Azure Cosmos DBAzure Functions HTTP Trigger クラウドPOS カート取引作成/情報取得 商品追加(PTU)/削除 取引確定/中止 POSサービスAPI(Web API)デバイス カートPOS ECサイト AIカメラ タブレットPC その他デバイス(BOX等) 取引確定/中止 取引確定/中止
  18. 18. ✓ クラウドPOSは以下の3レイヤから構成され、Smart Store Platform では中間のPOS Service Layerを提供します。 ◼ Backoffice Layer :マスタ・在庫の管理等を行います ◼ POS Service Layer :取引などのPOSのサービスレイヤにて提供です ◼ UI/UX/Device Layer:店舗の形態により自由にカスタマイズ可能なレイヤーです ✓ 中間層であるPOS Service LayerがPOSの複雑な処理を一元管理するため、UI/UXの種類が変わってもカスタマイズ箇所が限定的になる 為、短いサイクルでサービスの提供が可能となります 2-6.クラウドPOSの構成レイヤ BOX管理 デバイス(BOX)管理 デバイス(カメラ)管理 ハード筐体 カメラ ECサイト タブレットPOS UI/UX Layer マスタ管理 在庫管理 ク ラ ウ ド P O S の 構 成 レ イ ヤ 決済管理 BI 商品 MD リアル在庫 受発注 商品 MD ETL PowerBI POS Service Layer Back Office Layer マスタ照会 カート管理 決済 取引管理 POSサービス
  19. 19. 分析/可視化 (Power BI等) 2-7. Azure上に構成するクラウドPOSの利点 ✓ Azureを利用することにより、 Back Office Layerに以下のようなサービスを簡単に構築することが可能です。 ✓例えば、集計や月間売上などの分析を実施するために、Data Factory+Data WarehouseやFeed(Cosmos DB)+SQL Databaseを 用いて構築することが可能です。 集計サービス 分析サービス POSサービスAPI 取引ログ カート取引作成/情報取得 商品追加(PLU)/ 削除 小計 支払追加 取引確定/中止 Change
  20. 20. 3. リファレンスアーキテクチャ
  21. 21. 3-18. Smart Camera (AI防犯カメラ) 概要 ✓ ディープラーニングベースの画像認識エンジンにより、防犯カメラ映像を分析可能なエッジデバイスです。本リファレンスアーキテクチャでは、エッジ 用の高速推論チップを活用することで、高速・高精度な人物検出、人物トラッキング、顔検出、顔からの性別・年齢推定を実現しています。 ✓ エッジデバイスでの画像認識結果は、Cosmos DBに格納されます。当該格納されたデータは、ダッシュボード上にて人流分析や客層分析結 果として表示が可能です。 ✓ エッジデバイス上で動作する画像認識モジュールは、Azure IoT Hubを利用して、デプロイ・実行・停止の制御が可能です。例えば本アーキテ クチャの画像認識モジュールをリプレースすることで、商品認識等、別用途の分析も可能です。 Azure IoT Edge Runtime 人物検出 トラッキング 顔検出 性・年齢 推定 防犯カメラ 映像 Cosmos DB 画像認識結果を ダッシュボード表示 IoT Hub 画像認識モジュールの デプロイ・実行制御
  22. 22. 3-19. Smart Camera (AI防犯カメラ) 全体構成図 Container registry コンテナ管理 ソフトウェアランタイム環境 Raspberry Pi 3B+ カメラ 高速推論チッ プ Azure IoT Edge Runtime ビデオ管理 モジュール 推論チップ管理モ ジュール Docker 画像認識モジュール ハードウェア Stream Analytics データ中継 Cosmos DB データ保存 Container instances サーバデプロイ IoT Hub モジュール管理
  23. 23. ✓ エッジデバイスの全て市販のハードウェアで構成されています。このため、誰でも安価かつ簡単に購入・作成可能です ✓ 安価なRaspberry Pi 3B+ をベースにしています。 ✓ Raspberry Pi カメラモジュールV2にて、エッジデバイスに映像を入力可能です。 ✓ 市販のエッジ用高速推論チップ(Movidius NCS2)を利用した、高速なCNN(畳み込みニューラルネットワーク)ベースの人物検出 が可能です。 3-20. Smart Camera – ハードウェア機能と特長 エッジデバイス内容物
  24. 24. ✓ エッジデバイスにDockerエンジン及びAzure IoT Edge Runtime搭載。これにより、Azure IoT Hubを利用した、パワフ ルかつ容易なモジュールの管理・制御を実現しています。 3-21. Smart Camera – ソフトウェア機能と特長 (1)
  25. 25. ✓ 画像認識モジュール ✓ エッジ用の高速推論チップを利用した防犯カメラ映像分析を行います。本アーキテクチャではカメラ映像からの人物 検出、人物トラッキング、顔検出及び顔からの性別・年齢推定を実現しています。 ✓ モジュールのデプロイ・実行・停止・更新はAzure IoT Hubによって管理、制御されています。モジュールを差し替 えることで、例えば商品認識等の別用途の分析も可能になります。 3-22. Smart Camera – ソフトウェア機能と特長 (2)
  26. 26. ✓ 推論チップ管理モジュール ✓ 市販の高速推論チップを利用するためのライブラリ及びそのチップに特化したプログラムを搭載しており、画像認識 タスクを高速に行います。(本アーキテクチャでは推論チップとしてIntel社のMovidius NCS2を使用しています) ✓ ビデオ管理モジュール ✓ エッジデバイス自身のカメラ、ビデオファイル、RTSP対応の防犯カメラと多彩な入力ソースに対応しています。 ✓ 入力映像をバッファリングし、推論チップの処理能力に応じた逐次処理を行います。例えば開店時間の録画映像を、 閉店時間後の時間を利用して処理を完了させる、といったことも可能です。 3-23. Smart Camera – ソフトウェア機能と特長 (3)
  27. 27. ✓ エッジデバイス、集計サーバ及びコンテナの管理をAzureクラウド上で一元化し、管理コストを低減します。 ✓ Azure IoT Hubを通して、エッジデバイスの状態確認及びエッジデバイス上で走るモジュールの管理ができます。 ✓ 画像認識モジュールによる認識結果は、Azure Stream Analyticsを経由し、Azure Cosmos DBに保存されます。 ✓ Azure Container Instancesによって集計サーバを立ち上げ、保存された認識結果を集計し、各カメラの通過人数及 び年齢性別分布を図示するダッシュボード機能を提供します。 ✓ Azure Container Registryによって、エッジデバイスモジュール及び集計サーバの元となるコンテナを管理します。 3-24. Smart Camera – サーバサイド機能と特長 カメラ 日付選択 各カメラ通過人数 カメラ毎 年齢・性別分布
  28. 28. 3-25. Smart Camera – 参考ドキュメント ✓ Azure IoT Hub / IoT Edge https://docs.microsoft.com/ja-jp/azure/iot-hub/ https://docs.microsoft.com/ja-jp/azure/iot-edge/ ✓ Azure Stream Analytics https://docs.microsoft.com/ja-jp/azure/stream-analytics/ ✓ Azure Cosmos DB https://docs.microsoft.com/ja-jp/azure/cosmos-db/ ✓ Azure Container Instances https://docs.microsoft.com/ja-jp/azure/container-instances/ ✓ Azure Container Registry https://docs.microsoft.com/ja-jp/azure/container-registry/
  29. 29. 4. サンプル実装 Smart Box
  30. 30. 4-1. サンプル実装(業務シナリオ ): ユースケース ✓ オフィスなどで、店員がいなくても、商品販売が可能な販売方法をユースケースとしました。(オフィス内、コンサート会場物販、店舗省スペース) 1.Boxオープン Boxに表示されるQRコードをスマホで読み取ることにより、Boxのドアの鍵を開け、スマホからはお客様のチェックインができます。 2.商品登録 商品をBoxから取り出す状態を商品画像認識により、商品特定を行い、商品登録を行います。そしてその商品登録状態をスマホ に表示する。さらに、在庫の更新もリアルタイムに行い、店舗スタッフが補充等の対応にすばやく行えるように致します。 3.買物終了 Boxのドアを閉めることにより、買い物の終了として、決済を完了します。(今回決済自体はダミー実装になります)。 顧客 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ Box
  31. 31. 4-2. サンプル実装 (全体像): ユースケース Box状態管理 統合商品マスタ POS リアルタイム在庫管理 Push 通 知 サ ー ビ ス 顧客アプリ用BFF バックオフィス用BFF Smart BOX モニター Web ショッピングカート Azure IoT Device SDK Azure Functions Azure Functions Azure Functions Azure Functions Azure Functions Azure Functions App Center SQL DBCosmos DB Cosmos DBBlob 商品API 商品データ 商品イメージ 在庫トランAPI 在庫イベントソース 在庫データマート 在庫モニターAPI カートAPI IoT Hub Boxイベント通知 Azure Functions IoT Hub 店舗PF テナント別機能PF IoT-PF Azure Functions Cosmos DB 各種データ
  32. 32. 4-3. サンプル実装(Microsoft Azure) : ユースケース POS 顧客用アプリ Android/iOS Box状態管理 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ IoT Hub 統合商品マスタ Azure Functions Cosmos DB Blob 商品API 商品データ 商品イメージ リアルタイム在庫管理 Azure Functions Azure FunctionsSQL DB Cosmos DB 在庫トランAPI 在庫イベントソース 在庫データマート 在庫モニターAPI 顧客 バックオフィス Azure Functions バックオフィス用BFF Android/iOS Webモニター Azure Functions 顧客アプリ用BFF Box Azure Functions Push通知 ショッピングカートAPI 商品登録一覧 レシート 買物開始 Boxオープン状態 商品変動状態 Boxクローズ状態 カートAPI呼び出し プッシュ情報送信 モバイルデバイスへの通知 在庫情報参照 在庫情報取得 商品情報取得 商品情報取得 在庫トラン カートAPI呼び出し BFF呼び出し Azure Functions Cosmos DB 各種データ カートAPI
  33. 33. 4-4. サンプル実装 (Device/Smart Box): ユースケース 1.ボックスオープン 2.商品取り出し 3.ボックスクローズ 顧客 商品登録一覧 レシート 買物開始 顧客用アプリ Android/iOS Box POS QRコードから Box IDを取得する Box ID とアプリ固有IDを通知し、取引開始を通知する カート更新要求を通知する 開錠し、画像解析を開始する 商品が取り出されたことを通知する PUSH カート情報を取得する 取引開始 カート更新 取引終了を通知する 扉が閉じたことを通知する PUSH レシート情報を取得する レシート表示
  34. 34. Box状態管理 Smart BOX Azure Functions IoT Hub IoT Hub IoT-PF IoT Edge Dockerコンテナ AIによる画像認識 カメラからの画像スオリーミング IoT Device Azure IoT Device SDK BOXの各種デバイス (扉、鍵、LED、LED等)カメラからの画像ストリーミング D2Cによる、デバイス状態通知 C2Dによる、デバイス制御 デバイス制御 AI開始/終了 イベントトリガ BOX内在庫差分通知 4-5. サンプル実装 (Device/Smart Box): ユースケース Azure IoT Device SDK Azure IoT Device SDK Dockerコンテナ カメラ画像の プレフィルタ Azure IoT Device SDK AIによる画像認識 モジュール管理 カメラ画像プレフィ ルタモジュール管理 ドア状態等通知 及び 鍵、LED等デバイス制御
  35. 35. 5. サンプル実装 Smart Camera
  36. 36. 5-1. Smart Camera サンプル実装: ユースケース 本Smart Cameraシステムを店舗内に設置し、人流分析と客層分析を行う際の処理の流れについて説明します。 1.エッジデバイス設置 既存の防犯カメラと同じ要領でエッジデバイスを設置します。顔を真正面から捉えられる位置、例えばエントランスに 水平に近い角度で設置すると、顔の検出が容易になり、客層分析の精度が上がります。 2.システム起動 Azureクラウドを通してエッジデバイス上に画像認識用のアプリケーションをデプロイして実行します。これにより、 エッジデバイス側で画像認識が開始され、認識結果がクラウド上に伝送されます。また、Azureクラウド上に集計サーバを立ち上げます。 3.分析結果確認 集計サーバのURLにアクセスし、ダッシュボードにて人流・客層の分析結果を確認します。 エッジデバイス設置 システム起動 分析結果確認
  37. 37. 5-2. Smart Camera サンプル実装: シーケンス図 IoT Hub Stream Analytics Cosmos DB カメラから撮った フレーム画像 ローカルクラウドエッジ
  38. 38. クラウド側エッジ側 5-3. Smart Camera サンプル実装: データフロー Container registry Cosmos DB Stream Analytics ビデオ管理 モジュール ビデオデータ リクエスト ダッシュボード Container instances コンテナを提供 結果データ 結果データ Raspberry Pi カメラ 高速推論 チップ Azure IoT Edge Runtime Docker 画像認識 モジュール フレーム画 像 推論チップ管理モ ジュール フレーム画 像 検出・推定結 果 検出・推定結 果制御 認識結果 結果 データ 集計結果 IoT Hub コンテナを提供 デプロイ デプロイ
  39. 39. Azure IoT
  40. 40. サーバレス API 、 POS サービス ・・・ Azure Functions BOX 管理サービス ・・・ IoT Hub 、 IoT Edge ー商品画像認識 ・・・ Tensor Flow 在庫管理、商品マスター ・・・ Azure SQL Database 、 Azure Cosmos DB 使用されている主なサービス
  41. 41. Azure IoT サービス 一般構成例 IoT Hub を中心に, 用途に応じた 多様なサービスを組み合わせ可能 Microsoft Azure社内 アラート配信 ダッシュボード(カスタム) AI モデル作成 BIダッシュボード ビッグデータ分析 時系列データ 可視化 予測AI
  42. 42. IoT Hub の基本機能 IoT Hub1 IoT Hub1 IoT Hub1 Device Send Device-to-Cloud Receive Cloud-to-Device Receive Device-to-Cloud Send Cloud-to-Device Message, Receive Message Delivery Ack Device Identity Management IoT Hub Resource Provider Resource Provider Endpoint ①新規デバイスの登録 ②デバイスからクラウドへの データ送信 ③クラウドでのデバイスからの データ受信 ④クラウドからデバイスへの コマンド送信 ⑤デバイスでのクラウドからの コマンド受信 ⑥クラウドでのデバイスの コマンド受信確認Event Hubを内包
  43. 43. IoT Hub 全体像 Devices RTOS,Linux,Windows,Android,iOS Field Gateway IoT Hub • 双方向通信 • 1千万台以上のデバイス • 遠隔測定入力 • コマンドと制御 • デバイス登録とアイデンティティ • デバイス管理 • HTTP/AMQP • プロトコルの拡張サポート / MQTT Cloud Protocol Gateway 組込み機器向けSDK • C# • C/C++ • Java • JavaScript
  44. 44. デバイスを IoT Hub に接続する Azure デバイス IoT Hub 接続用ライブラリを オープンソースで公開 • OS • ミドルウェア • 言語 http://github.com/azure/azure-iot-sdks http://azure.microsoft.com/develop/iot/get-started
  45. 45. 46 デバイス管理 ① Azure IoT Hub のアーキテクチャ データ送受信 ⚫ マルチ プラットフォーム / マルチ ランゲージのデバイス ライブラリを使用した、セキュアで簡単なデバイスの接続 ⚫ スケーラビリティと信頼性に優れた、デバイスとクラウド間の双方向メッセージング デバイス管理 ⚫ デバイスごとのセキュリティ資格情報とアクセス制御を使用した、通信のセキュリティ保護 ⚫ デバイス ツインによるプロパティ同期とダイレクト メソッドによるリモートからの処理要求 デバイス ID 管理 メッセージング(受信) メッセージング(送信) デバイス ツイン管理 ダイレクト メソッドの起動 ジョブ管理 モニタリング イベントの受信 ファイル受信 IoT Hub メッセージング (受信) メッセージング (送信) ファイル アップロードの開始 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 データ送受信
  46. 46. 47 Pricing and scale tier 7 種類の価格レベル ⚫ Azure サブスクリプションに最大 10 個の IoT Hub と最大 1 個の Free ハブを作成可能 ⚫ 1 つの IoT Hub に接続できるデバイスの最大数:500,000 ⚫ この制限を引き上げる場合、Microsoft サポートにお問い合わせください Tier 価格レベル ユニットあたりの持続送信レート ユニット数 ユニットあたりの月額価格 (東日本) Free F1 8,000 メッセージ/日 (平均 5.6 メッセージ/分) 1 無料 Basic B1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥1,120 B2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥5,600 B3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~50 ¥56,000 Standard S1 40 万 メッセージ/日 (平均 278 メッセージ/分) 1~50 ¥2,800 S2 600 万メッセージ/日 (平均 4,167 メッセージ/分) 1~50 ¥28,000 S3 3 億件のメッセージ/日 (平均 208,333 メッセージ/分) 1~10 ¥280,000
  47. 47. 48 Basic と Standard の相違点 Standard レベルではすべての機能が利用可能 ⚫ セキュリティ機能と認証機能は、どちらのレベルも同等 機能 Basic Standard device-to-cloud テレメトリ 〇 〇 デバイスごとの ID 登録 〇 〇 HTTP、AMQP、MQTT プロトコル 〇 〇 メッセージ ルーティング、Event Grid の統合 〇 〇 Azure IoT Hub Device Provisioning Service を使用したデバイスのプロビジョニング 〇 〇 監視と診断 〇 〇 cloud-to-device メッセージング 〇 デバイス ツイン、モジュール ツイン、およびデバイス管理 〇 Azure IoT Edge 〇
  48. 48. 49 IoT Hub エンドポイントとアクセス許可 (1/2) メッセージの送受信で使用される IoT Hub エンドポイント アクセス許可 アクセス許可の種類 説明 ① デバイス接続 (DeviceConnect) ※ このアクセス許可はデバイスごとに設定する ⚫ デバイス向けの通信エンドポイントへのアクセスを許可する ⚫ D2C メッセージの送信と、C2D メッセージの受信のアクセス許可を付与する場合に使用 ⚫ ファイル アップロード実行のアクセス許可 ② サービス接続 (ServiceConnect) ⚫ クラウド サービス向けの通信エンドポイントと監視エンドポイントへのアクセスを許可する ⚫ D2C メッセージの受信、C2D メッセージの送信、対応する配信確認メッセージの取得のアクセス許可をバックエン ド クラウド サービスに付与する場合に使用 ⚫ ファイル アップロードの配信確認メッセージの取得 IoT Hub D2C メッセージ送信 C2D メッセージ受信 ① デバイス接続 ファイル アップロードの配信確認 C2D メッセージ送信 ACK 受信 D2C メッセージ受信 ② サービス接続 ファイル アップロードの開始 <IoT Hub ホスト名> .azure-devices.net
  49. 49. 50 IoT Hub エンドポイントとアクセス許可 (2/2) デバイス管理で使用される IoT Hub エンドポイント 4 種類のアクセス許可 アクセス許可の種類 説明 ① デバイス接続 (DeviceConnect) ⚫ デバイス ツインの必要なプロパティ通知の受信のアクセス許可 ⚫ デバイス ツインの報告されるプロパティの更新のアクセス許可 ② サービス接続 (ServiceConnect) ⚫ タグおよび必要なプロパティを更新するためのデバイス ツインのアクセス許可 ⚫ 報告されるプロパティの取得のアクセス許可 ⚫ クエリ実行のアクセス許可 ③ レジストリ読み取り (RegistryRead) ⚫ デバイス ID レジストリへの読み取りアクセス権を許可する ④ レジストリ書き込み (RegistryReadWrite) ⚫ デバイス ID レジストリへの読み取りと書き込みのアクセスを許可する ① デバイス接続 デバイス ID 管理 ② サービス接続 デバイス ツイン管理 ダイレクト メソッドの起動 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 ③ レジストリ読み取り、④ レジストリ書き込み <IoT Hub ホスト名> .azure-devices.net IoT Hub
  50. 50. 51 IoT Hub のホスト名 対象の IoT Hub の [概要] ブレードで [ホスト名] を確認する Azure IoT Hub ホスト の URL
  51. 51. 52 対象の IoT Hub の [共有アクセスポリシー] ブレードを選択 ⚫ 5 種類のビルトインされたポリシー ⚫ 管理用アプリから IoT hub にデバイス登録する場合、デバイス ID 管理可能な 「iothubowner」 ポリシーの接続文字列を使用する ⚫ 管理用アプリから IoT hub に接続して、受信データを読み取る場合、「service」 ポリシーの接続文字列を使用する 共有アクセス ポリシー 接続文字列
  52. 52. 53 Azure ポータルからのデバイス登録 対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択し、[追加] をクリック ⚫ デバイスに割り当てるデバイス ID を入力して、保存する ⚫ 3 種類の認証:対称キー、X.509 自己証明書、 X.509 CA 証明書 キーの自動生成を指定 任意のデバイス ID を入力 認証の種類を選択 参照:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-identity-registry
  53. 53. 54 デバイスごとの接続情報 対象の IoT Hub の [デバイス エクスプローラー] ブレードを選択 ⚫ デバイスから IoT Hub に接続する場合、 接続情報に デバイス ID が必要なため、 デバイス エクスプローラーから対象デバイスの [接続文字列] を取得して、使用する デバイス ID を選択 デバイス ID を含む接続情報 接続を許可するデバイスは有効化しておく
  54. 54. 55 IP アドレスによる IoT デバイスのフィルタリング IP フィルター ⚫ 1 つの IPv4 アドレスか、または CIDR 表記法で記述した IP アドレス ブロックを指定 ⚫ 拒否または、許可の設定が可能 ⚫ 指定された範囲の IP アドレスからのトラフィックのみを受信し、それ以外のトラフィックをすべて拒否する場合 ⚫ IoT Hub の管理者によって疑わしいと識別された IP アドレスからのトラフィックを拒否する場合 拒否と許可の設定が可能
  55. 55. 56 [参考] Raspberry Pi Azure IoT Online Simulator node.js 版オンライン シミュレーター デバイスごとに割り当てられた接続文字列 https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-web-simulator-get-started
  56. 56. IoT Hub で受け取るデータ Sensor1 Sensor2 Sensor3 Survo1 Survo2 Servo3 {“SensorId”:”Sensor1”,”AccelX”:0.234,”AccelY”:0.0152,”AccelZ”:-1.325,”Timestamp”:20150804…} {“SensorId”:”Sensor2”,”AccelX”:-2.085,”AccelY”:0.173,”AccelZ”:0.623,”Timestamp”:20150804…} ……. {“PartsId”:”Survo2”,”Status”:”On”,”Value”:231,,”Timestamp”:20150804…} …….. センサー計測・状態データ(いつ、何を測った) 論理モデル(どこで、何の) 工場 生産ライン 工作ロボット アーム1 ジョイント1 センサー:Sensor1 サーボ:Survo1 いつ、どこで、何の、何を測った その時何が…×
  57. 57. 58 IoT Hub コンシューマー グループ バックエンドに対し、パブリッシュ/サブスクライブのメカニズムを提供 ⚫ イベント データを読み取るエンティティをイベント コンシューマーと呼ぶ コンシューマー グループに対するアクティブな受信者は 1 つだけにする ⚫ 必要に応じて追加する 既定のコンシューマー グループ ⚫ $Default Function App Stream Analytics IoT Hub function streamanalytics $Default カスタム アプリケーション コンシューマー グループ
  58. 58. 59 ① Azure Function App によるストリーム データの格納、および通知 イベント駆動のサーバーレス アーキテクチャ ⚫ 100 万回/月の実行までは無料、以降は使用した分のみ課金 (分単位) ⚫ C#、F#、Node.js、Java、Python、PHP、Batch、Bash による関数の記述 ⚫ NuGet、NPM のサポートにより、使い慣れたモジュールが参照可能 Function App Event HubsIoT Hub 出力バインドトリガー バインド HTTP Generic Webhook Service Bus Queue Service Bus Topic BLOB Queue Timer Service Bus Queue Service Bus Topic BLOB Queue Event Hubs HTTP Table Mobile App Notification Hub Cosmos DB Send Grid 入力からのイベントをトリ ガーにデータ処理、通知処 理などを実行 Graph Events Graph Events
  59. 59. 60 [関数] ⇒ [新しい機能] ⇒ [IoT Hub (Event Hub)] テンプレートを選択 ⚫ C#、F#、JavaScript から選択 ストリーム データを Blob に保存する IoT Hub トリガーの作成
  60. 60. 61 ② Azure Stream Analytics によるリアルタイム分析 イベントのデータ ストリームを Stream Analytics ジョブで処理する ⚫ ジョブに入力、クエリ、出力を定義する ⚫ 入力: Azure データ ストリーム ソース (Event Hubs、IoT Hub、Blob Storage) からのデータ ストリーム ⚫ クエリ:入力データを変換、集計する SQL ライクなクエリ言語の記述が可能 データの時間的側面を処理するための言語構造を提供 (System.Timestamp) 静的な参照データを結合させることが可能 ⚫ 出力:ジョブの処理結果 Event Hubs IoT Hub Blob Event Hubs SQL Database Table Power BI Stream Analytics Blob Cosmos DB Function App Data Lake
  61. 61. 62 Azure Stream Analytics クエリ言語 クエリの基本要素 APPLY CASE CREATE TABLE FROM GROUP BY ⚫ウィンドウ処理 ⚫Tumbling Window ⚫Hopping Window ⚫Sliding Window HAVING INTO JOIN SELECT UNION WHERE WITH レコード関数 GetRecordProperties GetRecordPropertyValue 時間と日付関数 DATEADD DATEDIFF DATENAME DATEPART DATETIMEFROMPARTS DAY MONTH YEAR 文字列関数 CHARINDEX CONCAT LEN LOWER PATINDEX REGEXMATCH SUBSTRING UPPER 数学関数 ABS CEILING EXP FLOOR POWER SIGN SQUARE SQRT 地理空間関数 CreateLineString CreatePoint CreatePolygon ST_DISTANCE ST_OVERLAPS ST_INTERSECTS ST_WITHIN 参照:https://msdn.microsoft.com/library/en-us/Dn834998.aspx 分析関数 ISFIRST LAG LAST 変換関数 CAST GetType TRY_CAST 配列関数 GetArrayLength GetArrayElement GetArrayElements メタデータ入力関数 GetMetadataPropertyValue 集計関数 AVG COUNT Collect CollectTOP MAX MIN Percentile_Cont Percentile_Disc STDEV STDEVP SUM TopOne VAR VARP
  62. 62. 63 ストリーム分析機能の比較 Azure Stream Analytics と HDInsight Apache Storm 参考:https://azure.microsoft.com/ja-jp/documentation/articles/stream-analytics-comparison-storm/ Azure Stream Analytics HDInsight Apache Storm オープンソース NO YES 言語 SQL Java、C# カスタム コードによる拡張 NO YES 入力データソース Event Hubs、IoT Hub、Blob Event Hubs、サービス バス、Kafka 入力データ形式 Json、CSV、Avro いずれの形式もカスタム コードを使用して実装可能 出力 SQL Database、Blob、テーブル、Event Hubs、 Service Bus キュー、Service Bus トピック、 Cosmos DB、Power BI SQL Database、Blob、Event Hubs、Cosmos DB、Power BI、Hbase などの コネクターを提供 カスタム コネクターの記述が可能 Microsoft によるサポート YES YES 料金 処理するデータ ボリュームと必要なストリーミング ユニット 数によって請求される 購入単位はクラスター ベースで、デプロイされるジョブとは無関係に実行されるク ラスターの実行時間に基づいて請求される
  63. 63. 64 Azure Time Series Insights 4 つの特徴 ⚫ クラウド ゲートウェイ (Azure IoT Hub、Azure Event Hubs) への接続 ⚫ Time Series Insights はこれらのイベント ソースに簡単に接続して、メッセージや、クリーンな行と列でデータを保持 する構造から、JSON を解析します。 メタデータとテレメトリを結合し、単票形式のストア内のデータにインデックスを 作成します。 ⚫ データ ストレージの管理 ⚫ メモリと SSD に最大 400 日間データを格納 ⚫ 必要に応じて、何十億ものイベントに対する対話形式の照会を数秒で行うことができます。 ⚫ TSI エクスプローラーによるデータの可視化 ⚫ TSI エクスプローラーと API の両方に対応するクエリ サービスの提供 ⚫ 簡単に統合できる API で時系列データをカスタム アプリケーションに埋め込むことができます。 デモ:https://docs.microsoft.com/ja-jp/azure/time-series-insights/tutorial-create-populate-tsi-environment https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet/wiki/Developer-Reference-Guide#ssh-into-a-vm
  64. 64. 65 [参考] Azure Time Series Insights 分析、ストレージ、および可視化サービスを完全に管理 ⚫ 何十億というイベントを同時に探索し、分析することを簡単に実現 ⚫ アクションにつながるインサイトを数秒で発見 ⚫ 秒単位で開始し、分単位で IoT スケールデータのグローバル ビューを作成 参考:https://azure.microsoft.com/ja-jp/services/time-series-insights/
  65. 65. IoT Hub デバイス管理 Microsoft Azure Device Registry Service List 論理モデル プロビジョニング 蓄積データ 最新データ (状態) ←Endpoint、Token Device Info→
  66. 66. 67 IoT デバイスのリモート管理を実現する 2 種類のエンドポイント ⚫ デバイス ツイン ⚫ デバイス固有のメタデータをクラウドに格納し、クラウドとデバイス間でプロパティを同期させることができる ⚫ Desired と Reported の 2 種類の同期プロパティとクラウドのみで保持される Tags 情報 ⚫ デバイスがオフラインであっても、属性情報をクエリ可能 ⚫ ダイレクト メソッド ⚫ 同期型のデバイス操作コマンド実行 IoT Hub ① IoT デバイス管理のためのエンドポイント デバイス ID 管理 メッセージング(受信) メッセージング(送信) デバイス ツイン管理 ダイレクト メソッドの起動 ジョブ管理 モニタリング イベントの受信 ファイル受信 メッセージング (受信) メッセージング (送信) ファイル アップロードの開始 デバイス ツイン プロパティの同期 ダイレクト メソッド要求の受信 デバイス管理 デバイスツイン ダイレクトメソッド デバイス管理
  67. 67. 68 デバイス管理のためのエンドポイント通信 デバイス ツインとダイレクト メソッドの通信方向 IoT デバイス デバイス ツイン properties desired reported IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド 参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-device-twins メソッドの起動 書き込み・読み取り 書き込み・読み取り 読み取り バックエンド アプリ 応答 デバイス アプリ 書き込み・読み取 り・変更通知 書き込み・読み取り メソッドの実行 実行要求
  68. 68. 69 ② デバイス ツイン デバイス ツインの情報を使用したクエリの実行 ⚫ 既定のデバイス ツイン json データ IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド
  69. 69. 70 ③ ダイレクト メソッド ダイレクト メソッドの呼び出し ⚫ バックエンド アプリからデバイスのメソッドを呼び出し、デバイスを再起動する例 public static async Task StartReboot() { client = ServiceClient.CreateFromConnectionString(connString); CloudToDeviceMethod method = new CloudToDeviceMethod("reboot"); method.ResponseTimeout = TimeSpan.FromSeconds(30); CloudToDeviceMethodResult result = await client.InvokeDeviceMethodAsync(targetDevice, method); } Client.SetMethodHandlerAsync("reboot", onReboot, null).Wait(); デバイスの再起動を呼び出す非同期メソッドの定義呼び出されたメソッドに delgate を登録し、待機状態にする デバイス アプリ メソッドの実行 IoT Hub ダイレクト メソッド 応答 メソッドの実行要求 バックエンド アプリ メソッドの起動
  70. 70. 71 デバイス ツインを使用したデバイス管理 デバイスの再起動 ⚫ バックエンドアプリからデバイス再起動を要求 ⚫ デバイス ツイン情報に履歴を保存 構成管理 ⚫ 構成の初期化 ⚫ 構成の設定とデバイス ツイン情報の更新 ソフトウェアの更新 ⚫ デバイスへのソフトウェアのダウンロードと適用 ⚫ デバイス ツイン情報の更新 ファームウェアの更新 ⚫ デバイスへのファームウェアのダウンロードと適用 ⚫ デバイス ツイン情報に履歴を保存 IoT Hub デバイス ツイン tags properties desired reported ダイレクト メソッド
  71. 71. 72 Device app Back end デバイス ツインを使用したファームウェアの更新フロー 長時間のメソッド実行時、デバイス ツインで、進捗状況を確認する ファームウェア更新の起動ファームウェア更新処理 2 ファームウェア イメージの ダウンロードとレポート イメージの適用と ステータスの記録 再起動と再接続 レポート情報の更新を確認4 レポート情報の更新を確認 3 5 6 IoT Hub デバイス ツイン properties 参考:https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-csharp-node-firmware-update バックエンド アプリIoT デバイス ダイレクト メソッド1 reported
  72. 72. IoT Edge Gateway D D D D デバイス/センサ クラウドで処理していたタスクがエッジでも実行可能に
  73. 73. ユースケース Edge Computing Power Vibration Fluid Pressure Temperature 2.5MB / sec 150MB / min 9GB / hour 216 GB / Day 80KB / sec 4.8MB / min 288MB / hour 6.912GB / Day Extracted Data Data Analysis
  74. 74. 優れたフィールド サービスを提供 「このソリューションのおかげで、製造プロセスを変革できました。お客様の現場から 営業のやり取りまで、あらゆる段階で工具、機械、プロセスを連携させることで、 かつてないレベルのフィールド サービスを提供できるようになりました。」 Klas Forsström 氏 Sandvik Coromant、社長 目的 Sandvik Coromant は、 切削工具の製造と金属切削 業界向けのサービスを展開。 1 つ上のサービスを提供する ことを目指している。 戦術 マイクロソフトの テクノロジを活用し、 温度、負荷、振動などの データを機械加工プロセス からリアルタイムで収集し、 そのデータをクラウドに 接続するソリューションを 開発する。 結果 • 顧客にフィードバックを瞬時に 提供して効率を向上 • 数百万ドルのコスト削減を実現
  75. 75. 78 フィールド側に設置するインテリジェントなエッジ デバイスのためのプラットフォーム ① IoT Edge のロードマップ ● オープンソースのゲートウェイ SDK ● レガシー デバイスの接続を可能に ● 開発言語:Node.js、Java、C#、C ● パッケージ:NPM、Maven、NuGet ● モジュールによる機能分割 ● オープンソース:https://github.com/Azure/iot-edge ● 公開されているモジュール: • ble • hello_world • Identitymap • iothub • logger • simulated_device • azure_functions • OPC Publisher • OPC Proxy • Modbus • GZip Compression • Proficy Historian • SQLite • Batch/Shred • ZWave ● Azure IoT Hub との統合 • ランタイムによる接続 • IoT Hub からの管理が可能に • デバイス ツイン、モジュール ツイン ● Docker コンテナーによるモジュールの配置 ● Azure サービス互換モジュール • Stream Analytics • Machine Learning • Function App
  76. 76. 79 Docker コンテナー ベースのモジュール拡張 ⚫ クラウドで行っていた分析とカスタム ビジネス ロジックをデバイス側で実行可能に ⚫ Linux と Windows のサポート ランタイム ⚫ デバイスにデプロイされたモジュールを管理する Edge Agent とモジュール間の通信を担う Edge Hub で構成される モジュール ⚫ Azure のサービス、サード パーティのサービス、またはカスタム コードを実行する Docker コンテナー Azure IoT Edge Runtime Edge Agent ② IoT Edge v2 とは? Azure IoT Hub IoT デバイス モジュール 1 モジュール 2 モジュール 3 Azure IoT Edge デバイス テレメトリ取得 インサイト アクション Edge Hub インサイトテレメトリ コンテナー コンテナー コンテナー $upstream JSON でルートを定義
  77. 77. 80 IoT Edge ランタイム ・IoT Edge ハブ ・IoT Edge エージェント ③ IoT Edge モジュールによる拡張 Azure IoT Edge により、クラウド機能をエッジに拡張 ⚫ クラウドとエッジによるハイブリッドなモノのインターネット (IoT) ソリューションを実現 Azure IoT Hub ローカル ストレージ Stream Analytics ⚫ コンテナー ベース モジュール ⚫ Azure Stream Analytics ⚫ Azure Function App ⚫ Azure Machine Learning ⚫ Microsoft Cognitive Services ⚫ オフライン、および同期されたデバイス ツイン ⚫ ローカル ストレージ ⚫ クラウドからの管理と配置 ⚫ 高可用性と耐障害性 ⚫ リモートからの開発、テストのサポート デバイス ツイン デバイス ツイン Function Machine Learning Cognitive Services モジュール ツイン モジュール ツイン モジュール ツイン モジュール ツイン モジュール ツインモジュール ツインモジュール ツインモジュール ツインモジュール ツイン IoT デバイス コンテナー コンテナー コンテナー コンテナー カスタム コード モジュール ツイン コンテナー Azure IoT Edge ゲートウェイ ④ ⑤ ⑥
  78. 78. 81 ④ IoT Edge v2 の構成手順 前提条件 ⚫ Windows 10 (Fall Creators Update:OS ビルド 16299 以降) ⚫ Windows Server (OS ビルド 16299 以降) ⚫ x64 ベース デバイス上の Windows IoT Core (OS ビルド 16299 以降) 1. Docker for Windows のインストール ⚫ https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows より、 Get Docker for Windows (Stable) を選択して、Docker for Windows Installer.exe をダウンロードしてインストールする 2. Python 2.7 のインストール ⚫ https://www.python.org/downloads/ より、 2.7.X を選択し、python-2.7.X.msi をダウンロードしてインストールする 3. IoT Edge 制御スクリプトをダウンロード 参考:https://docs.microsoft.com/ja-jp/azure/iot-edge/quickstart pip install -U azure-iot-edge-runtime-ctl python.exe へのパスを設定
  79. 79. ハイパースケールの エンタープライズ グレードの インフラストラクチャ 開発者用ツールおよび サービス データ サイエンスのための オープン プラットフォーム ハードウェア ストレージ管理 ソフトウェア ML および AI プラットフォーム AI アプリケーション (ファーストおよびサード パーティ) コグニティブ サービス Bot Framework Spark AI Batch Training DS VM SQL Server ACS BLOB Cosmos DB SQL DB/DW ADLS CPU FPGA GPU IoT Azure Machine Learning モデルのデプロイおよび管理 機械学習ツールキット 実験の管理、データの準備、 コラボレーション CNTK TensorFlow ML Server Scikit-Learn その他のライブラリ PROSE Docker クラウド - Spark、SQL、その他の エンジン ML Server - Spark、SQL、VM エッジ
  80. 80. Transform Data into Intelligence Azure Machine Learning Azure Machine Learning Service Azure Machine Learning Visual Interface GUI でのドラッグ & ドロップコードファースト
  81. 81. 機械学習と AI のポートフォリオ いつどれを使用するか? どのエンジンを使用するか? デプロイ対象 どちらの経験を優先するか? 独自に構築するか、事前トレーニング されたモデルを使用するか? Microsoft ML および AI 製品 独自に構築 Azure Machine Learning コードファースト (オンプレミス) ML サーバー オンプレミスの Hadoop SQL Server (クラウド) AML (プレビュー) SQL Server Spark Hadoop Azure Batch DSVM Azure Container Service ビジュアル ツール (クラウド) AML Studio 使用 コグニティブ サービス、ボット
  82. 82. 8585 NEW ビデオインデクサー NEW ラボ NEW NEW NEW カスタム カスタム カスタムカスタム カスタム Cognitive Services : 29 種類の API を提供
  83. 83. 8686 Challenge Solution Benefits • 時間帯別の来場 者の把握 • 顧客層の把握に よる適切なプロ モーション戦略 の確立 • 「Cognitive Services」と連 携した「アロバ ビューコーロ」 を使用し、来場 者のカウントお よび属性情報を 取得 • 人力による集計作業の コスト圧縮 • プロモーション実施時の 効果測定が実現 • Emotion APIによる感情 値の取得によって顧客満 足度の計測を実現 AI を使った効果測定
  84. 84. サイネージ視聴率の各KPIを測定し、OOHの多層的な媒体効果が把握可能 Microsoft x 電通 人工知能型 DOOH 広告ソリューション KPI1 = エンゲージメント KPI2= リーチAKPI5= ポテンシャルリーチ KPI3= リーチB KPI4= リーチC
  85. 85. © 2017 Ebiya Ltd. All rights reserved. Challenge • 在庫適正化困難ゆえの 高廃棄コスト • 利益を圧迫する人件費 • 提供までの時間が長い ことによる低い回転率 Solution • 男女比率&入店率&幸 せ度など属性情報含む 来客データ数値化、 機械学習で需要予測 • 需要予測的中率 90% 超、Power BI で視覚化 Benefits • 定量的判断に基づく対処 • 4 年間で売上 5 倍・利益率 12 倍・平均給与 20% Up • 人員配置適正化実現、配膳 スピード改善、回転率向上 来店予測 AI がサービス業における属人的感覚を数値化 データドリブン オペレーションによる個客おもてなしを実現 伊勢の老舗店「ゑびや」のAI活用事例
  86. 86. 8989 入店人数のカウント 通行人数のカウント 性別年齢のカウント 入店人数のカウント 1. 顧客属性を適切に把握する 2. 通行客属性と入店属性の 乖離を見る 3. 入店率から店頭ディスプレイ の効果検証を行う (ゑびや様講演より抜粋) ECのような店頭ファネル分析
  87. 87. 入店率15.78% 購買率26.9% 女性比率 56.8% (2017/9/1~9/30) 入店率9.63% 購買率22.6% 女性比率 53.6% (2017/10/1~11/22) A 画像解析AIや購入実績を元にA/Bテストを実施 (ゑびや様講演より抜粋) B 効果測定結果 「A」「B」を比較すると「A」のほうが 入店率も購買率も客単価も高かった A B
  88. 88. 9191 (ゑびや様講演より抜粋) 1.時間単位で来客数と売上を 予測 2.各メディアのアクセス数、 観光予報データと通行者 数・売上などの相関を見る 3.スタッフのインタビューに よりデモグラ属性まで把握 ダッシュボードによる可視化と予測分析
  89. 89. Custom Vision on Kubernetes 92https://github.com/asashiho/ContainerDays1812
  90. 90. IoT デバイスに対する悩み 組み込み系デバイスをクラウドに繋いだり、 テレメトリを送ったり、設定の変更を適用し たり出来るようにするには、その開発に関す る非常に深い知識が必要 ハードウェアの入手、ソリューション対応の 組み込み、そして量産への移行は、ほとんど の顧客のとって数ヶ月から数年を要するタス クになる ソリューション開発者にとって、ローレベル なデバイスメッセージを有用なデータ、イベ ント、ワークフローに変換するのは極めて難 易度が高い IoT をシンプルに、とかかげる Azure IoT にとって、喫緊に解決すべき課題
  91. 91. IoT デバイスとソリューション関係:現状 デバイス上のソフトウェアとクラウド上のソリューションが 1:1 で堅く結ばれている(= 全てが個別対応になっている)
  92. 92. 似たような状況が過去にも
  93. 93. Windows “Plug and Play” による解決 Capability Model Device Metadata デバイスは Capability Model を公開、それを遵守 Windowsはその Capability Model でデバイスとの対話方法を把握
  94. 94. Azure Container
  95. 95. だれのマシンでも実行できる すべての環境を同じように扱える ベロシティを上げる どこでも実行できる Why Containers
  96. 96. Linux Windows クラウド ドローン, Raspberry PI, IoT Containers run everywhere
  97. 97. Docker Container ホストOSカーネルを共有 移植性 拡張性の向上 インスタンスごとに個別のOS 大きなフットプリント 起動が遅い Virtual machines Containers vs Virtual Machines
  98. 98. Azureのコンテナー エコシステム IaaSPaaS Azure services SQL Database Redis Cache CosmosDB And more! Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS Azure Azure Container Registry (ACR) OSBA Azure Kubernetes Service (AKS) AKS Engine Batch Azure Container Instances (ACI) Virtual Machine Scale Sets (VMSS) Service Fabric Mesh Cluster Virtual kubelet Web Apps for Container ( App Service ) Azure Virtual Machine
  99. 99. Decision tree for Azure compute services @ Azure Architecture Center https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree 新規開発かどうかLift & Shift ? クラウド最適化? コンテナー化可能 Web/APIアプリ Azureコンテナー 関連サービスから選択 制御・自由度? ポータビリティ? HPCワークロード マイクロサービス アーキテクチャ イベント駆動 オーケストレーション が必要 .NET + ステートフル ワークロード Yes Yes No Yes Yes Yes No No No No No Yes Lift&Shift No No No Yes 新規開発既存資産の更新・移行 https://azure.microsoft.co m/overview/containers/ Yes Yes
  100. 100. IDC Japan社 2018年 国内クラウドインフラストラクチャに関するユーザー動向調査結果 https://www.idcjapan.co.jp/Press/Current/20180614Apr.html 41% Docker & Kubernetes のモーメンタム Dockerの導入状況に関するユーザー調査結果(調査年別)
  101. 101. Performance コンピューティングリ ソースの有効活用 Machine learning Portability アプリケーションの 可搬性 IoT Agility サービスインまでの 時間を短縮 デプロイ頻度 Microservices Cost saving コード変更なしで移行 コンテナによる Lift and shift コンテナの利用シナリオ
  102. 102. Lift and shift to containers Microservices Machine learning IoT 既存コードを変更することなくコンテナ化 • コンテナ技術を使用した アプリケーションのモダナイズ • コンテナオーケストレーション による障害リスク低減 • 継続的インテグレーション 継続的デプロイメント Azure Container Registry Existing application Kubernetes cluster Cloud Database Modernized application Modernized application Modernized application CI/CD
  103. 103. Lift and shift to containers Microservices Machine learning IoT マイクロサービス型のアプリケーション実行基盤 • マイクロサービスによる独立 したデプロイ • サービスごとのスケーラビリ ティとリソース使用率の向上 • チームでの並行分離開発 Monolithic APP APP APP Microservices Large, all-inclusive app Small, independent services
  104. 104. Lift and shift to containers Microservices Machine learning IoT ディープラーニングでの活用 • アプリケーションデプロイの容易 さと高い可用性 • 低レイテンシのデータ処理 • テスト・学習・推論の統合管理 https://github.com/Azure/kubeflow-labs Compute Training data Algorithm GPU-enabled VMs AKS trained model AI model in production Developer <¥> Data Scientist Serve the model
  105. 105. Lift and shift to containers Microservices Machine learning IoT IoTのエッジデバイスへのデプロイ • コードの可搬性の高さ • 柔軟な拡張性と管理 • アプリケーションデプロイの 容易さと高い可用性 AKS Database for MySQL Azure Cosmos DB SQL Database IoT Hub IoT Edge devices IoT Edge Connector
  106. 106. Azure Container Registry Docker イメージのプライベートレジストリ
  107. 107. Azure Container Registry Docker イメージのプライベートレジストリ Docker コマンドライ ンをそのまま使える geo-replicationAzure の全コンテナ サービスをサポート
  108. 108. ACR: イメージストレージ https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-storage • 全てのイメージは保存時に暗号化される • 全てのプラン Basic/Standard/Premium で地理的冗長構成 • Docker, OCI (Open Container Initiative) のイメージフォーマットをサポート • 加えて、Helm チャート をサポート(プレビュー)
  109. 109. 1. ある拠点の開発者が、コンテナー イメージを構築す るためにコードをコミットする 2. イメージは DNS に基づいて最も近い ACR リージョ ンにプッシュされる 3. その拠点へのデプロイがトリガーされる 4. ACR は設定されたリージョンへ地理的レプリケー ションを行う 5. もう一方の拠点へのデプロイがトリガーされる 6. 双方の AKS クラスターが contoso.azurecr.io からイ メージをプルする ACR: geo-replication https://docs.microsoft.com/ja-jp/azure/container-registry/container-registry-geo-replication Developer Container image contoso.azurecr.io East US West Europe contoso.azurecr.io contoso.azurecr.io/app:v1 AKS CD ACR contoso.azurecr.io/app:v1 AKSCDACR Geo-Replication ※ Premiumプランでのみサポート
  110. 110. Azure Container Instance サーバレスコンテナで高速スケール
  111. 111. Azure Container Instances サーバレスコンテナ環境 GPU 対応のコンテナがサポート az container create ¥ -g aci_grp ¥ --name nginx ¥ --image library/nginx ¥ --ip-address public ¥ –cpu 2 --memory 5
  112. 112. Azure Container Instance の料金 高速起動、秒単位課金の威力 • 100 instance • 300 sec = 5 min • Memory 1GB • vCPU x 1 ※ 2019年11月時点
  113. 113. Azure App Service PaaS のアプリケーション基盤 ※本リファレンスアーキテクチャーには利用されていないが、有力な選択肢のひとつ
  114. 114. 複数の言語とフレームワーク 拡張性と高可用性 DevOpsの最適化、セキュリティ、コンプライアンス テンプレート、IDE統合、サーバーレス、and more… Azure App Service
  115. 115. フルマネージドなコンピューティングプラットフォーム ウェブサイト、ウェブアプリのホスティングに最適化 Windows/Linuxネイティブ環境、コンテナー環境 非常に大規模で隔離された環境向けのオプション Azure App Service
  116. 116. コンテナー化されたアプリケーションを簡単にデプロイ して実行 ビルトインされたオートスケーリングとロードバランシン グ Docker Hub、Azure Container Registry、 GitHub を用いた CI/CD のストリームライン化 Web App for Containers
  117. 117. まとめ
  118. 118. もういちど全体構成図を
  119. 119. 123123 レベル 100 (初級・入門) レベル 200(中級) レベル 300 (Smart Store用) Smart Store Azure 関連トレーニング コース はじめてシリーズ Azure Data and AI IoTで加速する デジタルトランスフォーメーション 営業 Azure Data and AI 商品認識の仕組み(その1) IoT 提供 予定 Azure Data and AI 商品認識の仕組み(その2) AI 提供 予定 ※この他 Azure システム運用、CI / CD 、 Mobile アプリ開発などのコースも計画中 Azure Data and AI オンプレミス SQL Server から Azure 上の SQL サービス利用へのポイントと使い分け! 技術 Azure Data and AI 技術者向けいまさら聞けない 機械学習/AI の基礎 技術 SmartStoreリファレンスアーキテクチャハンズオン(ハッカソン)(2日間) AI,IoT,App,DB Azure Data and AI Azure Cosmos DB の概要を あらためて理解する 技術 Azure Data and AI 商品マスタとトランザクション管理 DB 提供 予定 対面Azure Data and AI 進化を続けるAzure IoT 技術 今日から始める Azure Functions 2.0 技術 Azure App and Infra Azure App and Infra サーバレスアーキテクチャ App SmartStoreリファレンスアーキテクチャトレーニング(2日間) AI,IoT,App,DB はじめてシリーズ SmartStore概要解説 提供 予定 対面
  120. 120. https://ms-smartstore.connpass.com/ “Microsoft Smart Store” で検索
  121. 121. ◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、ここに記載し た情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。 ◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 ◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を 行うことは、どのような形式または手段(電子的、機械的、複写、レコーディング、その他)、および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。 ◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確 に供給される場合を除いて、本書の提供はこれらの特許、商標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。

×