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
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
270
Type-safe IaC for Dart
coborinai
0
170
公式ドキュメントの歩き方etc
coco_se
1
120
複数プロダクト組織のAIネイティブ化における戦略 / AICon2026_kude
rakus_dev
0
260
タスクの複雑さでモデルを選ぶ ── Thompson Samplingで動かす“トークン/コスト最適化
satohy0323
0
600
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
120
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
690
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
360
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
150
穢れた技術選定について
watany
18
5.8k
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
170
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
240
Featured
See All Featured
Done Done
chrislema
186
16k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Producing Creativity
orderedlist
PRO
348
40k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Claude Code のすすめ
schroneko
67
230k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Unsuck your backbone
ammeep
672
58k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to build a perfect <img>
jonoalderson
1
5.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