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
970
ホワイトジグソーパズル を解く(WIP)
Kei Hirata
July 10, 2016
Tweet
Share
More Decks by Kei Hirata
See All by Kei Hirata
今からはじめるボードゲーム解析
masuwo3
0
1.4k
TensorFlowと機械学習の今
masuwo3
0
820
Other Decks in Technology
See All in Technology
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
470
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
860
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.3k
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
140
Qiita Bash アドカレ LT #1
okaru
0
170
BidiAgent と Nova 2 Sonic から考える音声 AI について
yama3133
2
150
技術選定、下から見るか?横から見るか?
masakiokuda
0
190
国井さんにPurview の話を聞く会
sophiakunii
1
350
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
850
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
530
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
350
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
170
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
24k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
[SF Ruby Conf 2025] Rails X
palkan
0
700
How to make the Groovebox
asonas
2
1.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
390
The SEO identity crisis: Don't let AI make you average
varn
0
47
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
140
Chasing Engaging Ingredients in Design
codingconduct
0
95
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
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