https://manabiya.tech
ΛࢭΊͳ͍ ػցֶशͷΓํΫοΫύουגࣜձࣾɹછ୩༔Ұ."/"#*:"
View Slide
ࣗݾհ છ୩༔Ұ
ϨγϐɿສҎ্ࠃͷ݄ؒར༻ऀɿສਓ
ରԠݴޠɿݴޠϲࠃւ֎ͷ݄ؒར༻ऀɿສਓҎ্
ΫοΫύουݚڀ։ൃ෦ ݄ʹൃ ࢲ͕ଐ͞Εͨͷಉ࣌ظ ໊࣌ͷϝϯόʔ ݄ݱࡏࠃʹ໊ւ֎ʹ໊
ྉཧ͖Ζ͘ΈࠐΈχϡʔϥϧωοτϫʔΫʹΑΔྉཧը૾ͷࣗಈೝࣝεϚʔτϑΥϯͷࣸਅͷɺྉཧࣸਅΛࣗಈతʹऩूه
ྉཧ͖Ζ͘ສਓҎ্ͷϢʔβʔ͕ར༻ສຕҎ্ͷྉཧࣸਅΛه݄ݱࡏ
ͦͷଞػցֶशϓϩδΣΫτ ը૾ੳʹΑΔϨγϐͷྨ ࡐྉ໊ͷਖ਼نԽ ে༉ γϣʔϢ> ϑΟʔυόοΫͷࣗಈλά͚ FUD
લஔ͖
l લུʮ࣭ʯ·Ͱ͍͔ͳ͍͕ؾʹͳ͍ͬͯΔ͜ͱɺ ʮճʯΛΓ͍͕ͨͳ͔ͳ͔Δػձ͕ͳ͔ͬͨ͜ͱɻ ͦ͏͍ͬͨٙΛຊத͔ΒूΊɺ ΧϯϑΝϨϯεΛ௨ͯ͡ղܾࡦΛݟग़͠ɺܙΛੜΈग़͢ɻ ͜Ε͕ɺ."/"#*:"Λ։࠵͢Δ͍Ͱ͢ɻzIUUQTNBOBCJZBUFDI
l લུʮ࣭ʯ·Ͱ͍͔ͳ͍͕ؾʹͳ͍ͬͯΔ͜ͱɺ ʮճʯΛΓ͍͕ͨͳ͔ͳ͔Δػձ͕ͳ͔ͬͨ͜ͱɻ ͦ͏͍ͬͨٙΛຊத͔ΒूΊɺ ΧϯϑΝϨϯεΛ௨ͯ͡ղܾࡦΛݟग़͠ɺܙΛੜΈग़͢ɻ ͜Ε͕ɺ."/"#*:"Λ։࠵͢Δ͍Ͱ͢ɻzIUUQTNBOBCJZBUFDI՝ͷڞ༗ղܾࡦͷྻڍͱੳ
lຊηογϣϯͰ·ͣػցֶशΛऔΓೖΕͨ৫ʹ͓͚Δ ՁΛ્͋Δ͍ಷԽͤ͞Δز͔ͭͷཁҼΛࢦఠ͠ɺ ͦΕΒͷཁҼʹ͍ͭͯ։ൃج൫ΤϯδχΞϦϯάɺ νʔϜߏ༷ʑͳ͔֯Βߟ͠·͢ɻ·ͨ͞Βʹɺ ͦͷΑ͏ͳ՝ʹର͢ΔΫοΫύουͷऔΓΈΛհ͠·͢ɻz
lຊηογϣϯͰ·ͣػցֶशΛऔΓೖΕͨ৫ʹ͓͚Δ ՁΛ્͋Δ͍ಷԽͤ͞Δز͔ͭͷཁҼΛࢦఠ͠ɺ ͦΕΒͷཁҼʹ͍ͭͯ։ൃج൫ΤϯδχΞϦϯάɺ νʔϜߏ༷ʑͳ͔֯Βߟ͠·͢ɻ·ͨ͞Βʹɺ ͦͷΑ͏ͳ՝ʹର͢ΔΫοΫύουͷऔΓΈΛհ͠·͢ɻz՝ͷڞ༗ղܾࡦͷྻڍͱੳ
ʰΛࢭΊͳ͍ػցֶशͷΓํʱ ػցֶशʹऔΓΉݱʹ͓͚Δ՝Λࢦఠ͠ɺੳ͠·͢ɻ
ΞδΣϯμ ͡ΊʹਓೳϒʔϜͱݬ໓ظ ΛࢭΊͳ͍ػցֶशͷΓํʙ৫ɾνʔϜฤʙ αʔϏε։ൃͱػցֶश ػցֶशϓϩδΣΫτ ΛࢭΊͳ͍ػցֶशͷΓํʙݸਓฤʙ ૯߹֨ಆٕͱͯ͠ͷػցֶश
ਓೳϒʔϜͱݬ໓ظ
ਓೳϒʔϜ ʰୈ࣍ਓೳϒʔϜʱ ը૾ྨʹ͓͚ΔਂֶशͷՌΛ͖͔͚ͬͱ͢Δ ਓೳ࣮ݱͷखஈͷ̍ͭͱͯ͠ػցֶशͷࢿʗظߴ·Δ ϋʔυΣΞʗιϑτΣΞʹ͔͔ΘΒͣ͋ΒΏΔྖҬʹԠ༻͞ΕΑ͏ͱ͍ͯ͠Δ ΫοΫύουͷ༷ͳαʔϏε։ൃͷݱྫ֎Ͱͳ͍
IUUQXXXHBSUOFSDPKQQSFTTIUNMQSIUNM
ϒʔϜ͔Βݬ໓ظ "*ʹظ͕աʹൃͨ͠ͷͪʰౙʱ͕๚ΕΔͱ͍͏ྺ࢙͕͋Δ ݬ໓ظΛΓӽ͍ͯͨ͘Ίʹݱͷզʑ͕͖͢͜ͱ ʰΛࢭΊͳ͍ػցֶशͷΓํʱ ࠓճɺαʔϏε։ൃݱͱͯ͠ͷΫοΫύουͱ͍͏ڥͰಘΒΕͨݟΛத৺ʹɺ͜ͷ՝ʹ͍ͭͯߟ͍͖͑ͯ·͢
ΛࢭΊͳ͍ػցֶशͷΓํ৫ɾνʔϜฤ
ΞδΣϯμ ͡ΊʹਓೳϒʔϜͱݬ໓ظ ΛࢭΊͳ͍ػցֶशͷΓํʙ৫ɾνʔϜฤʙ αʔϏε։ൃͱػցֶश ػցֶशϓϩδΣΫτ ΛࢭΊͳ͍ػցֶशͷΓํʙݸਓฤʙ ૯߹֨ಆٕͱͯ͠ͷػցֶश ͡ΊʹਓೳϒʔϜͱݬ໓ظ ΛࢭΊͳ͍ػցֶशͷΓํʙ৫ɾνʔϜฤʙ αʔϏε։ൃͱػցֶश ػցֶशϓϩδΣΫτ ΛࢭΊͳ͍ػցֶशͷΓํʙݸਓฤʙ ૯߹֨ಆٕͱͯ͠ͷػցֶश
αʔϏε։ൃͱػցֶश αʔϏε։ൃͰػցֶशΛ͍͍ͨͱ͍͏χʔζ͕૿͍͑ͯΔ ਓೳϒʔϜʹґΔͱ͜Ζ͕େ͖͍ ଟ ʰػցֶशΛ͏ʱͱʁ
՝ൃݟ ΰʔϧઃఆσʔλऩूσʔλՃ ੳ &%"ֶशධՁݕূຊ൪ධՁݕূ
͏࡞Δ՝ൃݟ ΰʔϧઃఆσʔλऩूσʔλՃ ੳ &%"ֶशධՁݕূຊ൪ධՁݕূσϓϩΠ
ྫϞσϧͷ"1*ԽʹඞཁͳͷֶशࡁΈϞσϧ ͷEVNQ NPEFM\QC I ^"1* BQQQZ )551 T&OEQPJOU QSFEJDU JOGPͱ͔ ϞσϧͷಡΈࠐΈͱ*0ϋϯυϥ࡞ۀطଘγεςϜʗΠϯϑϥͷΠϯςάϨʔγϣϯ -#ɺϞχλϦϯάɺ%/4ʑ࣮ߦڥ %PDLFSpMF
ྫϞσϧͷ"1*ԽʹඞཁͳͷֶशࡁΈϞσϧ ͷEVNQ NPEFM\QC I ^"1* BQQQZ )551 T&OEQPJOU QSFEJDU JOGPͱ͔ ϞσϧͷಡΈࠐΈͱ*0ϋϯυϥ࡞ۀطଘγεςϜʗΠϯϑϥͷΠϯςάϨʔγϣϯ -#ɺϞχλϦϯάɺ%/4ʑ࣮ߦڥ %PDLFSpMFػցֶशϞσϧͷσϓϩΠʹ खؒͱ͕͔͔࣌ؒΔ
def is_food_image(self, image_io):image = Image.open(image_io)result = self.classifier.infer(image)return result == Category.foodར༻ྫྉཧ͖Ζ͘ͷ߹ύοέʔδԽ͞ΕͨػցֶशϞσϧͷݺͼग़͠ ͋Δ͍҉ͳ"1*ίʔϧ
def is_food_image(self, image_io):image = Image.open(image_io)result = self.classifier.infer(image)return result == Category.foodྫྉཧ͖Ζ͘ͷ߹ύοέʔδԽ͞ΕͨػցֶशϞσϧͷݺͼग़͠ ͋Δ͍҉ͳ"1*ίʔϧέʔεʹΑΔ͕αʔϏε։ൃͱ͍͏จ຺ʹ͓͍ͯ ػցֶशϞσϧίʔυͰ࣮͞ΕͨϩδοΫ ͱಉʹѻΘΕ͏Δ
͏࡞ΔϨγϐྨثͷΧςΰϦʹ ʰຑം౾ʱΛͯ͠Έ͍ͨिؒ͘Β͍͔͔ΔͳϚδ͔ʂif category == 'ΧϨʔ':foo()+ elif category == 'ຑം౾':+ bar()՝ൃݟ ΰʔϧઃఆσʔλऩूσʔλՃ ੳ &%"ֶशධՁݕূຊ൪ධՁݕূ
αʔϏε։ൃͱϞσϧͷ։ൃʗσϓϩΠͷεϐʔυײʹΪϟοϓ͕͋Δ
Ͳ͏͢Εʁ ਓࡐஔͷ࠷దԽ
ਓࡐஔͷ࠷దԽ αʔϏε։ൃʹػցֶशΛԠ༻͢Δ͜ͱʹෆ׳Εͳݱͷ߹ αʔϏε։ൃʹٻΊΒΕΔ։ൃεϐʔυͱ ػցֶशϞσϧͷ։ൃͱσϓϩΠʹ͔͔Δ࣌ؒ ྆ऀʹΪϟοϓ͕͋Δɺͱ͍͏Λڞ༗ͯ͠าΈدΔ ྫ͑ਓతϦιʔεͷஔΛݟͯ͠ΈΔ ྫɿαʔϏε։ൃଆͷΤϯδχΞ͕ϞσϧͷσϓϩΠΛख͏
Ͳ͏͢Εʁ ਓࡐஔͷ࠷దԽ औΓΉͷݟ͠ Ϟσϧ։ൃʗσϓϩΠͷޮԽ
Ͳ͏͢Εʁ ਓࡐஔͷ࠷దԽ औΓΉͷݟ͠ Ϟσϧ։ൃʗσϓϩΠͷޮԽ։ൃεϐʔυͷҧ͍ػցֶशಛ༗ͷίετΛՃຯ্ͨ͠ͰɺػցֶशΛར༻ͯ͠औΓΉ͖ͳͷ͔ߟ͑ͳ͓͢IUUQTSFTFBSDIHPPHMFDPNQVCTQVCIUNMʰػցֶशٕज़తෛ࠴ͷߴརି͠ ҙ༁ʱ
Ϟσϧ։ൃʗσϓϩΠͷޮԽ ։ൃσʔλͷੳɺ࣮ݧɺϞσϧͷֶश σϓϩΠύοέʔδԽɺ"1*Խ
ػցֶशج൫ ػցֶशʹؔΘΔ࣮ݧ։ൃͷεϐʔυΛ্͛Δҝͷج൫ ΫοΫύουݚڀ։ൃ෦෦ࣗͰੵۃతʹվળ͍ͯ͠ΔIUUQTTQFBLFSEFDLDPNBZFNPTNBDIJOFMFBSOJOHQMBUGPSNBUDPPLQBEIUUQTTQFBLFSEFDLDPNBZFNPTBDDFMFSBUFNBDIJOFMFBSOJOHXJUIBXT
ΦϯσϚϯυ(16࣮ݧڥ
ΦϯσϚϯυ(16࣮ݧڥ ւ֎ؚΊ໊ͷϝϯόʔ͕͍Δ ෳͷϓϩδΣΫτʹෳͷਓ͕औΓΉ ࣮ݧ༻ͷܭࢉػڥΛͲͷΑ͏ʹ༻ҙ͢Δ͔ $IBUCPUܦ༝ͰىಈఀࢭՄೳͳΦϯσϚϯυ(16࣮ݧڥ
ʰ࣮ݧ༻Πϯελϯε࡞ͬͯʱઃఆࡁΈΠϯελϯεͷ εφοϓγϣοτ ".*ATTIBZFNPTXPSLCFODIEOTDPNQBOZA$SFBUF
ʰ࣮ݧ༻Πϯελϯε࡞ͬͯʱઃఆࡁΈΠϯελϯεͷ εφοϓγϣοτ ".*ATTIBZFNPTXPSLCFODIEOTDPNQBOZA$SFBUFIUUQTTQFBLFSEFDLDPNBZFNPTNBDIJOFMFBSOJOHQMBUGPSNBUDPPLQBEৄ͘͠
ϓϩδΣΫτςϯϓϨʔτʹΑΔ࣮ݧ࠶ݱੑͷ্
ྫͷϓϩδΣΫτͷ ࣮ݧ͕͍ͨ͠OPUFCPPLͱεΫϦϓτϨϙδτϦʹɺσʔλࠓखݩʹ͔͠ͳ͍ʜ͍
࣮ݧ࠶ݱੑͷԼ ͍͍ͭͭ࠶ݱੑͷͳ͍ঢ়ଶΛ࡞ͬͯ͠·͏ ϫʔΫϑϩʔཧͱ͔େֻ͔Γͳͷͪΐͬͱʜ
$PPLJFDVUUFSʹΑΔςϯϓϨʔτԽ ϓϩδΣΫτͷςϯϓϨʔτԽ SVCZʹCVOEMFS͕͋Δ͚Ͳʜ IUUQTHJUIVCDPNBVESFZSDPPLJFDVUUFS 1ZUIPO +JOKBͷ൚༻ͳϓϩδΣΫτςϯϓϨʔτੜπʔϧ ಠࣗͷςϯϓϨʔτΛΉ͜ͱ͕ग़དྷɺσʔλαΠΤϯε༻ͷ͋Δ IUUQTHJUIVCDPNESJWFOEBUBDPPLJFDVUUFSEBUBTDJFODF
ESJWFOEBUBDPPLJFDVUUFSEBUBTDJFODF A.BLFpMFA֤छศརUBSHFUͱ͔ઃఆͱ͔ ASFRVJSFNFOUTUYUAґଘϥΠϒϥϦͷϦετ ֤छطσΟϨΫτϦ ATSDEBUBA ATSDNPEFMAͦΕͧΕσʔλͷੜʗલॲཧ༻ɺϞσϧͷֶश༻εΫϦϓτΛஔ͘ AEBUBAHJUJHOPSF͞ΕΔɺ.BLFpMFͷUBSHFUͰ4ͱTZOD
ྫͷϓϩδΣΫτͷ ࣮ݧ͕͍ͨ͠HJUDPQBOZDPNSFTFBSDISFDJQFBOBMZTJT͜͜ʙHJUDMPOF[email protected]@[email protected]
EPDLFSTDJFODFDPPLJFDVUUFSEPDLFSTDJFODF IUUQTHJUIVCDPNEPDLFSTDJFODFDPPLJFDVUUFSEPDLFSTDJFODF EPDLFSΛར༻͠ɺϓϩδΣΫτͷ࣮ݱੑΛ͞ΒʹߴΊΔ OPUFCPPLͷ্ཱͪ͛1PSUGPSXBSEߦ͏UBSHFU
Ϟσϧ։ൃʗσϓϩΠͷޮԽ ։ൃσʔλͷੳɺ࣮ݧɺϞσϧͷֶश ΫϥυڥΛ׆͔ͨ͠ΦϯσϚϯυ(16࣮ݧڥͷ࣮ݱ ϓϩδΣΫτͷςϯϓϨʔτԽʹΑΔ࣮ݧ࠶ݱੑͷ্ σϓϩΠύοέʔδԽɺ"1*Խ
ػցֶशϞσϧͷσϓϩΠ ͱ αʔόʔͷຒΊࠐΈʗύοέʔδʗ"1*
ػցֶशϞσϧͷσϓϩΠ ͱ αʔόʔͷຒΊࠐΈʗύοέʔδʗ"1* ϞσϧΛಡΈࠐΜͰɺ֎෦ϦΫΤετʹԠͯ͡ϞσϧΛ ݺͼग़͢ബ͘খ͞ͳ"1*Λ࣮͢Δ
"1* .JDSPTFSWJDF͕͍͍ཧ༝ ͦͷଞͷख๏ ྫ͑ΞϓϦαʔόʔͷΈࠐΈͱൺͯ ػցֶशϞσϧͷσϓϩΠख๏ͱͯ͠ద͍ͯ͠Δཧ༝
"1* .JDSPTFSWJDF͕͍͍ཧ༝ ػցֶशͱΞϓϦͰҟͳΔ࣮ߦڥ͕ར༻Ͱ͖Δ ҟͳΔݴޠɺ$16(16 "1*ͷεέʔϧʹΑͬͯߴεϧʔϓοτͷ࣮ݱՄೳ ػցֶशϞσϧʹΑΔਪॏ͍ ྨثɺͷϓϦϛςΟϒͳػೳͷ࠶ར༻ ։ൃʹ͓͚Δ୲ൣғͷڥքઢͱͯ͠࠷ద ͩͱࢥ͏
࠶ܝϞσϧͷ"1*ԽʹඞཁͳͷֶशࡁΈϞσϧ ͷEVNQ NPEFM\QC I ^"1* BQQQZ )551 T&OEQPJOU QSFEJDU JOGPͱ͔ ϞσϧͷಡΈࠐΈͱ*0ϋϯυϥ࡞ۀطଘγεςϜʗΠϯϑϥͷΠϯςάϨʔγϣϯ -#ɺϞχλϦϯάɺ%/4ʑ࣮ߦڥ %PDLFSpMFػցֶशͱͷυϝΠϯڞ༗େখ
࠶ܝϞσϧͷ"1*ԽʹඞཁͳͷֶशࡁΈϞσϧ ͷEVNQ NPEFM\QC I ^"1* BQQQZ )551 T&OEQPJOU QSFEJDU JOGPͱ͔ ϞσϧͷಡΈࠐΈͱ*0ϋϯυϥ࡞ۀطଘγεςϜʗΠϯϑϥͷΠϯςάϨʔγϣϯ -#ɺϞχλϦϯάɺ%/4ʑ࣮ߦڥ %PDLFSpMFػցֶशͱͷυϝΠϯڞ༗େখ͜ͷล͕ಛʹਏ͍
ϚωʔδυͳσϓϩΠج൫ ͋Δ͍ࣗ࡞ͷͦΕ Ϟσϧͷ"1*Խɺ࣮ߦڥͷඋͳͲڞ௨Խ͢Δ༨͕͋Δ ڞ௨Խ͞Εͨج൫Λఏڙ͢ΔࣄͰɺσϓϩΠखॱΛॖग़དྷΔ ৄ͘͠IUUQTTQFBLFSEFDLDPNBZFNPTNBDIJOFMFBSOJOHQMBUGPSNBUDPPLQBE
ΛࢭΊͳ͍ػցֶशͷΓํݸਓฤ
૯߹֨ಆٕͱͯ͠ͷػցֶश ʰػցֶश͕ग़དྷΔΑ͏ʹͳΔʱͱ
1ZUIPO%PDLFSTDJLJUMFBSO5FOTPS'MPX.F$BC42-,FSBTϕΠζ౷ܭχϡʔϥϧωοτ"84 ($1347.LBHHMF
૯߹֨ಆٕͱͯ͠ͷػցֶश ʰػցֶश͕ग़དྷΔΑ͏ʹͳΔʱͱ ϒʔϜख͍ɺใ͕൙ཞ͍ͯ͠Δ Α͏ʹݟ͑Δ ʰ͋Ε͜Εֶͼͨա͗Δʱ ݸਓʹͱͬͯɺඪʗతͷ۩ମԽ͕ॏཁʹͳ͖͍ͬͯͯΔ ྫ͑ʰαʔϏε։ൃʹػցֶशΛར༻͢Δதن dਓͷݱͰɺཱࣗͯ͠ՁΛੜΈग़ͤΔΤϯδχΞʹͳΔʱͱ͔
૯߹֨ಆٕͱͯ͠ͷػցֶश Ұํ͔֬ʹݱͰΔ͖͜ͱଟ͍ ͔͠ݱʹΑͬͯҟͳΔͷͰɺ ݄ฒΈ͕ͩຊͰֶͳ͍͜ͱ͕ଟ͍ Γ࣮Ͱػցֶशʹ৮ΕΔͷ͕ۙಓ σʔλੳίϯϖྑ͍ ʰݶΒΕͨظؒͷதͰσʔλΛੳ͠ɺείΞΛܧଓతʹվળ͢Δʱ ·͋·࣮͋ͬΆ͍
·ͱΊ ʰΛࢭΊͳ͍ػցֶशͷΓํʱ αʔϏεͷ࣮ݱखஈͱͯ͠ͷػցֶशʹର͢Δظӈݞ্͕Γ ݱͱͯ͠ظʹԠ͑ଓ͚͍͖͍ͯͨͰ͢Ͷɻ
8FSFIJSJOHIUUQTDPPLQBEKPCT