Slide 1

Slide 1 text

iOSͱσΟʔϓϥʔχϯά ϑϦʔϥϯεiOSΤϯδχΞ అ मҰ @shu223 2016.8.31 iOSDCϦδΣΫτίϯ

Slide 2

Slide 2 text

అ मҰ • iOSઐۀϑϦʔϥϯε • ϒϩάʰOver&Out ͦͷޙʱ • ஶॻ - ʰiOS×BLEɹCore Bluetoothϓϩάϥϛϯάʱ - ʰiOSΞϓϦ։ൃ ୡਓͷϨγϐ100ʱ

Slide 3

Slide 3 text

͓ख఻͍ͨ͠ϓϩμΫτʢBLEؔ࿈ʣ Music for the Deaf BONX

Slide 4

Slide 4 text

σΟʔϓϥʔχϯάͱ͸

Slide 5

Slide 5 text

ɾɾɾͷલʹɺ χϡʔϥϧωοτϫʔΫͱ͸

Slide 6

Slide 6 text

• ೴ਆܦͷߏ଄Λ໛ͨ͠Ϟσϧ Neural Network: ਆܦճ࿏໢ ਆܦࡉ๔ ύʔηϓτϩϯ

Slide 7

Slide 7 text

χϡʔϥϧωοτϫʔΫ • ύʔηϓτϩϯΛෳࡶʹ૊Έ߹ΘͤͨωοτϫʔΫ

Slide 8

Slide 8 text

σΟʔϓϥʔχϯά • χϡʔϥϧωοτϫʔΫͷߏ଄Λਂ͘ʢଟ૚ʹʣͨ͠΋ͷ

Slide 9

Slide 9 text

ΞδΣϯμ • σΟʔϓϥʔχϯάͷར༻ྫ • σΟʔϓϥʔχϯά on iOSʁ • ͱΓ͋͑ͣࢼͯ͠ΈΔ • χϡʔϥϧωοτϫʔΫΛ࣮૷ͯ͠ΈΔ • iOSͰ࢖͑ΔσΟʔϓϥʔχϯάͷOSS

Slide 10

Slide 10 text

σΟʔϓϥʔχϯάͷར༻ྫ

Slide 11

Slide 11 text

ը૾ͷࣝผ Qiita౳Ͱ্͕͍ͬͯΔࣄྫɿ • ೣͷ඼छࣝผ • ΞΠυϧͷإΛࣝผ • ΞχϝͷΩϟϥΛࣝผ

Slide 12

Slide 12 text

࿡ͭࢠΛࣝผ

Slide 13

Slide 13 text

ελΠϧม׵ • ը෩ม׵ • DeepDream • ֆըΛࣗಈੜ੒ - Ϩϯϒϥϯτͷ"৽࡞"Λग़ྗɻֆ۩ͷོى΋3D࠶ݱ

Slide 14

Slide 14 text

Prisma

Slide 15

Slide 15 text

ͦͷଞը૾ؔ࿈ • നࠇը૾ͷࣗಈ࠼৭ • ը૾ͷࣗಈิ׬ • ࣗಈΩϟϓγϣϯ෇༩

Slide 16

Slide 16 text

Auto Colorization

Slide 17

Slide 17 text

ը૾Ҏ֎ • ήʔϜ߈ུɾɾɾAlphaGO • גՁͷਪఆ • ఱؾͷ༧ଌ • Ի੠ೝࣝ • จࣈೝࣝ • ʙͬΆ͍ηϦϑɾจষͷࣗಈੜ੒

Slide 18

Slide 18 text

→ ͱʹ͔͘৭ʑͳʮͳΜ ͔͍͢͝ʯ͜ͱ͕Ͱ͖Δ

Slide 19

Slide 19 text

→ iOSͰ΋σΟʔϓϥʔχ ϯάͰͳΜ͔΍Γ͍ͨʂ

Slide 20

Slide 20 text

͜Ε·Ͱ • ଟ૚χϡʔϥϧωοτϫʔΫͷʮֶशʯʢʹਂ૚ֶशʣʹ ͸๲େͳܭࢉΛཁ͢Δ • iOSͱ͍͏ϞόΠϧσόΠεʹ͸ෆ޲͖

Slide 21

Slide 21 text

2016೥ • GoogleͷػցֶशϥΠϒϥϦʮTensorFlowʯ ͕iOSΛαϙʔτ • ը෩ม׵ΞϓϦPrisma͕ΦϑϥΠϯରԠ

Slide 22

Slide 22 text

iOS 10 χϡʔϥϧωοτϫʔΫͷػೳ܈͕௥Ճ͞Εͨ • BNNS - Accelerate Framework - iOSͷϓϩηοαʹ࠷దԽ͞Εͨߴ଎ԋࢉϑϨʔϜϫʔΫ • CNN - Metal Performance Shaders Framework - GPUͰͷߴ଎ॲཧΛߦ͏ϑϨʔϜϫʔΫ

Slide 23

Slide 23 text

→ ֶशࡁΈͷχϡʔϥϧ ωοτϫʔΫͷܭࢉ͙Β ͍͸iOSଆͰ΍ͬͯ΋͍ ͍Μ͡Όͳ͍ʁ

Slide 24

Slide 24 text

ͱΓ͋͑ͣiOS্ͰσΟʔ ϓϥʔχϯάΛࢼͯ͠ΈΔ

Slide 25

Slide 25 text

Step1: TensorFlowͷαϯϓϧΛࢼ͢ • TensorFlowΛiOS޲͚ʹϏϧυ͢Δ • ࠷৽ϦϦʔεʢv0.10.0 RC0ʣͰ͸εΫϦϓτҰൃ

Slide 26

Slide 26 text

ʢσϞʣ

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Step2: TensorFlowͷֶशࡁΈϞσϧ Λर͖ͬͯͯࢼ͢ • ֶशࡁΈϞσϧ xxx.pb ϑΝΠϧΛ୳͖ͯͯ͠TensorFlow ͷαϯϓϧʹ૊ΈࠐΉ • ಡΈࠐΉϑΝΠϧ໊΍ύϥϝʔλΛॻ͖׵͑Δ͚ͩ • ৄࡉ: TensorFlowͷֶशࡁΈϞσϧΛर͖ͬͯͯiOSͰར ༻͢Δ - Qiita

Slide 29

Slide 29 text

र͖ͬͯͨϞσϧ1: ՖͷछྨΛࣝผ TVOqPXFST

Slide 30

Slide 30 text

र͖ͬͯͨϞσϧ2: ಈ෺΍৐Γ෺Λࣝผ DPX ˞ϝϞϦ(#ͳ͍ͱ Ϋϥογϡ͠·͢

Slide 31

Slide 31 text

iOSͰχϡʔϥϧωοτ ϫʔΫΛ࣮૷ͯ͠ΈΔ

Slide 32

Slide 32 text

BNNS • Basic Neural Network Subroutines • collection of functions that you use to implement and run neural networks, using previously obtained training data. • iOS 10 Ͱ Accelerate Framework ʹ৽ن௥Ճ͞Εͨ • Accelerate: CPUͰߴ଎ܭࢉΛߦ͏ͨΊͷϑϨʔϜϫʔΫ

Slide 33

Slide 33 text

CNNʢMPSCNNʣ • Convolutional neural network • iOS 10 Ͱ MetalPerformanceShaders Frameworkʹ ৽ن௥Ճ͞Εͨ • MetalPerformanceShaders: GPUͰߴ଎ܭࢉΛߦ͏ͨΊ ͷϑϨʔϜϫʔΫ

Slide 34

Slide 34 text

ެࣜαϯϓϧ • MPSCNNHelloWorld - MPSCNNͰखॻ͖਺ࣈೝࣝ • MetalImageRecognition - MPSCNN+InceptionϞσϧͰը૾ೝࣝ w γϯϓϧͰཧղ͠΍͍͢ w 88%$Ͱղઆ͋Γ

Slide 35

Slide 35 text

MPSCNNHelloWorldͷDeepCNNͷ࣮૷ ಛ௃ྔͷ৞ΈࠐΈΛߦ͏૚ MPSCNNConvolution ϨΠϠͷॖখΛߦ͍ɺ ѻ͍΍͘͢͢ΔͨΊͷ૚ MPSCNNPooling ಛ௃ྔ͔Βɺ ࠷ऴతͳ൑ఆΛߦ͏૚ MPSCNNFullyConnected

Slide 36

Slide 36 text

ʢσϞʣ

Slide 37

Slide 37 text

iOSͰ࢖͑ΔσΟʔϓϥʔχϯά/ χϡʔϥϧωοτϫʔΫͷOSS • iOS 9ҎԼͰ΋࢖͑ΔΦʔϓϯιʔεͷDL/NNϥΠϒϥϦ ͸ͨ͘͞Μ͋Δ • Metal or AcceleratedϑϨʔϜϫʔΫͰߴ଎Խͯ͋͠Δ΋ ͷ΋ଟ͍ • SwiftͰॻ͔Ε͍ͯΔ΋ͷ΋ଟ͍

Slide 38

Slide 38 text

100StarҎ্ͷDL/NNͷOSS ʢϝϯς͞Εͳ͔ͬͨΓɺαϯϓϧ͕ͳ͔ͬͨΓɺػೳ͕଍Γͳ͔ͬͨΓʜʣ

Slide 39

Slide 39 text

·ͱΊ • σΟʔϓϥʔχϯά͍͢͝ɺ͔͍͍ͬ͜ɺiOSͰ΋࢖͍͍ͨ • iOSαΠυͰσΟʔϓϥʔχϯάͷֶशࡁΈϞσϧΛར༻ͯ͠ χϡʔϥϧωοτϫʔΫͷܭࢉΛߦ͏έʔε͸૿͖͑ͯͦ͏ • ֶशࡁΈϞσϧΛर͖ͬͯͯͱΓ͋͑ͣࢼ͢ • iOS 10Ͱ͸MPSͷCNNΛ࢖ͬͯGPU Acceleratedͳχϡʔϥ ϧωοτϫʔΫ΋࣮૷Ͱ͖Δ • iOS 9ҎԼͰ΋࢖͑ΔΦʔϓϯιʔεϥΠϒϥϦ΋৭ʑͱ͋Δ

Slide 40

Slide 40 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ • Twitter: @shu223 • GitHub: shu223 • Email: [email protected]