Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
将棋盤を画像認識したかった
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
na-o-ys
April 26, 2017
Technology
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
将棋盤を画像認識したかった
na-o-ys
April 26, 2017
More Decks by na-o-ys
See All by na-o-ys
IoTと監視
naoys
1
830
RubyとJIT
naoys
0
190
Rust で乗り換え案内
naoys
0
650
疎行列と Jaccard 類似度の高速計算
naoys
1
680
有理数集合の濃度
naoys
2
160
YARVの最適化について調べた
naoys
0
160
転職会議サービスのAWS移行記録
naoys
0
92
Anonymous Recursion in C++
naoys
0
450
入門AlphaGo
naoys
5
3.8k
Other Decks in Technology
See All in Technology
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
140
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
170
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
430
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
4
1.9k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
450
マルチアカウント環境でSecurity Hubの運用、その後どうなった? / SRE NEXT 2026 miniLT会
genda
0
110
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
450
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.6k
Data + AI Summit 2026 イベントレポート: 「AIがビジネスで意思決定するデータ基盤」へ
nek0128
0
300
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
110
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
160
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Statistics for Hackers
jakevdp
799
230k
Rails Girls Zürich Keynote
gr2m
96
14k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
610
Utilizing Notion as your number one productivity tool
mfonobong
4
440
Building the Perfect Custom Keyboard
takai
2
820
Visualization
eitanlees
152
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Everyday Curiosity
cassininazir
0
260
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Transcript
কع൫Λ ը૾ೝ͔ࣝͨͬͨ͠ 0x64ޠreboot ୈ2ʮػցֶशʯ @na_o_ys
Γ͍ͨ͜ͱ 9 8 7 6 5 4 3 2 1
+---------------------------+ |v香v桂 ・ ・ ・ ・ ・ ・ ・|一 | ・ ・ ・ 馬 ・ ・ 龍 ・ ・|二 | ・ ・v玉 ・v歩 ・ ・ ・ ・|三 |v歩 ・ ・ ・v金 ・ ・ ・ ・|四 | ・ ・v銀 ・ ・ ・v歩 ・ ・|五 | ・ ・ ・ ・ 玉 ・ ・ ・ ・|六 | 歩 歩 ・ 歩 歩v歩 歩 ・ 歩|七 | ・ ・ ・ ・ ・ ・ ・ ・ ・|八 | 香 桂v金 ・v金 ・ ・ 桂 香|九 +---------------------------+ Input Output
ྲྀΕ • 1. Ϛεຖͷը૾Λநग़͢Δ • ը૾ॲཧ • 2. Ϛεͷ༰ (ۭ
or ۨͷใ) Λਪఆ͢Δ • ػցֶश
1. Ϛεຖͷը૾Λநग़͢Δ
Ϛεຖͷը૾Λநग़͢Δ • ·ͣɺকع൫ͷ࠲ඪऔಘ -> ͦͯ͠ɺਖ਼໘ਤʹม -> ࠷ޙʹɺϚεຖʹը૾ׂ
࢛۱ͷ࠲ඪΛಛఆͰ͖Εউͪ • ʮ؆୯Ͱ͠ΐʁʯ -> ͔ͬͨ͠…
͍ΖΜͳಛݕग़ख๏ (OpenCV) Τοξݕग़ ྠֲݕग़ ઢݕग़
ख๏ • ྠֲݕग़ + ઢݕग़ + ম͖ͳ·͠๏
ྠֲݕग़ • ݕग़͞Εͨྠֲͷू߹ʹରͯ͠ɺ (ਖ਼ํܗͬΆ͞ && ໘ੵͷେ͖͞) Ͱ͖͍͠Λઃ͚Εɺ େࡶͳྠֲ͕औΕΔ • ͽͬͨΓʹͳΒͳ͍ͷͰɺ͔͜͜Βম͖ͳ·͠๏ͰͽͬͨΓΛ୳͢
ম͖ͳ·͠๏ • ઢݕग़ͷ݁ՌΛ͏ • ܩઢ͕Α͘औΕͯΔͷͰ • ίετؔ f Λ༻ҙ͢Δ •
f (࢛۱ͷ࠲ඪީิ, ઢݕग़݁Ռ) = ܩઢͷͽͬͨΓ۩߹ • ࠲ඪΛৼಈͤ͞ͳ͕Βίετؔͷ࠷খΛ୳͢ • scipy ͷম͖ͳ·͠๏Ϟδϡʔϧ
(DEMO)
2. Ϛεͷ༰Λਪఆ͢Δ
Ϛεͷ༰Λਪఆ͢Δ • DeepLearning ͠·͢! • ڭࢣσʔλΛूΊΔ -> χϡʔϥϧωοτϫʔΫΛఆٛ͢Δ -> ֶशͤ͞Δ
ڭࢣσʔλΛूΊΔ • Google ը૾ݕࡧ ʮকعɹۨʯ
ۨຖʹτϦϛϯάʢྗʣ
ڭࢣσʔλ֦ு • 700ຕ͘Β͍͔͠ू·Βͳ͔ͬͨ • Γͳ͍ͷͰֶश࣌ʹϊΠζΛՃ͑ͯσʔλΛ૿͢ 700ຕ ճస/֦େ/ॖখ 700 * N
ຕ૬
χϡʔϥϧωοτϫʔΫΛఆٛ ͢Δ • CNN (ΈࠐΈ3 + શ݁߹2) • ϋΠύʔύϥϝʔλͷৄࡉɺखॻ͖ࣈೝࣝ 98.5
% ͷͭΛਅࣅ͢Δ https://github.com/KyotoSunshine/CNN-for-handwritten-kanji ը૾ग़య: http://personal.ie.cuhk.edu.hk/~ccloy/project_target_code/index.html
NNఆٛͷιʔε model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(MaxPooling2D(pool_size=(2,
2))) model.add(Dropout(0.2)) model.add(Conv2D(64, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.3)) model.add(Conv2D(128, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.4)) model.add(Flatten()) model.add(Dense(256, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(256, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) model.summary() • Keras Λͬͨ
ֶशͤ͞Δ • ڭࢣσʔλ: 700 ຕ (+ σʔλ֦ு) • ΤϙοΫ: 80
• Πϯελϯε: p2.xlarge (1 GPU, 4 CPU, 61 GB RAM) • -> ֶश࣌ؒ 15 ͘Β͍
(DEMO) • ςετσʔλ(ֶशʹ༻͍͍ͯͳ͍ۨछ)ʹΑΔݕূ: ਖ਼ղ 95.8 % ޭ ࣦഊ యܕతͳσβΠϯͷۜɾܡ ผՄೳ
ಠಛͳϑΥϯτผՄೳ (൚ԽͰ͖͍ͯΔ) σβΠϯʹΑͬͯۜɾܡɾۚͷ ผ͕Ͱ͖ͳ͍ʢਖ਼ղۜʣ ่Ε͗ͨ͢ϑΥϯτผͰ͖ͳ͍ ʢਖ਼ղ߳ʣ
·ͱΊ • ൫໘ݕग़: ྠֲݕग़ + ઢݕग़ + ম͖ͳ·͠๏ • ম͖ͳ·͠ʹ10ඵ͔͔Δͷ͕ωοΫ
• Ϛε༰ਪఆ: CNN • ςετσʔλͰ 95 % ఔ • 99.9 % ·ͩԕ͍
λεΫ1 ۜ/ܡ/ۚͷࣝผ • ୯Ұͷۨը૾͚͔ͩΒࣝผ͢ΔͷʢਓؒͰʣෆՄೳ • ਓؒ൫্ʹݟ͑Δଞͷ͔ۨΒɺσβΠϯͷΛਪఆ͍ͯ͠Δʁ • ͚ۨͩͰͳ͘ɺ(ۨ, [ώϯτۨ]) Λೖྗͱ͢Δ
NN Λߏங͢ΕՄೳʁ ۚʁۜʁܡʁ -> σβΠϯʹΑͬͯͲͪΒ͋Γ͑Δ
λεΫ2 ࣋ͪۨͷݕग़ • ࣋ͪۨྖҬΛఆٛ: • ઌख: ൫໘ͷӈ/Լ • ޙख: ൫໘ͷࠨ/্
• ҙͷҐஔʹ͋Δۨͷݕग़ٕज़͕ ඞཁ • Object Detection