SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Copyright © 2020 Morpho, Inc. All Rights Reserved.
新人研修 OJT 2020
Vieureka を用いた混雑状況の配信
植田 大貴 
角田 良太郎
山本 太郎 
Copyright © 2020 Morpho, Inc. All Rights Reserved.
Vieureka を用いた混雑状況の Web 配信サービスの実装
• 映像配信により視覚的に混雑状況を伝える
– プライバシーに配慮し、個人が特定できない形(シルエット化)で表示
– 定量的な混雑度を併せて表示
– Web 配信により簡便なアクセスを可能に
 テーマ
1
カメラ取得画像 Web 配信画像
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 システム構成
2
Vieureka
Vieureka のカメラ画像取得
人数カウント 人物領域の抽出
抽出した領域の
マスク画像を送信
サーバ (AWS)
混雑度表示
検出した
人数を送信
(人がいないとき)
背景画像を送信
映像配信
背景画像とマスク画像の合成DB を更新
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 人数カウント
• Morpho Deep Detector を用いた
– モルフォの物体検出技術
• 人数 = [人間とカテゴライズされた BBox の数]
とした
– 一般的な物体検出のアルゴリズム (YOLOv3) を
用いたため人間以外も検出している
• サーバへの結果の送信
– 検出人数
– さらに検出人数がゼロのとき、取得画像を背景画像として送信
3
YOLOv3 による人物検出の例 [1]
[1] 元画像は https://pixnio.com より引用
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 人物領域の抽出
• Vieureka の視点は固定
– 背景が動かないため、動体 (人物) 領域の検出には
背景差分法 (MOG2) を用いた
– Instance Segmentation も試したが、
速度・精度面で背景差分法の方が優れていた
– 止まっている人でも輪郭は検出できる
• 抽出された人物領域のマスク画像を送信
– ノイズの少ない 2 値画像のためランレングス圧縮をかけた
4
MOG2 による人物領域抽出の例
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 Vieureka への組み込み
5
カメラ画像を取得すると、画像受信ハンドラ関数が実行される
– ハンドラ内では、人数カウントと人物領域抽出をそれぞれスレッドを立てて実行
– 画像を受信しても前の処理が終わっていなければ、その画像についての処理をスキップ
– 各処理終了時に(非同期的に)結果をサーバに送信
イベントループ イベントループ ハンドラ関数の実行 イベントループハンドラ関数の実行
メインスレッド
スレッド1
スレッド2 人物領域抽出
人数カウント
・・・
t →人物領域抽出
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 サーバ側の処理 ― 混雑度の統計
• サーバ (AWS) が受け取るデータ
– 検出された人数
– 背景画像
– 抽出された人物領域のマスク画像
• 混雑度に関する統計量の格納にはデータベース SQLite3 を使用
• 検出された人数と受信した日時を DB テーブル “perMinute” に登録
• 同時に DB テーブル “perHour” が更新される
– perHour は各時間に1つのレコードを持つ
– perHour のカラム:時刻(1 時間単位)・受信回数・合計人数・最大人数・天気
• Open Weather Map から各時間の天気を取得
6
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 サーバ側の処理 ― 背景とマスク画像の合成
• 背景画像と人物領域のマスク画像はサーバ側で掛け合わされる
– 半透明のシルエット化された人間が映った画像となる
7
×
背景画像
(検出人数がゼロのときの画像)
人物領域のマスク画像 出力画像
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 サーバ・クライアント間の通信
8
HTTP
リクエスト
HTTP
レスポンス
サーバ (AWS)
背景とマスク画像の合成
perMinute にレコード追加
perHour テーブルを更新
クライアント (Web ブラウザ)
perHour のデータ
取得クエリ
Chart.jsによるグラフ描画 配信画像の表示
html/css/js
配信画像を定期送信perHour の
データを送信
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 UI
9
人物領域をマスクした映像を表示
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 UI
10
平均・最大検出人数をグラフ表示
天気(混雑度と相関を持つかも?)
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 おわりに
やり残したこと
• 人数カウントの高速化
– 現状では人数カウントの処理時間は約 40 秒と非常に遅い
– SoftNeuro によってモデルをチューニングすることで大幅に高速化できる見込みだったが
今回はそこまで至らなかった
• 日ごとのデータ集計と混雑予測モデルの作成
– 実際の利用場面(店舗など)では混雑度と天気に相関があるのではないかと予想
– そもそも人がほとんどいないためにデータを取れなかったという問題があった
11
Copyright © 2020 Morpho, Inc. All Rights Reserved.
 おわりに
苦労した点など
• テーマ決め
– 「Vieureka の利点を活かすこと」「技術的に面白いこと」「期間内に完成すること」など様々な要件を
考慮したテーマを考え出すのに苦労した
• デバッグ作業
– Vieureka で中間画像を出力するのが非常に大変であったため、
バグの原因等を特定するのが難しかった
• 未経験の分野
– Web 開発の経験がなく、PHP の書き方など手探りで調べながら実装していった
12

Más contenido relacionado

Similar a Vieurekaを用いた混雑状況の配信

クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術Masashi Ito
 
クラウドのなかみ
クラウドのなかみクラウドのなかみ
クラウドのなかみSatoshi Hirata
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤Godai Nakamura
 
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介Shohei Yamamoto
 
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介 ニフティクラウド mobile backend
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介  ニフティクラウド mobile backendGTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介  ニフティクラウド mobile backend
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介 ニフティクラウド mobile backendGame Tools & Middleware Forum
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndureAmazon Web Services Japan
 
マルチテナントメッセージング基盤を刷新して一年運用した話
マルチテナントメッセージング基盤を刷新して一年運用した話マルチテナントメッセージング基盤を刷新して一年運用した話
マルチテナントメッセージング基盤を刷新して一年運用した話Tomohisa Aoshima
 
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会Atsuhiko Kimura
 
第1回 静岡 IT Pro 勉強会 セッション1
第1回 静岡 IT Pro 勉強会 セッション1第1回 静岡 IT Pro 勉強会 セッション1
第1回 静岡 IT Pro 勉強会 セッション1Tatsuya Ueda
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 

Similar a Vieurekaを用いた混雑状況の配信 (14)

VIOPS04: 富士通クラウドサービスについて
VIOPS04: 富士通クラウドサービスについてVIOPS04: 富士通クラウドサービスについて
VIOPS04: 富士通クラウドサービスについて
 
VIOPS05: NOAH プラットフォーム説明資料
VIOPS05: NOAH プラットフォーム説明資料VIOPS05: NOAH プラットフォーム説明資料
VIOPS05: NOAH プラットフォーム説明資料
 
20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce20201125 EC Solution Seminar Live Commerce
20201125 EC Solution Seminar Live Commerce
 
クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術クラウドを取り巻くリニア配信技術
クラウドを取り巻くリニア配信技術
 
クラウドのなかみ
クラウドのなかみクラウドのなかみ
クラウドのなかみ
 
AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤AWSオンリーで実現するIoTクラウド基盤
AWSオンリーで実現するIoTクラウド基盤
 
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介
【NCMB】アプリのバックエンドを支えるサービス 「mBaaS」のご紹介
 
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介 ニフティクラウド mobile backend
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介  ニフティクラウド mobile backendGTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介  ニフティクラウド mobile backend
GTMF2017 アプリのバックエンドを支えるサービス「mBaaS」のご紹介 ニフティクラウド mobile backend
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
kintone +AWS+◯◯◯
kintone +AWS+◯◯◯kintone +AWS+◯◯◯
kintone +AWS+◯◯◯
 
マルチテナントメッセージング基盤を刷新して一年運用した話
マルチテナントメッセージング基盤を刷新して一年運用した話マルチテナントメッセージング基盤を刷新して一年運用した話
マルチテナントメッセージング基盤を刷新して一年運用した話
 
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
 
第1回 静岡 IT Pro 勉強会 セッション1
第1回 静岡 IT Pro 勉強会 セッション1第1回 静岡 IT Pro 勉強会 セッション1
第1回 静岡 IT Pro 勉強会 セッション1
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 

Más de Morpho, Inc.

(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介Morpho, Inc.
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向Morpho, Inc.
 
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定(文献紹介)深層学習による動被写体ロバストなカメラの動き推定
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定Morpho, Inc.
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)Morpho, Inc.
 
Limits on Super-Resolution and How to Break them
Limits on Super-Resolution and How to Break themLimits on Super-Resolution and How to Break them
Limits on Super-Resolution and How to Break themMorpho, Inc.
 
(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMMMorpho, Inc.
 
前景と背景の画像合成技術
前景と背景の画像合成技術前景と背景の画像合成技術
前景と背景の画像合成技術Morpho, Inc.
 
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature FilterMorpho, Inc.
 
(文献紹介)HDR+, Night Sight
(文献紹介)HDR+, Night Sight(文献紹介)HDR+, Night Sight
(文献紹介)HDR+, Night SightMorpho, Inc.
 
Demosaicing(デモザイキング)
Demosaicing(デモザイキング)Demosaicing(デモザイキング)
Demosaicing(デモザイキング)Morpho, Inc.
 
Company Profile (Japanese)
Company Profile (Japanese)Company Profile (Japanese)
Company Profile (Japanese)Morpho, Inc.
 

Más de Morpho, Inc. (11)

(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向
 
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定(文献紹介)深層学習による動被写体ロバストなカメラの動き推定
(文献紹介)深層学習による動被写体ロバストなカメラの動き推定
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
Limits on Super-Resolution and How to Break them
Limits on Super-Resolution and How to Break themLimits on Super-Resolution and How to Break them
Limits on Super-Resolution and How to Break them
 
(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM
 
前景と背景の画像合成技術
前景と背景の画像合成技術前景と背景の画像合成技術
前景と背景の画像合成技術
 
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
 
(文献紹介)HDR+, Night Sight
(文献紹介)HDR+, Night Sight(文献紹介)HDR+, Night Sight
(文献紹介)HDR+, Night Sight
 
Demosaicing(デモザイキング)
Demosaicing(デモザイキング)Demosaicing(デモザイキング)
Demosaicing(デモザイキング)
 
Company Profile (Japanese)
Company Profile (Japanese)Company Profile (Japanese)
Company Profile (Japanese)
 

Vieurekaを用いた混雑状況の配信

  • 1. Copyright © 2020 Morpho, Inc. All Rights Reserved. 新人研修 OJT 2020 Vieureka を用いた混雑状況の配信 植田 大貴  角田 良太郎 山本 太郎 
  • 2. Copyright © 2020 Morpho, Inc. All Rights Reserved. Vieureka を用いた混雑状況の Web 配信サービスの実装 • 映像配信により視覚的に混雑状況を伝える – プライバシーに配慮し、個人が特定できない形(シルエット化)で表示 – 定量的な混雑度を併せて表示 – Web 配信により簡便なアクセスを可能に  テーマ 1 カメラ取得画像 Web 配信画像
  • 3. Copyright © 2020 Morpho, Inc. All Rights Reserved.  システム構成 2 Vieureka Vieureka のカメラ画像取得 人数カウント 人物領域の抽出 抽出した領域の マスク画像を送信 サーバ (AWS) 混雑度表示 検出した 人数を送信 (人がいないとき) 背景画像を送信 映像配信 背景画像とマスク画像の合成DB を更新
  • 4. Copyright © 2020 Morpho, Inc. All Rights Reserved.  人数カウント • Morpho Deep Detector を用いた – モルフォの物体検出技術 • 人数 = [人間とカテゴライズされた BBox の数] とした – 一般的な物体検出のアルゴリズム (YOLOv3) を 用いたため人間以外も検出している • サーバへの結果の送信 – 検出人数 – さらに検出人数がゼロのとき、取得画像を背景画像として送信 3 YOLOv3 による人物検出の例 [1] [1] 元画像は https://pixnio.com より引用
  • 5. Copyright © 2020 Morpho, Inc. All Rights Reserved.  人物領域の抽出 • Vieureka の視点は固定 – 背景が動かないため、動体 (人物) 領域の検出には 背景差分法 (MOG2) を用いた – Instance Segmentation も試したが、 速度・精度面で背景差分法の方が優れていた – 止まっている人でも輪郭は検出できる • 抽出された人物領域のマスク画像を送信 – ノイズの少ない 2 値画像のためランレングス圧縮をかけた 4 MOG2 による人物領域抽出の例
  • 6. Copyright © 2020 Morpho, Inc. All Rights Reserved.  Vieureka への組み込み 5 カメラ画像を取得すると、画像受信ハンドラ関数が実行される – ハンドラ内では、人数カウントと人物領域抽出をそれぞれスレッドを立てて実行 – 画像を受信しても前の処理が終わっていなければ、その画像についての処理をスキップ – 各処理終了時に(非同期的に)結果をサーバに送信 イベントループ イベントループ ハンドラ関数の実行 イベントループハンドラ関数の実行 メインスレッド スレッド1 スレッド2 人物領域抽出 人数カウント ・・・ t →人物領域抽出
  • 7. Copyright © 2020 Morpho, Inc. All Rights Reserved.  サーバ側の処理 ― 混雑度の統計 • サーバ (AWS) が受け取るデータ – 検出された人数 – 背景画像 – 抽出された人物領域のマスク画像 • 混雑度に関する統計量の格納にはデータベース SQLite3 を使用 • 検出された人数と受信した日時を DB テーブル “perMinute” に登録 • 同時に DB テーブル “perHour” が更新される – perHour は各時間に1つのレコードを持つ – perHour のカラム:時刻(1 時間単位)・受信回数・合計人数・最大人数・天気 • Open Weather Map から各時間の天気を取得 6
  • 8. Copyright © 2020 Morpho, Inc. All Rights Reserved.  サーバ側の処理 ― 背景とマスク画像の合成 • 背景画像と人物領域のマスク画像はサーバ側で掛け合わされる – 半透明のシルエット化された人間が映った画像となる 7 × 背景画像 (検出人数がゼロのときの画像) 人物領域のマスク画像 出力画像
  • 9. Copyright © 2020 Morpho, Inc. All Rights Reserved.  サーバ・クライアント間の通信 8 HTTP リクエスト HTTP レスポンス サーバ (AWS) 背景とマスク画像の合成 perMinute にレコード追加 perHour テーブルを更新 クライアント (Web ブラウザ) perHour のデータ 取得クエリ Chart.jsによるグラフ描画 配信画像の表示 html/css/js 配信画像を定期送信perHour の データを送信
  • 10. Copyright © 2020 Morpho, Inc. All Rights Reserved.  UI 9 人物領域をマスクした映像を表示
  • 11. Copyright © 2020 Morpho, Inc. All Rights Reserved.  UI 10 平均・最大検出人数をグラフ表示 天気(混雑度と相関を持つかも?)
  • 12. Copyright © 2020 Morpho, Inc. All Rights Reserved.  おわりに やり残したこと • 人数カウントの高速化 – 現状では人数カウントの処理時間は約 40 秒と非常に遅い – SoftNeuro によってモデルをチューニングすることで大幅に高速化できる見込みだったが 今回はそこまで至らなかった • 日ごとのデータ集計と混雑予測モデルの作成 – 実際の利用場面(店舗など)では混雑度と天気に相関があるのではないかと予想 – そもそも人がほとんどいないためにデータを取れなかったという問題があった 11
  • 13. Copyright © 2020 Morpho, Inc. All Rights Reserved.  おわりに 苦労した点など • テーマ決め – 「Vieureka の利点を活かすこと」「技術的に面白いこと」「期間内に完成すること」など様々な要件を 考慮したテーマを考え出すのに苦労した • デバッグ作業 – Vieureka で中間画像を出力するのが非常に大変であったため、 バグの原因等を特定するのが難しかった • 未経験の分野 – Web 開発の経験がなく、PHP の書き方など手探りで調べながら実装していった 12