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

続・絵を読む技術 Pythonで読むイラストの心理戦略 / The Art of Reading Illustrations 2nd

Hirosaji
October 15, 2022

続・絵を読む技術 Pythonで読むイラストの心理戦略 / The Art of Reading Illustrations 2nd

PyCon JP 2022 (2022/10/15) @Hirosaji @Hirosaji_draw
https://2022.pycon.jp/timetable?id=JWM39L

=====
Title (English): The Art of Reading Illustrations 2nd: Psychological Strategies for Illustration read in Python

Hirosaji

October 15, 2022
Tweet

More Decks by Hirosaji

Other Decks in Technology

Transcript

  1. 1Z$PO+1

    ଓɾֆΛಡΉٕज़
    1ZUIPOͰಡΉΠϥετͷ৺ཧઓུ
    )JSPTBKJ !IJSPTBKJ
    ʗͻΖ͞͡ [email protected]

    View Slide

  2. ͸͡Ίʹ

    View Slide

  3. ଓฤͰ͕͢ɺ୯ಠͰ΋ָ͠ΊΔ಺༰Ͱ͢ɻ΋ָ͠͠ΊͨΒɺڈ೥ͷൃද΋νΣοΫͯ͠Έ͍ͯͩ͘͞ɻ
    ͜ͷߨԋ͸ଓฤͰ͢
    ࡢ೥ղઆ͖͠Εͳ͔ͬͨ಺༰Λਂ۷Γ͠ɺΑΓײੑతͳઓུΛඥղ͖·͢

    ճ

    View Slide

  4. ʮͻΖ͞͡



    )JSPTBKJʯͱ͍͏໊લͰ׆ಈ͢Δਓɻେ޷͖ͳΠϥετʹғ·Εɺ޾ͤͳ೔ʑΛૹ͍ͬͯΔɻ
    ࣾձਓֆඳ͖
    ͻΖ͞͡ʢ[email protected]ʣ
    ɾ1ZUIPOྺ̒೥͘Β͍
    ɾΠϥετΛ؍Δͷ͕޷͖
    ɾσδλϧֆࢣ̏೥໨
    ɾΠϥετΛඳ͘ͷ͕޷͖
    ͜ͷϓϨθϯΛ͢Δਓ
    ޏΘΕ8FCΤϯδχΞ
    )JSPTBKJʢ!IJSPTBKJʣ

    View Slide

  5. ͜ͷ̎ϲ݄ͰɺֆࢣΛऔΓר͘؀ڥ͸େ͖͘มΘͬͨɻͦͯ͠ࠓ΋ɺֆࢣ͸ա౉ظʹཱ͍ͬͯΔɻ
    ·ͣ͸ɺ͜ͷ࿩୊ʹ৮Εͳ͚Ε͹…
    ͍·ɺ"*ֆࢣͷ੎͍͕ࢭ·Βͳ͍ɻ
    l"*͕ֆΛඳ͘ʁਐԽ͢Δը૾ੜ੒"*ͷ࠷લઢc/),lΑΓ
    ೥݄ը૾ੜ੒"*͕୆಄ ೥݄຤ֆฑֶश"*͕೾໲ ೥݄಄/PWFM"*͕୆಄
    lΠϥετϨʔλʔͷݸੑΛֶΜͰֆΛlແݶੜ੒z͢Δ"*αʔϏc*5NFEJBlΑΓ l༷ʑͳݒ೦΍໰୊Λ๊͑ͭͭ΋ʮ͓ֆ͔͖"*ʯͷਐԽ͸ࢭ·Βͣc:BIPPχϡʔεlΑΓ

    View Slide

  6. ؆୯ͳϑϨʔζ΍ϥϑ͕͋Ε͹ɺ୭Ͱ΋ϓϩڃͷΠϥετΛੜ੒Ͱ͖Δ"*ֆࢣɻଟ͘ͷֆࢣ͸ಈ༳͢Δ͕
    ͍·ɺ"*ֆࢣͷ੎͍͕ࢭ·Βͳ͍ɻ
    "*ֆࢣͷ͍͢͝ͱ͜Ζ
    ্ख͍ֆ͕͙͢ඳ͚Δ
    ΤϞ͍ֆ͕͙͢ඳ͚Δ
    lʮͱΜͰ΋ͳ͘ϋΠΫΦϦςΟʔʯ࿩୊ͷը૾"*ʮ/PWFM"*ʯͰͻͨ͢Βೋ࣍ݩඒগঁͱඒগ೥Λੜ੒ͯ͠Έͨc*5NFEJBlΑΓ
    AIに絵師の仕事を奪われる...
    ͱ୰͘ਓ΋
    ·ͣ͸ɺ͜ͷ࿩୊ʹ৮Εͳ͚Ε͹…

    View Slide

  7. ͋͘·Ͱ΋ɺֆͷ্ख͞͸ֆࢣͷٕೳͷҰͭɻֆ্͕ख͍ͱ͍͏ཧ༝͚ͩͰɺϑΝϯʹͳΔ༁Ͱ͸ͳ͍ɻ
    Q. ֆࢣ͸ֆ্͕ख͚Ε͹͍͍ͷʁ
    lʲϑΥϩϫʔ਺ʹըྗͳͷʁʳ͜ͷ౴͕͑Θ͔ͬͯΔਓ͸ɺΊͪΌͪ͘Ό੒௕͠·͢ʂzম·ΏΔͷ͓ֆ͔͖ͪΌΜͶΔc:PVUVCFʢʣlΑΓ
    "ɹॏཁͳͷ͸ɺϑΝϯΛت͹ͤΔ͜ͱɻ
    χʔζʹԠ͑Δ͜ͱͰɺϑΝϯ͸تͿɻֆͷ্ख͞͸χʔζʹԠ͑Δखஈɻ

    View Slide

  8. ࠓޙ͸ɺ"*ͷීٴͰΠϥετͷΫΦϦςΟ͸શମతʹ্͕Δɻͦͯ͠ɺֆࢣͷϒϥϯυԽ͕͞ΒʹਐΉɻ
    Q. AIֆࢣͷొ৔ͰԿ͕มΘΔ͔ʁ
    lෆ͕͍҆ͬͺ͍ʜ😭৽ਓֆࢣ͸"*ʹͭͿ͞ΕΔʁʲ3BEJP$MPTFUʳσΟʔϓϒϦβʔυΕͰ͌͘ΖzσΟʔϓϒϦβʔυc:PVUVCFʢʣlΑΓ
    "ɹ"*͸ΠϥετΛ୹࣌ؒͰߴΫΦϦςΟʹ͢ΔิॿπʔϧʹͳΔɻ
    ͦͯ͠Πϥετ͸ʮͲΜͳֆࢣ͕ඳ͍͔ͨʯ͕ΑΓॏཁࢹ͞ΕΔͩΖ͏ɻ

    View Slide

  9. "*ΛֆΛ্ख͘ඳͨ͘Ίͷಓ۩ͱͯ͠࢖͍ͭͭɺΑΓޮ཰తʹϑΝϯͷχʔζʹԠ͑ΔಓΛ୳Γଓ͚Α͏ɻ
    Q. ͜Ε͔Βֆࢣ͸Ͳ͏͢Δ΂͖ʁ
    "ɹֆΛ্ख͘ඳͨ͘Ίʹ"*Λ׆༻͢Δͷ͸΋ͪΖΜɺ
    ΋ͬͱ৭ΜͳՄೳੑʹ໨Λ޲͚Δ΂͖ɻ
    ͻ
    Ζ
    ͞
    ͡
    Ұॹʹ
    χʔζʹԠ͑ΔઓུΛߟ͑Αʂ
    θ
    ώ

    View Slide

  10. ͔͜͜Βຊ୊

    View Slide

  11. "*ͱڞʹߟ͑Α͏ͱ͍ͬͨઓུɻ͜ͷϓϨθϯͰ͸ɺΠϥετͷ৺ཧઓུΛ1ZUIPOΛަ͑ͯղઆ͢Δɻ
    ͜ͷϓϨθϯͷझࢫ
    Πϥετͷ৺ཧઓུΛ஌Δ

    View Slide

  12. ͪͳΈʹલճͷൃදͰ͸ɺઓུΛʮֆࢣͷૂ͍ʯͱݴ͍׵͑ͯղઆͨ͠ɻ
    ͜ͷϓϨθϯͷझࢫ
    Πϥετͷ৺ཧઓུΛ஌Δ
    ֆࢣͷૂ͍

    View Slide

  13. ࠓճͷ࿩͸୯ಠͰ΋ָ͠ΊΔ͕ɺલճͷൃදͱͷ஍ଓ͖ͳͷͰɺ؆୯ʹҐஔ෇͚ΛৼΓฦΔɻ
    ͜ͷϓϨθϯͷझࢫ
    Πϥετͷ৺ཧઓུΛ஌Δ
    ֆࢣͷૂ͍

    Π


    ͥ
    Μ
    ͔
    ͍

    View Slide

  14. લճ͸ɺΠϥετͷઓུΛ̎ͭʹେผͯ͠ղઆɻͦͷதͰʮͳʹΛ఻͑Δ͔ʯ͸ߏ੒ཁૉͷ঺հʹཹ·ͬͨɻ


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

    Πϥετͷ৺ཧઓུͷҐஔ෇͚
    ޫʢ໌౓ʣ
    ΩϟϥΫλʔ
    ʜ ߏਤͷࠎ૊ΈΛߏ੒
    ʜ ഑৭όϥϯεΛ౷੍
    ʜ
    ʜ য఺ͷҹ৅Λ੍ޚ
    ײ৘໘Λࢧ഑
    Τ Ϟ Έ
    ʜ ʢະղઆʣ

    View Slide

  15. ࠓճ͸ͦΜͳΠϥετͷߏ੒ཁૉͷதͰ΋ɺ৺ཧʹಇ̏ͭ͘ͷཁૉΛऔΓ্͛ͯਂ۷Γ͢Δɻ


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

    ޫʢ໌౓ʣ
    ΩϟϥΫλʔ
    ৺ཧʹޮ͘
    ̏ཁૉ
    ࠓճͷ
    ਂ۷Γର৅
    🔎
    Πϥετͷ৺ཧઓུͷҐஔ෇͚

    View Slide

  16. ઓུϐϥϛουͰ੔ཧ͢Δͱ͜ͷ௨ΓɻҾ͖ग़͍ͨ͠ײ৘΍৘ಈʹ߹Θͤͯ৺ཧઓུΛඳ͚ΔΑ͏ʹͳΖ͏ɻ
    Πϥετͷ৺ཧઓུϐϥϛου
    ໨త
    ઓུ
    ઓज़
    ΠϥετΛ؍Δਓͷײ৘΍৘ಈΛҾ͖ग़͢
    ޮՌతͳΩϟϥΫλʔ΍ޫʗ৭ͷํ਑ΛબͿ
    બΜͩํ਑͔Β஌ࣝ΍࣮ײΛ΋ͱʹඳ͘
    ୡ੒͍ͨ͠ΰʔϧ
    ໨తΛୡ੒͢ΔγφϦΦ
    ઓུΛୡ੒͢ΔΞΫγϣϯ

    View Slide

  17. ࠓճͷϓϨθϯͷྲྀΕ͸ͪ͜ΒɻͦΕͧΕͷ৺ཧઓུΛɺదٓ1ZUIPOεΫϦϓτΛަ͑ͳ͕Βղઆ͢Δɻ
    આ໌͢ΔྲྀΕ
    ޫͱ৭ͷ৺ཧઓུ
    ɾશਓྨʹޮ͘ΩϟϥΫλʔͷັྗΛ୳Δ
    ɾ1ZUIPOͰΩϟϥΫλʔͷັྗΛݕग़͢Δ
    ɾ഑৭ʹΑΔίϯηϓτͱృΓʹΑΔͩ͜ΘΓΛ஌Δ
    ɾ1ZUIPOͰίϯηϓτͱͩ͜ΘΓΛ୳Δ
    ΩϟϥΫλʔͷ৺ཧઓུ
    ͸͡Ίʹ

    View Slide

  18. ΩϟϥΫλʔͷ৺ཧઓུ
    ̍

    View Slide

  19. ΩϟϥΫλʔ͕ొ৔͢ΔΠϥετʹ͸ɺେ͖̎ͭ͘ͷझࢫ͕͋Δɻ̎ͭͷझࢫ͕ڞଘ͢Δ͜ͱ΋ଟ͍͕
    ΩϟϥΫλʔΠϥετͷ̎େझࢫ

    ετʔϦʔ΍৔໘
    Λ఻͑Δ
    ΩϟϥΫλʔͷັྗ
    Λ఻͑Δ

    View Slide

  20. ࠓճ͸લऀͷʮΩϟϥΫλʔͷັྗΛ఻͑ΔʯʹղઆΛߜΔʢޙऀ͸ΩϟϥҎ֎ͷཁૉ͕ෳࡶʹབྷΉͨΊʣ
    ΩϟϥΫλʔΠϥετͷ̎େझࢫ

    ετʔϦʔ΍৔໘
    Λ఻͑Δ
    ΩϟϥΫλʔͷັྗ
    Λ఻͑Δ

    Ω
    ϥ
    ͕


    Ω
    ϥ
    ͸




    View Slide

  21. ΩϟϥΫλʔͷັྗ͕఻ΘΔ৚݅͸ɺϙʔζͱද৘ͰɺΩϟϥΫλʔੑ͕෼͔Γ΍͘͢දݱͰ͖͍ͯΔ͜ͱɻ
    ັྗతͳΩϟϥΫλʔΠϥετͷ৚݅
    ΩϟϥΫλʔੑ

    ͕Θ͔Γ΍͍͢͜ͱ
    ΩϟϥΫλʔੑ
    ͦͷΩϟϥΫλʔͷ࣋ͪຯͱͳΔੑ֨΍ಛ௃ͷ͜ͱɻ
    ӳޠͰ͍͏lQFSTPOBMJUZzͷχϡΞϯε͕͍ۙɻ
    Πϥετɿ© ͻΖ͞͡ʢʮ΢Ϛ່ϓϦςΟʔμʔϏʔೋ࣍૑࡞ΨΠυϥΠϯʯ९कʣ
    lΩϟϥΫλʔΠϥετͷҾ͖ग़͠Λ૿΍͢ϙʔζͱද৘ͷԋग़ςΫχοΫΧϦϚϦΧcᠳӭࣾʢʣlΑΓ
    ϙʔζ ද৘
    ʴ Ͱදݱ
    ΩϟϥΫλʔɿΠΫϊσΟΫλεʢ© ΢Ϛ່ϓϦςΟʔμʔϏʔ$ZHBNFTʣ

    View Slide

  22. ΩϟϥΫλʔੑʢϙʔζʗද৘ʣ͸ɺ఻͍͑ͨײ৘΍γνϡΤʔγϣϯΛ΋ͱʹࢼߦࡨޡͯ͠σβΠϯ͢Δɻ
    Q. ϙʔζʗද৘͸Ͳ͏ܾ·Δ͔
    lʲΠϥετϝΠΩϯάʳߏਤΛܾΊΔ࣌ʹߟ͍͑ͯΔ͜ͱʲ΢Ϛ່ϚϠϊτοϓΨϯʳzֆ༿·͠ΖͷͪΌΜͶΔc:PVUVCFʢʣlΑΓ
    "ɹશͯΦʔμʔϝΠυɻ
    ඳ͘ΩϟϥΫλʔΛܾΊɺදݱ͍ͨ͜͠ͱΛܾΊɺ࢓্͛Δֆͷߏ૝͢Δɻ
    ΩϟϥΫλʔɿϚϠϊτοϓΨϯʢ© ΢Ϛ່ϓϦςΟʔμʔϏʔ$ZHBNFTʣ :PVUVCFಈըɿ© ֆ༿·͠Ζ

    View Slide

  23. ΩϟϥΫλʔੑʢϙʔζʗද৘ʣ͸ɺ఻͍͑ͨײ৘΍γνϡΤʔγϣϯΛ΋ͱʹࢼߦࡨޡͯ͠σβΠϯ͢Δɻ
    Q. ϙʔζʗද৘͸Ͳ͏ܾ·Δ͔
    lʲΠϥετϝΠΩϯάʳߏਤΛܾΊΔ࣌ʹߟ͍͑ͯΔ͜ͱʲ΢Ϛ່ϚϠϊτοϓΨϯʳzֆ༿·͠ΖͷͪΌΜͶΔc:PVUVCFʢʣlΑΓ
    "શͯΦʔμʔϝΠυɻ
    ɹඳ͘ΩϟϥΫλʔΛܾΊɺදݱ͍ͨ͜͠ͱΛܾΊɺ࢓্͛Δֆͷߏ૝͢Δɻ
    ౎౓ΦʔμʔϝΠυͱ͸͍͑
    ఆੴ͸Կ͔͋Δ͸ͣ
    🤔

    View Slide

  24. ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴ͸͋ΔɻதͰ΋ࠓճ͸ɺશਓྨʹޮ͍͘͢͝ఆੴΛ̎ͭ঺հ͢Δɻ
    ັྗతͳΩϟϥΫλʔͷఆੴ
    ᶃίϯτϥϙετ
    ࠷΋ݪ࢝తͳఆੴ
    ࠷΋୅දతͳఆੴ
    ᶄੑઓུ

    View Slide

  25. ఆੴͷҰͭ͸ɺίϯτϥϙετɻلݩલɺݹ୅ΪϦγΞ࣌୅ͷூࠁͰൃ໌͞Εɺࠓ΋ड͚ܧ͕ΕΔɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ίϯτϥϙετͱ͸
    +PIO4JOHFS4BSHFOU r
    cQVCMJDEPNBJO
    4BOESP#PUUJDFMMJ r
    cQVCMJDEPNBJO
    5IFCJSUIPG7FOVT
    .BEBNF9
    .JDIFMBOHFMP r
    c$$#:4"
    %BWJE
    ίϯτϥϙετ͸ɺ
    ମॏͷଟ͕͘ย٭ʹ͔͔ͬͨ࢟੎ͷ͜ͱɻ
    ༂ಈײΛੜΉ࢟੎ͱͯ͠لݩલ̐ੈلࠒʹൃ໌ɻ
    ݱ୅ʹ΋޿͘ड͚ܧ͕Ε͍ͯΔɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ

    View Slide

  26. ͳͥίϯτϥϙετ͕ΩϟϥΫλʔΛັྗతʹ͢Δͷ͔ɻ·ͣ͸ɺͦͷҰͭͷཧ༝Λղઆ͢Δɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ɾย଍ʹମॏ͕͔͔ͬͨ࢟੎͸ɺ
    ɹߦಈͷ్தͰෆ҆ఆͳঢ়ଶɻ
    ɾମͷॏ৺ʹζϨ͕ੜ͡ɺ
    ɹແҙࣝతʹ಄ɾମɾ྆ख଍ͰόϥϯεΛऔΔɻ

    View Slide

  27. ย଍ʹମॏ͕͔͔Δͱࠎ൫͕܏͖ɺͦΕʹ࿈ΕΒΕͯ਎ମதͷ෦ҐͰόϥϯε͕औΒΕΔʢཱͪ௚Γ൓Ԡʣ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ɾย଍ʹମॏ͕͔͔ͬͨ࢟੎͸ɺ
    ɹߦಈͷ్தͰෆ҆ఆͳঢ়ଶɻ
    ɾମͷॏ৺ʹζϨ͕ੜ͡ɺ
    ɹແҙࣝతʹ಄ɾମɾ྆ख଍ͰόϥϯεΛऔΔɻ

    View Slide

  28. ͭ·Γɺશ਎ͰͷδΣενϟʔ͕ൃੜ͠ɺߦಈ΍ҙࢥɺͻ͍ͯ͸ΩϟϥΫλʔੑ͕෼͔Γ΍͍͢ঢ়ଶʹͳΔɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ɾย଍ʹମॏ͕͔͔ͬͨ࢟੎͸ɺ
    ɹߦಈͷ్தͰෆ҆ఆͳঢ়ଶɻ
    ɾମͷॏ৺ʹζϨ͕ੜ͡ɺ
    ɹແҙࣝతʹ಄ɾମɾ྆ख଍ͰόϥϯεΛऔΔɻ
    㲈શ਎Λ࢖ͬͨδΣενϟʔ
    ΩϟϥΫλʔੑ͕શ਎ʹදΕͨঢ়ଶ

    View Slide

  29. ɾҰํͰɺΩϟϥΫλʔΛݟΔਓͷ࿩ɻ
    ɾਓؒ͸ຊೳతʹɺ໨ͷલͷةػΛճආ͢ΔͨΊʹɺ
    ɹ໨ͷલͰ࣍ʹى͜Γ͏Δ͜ͱΛৗʹਪଌ͍ͯ͠Δɻ
    ɾߦಈͷ్தͷΩϟϥΫλʔ͸ਅͬઌʹ෼ੳͨ͘͠ͳΔɻ
    ҰํͰͦΕΛݟΔਓ͸ɺةػճආͷੜཧ൓Ԡ͕ಇ͖ɺ໨ͷલͷδΣενϟʔʹ໨ΛୣΘΕΔɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ

    View Slide

  30. ͦͯ͠ΩϟϥΫλʔੑͷ໌շ͔͞Β಺໘Λ஌Γɺ಺໘Λ஌Δͱਓ͸ͦͷਓ෺ʹ޷ײΛ࣋ͭʢख़஌ੑͷݪཧʣ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ɾҰํͰɺΩϟϥΫλʔΛݟΔਓͷ࿩ɻ
    ɾਓؒ͸ຊೳతʹɺ໨ͷલͷةػΛճආ͢ΔͨΊʹɺ
    ɹ໨ͷલͰ࣍ʹى͜Γ͏Δ͜ͱΛৗʹਪଌ͍ͯ͠Δɻ
    ɾߦಈͷ్தͷΩϟϥΫλʔ͸ਅͬઌʹ෼ੳͨ͘͠ͳΔɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ΩϟϥΫλʔͷ಺໘Λ஌Δͱɺͦͷਓ෺΁ͷ޷ײ͕૿͢

    View Slide

  31. ͦΜͳҰ࿈ͷਓؒͷशੑΛύοέʔδԽͨ͠ͷ͕ίϯτϥϙετɻ͜Ε͕ັྗΛҾ͖ग़͢࿦ཧͷҰͭɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̍ɿࣗવͱΩϟϥΫλʔੑ͕ݱΕΔ
    ίϯτϥϙετ͸ɺ͜ΕΒਓؒͷशੑΛύοέʔδԽͨ͠ϙʔζ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ΩϟϥΫλʔੑ͕Θ͔Γ΍͍͢
    ࢥΘͣݟͪΌ͏ ޷ײ΍਌ۙײΛ࣋ͭ

    View Slide

  32. ͦͯ͠΋͏Ұͭͷ࿦ཧ͸୯७ɻϓϩϙʔγϣϯ͕ྑ͍ΩϟϥΫλʔͷັྗɺ೑ମඒΛڧௐ͢ΔޮՌ͕͋Δɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̎ɿ೑ମඒ͕ڧௐ͞ΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ɾྑ͍ϓϩϙʔγϣϯΛҰ૚ڧௐ͢ΔޮՌ͕͋Δɻ
    ɾಛʹݦஶͳͷ͕ɺେ͖ͳ4ࣈΧʔϒΛඳ͘λΠϓɻ

    View Slide

  33. ಛʹޮՌ͕ߴ͍ͷ͕4ࣈϙʔζɻ਎ମͷߏ଄্ɺঁੑ͕ಘҙɻϘσΟϥΠϯ΍ࠎ൫ͷ޿͕͞ڧௐ͞ΕΔɻ
    lιοΧͷඒज़ղ๤ֶϊʔτιΫδϣϯώϣϯcΦʔϜࣾʢʣlଞΑΓ
    ίϯτϥϙετͷ࿦ཧͦͷ̎ɿ೑ମඒ͕ڧௐ͞ΕΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    4ࣈϙʔζ͸਎ମͷߏ଄্ɺঁੑ͕ಘҙ
    ਎ମͷϥΠϯ΍Ԝತ͕ࡍཱͪɺ
    ݩʑྑ͍ϓϩϙʔγϣϯ͕ߋʹڧௐ͞ΕΔ
    ɾྑ͍ϓϩϙʔγϣϯΛҰ૚ڧௐ͢ΔޮՌ͕͋Δɻ
    ɾಛʹݦஶͳͷ͕ɺେ͖ͳ4ࣈΧʔϒΛඳ͘λΠϓɻ

    View Slide

  34. ·ͨɺٯసͷΞϓϩʔνͱͯ͠ɺϙʔδϯάͷࢿྉ͔Βย଍ཱͪҎ֎ͷ̎ͭͷ৚݅Λݟग़͞Εͨɻ
    ϙʔδϯάʹ࢖ΘΕΔίϯτϥϙετͷ৚݅
    lඳ͖͍ͨ΋ͷΛཧ࿦Ͱ͔ͭΉϙʔζͷఆཧࣰ๪࿡࿠c,"%0,"8"ʢʣlΑΓ
    ਓΛऒ͖͚ͭΔϙʔδϯάʹ͸ڞ௨఺͕͋Γ·͢ɻ


    ঁੑͷࣸਅࢿྉͷଟ͕͘ɺ͜ͷ̏ͭͷ৚݅Λຬͨ͢ɻ
    ɾย଍ཱͪPSͦΕʹ͍ۙॏ৺όϥϯε
    ɾ಑ମʹཱମతͳͻͶΓ͕͋Δ
    ɾݞͱࠊͷࠨӈͷߴ͕͞ޓ͍ҧ͍
    (
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ

    View Slide

  35. Ͱ͸͜͜Ͱɺͦͷ৚݅ͷҰͭʹண໨͠ɺ1ZUIPOͰίϯτϥϙετͷݕग़ʹ௅ΜͰΈΔɻ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFWK+3MB&6W*CQE36I,FYIR#@*%LH4
    ίϯτϥϙετΛݕग़͢Δ
    ɾย଍ཱͪPSͦΕʹ͍ۙॏ৺όϥϯε
    ɾ಑ମʹཱମతͳͻͶΓ͕͋Δ
    ɾݞͱࠊͷࠨӈͷߴ͕͞ޓ͍ҧ͍
    ( ͷ৚݅Λຬͨ͢ϙʔζΛݕग़͢Δ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ

    View Slide

  36. ·ͣ%ը૾͔Β%ͷΩʔϙΠϯτਪఆΛ͢Δɻਪఆ͸ɺ405"ͷख๏ʢ.F53"CTʣʹͯ4.1-Λ׆༻ɻ
    ίϯτϥϙετΛݕग़͢Δ
    ʢ5'ʹͯ%࢟੎ਪఆϞσϧ 4.1-
    Λར༻ʣ
    # import library
    import tensorflow as tf
    # load model
    model = tf.saved_model.load(download_model('metrabs_mob3l_y4t'))
    # load input image
    image = tf.image.decode_jpeg(tf.io.read_file(img_name))
    pred = model.detect_poses(image, skeleton='smpl_24')
    # visualize by MeTRAbs demo method
    visualize(
    image.numpy(),
    pred['boxes'].numpy(),
    pred['poses3d'].numpy(),
    pred['poses2d'].numpy(),
    model.per_skeleton_joint_edges['smpl_24'].numpy())
    ࢟੎ਪఆ͸શ਎ֆͷΈ༗ޮɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ
    ಥඈͳϙʔζ͸ɺ
    ͏·࢟͘੎ਪఆͰ͖ͳ͍

    View Slide

  37. ਪఆͨ͠ΩʔϙΠϯτͷ࠲ඪಉ࢜ͷ૬ରతͳҐஔؔ܎Λܭࢉ͠ɺݞͱࠊͷࠨӈͷߴ͕͞ޓ͍ҧ͍͔൑ผɻ
    ίϯτϥϙετΛݕग़͢Δ
    ʢ5'ʹͯ%࢟੎ਪఆϞσϧ 4.1-
    Λར༻ʣ
    # adjusting the visualize method
    def visualize(…):
    ...
    # detect contrast per estimated humans
    # using coordinate transformation
    is_contra = detect_contra(pred['poses3d'].numpy()[i])
    ...
    # visualize by MeTRAbs demo method
    visualize(
    image.numpy(),
    pred['boxes'].numpy(),
    pred['poses3d'].numpy(),
    pred['poses2d'].numpy(),
    model.per_skeleton_joint_edges['smpl_24'].numpy())
    ࠲Ґͷίϯτϥϙετ΋ਪఆՄɻ
    ݕग़ͨ͠ίϯτϥϙετΛɺ
    ੺࿮ͷCCPYͰғΉɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃɿίϯτϥϙετ

    View Slide

  38. ίϯτϥϙετ͸ελΠϧͷྑ͍ਓ෺ʹ༗རͳఆੴɻ࣍͸ɺผͷ࣋ͪຯ΋׆͖ΔʮੑઓུʯΛ঺հ͢Δɻ
    ΋ͪΖΜɺ೑ମඒ͚͕ͩ޷·ΕΔ৚݅Ͱ͸ͳ͍
    ɾͨͩɺΩϟϥΫλʔશͯͷϓϩϙʔγϣϯ͕
    ɹ༏Ε͍ͯΔΘ͚Ͱ͸ͳ͍ɻ
    ɾڝ͏ͳɺ࣋ͪຯΛΠΧͤɻ
    ɾϓϩϙʔγϣϯͷྑ͞΋ؚΊͯɺ
    ɹશਓྨ͕ऒ͔ΕΔΩϟϥΫλʔͷ࣋ͪຯΛ
    ɹ͍͔ͭ͘঺հ͢Δɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶃˠᶄ
    ぐぬぬ

    View Slide

  39. Ҩ఻ࢠϨϕϧͰ޷·ΕΔಛ௃͸ɺஉঁผʹɺҟੑɾಉੑɾࢠڙͱ͍͏ଐੑʹ෼͚Δͱ੔ཧ͠΍͍͢ɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlΑΓ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃
    ࢲͨͪͷҨ఻ࢠͷϓϩάϥϜ͞Εͨɺऒ͔ΕΔΩϟϥΫλʔͷಛ௃ͱ͸ʜʁ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ
    ରɾҟੑ
    ରɾಉੑ
    ରɾࢠڙ
    ʁ
    ʁ
    ʁ
    ʁ
    ʁ
    ʁ

    View Slide

  40. ·ͣ͸உੑ͕޷Ήঁੑͷಛ௃ɻஉੑ͸ɺ׬શʹݟͨ໨͚ͩͰए݈͘߁Ͱ͋Δ͜ͱ͕൑ผͰ͖Δಛ௃Λ޷Ήɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ͘ͼΕͨࡉ͍΢ΤετɺԒͷ͋Δ௕͍൅ɺ
    ๛ຬͰϋϦͷ͋Δόετɺؙ͘ઑֺͬͨɺ
    γϫͷͳ͍៉ྷͳटݩɺ෯ͷ޿͍ࠎ൫ɺ
    ϋϦͷ͋Δ៉ྷͳखɺ೑෇͖ͷྑ͍٭FUD
    ˠ
    ए݈͘߁Ͱ
    ൟ৩Ձ͕ߴ͍
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உੑˠҟੑ>
    உੑ͸جຊతʹൟ৩Ձ͕ߴ͍ʢ೛৷͕੒ޭ͠΍͍͢ʣঁੑΛ޷Ήɻ
    ೛৷͸ɺ݈߁Ͱए͍ঁੑ΄Ͳ੒ޭ཰্͕͕ΔͷͰɺݟͨ໨ͷ݈߁͞ͱए͕͞γάφϧɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  41. ·ͣ͸உੑ͕޷Ήঁੑͷಛ௃ɻஉੑ͸ɺ׬શʹݟͨ໨͚ͩͰए݈͘߁Ͱ͋Δ͜ͱ͕൑ผͰ͖Δಛ௃Λ޷Ήɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ͘ͼΕͨࡉ͍΢ΤετɺԒͷ͋Δ௕͍൅ɺ
    ๛ຬͰϋϦͷ͋Δόετɺؙ͘ઑֺͬͨɺ
    γϫͷͳ͍៉ྷͳटݩɺ෯ͷ޿͍ࠎ൫ɺ
    ϋϦͷ͋Δ៉ྷͳखɺ೑෇͖ͷྑ͍٭FUD
    ˠ
    ए݈͘߁Ͱ
    ൟ৩Ձ͕ߴ͍
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உੑˠҟੑ>
    உੑ͸جຊతʹൟ৩Ձ͕ߴ͍ʢ೛৷͕੒ޭ͠΍͍͢ʣঁੑΛ޷Ήɻ
    ೛৷͸ɺ݈߁Ͱए͍ঁੑ΄Ͳ੒ޭ཰্͕͕ΔͷͰɺݟͨ໨ͷ݈߁͞ͱए͕͞γάφϧɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ
    ঁੑΩϟϥʹඳ͔ΕΔϑΣνͷଟ͕͘ʮए͞ʯͱʮ݈߁ʯͷσϑΥϧϝ
    FUD
    Ԓͷ͋Δ௕͍൅ ๛ຬͰϋϦͷ͋Δόετ ؙ͘ઑֺͬͨ
    ͘ͼΕͨࡉ͍΢Τετ
    ෯ͷ޿͍ࠎ൫ γϫͷͳ͍៉ྷͳख ೑෇͖ͷྑ͍٭
    γϫͷͳ͍៉ྷͳटݩ
    ੒ख़͠ɺ࿝͚͍ͯͳ͍ ੒ख़͠ɺ͔ͭ҆࢈͕ݟࠐΊΔ ੒ख़͠ɺ࿝͚͍ͯͳ͍ ੒ख़͠ɺ݈߁తͰ͋Δ
    පؾͰͳ͘ɺ೛৷͍ͯ͠ͳ͍ ੒ख़͠ɺਨΕΔ೥ྸͰ͸ͳ͍
    ൅Λ৳͹͢ظؒɺ݈߁Ͱए͍ ೕࣃ͕ແ͍೥ྸͰɺଠͬͯͳ͍

    View Slide

  42. ঁੑ͸உੑʹൺ΂ɺҟੑʹର͠௕ظతͳؔ܎Λ๬Ήɻ·ͨɺൺֱతࢿ࢈͕ଟ͘஍Ґͷߴ͍೥্Λ޷Έ΍͍͢ɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ʁʁʁ
    ೥্ɺଞʁ
    ˠ
    ˠ
    ڧ݈͘߁Ͱੜଘ͠ଓ͚Δ
    ࣋ଓతʹՈఉΛࢧԉͰ͖Δ
    ঁੑ͸࣋ଓతʹࣗ෼΍࣮ࢠΛࢧԉͰ͖ΔɺͣͬͱຯํͰ͍ͯ͘ΕΔڧ͍உੑΛ޷Ήɻ
    ݈߁Ͱࢿ࢈͕ଟ͘ɺͦΕΒ͕ࣗ෼΍࣮ࢠͷͨΊʹ࢖ΘΕΔͱ͍͏҆৺ײ΋େࣄɻ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<ঁੑˠҟੑ>
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  43. ҟੑʹରͯ͠إͷඒ͠͞ΛٻΊΔͷ͸ɺஉঁڞ௨ɻࠨӈରশͳإ͸ɺ༏ΕͨҨ఻ࢠΛड͚ܧ͙৅௃Ͱ΋͋Δɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlଞΑΓ
    lݱ୅ϚϯΨʹ͓͚Δʮ͔Θ͍͍ΩϟϥΫλʔʯͷ෼ੳͱ૑࡞ཥӱ௒cژ౎ਫ਼՚େֶʢʣlΑΓҾ༻
    average()
    ݟͨ໨ͰΘ͔Δಛ௃
    ࠨӈରশ පؾͳͲͰࠨӈͷ࿪Έ͕ͳ͍
    ଟ༷ͳҨ఻ࢠΛड͚ܧ͍Ͱܗ੒͞Εͨإ
    ฏۉإ
    ˠ
    ˠ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உঁˠҟੑ>
    உঁͱ΋ʹɺإ͕ඒ͍͠ҟੑΛٻΊΔɻ
    ࠨӈରশͰฏۉతͳإ͕ඒ͍͠ͱ͞Ε͍ͯΔɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  44. ·ͨɺஉঁͱ΋ʹࣗ෼Λ޷͍ͨҟੑΛ޷Ήɻஉੑͷ޷Ήൟ৩ɺঁੑͷ޷Ή௕ظతͳؔ܎ɺ྆ํʹ༗ޮͳͨΊɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlଞΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ࣗ෼ʹإΛ޲͚Δɺಏ޸͕։͘
    সإ
    ˠ
    ˠ
    ࣗ෼ʹڵຯ͕͋Δ
    ࣗ෼ʹ޷ײΛ࣋ͭ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உঁˠҟੑ>
    உঁͱ΋ʹɺࣗ෼ʹڵຯ΍޷ײΛ࣋ͭҟੑʹ΋ऒ͔ΕΔɻ
    ࢹઢ΍ಏ޸ͱ͍͕ͬͨ໨ͷ༷ࢠ͔Βਪଌ͢Δ͜ͱ͕ଟ͍ɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  45. ࣍ʹಉੑʹରͯ͠ɻஉঁͱ΋ʹࣗ෼ͷརӹ࠷େԽͷͨΊɺ਎಺΍͓खຊʹͳΔಉੑΛ޷Ήʢ಺ूஂόΠΞεʣ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ʁʁʁ
    ʁʁʁ
    ˠ
    ˠ
    ݟฦΓ͕ظ଴Ͱ͖Δ
    ༏ΕͨೳྗΛࢀߟʹͰ͖Δ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உঁˠಉੑ>
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ
    ಉੑʹରͯ͠͸உঁͱ΋ʹɺ
    ࣗ෼ͷੑઓུͷো֐ͱͳΒͳ͍ڠྗؔ܎ʹ͋ΔಉੑΛ޷Ήɻ

    View Slide

  46. ࠷ޙʹɺࢠڙʹରͯ͠ɻஉঁͱ΋ʹϕϏʔεΩʔϚΛ࣋ͭ΋ͷʹ͸ɺਓͰ΋ಈ෺Ͱ΋ѪΒ͘͠ײ͡Δɻ
    l%JFBOHFCPSFOFO'PSNFONÖHMJDIFS&SGBISVOH-PSFO[ ,c;FJUTDISJGU'ÛS5JFSQTZDIPMPHJFʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ϕϏʔεΩʔϚ
    <େ͖ͳ໨ɺ๲ΒΜͩ๹ɺؙ͍͓Ͱ͜ɺ
    େ͖ͳ಄ɺ஄ྗ͋Δഽɺ୹͍ख଍FUD>
    ˠ
    อޢͨ͘͠ͳΔ
    ༊͞ΕΔ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உঁˠࢠڙ>
    ࢠڙʹରͯ͠͸உঁͱ΋ʹɺ
    ʮϕϏʔεΩʔϚʯͰఆٛ͞ΕΔࢠڙΒ͍͠਎ମతಛ௃ΛѪΒ͘͠ࢥ͏ɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  47. ࠷ޙʹɺࢠڙʹରͯ͠ɻஉঁͱ΋ʹϕϏʔεΩʔϚΛ࣋ͭ΋ͷʹ͸ɺਓͰ΋ಈ෺Ͱ΋ѪΒ͘͠ײ͡Δɻ
    l%JFBOHFCPSFOFO'PSNFONÖHMJDIFS&SGBISVOH-PSFO[ ,c;FJUTDISJGU'ÛS5JFSQTZDIPMPHJFʢʣlΑΓ
    ݟͨ໨ͰΘ͔Δಛ௃
    ϕϏʔεΩʔϚ
    <େ͖ͳ໨ɺ๲ΒΜͩ๹ɺؙ͍͓Ͱ͜ɺ
    େ͖ͳ಄ɺ஄ྗ͋Δഽɺ୹͍ख଍FUD>
    ˠ
    อޢͨ͘͠ͳΔ
    ༊͞ΕΔ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<உঁˠࢠڙ>
    ࢠڙʹରͯ͠͸உঁͱ΋ʹɺ
    ʮϕϏʔεΩʔϚʯͰఆٛ͞ΕΔࢠڙΒ͍͠਎ମతಛ௃ΛѪΒ͘͠ࢥ͏ɻ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ
    ࢠڙͷ਎ମతಛ௃͸ɺ࣮೥ྸ΋छ଒΋࣍ݩ΋ؔ܎ͳ͘ѪΒ͍͠

    View Slide

  48. Ҏ্͕ɺੑઓུΛ΋ͱʹ੔ཧͨ͠޷·ΕΔಛ௃ɻ֎ݟ͔ΒಡΈऔΓ΍͍͢ԫ৭͸ɺΠϥετʹԠ༻͠΍͍͢ɻ
    lਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯεҰສ೥มԽ͠ͳ͍Ձ஋؍Ξϥϯɾ4ɾϛϥʔcύϯϩʔϦϯάגࣜձࣾʢʣlଞΑΓ
    உঁͷੑઓུʹجͮ͘޷·ΕΔಛ௃<·ͱΊ>
    ରɾҟੑ
    ରɾಉੑ
    ରɾࢠڙ
    ए͞
    ݈߁͞ʗإͷྑ͞ʗࣗ෼ʹؔ৺͕͋Δ
    ࣗ෼ʹརӹΛ΋ͨΒ͢
    ࢠڙΒ͍͠਎ମతಛ௃Λ࣋ͭ
    ࣋ଓతͳڧ͍ຯํʹͳΔ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  49. ͨͩ͠ɺແܭըʹҰ෦ͷײੑΛܹࢗ͢ΔΑ͏ͳΠϥετΛඳ͘ͷ͸ةݥɻཁ݅ʹݟ߹͏ൣғͰ׆༻͠Α͏ɻ
    lʮӺ೫Έ͔ͪʯεέεέεΧʔτ͕େ෺ٞɹ౦ژϝτϩɺ൷൑ड͚ඍົʹʮमਖ਼ʯʢʣc+$"45χϡʔεzΑΓ
    ͨͩ͠ɺੑઓུͷσϑΥϧϝ͸৻ॏʹ
    ΩϟϥΫλʔΛັྗతʹݟͤΔͷ΋େࣄ͕ͩɺ
    ڧௐ͢Δͷ͸ΩϟϥΫλʔͷཁ݅ʹ߹ͬͨັྗʹߜΔඞཁ͕͋Δɻ
    ʮެڞަ௨ػؔͷΩϟϥΫλʔͱͯ͠;͞Θ͘͠ͳ͍ʯ


    ͱͯ͠෺ٞΛৢ͠ɺʮӺ೫Έ͔ͪʯͷσβΠϯ͸मਖ਼͞Εͨɻ
    मਖ਼
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  50. Ͱ͸ੑઓུʹجͮ͘ಛ௃Λڧௐ͠ա͍͗ͯͳ͍͔ɺ࿐ࠎͳදݱΛ1ZUIPOͰݕग़ͯ͠ΈΔɻ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFC%[email protected]@8NRWO.I/::Y[.%6
    ࿐ࠎͳදݱΛݕग़͢Δ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  51. ਺ߦͰݕग़͢Δྫɻ/4'8'JMUFS͸4/4΍ݕࡧͳͲͷࣄྫ͕ଟ͘ɺ044΋ଟ͍ɻϑϦʔϥΠυ͠΍͍͢ɻ
    ࿐ࠎͳදݱΛݕग़͢Δʢ/VEFOFUͷֶशࡁΈϞσϧʗ൑ผثΛར༻ʣ
    # import library
    import nudenet as NudeDetector
    # load input image and put local (omitted)
    # initialize detector (adjusted NudeDetector in nudenet)
    detector = NudeDetector()
    # run censor method
    # -> detect nudity & set bbox & display image
    detector.censor(img_name)
    ݕग़࣌ʹ
    ܯࠂʁ
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴᶄɿੑઓུ

    View Slide

  52. લ൒·ͱΊɻΩϟϥΫλʔͷັྗΛදݱ͢Δࣗ༝౓͕ߴ͍͜ͱΛ౿·͑ͯɺશਓྨʹ༗ޮͳఆੴΛࣔͨ͠ɻ
    ΩϟϥΫλʔͷ৺ཧઓུɿ·ͱΊ
    ϙʔζ ද৘
    Ͳ͏ັྗΛ఻͑Δ͔
    ίϯτϥϙετ
    ఆੴ
    ੑઓུ
    ʜ
    ΩϟϥΫλʔੑͱ
    ೑ମඒ
    ʜ
    உ͸ൟ৩ɺ
    ঁ͸Ϧιʔε
    ಛ௃ᶃ
    ಛ௃ᶇ ಛ௃ᶄ
    ಛ௃ᶆ ಛ௃ᶅ
    ϙʔζʗද৘ΛܾΊΔ
    ΩϟϥΫλʔͷັྗΛ఻͑Δ ετʔϦʔ΍৔໘Λ఻͑Δ
    Ωϟϥֆͷझࢫ

    View Slide

  53. ίϯτϥϙετ
    ఆੴ
    ੑઓུ
    ʜ
    ΩϟϥΫλʔੑͱ
    ೑ମඒ
    ʜ
    உ͸ൟ৩ɺ
    ঁ͸Ϧιʔε
    ಛ௃ᶃ
    ಛ௃ᶇ ಛ௃ᶄ
    ಛ௃ᶆ ಛ௃ᶅ
    ϙʔζʗද৘ΛܾΊΔ
    ʁʁʁ ʁʁʁ
    ϙʔζ ද৘
    Ͳ͏ັྗΛ఻͑Δ͔
    ΩϟϥΫλʔͷັྗΛ఻͑Δ ετʔϦʔ΍৔໘Λ఻͑Δ
    Ωϟϥֆͷझࢫ
    ࠓճ঺հͨ͠ఆੴ͸σϞͰࣔͨ͠௨Γɺ1ZUIPO΍"*Ͱ΋ཧղ͠΍͍͢ɻֆࢣ͕஫ྗ͢΂͖͸ଞͷཁૉ͔΋ɻ
    ΩϟϥΫλʔͷ৺ཧઓུɿΫϦΤΠλʔ͕஫ྗ͢΂͖͸…ʁ

    View Slide

  54. ̎
    ޫͱ৭ͷ৺ཧઓུ

    View Slide

  55. l৭ృΓνϡʔτϦΞϧσδλϧ࠼৭ͷجຊύΫɾϦϊcϚʔϧࣾʢʣlΑΓ
    લఏ஌ࣝͱͯ͠ɺޫ͸෺ཧݱ৅Ͱɺ৭͸৺ཧݱ৅Ͱ͋Δ͜ͱɻͦͯ͠৭͸ޫʹґଘ͍ͯ͠Δɻ
    ޫͱ৭
    ৭͸ޫʹґଘ͢Δ
    ന৭ޫ ੺͍ޫ
    ੺ʂ

    View Slide

  56. ΋͠΋ޫݯ͕ϒϧʔϥΠτ͔͠ͳ͔ͬͨΒɺࢲͨͪ͸੨͔ࠇ͔͠ೝࣝ͢Δ͜ͱ͕Ͱ͖ͳ͍ɻ
    ޫͱ৭
    ৭͸ޫʹґଘ͢Δ
    ϒϧʔϥΠτ ൓ࣹޫ
    ࠇʁ
    ੨ʁ
    l৭ృΓνϡʔτϦΞϧσδλϧ࠼৭ͷجຊύΫɾϦϊcϚʔϧࣾʢʣlΑΓ

    View Slide

  57. ΋͠΋ޫݯ͕ϒϧʔϥΠτ͔͠ͳ͔ͬͨΒɺࢲͨͪ͸੨͔ࠇ͔͠ೝࣝ͢Δ͜ͱ͕Ͱ͖ͳ͍ɻ
    ޫͱ৭
    ৭͸ޫʹґଘ͢Δ
    ϒϧʔϥΠτ ൓ࣹޫ
    ࠇʁ
    ੨ʁ
    l৭ృΓνϡʔτϦΞϧσδλϧ࠼৭ͷجຊύΫɾϦϊcϚʔϧࣾʢʣlΑΓ
    %B[4UVEJP *SBZ
    ʹͯ࡞੒ lըͮ͘ΓͷͨΊͷޫͷतۀϦνϟʔυɾϤοτc#//৽ࣾʢʣlΑΓ
    ༦ํͷଠཅޫ ۭ৭ͷఱۭޫ
    ೔ৗੜ׆Ͱ΋ɺ৭͕ภΔޫܠ͸Α͘ݟΒΕΔ

    View Slide

  58. Ͱ͸·ͣ͸ɺΠϥετ͔Βޫͱ৭Λ෼཭ͯٞ͠࿦͢ΔͨΊɺ1ZUIPOͰর໌ͷ৭Λ෼཭ͯ͠ΈΔɻ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFG0G5Y:OE30-DR['M*-23G),(D,0D'
    PythonͰΠϥετͷޫͷ৭Λ୳Δ
    Πϥετ͔Βর໌ͷ৭Λফ͢

    View Slide

  59. # crone Deep_White_Balance
    !git clone https://github.com/mahmoudnafifi/Deep_White_Balance.git
    # run test script
    !python demo_single_image.py \
    —input INPUT_IMAGE_PATH \
    --output_dir OUTPUT_DIR \
    --model_dir MODEL_DIR
    # crone mixedillWB
    !git clone https://github.com/mahmoudnafifi/mixedillWB.git
    # run test script
    !python test.py \
    --wb-settings T F D C S \
    --model-name WB_model_p_64_D_S_T_F_C \
    —testing-dir INPUT_DIR --outdir OUTPUT_DIR
    ϗϫΠτόϥϯεͷ่ΕΛิਖ਼͠ɺෳ਺ͷর໌ͷ৭Λิਖ਼͢Δͱ͍͏̎ͭͷख๏Λ࠾༻ʢ঎༻ར༻ෆՄʣ
    র໌ͷ৭Λݕग़ʗന͘ิਖ਼͢Δʢ%FFQ8# NJYFEJMM8#Λར༻6/FUʣ
    ("'"ࣾһΒͷެ։͢ΔSFQPͷ
    αϯϓϧεΫϦϓτΛ࣮ߦ͢Δ͚ͩɻ
    PythonͰΠϥετͷޫͷ৭Λ୳Δ

    View Slide

  60. # crone Deep_White_Balance
    !git clone https://github.com/mahmoudnafifi/Deep_White_Balance.git
    # run test script
    !python demo_single_image.py \
    —input INPUT_IMAGE_PATH \
    --output_dir OUTPUT_DIR \
    --model_dir MODEL_DIR
    # crone mixedillWB
    !git clone https://github.com/mahmoudnafifi/mixedillWB.git
    # run test script
    !python test.py \
    --wb-settings T F D C S \
    --model-name WB_model_p_64_D_S_T_F_C \
    —testing-dir INPUT_DIR --outdir OUTPUT_DIR
    ϗϫΠτόϥϯεͷ่ΕΛิਖ਼͠ɺෳ਺ͷর໌ͷ৭Λิਖ਼͢Δͱ͍͏̎ͭͷख๏Λ࠾༻ʢ঎༻ར༻ෆՄʣ
    র໌ͷ৭Λݕग़ʗന͘ิਖ਼͢Δʢ%FFQ8# NJYFEJMM8#Λར༻6/FUʣ
    ("'"ࣾһΒͷެ։͢ΔSFQPͷ
    αϯϓϧεΫϦϓτΛ࣮ߦ͢Δ͚ͩɻ
    PythonͰΠϥετͷޫͷ৭Λ୳Δ
    ࣮ࣸ%
    👍 Πϥετ
    σϑΥϧϝऑΊ

    👍 Πϥετ
    σϑΥϧϝڧΊ

    🤔
    ͨͩ͠σϑΥϧϝ͕ڧ͘ͳΔ΄Ͳɺ৭ͷิਖ਼͕͏·͍͔͘ͳ͘ͳΔɻ
    ڧ

    View Slide

  61. Πϥετͷޫͷදݱ͸ɺ෺ཧ๏ଇʹ४ڌ͸ͯ͠΋ɺ९क͸͞Εͳ͍ɻͦͷͨΊҰఆͷϧʔϧͷநग़͸ࠔ೉ɻ
    PythonͰΠϥετͷޫͷ৭Λ୳Δ → Failed
    2ΠϥετͷϗϫΠτόϥϯεɺԿނ͏·͍͔͘ͳ͍ͷ͔
    έʔε̍ɹهԱ৭ʢయܕ৭ʣΛڧௐ έʔε̎ɹཱମදݱ͕লུ
    "ɹཧ༝͸ʮޫͷ෺ཧ๏ଇʹैΘͳ͍࠼৭ʯ͔ͩΒ ˠ ҰఆͷϧʔϧԽ͸ࠔ೉
    ʜ
    l৭࠼ݕఆެࣜςΩετڃฤ ೥վగ൛
    ʗ6$ڃ ೥վగ൛
    ৭࠼ݕఆڠձc৭࠼ݕఆڠձlଞΑΓ
    ڧௐ লུ

    View Slide

  62. Πϥετͷޫͷදݱ͸ɺ෺ཧ๏ଇʹ४ڌ͸ͯ͠΋ɺ९क͸͞Εͳ͍ɻͦͷͨΊҰఆͷϧʔϧͷநग़͸ࠔ೉ɻ
    PythonͰΠϥετͷޫͷ৭Λ୳Δ → Failed
    2ΠϥετͷϗϫΠτόϥϯεɺԿނ͏·͍͔͘ͳ͍ͷ͔
    έʔε̍ɹཱମදݱ͕লུ έʔε̎ɹهԱ৭ʢయܕ৭ʣΛڧௐ
    "ɹཧ༝͸ʮޫͷ෺ཧ๏ଇʹैΘͳ͍࠼৭ʯ͔ͩΒ ˠ ҰఆͷϧʔϧԽ͸ࠔ೉
    লུ ڧௐ
    ʜ
    l৭࠼ݕఆެࣜςΩετڃฤ ೥վగ൛
    ʗ6$ڃ ೥վగ൛
    ৭࠼ݕఆڠձc৭࠼ݕఆڠձlଞΑΓ
    Πϥετσʔλͷ෼ੳͰ͸
    ޫΛ௚઀ѻ͏ͷ͸೉͍͠ɺ৭ʹूத͢Δ
    🥲
    ઓུతఫୀ
    ͥ͟ΔΛಘͳ͍

    View Slide

  63. ৭ͷ໾໨͸ɺ੍࡞ϑϩʔͷஈ֊ʹΑͬͯେ͖̎ͭ͘ʹ෼͔ΕΔɻ
    a


    ϑ
    ϩ
    Πϥετશମͷ৭ΛܾΊΔ
    ඃࣸମʢʴഎܠʣΛඳ͖ࠐΉ
    ৭ͷ໾໨ͱ੍࡞ϑϩʔ

    View Slide

  64. ҰൠʹɺґཔऀʹΠϥετΛൃ஫͞Εͨ৔߹ɺΠϥετΛ࢓্͛Δલʹ·ͣશମͷ഑৭Λ֬ೝͯ͠΋Β͏ɻ
    a
    Πϥετશମͷ৭ΛܾΊΔ
    ඃࣸମʢʴഎܠʣΛඳ͖ࠐΉ


    ϑ
    ϩ
    ৭ΛృΓ࢝ΊΔલʹ
    ৭ͷϥϑΛ͍͔ͭ͘ඳ͍ͯɺ
    ґཔओͱೝࣝΛ߹ΘͤΔɻ
    ˠίϯηϓτΛܾΊΔ
    ৭ͷ໾໨ͱ੍࡞ϑϩʔ

    View Slide

  65. a


    ϑ
    ϩ
    Πϥετશମͷ৭ΛܾΊΔ
    ඃࣸମʢʴഎܠʣΛඳ͖ࠐΉ
    ܾ·ͬͨ഑৭Λϕʔεʹ
    ண৭͠ɺࡉ෦Λඳ͖ࠐΉɻ
    ˠΫΦϦςΟΛ্͛Δ
    ˠίϯηϓτΛܾΊΔ
    ഑৭Ͱґཔऀͱͷ߹ҙ͕औΕͨΒɺΫΦϦςΟʔΛ্͛ΔͨΊʹΠϥετʹ৭Λඳ͖ࠐΜͰ͍͘ɻ
    ৭ͷ໾໨ͱ੍࡞ϑϩʔ

    View Slide

  66. a


    ϑ
    ϩ
    ഑৭Ͱ
    ίϯηϓτܾఆ
    Πϥετશମͷ৭ΛܾΊΔ
    ˠίϯηϓτΛܾΊΔ
    ృΓͰ
    ΫΦϦςΟ61
    ඃࣸମʢʴഎܠʣΛඳ͖ࠐΉ
    ˠΫΦϦςΟΛ্͛Δ
    ʜ⁞
    ʜ 
    ͭ·Γɺ৭ʹ͸ʮ഑৭ͰίϯηϓτΛܾΊΔʯʮృΓͰΫΦϦςΟΛ্͛Δʯͱ͍͏̎ͭͷ໾໨͕͋Δɻ
    ৭ͷ໾໨ͱ੍࡞ϑϩʔ

    View Slide

  67. ⁞഑৭ͰίϯηϓτΛܾΊΔɿ఻͑Δҹ৅͕୯৭ or ෳ਺৭
    l৭࠼ݕఆެࣜςΩετڃฤ ೥վగ൛
    ʗ6$ڃ ೥վగ൛
    ৭࠼ݕఆڠձc৭࠼ݕఆڠձlଞΑΓ
    Πϥετશମʹ࢖ΘΕΔ৭͸ྨࣅͯ͠Δʁ෼ࢄͯ͠Δʁ
    શମͷ৭͸ྨࣅ͔෼ࢄ͔
    ྨࣅ
    ྨࣅ৭ͷதͰ
    ࠷΋໘ੵͷଟ͍৭ͷ
    ҹ৅·ͨ͸࿈૝Πϝʔδ
    ֆࢣ͕఻͍͑ͨײ৘
    ෼ࢄ
    ෼ࢄͨ͠഑৭ͷ
    ૊Έ߹ΘͤʹΑΔ
    ҹ৅·ͨ͸࿈૝Πϝʔδ
    ֆࢣ͕఻͍͑ͨײ৘
    Ұͭ໨ɺ഑৭ͰͲΜͳίϯηϓτΛܾΊΔ͔ɻ఻͍͑ͨΠϝʔδʹ߹Θͤͯɺશମͷ৭Λྨࣅʗ෼ࢄͤ͞Δɻ

    View Slide

  68. ඃࣸମͱഎܠ͸ରൺ͔ಉԽ͔
    ରൺ ಉԽ
    ඃࣸମͱഎܠͷ৭ͷ෼෍͕େ͖͘ҟͳΔʁࣅ͍ͯΔʁ
    ˠɹඃࣸମ͕࣋ͭײ৘ʹ஫໨͍ͤͨ͞ ˠɹΠϥετશମ͕࣋ͭײ৘ʹ஫໨͍ͤͨ͞
    ⁞഑৭ͰίϯηϓτΛܾΊΔɿओ໾͕ඃࣸମ or શମ
    l৭࠼ݕఆެࣜςΩετڃฤ ೥վగ൛
    ʗ6$ڃ ೥վగ൛
    ৭࠼ݕఆڠձc৭࠼ݕఆڠձlଞΑΓ
    ͦͯ͠ඃࣸମʹ஫໨͍͔ͤͨ͞ɺഎܠʹೃછ·͍͔ͤͨɺͱ͍͏ૂ͍ʹ߹Θͤͯ৭ΛରൺʗಉԽͤ͞Δɻ

    View Slide

  69. Ͱ͸࣮ࡍʹΠϥετͷ৭Λ1ZUIPOͰநग़ʗՄࢹԽͯ͠ɺ͜ΕΒͷํ਑Λ୳ͬͯΈΑ͏
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWF92H++YYC.N4SD&U[LZ"6X/@+9Y0U
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʴ

    View Slide

  70. ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʢશମ૾ΛϚϯηϧද৭ܥͰ೺Ѳʣ
    # import library
    from matplotlib.colors import ListedColormap
    import matplotlib.pyplot as plt
    # prepare dataset
    C = [[1032 1033 1034 ... 1072 1073 1074]
    [ 989 990 991 ... 1029 1030 1031]
    ...
    [ 43 44 45 ... 83 84 85]
    [ 0 1 2 ... 40 41 42]]
    masked_cc = ['#ba2237' ... ‘#ffffff', ‘#411434', '#ffffff']
    cmap = ListedColormap(masked_cc)
    # draw pcolormesh
    ax = plt.pcolormesh(C, cmap=cmap)
    plt.colorbar(ax)
    ը૾ʹແ͍৭͸
    ͰϚεΫ͢Δ
    #ffffff
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    Ϛϯηϧද৭ܥͷσʔλΛ༻ҙͰ͖Ε͹ɺNBUQMPUMJCͷϝογϡඳըͰ഑৭ͷશମ૾͕ϚοϐϯάͰ͖Δɻ

    View Slide

  71. ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʢ৭૬෼෍Λ৭૬؀ώετάϥϜͰ೺Ѳʣ
    # import library
    import cv2
    import matplotlib.pyplot as plt
    # prepare dataset (omitted)
    Polar_df = pd.DataFrame({'Hue': ..., 'Count': …})
    # plot polar axis
    ax = plt.subplot(polar=True)
    # draw bars
    bars = ax.bar(
    x=[element * width for element in Polar_df.index],
    height=Polar_df.Count,
    width=2*np.pi / len(Polar_df.index),
    bottom=Polar_df[‘Count'].max()/3)
    ෼ࢄʁ
    ྨࣅʁ
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    .BUQMPUMJCͷۃ࠲ඪάϥϑͰɺ৭૬؀Λ໛ͨ͠ώετάϥϜ΋දݱՄೳɻNBUQMPUMJC͸͍͍ͧɻ

    View Slide

  72. ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʢ৭૬෼෍Λ৭૬؀ώετάϥϜͰ೺Ѳʣ
    # import library
    import cv2
    import matplotlib.pyplot as plt
    # prepare dataset (omitted)
    Polar_df = pd.DataFrame({'Hue': ..., 'Count': …})
    # plot polar axis
    ax = plt.subplot(polar=True)
    # draw bars
    bars = ax.bar(
    x=[element * width for element in Polar_df.index],
    height=Polar_df.Count,
    width=2*np.pi / len(Polar_df.index),
    bottom=Polar_df[‘Count'].max()/3)
    ෼ࢄʁ
    ྨࣅʁ
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    .BUQMPUMJCͷۃ࠲ඪάϥϑͰɺ৭૬؀Λ໛ͨ͠ώετάϥϜ΋දݱՄೳɻNBUQMPUMJC͸͍͍ͧɻ
    શମͷ৭ΛϚοϐϯάͯ͠ɺ഑৭ͷํ਑Λ໌Β͔ʹ͢Δʢ෼ࢄͷྫʣ

    ੺ ԫ
    ෼ੳྫɿ੺ͱԫʹ෼ࢄ͍ͯͯ͠Ҿཱ͖ͯ߹͍ɺܹࢗతͳҹ৅ɻ
    ෼ࢄʁ
    ྨࣅʁ

    View Slide

  73. ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʢ৭૬෼෍Λ৭૬؀ώετάϥϜͰ೺Ѳʣ
    # import library
    import cv2
    import matplotlib.pyplot as plt
    # prepare dataset (omitted)
    Polar_df = pd.DataFrame({'Hue': ..., 'Count': …})
    # plot polar axis
    ax = plt.subplot(polar=True)
    # draw bars
    bars = ax.bar(
    x=[element * width for element in Polar_df.index],
    height=Polar_df.Count,
    width=2*np.pi / len(Polar_df.index),
    bottom=Polar_df[‘Count'].max()/3)
    ෼ࢄʁ
    ྨࣅʁ
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    .BUQMPUMJCͷۃ࠲ඪάϥϑͰɺ৭૬؀Λ໛ͨ͠ώετάϥϜ΋දݱՄೳɻNBUQMPUMJC͸͍͍ͧɻ
    શମͷ৭ΛϚοϐϯάͯ͠ɺ഑৭ͷํ਑Λ໌Β͔ʹ͢Δʢྨࣅͷྫʣ
    ෼ࢄʁ
    ྨࣅʁ
    ੨ʙ੺
    ෼ੳྫɿࢵʹྨࣅ͢Δ৭Ͱ౷Ұ͞ΕɺϛεςϦΞεͳҹ৅ɻ

    View Slide

  74. ഑৭Λ၆ᛌ͢Δɿྨࣅ͔෼ࢄ͔
    ʢ৭૬෼෍Λ৭૬؀ώετάϥϜͰ೺Ѳʣ
    # import library
    import cv2
    import matplotlib.pyplot as plt
    # prepare dataset (omitted)
    Polar_df = pd.DataFrame({'Hue': ..., 'Count': …})
    # plot polar axis
    ax = plt.subplot(polar=True)
    # draw bars
    bars = ax.bar(
    x=[element * width for element in Polar_df.index],
    height=Polar_df.Count,
    width=2*np.pi / len(Polar_df.index),
    bottom=Polar_df[‘Count'].max()/3)
    ෼ࢄʁ
    ྨࣅʁ
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    .BUQMPUMJCͷۃ࠲ඪάϥϑͰɺ৭૬؀Λ໛ͨ͠ώετάϥϜ΋දݱՄೳɻNBUQMPUMJC͸͍͍ͧɻ
    ৭૬؀ώετάϥϜͰɺΑΓࡉ͔͍ύλʔϯʢ৭࠼ௐ࿨࿦ΑΓʣ͕୳ΕΔ
    ྨࣅ ྨࣅ ෼ࢄ ෼ࢄ ෼ࢄ ෼ࢄ
    l(VJEFUP$SFBUJOH$PMPS4DIFNFT"3530$,&5lΑΓ

    View Slide

  75. ଓ͍ͯɺඃࣸମͱഎܠΛ෼͚ͯɺͦΕͧΕͷ৭ͷؔ܎ੑΛ୳ͬͯΈΑ͏ɻ
    %&.063-

    IUUQTDPMBCSFTFBSDIHPPHMFDPNESJWFC$*3'GV)TV)/R)XWE%*6H768F*N
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ඃࣸମͱഎܠͷؔ܎Λ୳Δɿରൺ͔ಉԽ͔

    View Slide

  76. # import library
    import torch
    from carvekit.api.high import HiInterface
    # create CarveKit interface
    interface = HiInterface(batch_size_seg=5, batch_size_matting=1,
    device='cuda' if torch.cuda.is_available() else 'cpu',
    seg_mask_size=320, matting_mask_size=2048)
    images_without_background = interface([img_name])
    # save object only image
    cat_wo_bg = images_without_background[0]
    cat_wo_bg.save(‘object_only.png')
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ඃࣸମͱഎܠͷؔ܎Λ୳Δɿରൺ͔ಉԽ͔ʢ$BSWF,JUͰ෼཭ʣ
    ඃࣸମͱഎܠͷ෼཭͸ɺڊਓͷݞʢ4FHNFOUBUJPOʣ͕୔ࢁɻࠓճ͸$BSWF,JUͱ͍͏'8Λར༻ͨ͠ɻ

    View Slide

  77. # import library
    import torch
    from carvekit.api.high import HiInterface
    # create CarveKit interface
    interface = HiInterface(batch_size_seg=5, batch_size_matting=1,
    device='cuda' if torch.cuda.is_available() else 'cpu',
    seg_mask_size=320, matting_mask_size=2048)
    images_without_background = interface([img_name])
    # save object only image
    cat_wo_bg = images_without_background[0]
    cat_wo_bg.save(‘object_only.png')
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ඃࣸମͱഎܠͷؔ܎Λ୳Δɿରൺ͔ಉԽ͔ʢ$BSWF,JUͰ෼཭ʣ
    ඃࣸମͱഎܠͷ෼཭͸ɺڊਓͷݞʢ4FHNFOUBUJPOʣ͕୔ࢁɻࠓճ͸$BSWF,JUͱ͍͏'8Λར༻ͨ͠ɻ
    ඃࣸମͱഎܠΛ෼͚ͯ෼ੳ͠ɺؔ܎ੑΛ໌Β͔ʹ͢ΔʢಉԽͷྫʣ
    ରൺʁ ಉԽʁ
    ෼ੳྫɿΧϥϑϧͰ೐΍͔ͳҹ৅ɻඃࣸମͷ഑৭ʹ͍ۙԫ৭Λഎܠ͕ิ͍ಉԽ͍ͯ͠Δɻ

    View Slide

  78. # import library
    import torch
    from carvekit.api.high import HiInterface
    # create CarveKit interface
    interface = HiInterface(batch_size_seg=5, batch_size_matting=1,
    device='cuda' if torch.cuda.is_available() else 'cpu',
    seg_mask_size=320, matting_mask_size=2048)
    images_without_background = interface([img_name])
    # save object only image
    cat_wo_bg = images_without_background[0]
    cat_wo_bg.save(‘object_only.png')
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ඃࣸମͱഎܠͷؔ܎Λ୳Δɿରൺ͔ಉԽ͔ʢ$BSWF,JUͰ෼཭ʣ
    ඃࣸମͱഎܠͷ෼཭͸ɺڊਓͷݞʢ4FHNFOUBUJPOʣ͕୔ࢁɻࠓճ͸$BSWF,JUͱ͍͏'8Λར༻ͨ͠ɻ
    ඃࣸମͱഎܠΛ෼͚ͯ෼ੳ͠ɺؔ܎ੑΛ໌Β͔ʹ͢Δʢରൺͷྫʣ
    ରൺʁ ಉԽʁ
    ෼ੳྫɿ੺ͱ྘ͷରൺɻάϨʔτʔϯͷ྘ͷ্Ͱ઱΍͔ͳ੺͕ࡍཱ͍ͬͯΔɻ

    View Slide

  79. # import library
    import torch
    from carvekit.api.high import HiInterface
    # create CarveKit interface
    interface = HiInterface(batch_size_seg=5, batch_size_matting=1,
    device='cuda' if torch.cuda.is_available() else 'cpu',
    seg_mask_size=320, matting_mask_size=2048)
    images_without_background = interface([img_name])
    # save object only image
    cat_wo_bg = images_without_background[0]
    cat_wo_bg.save(‘object_only.png')
    PythonͰΠϥετ͔Β৭ͷํ਑Λ୳Δ
    ඃࣸମͱഎܠͷؔ܎Λ୳Δɿରൺ͔ಉԽ͔ʢ$BSWF,JUͰ෼཭ʣ
    ඃࣸମͱഎܠͷ෼཭͸ɺڊਓͷݞʢ4FHNFOUBUJPOʣ͕୔ࢁɻࠓճ͸$BSWF,JUͱ͍͏'8Λར༻ͨ͠ɻ
    ಉ༷ͷΞϓϩʔνͰɺΑΓৄࡉͳఆੑ෼ੳʹ௅Ήࣄྫ΋͋Γ·͢
    lਓؾֆࢣͷ࡞඼͔ΒֶͿ഑৭ͷώϛπҴ༿ོcݰޫࣾʢʣlΑΓ
    オススメ!

    View Slide

  80. l/PWJDF4USBUFHJFTGPS6OEFSTUBOEJOH1BJOUJOHT+"4DINJEUΒc"QQMJFE$PHOJUJWF1TZDIPMPHZʢʣlΑΓ
     ృΓͰΫΦϦςΟΛ্͛Δ
    ࣮ࣸੑΛߴΊΔృΓ͸ɺֆࢣͷͩ͜ΘΓϙΠϯτ
    ৭Λඳ͖ࠐΉ͜ͱͰɺ࣭ײ΍Ԟߦ͖͕දݱͰ͖ɺ࣮ࣸੑ͕૿͢ɻ
    ༠໨ੑΛߴΊɺ຅ೖײ͕༩͑ΔͨΊɺඃࣸମͷڧௐʹΑ͘࢖ΘΕΔɻ
    ഑৭ʹଓ͘ɺ΋͏Ұͭͷ৭ͷ໾ׂ͕ʮృΓʯɻֆࢣ͸ͩ͜ΘΓ͍ͨ෦෼͸ಛʹ೤৺ʹඳ͖ࠐΉɻ

    View Slide

  81. ͪͳΈʹృΓͰඳ͖ࠐΈྔ͕ଟ͍ྖҬ͸ɺ1ZUIPOͰ؆୯ʹਪఆͰ͖Δɻ
    %&.063-

    [email protected]:+)H2G#CS6UYC#ESY[[email protected])
    PythonͰΠϥετ͔ΒృΓͷͩ͜ΘΓΛ୳Δ
    ඳ͖ࠐΈ͕ଟ͍ྖҬΛਪఆ͢Δ

    View Slide

  82. ྫ͑͹ಡΈࠐΜͩΠϥετΛ/෼ׂͯ͠ɺ֤ྖҬͷΤϯτϩϐʔΛܭࢉɻృΓͰ૿͑ͨ৘ใྔ͕ਪఆͰ͖Δɻ
    # import library (omitted)
    # load image (omitted)
    # divide gray scale image
    x0, y0, n, h, w = ...
    divided = [gray_image[x0*x:x0*(x+1), y0*y:y0*(y+1)]
    for x in range(n) for y in range(n)]
    # calculate entropy for each division
    entropies = []
    for img in divided:
    img = np.array(img)
    e = calcEntropy_method(img)
    entropies.append(e)
    # visualize (omitted)
    ͋ʂ؈ͷඳ͖ࠐΈ͕ଟ͍ʂ
    ͳͲɺͩ͜ΘΓʹؾ෇͚Δ
    ඳ͖ࠐΈ͕ଟ͍ྖҬΛਪఆ͢ΔʢΤϯτϩϐʔͰܭࢉʣ
    PythonͰΠϥετ͔ΒృΓͷͩ͜ΘΓΛ୳Δ

    View Slide

  83. ޙ൒·ͱΊɻ৭ͷ໾໨Λ഑৭ͱృΓʹ෼͚ɺಛʹ഑৭ʹΑΔίϯηϓτͷಡΈํΛ࣮ફΛ௨ͯ͠ղઆͨ͠ɻ
    ޫͱ৭ͷ৺ཧઓུɿ·ͱΊ
    ৭ ഑৭Ͱίϯηϓτ
    શମͷ৭
    ྨࣅ
    ෼ࢄ
    ରൺ
    ಉԽ
    ඃࣸମͱഎܠ
    ޫ ʜ
    ʜ ඳ͖ࠐΈྔʹͩ͜ΘΓ͕දΕΔ
    ʜ ৭୯ମͷΠϝʔδΛ׆༻
    ʜ
    ʜ
    ʜ
    ৭ͷ૊Έ߹ΘͤΠϝʔδΛ׆༻
    ඃࣸମΛ஫໨ͤ͞Δ
    Πϥετશମʹ໨Λ޲͚ͤ͞Δ
    ৭͸ޫʹґଘ͢Δʢͨͩ͠ɺޫΛΠϥετ͔Β෼཭͢Δͷ͸ࠔ೉ʣ
    ృΓͰΫΦϦςΟ

    View Slide

  84. ͜ͷதͰֆࢣ͕஫ྗ͢΂͖͸ɺ΍͸Γ఻͑ΔΠϝʔδΛܾΊΔίϯηϓτઃܭͳͷͰ͸ͳ͍͔ͱ૝૾͢Δɻ
    ޫͱ৭ͷ৺ཧઓུɿΫϦΤΠλʔ͕஫ྗ͢΂͖͸…ʁ
    ৭ ഑৭Ͱίϯηϓτ
    શମͷ৭
    ྨࣅ
    ෼ࢄ
    ରൺ
    ಉԽ
    ඃࣸମͱഎܠ
    ޫ ʜ
    ʜ ඳ͖ࠐΈྔʹͩ͜ΘΓ͕දΕΔ
    ʜ ৭୯ମͷΠϝʔδΛ׆༻
    ʜ
    ʜ
    ʜ
    ৭ͷ૊Έ߹ΘͤΠϝʔδΛ׆༻
    ඃࣸମΛ஫໨ͤ͞Δ
    Πϥετશମʹ໨Λ޲͚ͤ͞Δ
    ৭͸ޫʹґଘ͢Δʢͨͩ͠ɺޫΛΠϥετ͔Β෼཭͢Δͷ͸ࠔ೉ʣ
    ృΓͰΫΦϦςΟ
    ˠࠓޙ͜͜͸"*ֆࢣʹ೚ͤΒΕΔ͔΋ʁ

    View Slide

  85. ·ͱΊ

    View Slide

  86. ࠷ޙʹɺϓϨθϯͷ·ͱΊɻࠓճ͸৺ཧઓུͷߏ଄Խʹ௅Έɺֆࢣ͕஫ྗ͢΂͖ϙΠϯτΛ໛ࡧͨ͠ɻ
    ·ͱΊ
    ΩϟϥΫλʔͱޫʗ৭ͷ৺ཧઓུΛߏ଄Խ͠ɺ

    ͦͷ͍͔ͭ͘Λ1ZUIPOͰ࠶ݱͨ͠
    ΩϟϥΫλʔͷັྗΛҾ͖ग़͢ఆੴͱ

    ɹ഑৭ʹΑΔίϯηϓτઃܭΛॏ఺తʹղઆͨ͠

    View Slide

  87. ͪͳΈʹɺॴʑͰొ৔ͨ͠ΠϥετͷҰ෦͸4UBCMF%J
    ff
    VTJPOϕʔεͷ"*ֆࢣ͕ඳ͍ͨ΋ͷͰͨ͠ɻ
    ऴΘΓʹɿ͜ͷࢿྉ͸AIֆࢣͷྗΛआΓͯ࡞Γ·ͨ͠
    ϓϨθϯࢿྉˍσϞૉࡐͱͯ͠ɺ
    ֆฑֶश"*ͷੜ੒ΠϥετΛ׆༻͠·ͨ͠
    4QFDJBMUIBOLTUP
    ͍͔͢Έ͞Μʂ
    ʢ[email protected]ʣ

    View Slide

  88. Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF ෺ཧ

    Thank you!
    ͨ͘͞Μͷٕ๏ॻͷ
    ΤοηϯεΛ٧ΊࠐΈ·ͨ͠

    View Slide

  89. • ○×ͰΘ͔Δ෩ܠ࡞ը ਆٕ࡞ըγϦʔζ - ͚͞ϋϥε | KADOKAWAʢ2020ʣ
    • ΩϟϥΫλʔΠϥετͷҾ͖ग़͠Λ૿΍͢ϙʔζͱද৘ͷԋग़ςΫχοΫ - ΧϦϚϦΧ | ᠳӭࣾʢ2022ʣ
    • ιοΧͷඒज़ղ๤ֶϊʔτ - ιΫδϣϯώϣϯ | ΦʔϜࣾʢ2018ʣ
    • ΩϜɾϥοΩͷਓମυϩʔΠϯά - ΩϜɾϥοΩ | ΦʔϜࣾʢ2020ʣ
    • ඳ͖͍ͨ΋ͷΛཧ࿦Ͱ͔ͭΉ ϙʔζͷఆཧ - ࣰ๪࿡࿠ | KADOKAWAʢ2022ʣ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Die angeborenen Formen möglicher Erfahrung - Lorenz, K. | Zeitschrift Für Tierpsychologieʢ1943ʣ
    • ਐԽ৺ཧֶ͔Βߟ͑ΔϗϞαϐΤϯε Ұສ೥มԽ͠ͳ͍Ձ஋؍ - ΞϥϯɾSɾϛϥʔ | ύϯϩʔϦϯάʢ2019ʣ

    View Slide

  90. • ৭ృΓνϡʔτϦΞϧ σδλϧ࠼৭ͷجຊ - ύΫɾϦϊ | Ϛʔϧࣾʢ2020ʣ
    • ޫͱ৭ͷνϡʔτϦΞϧ - ӄӨͱ৭࠼ΛࣗࡏʹૢΔʂ - ύΫɾϦϊ | Ϛʔϧࣾʢ2021ʣ
    • ৭࠼ݕఆ ެࣜςΩετ 1ڃฤ (2020೥վగ൛) - ৭࠼ݕఆڠձ | ৭࠼ݕఆڠձ
    • ৭࠼ݕఆ ެࣜςΩετ 3ڃฤ (2020೥վగ൛) - ৭࠼ݕఆڠձ | ৭࠼ݕఆڠձ
    • ৭࠼ݕఆ ެࣜςΩετ UCڃ (2022೥վగ൛) - ৭࠼ݕఆڠձ | ৭࠼ݕఆڠձ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Χϥʔ&ϥΠτ ϦΞϦζϜͷͨΊͷ৭࠼ͱޫͷඳ͖ํ - δΣʔϜεɾΨʔχʔ | Ϙʔϯσδλϧʢ2012ʣ
    • ৭࠼ݕఆ ެࣜςΩετ 2ڃฤ (2020೥վగ൛) - ৭࠼ݕఆڠձ | ৭࠼ݕఆڠձ

    View Slide

  91. • ਓؾֆࢣͷ࡞඼͔ΒֶͿ഑৭ͷώϛπ - Ҵ༿ོ | ݰޫࣾʢ2022ʣ
    • ΠϥετɺອըͷͨΊͷ഑৭ڭࣨ - দԬ৳࣏ | MdNʢ2018ʣ
    • ഑৭ͷڭՊॻ - ৭࠼จԽݚڀձ | PIE Internationalʢ2018ʣ
    • The Art of GUWEIZ ά΢ΣΠζըू - GUWEIZ | ϗϏʔδϟύϯʢ2021ʣ
    • mignon͕͔ͬ͠Γڭ͑ΔʮഽృΓʯͷൿ݃ - mignon | SBΫϦΤΠςΟϒʢ2020ʣ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • ཧܥ೴Ͱඳ͘๖͑ֆ - ݾଈੋۭʢ2017ʣ

    View Slide

  92. • Vision ετʔϦʔΛ఻͑Δɿ৭ɺޫɺߏਤ - ϋϯεɾPɾόοϋʔ | Ϙʔϯσδλϧʢ2019ʣ
    • ֆΛݟΔٕज़ ໊ըͷߏ଄ΛಡΈղ͘ - ळాຑૣࢠ | ே೔ग़൛ࣾʢ2019ʣ
    • ޫͱ৭࠼ ղମ৽ॻ - μςφΦτ | ϚΠφϏग़൛ʢ2018ʣ
    • ըͮ͘ΓͷͨΊͷޫͷतۀ - দԬ৳࣏ | ϏʔɾΤψɾΤψ৽ࣾ ʢ2019ʣ
    • ײ֮৘ใͷ஌֮ϝΧχζϜ - ਗ਼ਫ๛ | ણҡ੡඼ফඅՊֶʢ1987ʣ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Novice Strategies for Understanding Paintings - JA SchmidtΒ | Applied Cognitive Psychology 3.1ʢ1989ʣ
    • ֆըؑ৆ʹ͓͚Δೝ஌త੍໿ͱͦͷ؇࿨ - ాத٢࢙, দຊ࠼ق | ೝ஌Պֶʢ2013ʣ

    View Slide

  93. • MeTRAbs Absolute 3D Human Pose Estimator | Github
    • ࠲ඪܥΛ͋ΘͤΔ ઈର࠲ඪͱϩʔΧϧ࠲ඪ - ϓϩάϥϛϯά੔ܗ֎Պҩͷϖʔδ
    • PythonʹΑΔ࠲ඪม׵ͷϓϩάϥϜ - ϓϩάϥϛϯά੔ܗ֎Պҩͷϖʔδ
    • ̏࣍ݩ্ۭؒͷͶ͡Εͨ̎௚ઢͷ࠷઀ۙ఺ΛٻΊΔ - Vignette & Clarity
    • Hue&ToneγεςϜ | Χϥʔઓུͷઐ໳Ո | NCD-WEB
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Color Scheme Analysis of Illustrations - Niti Wattanasirichaigoon
    • Guide to Creating Color Schemes - ART ROCKET

    View Slide

  94. • Deep White-Balance Editing | Github
    • Auto White-Balance Correction for Mixed-Illuminant Scenes | Github
    • NudeNet | Github **NSFW**
    • CarveKit | Github
    • ʮΩϟϥֆඳ͖ΞϧΰϦζϜʯγϦʔζ - osakana.factory | ٕज़ॻయ
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • Munsell Resources - Paul Centore
    • Image Color Extraction with Python in 4 Steps - Boriharn K | Medium

    View Slide

  95. • σΟʔϓϒϦβʔυ - σΟʔϓϒϦβʔυ | YouTube
    • Yaki Mayuru drawing channel - ম·͍Δ | YouTube
    • ֆ༿·͠ΖͷͪΌΜͶΔ - ֆ༿·͠Ζ | Youtube
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • ͋ͳͨΛԠԉͨ͘͠ͳΔ5ͭͷཁҼͱ͸ʁ ਐԽ৺ཧֶͰߟ࡯ - Ṗ෦͑Ή | Noteʢ2018ʣ

    https://note.com/nasobem/n/n628306e0e6e5
    • ϓϩ໺ٿϑΝϯʹؔ͢Δݚڀ(V) : ϑΝϯ৺ཧɺԠԉߦಈɺ͓Αͼूஂॴଐҙࣝͷߏ଄

    - ޿୔ढ़फΒ | ؔ੢ࠃࡍେֶ஍Ҭݚڀॴ૓ॻʢ2006ʣ
    • ʮ͔Θ͍͍ʯͷ৺ཧֶ - ೝ஌৺ཧੜཧֶݚڀࣨʢ2022/10/12࣌఺ʣ

    View Slide

  96. • ༷ʑͳݒ೦΍໰୊Λ๊͑ͭͭ΋ʮ͓ֆ͔͖AIʯͷਐԽ͸ࢭ·Βͣʢ2022/10/4ʣ| Yahoo!χϡʔε

    https://news.yahoo.co.jp/articles/1cb8c63ee8fb7a3bbbb8412aeefcc2bf2217d033
    • ΠϥετϨʔλʔͷݸੑΛֶΜͰֆΛ“ແݶੜ੒”͢ΔAIαʔϏεʢ2022/8/29ʣ | ITmedia

    https://www.itmedia.co.jp/news/articles/2208/29/news133.html
    • AI͕ֆΛඳ͘ʁ ਐԽ͢Δը૾ੜ੒AIͷ࠷લઢʢ2022/10/8ʣ | NHK

    https://www3.nhk.or.jp/news/html/20221008/k10013851401000.html
    Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    SFGFSFODF

    Thank you!
    • ʮͱΜͰ΋ͳ͘ϋΠΫΦϦςΟʔʯ࿩୊ͷը૾AIʮNovel AIʯͰͻͨ͢Βೋ࣍ݩඒগঁͱඒগ೥Λੜ੒ͯ͠Έͨ | ITmedia

    https://www.itmedia.co.jp/news/articles/2208/29/news133.html
    • ʮӺ೫Έ͔ͪʯεέεέεΧʔτ͕େ෺ٞɹ౦ژϝτϩɺ൷൑ड͚ඍົʹʮमਖ਼ʯʢ2016/10/18ʣ | JCASTχϡʔε

    https://www.j-cast.com/2016/10/18280985.html

    View Slide