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
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
会社紹介資料 / Sansan Company Profile
sansan33
PRO
23
430k
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
220
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.3k
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
210
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
400
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
120
20分でわかるセキュアAPI
nwiizo
2
260
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
270
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.2k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
LanceDB入門
mocobeta
7
460
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
A Modern Web Designer's Workflow
chriscoyier
698
190k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
460
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
460
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
540
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
420
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
560
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
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