Slide 1

Slide 1 text

$PSF.-ͰΞΠυϧإೝࣝ ΞϓϦΛ࡞Ζ͏ দલ݈ଠ࿠ !LFONB[ J04%$ 5SBDL"

Slide 2

Slide 2 text

w ීஈ͸J04ΤϯδχΞ w ػցֶशͷઐ໳ՈͰ͸ͳ͘ɺ झຯͰษڧத ࣗݾ঺հ

Slide 3

Slide 3 text

ຊτʔΫʹ͍ͭͯ wJ04ΤϯδχΞ͕ػցֶशʹνϟϯϨϯδͯ͠Έͨ wػցֶशٕज़ɾ$PSF.-Λ࢖ͬͨJ04ΞϓϦͷ։ൃϑ ϩʔΛ޿͘ઙ͘࿩͠·͢ɻ wʮࣗ෼Ͱ΋΍Εͦ͏ɺ͓΋͠Ζͦ͏ɺࢼͯ͠Έ͍ͨʯ ͱօ͞Μʹࢥ͍͚ͬͯͨͩΕ͹޾͍Ͱ͢

Slide 4

Slide 4 text

/%"ʹ͍ͭͯ w$PSF.-΍J04ʹ͍ͭͯ͸ɺ/%" ͷؔ܎্ɺݱ࣌఺ͰҰൠެ։͞Εͯ ͍Δൣғͷ৘ใͷΈΛऔΓѻ͍·͢ wσϞϯετϨʔγϣϯ΍࣮ݧ݁Ռͷ ঺հͳͲ͸ߦ͍·ͤΜɻ

Slide 5

Slide 5 text

લఏͱͳΔઐ໳஌ࣝ

Slide 6

Slide 6 text

ΞΠυϧάϧʔϓ

Slide 7

Slide 7 text

αϯϓϧࣄྫɿ ΞΠυϧإࣝผΞϓϦ Πϝʔδ ͸ͳ͜

Slide 8

Slide 8 text

J04 7JTJPO$PSF.- ͓͞Β͍

Slide 9

Slide 9 text

7JTJPO

Slide 10

Slide 10 text

7JTJPO wը૾ೝࣝॲཧ༻ϑϨʔϜϫʔΫ wϝδϟʔͳը૾ೝࣝॲཧΛඪ४ Ͱఏڙ

Slide 11

Slide 11 text

ग़యɿIUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED

Slide 12

Slide 12 text

ग़యɿIUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED

Slide 13

Slide 13 text

ग़యɿIUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED

Slide 14

Slide 14 text

ग़యɿIUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED

Slide 15

Slide 15 text

࢖͍ํ 7/3FRVFTU)BOEMFS 7/3FRVFTU 7/0CTFSWBUJPO 7/0CTFSWBUJPO 7/0CTFSWBUJPO ࣮ߦ͍ͨ͠ը૾ೝࣝλεΫ ೖྗը૾ ந৅Խ͞Εͨೝࣝ݁Ռ

Slide 16

Slide 16 text

ྫ إ෦඼ͷݕ஌ 7/%FUFDU'BDF-BOENBSLT 3FRVFTU 7/'BDF-BOENBSLT% GBDF$POUPVSʢྠֲҐஔʣ MFGU&ZFʢࠨ໨Ґஔʣ MFGU&ZFCSPXʢࠨ໨එҐஔʣ MFGU1VQJMʢࠨ໨؟ٿҐஔʣ OPTFʢඓҐஔʣ ʜ ػցֶश΍ը૾ೝࣝͷ ৄ͍͠஌ࣝ͸ෆཁ

Slide 17

Slide 17 text

ओͳ7/3FRVFTUͷαϒΫϥε ༻్ 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU إͷۣܗݕग़ 7/%FUFDU'BDF-BOENBSLT3FRVFTU إͷύʔπݕग़ 7/%FUFDU3FDUBOHMFT3FRVFTU ۣܗݕग़ 7/%FUFDU5FYU3FDUBOHMFT3FRVFTU ςΩετۣܗݕग़ 7/5SBDL0CKFDU3FRVFTU ෺ମݕग़ 7/%FUFDU)PSJ[PO3FRVFTU ਫฏݕग़ 7/*NBHF3FHJTUSBUJPO3FRVFTU ը૾ϨδετϨʔγϣϯ ʢҐஔ߹Θͤʣ 7/%FUFDU#BSDPEFT3FRVFTU όʔίʔυݕग़ 7/$PSF.-3FRVFTU ΧελϜͷ$PSF.-Λ༻͍ͨݕग़

Slide 18

Slide 18 text

ओͳ7/3FRVFTUͷαϒΫϥε ༻్ 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU إͷۣܗݕग़ 7/%FUFDU'BDF-BOENBSLT3FRVFTU إͷύʔπݕग़ 7/%FUFDU3FDUBOHMFT3FRVFTU ۣܗݕग़ 7/%FUFDU5FYU3FDUBOHMFT3FRVFTU ςΩετۣܗݕग़ 7/5SBDL0CKFDU3FRVFTU ෺ମݕग़ 7/%FUFDU)PSJ[PO3FRVFTU ਫฏݕग़ 7/*NBHF3FHJTUSBUJPO3FRVFTU ը૾ϨδετϨʔγϣϯ ʢҐஔ߹Θͤʣ 7/%FUFDU#BSDPEFT3FRVFTU όʔίʔυݕग़ 7/$PSF.-3FRVFTU ΧελϜͷ$PSF.-Λ༻͍ͨݕग़ ·ͣ͜ΕΒΛ࢖͑ͳ͍͔ݕ౼ ཁ݅ʹ߹Θͳ͚Ε͹ $PSF.-Λબ୒

Slide 19

Slide 19 text

$PSF.-

Slide 20

Slide 20 text

$PSF.- wػցֶशϑϨʔϜϫʔΫʢਪ࿦ͷΈʣ wσόΠε୯ମͰಈ࡞ w࣮ߦ࣌ʹαʔόʔෆཁɾߴ଎ɾηΩϡΞ w$16(16ʹ࠷దԽ͞Ε͓ͯΓύϫϑϧ

Slide 21

Slide 21 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒

Slide 22

Slide 22 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒ $PSF.-Ϟσϧ

Slide 23

Slide 23 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒ $PSF.-Ϟσϧ wωοτϫʔΫߏ଄ɺֶशࡁΈͷॏΈ

Slide 24

Slide 24 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒ $PSF.-Ϟσϧ wωοτϫʔΫߏ଄ɺֶशࡁΈͷॏΈ wυΩϡϝϯτϝλσʔλ

Slide 25

Slide 25 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒ $PSF.-Ϟσϧ wωοτϫʔΫߏ଄ɺֶशࡁΈͷॏΈ wυΩϡϝϯτϝλσʔλ wTXJGUPCKDͱͷ*'ͱͳΔΫϥεఆٛ

Slide 26

Slide 26 text

$PSF.-Λ༻͍ͨΞϓϦͷߏ੒ $PSF.-Ϟσϧ wωοτϫʔΫߏ଄ɺֶशࡁΈͷॏΈ wυΩϡϝϯτϝλσʔλ wTXJGUPCKDͱͷ*'ͱͳΔΫϥεఆٛ

Slide 27

Slide 27 text

IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED 'MPXFS$MBTTpFSNMNPEFM

Slide 28

Slide 28 text

MFUJOQVU$71JYFM#V⒎FS MFUNPEFM'MPXFS$MBTTJpFS MFUPVUQVUUSZNPEFMQSFEJDBUF qPXFS*NBHFJOQVU QSJOU PVQVUqPXFS5ZQF

Slide 29

Slide 29 text

$PSF.-ͷߏ੒ $PSF.-Ϟσϧ

Slide 30

Slide 30 text

$PSF.-ͷߏ੒ Ͳ͏΍ͬͯ༻ҙ͢Δʁ $PSF.-Ϟσϧ

Slide 31

Slide 31 text

ᶃ܇࿅ࡁΈͷ$PSF.-ϞσϧΛ࢖͏ ໊শ αΠζ ༻్ ࣝผྫ .PCJMF/FU .# ෺ମೝࣝ ໦ɺಈ෺ɺ৯΂෺ɺंɺਓͳͲ 4RVFF[F/FU .# 3FT/FU .# *ODFQUJPOW .# 7(( .# 1MBDF(PPH-F/FU .# γʔϯೝࣝ ۭߓɺ৸ࣨɺ৿ྛɺԊ؛ "QQMFެࣜఏڙ IUUQTEFWFMPQFSBQQMFDPNNBDIJOFMFBSOJOH

Slide 32

Slide 32 text

໊শ ༻్ $BS3FDPHOJUJPO ंͷϒϥϯυˍϞσϧࣝผ :0-0 ෺ମೝࣝ "HF/FU ਓؒͷإͷ೥ྸਪఆ (FOEFS/FU ਓؒͷإͷੑผਪఆ &NPUJPO/FU ਓؒͷإͷײ৘ਪఆ )&% Τοδநग़ 'PPE ྉཧͷࣝผ 0YGPSE Ֆͷछྨͷࣝผ -PDBUJPO/FU ࣸਅͷࡱӨ஍ਪఆ ͦͷଞͷެ։$PSF.-Ϟσϧ IUUQTHJUIVCDPNMJLFEBO"XFTPNF$PSF.-.PEFMT

Slide 33

Slide 33 text

໊শ ༻్ $BS3FDPHOJUJPO ंͷϒϥϯυˍϞσϧࣝผ :0-0 ෺ମೝࣝ "HF/FU ਓؒͷإͷ೥ྸਪఆ (FOEFS/FU ਓؒͷإͷੑผਪఆ &NPUJPO/FU ਓؒͷإͷײ৘ਪఆ )&% Τοδநग़ 'PPE ྉཧͷࣝผ 0YGPSE Ֆͷछྨͷࣝผ -PDBUJPO/FU ࣸਅͷࡱӨ஍ਪఆ ͦͷଞͷެ։$PSF.-Ϟσϧ IUUQTHJUIVCDPNMJLFEBO"XFTPNF$PSF.-.PEFMT ཁ݅ʹ߹͏΋ͷ͕ͳ͚Ε͹ ➔ࣗ෼Ͱ$PSF.-ϞσϧΛੜ੒͢Δ

Slide 34

Slide 34 text

ᶄ$PSF.-5PPMTʹΑΔม׵ ܇࿅ࡁΈͷ ػցֶशϞσϧ 1ZUIPO

Slide 35

Slide 35 text

ᶄ$PSF.-5PPMTʹΑΔม׵ ܇࿅ࡁΈͷ ػցֶशϞσϧ 1ZUIPO $PSF.-5PPMT ม׵

Slide 36

Slide 36 text

ᶄ$PSF.-5PPMTʹΑΔม׵ ܇࿅ࡁΈͷ ػցֶशϞσϧ 1ZUIPO $PSF.-5PPMT ม׵

Slide 37

Slide 37 text

ᶄ$PSF.-5PPMTʹΑΔม׵ ܇࿅ࡁΈͷ ػցֶशϞσϧ 1ZUIPO $PSF.-5PPMT ม׵ Ͳ͏΍ͬͯ༻ҙ͢Δʁ

Slide 38

Slide 38 text

ᶄ$PSF.-5PPMTʹΑΔม׵ ᶃެ։͞Ε͍ͯΔ΋ͷΛ࢖͏ w$B⒎F.PEFM;PP w5FOTPS'MPX.PEFMT w.9/FU.PEFM;PP ᶄࣗ෼Ͱ࣮૷ͯ͠܇࿅͢Δ ܇࿅ࡁΈͷ ػցֶशϞσϧ 1ZUIPO $PSF.-5PPMT ม׵ Ͳ͏΍ͬͯ༻ҙ͢Δʁ

Slide 39

Slide 39 text

7JTJPO$PSF.- ͜͜·Ͱͷ·ͱΊ

Slide 40

Slide 40 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ :&4 /0

Slide 41

Slide 41 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ :&4 /0

Slide 42

Slide 42 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ ࢖͑ͦ͏ͳֶशࡁΈ $PSF.-Ϟσϧ͕͋Δʁ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ ᶄֶशࡁΈ$PSF.-ϞσϧΛ࢖͏ :&4 /0

Slide 43

Slide 43 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ ࢖͑ͦ͏ͳֶशࡁΈ $PSF.-Ϟσϧ͕͋Δʁ ࢖͑ͦ͏ͳ1ZUIPO࣮૷ͷ ֶशࡁΈϞσϧ͕͋Δʁ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ ᶄֶशࡁΈ$PSF.-ϞσϧΛ࢖͏ ᶅ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ :&4 /0

Slide 44

Slide 44 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ ࢖͑ͦ͏ͳֶशࡁΈ $PSF.-Ϟσϧ͕͋Δʁ ࢖͑ͦ͏ͳ1ZUIPO࣮૷ͷ ֶशࡁΈϞσϧ͕͋Δʁ ࣌ؒͱͱڭࢣσʔλͱ Ϡϧؾ͸͋Δʁ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ ᶄֶशࡁΈ$PSF.-ϞσϧΛ࢖͏ ᶅ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ ᶆػցֶशͷίʔυΛ1ZUIPOͰ࣮૷ ˍ܇࿅ͯ͠ɺ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ :&4 /0

Slide 45

Slide 45 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ ࢖͑ͦ͏ͳֶशࡁΈ $PSF.-Ϟσϧ͕͋Δʁ ࢖͑ͦ͏ͳ1ZUIPO࣮૷ͷ ֶशࡁΈϞσϧ͕͋Δʁ ࣌ؒͱͱڭࢣσʔλͱ Ϡϧؾ͸͋Δʁ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ ᶄֶशࡁΈ$PSF.-ϞσϧΛ࢖͏ ᶅ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ ᶆػցֶशͷίʔυΛ1ZUIPOͰ࣮૷ ˍ܇࿅ͯ͠ɺ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ :&4 /0

Slide 46

Slide 46 text

ը૾ೝࣝΛ࢖ͬͨΞϓϦͷ։ൃཁ݅ ࢖͑ͦ͏ͳֶशࡁΈ $PSF.-Ϟσϧ͕͋Δʁ ࢖͑ͦ͏ͳ1ZUIPO࣮૷ͷ ֶशࡁΈϞσϧ͕͋Δʁ ࣌ؒͱͱڭࢣσʔλͱ Ϡϧؾ͸͋Δʁ 7JTJPOͰ࣮૷Մೳʁ ᶃ7JTJPOϑϨʔϜϫʔΫΛ࢖͏ ᶄֶशࡁΈ$PSF.-ϞσϧΛ࢖͏ ᶅ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ ᶆػցֶशͷίʔυΛ1ZUIPOͰ࣮૷ ˍ܇࿅ͯ͠ɺ$PSF.-5PPMTͰ $PSF.-Ϟσϧʹม׵ͯ͠࢖͏ :&4 /0 ➔ΞΠυϧإࣝผΞϓϦ

Slide 47

Slide 47 text

ΞΠυϧإࣝผΞϓϦ ͷ։ൃ

Slide 48

Slide 48 text

શମઃܭ

Slide 49

Slide 49 text

શମઃܭ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ

Slide 50

Slide 50 text

શମઃܭ ϑϨʔϜը૾औಘ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ

Slide 51

Slide 51 text

શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ

Slide 52

Slide 52 text

શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ

Slide 53

Slide 53 text

શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ

Slide 54

Slide 54 text

͸ͳ͜ શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ

Slide 55

Slide 55 text

͸ͳ͜ શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ "7$BQUVSF

Slide 56

Slide 56 text

͸ͳ͜ શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ "7$BQUVSF 7JTJPO 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU

Slide 57

Slide 57 text

͸ͳ͜ શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ "7$BQUVSF 7JTJPO 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU $PSF.- ϝϯόʔإࣝผϞσϧ

Slide 58

Slide 58 text

͸ͳ͜ શମઃܭ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ "7$BQUVSF 7JTJPO 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU $PSF.- ϝϯόʔإࣝผϞσϧ

Slide 59

Slide 59 text

$PSF.-Λ༻͍ͨΞϓϦͷ ։ൃϑϩʔ ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ

Slide 60

Slide 60 text

ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ ᶃϥϕϧ෇͖ڭࢣσʔλͷ४උ

Slide 61

Slide 61 text

إը૾ͷऩू wΫϩʔϥͰը૾Λऩू wը૾ݕࡧ"1*ɺεΫϨΠϐϯά w4DSBQZ IUUQTTDSBQZPSH wΫϩʔϦϯάɾεΫϨΠϐϯά༻ϑϨʔϜϫʔΫ wDTTηϨΫλΛͪΐΖͬͱॻ͚ͩ͘ wաෛՙ๷ࢭɺSPCPUTUYUΛߟྀͨ͠ྱّਖ਼͍͠ΫϩʔϦϯά

Slide 62

Slide 62 text

$ scrapy runspider momospider.py import scrapy from crawler.items import MomoItem class MomoSpider(scrapy.Spider): name = "momo" start_urls = [“https://momo.com/blog/“] def parse(self, response): image_url = response.css('#main #content .artwork img::attr(src-swap)').extract_first() member_name = response.css('#title h1::text').extract_first() item = MomoItem() item['image_urls'] = [image_url] item['member_name'] = member_name return item

Slide 63

Slide 63 text

લॲཧ w0QFO$7Ͱͬ͘͟Γإ෦෼ͷ੾Γൈ͖ wඍົͳ܏͖΍ζϨ͕ਫ਼౓ʹӨڹΛ༩͑Δ wը૾ճసɺ໨ඓޱͷҐஔ߹Θͤ ࢀߟɿإೝࣝҐஔ߹Θͤͷॏཁੑ

Slide 64

Slide 64 text

֤ϝϯόʔຕY ຕͷڭࢣσʔλΛऩू

Slide 65

Slide 65 text

֤ϝϯόʔຕY ຕͷڭࢣσʔλΛऩू ख࡞ۀͰ ϥϕϧ෇͚ʂ NBDͷ'JOEFSͰϑΝΠϧΛख࡞ۀͰ෼ྨ

Slide 66

Slide 66 text

ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ ᶄϞσϧͷ࣮૷

Slide 67

Slide 67 text

ࣝผϞσϧ ΞΠυϧإࣝผϞσϧ

Slide 68

Slide 68 text

ࣝผϞσϧ ΞΠυϧإࣝผϞσϧ ೖྗɿY3(#ͷإը૾ ϥϕϧ෇͖ڭࢣը૾ ͸ͳ͜ ೖྗ

Slide 69

Slide 69 text

ࣝผϞσϧ ΞΠυϧإࣝผϞσϧ ϝϯόʔ ֬཰ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜ ਪ࿦ ग़ྗ֤ϝϯόʔͷ֬཰ ೖྗɿY3(#ͷإը૾ ϥϕϧ෇͖ڭࢣը૾ ͸ͳ͜ ೖྗ

Slide 70

Slide 70 text

ࣝผϞσϧ ΞΠυϧإࣝผϞσϧ ϝϯόʔ ֬཰ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜ ਪ࿦ ग़ྗ֤ϝϯόʔͷ֬཰ ೖྗɿY3(#ͷإը૾ ϥϕϧ෇͖ڭࢣը૾ ͸ͳ͜ ೖྗ ɹֶश

Slide 71

Slide 71 text

ࣝผϞσϧ ΞΠυϧإࣝผϞσϧ ϝϯόʔ ֬཰ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜ ਪ࿦ ग़ྗ֤ϝϯόʔͷ֬཰ ˠը૾ͷଟΫϥε෼ྨ໰୊ ೖྗɿY3(#ͷإը૾ ϥϕϧ෇͖ڭࢣը૾ ͸ͳ͜ ೖྗ ɹֶश

Slide 72

Slide 72 text

ը૾ͷଟΫϥε෼ྨ໰୊ wը૾ೝࣝͷ෼໺Ͱ͸ϝδϟʔͳ໰୊ wσʔληοτ΍αϯϓϧ࣮૷΋ଟ਺ެ։͞ Ε͍ͯΔ w৞ΈࠐΈχϡʔϥϧωοτϫʔΫʢ$//ʣ ग़యɿIUUQTXXXUFOTPSqPXPSHHFU@TUBSUFENOJTUCFHJOOFST ग़యɿIUUQTXXXDTUPSPOUPFEVdLSJ[DJGBSIUNM

Slide 73

Slide 73 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾

Slide 74

Slide 74 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾ ϑΟϧλ

Slide 75

Slide 75 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾ ϑΟϧλ ৞ΈࠐΈ

Slide 76

Slide 76 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾ ϑΟϧλ ಛ௃ͷநग़ ৞ΈࠐΈ

Slide 77

Slide 77 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾ ϑΟϧλ ಛ௃ͷநग़ ৞ΈࠐΈ ϓʔϦϯά

Slide 78

Slide 78 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ݩը૾ ϑΟϧλ ಛ௃ͷநग़ ඍখͳҐஔมԽ ʹର͢Δෆมੑ Λ࣮ݱ ৞ΈࠐΈ ϓʔϦϯά

Slide 79

Slide 79 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜

Slide 80

Slide 80 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ৞ΈࠐΈ૚ɾϓʔϦϯά૚ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜

Slide 81

Slide 81 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ৞ΈࠐΈ૚ɾϓʔϦϯά૚ શ݁߹૚ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜

Slide 82

Slide 82 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫ ʢࡶͳઆ໌ʣ ৞ΈࠐΈ૚ɾϓʔϦϯά૚ શ݁߹૚ ΕΈ ͸ͳ͜ ͓͍͠ ͋ʔΓͦ ΋΋͜ ˠϑΟϧλͷύϥϝʔλɺ݁߹ͷॏΈΛֶश

Slide 83

Slide 83 text

ػցֶशϥΠϒϥϦ w੍໿ w$PSF.-5PPMT͕αϙʔτ͍ͯ͠ Δ΋ͷΛબ୒͢Δ wόʔδϣϯ΋ݫີʹ߹ΘͤΔ ➔,FSBT1ZUIPOΛ࠾༻

Slide 84

Slide 84 text

,FSBT෇ଐͷαϯϓϧίʔυ DJGBS@DOOQZ Λϕʔεʹ࣮૷

Slide 85

Slide 85 text

ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ ᶅ܇࿅

Slide 86

Slide 86 text

Ϋϥ΢υ্Ͱͷֶश w(16Ϛγϯ͸ඞਢ w.#1$16Ͱ਺೔͔͔Δॲཧ͕(16 ͳΒ਺࣌ؒͰ͢Ή w"84&$QεϙοτΠϯελϯε wdIఔ౓ wڭࢣσʔλը૾͸Tʹ഑ஔ 4 FD

Slide 87

Slide 87 text

؀ڥߏங w"84%FFQ-FBSOJOH".*T wIUUQTBXTBNB[PODPNKQBNB[POBJBNJT w(16υϥΠό΍ґଘϥΠϒϥϦ͕ΠϯετʔϧࡁΈ wىಈ͢Δ͚ͩͰʢ΄΅ʣ͙͢࢖͑Δ

Slide 88

Slide 88 text

ֶश݁Ռ ΤϙοΫֶश ޙͷਫ਼౓ ܇࿅σʔλ ݕূσʔλ ͪΌΜͱͨ͠άϥϑʹ͢Δ

Slide 89

Slide 89 text

ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ ᶆֶशࡁΈϞσϧͷม׵

Slide 90

Slide 90 text

$PSF.-Ϟσϧ΁ͷม׵

Slide 91

Slide 91 text

$PSF.-Ϟσϧ΁ͷม׵ )%' ܗࣜ ɾωοτϫʔΫߏ଄ ɾֶशࡁΈͷॏΈ

Slide 92

Slide 92 text

$PSF.-Ϟσϧ΁ͷม׵ )%' ܗࣜ ɾωοτϫʔΫߏ଄ ɾֶशࡁΈͷॏΈ

Slide 93

Slide 93 text

$PSF.-Ϟσϧ΁ͷม׵ )%' ܗࣜ ɾωοτϫʔΫߏ଄ ɾֶशࡁΈͷॏΈ

Slide 94

Slide 94 text

$PSF.-Ϟσϧ΁ͷม׵ )%' ܗࣜ ɾωοτϫʔΫߏ଄ ɾֶशࡁΈͷॏΈ 1 import coremltools 2 coreml_model = coremltools.converters.keras.convert( 3 'model.h5' 4 input_names = 'image', 5 image_input_names = 'image', 6 class_labels = 'labels.txt') 7 coreml_model.save(‘idle_classifer.mlmodel’)

Slide 95

Slide 95 text

$PSF.-Ϟσϧͷݕূ

Slide 96

Slide 96 text

$PSF.-Ϟσϧͷݕূ

Slide 97

Slide 97 text

$PSF.-Ϟσϧͷݕূ ͸ͳ͜

Slide 98

Slide 98 text

$PSF.-Ϟσϧͷݕূ ͸ͳ͜ ͸ͳ͜

Slide 99

Slide 99 text

$PSF.-Ϟσϧͷݕূ ͸ͳ͜ ͸ͳ͜ ਖ਼͘͠ม׵Ͱ͖͍ͯΔ͜ͱ͕ݕূͰ͖ͨ

Slide 100

Slide 100 text

$PSF.-Ϟσϧͷݕূ 1 import coremltools 2 img = load(‘hanako.png’) 3 model = coremltools.models.MLModel('Momomind.mlmodel') 4 res = model.predict(img) 5 print(res) # => ͸ͳ͜ 0.8888 ͸ͳ͜ ͸ͳ͜ ਖ਼͘͠ม׵Ͱ͖͍ͯΔ͜ͱ͕ݕূͰ͖ͨ

Slide 101

Slide 101 text

$PSF.-5PPMT IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ֤ϥΠϒϥϦ͝ͱͷ ίϯόʔλʔ 1ZUIPO$PSF.- PONBD04 ؒͷόΠϯσΟϯά ίϯόʔλʔߏங༻"1* w $PSF.-ϞσϧϑΥʔϚοτͷ࣮૷ w 9DPEFʹऔΓࠐΜͩࡍͷ*'ఆٛ

Slide 102

Slide 102 text

ᶃڭࢣσʔλ ͷ४උ ᶄϞσϧͷ ࣮૷ ᶅ܇࿅ ᶆֶशࡁΈ Ϟσϧͷม׵ ᶇΞϓϦ΁ͷ ૊ΈࠐΈ ᶇΞϓϦ΁ͷ૊ΈࠐΈ

Slide 103

Slide 103 text

͸ͳ͜ ෦඼͸ἧͬͨ ϑϨʔϜը૾औಘ إͷݕग़ ϝϯόʔͷࣝผ Χϝϥө૾ͷ ϓϨϏϡʔදࣔ ݕग़ͨ͠إҐஔʹ ࿮Λදࣔ ࣝผ݁Ռͷදࣔ "7$BQUVSF 7JTJPO 7/%FUFDU'BDF3FDUBOHMFT3FRVFTU $PSF.- ϝϯόʔإࣝผϞσϧ

Slide 104

Slide 104 text

ϑϨʔϜը૾औಘˍϓϨϏϡʔදࣔ let session = AVCaptureSession() let device = AVCaptureDevice.default(for: AVMediaType.video)! let deviceInput = try! AVCaptureDeviceInput(device: device) session.addInput(deviceInput) let previewLayer = AVCaptureVideoPreviewLayer(session: session) view.layer.insertSublayer(previewLayer, at: 0) let queue = DispatchQueue(label: “xxx") let output = AVCaptureVideoDataOutput() output.setSampleBufferDelegate(self, queue: queue) session.addOutput(output) func captureOutput(..., didOutput sampleBuffer: CMSampleBuffer, ..) { let buffer: CVImageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) ... } ᶃΧϝϥೖྗ ᶄϓϨϏϡʔදࣔ ᶅΩϟϓνϟग़ྗ ᶆϑϨʔϜը૾औಘ

Slide 105

Slide 105 text

إҐஔݕग़ let buffer: CVImageBuffer = ... let inputImage = CIImage(cvImageBuffer: buffer) //ᶃإۣܗऔಘϦΫΤετ let handler = VNImageRequestHandler(ciImage: inputImage) handler.perform([ VNDetectFaceRectanglesRequest(completionHandler: { (req, err) in //ᶄإۣܗͷऔಘ let req = request as! VNDetectFaceRectanglesRequest, let faces = req.results as! [VNFaceObservation], let face = faces.first.boundingBox, let rect = face.boundingBox, //ᶅإ෦෼ͷ੾Γൈ͖ let faceImage: CIImage = cropImage(from inputImage, rect: rect)

Slide 106

Slide 106 text

إࣝผ //ᶃֶशࡁΈCoreMLϞσϧͷϩʔυ let idleClassifier = IdleClassifier() let model = VNCoreMLModel(for: idleClassifier.model) //ᶄVision+CoreMLͰਪ࿦Λ࣮ߦ let image: CIImage = ... let handler = VNImageRequestHandler(ciImage: image) try handler.perform([ VNCoreMLRequest(model: model) {(req, err) in //ᶅࣝผ݁Ռͷऔಘ let res = req.results!.first as! VNClassificationObservation let name = res.identifier let probability = Int(res.confidence * 100) print(“ࣝผ݁Ռ \(name):\(probability)%”)

Slide 107

Slide 107 text

׬੒ʁ ͸ͳ͜

Slide 108

Slide 108 text

੒௕ʹΑΔإͷมԽ

Slide 109

Slide 109 text

ܧଓతͳ ࣝผਫ਼౓ͷ޲্

Slide 110

Slide 110 text

ڭࢣσʔλͷ֦ॆ

Slide 111

Slide 111 text

ޡݕ஌ͷใࠂػೳ 4 ͷͷ͔ إը૾ʴਖ਼ղϥϕϧ ͸ͳ͜ ໰୊Λใࠂ ਖ਼ղΛ͓͍͑ͯͩ͘͠͞ ͷͷ͔c ૹ৴

Slide 112

Slide 112 text

IUUQNPNPNJOELFONB[OFU 4 ͋ʔΓͦ ޡݕ஌ͷใࠂػೳʢϒϥ΢β൛ʣ إը૾ʴਖ਼ղϥϕϧ

Slide 113

Slide 113 text

ΫϩʔϥʔʹΑΔܧଓతͳऩू ˍԾϥϕϧ͚ͮ 4 Ϋϩʔϥʔ ਪ࿦ˍԾϥϕϧ෇͚ खಈ֬ೝˍमਖ਼ ΋΋͜ إը૾ʴʢԾͷʣਖ਼ղϥϕϧ

Slide 114

Slide 114 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ

Slide 115

Slide 115 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ ࠶ֶश

Slide 116

Slide 116 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ ࠶ֶश ʁ

Slide 117

Slide 117 text

͸ͳ͜ ࠶ੜ੒ͨ͠Ϟσϧͷಈతஔ׵ μ΢ϯϩʔυ NMNPEFM NMNPEFMD class MLModel { class func compileModel(at modelURL: URL) throws -> URL ίϯύΠϧ ୺຤಺ JOPVUͷ࢓༷มߋͳͲ ☓ ࢀߟɿ)PUTXBQQJOH$PSF.-NPEFMTPOUIFJ1IPOF

Slide 118

Slide 118 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ ࠶ֶश

Slide 119

Slide 119 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ ࠶ֶश $PSF.-Ϟσϧͷ ࠶ੜ੒ˍಈతஔ׵

Slide 120

Slide 120 text

͸ͳ͜ ໰୊Λใࠂ ϥϕϧ෇͖ڭࢣσʔλͷ֦ॆ ࠶ֶश $PSF.-Ϟσϧͷ ࠶ੜ੒ˍಈతஔ׵ ਫ਼౓޲্ͷϧʔϓ͕ॏཁ

Slide 121

Slide 121 text

ΞϧΰϦζϜͷվળ w ຊτʔΫͷൣᙝ֎ w ೔ʑΞϧΰϦζϜ΍ςΫχοΫ͕ൃද͞Ε͍ͯΔ w ΩϟονΞοϓͯ͠ΈΔ w 2JJUBUBHTػցֶश w BS9JW$PNQVUFS7JTJPOBOE1BUUFSO3FDPHOJUJPO

Slide 122

Slide 122 text

Ԡ༻

Slide 123

Slide 123 text

࣮ݧத ෆద੾ը૾ϦΞϧλΠϜݕ஌ Ϣʔβʔ͔Β௨ใ͞Εͨෆద੾ը૾ ΠϥετΛඳըதʹ ϦΞϧλΠϜʹ ෆద੾ը૾Λݕग़ IUUQBOJNFLFONB[OFU IUUQDIJOLPDIFDLFSLFONB[OFU 5FOTPSqPXͰݸਓαʔϏεʹΞοϓϩʔυ͞Εͨෆద੾ͳΠϥετը૾Λݕग़͢Δ "OJNF.BLFS J04ΞϓϦ"OESPJEΞϓϦ ෆద੾ͳඳࣸ ͸΍Ί·͠ΐ͏

Slide 124

Slide 124 text

࣮ݧத ࣗಈண৭ϚϯΨϏϡʔϫ ը૾ग़యɿΏΊΈΔΏͼ͖͞ϚϯΨϘοΫεΠϯσΟʔζ ("/ (FOFSBUJWF"EWFSTBSJBM/FUXPSLTBS9JW

Slide 125

Slide 125 text

࣮ݧத ࿝؟޲͚ϚϯΨϏϡʔϫ ը૾ग़యɿ࿀ͱӕʢӳޠ൛ʣϚϯΨϘοΫε w 7JTJPO"1*

Slide 126

Slide 126 text

࣮ݧத ࿝؟޲͚ϚϯΨϏϡʔϫ ը૾ग़యɿ࿀ͱӕʢӳޠ൛ʣϚϯΨϘοΫε w 7JTJPO"1*

Slide 127

Slide 127 text

࣮ݧத ࿝؟޲͚ϚϯΨϏϡʔϫ ը૾ग़యɿ࿀ͱӕʢӳޠ൛ʣϚϯΨϘοΫε w 7JTJPO"1*

Slide 128

Slide 128 text

࣮ݧத ࿝؟޲͚ϚϯΨϏϡʔϫ ը૾ग़యɿ࿀ͱӕʢӳޠ൛ʣϚϯΨϘοΫε w 7JTJPO"1*

Slide 129

Slide 129 text

࣮ݧத ࿝؟޲͚ϚϯΨϏϡʔϫ ը૾ग़యɿ࿀ͱӕʢӳޠ൛ʣϚϯΨϘοΫε w 7JTJPO"1*

Slide 130

Slide 130 text

ΞΠσΞ࣍ୈʁ wͳ෦෼΋͋Δ wॳظJ1IPOFΞϓϦ։ൃϒʔϜͷࠒʹΑ͘ࣅͯΔʁ wཧ࿦͸೉͍͕͠ɺָ͍͠

Slide 131

Slide 131 text

·ͱΊ w7JTJPO$PSF.-Ͱը૾ೝࣝɾػցֶशٕज़ Λ࢖ͬͨΞϓϦͷ։ൃϋʔυϧ͕Լ͕ͬͨ wܧଓతͳਫ਼౓ͷ޲্ͷͨΊͷ؀ڥͮ͘Γ΋ॏཁ wΞΠσΞ࣍ୈͰՄೳੑ͕޿͕Δ wͨͩ͠ػցֶशͷجૅ஌ࣝ΋΍͸Γॏཁ

Slide 132

Slide 132 text

ػցֶशʹαΠΤϯςΟετ͚ͩͷ΋ͷ ͬͯ͜ͱ͸·ͬͨ͘ͳ͍ʂ

Slide 133

Slide 133 text

DIBMMFOHF

Slide 134

Slide 134 text

ࢀߟจݙ w ͍Β͢ͱ΍ʮΞΠυϧʯͷݕࡧ݁Ռ w .BDIJOF-FBSOJOH"QQMF w ਂ૚ֶश%FFQ-FBSOJOHʢۙ୅Պֶࣾʣ w ਂ૚ֶशʢػցֶशϓϩϑΣογϣφϧγϦʔζʣ w θϩ͔Β࡞Δ%FFQ-FBSOJOH w 5FOTPSqPXCFHJOOFST w DJGBS w ("/ (FOFSBUJWF"EWFSTBSJBM/FUXPSLTBS9JW w )PUTXBQQJOH$PSF.-NPEFMTPOUIFJ1IPOF w إೝࣝҐஔ߹Θͤͷॏཁੑ