Chief Analytics Officer
⾦⽥ 卓⼠
物体認識 IoT サービスを支える技術
〜クラウドアーキテクチャから組込み深層学習まで〜
#TokyoWebmining 55th
⾃⼰紹介
慶應義塾⼤学⼤学院で計量経済学を専攻後、
⼀休.com、ソフトバンク・テクノロジー、
VASILYにおいて分析からアルゴリズムの
実装までデータ関連業務全般に従事。2016
年6⽉よりフューチャースンダードへ参画。
金田 卓士 @kn...
3
1. 事業概要
2. サービスアーキテクチャの解説
Ø システム概要とアーキテクチャの設計方針
Ø デバイス構成
Ø サーバー構成
3. 深層学習を利用した組込み物体検出の取り組み
⽬次
4
事業概要
世界の「見える化」を加速させる
どれくらい混んでるのだろう?どれくらい、見られているのかな? 上手い人との差ってどこだろう?
⾒えているようで⾒えていない世界をリアルタイムに認知し、理解する
6
リアルタイム画像解析でできること:
店舗の場合
来店分析
行列人数
顧客・店員動線
7
リアルタイム画像解析でできること:
街の場合
通行人数
通行車両数
移動方向
8
早く・簡単に集めた画像を解析できる
画像解析プラットフォーム
9
ビジネスモデル 10
インフラ設置済みカメラ
既存監視カメラ
スマートフォン
解析データ
飲⾷店待ち時間データ
映像データ
(1)カメラ網 (2)画像解析 (3)新しいソリューション
交通量・流動データ
店舗1
56⼈ 50台
現在8人待ち
届けたい体験・・・ 11
お店の前って、ど
れくらい⼈が通っ
ているのかしら?
クライアントの
屋外広告測定を
してみたいな。
l 簡単な機能追加
l インフラ設計不要
l 欲しいアプリ、
解析サービスを
探せるアプリマー
ケット
サービスアーキテクチャの解説
システム概要
P全時間帯の映像を、リアルタイムでタグ付けして保存
Pタグ付けの画像処理は、ニーズにより柔軟な構成が可能
IPカメラ オンプレミス
中間サーバ
クラウド
画像処理
S3
バケット
タ
グ
映
像
映
像
映
像
映
像
保存
エッ...
アーキテクチャの設計方針
下記の⽅針に基づいて動画解析プラットフォームの設計を⾏っています。
n 主に安価な画像センサと⼩型コンピュータ (Raspberry Pi2 等)を組み
合わせ “スマートカメラ ネットワーク”を 簡単・迅速・安価に構...
簡単・安価なネットワーク構築を実現するデバイス
• 汎⽤品である Raspberry Pi と市販のUSBカメラ
を繋げることで安価にスマートカメラネットワー
クシステムを構築可能
• 独⾃イメージを書き込むだけで、ドライバ導⼊や
ネットワーク...
マルチプラットフォームかつスケーラブルな設計
コンポーネント間のインタフェースとなるプロトコルを規定し、サービスを疎結合とす
ることで、異種HW・異種OS・異Version混在しても、全体の整合性を保てる構造にする。
この⽅針により、様々な形態...
ミドルウェア群(1/2)
HPCクラスタ ミドルウェア
l クラスタメンバー管理(加⼊・切離し・交換・命名等)
l クラスタメンバー制御(各種 ON/OFF 他)
l ジョブ制御、モニタリング、リトライ
l 構成調査/デプロイ à Ansibl...
ミドルウェア群(1/2)
ネットワーク ミドルウェア
• 設定ツール、調査ツール(主にトラブルシューティング)
• Layer 7 プロトコル ‒ RTP, RTCP など(画像処理系)
• セキュリティー関連 ‒ IPフィルターなど
• ルー...
デバイスのソフトウェア構成
ログと動画はストリーミングとバッチを
併用することで冗長性を確保
FluentdのプラグインがMQTT3.1に
対応していないためMosquittoを利用
19
アドバタイズ/
プロパティ提供
サーバーのコンポーネント構成
カメラ管理
サブシステム
(CMS)
カメラ
ネットワーク
(CN)
画像処理
サブシステム
(IPS)
UI
サブシステム
(UIS)
画像/メタ情報
処理デリゲート
処理指示
操...
《MQTT》
アドバタイズ/
プロパティ提供
AWSマネージドサービスの活用
カメラ
ネットワーク
(CN)
《MQTT》
画像/メタ情報
処理デリゲート
操作
《MQTT》
サーチ/カメラ制御
情報提供
認証
Token
ログイン
DB
ユー...
クラウドアーキテクチャの
解説
深層学習を利用した
組込み一般物体認識の取り組み
現状の問題点とエッジ側での物体認識のニーズ
• OpenCV を使って動体検知+HOG特徴量では認識精度が低い
• 個⼈情報保護の観点からクラウドへ映像や画像を出したくない
エッジ側でディープラーニングを使った精度の⾼い
⼀般物体認識ができない...
⼀般物体認識 4
car : 1.000
dog : 0.997
person : 0.992
person : 0.979
horse : 0.993
conv feature map
intermediate layer
256-d
k s...
• クレジットサイズの組込み用コンピューター
• 64bit の 4コアCPUを搭載
• 256 CUDA コアを搭載(GTX 1080 は 2560コア)
• メモリは4GBでGPUと共有(TK1は2GB)
• OSはUbuntu 14.04...
• 高速でほぼリアルタイムに近い物体
認識が可能なアルゴリズム
• 物体候補領域の検出と、物体の判定
を一つのネットワークで行うため計
算が速い
• 詳しくは、スライドと元論文読んで
ください!
Faster R-CNN
image
conv ...
PVCR2015 Tutorial: Convolutional Feature Maps論文紹介 Fast R-CNN & Faster R-CNN
27
R-CNN(参考)
• Selective Search で領域の候補を検出
• それぞれの画像を規定のサイズに変換
• 特徴量から分類を行う
• 矩形の座標を回帰
28
• 本家のMatlab実装でなくGitHubで公開されているPython実装を利⽤
• 使⽤したモデル
Ø VGG16: 13層の畳み込み層
Ø ZF: 5層の畳み込み層
• 学習は⾏わず、Forward propagation のみ実施
• ...
検証結果
30
モデル 平均処理時間(秒) 平均領域候補数
VGG 16 3.01 230
ZF 0.91 233
今後の課題
• ZFでは約0.9秒で処理できたが、更に高速化が求められるタスクに対応するのに
はどうしたらよいか
• 特定の物体認識タスクへ応用するのにどうするのがよいか
判別層の置き換え、ファインチューニング
• 時系列フィルタリングをどうし...
Upcoming SlideShare
Loading in …5
×

物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜

605 views
764 views

Published on

Future Standard では、IoTを活用した映像解析のサービス開発を行っており、その仕組みを支える技術についてお話をさせて頂きます。前半では、AWSでサーバー側の仕組みを構築した際に、どのような設計思想に基づいてアーキテクチャを構築したのかといったポイントを中心に説明します。後半は、NVIDIAのJetsonという組み込みコンピューターを使った、Faster R-CNN を使ったエッジでのリアルタイム物体認識の取り組みについてお話させて頂きます。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
605
On SlideShare
0
From Embeds
0
Number of Embeds
275
Actions
Shares
0
Downloads
4
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜

  1. 1. Chief Analytics Officer ⾦⽥ 卓⼠ 物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜 #TokyoWebmining 55th
  2. 2. ⾃⼰紹介 慶應義塾⼤学⼤学院で計量経済学を専攻後、 ⼀休.com、ソフトバンク・テクノロジー、 VASILYにおいて分析からアルゴリズムの 実装までデータ関連業務全般に従事。2016 年6⽉よりフューチャースンダードへ参画。 金田 卓士 @kndt84 2
  3. 3. 3
  4. 4. 1. 事業概要 2. サービスアーキテクチャの解説 Ø システム概要とアーキテクチャの設計方針 Ø デバイス構成 Ø サーバー構成 3. 深層学習を利用した組込み物体検出の取り組み ⽬次 4
  5. 5. 事業概要
  6. 6. 世界の「見える化」を加速させる どれくらい混んでるのだろう?どれくらい、見られているのかな? 上手い人との差ってどこだろう? ⾒えているようで⾒えていない世界をリアルタイムに認知し、理解する 6
  7. 7. リアルタイム画像解析でできること: 店舗の場合 来店分析 行列人数 顧客・店員動線 7
  8. 8. リアルタイム画像解析でできること: 街の場合 通行人数 通行車両数 移動方向 8
  9. 9. 早く・簡単に集めた画像を解析できる 画像解析プラットフォーム 9
  10. 10. ビジネスモデル 10 インフラ設置済みカメラ 既存監視カメラ スマートフォン 解析データ 飲⾷店待ち時間データ 映像データ (1)カメラ網 (2)画像解析 (3)新しいソリューション 交通量・流動データ 店舗1 56⼈ 50台 現在8人待ち
  11. 11. 届けたい体験・・・ 11 お店の前って、ど れくらい⼈が通っ ているのかしら? クライアントの 屋外広告測定を してみたいな。 l 簡単な機能追加 l インフラ設計不要 l 欲しいアプリ、 解析サービスを 探せるアプリマー ケット
  12. 12. サービスアーキテクチャの解説
  13. 13. システム概要 P全時間帯の映像を、リアルタイムでタグ付けして保存 Pタグ付けの画像処理は、ニーズにより柔軟な構成が可能 IPカメラ オンプレミス 中間サーバ クラウド 画像処理 S3 バケット タ グ 映 像 映 像 映 像 映 像 保存 エッジで タグ付け 中間で タグ付け クラウドで タグ付け ニーズで選択 Dynamo DB NoSQL DB 保存 13
  14. 14. アーキテクチャの設計方針 下記の⽅針に基づいて動画解析プラットフォームの設計を⾏っています。 n 主に安価な画像センサと⼩型コンピュータ (Raspberry Pi2 等)を組み 合わせ “スマートカメラ ネットワーク”を 簡単・迅速・安価に構築 n OS / HWを問わないマルチプラットフォーム 環境で、カメラ 数台〜数百 万台までカバーするスケーラブルかつ柔軟なシステム n 撮影画像のタイムリーな蓄積・検索・分析に必要なミドルウェア群を完 備し、 独⾃ビジネスロジックの構築や、先端研究を 簡単に組み込める 導⼊が楽 学習が楽 運⽤が楽 14
  15. 15. 簡単・安価なネットワーク構築を実現するデバイス • 汎⽤品である Raspberry Pi と市販のUSBカメラ を繋げることで安価にスマートカメラネットワー クシステムを構築可能 • 独⾃イメージを書き込むだけで、ドライバ導⼊や ネットワーク設定は全て⾏われる • 機能のオンオフを設定ファイルで簡単に変更可能 • エッジで解析を⾏う場合は、OpenCV の動体検 知とHOG特徴量フィルターを組み合わせて、顔 検出や通⾏⼈検知が可能 15
  16. 16. マルチプラットフォームかつスケーラブルな設計 コンポーネント間のインタフェースとなるプロトコルを規定し、サービスを疎結合とす ることで、異種HW・異種OS・異Version混在しても、全体の整合性を保てる構造にする。 この⽅針により、様々な形態での運⽤が可能となる • リアルタイムのカメラ映像の代わりに、録画済みのビデオ映像をPC上に送り、 PC上で動作させた画像解析サービスで処理 • IaaS クラウド上に、個別ニーズに最適化した、画像解析サービスを構築 • クラウド上の画像解析サービスを、⼀般向けに PaaS 提供 • 典型的な画像処理プラグインとパッケージング化して、⼀般向けに SaaS 提供 • ユーザのハードウェア上に、オンプレミスでシステム構築 16
  17. 17. ミドルウェア群(1/2) HPCクラスタ ミドルウェア l クラスタメンバー管理(加⼊・切離し・交換・命名等) l クラスタメンバー制御(各種 ON/OFF 他) l ジョブ制御、モニタリング、リトライ l 構成調査/デプロイ à Ansible や Cheff 画像処理 ミドルウェア l OpenCV, VLFeat l C++, Python, MATLAB l PCL, CUDA など ⾼レベル ミドルウェア l クエリライブラリ ‒ 特定カメラ&特定時刻の画像取得、バッチ処理起動など l 定形処理ライブラリ ‒ ⼈物検出、カリブレーション、各種データの集計など 使いやすさと 性能に直結 コアコンピテンス HW性能を引き出すカスタムビルド 利⽤者による最適化を不要に プロトコルによりヘテロ 構成に対応 17
  18. 18. ミドルウェア群(1/2) ネットワーク ミドルウェア • 設定ツール、調査ツール(主にトラブルシューティング) • Layer 7 プロトコル ‒ RTP, RTCP など(画像処理系) • セキュリティー関連 ‒ IPフィルターなど • ルーティングライブラリ ‒ スマートカメラ ネットワークの階層構造を透過にアクセス OS調査ツール • プロファイラ(perf, oprofile)、トレーサ(ltrace、strace) • 障害ログ分析ツール、通報ツール ユーザインタフェース • 初期設定/保守ツール ‒ 保守プロンプト、QRコードを読み取って設定など • スマートデバイス連携ライブラリ ‒ 例えば、REST I/F を提供するWebサーバなど トラブル対応を迅速化 システム性能のチューニング にも活⽤ 18
  19. 19. デバイスのソフトウェア構成 ログと動画はストリーミングとバッチを 併用することで冗長性を確保 FluentdのプラグインがMQTT3.1に 対応していないためMosquittoを利用 19
  20. 20. アドバタイズ/ プロパティ提供 サーバーのコンポーネント構成 カメラ管理 サブシステム (CMS) カメラ ネットワーク (CN) 画像処理 サブシステム (IPS) UI サブシステム (UIS) 画像/メタ情報 処理デリゲート 処理指示 操作 サーチ/カメラ制御 情報提供 ユーザ管理 サブシステム (UMS) 認証 Token ログイン DB ユーザID 認証Token 登録 20
  21. 21. 《MQTT》 アドバタイズ/ プロパティ提供 AWSマネージドサービスの活用 カメラ ネットワーク (CN) 《MQTT》 画像/メタ情報 処理デリゲート 操作 《MQTT》 サーチ/カメラ制御 情報提供 認証 Token ログイン DB ユーザID 認証Token 登録 API Gateway Cognito AWS IoT AWS IoT S3 Dynamo DB タグ 映像 Lambda Lambda Elastic Beanstalk 21
  22. 22. クラウドアーキテクチャの 解説 深層学習を利用した 組込み一般物体認識の取り組み
  23. 23. 現状の問題点とエッジ側での物体認識のニーズ • OpenCV を使って動体検知+HOG特徴量では認識精度が低い • 個⼈情報保護の観点からクラウドへ映像や画像を出したくない エッジ側でディープラーニングを使った精度の⾼い ⼀般物体認識ができないか検証を実施 23
  24. 24. ⼀般物体認識 4 car : 1.000 dog : 0.997 person : 0.992 person : 0.979 horse : 0.993 conv feature map intermediate layer 256-d k scores 4k coordinates sliding window reg layerr k anchor boxes bus : 0.996 person : 0.736 boat : 0.970 person : 0.989 person : 0.983 person : 0.983 person : 0.925 cat : 0.982 dog : 0.994 3: Left: Region Proposal Network (RPN). Right: Example detections using RPN proposals on PASCAL 007 test. Our method detects objects in a wide range of scales and aspect ratios. • 制約のない実世界シーンの画像に対して計 算機がその中に含まれる物体を一般的な名 称で認識すること • 画像のどこに何が写っているかを知りたい • 一般物体認識ができれば個別の認識タスク は識別層を変更したりファインチューニン グすることであらかた実現可能? Faster R-CNN の論文より引用 24
  25. 25. • クレジットサイズの組込み用コンピューター • 64bit の 4コアCPUを搭載 • 256 CUDA コアを搭載(GTX 1080 は 2560コア) • メモリは4GBでGPUと共有(TK1は2GB) • OSはUbuntu 14.04 LTS をベース • 実際の開発は、開発キットを使って行う NVIDIA Jetson TX1 開発キット 25
  26. 26. • 高速でほぼリアルタイムに近い物体 認識が可能なアルゴリズム • 物体候補領域の検出と、物体の判定 を一つのネットワークで行うため計 算が速い • 詳しくは、スライドと元論文読んで ください! Faster R-CNN image conv layers feature maps Region Proposal Network proposals classifier RoI pooling Figure 2: Faster R-CNN is a single, unified network for object detection. The RPN module serves as the ‘attention’ of this unified network. single, unified Using the re networks wit module tells In Section 3.1 of the networ develop algor features share 3.1 Region A Region Pro (of any size) a object propos model this pro [7], which we mate goal is t object detectio share a comm periments, we [32] (ZF), whi and the Simon which has 13 To generat network over by the last s Faster R-CNN の論文より引用 26
  27. 27. PVCR2015 Tutorial: Convolutional Feature Maps論文紹介 Fast R-CNN & Faster R-CNN 27
  28. 28. R-CNN(参考) • Selective Search で領域の候補を検出 • それぞれの画像を規定のサイズに変換 • 特徴量から分類を行う • 矩形の座標を回帰 28
  29. 29. • 本家のMatlab実装でなくGitHubで公開されているPython実装を利⽤ • 使⽤したモデル Ø VGG16: 13層の畳み込み層 Ø ZF: 5層の畳み込み層 • 学習は⾏わず、Forward propagation のみ実施 • 候補領域数は最⼤300 に設定 • Jetsonの設定に関しては、別途 Qiita の記事にまとめておきました Jetson TX1 で Faster R-CNN を動かす 検証について 29
  30. 30. 検証結果 30 モデル 平均処理時間(秒) 平均領域候補数 VGG 16 3.01 230 ZF 0.91 233
  31. 31. 今後の課題 • ZFでは約0.9秒で処理できたが、更に高速化が求められるタスクに対応するのに はどうしたらよいか • 特定の物体認識タスクへ応用するのにどうするのがよいか 判別層の置き換え、ファインチューニング • 時系列フィルタリングをどうしたらよいか 31

×