SlideShare a Scribd company logo
Submit Search
Upload
PyConJP2018_LT_mahjong_180918
Report
Share
R
Rio Kurihara
Follow
•
1 like
•
262 views
1
of
29
PyConJP2018_LT_mahjong_180918
•
1 like
•
262 views
Report
Share
Download Now
Download to read offline
Data & Analytics
PyConJP2018 LTでの発表資料(20180918)
Read more
R
Rio Kurihara
Follow
Recommended
メモリアロケーションからみた拡張ライブラリに大切なこと by
メモリアロケーションからみた拡張ライブラリに大切なこと
Masaya TARUI
4.6K views
•
27 slides
18 minitus発表資料 by
18 minitus発表資料
Keiichirou Miyamoto
2.2K views
•
57 slides
養成読本と私 by
養成読本と私
Kimikazu Kato
1.9K views
•
13 slides
人が神姫ん感(原文ママ)を感じるコンピュータ by
人が神姫ん感(原文ママ)を感じるコンピュータ
haru2036
6.2K views
•
21 slides
超要約 Stan Reference by
超要約 Stan Reference
Hiroki Mizukami
2.9K views
•
26 slides
G stylus 10-20 by
G stylus 10-20
大貴 吉川
58 views
•
6 slides
More Related Content
What's hot
アクションマイニングを用いた最適なアクションの導出 by
アクションマイニングを用いた最適なアクションの導出
Shintaro Fukushima
5.5K views
•
38 slides
オレオレR-GUIを作りたい by
オレオレR-GUIを作りたい
Masahiro Hayashi
4.8K views
•
11 slides
面倒くさいこと考えたくないあなたへ〜Tpotと機械学習〜 by
面倒くさいこと考えたくないあなたへ〜Tpotと機械学習〜
Hiroki Yamamoto
4.3K views
•
23 slides
Reproducebility 100倍 Dockerマン by
Reproducebility 100倍 Dockerマン
Nagi Teramo
4.3K views
•
25 slides
ゲームノシクミ by
ゲームノシクミ
TATSUYA HAYAMIZU
1.3K views
•
21 slides
P5js web editorで、クリエイティブコーディングを! by
P5js web editorで、クリエイティブコーディングを!
Suzuki Junko
1.1K views
•
22 slides
What's hot
(11)
アクションマイニングを用いた最適なアクションの導出 by Shintaro Fukushima
アクションマイニングを用いた最適なアクションの導出
Shintaro Fukushima
•
5.5K views
オレオレR-GUIを作りたい by Masahiro Hayashi
オレオレR-GUIを作りたい
Masahiro Hayashi
•
4.8K views
面倒くさいこと考えたくないあなたへ〜Tpotと機械学習〜 by Hiroki Yamamoto
面倒くさいこと考えたくないあなたへ〜Tpotと機械学習〜
Hiroki Yamamoto
•
4.3K views
Reproducebility 100倍 Dockerマン by Nagi Teramo
Reproducebility 100倍 Dockerマン
Nagi Teramo
•
4.3K views
ゲームノシクミ by TATSUYA HAYAMIZU
ゲームノシクミ
TATSUYA HAYAMIZU
•
1.3K views
P5js web editorで、クリエイティブコーディングを! by Suzuki Junko
P5js web editorで、クリエイティブコーディングを!
Suzuki Junko
•
1.1K views
元BIエバンジェリストが語る!脱獄matplot! by ReNom User Group
元BIエバンジェリストが語る!脱獄matplot!
ReNom User Group
•
632 views
グラフデータベース「Neo4j」の 導入の導入 by Hisao Soyama
グラフデータベース「Neo4j」の 導入の導入
Hisao Soyama
•
20.9K views
機械学習を使って数字認識してみよう! by Kenyu Uehara
機械学習を使って数字認識してみよう!
Kenyu Uehara
•
2K views
PypeRで実験と分析を一本化する by Takashi Yamane
PypeRで実験と分析を一本化する
Takashi Yamane
•
4.2K views
Chainer meetup lt by Ace12358
Chainer meetup lt
Ace12358
•
91.1K views
Similar to PyConJP2018_LT_mahjong_180918
GDG2018 vision kit mahjong by
GDG2018 vision kit mahjong
Rio Kurihara
1.3K views
•
58 slides
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」 by
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
1.3K views
•
39 slides
DBエンジニアに必要だったPythonのスキル by
DBエンジニアに必要だったPythonのスキル
Satoshi Yamada
2.3K views
•
24 slides
ownCloudについて by
ownCloudについて
Shinya Saita
3.8K views
•
58 slides
PyCharm入門 by
PyCharm入門
Yuki Nagai
12.1K views
•
15 slides
Orientation by
Orientation
Takeshi Akutsu
419 views
•
15 slides
Similar to PyConJP2018_LT_mahjong_180918
(20)
GDG2018 vision kit mahjong by Rio Kurihara
GDG2018 vision kit mahjong
Rio Kurihara
•
1.3K views
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」 by tokyorgirls
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
•
1.3K views
DBエンジニアに必要だったPythonのスキル by Satoshi Yamada
DBエンジニアに必要だったPythonのスキル
Satoshi Yamada
•
2.3K views
ownCloudについて by Shinya Saita
ownCloudについて
Shinya Saita
•
3.8K views
PyCharm入門 by Yuki Nagai
PyCharm入門
Yuki Nagai
•
12.1K views
Orientation by Takeshi Akutsu
Orientation
Takeshi Akutsu
•
419 views
Rubyの会社でPythonistaが三ヶ月生き延びた話 by Drecom Co., Ltd.
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
•
3.7K views
Rubyの会社でPythonistaが3ヶ月生き延びた話 by Tokoroten Nakayama
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
•
9.2K views
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session by Shinichi Nakagawa
Pythonではじめる野球プログラミング PyCon JP 2014 9/14 Talk Session
Shinichi Nakagawa
•
25.8K views
20200330_RPALT広島#5_RPA徒然草~あやしうこそものぐるほしけれ by Naoko Shinagawa
20200330_RPALT広島#5_RPA徒然草~あやしうこそものぐるほしけれ
Naoko Shinagawa
•
426 views
PredictionIOのPython対応計画 by Shinsuke Sugaya
PredictionIOのPython対応計画
Shinsuke Sugaya
•
687 views
東方ゲームAIとその歴史 by ide_an
東方ゲームAIとその歴史
ide_an
•
2.6K views
211120 他人の書いたPythonスクリプトをステップ実行で理解する by Takuya Nishimoto
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
•
1.3K views
匠Methodをサポートする事業開発に役立つ書籍たちを紹介します by Haruo Sato
匠Methodをサポートする事業開発に役立つ書籍たちを紹介します
Haruo Sato
•
3.2K views
Python学習奮闘記#07 webapp by Takeshi Akutsu
Python学習奮闘記#07 webapp
Takeshi Akutsu
•
2K views
ゲーム制作における素材作成.pdf by ssuser5583eb
ゲーム制作における素材作成.pdf
ssuser5583eb
•
12 views
TypeScriptで作る型安全FirefoxOSアプリ by progre
TypeScriptで作る型安全FirefoxOSアプリ
progre
•
4.2K views
Watson summit 公開用 by Izumi Akiyama
Watson summit 公開用
Izumi Akiyama
•
1.8K views
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント by Hiroyuki Ishikawa
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
•
644 views
言語処理するのに Python でいいの? #PyDataTokyo by Shuyo Nakatani
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
•
21.2K views
PyConJP2018_LT_mahjong_180918
1.
システム開発素人が深層学習を用いた 画像認識で麻雀点数計算する LINEbotを作ったハナシ #flask #Heroku #物体検出
#SSD Rio Kurihara
2.
2 栗原 理央(Rio Kurihara) •
株式会社ブレインパッド • アナリティクスサービス部 データサイエンティスト • 2016年入社(新卒3年目) • 経験分野 • 自然言語処理 • 画像処理 • 需要予測 • 統計モデリング/機械学習/深層学習 • Not エンジニアリング http://free-illustrations.gatag.net/ https://www.pakutaso.com/ https://free-materials.com/ 好きなこと普段使っている主な言語・ツール
3.
3 突然ですが
4.
4 麻雀が好きです (ぶっちゃけ下手の横好きですが)
5.
5 も好きです
6.
6 深層学習を業務で使ってます
7.
7 最近エンジニアリング、モノ作りに 興味があります
8.
8 麻雀、Python、深層学習で 何か動くものが作りたい
9.
9 30符 4翻 7,700点! 和了時の画像をカメラで 撮ったら自動で点数計算 してくれる君を作ろう
10.
10 麻雀点数計算チャットボット概要 ※お遊びで始まり、未だお遊びの域を出ていない Input(画像) 牌の識別 役名 1p 2p
3p … 8m 9m p f c 平和 1 1 1 … 0 0 0 0 0 断ヤオ 0 1 1 … 1 0 0 0 0 混一 0 0 0 … 1 1 3 0 0 点数計算 ルールベース 深層学習
11.
11 今日言いたいこと • 今回は機械学習モデルの開発はほぼ苦労していない • 厄介だったのは機械学習モデルの載ったアプリの開発 •
HerokuとLINE APIの仕様のコンボに苦しめられた • とはいえ素人でもPythonで一貫してアプリ作れた • あわよくば一緒に開発してくれる人いませんか
12.
12 みんな大好きSSD 原文:https://arxiv.org/pdf/1512.02325.pdf 論文和訳:https://qiita.com/de0ta/items/1ae60878c0e177fc7a3a • 深層学習の物体検出アルゴリズム • 画像中の「どこに」「何が」あるかを予測する
13.
13 工夫したのは学習データの作成 • アノテーションは本当に辛い。最低でも数百枚は必要 → 34種類の牌画像だけ撮影し、あとはランダムに配置するだけ 牌画像
学習用画像
14.
14 SSDによる物体検出のめちゃくちゃ精度良かった!
15.
15 SSDによる物体検出のめちゃくちゃ精度良かった! イケてる
16.
16 よっしゃアプリにしたろ
17.
17 LINEbotのシステム構成図 ユーザー LINE bot 画像 送信受信 Call
back URL 画像送信 herokuサーバ 学習 GPGPU 推論
18.
18 LINE bot開発、難航
19.
19 Heroku/LINE Messagng APIの 仕様のコンボにやられまくる ※どちらもフリープラン故の制約
20.
20 / カネ払えば解決するんじゃね? \ / 趣味でやってるわけで・・・ なるべくお金はかけたくないのよ・・・ \
21.
21 Herokuフリープランによる制限 ユーザー LINE bot
サーバ 画像 送信受信 Call back URL 画像送信 herokuサーバ 学習 GPGPU 推論 アプリの立ち上げに 60秒以上かかると dynoが強制再起動 される アプリ立ち上げ時にモデルビルド するなってこと・・・?
22.
22 Herokuフリープランによる制限 ユーザー LINE bot
サーバ 画像 送信受信 Call back URL 画像送信 herokuサーバ 学習 GPGPU 推論 100MB以上の ファイルはおけない 深層学習モデル、 普通に100MB超えるんだけど・・・
23.
23 Herokuフリープランによる制限 ユーザー LINE bot
サーバ 画像 送信受信 Call back URL 画像送信 herokuサーバ 学習 GPGPU 推論 画像 送信受信 S3 外部から引っ張ってくれば ええんやろ
24.
24 LINE Messagng API
フリープランによる制限 ユーザー LINE bot サーバ 画像 送信受信 Call back URL 画像送信 herokuサーバ 学習 GPGPU 推論 Replyできるのは ユーザーアクションから 30秒以内に1度だけ 深層学習モデルのロード/ビルド、 推論は30秒じゃ終わらないヨ 画像 送信受信 S3
25.
25 Herokuフリープランによる制限 ユーザー LINE bot
サーバ 画像 送信受信 Call back URL 画像送信 herokuサーバ 学習 GPGPU 推論 画像 送信受信 S3 メモリが512MBを 超えるとスワップが 発生して処理が もっさりする 何を言ってるの・・・?
26.
26 結局どうしたのか?実際の画面と仕様感(1/2) ユーザーアクションから30秒以内にReplyしないといけない & アプリ起動時に60秒以上かかると強制再起動がかかる 「もでるびるど」とユーザーが打ち込むと 深層学習モデルがビルドされる謎の仕様 実際の画面 Herokuのログ(モデルファイルをS3からロードしている)
27.
27 結局どうしたのか?実際の画面と仕様感(2/2) その後、計算したい画像を送ると 検出結果の画像と点数がテキス トで返ってくる 実際の画面
28.
28 おまけの煽り機能(開発途中) 安目で上がったら煽ってくる 実際の画面
29.
29 まとめ • 改善の余地しかないですが、これからも(できれば)Python一本で開発頑張 ります • 機械学習モデルをアプリケーションに載せるためのノウハウがもっと共有される世 の中になれば良いな 深層学習
麻雀詳しい話は →