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
ホワイトジグソーパズル を解く(WIP)
Search
Kei Hirata
July 10, 2016
Technology
0
820
ホワイトジグソーパズル を解く(WIP)
Kei Hirata
July 10, 2016
Tweet
Share
More Decks by Kei Hirata
See All by Kei Hirata
今からはじめるボードゲーム解析
masuwo3
0
1.1k
TensorFlowと機械学習の今
masuwo3
0
720
Other Decks in Technology
See All in Technology
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
690
なぜ NOT A HOTEL が Web3 に取り組むのか - NOT A HOTEL TECH TALK
ynunokawa
0
160
Terraformあれやこれ/terraform-this-and-that
emiki
4
290
0→1開発における技術選定において一番大切なこと
bicstone
1
320
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
190
「共通基盤」を超えよ! 今、Platform Engineeringに取り組むべき理由
jacopen
25
5.8k
[PlatformCon 24] Platform Orchestrators: The Missing Middle of Internal Developer Platforms?
danielbryantuk
1
170
Four keys改善の取り組み事例紹介
sansantech
PRO
3
230
Databricks:『生成AI World Cup』のご案内
databricksjapan
2
140
アプリがつくるNOT A HOTELブランド
hokuts
1
450
PHP"オレ"カンファレンスの告知
ysknsid25
0
350
カオナビの利用実績をアウトカムへつなげる旅 / example-of-data-management-startup-in-kaonavi
kaonavi
0
120
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
72
5.1k
Designing for humans not robots
tammielis
247
25k
What the flash - Photography Introduction
edds
64
11k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Product Roadmaps are Hard
iamctodd
43
9.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
For a Future-Friendly Web
brad_frost
171
8.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Visualization
eitanlees
135
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Transcript
ϗϫΠτδάιʔύζϧ Λղ͘(WIP) AWSίϯαϧςΟϯά෦ ฏాܓ 1 Developer.IO Sapporo 2016 2016/7/10
ࣗݾհ ໊લ : ฏా ܓ (@masuwo3) ॴଐ : ϝϯόʔζ։ൃνʔϜ ݱࡏ
: 20155݄ΑΓΫϥεϝιουೖࣾ աڈ : ಛॿڭ, SE, ITߨࢣ, etc… 2
࠷ۙͷ͓ࣄ • ϝϯόʔζ։ൃνʔϜͱͯ͠ • CMϝϯόʔζͷαʔϏε֦ॆ • ৽ͨͳٕज़ͷௐࠪͳͲ • σʔλੳҊ݅ •
ͱ͋Δ͓ళͷͪ࣌ؒ༧ଌͳͲ 3
࠷ۙͷΈ • ϗϫΠτδάιʔύζϧΛԿʹۤ࿑ͤͣʹ ղ͔͘Λߟ͍͑ͯ·͢ɻ 4 ࠓ͜ͷΛ͠·͢
͓͜ͱΘΓ ϗϫΠτδάιʔύζϧͷɺݱࡏऔΓ Έத(WIP)Ͱ͋Γɺղܾʹࢸ͍ͬͯ·ͤ Μɻ ຊൃද͢Δ༰ݱࡏ·ͰͷऔΓΈʹ͍ͭ ͯͷதؒൃදʹͳΓ·͢ɻ 5
ϗϫΠτδάιʔύζϧ 6 ७നࠈ େԦ (49x72cm) / גࣜձࣾ ϏόϦʔ
ϗϫΠτδάιʔύζϧ • ੈք࠷খͷϐʔεαΠζ • ༷ͳ͠ • ཪදͷ۠ผͳ͠ • 2000ϐʔε •
ʹ͍͍ͩͨ6ϲ݄ 7
ͳ͍ͥ͠ͷ͔ 8 • ༷͕ͳ͍ͨΊɺ৭ͳͲ͔Βେ·͔ͳॴΛ ಛఆͰ͖ͳ͍ • ਤ͋Δ͕ɺͦΕͧΕͷϐʔεͷܗঢ়͕ ࣅ௨͍ͬͯΔͨΊɺਓؒͷͰॴΛಛఆͰ ͖ͳ͍ •
݁Ռͱͯ͠ɺͻͨ͢Βϐʔεಉ࢜Λࢼߦࡨޡ͠ ͯΈ߹ΘͤΔ͔͠ͳ͍
ผͷํ๏Ͱղ͍ͯΈ͍ͨ • ػցͷͳΒͲ͏͔ʁ • ը૾ೝࣝΛ༻͍ͯɺਤ͔ΒϐʔεͷҐஔ Λಛఆ͢Δ͜ͱͰ͖ͳ͍͔ʁ • ྨࣅͨ͠ϐʔεΛάϧʔϐϯά͢Δ͜ͱͰɺ ࢼߦճΛݮ͢Δ͜ͱͰ͖ͳ͍͔ʁ 9
10 ͬͯΈΔ
ඞཁͳ࡞ۀͷཧ 11 Χϝϥ͔Βϐʔεը૾ ΛऔΓࠐΈ ϐʔεͷྠֲΛநग़ ਤը૾ΛऔΓࠐΈ શϐʔεͷҐஔͱ ྠֲΛநग़ Ϛονͨ͠ϐʔεͷ ҐஔใΛදࣔ
ϚονϯάͰ ྨࣅͨ͠ϐʔεΛ୳ࡧ
࣮ݧڥʹ͍ͭͯ 12 WebΧϝϥ ύζϧϐʔε PC
࣮ݧڥʹ͍ͭͯ • webΧϝϥ • LOGICOOL C615 • ΧϝϥͶ͡ʹରԠ • ݱࡏସΛݕ౼த
• ΞʔϜ • αϯϫαϓϥΠ CR-LACAM2 • ϑϨΩγϒϧΞʔϜ + ΧϝϥͶ͡ରԠ 13
ٕज़తഎܠ • ը૾ॲཧܥͷࣝͳ͠ • OpenCVͷར༻ࠓճॳΊͯ • ཧతͳ෦ͷཧղޙ͍ • ·ͣಈ͔ͯ͠ΈΔ 14
ਤ͔ΒϐʔεΛநग़ • ύοέʔδ͔Β ਤͷ෦ΛεΩϟϯ • ϩΰʹ͔͔ͬͨ෦ ࠇ͘ృΓͭͿ͠ɺ நग़ͷର֎ͱ͢Δ • OpenCVͷྠֲநग़
Λ͍ɺϐʔεΛऔ ಘ 15
ਤ͔ΒϐʔεΛநग़ • ઢΛิ͢ΔͨΊɺΨγΞϯϑΟϧλΛ͔͚ɺ 2ԽॲཧΛߦ͏ɻ 16
17 ਤ͔ΒϐʔεΛநग़
webΧϝϥ͔ΒϐʔεΛநग़ ಉ༷ͷॲཧͰwebΧϝϥ͔ΒϐʔεΛநग़ 18
ྨࣅͨ͠ϐʔεͷҐஔΛදࣔ ਤ͔Βࢦఆͨ͠ϐʔεΛۣܗͰғΉ => ྨࣅͨ͠ϐʔεͷҐஔΛऔಘ 19
ඞཁͳ࡞ۀͷཧ 20 Χϝϥ͔Βϐʔεը૾ ΛऔΓࠐΈ ϐʔεͷྠֲΛநग़ ਤը૾ΛऔΓࠐΈ શϐʔεͷҐஔͱ ྠֲΛநग़ Ϛονͨ͠ϐʔεͷ ҐஔใΛදࣔ
̎ͭͷϐʔεΛ Ϛονϯά
ϐʔεͷϚονϯά • ݱࡏऔΓΈத • ࠓճݱঢ়ͱʹ͍ͭͯͷհ 21
Ϛονϯάख๏ͷݕ౼ • ςϯϓϨʔτϚονϯά • ܗঢ়ೝࣝ 22
23 Ϛονϯάख๏ • ςϯϓϨʔτϚονϯά • ؍ଌը૾ʹରը૾ΛॏͶ߹Θͤɺಛఆ ͷύλʔϯΛݕग़͢Δ • ϐʔεͷ͖ɺαΠζΛ؍ଌը૾ʹ߹Θͤ Δඞཁ͕͋Δ
Ϛονϯάख๏ • ܗঢ়ೝࣝ • ରͷܗঢ়͔ΒಛΛநग़͠ɺͦͷྨࣅ Λ؍ଌը૾͔Βݕग़͢Δ • ଟ͘ͷख๏͕ճసɺαΠζͷมԽʹରͯ͠ ෆมͳಛྔΛ༻͍Δ 24
Ϛονϯάख๏ OpenCVͰͷಛநग़ • HuMoment • SURF • SIFT • AKAZE
25
Ϛονϯάख๏ • HuMoment • 7ͭͷಛྔ͔ΒϚονϯάΛߦ͏ • cv2.matchShapes() Ͱαϙʔτ • ͱΓ͋͑ͣࢼͤͦ͏
• ѻ͏ಛྔ͕গͳ͍ͨΊɺൺֱతߴ • ϐʔεͷܗঢ়ෳࡶͰͳ͍ͷͰɺඞཁͳ ಛྔͦ͜·Ͱେ͖͘ͳ͍ͱ༧ 26
HuMomentͰͷϚονϯάͷݕূ • ݕূ cv2.matchShape() Λͬͯɺ࣮ࡍʹwebΧϝϥ ͔ΒϐʔεͷྠֲΛநग़͠ɺશϐʔεͱͷྨࣅ ΛௐΔ 27
HuMomentͰͷϚονϯάͷݕূ • ݁Ռ 28 ݕग़ͨ͠ϐʔε ྨࣅͷϐʔε
HuMomentͰͷϚονϯάͷݕূ • ྨࣅ্Ґ10ϐʔε 29 ߹Θͳ͍
HuMomentͰͷϚονϯάͷݕূ • ྨࣅϥϯΩϯά • 0.038687311146999165 • 0.07013378434926015 • 0.07227741099761925 •
0.09835113125024947 • 0.09837605716041975 • 0.10063178843488196 • 0.10132249448457387 • 0.10333467497456036 • 0.10475583919998341 • 0.10549528521851323 … • 0.11716003199066888 30
ݪҼௐࠪ • ରϐʔεͷྠֲ͕͏·͘औΕ͍ͯͳ͍ʁ • Ұ؟ϨϑͰϐʔεΛ࠶औಘ • ݁ՌมΘΒͣ 31
ݪҼௐࠪ • ಛྔநग़ͷख๏͕ෆదʁ • AKAZEͰࢼͯ͠ΈΔ • ෳͷಛͰࢄ • ॲཧʹ͔ͳΓͷ͕͔͔࣌ؒΔ 32
ݪҼௐࠪ • ͦͦܗঢ়ೝࣝͰ͍͍ͷ͔ʁ • HuMomentʹΑΔܗঢ়ೝࣝ • ಛྔͷྨࣅͱࢹ֮తͳྨࣅ͕૾Ҏ্ʹΕ͍ͯΔ • HuMomentͷཧతͳҙຯ͕ཧղͰ͖͍ͯͳ͍ •
ਓؒͷײ͔֮Β͔ͳΓΕͨ݁Ռ • ςϯϓϨʔτϚονϯάͷํ͕ʹ͍͋ͬͯΔͷͰʁ • ײ֮ʹ͍ۙྨࣅϐʔεʹͳΔͱ૾ • ޡݕͨ͠ͱͯ͠ɺྨ͍͢͠ 33
ࠓޙͷ՝ (ςϯϓϨʔτϚονϯά) • ϏσΦΧϝϥՃߪೖ • ޫֶϨϯζ͖ɺPCʹଓՄೳ • ྠֲநग़ͷਫ਼͕େ͖͘Өڹ͢Δ 34
ࠓޙͷ՝ (ςϯϓϨʔτϚονϯά) • αΠζิਖ਼ • ਤϐʔεͷ໘ੵ֤ลͳͲ͔Βิਖ਼ • ͖ิਖ਼ • OpenCVϥΠϒϥϦͰิਖ਼
• ͖ͷݕग़cv2.minAreaRect() • ͖ิਖ਼cv2.warpAffine() 35
ࠓޙͷ՝ (ςϯϓϨʔτϚονϯά) • ճసʹ͍ͭͯ • 90ຖͷճస(4) x ཪද(2) શͯͰςϯ ϓϨʔτϚονϯάΛ࣮ࢪ
• ࠷ͯ·Γ͕ྑ͍݁ՌΛ࠾༻ 36
ࠓޙͷ՝ (ςϯϓϨʔτϚονϯά) • ݒ೦ • ͍ۙϐʔεͷ۠ผ͕Ͳ͜·ͰͰ͖Δ͔ʁ • ྨํ๏ʹ͍ͭͯݕ౼த… 37
None