Slide 1

Slide 1 text

7JTJPOͰมΘΔJ04ͷΞϓϦ։ൃ ాத޹໌ ϞόΠϧΞϓϦαʔϏε෦

Slide 2

Slide 2 text

ࣗݾ঺հ ాத޹໌ wϞόΠϧΞϓϦαʔϏε෦ w J04ΞϓϦΤϯδχΞ w αʔόʔαΠυΞϓϦΤϯδχΞ wαʔόʔϨε։ൃ෦ w ΞϓϦέʔγϣϯΤϯδχΞ

Slide 3

Slide 3 text

ࣗݾ঺հ ݄ΑΓ෱ԬΦϑΟεͷϝϯόʔ ͱͯ͠ಇ͍͍ͯ·͢

Slide 4

Slide 4 text

Visionʹ͍ͭͯ

Slide 5

Slide 5 text

ࣗݾ঺հ

Slide 6

Slide 6 text

88%$Ͱൃද͞Εͨ಺༰ ৽نͰ௥Ճ͞Εͨػೳ܈ w4XJGU w"3,JU w7JTJPO w$PSF.- w.VTJD,JU w'JMFT

Slide 7

Slide 7 text

7JTJPOʹ͍ͭͯ 7JTJPOͱ͸ wߴੑೳͳը૾ղੳϑϨʔϜϫʔΫ wΦϒδΣΫτͷݕग़ɾ௥੻ɾ෼ྨͳͲʹରԠ wJ044%,͔Βར༻Մೳ w$PSF.-ʢޙड़ʣͱ࿈ܞ

Slide 8

Slide 8 text

إݕग़

Slide 9

Slide 9 text

إݕग़ʢখ͍͞إʣ

Slide 10

Slide 10 text

إݕग़ʢԣإʣ

Slide 11

Slide 11 text

إݕग़ʢ෦෼తด࠹ʣ

Slide 12

Slide 12 text

إݕग़ʢ๧ࢠͱαϯάϥεʣ

Slide 13

Slide 13 text

إಛ௃఺ݕग़

Slide 14

Slide 14 text

إಛ௃఺ݕग़

Slide 15

Slide 15 text

إಛ௃఺ݕग़

Slide 16

Slide 16 text

ը૾ϨδετϨʔγϣϯʢෳ਺ͷσʔλΛͭͷ࠲ඪܥʹม׵ʣ

Slide 17

Slide 17 text

ۣܗݕग़

Slide 18

Slide 18 text

όʔίʔυݕग़

Slide 19

Slide 19 text

ςΩετݕग़

Slide 20

Slide 20 text

ΦϒδΣΫττϥοΩϯά

Slide 21

Slide 21 text

VisionͰͷը૾ղੳ

Slide 22

Slide 22 text

ը૾ղੳ 7JTJPOΛར༻ͨ͠ը૾ղੳͷϓϩηε w3FRVFTU w3FRVFTU)BOEMFS w0CTFSWBUJPO

Slide 23

Slide 23 text

ը૾ղੳ 3FRVFTU wը૾ʹରͯ͠ͲͷΑ͏ͳཁٻΛߦ͏͔ʹΑͬͯΫϥεΛ࢖͍෼͚Δ
 إݕग़ 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU إϥϯυϚʔΫݕग़ 7/%FUFDU'BDF-BOENBSLT3FRVFTU ը૾ϨδετϨʔγϣϯ 7/*NBHF3FHJTUSBUJPO3FRVFTU ۣܗݕग़ 7/%FUFDU3FDUBOHMFT3FRVFTU όʔίʔυݕग़ 7/%FUFDU#BSDPEFT3FRVFTU ςΩετݕग़ 7/%FUFDU5FYU3FDUBOHMFT3FRVFTU ΦϒδΣΫττϥοΩϯά 7/5SBDL0CKFDU3FRVFTU

Slide 24

Slide 24 text

ը૾ղੳ 3FRVFTU)BOEMFS wཁٻ͔ΒฦͬͯདྷΔॲཧΛϋϯυϦϯά͢Δ
 ը૾ͷղੳॲཧΛϋϯυϦϯά ɹ7/*NBHF3FRVFTU)BOEMFS τϥοΩϯά΍ը૾ϨδετϨʔγϣϯͷϋϯυϦϯά ɹ7/4FRVFODF3FRVFTU)BOEMFS

Slide 25

Slide 25 text

ը૾ղੳ 0CTFSWBUJPO wཁٻ͔ΒฦͬͯདྷΔ݁Ռ
 إݕग़ 7/'BDF0CTFSWBUJPO إϥϯυϚʔΫݕग़ 7/'BDF0CTFSWBUJPO ը૾ϨδετϨʔγϣϯ 7/*NBHF"MJHONFOU0CTFSWBUJPO ۣܗݕग़ 7/3FDUBOHMF0CTFSWBUJPO όʔίʔυݕग़ 7/#BSDPEF0CTFSWBUJPO ςΩετݕग़ 7/5FYU0CTFSWBUJPO ΦϒδΣΫττϥοΩϯά 7/%FUFDUFE0CKFDU0CTFSWBUJPO

Slide 26

Slide 26 text

ը૾ղੳ ࣮૷ wཉ͍͠ը૾ղੳʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { // TODO: VNFaceObservationΛݩʹॲཧΛ͢Δ } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) }

Slide 27

Slide 27 text

ը૾ղੳ ࣮૷ wཉ͍͠ը૾ղੳʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { // TODO: VNFaceObservationΛݩʹॲཧΛ͢Δ } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) } إݕग़༻ͷ7/3FRVFTUΛ࡞੒

Slide 28

Slide 28 text

ը૾ղੳ ࣮૷ wཉ͍͠ը૾ղੳʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { // TODO: VNFaceObservationΛݩʹॲཧΛ͢Δ } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) } 7/*NBHF3FRVFTU)BOEMFS࡞੒࣌ʹإݕग़Λߦ͍ͨ ͍ը૾Λࢦఆ

Slide 29

Slide 29 text

ը૾ղੳ ࣮૷ wཉ͍͠ը૾ղੳʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { // TODO: VNFaceObservationΛݩʹॲཧΛ͢Δ } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) } 3FRVFTUΛҾ਺ʹࢦఆͯ͠QFSGPSNΛίʔϧ

Slide 30

Slide 30 text

ը૾ղੳ ࣮૷ wཉ͍͠ը૾ղੳʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { // TODO: VNFaceObservationΛݩʹॲཧΛ͢Δ } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) } ը૾͔Βࢦఆͨ͠ϦΫΤετʹϚονͨ݁͠Ռ͕ม͑ ͯདྷΔͱɺSFRVFTUͷSFTVMUTʹղੳ݁Ռ͕ฦͬͯ͘Δ

Slide 31

Slide 31 text

ը૾ղੳ ࣮૷ wࢼ͠ʹ݁ՌΛड͚औͬͯΈΔ
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { print(observation) } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) }

Slide 32

Slide 32 text

ը૾ղੳ ࣮૷ wࢼ͠ʹ݁ՌΛड͚औͬͯΈΔ
 let request = VNDetectFaceRectanglesRequest { (request, error) in for observation in request.results as! [VNFaceObservation] { print(observation) } if let cgImage = image.cgImage { let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) try? handler.perform([request]) } 68149739- D1B0-4E89-8FB2-44F33969FAED 1 [0.557461 0.616566 0.069802 0.0930694] ID=0 D113842C- B9CA-4D70-88CE-74814860D383 1 [0.722581 0.400897 0.0740046 0.0986728] ID=0 69A72E48-0270-4687- B0B4-4F57A8E5DEA3 1 [0.28446 0.639232 0.0771421 0.102856] ID=0

Slide 33

Slide 33 text

ը૾ղੳ 7/'BDF0CTFSWBUJPOͷར༻ wը૾αΠζʹରԠ͢Δൺ཰Ͱݕग़Օॴͷۣܗ৘ ใ͕ฦͬͯདྷΔ w ݪ఺ w αΠζ D113842C- B9CA-4D70-88CE-74814860D383 1 [0.722581 0.400897 0.0740046 0.0986728] ID=0

Slide 34

Slide 34 text

demo

Slide 35

Slide 35 text

7JTJPOͷ·ͱΊ 7JTJPOͰͰ͖Δ͜ͱ w3FRVFTUΛੜ੒͢Δ wը૾σʔλΛ౉͠3FRVFTU)BOEMFSΛੜ੒͢Δ w3FRVFTU)BOEMFSʹ3FRVFTUΛ౉͠ɺղੳॲཧΛ࣮ ߦ͢Δ w0CTFSWBUJPO͔Β݁ՌΛड͚औΔ w݁ՌΛը૾ʹඳըͨ͠ΓΧϝϥΛར༻ͯ͠ϦΞϧλΠ Ϝʹղੳ͢Δͱ͍͏ॲཧΛߦ͍͍ͨ৔߹͸ࣗલͰ࣮૷ ͢Δඞཁ͕͋Γ·͢

Slide 36

Slide 36 text

Vision ͱ Core ML ͷؔ܎

Slide 37

Slide 37 text

88%$Ͱൃද͞Εͨ಺༰ ৽نͰ௥Ճ͞Εͨػೳ܈ w4XJGU w"3,JU w7JTJPO w$PSF.- w.VTJD,JU w'JMFT

Slide 38

Slide 38 text

$PSF.-ʹ͍ͭͯ $PSF.-ͱ͸ wػցֶश༻ϑϨʔϜϫʔΫ wֶशϞσϧΛJ04NBD04ͷΞϓϦͰར༻͢ Δࡍʹ։ൃऀ͕ػցֶशʹର͢Δઐ໳తͳ஌ࣝ Λඞཁͱͤͣʹѻ͑ΔΑ͏ʹͨ͠

Slide 39

Slide 39 text

$PSF.-ʹ͍ͭͯ $PSF.-ͱ͸ w7JTJPO/-1Ͱར༻͞Ε͓ͯΓɺ։ൃऀ͕௚ ઀৮Δͷ͕ࠔ೉ͳػೳ܈Λϥοϓ͍ͯ͠Δ

Slide 40

Slide 40 text

$PSF.-ʹ͍ͭͯ ֶशϞσϧΛΞϓϦʹ૊ΈࠐΊΔ wֶशϞσϧΛΞϓϦ಺ʹ૊ΈࠐΈɺֶश݁ՌΛ ड͚औΔػೳʹಛԽ͍ͯ͠ΔͨΊɺҎԼͷϝϦο τ͕͋Δ w ωοτϫʔΫͷঢ়ଶʹґଘͤͣɺ݁ՌΛฦͤΔ w ॲཧ଎౓͸σόΠεͷ$16ʹґଘ͢ΔͨΊɺࠓޙͷσόΠε ͷਐԽʹΑΓߴ଎ʹॲཧ͕Մೳ w ֶशϞσϧ΁ͷΠϯϓοτʢը૾΍ݴޠʣΛαʔόʔʹૹΒ ͳ͍ͨΊɺϓϥΠόγʔ΁഑ྀͰ͖Δ

Slide 41

Slide 41 text

$PSF.-ʹ͍ͭͯ ΞϓϦͰར༻Ͱ͖Δܗࣜ΁ͷม׵ wֶशϞσϧΛ$PSF.-NPEFMʢ.-.0%&-ܗ ࣜʣ΁ม׵͠ɺ9DPEFʹ૊ΈࠐΉ͜ͱͰɺ .-.PEFMͱ͍͏໊ͷΫϥεͱͯ͠ར༻͢Δ͜ ͱ͕Ͱ͖Δ w.-.PEFMͷFYUFOTJPOʹࢦఆͨ͠63-͔Β .-.0%&-Λऔಘ͠ɺίϯύΠϧ͢Δػೳ͕ ͋ΔͨΊɺΞϓϦϦϦʔεޙͷֶशϞσϧͷม Խʹ΋ରԠͰ͖Δ

Slide 42

Slide 42 text

$PSF.-ʹ͍ͭͯ

Slide 43

Slide 43 text

$PSF.-ʹ͍ͭͯ ରԠ͍ͯ͠ΔֶशϞσϧ w֤छͷػցֶशϥΠϒϥϦ͕ग़ྗֶͨ͠शϞσ ϧΛαϙʔτ

Slide 44

Slide 44 text

ֶशϞσϧΛར༻ͯ͠ΈΔ

Slide 45

Slide 45 text

7JTJPO$PSF.- $PSF.-Ͱ࢖͑ΔֶशϞσϧΛखʹೖΕ Δํ๏ wطଘͷֶशϞσϧΛར༻͢Δ wػցֶशΤϯδχΞʹґཔ͠ɺֶशϞσϧΛੜ ੒ͯ͠΋Β͏ wࣗྗͰؤுΔ

Slide 46

Slide 46 text

7JTJPO$PSF.- طଘͷֶशϞσϧͷೖख w"QQMFͷϖʔδʹ.-.0%&-ܗࣜͷֶशϞσ ϧ͕ଘࡏ͢ΔͷͰɺ͙͢ʹར༻͢Δ͜ͱ͕Ͱ͖ ·͢

Slide 47

Slide 47 text

7JTJPO$PSF.- طଘͷֶशϞσϧͷೖख w෺ମೝࣝ w .PCJMF/FU w 4RVFF[F/FU w 3FT/FU w *ODFQUJPOW wγʔϯೝࣝ w 1MBDF(PPH-F/FU

Slide 48

Slide 48 text

7JTJPO$PSF.- طଘͷֶशϞσϧͷೖख w"XFTPNF$PSF.-.PEFMTͰެ։͞Ε͍ͯ ΔֶशϞσϧΛར༻͢Δ w IUUQTHJUIVCDPNMJLFEBO"XFTPNF$PSF.- .PEFMT

Slide 49

Slide 49 text

7JTJPO$PSF.- .-.0%&-ͷ໾ׂ wωοτϫʔΫߏ଄ɺֶशࡁΈͷॏΈΛอ࣋ wϓϩάϥϜ͔Βѻ͑ΔΠϯλʔϑΣʔεΛඋ͑ Δ wυΩϡϝϯτɾϝλσʔλ

Slide 50

Slide 50 text

7JTJPO$PSF.- 9DPEFʹ૊ΈࠐΉ wϓϩδΣΫτͷϑΝΠϧͱͯ͠௥Ճ͢Δ͚ͩͰ ར༻͢Δ४උ͸׬ྃ

Slide 51

Slide 51 text

7JTJPO$PSF.-

Slide 52

Slide 52 text

7JTJPO$PSF.- 9DPEFʹ૊ΈࠐΉ wϓϩδΣΫτʹ௥Ճ͢Δͱɺ.-.PEFMΫϥε ͱͯࣗ͠ಈม׵͞ΕɺϓϩάϥϜ͔ΒΞΫηε Ͱ͖ΔΑ͏ʹͳΔ

Slide 53

Slide 53 text

7JTJPO$PSF.- $PSF.-ར༻ͷϓϩηε w7/$PSF.-3FRVFTU w7/*NBHF3FRVFTU)BOEMFS w7/$MBTTJpDBUJPO0CTFSWBUJPO

Slide 54

Slide 54 text

7JTJPO$PSF.- ࣮૷ wར༻͢Δ.-.PEFMΫϥεΛ7/$PSF.-.PEFM Ϋϥεʹม׵
 guard let mlmodel = MobileNet().model() else { return } guard let coreMLModel = try? VNCoreMLModel(for: mlmodel) else { fatalError("faild create VMCoreMLModel") }

Slide 55

Slide 55 text

7JTJPO$PSF.- ࣮૷ w7/$PSF.-.PEFMʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNCoreMLRequest(model: coreMLModel) { request, error in let results = request.results as? [VNClassificationObservation] // TODO: VNClassificationObservationͷ݁ՌͰॲཧΛߦ͏ } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform") } } ར༻ֶ͍ͨ͠शϞσϧΛݩʹ7/$PSF.-3FRVFTUΛ ੜ੒

Slide 56

Slide 56 text

7JTJPO$PSF.- ࣮૷ w7/$PSF.-.PEFMʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNCoreMLRequest(model: coreMLModel) { request, error in let results = request.results as? [VNClassificationObservation] // TODO: VNClassificationObservationͷ݁ՌͰॲཧΛߦ͏ } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform") } } 7/*NBHF3FRVFTU)BOEMFS࡞੒࣌ʹֶशϞσϧͷ݁ ՌΛฦ͍ͨ͠ը૾Λࢦఆ

Slide 57

Slide 57 text

7JTJPO$PSF.- ࣮૷ w7/$PSF.-.PEFMʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNCoreMLRequest(model: coreMLModel) { request, error in let results = request.results as? [VNClassificationObservation] // TODO: VNClassificationObservationͷ݁ՌͰॲཧΛߦ͏ } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform") } } 3FRVFTUΛҾ਺ʹࢦఆͯ͠QFSGPSNΛίʔϧ

Slide 58

Slide 58 text

7JTJPO$PSF.- ࣮૷ w7/$PSF.-.PEFMʹରԠͨ͠3FRVFTUΛ 7/*NBHF3FRVFTU)BOEFS΁౉͢
 let request = VNCoreMLRequest(model: coreMLModel) { request, error in let results = request.results as? [VNClassificationObservation] // TODO: VNClassificationObservationͷ݁ՌͰॲཧΛߦ͏ } let handler = VNImageRequestHandler(ciImage: ciImage, options: [:]) guard (try? handler.perform([request])) != nil else { fatalError("faild handler.perform") } } ը૾͔Βࢦఆͨ͠ϦΫΤετʹϚονͨ݁͠Ռ͕ม͑ ͯདྷΔͱɺSFRVFTUͷSFTVMUTʹղੳ݁Ռ͕ฦͬͯ͘Δ

Slide 59

Slide 59 text

demo

Slide 60

Slide 60 text

$PSF.-ͷ·ͱΊ $PSF.-ͱ7JTJPOʹ͍ͭͯ w݁ՌΛड͚औΔ·Ͱͷϓϩηε͸إݕग़ͳͲͷ ը૾ղੳॲཧͱಉ༷ʹߦ͏͜ͱ͕Ͱ͖Δ wֶशϞσϧʹؔͯ͠͸ࣗ෼Ͱ४උ͢Δඞཁ͕͋ Δ

Slide 61

Slide 61 text

MLMODELΛ࡞ͬͯΈΔ

Slide 62

Slide 62 text

.-.0%&-ͷ࡞੒ $PSF.-Ͱ࢖͑ΔֶशϞσϧΛखʹೖΕ Δํ๏ wطଘͷֶशϞσϧΛར༻͢Δ wػցֶशΤϯδχΞʹґཔ͠ɺֶशϞσϧΛੜ ੒ͯ͠΋Β͏ wࣗྗͰؤுΔ

Slide 63

Slide 63 text

.-.0%&-ͷ࡞੒ DPSFNMUPPMTʹ͍ͭͯ w֤ػցֶशϥΠϒϥϦͰ࡞੒ֶͨ͠शϞσϧΛ .-.0%&-ʹม׵͢ΔίϚϯυϥΠϯπʔϧ IUUQTQZQJQZUIPOPSHQZQJDPSFNMUPPMT

Slide 64

Slide 64 text

.-.0%&-ͷ࡞੒ .-.0%&-ͷઆ໌ʢ௥هʣ w$PSF.-Λར༻͢Δʹ͋ͨͬͯɺ۩ମతʹ͸ɺ ,FSBT΍$B⒎FͷΑ͏ͳػցֶशϑϨʔϜ ϫʔΫ͕ग़ྗͨ͠Ϟσϧ͔ΒNMNPEFMͱ͍ ͏ϑΝΠϧΛ࡞੒͠ɺ͜ΕΛ9DPEFʹΠϯϙʔ τ͠·͢ɻ

Slide 65

Slide 65 text

.-.0%&-ͷ࡞੒ ରԠ͍ͯ͠ΔֶशϞσϧ w,FSBT͕࡞੒ֶͨ͠शϞσϧΛ࢖༻͢Δ͜ͱ͕ Մೳ

Slide 66

Slide 66 text

.-.0%&-ͷ࡞੒ IUUQTLFSBTJPKB ,FSBTʹ͍ͭͯ wσΟʔϓϥʔχϯά༻ͷϥΠϒϥϦ wόοΫΤϯυʹ5FOTPS'MPXΛར༻ w5FOTPS'MPXͷϥούʔͱͯ͠࡞੒͞Εͨ w$*'"3ͳͲͷαϯϓϧίʔυ΋ఏڙ͞Εͯ ͍ΔͷͰɺ৞ΈࠐΈχϡʔϥϧωοτϫʔΫͷ ֶशϞσϧΛ࡞੒͠΍͍͢

Slide 67

Slide 67 text

.-.0%&-ͷ࡞੒ $*'"3 IUUQXXXDTUPSPOUPFEVdLSJ[DJGBSIUNM

Slide 68

Slide 68 text

.-.0%&-ͷ࡞੒ $*'"3 IUUQXXXDTUPSPOUPFEVdLSJ[DJGBSIUNM $*'"3 wYͷը૾ຕͷσʔληοτ wτϨʔχϯάσʔλ͕ຕ wςετσʔλ͕ຕ wτϨʔχϯάσʔλͰֶशͨ͠ͷͪɺςετσʔ λΛ࢖ͬͯݕূ͢Δ

Slide 69

Slide 69 text

.-.0%&-ͷ࡞੒ ৞ΈࠐΈχϡʔϥϧωοτϫʔΫ wڭࢣ͋Γֶश wΠϯϓοτ͢Δॱ൪͕ؔ܎͋Δ wը૾ʹରͯ͠ϑΟϧλʔΛ͔͚Δ৞ΈࠐΈ૚ͱಛ ௃ͷղੳΛߦ͏ϓʔϦϯά૚Λ࣋ͭ wֶशϓϩάϥϜʹ͍ͭͯ͸,FSBTͷαϯϓϧΛࢀ ߟʹ࡞੒

Slide 70

Slide 70 text

.-.0%&-ͷ࡞੒ ,FSBTͷ$*'"3αϯϓϧ model = Sequential() model.add(Conv2D(32, (3, 3), padding='same', input_shape=X_train.shape[1:])) model.add(Activation('relu')) model.add(Conv2D(32, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(64, (3, 3), padding='same')) model.add(Activation('relu')) model.add(Conv2D(64, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(nb_classes)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

Slide 71

Slide 71 text

.-.0%&-ͷ࡞੒ σΟʔϓϥʔχϯάͷ࣮ߦ w(16͕ࡌ͍ͬͯΔ1$ͰֶशϓϩάϥϜΛ࣮ߦ ͢Δ

Slide 72

Slide 72 text

.-.0%&-ͷ࡞੒ σΟʔϓϥʔχϯάͷ࣮ߦ w(16͕ࡌ͍ͬͯΔ1$ͰֶशϓϩάϥϜΛ࣮ߦ ͢Δ

Slide 73

Slide 73 text

.-.0%&-ͷ࡞੒ .-.0%&-΁ͷม׵ w,FSBT͕࡞੒ֶͨ͠शϞσϧΛDPSFNMUPPMTΛ ࢖ͬͯ.-.0%&-΁ม׵͢Δ
 path = './model.h5' import coremltools coreml_model = coremltools.converters.keras.convert(path, input_names = 'image', image_input_names = 'image', class_labels = 'labels.txt') coreml_model.save('Food.mlmodel')

Slide 74

Slide 74 text

.-.0%&-ͷ࡞੒ .-.0%&-ͷར༻ w࡞੒ͨ͠.-.0%&-Λ9DPEFʹ૊ΈࠐΉ

Slide 75

Slide 75 text

demo

Slide 76

Slide 76 text

·ͱΊ

Slide 77

Slide 77 text

·ͱΊ 7JTJPOͷؔ࿈ٕज़ wը૾ղੳʹಛԽ͍ͯ͠ΔͨΊɺࠓ·ͰࣗલͰ࣮ ૷͢Δඞཁͷ͋ͬͨίʔυ͕ෆཁʹͳΓɺ࠷ద Խ͞ΕͨύϑΥʔϚϯεͰར༻Ͱ͖Δ w$PSF.-ͱ૊Έ߹ΘͤΔ͜ͱͰػցֶशϞσϧ Λར༻ͨ͠ը૾ղੳ͕؆୯ʹߦ͑Δ wࠓޙͷϒϥ΢βͷਐԽʹ൐͍ɺωΠςΟϒΞϓ ϦͷϢχʔΫੑʹͳΓಘΔ


Slide 78

Slide 78 text

ެࣜϦϯΫू #VJMENPSFJOUFMMJHFOUBQQTXJUINBDIJOFMFBSOJOH *OUSPEVDJOH$PSF.- $PSF.-JOEFQUI DPSFNMUPPMT /BUVSBM-BOHVBHF1SPDFTTJOHBOEZPVS"QQT 7JTJPO /4-JOHVJTUJD5BH4DIFNF

Slide 79

Slide 79 text

ँࣙ ը૾ղੳϑϨʔϜϫʔΫ7JTJPOͰإೝࣝΛࢼͨ݁͠Ռ 7JTJPO'SBNFXPSLͰը૾ͷࣝผΛࢼͯ͠Έ·ͨ͠88%$ $PSF.-Ͱը૾ͷࣝผΛࢼͯ͠Έ·ͨ͠ʢ7JTJPO'SBNFXPSLΛ࢖Θ ͳ͍ύλʔϯʣ88%$ Ի੠ೝ͔ࣝΒಘͨจষͷܗଶૉղੳͱ඼ࢺ෼ղΛͯ͠Έͨ ,FSBTͰ͸͡ΊΔ%FFQ-FBSOJOH ஶ໊ͳσΟʔϓϥʔχϯάϑϨʔϜϫʔΫΛαϙʔτ͢Δ"84७ਖ਼".*ɿʮ"84 %FFQ-FBSOJOH".*ʯ J04%$Ͱ$PSF.-ͷ࿩Λ͖ͯ͠·ͨ͠ʢ͋Δ͍͸๏཯૬ஊࣄ຿ॴʹߦͬͯ ͖ͨ࿩ʣ 5FOTPS'MPXʹΑΔ΋΋Ϋϩϝϯόʔإೝࣝʢલฤʣ ,FSBTJ04$PSF.-7JTJPO'SBNFXPSLʹΑΔɺ΋΋ΫϩإࣝผΞϓ Ϧͷ։ൃ

Slide 80

Slide 80 text

No content