Upgrade to Pro — share decks privately, control downloads, hide ads and more …

絵を読む技術 Pythonによるイラスト解析 / The Art of Reading Illustrations

Hirosaji
October 16, 2021

絵を読む技術 Pythonによるイラスト解析 / The Art of Reading Illustrations

PyCon JP 2021 (2021/10/16) @Hirosaji @Hirosaji_ez
https://2021.pycon.jp/time-table/?id=273843

=====
Title (English): The Art of Reading Pictures: Illustration Analysis in Python

Hirosaji

October 16, 2021
Tweet

More Decks by Hirosaji

Other Decks in Technology

Transcript

  1. 1Z$PO+1

    ֆΛಡΉٕज़
    1ZUIPOʹΑΔΠϥετղੳ
    )JSPTBKJ !IJSPTBKJ
    ʗͻΖ͞͡ !IJSPTBKJ@F[

    View full-size slide

  2. ʮͻΖ͞͡



    )JSPTBKJʯͱ͍͏໊લͰ׆ಈ͢Δਓɻࡏ୐ۈ຿ΛΩοΧέʹΠϥετϨʔλʔۀΛ࢝Ίͨɻ
    ϑϦʔΠϥετϨʔλʔ
    ͻΖ͞͡ʢ!IJSPTBKJ@F[ʣ
    ɾ1ZUIPOྺ̑೥͘Β͍
    ɾΠϥετΛ؍Δͷ͕޷͖
    ɾσδλϧֆࢣ̎೥໨
    ɾΠϥετΛඳ͘ͷ͕޷͖
    ͜ͷϓϨθϯΛ͢Δਓ
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ

    View full-size slide

  3. ΠϥετΛ؍Δͷ΋ඳ͘ͷ΋޷͖Ͱɺ༔ʑࣗదʹΠϥετϥΠϑΛָ͠ΜͰ͍͕ͨʜ
    ͜ͷϓϨθϯΛ͢ΔܦҢʢىঝస݁ʣ
    ྑ͍ΠϥετΛඳ͍ͧ͘ʂ٩ Т
    و ͜ͷΠϥετ޷͖ʂ ͬ
    ‸= ͟
    ͟͞͞
    ❤︎
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ
    ϑϦʔΠϥετϨʔλʔ
    ͻΖ͞͡ʢ!IJSPTBKJ@F[ʣ

    View full-size slide

  4. ͋Δ೔ɺ༏ΕͨΠϥετʹࠐΊΒΕΔઓུ΍ཧ۶Λ஌Γ͍ͨɺͱ͍͏೰ΈΛ๊͑Δɻ
    ͜ͷϓϨθϯΛ͢ΔܦҢʢىঝస݁ʣ
    ΋ͬͱઓུతʹ
    ΠϥετΛඳ͖͍ͨͳʜ
    ͳΜͰऒ͔Εͨͷ͔
    ཧ۶͕஌Γ͍ͨͳʜ
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ
    ϑϦʔΠϥετϨʔλʔ
    ͻΖ͞͡ʢ!IJSPTBKJ@F[ʣ

    View full-size slide

  5. ͦΜͳ೰ΈղܾͷͨΊɺΠϥετͷٕ๏ॻΛಡΈړΓɺҰํͰΤϏσϯεΛ୳ͯ͠ཧ۶Λ௥͍ٻΊͨɻ
    ͜ͷϓϨθϯΛ͢ΔܦҢʢىঝస݁ʣ
    ʢΠϥετͷٕ๏ॻΛಡΉʣ ʢͰ͖ΔݶΓΤϏσϯεΛ୳͢ʣ
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ
    ϑϦʔΠϥετϨʔλʔ
    ͻΖ͞͡ʢ!IJSPTBKJ@F[ʣ

    View full-size slide

  6. গͣͭ͠஌͕ࣝମܥԽ͖ͯͯ͠ɺ1ZUIPOͰ࣮૷͠΍͍͢͜ͱʹؾͮ͘ɻࠓճ͸ͦͷ஌ݟΛ঺հ͢Δɻ
    ͜ͷϓϨθϯΛ͢ΔܦҢʢىঝస݁ʣ
    গͣͭ͠
    ந৅Խʗߏ଄ԽͰ͖͖ͯͨʜʂ
    ͜Εɺ
    1ZUIPOͰ࣮૷Ͱ͖ΔͷͰ͸ʁ
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ
    ϑϦʔΠϥετϨʔλʔ
    ͻΖ͞͡ʢ!IJSPTBKJ@F[ʣ

    View full-size slide

  7. ͜ͷϓϨθϯ͸ՊֶʻܦݧଇΛॏࢹ
    ݫີͳՊֶతূ໌͸ͳ͍͕ɺΠϥετϨʔλʔ͕Ͳͷ෦෼Λେࣄʹ͍ͯ͠Δ͔ɺͦͷΤοηϯεΛ఻͑Δɻ
    લஔ͖⚠
    🙆ڊঊͨͪͷܦݧଇ
    🙆ֆࢣͷυϝΠϯ஌ࣝ
    🙆ڊਓͷݞͷ্ͷίʔυ
    🙅ݫີͳݱ୅ՊֶతΞϓϩʔν
    🙅ը૾ੜ੒ܥͷ.-ٕज़
    🙅ઐ໳ੑͷߴ͍ίʔυ
    આ໌͢Δ͜ͱ ৮Εͳ͍͜ͱ

    View full-size slide

  8. ֆΛಡΉٕज़Λ਎ʹ͚ͭΔ
    ͱ͍͏͜ͱͰɺࠓճͷ໨త͸ٕ๏ॻΛϕʔεʹɺΠϥετΛ໨ͰಡΉʗ1ZUIPOͰಡΉٕज़Λ஌Δ͜ͱɻ
    ͜ͷϓϨθϯͷ໨త
    ஌ࣝͷϕʔε͸zΠϥετͷٕ๏ॻz

    View full-size slide

  9. ֆΛಡΉٕज़Λ਎ʹ͚ͭΔ
    ஌ࣝͷϕʔε͸zΠϥετͷٕ๏ॻz
    ΠϥετΛಡΉͱ͸ɺ͢ͳΘͪzֆࢣͷૂ͍zΛಡΉ͜ͱɻࠓճ͸͜ͷzֆࢣͷૂ͍Λඥղ͘ɻ
    ͜ͷϓϨθϯͷ໨త
    ֆࢣͷૂ͍

    ΠϥετϨʔλʔ

    View full-size slide

  10. ɾ৘ใ఻ୡͷ࣌୹
    ɾݴ༿ʹͰ͖ͳ͍จ຺ͷՄࢹԽ
    l˓ºͰΘ͔Δ෩ܠ࡞ըਆٕ࡞ըγϦʔζ͚͞ϋϥεc,"%0,"8"ʢʣlΑΓҰ෦ཁ໿
    © ͻΖ͞͡
    ֆࢣͷૂ͍Λ஌ΔͨΊɺ·ͣΠϥετͷ໨తΛ֬ೝ͢ΔɻΠϥετͷ໨త͸ҰݴͰݴ͏ͱʮઆ໌ͷ࣌୹ʯɻ
    ֆࢣͷૂ͍ͱ͸ɿΠϥετͷ໨త
    ͤ ͭ Ί ͍
    ΠϥετϨʔλʔ

    View full-size slide

  11. 1PSUSBJUPGB.BO+BO.BVSJUT2VJOLIBSE
    ʛϝτϩϙϦλϯඒज़ؗʢ1VCMJDEPNBJOʣ
    ֆը Πϥετ
    © ͻΖ͞͡
    νϟʔτ
    © )JSPTBKJ
    ଟ จ຺ɾ৘ใྔ গ
    จ຺Λগ͠ߜͬͯɺԿ͔Λઆ໌͢Δ໾ׂΛ࣋ͭΠϥετɻzͲ͜z͔Λڧௐ͠ɺzͳʹz͔Λ఻͍͑ͨ͸ͣɻ
    ֆࢣͷૂ͍ͱ͸ɿΠϥετͷҐஔ෇͚
    ΠϥετϨʔλʔ

    View full-size slide

  12. ֆࢣ͕zͳʹzΛ఻͍͑ͨͷ͔
    ɾΠϥετͰڧௐ͞ΕΔཁૉΛ୳Δ
    ɾ1ZUIPOͰয఺Λݕग़͢Δ
    ɾΠϥετͷߏ੒ཁૉ͝ͱͷػೳΛ୳Δ
    ɾ1ZUIPOͰߏ੒ཁૉ͝ͱͷಛ௃Λ෼ੳ͢Δ
    ֆࢣ͕zͲ͜zΛ఻͍͑ͨͷ͔
    ΠϥετϨʔλʔ
    ࠓճͷϓϨθϯͷྲྀΕ͕ͪ͜Βɻֆࢣͷૂ͍Λඥղ͖ͳ͕Βɺ֤ষͰղઆʹԊͬͨ1ZUIPOΛ঺հ͢Δɻ
    આ໌͢ΔྲྀΕ
    ͸͡Ίʹ ֆΛಡΉ͜ͱ͸ɺֆࢣͷૂ͍ΛಡΈͱΔ͜ͱ
    ΠϥετϨʔλʔ
    Ξϖϯυ

    View full-size slide

  13. ֆࢣ͕zͲ͜zΛ఻͍͑ͨͷ͔
    ̍
    ΠϥετϨʔλʔ

    View full-size slide

  14. σοαϯྗʗண࠼ྗ
    ݸੑʗηϯε
    ߏਤબͼ
    Ұൠʹɺֆࢣ͸఻͍͑ͨzͲ͜z͔Λڧௐ͢Δɻͦͷڧௐʹ࠷΋ॏཁͳٕೳ͸ɺ࣍ͷ̏ͭͷ಺ͲΕʁ
    ڧௐʹҰ൪ॏཁͳٕೳ͸ͲΕʁ
    ΠϥετʹٻΊΒΕΔٕೳ

    View full-size slide

  15. σοαϯྗʗண࠼ྗ
    ݸੑʗηϯε
    ߏਤબͼ
    σοαϯʗண৭ྗ͸ɺਖ਼֬ͳਓମ΍ΦϒδΣΫτΛ໛ͨ͢Ίͷೳྗɻֆࢣͷجૅೳྗ͕ͩɺڧௐʹ͸ແؔ܎ɻ
    ڧௐʹҰ൪ॏཁͳٕೳ͸ͲΕʁ
    ΠϥετʹٻΊΒΕΔٕೳ
    Ϟϊͷܗ΍৭ɺҐஔؔ܎Λਖ਼֬ʹ࠶ݱ͢Δྗ

    View full-size slide

  16. σοαϯྗʗண࠼ྗ
    ݸੑʗηϯε
    ߏਤબͼ
    ݸੑʗηϯε͸ɺֆࢣʹͱͬͯͷࡶຯΛল͖ɺັྗΛތு͢ΔೳྗɻֆฑʹӨڹ͠ɺେ͖͘มߋͰ͖ͳ͍ɻ
    ڧௐʹҰ൪ॏཁͳٕೳ͸ͲΕʁ
    ΠϥετʹٻΊΒΕΔٕೳ
    ૷০΍σϑΥϧϝͰɺࡶຯΛল͍ͯັྗΛҾ͖ग़͢ྗ

    View full-size slide

  17. σοαϯྗʗண࠼ྗ
    ݸੑʗηϯε
    ߏਤબͼ
    ߏਤબͼ͸ɺ఻͍͑ͨετʔϦʔ΍ײ৘͕௚ײతʹ఻ΘΔֆΛ࡞ΔͨΊʹඞཁɻڧௐͷ5JQT͕୔ࢁ͋Δɻ
    ڧௐʹҰ൪ॏཁͳٕೳ͸ͲΕʁ
    ΠϥετʹٻΊΒΕΔٕೳ
    ͦͷֆͰ఻͍͑ͨετʔϦʔ΍ײ৘Λ఻͑ΔͨΊͷઃܭͷྗ

    View full-size slide

  18. ఻͍͑ͨετʔϦʔ΍ײ৘Λ఻͑Δը໘ઃܭ
    ը໘ͷܗ
    ˒
    ओʹΩϟϯόεͷॎԣൺ
    ΛܾΊΔ
    ਓ΍෺ͷ഑ஔ
    ਓ΍෺ͷେ͖͞ʗ઎༗౓
    Λߟ͑ͯ഑ஔ͢Δɻ
    ޫͱΧϝϥͷ഑ஔ
    ΧϝϥͷҐஔ΍޲͖ɺ
    ϨϯζͷछྨΛܾΊΔɻ
    ߏਤ͸ɺߏਤ࡞ΓʹඞཁͳϓϩηεΛΈΔʹʮը໘ઃܭʯͱݴ͍׵͑ΒΕΔɻ
    ߏਤͱ͸

    View full-size slide

  19. ఻͍͑ͨετʔϦʔ΍ײ৘Λ఻͑Δը໘ઃܭ
    ը໘ͷܗ
    ˒
    ओʹΩϟϯόεͷॎԣൺ
    ΛܾΊΔ
    ਓ΍෺ͷ഑ஔ
    ਓ΍෺ͷେ͖͞ʗ઎༗౓
    Λߟ͑ͯ഑ஔ͢Δɻ
    ޫͱΧϝϥͷ഑ஔ
    ΧϝϥͷҐஔ΍޲͖ɺ
    ϨϯζͷछྨΛܾΊΔɻ
    ߏਤ͸
    ߏਤͱ͸
    ˜6OJUZ5FDIOPMPHJFT+BQBO6$-
    ը໘ઃܭʹඞཁͳϓϩηε͸
    6OJUZͱಉ͡
    ʢϏϡʔઃఆɺΧϝϥɾޫݯɾΦϒδΣΫτͷ഑ஔʜʣ

    View full-size slide

  20. Πϥετ ߏਤ
    S
    Ұ఺ಁࢹʗ์ࣹߏਤ ͓͋Γߏਤ
    ΞϧϑΝϕοτߏਤ
    ̏෼ׂߏਤ
    ೔ͷؙߏਤ
    ର֯ઢߏਤ
    ໿ xxx,xxx݅ʢx,xxඵʣ
    ߏਤʹ͸Ԧಓύλʔϯ͕୔ࢁ͋Δʢͨͩ͠ະ੔ཧʣ
    ߏਤʹ͸ɺΠϥετʹඞཁͳ৭ΜͳΤοηϯε͕ڽॖͨ͠Ԧಓύλʔϯ͕ͨ͘͞Μ͋Δɻʢͨͩ͠ະ੔ཧʣ

    View full-size slide

  21. Πϥετ ߏਤ
    S
    Ұ఺ಁࢹʗ์ࣹߏਤ ͓͋Γߏਤ
    ΞϧϑΝϕοτߏਤ
    ̏෼ׂߏਤ
    ೔ͷؙߏਤ
    ର֯ઢߏਤ
    ໿ xxx,xxx݅ʢx,xxඵʣ
    ʲ੔ཧͯ͠ΈͨʳߏਤͷԦಓύλʔϯ
    ͦΕͧΕͷύλʔϯ͕ੜ·ΕͨܦҢΛௐ΂Δͱɺzয఺zͱzΧϝϥzͷ̎ͭͷ໨తͰ։ൃ͞Ε͍ͯͨɻ
    ᶃয఺ʢࢹઢʣΛίϯτϩʔϧ͢Δ
    ᶄΧϝϥΛίϯτϩʔϧ͢Δ
    ໨తผʹ෼ྨ͢Δͱɺ
    (

    View full-size slide

  22. ͜ͷ໨తͷߏਤΛ
    ಛʹൃలͤͨ͞ͷ͸੢༸ඒज़ɻ
    ΨϥςΞͷউརϥϑΝΤϩɾαϯςΟʢ໛ࣸʣʛϝτϩϙϦλϯඒज़ؗʢ1VCMJDEPNBJOʣ
    ɾґཔ͸फڭըͳͲɺओ໾ΛҾཱ͖ͨͤΔ୊ࡐ͕ଟ͔ͬͨ
    ɾࠓʹൺ΂ͯըࡐ͕ߴ͘ɺֆࢣ΋ґཔओ΋গͳ͔ͬͨ
    lֆΛݟΔٕज़໊ըͷߏ଄ΛಡΈղ͘ळాຑૣࢠcே೔ग़൛ࣾʢʣlଞΑΓ
    ʢ͓ͦΒ͘தੈҎ߱ʣ
    য఺ʢϑΥʔΧϧϙΠϯτʣ΁ͷࢹઢ༠ಋؚ͕·Εͨɺओ໾͕Ҿཱ͖ͭֆը͕ɺ੢༸ඒज़ʹ਺ଟ͘࢒Δɻ
    ߏਤͷྺ࢙ᶃɿয఺ʢ௒ͬ͘͟Γ൛ʣ
    ᶃয఺ʢࢹઢʣΛίϯτϩʔϧ͢Δ

    View full-size slide

  23. ֆͷͲ͜ʹࢹઢ͕མͱ͞Εͯ΋
    ओ໾͕Ҿཱ͖ͭΑ͏ʹ
    ΨϥςΞͷউརϥϑΝΤϩɾαϯςΟʢ໛ࣸʣʛϝτϩϙϦλϯඒज़ؗʢ1VCMJDEPNBJOʣ
    ɾֆͷ֎ʹࢹઢΛಀ͞ͳ͍Α͏ʹ͢Δ
    ɾয఺ʹࢹઢΛूΊΔ
    lֆΛݟΔٕज़໊ըͷߏ଄ΛಡΈղ͘ळాຑૣࢠcே೔ग़൛ࣾʢʣlଞΑΓ
    ྫʹࡌͤͨzΨϥςΞͷউརzͷΑ͏ʹɺओ໾Λয఺ͱ͢ΔͨΊͷ͞·͟·ͳ޻෉͕͞Ε͍ͯͨɻ
    ᶃয఺ʢࢹઢʣΛίϯτϩʔϧ͢Δ

    ߏਤͷྺ࢙ᶃɿয఺ʢ௒ͬ͘͟Γ൛ʣ

    View full-size slide

  24. ϥϑΝˑΤϩ!ݸల΍
    ৽࡞ඳ͍ͨΑɻ
    UXJUUFSDPNSB
    ff
    BFMMP@TBOUJ
    202X/XX/XX
    Πϥετաଟͷ͍·ɺয఺͕ແ͍ͱҰॠͰεΫϩʔϧ͞ΕΔɻউෛ͸Ұॠɻ෼͔Γ΍͍͢য఺͕ඞཁɻ
    ˠয఺ͷίϯτϩʔϧ͸ɺΠϥετք۾Ͱ௒ॏཁ
    ҰॠͰεΫϩʔϧ͞Εͯ͠·͏ʜ
    ˠΑΓ෼͔Γ΍͍͢ࢹઢ༠ಋ͕ඞཁ
    ྫ͑͹5XJUUFSͰ͸ɺ
    ̍ͭͷ౤ߘ͕໨ʹཹ·Δ࣌ؒ͸
    ΄ΜͷΘ͔ͣɻ
    ߏਤͷྺ࢙ᶃɿয఺ʢ௒ͬ͘͟Γ൛ʣ

    View full-size slide

  25. l'JMNNBLFST&ZFάελϘɾϝϧΧʔυcϘʔϯσδλϧʢʣlଞΑΓ
    өը͸ɺࣸਅΑΓଟ͘ͷ৘ใΛ఻͑ΒΕ͕ͨɺͦΕͰ΋·ͩઆ໌͖͠Εͳ͍ࡉ͔ͳจ຺͕͋ͬͨɻ
    ߏਤͷྺ࢙ᶄɿΧϝϥʢ௒ͬ͘͟Γ൛ʣ
    ᶄΧϝϥΛίϯτϩʔϧ͢Δ

    5IF5IJSE.BOʢʣCZ$BSPM3FFEʢ1VCMJDEPNBJOʣ
    μονΞϯάϧͷ୅දྫͱͯ͠
    ͜ͷ໨తͷߏਤΛ
    ಛʹൃలͤͨ͞ͷ͸өըۀքɻ
    ɾ̍ͭͷγʔϯͰ࢖͑ΔίϚ਺͸ݶΒΕ͍ͯΔ
    ɾਓͷ৺৘΍৔ͷۭؾͳͲɺࡉ͔ͳจ຺͸୆ࢺͰදݱͮ͠Β͍

    View full-size slide

  26. l'JMNNBLFST&ZFάελϘɾϝϧΧʔυcϘʔϯσδλϧʢʣlଞΑΓ
    ͦΜͳઆ໌ෆೳͳจ຺Λදݱ͢ΔͨΊɺΧϝϥΞϯάϧ΍ϨϯζΛ࢖ͬͨಠࣗͷදݱ͕։ൃ͞Εͨɻ
    ᶄΧϝϥΛίϯτϩʔϧ͢Δ

    5IF5IJSE.BOʢʣCZ$BSPM3FFEʢ1VCMJDEPNBJOʣ
    μονΞϯάϧͷ୅දྫͱͯ͠
    য఺Λίϯτϩʔϧ͢Δͱಉ࣌ʹ
    ɾϨϯζΛ௨ͯ͠ݟ͑Δը໘΍෺ཧݱ৅͕ར༻͞Εͨ
    ɾΞϯάϧΛ࢖ͬͨөըಠࣗͷදݱ͕։ൃ͞Εͨ
    ʢڕ؟ɾ޿֯ɺࣗࡱΓɺηϐΞɺϨϯζϑϨΞͳͲʣ
    ߏਤͷྺ࢙ᶄɿΧϝϥʢ௒ͬ͘͟Γ൛ʣ

    View full-size slide

  27. ͦͯ͠ɺzΧϝϥzͷ਺͕૿͑ΔݶΓɺͦͷzΧϝϥzΛίϯτϩʔϧ͢Δߏਤͷൃల͸ࢭ·Βͳ͍ɻ
    ˠlΧϝϥz͸ൃల͠ଓ͚͍ͯΔ
    ٕज़ͷਐาͱͱ΋ʹ։ൃ͞ΕΔzΧϝϥzͷ਺͚ͩɺߏਤͷ෯͸޿͕Δɻ
    ߏਤͷྺ࢙ᶄɿΧϝϥʢ௒ͬ͘͟Γ൛ʣ

    View full-size slide

  28. ᶃয఺ʢࢹઢʣΛίϯτϩʔϧ͢Δ
    ᶄΧϝϥΛίϯτϩʔϧ͢Δ
    ˠΠϝʔδ͕༰қͳͷͰɺղઆ͸লུ
    ˠֆࢣ͕఻͍͑ͨzͲ͜z͔Λڧௐ͢Δ໨తͳͷͰɺਂງΓ͢Δ
    ଓ͍ͯɺԦಓߏਤͷ໨తͷҰͭɺয఺ͷίϯτϩʔϧΛਂງͬͯʮֆࢣ͕zͲ͜zΛ఻͍͔͑ͨʯΛ୳Δɻ
    ʲ੔ཧͯ͠ΈͨʳߏਤͷԦಓύλʔϯʢ࠶ܝʣ

    View full-size slide

  29. த৺ࢹ
    ༗ޮࢹ໺
    पลࢹ໺
    Πϥετ
    º
    য఺
    lղ૾౓zͷ௿͍पลࢹ໺Ͱ΋ɺ
    ஫ҙ͕޲͖΍͍͢ͷ͕য఺ɻ
    য఺͸ɺຊೳతʹ஫ҙΛ޲͚ͯ͠·͏෦෼ɻͦͷຊೳΛར༻͠ɺΠϥετͷݟͯ΄͍͠෦෼͕ڧௐ͞ΕΔɻ
    য఺ͱ͸
    য఺ͷίϯτϩʔϧਂງ

    View full-size slide

  30. ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̑ͭʢҎ্͋Δ͔΋ʣ
    lࢹ֮৘ใॲཧͷجૅաఔԣ୔Ұ඙cੜ࢈ݚڀʢʣlଞΛू໿
    য఺ͱͳΓ͏Δཁૉ͸ɺ͍ΖΜͳจݙΛू໿͢Δͱɺ͜ͷ̑ͭʢҎ্͋Δ͔΋ʣʹ੔ཧͰ͖Δɻ
    Կ͕য఺ͱͳΔ͔
    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ

    View full-size slide

  31. lإ ͓Αͼ ώτͷݕग़աఔͷݚڀԕ౻ޫஉcجૅ৺ཧֶݚڀʢʣlଞΑΓ
    إ ମͷ෦Ґ
    ͕༏ઌతʹݕग़͞ΕΔ
    ʢ͓ͦΒ͘ಈ෺΋ಉ༷ʣ
    ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̍ͭ໨͸ɺإ΍਎ମɻ໨ͷલͷڴҖΛૉૣ͘࡯஌͢ΔͨΊɺਓྨ͕ޙఱతʹ֫ಘͨ͠शੑͩͱݴΘΕΔɻ
    Կ͕য఺ͱͳΔ͔

    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ

    View full-size slide

  32. إ ମͷ෦Ґ
    ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ಛʹɺҙࢥૄ௨ʹॏཁͳද৘Λ࢘Δ෦Ґ͸༠໨ੑ͕ߴ͍ɻจԽݍʹΑΔҧ͍΋͋Δɻݟൺ΂Δͱ໘ന͍͔΋ɻ
    Կ͕য఺ͱͳΔ͔

    ಛʹද৘Λߏ੒͢Δ
    l໨zͱzޱzͷ஫໨౓͸ߴ͍
    ʢLFZXPSETࢹ֮ܦ࿏ɺإೝ஌ɺࢹ֮త஫ҙɺϙοϓΞ΢τʣ
    lإ ͓Αͼ ώτͷݕग़աఔͷݚڀԕ౻ޫஉcجૅ৺ཧֶݚڀʢʣlଞΑΓ
    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ

    View full-size slide

  33. ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̎ͭ໨͸ɺݟ׳ΕͨϞϊɻ೴ͷࣝผॲཧ͕ૣ͍͔Β஫໨͠΍͍͢ɺͱݴ͏ใࠂ͕͋Δɻʢཁɾ֬ೝʣ
    Կ͕য఺ͱͳΔ͔

    ςΩετ
    ฼ࠃޠ
    Α͘ݟΔϞϊ
    ͸ࣝผ͕ૣ͍ͨΊɺ
    ஫ҙ͕޲͖΍͍͢ʢଟ෼ʣ
    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ

    View full-size slide

  34. য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̏ͭ໨͸ɺ৘ಈతͳϞϊɻੜଘຊೳΛܹࢗ͢ΔΑ͏ͳϞϊʹɺࢹઢ͕ୣΘΕͯ΍͍͢ͱͷ͜ͱɻ
    Կ͕য఺ͱͳΔ͔

    ἷ౧ମ΍ใुܥΛܹࢗ͢Δͱɺ
    ஫ҙ͕޲͖΍͍͢
    ੑత
    ڪා
    ൧ςϩ
    l஫ҙͷॠ͖ʹؔ͢Δجૅతݚڀࠤ౻ج࣏ ݪޱܙc෱Ԭେֶਓจ࿦૓ʢʣlΑΓ
    ਂງ

    View full-size slide

  35. য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̐ͭ໨͸ɺଞͱҧ͏ྖҬɻݹ͔͘ΒͷݚڀͰޮՌ͕ূ໌͞Ε͍ͯͯɺΠϥετͰ࠷΋Ԡ༻͠΍͍͢য఺ɻ
    Կ͕য఺ͱͳΔ͔

    ৭ʢ໌౓ʗ࠼౓ʣ͕ҧ͏
    ৘ใྔ͕ҧ͏
    େ͖͕͞ҧ͏
    ଞɺํ޲ɾ௕͞ɾܗͳͲ
    l˓ºͰΘ͔Δ෩ܠ࡞ըਆٕ࡞ըγϦʔζ͚͞ϋϥεc,"%0,"8"ʢʣlΛࢀߟʹਤΛ࡞੒
    ਂງ

    View full-size slide

  36. ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    ̑ͭ໨͸ɺઢ͕ࣔ͢ྖҬɻ͜ͷࢹઢΛ༠ಋ͢Δઢͷ͜ͱΛɺඒज़༻ޠͰϦʔσΟϯάϥΠϯͱ͍͏ɻ
    Կ͕য఺ͱͳΔ͔

    ΨϥςΞͷউརʢ࠶ܝʣ
    ϦʔσΟϯάϥΠϯʹΑͬͯ
    ࢹઢ༠ಋ͞ΕΔ
    lֆΛݟΔٕज़໊ըͷߏ଄ΛಡΈղ͘ळాຑૣࢠcே೔ग़൛ࣾlΑΓ
    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ

    View full-size slide

  37. ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    طʹߴ͍ਫ਼౓Ͱয఺ΛਪఆͰ͖Δ͕ɺ஫ࢹ͞Ε΍͢͞ͷݪҼʹ͍ͭͯ͸ɺ·ͩ෼͔͍ͬͯͳ͍͜ͱ͕ଟ͍ɻ
    য఺Λਪఆ͢Δݚڀ͸ɺ೥Ҏ্ଓ͘ʢΩʔϫʔυɿݦஶੑϚοϓʣ
    য఺ͷίϯτϩʔϧɹɿয఺ͱͳΓಘΔཁૉ
    ਂງ
    ෩ंΛ
    ݕग़ͨ͠ྫ
    ը૾ͷಛ௃ྔΛجʹ
    ݕग़ͨ͠ྫ

    View full-size slide

  38. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ͦ͜Ͱɺয఺͕Πϥετͷ্ͰͲΜͳํ਑Ͱ૊ΈཱͯΒΕ͍͔ͯ͘ɺԦಓύλʔϯΛू໿ͯ͠੔ཧͯ͠Έͨɻ
    য఺ΛૢΔํ਑͸̏ͭ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  39. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ̍ͭ໨͸ɺয఺ΛڧԽ͢Δํ਑ɻয఺ͷॏͶ͕͚ͰɺΑΓڧྗͳয఺Λ࡞ͬͯ༠໨ੑΛߴΊΔɻ
    য఺ΛૢΔํ਑͸̏ͭ

    য఺ͱͳΔཁૉΛ
    ॏͶͨΓ૊Έ߹ΘͤͨΓͯ͠ɺ
    ڧྗͳয఺Λ࡞Δɻ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  40. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ྫ͑͹ɺτϯωϧߏਤɻ͜Ε͸ɺ̏ͭͷয఺ͱͳΔཁૉΛ૊Έ߹ΘͤͨԦಓύλʔϯͷҰͭɻ
    য఺ΛૢΔํ਑͸̏ͭ

    ྫ͑͹...
    ɾإ΍਎ମ
    ɾݟ׳ΕͨϞϊ
    ɾ৘ಈ͕ܹࢗ͞ΕΔϞϊ
    ɾଞͱҧ͏ྖҬ
    ɾઢͰࣔ͞ΕͨྖҬ
    τϯωϧߏਤ
    ਓ෺ʹ஫໨ΛूΊΔɻ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  41. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ̎ͭ໨͸ɺয఺ಉ࢜Λܨ͙ํ਑ɻྫ͑͹δάβάߏਤͷΑ͏ʹɺը໘શମΛݟͤΔ໨తͰ࢖ΘΕΔɻ
    য఺ΛૢΔํ਑͸̏ͭ

    য఺ಉ࢜Λ
    ઢͰܨ͙ɻ
    ·ͨ͸ۙ͘ʹ
    ഑ஔ͢Δɻ
    ྫ͑͹...
    ը໘શମʹࢹઢ͕ྲྀΕΔɻ
    δάβάߏਤ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  42. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ଞʹ΋ɺઢΛܨ͍ͰਤܗΛ࡞Δ͜ͱͰɺͦͷਤܗͷҹ৅ΛΠϥετʹ༩͑Δ͜ͱ͕Ͱ͖Δɻ
    য఺ΛૢΔํ਑͸̏ͭ

    য఺ಉ࢜Λ
    ઢͰܨ͙ɻ
    ·ͨ͸ۙ͘ʹ
    ഑ஔ͢Δɻ
    ྫ͑͹...
    ෺ཧతʹ҆ఆͯ͠ݟ͑Δɻ
    ̏֯ܗߏਤ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  43. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ̏֯ܗͳΒ҆ఆɺٯ̏֯ܗͳΒෆ҆ఆɺͱ͍͏ҹ৅ΛΠϥετશମʹ༩͑Δ͜ͱ͕Ͱ͖Δɻ
    য఺ΛૢΔํ਑͸̏ͭ

    য఺ಉ࢜Λ
    ઢͰܨ͙ɻ
    ·ͨ͸ۙ͘ʹ
    ഑ஔ͢Δɻ
    ྫ͑͹...
    ෺ཧతʹෆ҆ఆʹݟ͑Δɻ
    ٯ̏֯ܗߏਤ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  44. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ̏ͭ໨͕ɺয఺Λ҆ఆͤ͞Δํ਑ɻ౳෼ׂ΍ԫۚൺͳͲͰ༗໊ͳύλʔϯ͸͜͜ʹؚ·ΕΔɻ
    য఺ΛૢΔํ਑͸̏ͭ

    ౳෼ׂͳͲΛ༻͍ͯ
    όϥϯε͕औΕͨҐஔʹ
    য఺Λ഑ஔ͢Δɻ
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  45. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    نଇਖ਼͍͠ͱඒ͍͕͠ɺࣗવքʹͳ͍഑ஔ͸ෆࣗવ͕͞ࡍཱͭɻͦͷόϥϯεΛڊঊͨͪ͸௥ٻͨ͠ɻ
    য఺ΛૢΔํ਑͸̏ͭ

    ఻౷తʹয఺͕҆ఆ͢Δɻ
    ̏෼ׂߏਤ
    ɾ/෼ׂʢ/㱢ʣ
    ɾର֯ઢ
    ɾԫۚʗനۜൺ
    ɾϨΠϧϚϯൺ
    ɾϥόοτϝϯτ
    ɾ௚ަύλʔϯ
    ʜ
    ྫ͑͹...
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  46. ˙˙˙
    ˙˙˙
    ˙˙˙
    "য఺ΛڧԽ͢Δ $য఺Λ҆ఆͤ͞Δ
    #য఺Λܨ͙
    ͜ΕΒͷํ਑͸ɺֻ͚߹Θͤͯ࢖ΘΕΔ͜ͱ΋ɻߏਤ্͕ख͍Πϥετʹ͸ɺ͜ΕΒͷ޻෉͕ӅΕ͍ͯΔɻ
    য఺ΛૢΔํ਑͸̏ͭ
    º º
    য఺ͷίϯτϩʔϧɹɿয఺ΛૢΔํ਑
    ਂງ

    View full-size slide

  47. ৘ใ఻ୡͷ࣌୹
    ֆࢣʹٻΊΒΕΔٕೳ ܗ΍৭͕ਖ਼֬ ݸੑ͕৺஍Α͍ ߏਤ্͕ख͍
    য఺Λίϯτϩʔϧ ΧϝϥΛίϯτϩʔϧ
    য఺ͱͳΓಘΔཁૉ
    إ΍਎ମ ݟ׳ΕͨϞϊ ৘ಈతͳϞϊ
    য఺Λ੍ޚ͢Δํ਑ য఺ΛڧԽ য఺Λ݁Ϳ য఺Λ҆ఆԽ
    ଞͱҧ͏ྖҬ ઢ͕ࢦࣔ͢͠ྖҬ
    Πϥετͷ໨త
    Ԧಓߏਤͷ̎େ໨త
    BOENPSF
    લ൒·ͱΊɻয఺ͷཁૉʹ෼ղͯ͠෼ੳ͢Δ͜ͱͰɺֆࢣ͕zͲ͜zΛ఻͍͔͕͑ͨΘ͔ΔΑ͏ʹͳͬͨɻ
    ֆࢣ͕”Ͳ͜”Λ఻͍͑ͨͷ͔ɿ·ͱΊ
    ΠϥετϨʔλʔ

    View full-size slide

  48. %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFSSL@$971FLS-.1Q(L66U@P)VG11[
    લ൒ͷ಺༰ͷҰ෦Λɺ͍͔ͭ͘1ZUIPOͰ࣮૷ͨ͠ɻίʔυ͸(PPHMF$PMBCʹܝࡌɻ
    PythonͰয఺Λݕग़͢Δ
    Ͳ͜Λ఻͑Δ͔
    য఺
    ํ਑
    إ΍਎ମ ݟ׳ΕͨϞϊ ৘ಈతͳϞϊ
    ଞͱҧ͏ྖҬ ઢ͕ࢦࣔ͢͠ྖҬ
    য఺ΛڧԽ য఺Λ݁Ϳ য఺Λ҆ఆԽ

    View full-size slide

  49. 0QFO$7ͷඪ४ϝιουʹ͋ΔݦஶੑϚοϓʢ4BMJFODZ.BQʣΛར༻ɻݹయཧ࿦ͷϝιου͕ͩ൚༻తɻ
    PythonͰয఺Λݕग़͢ΔᶃɿҰ෦ղઆ
    য఺ʮଞͱҧ͏ྖҬʯͷݕग़ʢ0QFO$7ͷ4BMJFODZ.BQΛར༻ʣ
    # import library
    import cv2
    # load the input image
    image = cv2.imread(img_name)
    # initialize OpenCV's static saliency spectral residual detector
    saliency = cv2.saliency.StaticSaliencySpectralResidual_create()
    # compute the saliency map
    _, saliencyMap = saliency.computeSaliency(image)
    # convert to the heatmap
    heatmap = cv2.applyColorMap(saliencyMap, cv2.COLORMAP_JET)
    # combine the heartmap with input image
    combined = cv2.addWeighted(image, 0.5, heatmap, 0.7, 0)
    DWTBMJFODZ4UBUJD4BMJFODZ'JOF(SBJOFE$MBTT3FGFSFODFc0QFO$7

    View full-size slide

  50. Ϋϥε෼ྨث͕ͲͷྖҬΛ΋ͱʹը૾Λ෼ྨ͢Δ͔ΛՄࢹԽ͢Δ$MBTT"DUJWBUJPO.BQʹͯ࠶ݱɻ
    PythonͰয఺Λݕग़͢ΔᶄɿҰ෦ղઆ
    য఺ʮݟ׳ΕͨϞϊʯͷݕग़ʢUGLFSBTWJTʹͯ(SBE$".Λར༻ʣ
    # import libraries (ུ)
    # prepare model & input data
    model = Model(weights='imagenet', include_top=True)
    image = load_img(img_name, target_size=(224, 224))
    X = preprocess_input(np.array(image))
    # set loss & modifier to replace a softmax function
    def loss(output):
    return (output[0][cls_index])
    def model_modifier(m):
    m.layers[-1].activation = tf.keras.activations.linear
    return m
    # generate heatmap with GradCAM++
    gradcam = GradcamPlusPlus(model, model_modifier=model_modifier, clone=False)
    cam = gradcam(loss, img, penultimate_layer=-1)
    cam = normalize(cam)
    heatmap = np.uint8(cm.jet(cam[0])[..., :3] * 255)
    LFJTFOUGLFSBTWJTc(JUIVC

    View full-size slide

  51. ଓ͍ͯɺֆࢣ͕zͳʹzΛ఻͑Α͏ͱ͍ͯ͠Δ͔ΛɺΠϥετͷߏ੒ཁૉ͝ͱʹ෼͚ͯղઆ͢Δɻ
    Nextɿֆࢣ͕”ͳʹ”Λ఻͍͑ͨͷ͔
    ֆࢣ͕lͲ͜zΛ఻͍͔͑ͨ ֆࢣ͕lͳʹzΛ఻͍͔͑ͨ
    ໌౓
    ҉෦ͷྖҬͰ
    ΠϯύΫτΛڧΊΔ
    ϋΠΩʔ
    ϋΠόϦΞϯε
    إ
    ໌౓͕ࠩ͋Δ
    ਤܗͰғΉ
    ৘ใྔʹ͕ࠩ͋Δ
    നۜൺʢԣํ޲ʣ
    য఺͕ྡ઀
    ϥΠϯ
    ҆ఆͨ͠
    ओ໾
    ϑϨʔϜͱฒߦ
    தԝͷԁ

    ஆ͔Ͱ
    ௐ࿨ͷऔΕͨ
    ७നͳҹ৅
    ஆ৭
    ྨࣅ৭
    ໌ਗ਼৭
    ͜͜·Ͱͷઆ໌ ͔͜͜Βͷઆ໌
    ʜ
    ΧϥʔΩʔ
    ΧϥʔΩʔ

    ղ

    View full-size slide

  52. ̎
    ֆࢣ͕zͳʹzΛ఻͍͑ͨͷ͔
    ΠϥετϨʔλʔ

    View full-size slide

  53. l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    Πϥετͷߏ੒ཁૉͱͯ͠ɺߨٛ΍ٕ๏ॻͰΑ͘ղઆ͞ΕΔͷ͸͜ΕΒ̒ͭͷཁૉ͕ͩʜ
    ͲΜͳߏ੒ཁૉ͕͋Δ͔
    ɾϥΠϯ
    ɾγΣΠϓ
    ɾ໌౓
    ɾ৭
    ɾޫ
    ɾΧϝϥ
    Πϥετͷߏ੒ཁૉ

    View full-size slide

  54. ɾϥΠϯ
    ɾγΣΠϓ
    ɾ໌౓
    ɾ৭
    ɾޫ
    ɾΧϝϥ
    ɾϥΠϯʢΧϝϥΛؚΉʣ
    ɾγΣΠϓ
    ɾ৭
    ɾ໌౓ʢޫΛؚΉʣ
    ࠓճ͸આ໌Λγϯϓϧʹ͢ΔͨΊɺ̐ͭʹ·ͱΊͯઆ໌͢Δɻ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    Πϥετͷߏ੒ཁૉ
    ͲΜͳߏ੒ཁૉ͕͋Δ͔

    View full-size slide

  55. l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ϦχΞεΩʔϜ
    ̍ͭ໨͸ϥΠϯɻ࠷΋جຊతͳσβΠϯཁૉͰ͋Γͳ͕Βɺ࠷΋ॳ৺ऀ͕࢖͍͜ͳ͢͜ͱ͕೉͍͠ཁૉɻ
    Πϥετͷߏ੒ཁૉᶃɿϥΠϯ
    ϥΠϯͱ͸
    ߏਤͷࠎ૊ΈͱͳΔઢͰɺߏਤઢͱݺ͹ΕΔɻ
    தͰ΋ɺࢹઢ΍ਐߦํ޲ͷΑ͏ͳԾ૝ͷઢͷ͜ͱ͸ɺ૝ఆઢͱݺͿɻ
    JNBHJOBSZMJOF
    DPNQPTJUJPOBMMJOF

    View full-size slide

  56. l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ϥΠϯΛݟ͚ͭΔͷ͸؆୯ɻϥΠϯ͸ओʹɺয఺ͱϦʔσΟϯάϥΠϯͰߏ੒͞Ε͍ͯΔɻ
    ߏਤͷࠎ૊ΈͱͳΔઢͰɺߏਤઢͱݺ͹ΕΔɻ
    தͰ΋ɺࢹઢ΍ਐߦํ޲ͷΑ͏ͳԾ૝ͷઢͷ͜ͱ͸ɺ૝ఆઢͱݺͿɻ
    JNBHJOBSZMJOF
    DPNQPTJUJPOBMMJOF
    ϦχΞεΩʔϜ
    য఺ͱͳΔͷ͸
    য఺੍ޚͷํ਑
    إ΍਎ମ
    ଞͱҧ͏ྖҬ ઢ͕ࣔ͢ྖҬ
    ݟ׳ΕͨϞϊ ৘ಈతͳϞϊ
    য఺Λ҆ఆԽ
    য఺Λ݁Ϳ
    য఺ΛڧԽ
    ʴϦʔσΟϯάϥΠϯ
    Πϥετͷߏ੒ཁૉᶃ
    ϥΠϯͱ͸
    Πϥετͷߏ੒ཁૉᶃɿϥΠϯ

    View full-size slide

  57. Πϥετͷߏ੒ཁૉᶃɿϥΠϯ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ϥΠϯΛݟ͚ͭΔͷ͸؆୯ɻϥΠϯ͸ओʹɺয఺ͱϦʔσΟϯάϥΠϯͰߏ੒͞Ε͍ͯΔɻ
    ߏਤͷࠎ૊ΈͱͳΔઢͰɺߏਤઢͱݺ͹ΕΔɻ
    தͰ΋ɺࢹઢ΍ਐߦํ޲ͷΑ͏ͳԾ૝ͷઢͷ͜ͱ͸ɺ૝ఆઢͱݺͿɻ
    JNBHJOBSZMJOF
    DPNQPTJUJPOBMMJOF
    ϦχΞεΩʔϜ
    য఺ͱͳΔͷ͸
    য఺੍ޚͷํ਑
    إ΍਎ମ
    ଞͱҧ͏ྖҬ ઢ͕ࣔ͢ྖҬ
    ݟ׳ΕͨϞϊ ৘ಈతͳϞϊ
    য఺Λ҆ఆԽ
    য఺Λ݁Ϳ
    য఺ΛڧԽ
    ʴϦʔσΟϯάϥΠϯ
    ϥΠϯͱ͸
    ϥΠϯͷܗ΍૊Έ߹ΘͤͰɺҹ৅͕มΘΔɻ
    l-BOETDBQF"SDIJUFDUVSF+PIO0SNTCFF4JNPOETc.D(SBX)JMM1SPGFTTJPOBM1VCʢʣlΑΓ

    View full-size slide

  58. Πϥετͷߏ੒ཁૉᶃɿϥΠϯ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ϥΠϯΛݟ͚ͭΔͷ͸؆୯ɻϥΠϯ͸ओʹɺয఺ͱϦʔσΟϯάϥΠϯͰߏ੒͞Ε͍ͯΔɻ
    ߏਤͷࠎ૊ΈͱͳΔઢͰɺߏਤઢͱݺ͹ΕΔɻ
    தͰ΋ɺࢹઢ΍ਐߦํ޲ͷΑ͏ͳԾ૝ͷઢͷ͜ͱ͸ɺ૝ఆઢͱݺͿɻ
    JNBHJOBSZMJOF
    DPNQPTJUJPOBMMJOF
    ϦχΞεΩʔϜ
    য఺ͱͳΔͷ͸
    য఺੍ޚͷํ਑
    إ΍਎ମ
    ଞͱҧ͏ྖҬ ઢ͕ࣔ͢ྖҬ
    ݟ׳ΕͨϞϊ ৘ಈతͳϞϊ
    য఺Λ҆ఆԽ
    য఺Λ݁Ϳ
    য఺ΛڧԽ
    ʴϦʔσΟϯάϥΠϯ
    ϥΠϯͱ͸
    ϥΠϯͷܗ΍૊Έ߹ΘͤͰɺҹ৅͕มΘΔɻ
    l-BOETDBQF"SDIJUFDUVSF+PIO0SNTCFF4JNPOETc.D(SBX)JMM1SPGFTTJPOBM1VCʢʣlΑΓ
    ֆͷ֎࿮΋ର৅

    View full-size slide

  59. ͲͷઢΛେ͖͘ݟͤɺͲͷํ޲ʹ޲͚Δ͔ɺ
    ΧϝϥͰը໘શମͷઢͷόϥϯε͸੍ޚɻ
    " #
    "
    #
    ϥΠϯશମͷόϥϯε͸ɺΧϝϥͰ੍ޚͰ͖ΔɻϥΠϯҰͭҰ͚ͭͩͰͳ͘ɺશମͷ܏޲ΛݟΔͷ΋େࣄɻ
    ϥΠϯˠશମͷόϥϯε͸ΧϝϥͰ੍ޚ
    Πϥετͷߏ੒ཁૉᶃɿϥΠϯ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ

    View full-size slide

  60. ̎ͭ໨͸γΣΠϓɻΠϥετશମͷ৭΍໌౓ͷ෼෍Λͬ͘͟Γ೺Ѳ͢ΔͨΊʹ࢖ΘΕΔɻ
    Πϥετͷߏ੒ཁૉᶄɿγΣΠϓ
    γΣΠϓͱ͸
    ̎ʙ̑ͭͷಉܥͷ৭΍໌౓Ͱ·ͱΊͨྖҬɻʢ㲈ΧϥʔΩʔʣ
    ςΫενϟ͕γϯϓϧͰ͋Δ΄ͲಡΈऔΓ΍͍͢ɻ
    ৭Ͱ·ͱΊΔ ໌౓Ͱ·ͱΊΔ
    ฏ׈Խ
    /஋Խ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ

    View full-size slide

  61. γΣΠϓͱ͸
    ̎ʙ̑ͭͷಉܥͷ৭΍໌౓Ͱ·ͱΊͨྖҬɻʢ㲈ΧϥʔΩʔʣ
    ςΫενϟ͕γϯϓϧͰ͋Δ΄ͲಡΈऔΓ΍͍͢ɻ
    Πϥετͷߏ੒ཁૉᶄɿγΣΠϓ
    ̎ͭ໨͸γΣΠϓɻΠϥετશମͷ৭΍໌౓ͷ෼෍Λͬ͘͟Γ೺Ѳ͢ΔͨΊʹ࢖ΘΕΔɻ
    ৭Ͱ·ͱΊΔ ໌౓Ͱ·ͱΊΔ
    ฏ׈Խ
    /஋Խ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ਖ਼͘͠ઃܭ͠ͳ͍ͱɺҙਤͤͣΦϒδΣΫτ͕γΣΠϓʹҿ·Ε·͢ɻ
    ਓ෺ʴҜࢠͷ
    γΣΠϓ

    View full-size slide

  62. Πϥετͷߏ੒ཁૉᶄɿγΣΠϓ
    γΣΠϓͱ͸
    ̎ʙ̑ͭͷಉܥͷ৭΍໌౓Ͱ·ͱΊͨྖҬɻʢ㲈ΧϥʔΩʔʣ
    ςΫενϟ͕γϯϓϧͰ͋Δ΄ͲಡΈऔΓ΍͍͢ɻ
    ̎ͭ໨͸γΣΠϓɻΠϥετશମͷ৭΍໌౓ͷ෼෍Λͬ͘͟Γ೺Ѳ͢ΔͨΊʹ࢖ΘΕΔɻ
    ৭Ͱ·ͱΊΔ ໌౓Ͱ·ͱΊΔ
    ฏ׈Խ
    /஋Խ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ਖ਼͘͠ઃܭ͠ͳ͍ͱɺҙਤͤͣΦϒδΣΫτ͕γΣΠϓʹҿ·Ε·͢ɻ
    ҜࢠͷγΣΠϓ
    ਓ෺ͷ
    γΣΠϓ

    View full-size slide

  63. ̏ͭ໨͸৭ɻײ৘໘ʹڧ͘࡞༻͢Δɻิ৭΍ྨࣅ৭ͳͲɺఆੴ͸͍͔ͭ͋͘Δ͕ʜ
    Πϥετͷߏ੒ཁૉᶅɿ৭
    ৭ͱ͸
    ΠϥετΛߏ੒͢Δ৭ɻ
    ޫͷӨڹΛड͚΍͘͢ɺײ৘໘ʹڧ͘࡞༻͢Δɻ
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ
    ิ৭ ྨࣅ৭ τϥΠΞυ

    View full-size slide

  64. ݂
    ৴߸ػ
    ΫϦεϚε
    ා͍
    ָ͍͠
    ۓு
    ৭͸ɺݸਓͷܦݧ΍࿈૝ͷӨڹ͕ڧ͘ಇͨ͘Ίɺίϯτϩʔϧ͕ͮ͠Β͘ɺҰఆͷϧʔϧԽ͕Ͱ͖ͳ͍ɻ
    ิ৭΍ྨࣅ৭ͳͲͷఆੴ͕͋ΔҰํɺ
    ܦݧ΍࿈૝ͷӨڹ͕ڧ͘ɺҰఆͷϧʔϧͰఆٛͰ͖ͳ͍ɻ
    ৭ͷ஫ҙ఺
    Πϥετͷߏ੒ཁૉᶅɿ৭
    l7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤϋϯεɾ1ɾόοϋʔcϘʔϯσδλϧʢʣlଞΑΓ

    View full-size slide

  65. ɾֆࢣ͸৭ͷ഑ྻΛ࡞ͬͯɺ৻ॏʹ৭ͷ૊Έ߹ΘͤΛ֬ೝ͢Δ
    ɾڧ͍ҹ৅Λආ͚ΔͨΊɺ࠼౓ͷڧ͍৭͸ආ͚Δ
    © ͻΖ͞͡
    lʲϓϩ͕ఴ࡟ʳΠϥετ্͕ख͘ݟ͑Δɺ৭ͷબͼํΛڭ͑·͢ʂম·͍Δc:PVUVCFʢʣlଞΑΓ
    $-*1456%*01"*/5
    ࠼౓ ߴ
    ͦͷͨΊɺֆࢣ͸৭Λ͔ͳʙʙΓ৻ॏʹબͿɻ৭഑ྻΛ࡞ͬͨΓɺڧ͍࠼౓Λආ͚ͨΓɺԿ͔ͱؾΛݣ͏ɻ
    ৭ͷѻΘΕํ
    Πϥετͷߏ੒ཁૉᶅɿ৭

    View full-size slide

  66. lσδλϧΞʔςΟετ͕஌͓ͬͯ͘΂͖Ξʔτͷݪଇվగ൛EUPUBMDPNcϘʔϯσδλϧʢʣlଞΑΓ
    ̐ͭ໨͸໌౓ɻ৭ͷई౓ͷҰ͕ͭͩɺয఺࡞ΓʹศརͳͨΊɺ৭ͱ͸෼͚ͯߟ͑ΒΕΔ͜ͱ͕ଟ͍ɻ
    Πϥετͷߏ੒ཁૉᶆɿ໌౓
    ໌౓ͱ͸
    ΠϥετΛߏ੒͢Δ৭ͷ໌Δ͞ɻ
    ৭ͷཁૉͷҰͭͰɺಛʹয఺Λ࡞ΔࡍʹΑ͘࢖͏ɻ

    View full-size slide

  67. ໌౓ͷ෼෍ʹΑͬͯɺΩʔ΍όϦΞϯεͱ໊͍ͬͨલׂ͕Γ౰ͯΒΕΔɻͦΕͧΕͷޮՌ͸ը૾ࢀরɻ
    ໌౓ͷར఺
    ໌౓ͷ෼෍ʹΑͬͯɺয఺ͷҹ৅ͷ੍ޚ͕Ͱ͖Δɻ
    ϋΠΩʔ &
    ϩʔόϦΞϯε
    ϋΠΩʔ &
    ϋΠόϦΞϯε
    ϩʔΩʔ &
    ϋΠόϦΞϯε
    ϩʔΩʔ &
    ϩʔόϦΞϯε
    ҹ৅ ऑ ҹ৅ ऑ
    ҹ৅ ڧ ҹ৅ ڧ
    ҉෦ ө ҉෦ ө ໌෦ ө ໌෦ ө
    Πϥετͷߏ੒ཁૉᶆɿ໌౓
    lσδλϧΞʔςΟετ͕஌͓ͬͯ͘΂͖Ξʔτͷݪଇվగ൛EUPUBMDPNcϘʔϯσδλϧʢʣlଞΑΓ

    View full-size slide

  68. ޫ͸৭ͱ໌౓ͱؔ࿈͕ڧ͘ɺޫͷ౰ͯํͰҹ৅΋େ͖͘มΘΔɻʮޫʯ͚ͩͰҰ࡭ͷຊ͕ॻ͚Δɻ
    ৭ɺ໌౓ˠޫͰਓ෺΍৔ͷงғؾΛԋग़
    lΧϥʔϥΠτϦΞϦζϜͷͨΊͷ৭࠼ͱޫͷඳ͖ํδΣʔϜεɾΨʔχʔcϘʔϯσδλϧʢʣlΛՃຯ͠ɺ஑্޾ًࢯͷπΠʔτΛ࠶ߏ੒
    ϥΠςΟϯάʹΑΔ৭ɾ໌౓ͷௐ੔Ͱɺয఺ͷڧ͞΍ײ৘Λ੍ޚͰ͖Δɻ
    ϓϨʔϯϥΠτ
    ΤοδϥΠτʢϦϜϥΠτʣ
    εϙοτϥΠτ
    ϋʔϑγϟυ΢ɾԼ
    ΞϯμʔϥΠτ
    Πϥετͷߏ੒ཁૉᶅᶆɿ৭ɺ໌౓

    View full-size slide

  69. ֆࢣͷૂ͍ Ͳ͜Λ఻͑Δ͔
    ͳʹΛ఻͑Δ͔
    γΣΠϓ
    ϥΠϯ

    ໌౓
    ʜ ߏਤͷࠎ૊ΈΛߏ੒
    ʜ ഑৭όϥϯεΛ౷੍
    ʜ
    ʜ য఺ͷҹ৅Λ੍ޚ
    ײ৘໘Λࢧ഑
    Τ Ϟ Έ
    ޙ൒·ͱΊɻ֤ߏ੒ཁૉ͕࣋ͭޮՌΛ஌Δ͜ͱͰɺֆࢣ͕zͳʹzΛ఻͍͔͑ͨΛ୳ΕΔΑ͏ʹͳͬͨɻ
    ֆࢣ͕”ͳʹ”Λ఻͍͑ͨͷ͔ɿ·ͱΊ
    ΠϥετϨʔλʔ

    View full-size slide

  70. ֆࢣͷૂ͍ Ͳ͜Λ఻͑Δ͔
    ͳʹΛ఻͑Δ͔
    γΣΠϓ
    ϥΠϯ

    ໌౓
    ʜ ߏਤͷࠎ૊ΈΛߏ੒
    ʜ ഑৭όϥϯεΛ౷੍
    ʜ
    ʜ য఺ͷҹ৅Λ੍ޚ
    ײ৘໘Λࢧ഑
    Τ Ϟ Έ
    ͳ͓ɺΩϟϥΫλʔΠϥετͰ͸ɺਓ෺ͷϙʔζ΍ද৘΋ॏཁɻৄ͘͠͸ɺޙड़͢Δ͓͢͢Ίจݙʹͯɻ
    ֆࢣ͕”ͳʹ”Λ఻͍͑ͨͷ͔ɿ·ͱΊ
    ΠϥετϨʔλʔ
    ΩϟϥΫλʔΠϥετͷ৔߹
    ਓ෺ͷϙʔζ΍ද৘
    ʢࠓճ͸ະղઆʣ

    View full-size slide

  71. ͳʹΛ఻͑Δ͔
    γΣΠϓ
    ϥΠϯ

    ໌౓
    ʜ ߏਤͷࠎ૊ΈΛߏ੒
    ʜ ഑৭όϥϯεΛ౷੍
    ʜ
    ʜ য఺ͷҹ৅Λ੍ޚ
    ײ৘໘Λࢧ഑
    Τ Ϟ Έ
    ޙ൒ͷ಺༰ͷҰ෦Λɺ͍͔ͭ͘1ZUIPOͰ࣮૷ͨ͠ɻલ൒ͱಉ͘͡ɺίʔυ͸(PPHMF$PMBCʹܝࡌɻ
    PythonͰߏ੒ཁૉ͝ͱͷಛ௃Λ෼ੳ͢Δ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFKKZ);+-*+$4.JGS4UW(75CQFKD/D

    View full-size slide

  72. 1JMMPXͷLฏۉ๏ϝιουΛར༻ɻฏ׈Խ͸ɺ๲ுͱऩॖΛ਺ճࢼߦ͢ΔϞϧϑΥϩδʔม׵ʹͯ࠶ݱɻ
    γΣΠϓΛநग़͢Δʢ1JMMPXͷLNFBOTΛར༻ʣ
    # import library
    from PIL import Image, ImageFilter
    # load image and convert to grayscale
    img = Image.open(img_name).convert('L')
    # convert to 3 group color
    img3groups = img.quantize(colors=3, kmeans=100)
    # filter erosion & dilation (6 times)
    img_filtered = img3groups.convert("RGB")
    for i in range(6):
    img_filtered = img_filtered.filter(ImageFilter.MaxFilter())
    for i in range(6):
    img_filtered = img_filtered.filter(ImageFilter.MinFilter())
    *NBHF.PEVMFc1JMMPX
    PythonͰ֤ߏ੒ཁૉͷಛ௃Λ෼ੳ͢ΔᶃɿҰ෦ղઆ

    View full-size slide

  73. 0QFO1PTFͰਓ෺ͷ࣠ͱΠϚδφϦʔϥΠϯΛਪఆɻΠϥετͰͷਫ਼౓΋ҙ֎ͱߴ͍ɻʢ$PMBCະܝࡌʣ
    PythonͰ֤ߏ੒ཁૉͷಛ௃Λ෼ੳ͢ΔᶄɿҰ෦ղઆ
    ϥΠϯΛநग़͢Δʢ0QFO1PTFΛར༻ʣʲ࣮૷ࡁΈɾίʔυ४උதʳ
    # import libraries
    import cv2
    from openpose import pyopenpose as op
    # Starting OpenPose
    opWrapper = op.WrapperPython()
    opWrapper.configure(params)
    opWrapper.start()
    # Process Image
    datum = op.Datum()
    imageToProcess = cv2.imread(args[0].image_path)
    datum.cvInputData = imageToProcess
    opWrapper.emplaceAndPop(op.VectorDatum([datum]))

    $.61FSDFQUVBM$PNQVUJOH-BCPQFOQPTF0QFO1PTF1ZUIPO"1*&YBNQMFTc(JUIVC

    View full-size slide

  74. ਓ෺ͷߦಈ͕࣠
    ઌʹԿΛඳ͔ܾ͘ΊΔ
    ৔ॴ΍෩ܠ͕࣠
    ໘γΣΠϓͰ໛ࡧ
    ઢγΣΠϓͰ໛ࡧ
    ޙͰԿΛඳ͔ܾ͘ΊΔ
    ਓ෺ϙʔζͰ໛ࡧ
    ਓ෺ͷײ৘͕࣠
    খ͞ͳαϜωΛඳ͘ʢαϜωΠϧεέονʣ
    εέονਓܗʗࣗࡱΓͳͲΛࢿྉʹඳ͘
    ઢըநग़ʗϑΥτόογϡʗCMFOEFS౳
    ৭΍໌౓ͷόϥϯε഑෼͔Β໛ࡧ͢Δ
    ୯ઢ΍ྠֲઢΛ૊Έ߹Θͤͯ໛ࡧ͢Δ
    ϙʔζूʗࣸਅू͔ΒΞΠσΞΛूΊΔ
    ຊฤͷղઆʹؚΊ͖Εͳ͔͕ͬͨɺΠϥετΛඳ͖࢝ΊΔ౔୆࡞Γ΋ɺ1ZUIPOͰ௅ઓ͍ͯ͠Δɻ
    PythonͰΠϥετΛඳ͖࢝ΊΔ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFYS-BS:6)$++&2-X8-YOE;S
    ʜ
    ʜ

    View full-size slide

  75. (PPHMF#PPLT"1*TͰຊͷදࢴΛϥϯμϜʹऔಘ͠ɺγΣΠϓʢ৭ɾ໌౓ʣΛநग़ɻʢஶ࡞ݖʹཁ഑ྀʣ
    PythonͰΠϥετΛඳ͖࢝ΊΔɿҰ෦ղઆ
    ໘γΣΠϓΛ൒ࣗಈੜ੒͢Δʢ(PPHMF#PPLT"1*TΛར༻ʣ
    ஶ࡞ݖอޢͷͨΊ
    ΦϦδφϧը૾͸
    ඇެ։
    # import libraries
    import requests, urllib
    # get data via Google Books APIs
    base_url = 'https://www.googleapis.com/books/v1/volumes'
    params = {
    'q': query,
    'country': 'JP',
    ‘maxResults': 40,

    }
    r = requests.get(base_url + '?' + urllib.parse.urlencode(params))
    data = r.json()
    # Ҏ߱ɺσʔλ͔ΒαϜωσʔλΛऔಘͨ͠Βɺ͋ͱ͸γΣΠϓͷநग़ͱಉ͡
    (PPHMF#PPLT"1*Tc(PPHMF%FWFMPQFST

    View full-size slide

  76. ࠷ޙʹɺࠓճͷϓϨθϯͷ·ͱΊɻࠓճ͸ɺֆࢣͷૂ͍ΛಡΉεΩʔϜͱ1ZUIPOεΫϦϓτΛ঺հͨ͠ɻ
    ·ͱΊ
    ߏਤͷԦಓύλʔϯ΍Πϥετͷߏ੒ཁૉ͔Βɺ
    ɹֆࢣͷૂ͍ΛಡΉεΩʔϜΛࣔͨ͠
    ֆࢣ͕lͲ͜zΛ఻͍͔͑ͨɺlͳʹzΛ఻͍͔͑ͨΛ୳Γɺ
    ɹͦͷ͍͔ͭ͘Λ1ZUIPOͰ࠶ݱͨ͠

    View full-size slide

  77. ͜ΕΛػʹɺΠϥετΛֶͼͨ͘ͳͬͨɺ1ZUIPOͰ෼ੳͨ͘͠ͳͬͨํ͸ɺͥͻֶशϦιʔεΛݟͯɻ
    ͓͢͢ΊͷֶशϦιʔε
    ɾΠϥετͷߏ੒ཁૉͷޮՌΛ΋ͬͱ஌Γ͍ͨ
    ˠॻ੶ɿ7JTJPOετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤ
    ɾΠϥετͷߏ੒ཁૉʮޫʯΛਂ͘஌Γ͍ͨ
    ˠॻ੶ɿΧϥʔϥΠτϦΞϦζϜͷͨΊͷ৭࠼ͱޫͷඳ͖ํ
    ɾΠϥετͷߏ੒ཁૉʮ৭ʯΛਂ͘஌Γ͍ͨ
    ˠॻ੶ɿ৭ృΓνϡʔτϦΞϧ
    ɾ࣮ફతͳয఺ͷ࡞ΓํΛͨ͘͞Μ஌Γ͍ͨ
    ˠॻ੶ɿΫϥΠϚοΫε·Ͱ༠͍ࠐΉֆ࡞Γͷൿ݃
    ɾਓମΛਖ਼֬ʹඳ͚ΔΑ͏ʹͳΓ͍ͨ
    ˠॻ੶ɿඒज़ղ๤ֶϊʔτɺΩϜɾϥοΩͷਓମυϩʔΠϯά
    ɾθϩ͔ΒΠϥετΛඳ͚ΔΑ͏ʹͳΓ͍ͨ
    ˠॻ੶ɿ೔ؒͰมΘΔըྗ޲্ߨ࠲
    ɾਓ෺͸ඳ͚ͳ͍͚ͲϑΥτόογϡ͸ͯ͠Έ͍ͨ
    ˠॻ੶ɿࣸਅՃ޻Ͱ࡞Δ෩ܠΠϥετɺϑΥτόογϡೖ໳
    ɾ͓͢͢Ίͷ:PVUVCFνϟϯωϧΛڭ͑ͯ
    ˠ٢ా੣࣏ɺম·͍Δɺອըૉࡐ޻๪ʢܟশུʣ
    ɾ͓͢͢Ίͷ5XJUUFSΞΧ΢ϯτΛڭ͑ͯ
    ˠҏ౾ͷඒज़ղ๤ֶऀɺμςφΦτʢܟশུʣ
    ɾ͓͢͢Ίͷߏਤ্͕ख͍ֆࢣΛڭ͑ͯ
    ˠࠇ੕ߚനɺ٢ా੣࣏ɺΠϦϠɾΫϒγϊϒɺ͸͠Όʢܟশུʣ
    ɾਓ෺ͷϙʔζΛཧ࿦తʹֶͼ͍ͨ
    ˠిࢠॻ੶ɿϙʔζͷఆཧ
    ɾΩϟϥֆ্͕ख͘ͳΔ࠷୹ϧʔτΛ஌Γ͍ͨ
    ˠ໨ࢦ͍ͨ͠ֆࢣͷֆฑΛਅࣅͯɺ৭Μͳ̎࣍૑࡞Λඳ͘




    ٕ


    View full-size slide

  78. ͻΖ͞͡
    ϙʔτϑΥϦΦαΠτ Twitter DM / ͓୊ശ
    or
    ࢓ࣄืूதͰ͢ʂࠓͳΒʮ1Z$POΛΈͯʯͰɺϥϑ·ͰແྉͰ͓ࢼ͍͚ͨͩ͠·͢ʢʙ೥಺·Ͱʣ
    ʹͯ
    ࠷ޙʹɿΠϥετͷ࢓ࣄɺืूͯ͠·͢ʂ

    View full-size slide

  79. • ○×ͰΘ͔Δ෩ܠ࡞ը ਆٕ࡞ըγϦʔζ - ͚͞ϋϥε | KADOKAWAʢ2020ʣ
    • ֆΛݟΔٕज़ ໊ըͷߏ଄ΛಡΈղ͘ - ळాຑૣࢠ | ே೔ग़൛ࣾʢ2019ʣ
    • Vision ετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤ - ϋϯεɾPɾόοϋʔ | Ϙʔϯσδλϧʢ2019ʣ
    • ΠϥετɺອըͷͨΊͷߏਤͷඳըڭࣨ - দԬ৳࣏ | MdN ʢ2018ʣ
    • ΍΍͘͜͠ͳ͍ֆͷඳ͖ํ - দଜ্ٱ࿠ | ल࿨γεςϜʢ2020ʣ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Graph-based visual saliency.- Harel, Jonathan, Christof Koch, and Pietro Perona.ʢ2007ʣ
    • Visual search in depth - McSorley, E., and J. M. Findlay. | Vision Research 41ʢ2001ʣ

    View full-size slide

  80. • إ, ͓Αͼ, ώτͷݕग़աఔͷݚڀ - ԕ౻ޫஉ | جૅ৺ཧֶݚڀʢ2015ʣ
    • ࢹ֮৘ใॲཧͷجૅաఔ - ԣ୔Ұ඙ | ੜ࢈ݚڀʢ1992ʣ
    • ΫϥΠϚοΫε·Ͱ༠͍ࠐΉֆ࡞Γͷൿ݃ ετʔϦʔΛޠΔਓͷͨΊͷඞਢৗࣝ:໌҉ɺߏਤɺϦζϜɺϑϨʔϛϯά
    - ϚϧίεɾϚς΢=ϝετϨ | Ϙʔϯσδλϧʢ2014ʣ
    • σδλϧΞʔςΟετ͕஌͓ͬͯ͘΂͖Ξʔτͷݪଇ վగ൛ -৭ɺޫɺߏਤɺղ๤ֶɺԕۙ๏ɺԞߦ͖ - 3dtotal.com
    | Ϙʔϯσδλϧʢ2021ʣ
    • Filmmaker's Eye өըͷγʔϯʹֶͿߏਤͱࡱӨज़:ݪଇͱͦͷഁΓํ - άελϘɾϝϧΧʔυ | Ϙʔϯσδλϧʢ2013ʣ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Χϥʔ&ϥΠτ ϦΞϦζϜͷͨΊͷ৭࠼ͱޫͷඳ͖ํ - δΣʔϜεɾΨʔχʔ | Ϙʔϯσδλϧʢ2012ʣ

    View full-size slide

  81. • cv::saliency::StaticSaliencyFineGrained Class Reference | OpenCV
    • ayoolaolafenwa/PixelLib | Github
    • keisen/tf-keras-vis | Github
    • Image Module | Pillow
    • CMU-Perceptual-Computing-Lab / openpose - OpenPose Python API Examples | Github
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Google Books APIs | Google Developers
    • Landscape Architecture - John Ormsbee Simonds | McGraw-Hill Professional Pubʢ2013ʣ

    View full-size slide

  82. • ٢ా੣࣏ Youtube channel - ٢ా੣࣏ | YouTube
    • Yaki Mayuru drawing channel - ম·͍Δ | YouTube
    • ʮAndyʛΫϦΤΠςΟϒɾσΟϨΫλʔʯࢯͷπΠʔτ | Twitter

    https://twitter.com/we_creat/status/1221939759427260417
    • ʮ஑্޾ً Koki IkegamiʯࢯͷπΠʔτ | Twitter

    https://twitter.com/winter_parasol/status/1345661507682459654
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • ߟ͑ํͰֆ͸มΘΔ ΠϥετεΩϧ޲্ͷͨΊͷμςࣜࢥߟ๏ - μςφΦτ | ϚΠφϏग़൛ʢ2019ʣ
    • ϙʔζͱߏਤͷ๏ଇ: ࢖͑Δߏਤύλʔϯຬࡌ - YANAMiʗࠤ౻ཽଠ࿠ | ኍࡁಊग़൛ʢ2016ʣ

    View full-size slide