jaws re:mote 2015 nagoya

67
JAWS re:Mote 2015 名古屋会場 2015.9.5 来栖川電算 山口陽平 ドコモ 画像認識API AWS だった

Upload: youhei-yamaguchi

Post on 22-Mar-2017

873 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: JAWS re:Mote 2015 Nagoya

JAWS re:Mote 2015 名古屋会場 2015.9.5 来栖川電算 山口陽平

ドコモ の 画像認識API も AWS だった 続

Page 2: JAWS re:Mote 2015 Nagoya

2013年の re:Invent ”しゃべってコンシェル” などで 数千台 の EC2 を利用

http://www.slideshare.net/AmazonWebServices/telco-voicecommand-

personal-agent-service-with-aws-cloud-mbl202-aws-reinvent-2013 【引用元】

2

Page 3: JAWS re:Mote 2015 Nagoya

今日話すこと JAWS DAYS 2015 での 発表 + α

• 自己紹介 & 会社紹介

• ドコモ の 画像認識API も AWS だった

–設計思想

–設計

–まとめ

– AWS を使う理由

• 宣伝

3

Page 4: JAWS re:Mote 2015 Nagoya

自己紹介 & 会社紹介

とりあえず

4

Page 5: JAWS re:Mote 2015 Nagoya

山 口 陽 平 @melleo1978

• 所属 – 有限会社 来栖川電算 取締役

• 自己紹介 企画 ~ 実装まで全部やる人

– 認識技術 & アルゴリズム の研究開発

• 文字認識,物体認識,動作認識,行動認識

– 言語処理系 の研究開発

• 分散DB,仮想機械,コンパイラ

– 名古屋工業大学出身,未踏経験

• 好きなAWSサービス

– S3,AWS Lambda,STS ※あくまでもイメージです。 実物に髪の毛はありません。

5

Page 6: JAWS re:Mote 2015 Nagoya

山 口 陽 平 @melleo1978

• [実践]画像認識 を執筆 WEB+DB PRESS Vol.83

–これから画像認識をはじめる人におススメ

6

– OpenCV の使い方や実装例

– SIFTなどの各種アルゴリズムや特定物体認識のしくみ

–精度改善への取り組み方

Page 7: JAWS re:Mote 2015 Nagoya

来栖川電算 設立 2003年(名古屋工業大学発ベンチャー) 従業員 30人

• SF世界の技術を実現し、社会に役立てる

–人工知能技術のライセンス販売・研究・SI

• 文字認識,物体認識,動作認識,行動認識

–スマホアプリの企画・制作・運営

スマートライフ技術

NTTドコモ様との共同研究

スマートドライブ技術

大手自動車メーカー様むけ

メイドさん もふくめて

7

Page 8: JAWS re:Mote 2015 Nagoya

ラジオ体操アプリ だれでも、いつでも、どこでも、すぐできる

• Android & iPhone ⇒ http://maiasa.jp/

8

Page 9: JAWS re:Mote 2015 Nagoya

ドコモ の 画像認識API も AWS だった

それでは本題

9

Page 10: JAWS re:Mote 2015 Nagoya

開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp

Docomo Developer support NTTドコモ が公開している 開発者 向けの API 提供サイト

• 実は 画像認識 以外にも幅広く AWS を活用!

画像認識 今日の話はコレ!

画像に写っている物体の情報を取得

環境センサー 日本全国の気温、降水量、紫外線量を取得

音声認識 話した内容を即座に文字に変換

雑談対話 自然な会話をやり取り

知識Q&A 今知りたいことをピンポイントで回答

音声合成 入力した文字を読み上げ

トレンド記事抽出 今人気の話題をジャンルやキーワードで検索

文字認識 画像の文字を読み取り

発話理解 要求を理解して、適切な機能を提示

動作推定 行っていた動作の推定

Page 11: JAWS re:Mote 2015 Nagoya

画像認識API 画像を送るだけで写っている商品の情報が分かる

• 登録商品:500 万件以上(昨年10月)の市販商品

–書籍,DVD,CD,PCソフト,ゲームソフト,食品パッケージ,… どんどん増加中

• 定期更新:網羅性 と 認識精度 の改善

–データ追加,パラメータ・アルゴリズム改良

11

Page 12: JAWS re:Mote 2015 Nagoya

FIREFLY 的アプリが作れる API みなさんがよく知っている Fire Phone の目玉機能

• 写真や音楽からアマゾンの商品を検索

http://jp.techcrunch.com/2014/06/19/20140618amazons-fire-phone-

introduces-firefly-a-feature-that-lets-you-identify-and-buy-things-

you-see-the-real-world/

【引用元】

12

Page 13: JAWS re:Mote 2015 Nagoya

設計思想

安全性・再現性・生産性を重視した

13

Page 14: JAWS re:Mote 2015 Nagoya

設計思想 安全性・再現性・生産性を重視

• 安全性 を高める考え方

– Blue-Green Deployment [Martin Fowler 2010]

• 再現性・生産性 を高める考え方

– Immutable Infrastructure [Chad Fowler 2013]

–設定の版管理

– CLI on Cloud Storage

• クラウドが当たり前になったおかげで、やりやすくなった!(費用的にも)

14

Page 15: JAWS re:Mote 2015 Nagoya

Blue-Green Deployment ダウンタイムの最小化、迅速・確実な復旧

• スタンバイ環境の構築・切替

–アクティブ環境を書き換えないことが重要

15

Page 16: JAWS re:Mote 2015 Nagoya

Immutable Infrastructure ”いつも管理された環境” による再現性の向上

• 差分更新は困難 ⇒ 破棄して最初から構築

–様々な状態を考慮した差分を作るのは困難

–実際の状態を正確に管理することは困難

• 様々な要因でサーバの状態は複雑で不明瞭

16

Page 17: JAWS re:Mote 2015 Nagoya

設定の版管理 ”環境のコード化” による再現性の向上

• 全ての版を保存

–設定だけから環境を復元可能

–同じ版の設定から復元される環境はいつも同じ振舞

• 設定(プログラムやデータなど一式)

–プログラム:アプリケーション, ミドルウェア, OS, スクリプト

–データ:設定ファイル, DBダンプ, 画像, 辞書, …

17

Page 18: JAWS re:Mote 2015 Nagoya

CLI on Cloud Storage ”UNIX 的抽象化” による再現性・生産性の向上

• データ加工コマンド

–入力のみから決まる出力

–パスによるデータ指定

–ストレージ上での進捗データ管理

• 効果

–疎結合な設計,再現しやすい試験,明快なデータバージョン管理,障害に強い運用,安い運用費,スクリプトによる自動化のサポート

18

Page 19: JAWS re:Mote 2015 Nagoya

設計

AWSを駆使した

19

Page 20: JAWS re:Mote 2015 Nagoya

主要なコマンド 以降で3つのコマンドとセキュリティの設計を紹介

• 画像認識APIの更新手順

–商品収集 & 収集データ確認

–設定構築 & 性能レポート確認

–スタンバイへの設定反映

–スタンバイの起動 & 動作確認

–アクティブ⇔スタンバイの切替 & 待機

–スタンバイ(旧アクティブ)の停止

–スタンバイ(旧アクティブ)への設定反映

20

Page 21: JAWS re:Mote 2015 Nagoya

設定構築コマンドの設計

AWSを駆使した

21

Page 22: JAWS re:Mote 2015 Nagoya

設定構築コマンド 収集データから設定(DB・辞書)を構築・検証

• S3上のデータを依存関係順に処理

22

Page 23: JAWS re:Mote 2015 Nagoya

[email protected]

システム構成 データ量・検証量に応じて EC2 種類・数の調整

23

Page 24: JAWS re:Mote 2015 Nagoya

Cloud Design Pattern による 要約 典型的なバッチ処理のための組み合わせ

• 運用保守:設定のコード化

– Bootstrap,Stack Deployment

• 運用保守:ログの集約

– Log Aggregation,Web Storage Archive

• バッチ処理:順序付き並行処理

– Fanout,Queuing Chain

• 性能向上:高速化

– Storage Index

24

Page 25: JAWS re:Mote 2015 Nagoya

ポイント 分散ファイルシステム上のファイル変換

• S3 から入力、S3 へ出力

–失敗時の手戻りが軽微,途中から再開可能

• 適切なファイルサイズ

–細か過ぎるとS3アクセス数が増加

• S3アクセスが占める割合が増加 ⇒ 処理時間が増加

• S3アクセスはDynamoDBアクセスより割高

–対策

• 複数ファイルのZIP化,DynamoDBへの変更

25

Page 26: JAWS re:Mote 2015 Nagoya

設定反映コマンドの設計

AWSを駆使した

26

Page 27: JAWS re:Mote 2015 Nagoya

設定反映コマンド 新設定でスタンバイ環境を更新

• 検索方法に合った DB へ商品情報を投入

– DynamoDB:ハッシュレンジ複合キー検索

– CloudSearch:全文検索,ブール型検索,ファセット検索,地理空間検索

27

Page 28: JAWS re:Mote 2015 Nagoya

[email protected]

システム構成 データ量に応じて EC2 数と DynamoDB 速度の調整

28

Page 29: JAWS re:Mote 2015 Nagoya

Cloud Design Pattern による 要約 典型的なバッチ処理のための組み合わせ

• 運用保守:設定のコード化

– Bootstrap,Stack Deployment

• 運用保守:ログの集約

– Log Aggregation,Web Storage Archive

• バッチ処理:順序付き並行処理

– Fanout,Queuing Chain

• 性能向上:高速化

– Storage Index

29

Page 30: JAWS re:Mote 2015 Nagoya

ポイント 索引構築の効率化

• 差分更新で時間の短縮と費用の節約

–いざというときは全体更新

• DynamoDB 書込速度調整で時間の短縮

–終わったら下げること!回数制限に注意!

• CloudSearch で全文検索の工数の節約

–自然言語処理はまじめにやると大変

– EC2 の費用 + 25% 程度

30

Page 31: JAWS re:Mote 2015 Nagoya

起動コマンドの設計

AWSを駆使した

31

Page 32: JAWS re:Mote 2015 Nagoya

起動コマンド 新設定でスタンバイ環境を起動

• 設定を指定して起動

–混ざらないように起動ごとに新しく環境構築

32

Page 33: JAWS re:Mote 2015 Nagoya

[email protected]

システム構成 QPS に応じて EC2 数 & DynamoDB 速度 の調整

33

Page 34: JAWS re:Mote 2015 Nagoya

Cloud Design Pattern による 要約 典型的なステートレスサービスのための組み合わせ

• 運用保守:設定のコード化

– Bootstrap,Stack Deployment

• 運用保守:ログの集約

– Log Aggregation,Web Storage Archive

• 性能向上:高速化

– Storage Index

• 性能向上:冗長化

– Multi Server

34

Page 35: JAWS re:Mote 2015 Nagoya

ポイント Immutable Infrastructure

• 環境の分離

–環境は変化しないリソースだけを共有

• EC2 のステートレス化

–必ずデータを外部 DB へ格納

• 設定のトレーサビリティ

–コード化された設定へのパス

35

Page 36: JAWS re:Mote 2015 Nagoya

セキュリティの設計

AWSを駆使した

36

Page 37: JAWS re:Mote 2015 Nagoya

ネットワーク構成 複数拠点をまたぐ安全な開発運用体制

• 機能ごとにセキュリティグループで分割・アクセス制限

– 誤設定リスク・ネットワークリスク低減

– サブネットも分割するとより安全

• VPC で複数拠点を

VPN 接続

37

Page 38: JAWS re:Mote 2015 Nagoya

Cloud Design Pattern による 要約 典型的なセキュリティ確保のための組み合わせ

• ネットワーク:リスク低減

– Functional Firewall,Operational Firewall

• ネットワーク:安全な裏口

– CloudHub,BackNet

38

Page 39: JAWS re:Mote 2015 Nagoya

まとめ

AWS を駆使した設計の

39

Page 40: JAWS re:Mote 2015 Nagoya

設計のまとめ 様々な ”考え方” と “CDP” の組み合わせ

• 4種類の考え方

– Blue-Green Deployment,Immutable Infrastracture,設定の版管理,CLI on

CloudStorage

• 10種類のCDP

– Bootstrap,Stack Deployment,Log

Aggregation,Web Storage Archive,Fanout,Queuing Chain,Storage Index,Multi Server,CloudHub,BackNet

40

Page 41: JAWS re:Mote 2015 Nagoya

設計の流れ AWS は非常に柔軟なので考慮することが多い

• 要件を満たす設計の “洗い出し”

– 様々なトレードオフが可能

• 生産性,品質(安全性,信頼性,可用性,拡張性,スループット,反応速度,容量),課金モデル(オンデマンド,リザーブド,スポット,品質)

– 何を重視するかで選択

• 無駄の少ない設計の “進化計画”

– 事業の進捗に応じて適した設計が変化

• 進捗に応じてリソース量が変化 ⇒ オンプレでは困難

– 設計を乗り換えるコストも考慮

41

Page 42: JAWS re:Mote 2015 Nagoya

AWS の効果 大幅に工数を削減 短期間に実現

• 組み合わせるだけ実現できた機能

–分散DB

• S3,DynamoDB,CloudSearch

–進捗管理

• S3, SWF

–クラスタ構成管理

• S3, AMI,EC2,EBS,ELB,CloudFormation

–クラスタ監視・通知サービス

• CloudWatch,SNS

42

Page 43: JAWS re:Mote 2015 Nagoya

AWS の効果 本業に専念可能

• OSSでもできるけど、やるべきことが多い

–使い方・性能・品質の調査

–アップデートの追随

–セットアップの自動化,手順書の作成

–可用性・拡張性・信頼性・安全性の確保

–サーバの運用・監視・障害対応

• ※やりきってAWSと対等。AWSより安くやれる?

• AWS がカバーしない領域だけやる

– AWS ロックインがいやなら疎結合に設計

43

Page 44: JAWS re:Mote 2015 Nagoya

AWS を使う理由

使ったらスグわかる

44

Page 45: JAWS re:Mote 2015 Nagoya

高い完成度 他社のサービスと比べて圧倒的

• 豊富なサービス 何個?

–欲しい機能がどんどん増殖

–組み合わせるだけで多くの要件を満足

–スケール可能なシステムが簡単に実現

• 制御が容易

–単機能で性能・費用の制御が容易

–完全にプログラマブルで自動化可能

– CLI・Management Consoleが便利

45

Page 46: JAWS re:Mote 2015 Nagoya

安くて安心 さまざまな案件に適用しやすい 特に新規事業

• とにかく経済的 どんどん値下げ

–従量課金で柔軟に調達

–ハードウェアの維持管理が不要

–機能の組み合わせで柔軟な課金モデルを実現

• 手厚いサポート

–親切な中の人

– JAWS-UG(超巨大なユーザグループ)

– 公式・非公式の豊富なドキュメント

46

Page 47: JAWS re:Mote 2015 Nagoya

こんなイカしたサービスを使わないのは “負け”

競合するのは “愚の骨頂”

さっさとやめて

AWS を使って 本業に専念 せよ! by 来栖川電算 の 山口さん

47

Page 48: JAWS re:Mote 2015 Nagoya

ドコモの 画像認識API の新機能

宣伝:近々リリースされる

48

Page 49: JAWS re:Mote 2015 Nagoya

自分専用画像認識API 無料 なのに 1000枚 も画像を登録できる画像認識エンジン

• 模様が描かれた平面形状の認識が得意

–本の表紙や中身,お菓子の箱,チラシ,…

• 様々な状況に対応 –アングル・パースの変化,照明の変化,隠れ,はみ出し,歪み,変形,複数出現,…

• たくさん登録しても高速・高精度

–難しい設定や調整が不要

• SLA強化やカスタマイズをしたいなら

docomo Innovator support

49

Page 50: JAWS re:Mote 2015 Nagoya

こんなのが作れる① 表紙 を撮影すると 発売日 や 口コミ を教えてくれるアプリ

• よく似ていても、複数冊同時でも、OK

50

※画像のアプリはドコモの画像認識APIを使っていません(来栖川電算製SDKを使っています)。

Page 51: JAWS re:Mote 2015 Nagoya

こんなのが作れる② ワインラベル を撮影すると よく合う料理 が分かるアプリ

• たくさん登録しても、速くて、賢い

51

※画像のアプリはドコモの画像認識APIを使っていません(来栖川電算製SDKを使っています)。

Page 52: JAWS re:Mote 2015 Nagoya

夢が広がりんぐ 人が目で見て判断するタスクを考えてみよう!

• モノを検出・識別し、制御・統計・表示

52

工場内で箱の仕分け

体験や評判の調査

ワインラベルで情報検索

AR付箋

集めて応募キャンペーン

ARフィギュア

開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp

Page 53: JAWS re:Mote 2015 Nagoya

ドコモの 動作推定API

宣伝:実はコイツも AWS だった

53

Page 54: JAWS re:Mote 2015 Nagoya

開発者さん、今すぐ登録ですよ! ⇒ https://dev.smt.docomo.ne.jp

動作推定API ドコモ と 来栖川電算 の共同研究

• 実は 動作推定API も AWS を活用!

画像認識 画像に写っている物体の情報を取得

環境センサー 日本全国の気温、降水量、紫外線量を取得

音声認識 話した内容を即座に文字に変換

雑談対話 自然な会話をやり取り

知識Q&A 今知りたいことをピンポイントで回答

音声合成 入力した文字を読み上げ

トレンド記事抽出 今人気の話題をジャンルやキーワードで検索

文字認識 画像の文字を読み取り

発話理解 要求を理解して、適切な機能を提示

動作推定 コレ!

行っていた動作の推定

Page 55: JAWS re:Mote 2015 Nagoya

動作推定API 加速度データから人の動作や行動を検出

• 動作と直接対応しない行動にも対応

–静止,歩き,走り,自転車,睡眠,食事

• スマホ・スマートウォッチに対応

– Android,Android Wear,Apple Watch,…

• 加速度データにアクセスできる API があればOK

55

画像はあくまで利用イメージを分かりやすく伝えるためであり、

これらのデバイスへの対応を保証しているわけではありません。

Page 56: JAWS re:Mote 2015 Nagoya

応用例:ライフログ ウォッチの加速度データを収集・送信するだけ

56

開発者は今すぐ確認! ⇒ https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_docs_id=127

Page 57: JAWS re:Mote 2015 Nagoya

来栖川電算の 毎朝体操

宣伝:AWS の MBaaS 系機能を駆使したスマホアプリ

57

Page 58: JAWS re:Mote 2015 Nagoya

ラジオ体操アプリ だれでも、いつでも、どこでも、すぐできる

• Android & iPhone ⇒ http://maiasa.jp/

58

Page 59: JAWS re:Mote 2015 Nagoya

スマホ を持って ダンス 腕の動きを認識・採点し、素敵なレポートを作成

• 採点器として利用可能なデバイス

–スマホ,スマートウォッチ

• 対応楽曲 ※どんどん追加予定

–ラジオ体操(第1,第2)

59

Page 60: JAWS re:Mote 2015 Nagoya

ランキング で 賞品 GET いつでも どこでも だれでも 何度でも 挑戦可

• ダンスで競い合う期間限定イベント

–頑張りに応じてもらえる賞品(順位・抽選)

–主催者がテーマと賞品を設定

60

主催者 来栖川電算

メーカー企業

イベント企業

教育機関

福祉施設

地方自治体

採点 参加 主催

Page 61: JAWS re:Mote 2015 Nagoya

習慣化 をサポート 何これ 凄い 楽しい 勝った 嬉しい

• モチベーションを高める様々な機能

–新しい体操 予定中,カレンダー,トロフィー,ランキング 隔週開催の楽しい企画&プレゼント,統計,…

61

Page 62: JAWS re:Mote 2015 Nagoya

100,000 DL 突破 100↑ ヶ国の職場・自宅・旅先で 20 ~ 50 代の 女性 に人気

62

15053 いいね!

Page 63: JAWS re:Mote 2015 Nagoya

知名度上昇中 ”風変わり” なアプリなので様々なメディアが注目

• Mashup Award 9 – 日本最大のアプリコンテストで優秀賞

• アプリソムリエ – 【石井寛子アプリ事始】「毎朝体操」

超最先端ラジオ体操第1!?

• 週刊朝日 – 【おすすめアプリ生活】あなたの“ラジ

オ体操度”が測れる「毎朝体操」

• 日経新聞 – 職場で気軽に体ほぐし ヨガ・体操…

お助けアプリ

• 文化放送 – ドコモ団塊倶楽部

– 8月23日(土)11:00 ~ 13:00

– アプリ紹介コーナー(生放送)

63

Page 64: JAWS re:Mote 2015 Nagoya

マグニチュード3~4 みんなのラジオ体操の熱量を合計するとヤバい!

• 13.581 GJ 2014年6月22日時点

–実はラジオ体操は運動強度が高い!

熱量 状況

1.500 GJ 雷の平均のエネルギー

1.770 GJ 質量1kgの物体が木星の引力圏から脱出するために必要な運動エネルギー

2.000 GJ マグニチュード3の地震のエネルギー

4.184 GJ TNT火薬1トンの爆発のエネルギー

8.532 GJ 世界の人口1人あたりの年間消費電力量(2002年)

13.581 GJ 毎朝体操の総熱量 2014年6月22日時点

64.100 GJ マグニチュード4の地震のエネルギー

運動強度 状況

2.0 METS 電車の中で立っている

3.0 METS 庭仕事・野球の野手

3.5 METS 平地での自転車

4.0 METS ハイキング・速足

4.5 METS ラジオ体操

6.0 METS 階段昇降・卓球

9.0 METS 水泳・高強度の長距離走・筋力トレーニング

64

Page 65: JAWS re:Mote 2015 Nagoya

来栖川電算の スタッフ募集

宣伝:いっしょに未来の習慣を作りませんか

65

Page 66: JAWS re:Mote 2015 Nagoya

スタッフ募集 愉快な技術を正しく届け、人々の生活を変えたい方

• 研究(認識技術) – 機械学習・アルゴリズム・高速化・省メモリ・画像・センサーに関する知識,Java,C++

• 開発(サーバサイド) – プロセス・アーキテクチャ・ミドルウェア・ネットワークに関する知識,Scala,Java,C++

• 開発(フロントエンド)

– UI/UX・Android・iOSに関する知識,JavaScript

• 企画(認識アプリ・認識サービス)

– 新しい習慣を考える力,普及のためのアイデア

66

Page 67: JAWS re:Mote 2015 Nagoya

オフィス 必要なら増やすよ!在宅もOK

• 気軽に遊びに来てね!

–見学できて、ご飯も食べれて、泊まれる。

名古屋本社(2013年フロア増設)

イオン千種・名大病院・名工大の近く

上野支社(2012年開設)

入谷駅・鶯谷駅・上野駅の近く

67