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

Rustで作る機械学習を用いた画像クロッピングシステム

johshisha
December 19, 2019
2.3k

 Rustで作る機械学習を用いた画像クロッピングシステム

[email protected] #9. Deep Learning フレームワークと推論
https://ml-loft.connpass.com/event/157785/

johshisha

December 19, 2019
Tweet

Transcript

  1. 3VTUͰ࡞Δ
    ػցֶशΛ༻͍ͨ
    ը૾ΫϩοϐϯάγεςϜ
    1
    .-!-PGU
    %FFQ-FBSOJOHϑϨʔϜϫʔΫͱਪ࿦
    ࡾᑍஐ࢙

    View Slide

  2. ࡾᑍஐ࢙
    @johshisha
    wΫοΫύουגࣜձࣾ
    w೥৽ଔೖࣾ
    wݚڀ։ൃ෦
    w΍ͬͯΔ͜ͱ
    wϨγϐͷը૾ݕࡧ
    w޿ࠂ഑৴࠷దԽ
    wը૾ͷݟӫ͑ਪఆ
    2

    View Slide

  3. 3
    ͱࢥ͍·͔͢ʁ
    ඒຯͦ͠͏
    ࡞Γ͍ͨ
    Ͳ͕ͬͪ
    ྆ํࡾᑍ͕ࡱӨ
    ᶃ ᶄ

    View Slide

  4. 4
    ͱࢥ͍·͔͢ʁ
    ඒຯͦ͠͏
    ࡞Γ͍ͨ
    Ͳ͕ͬͪ
    ྆ํࡾᑍ͕ࡱӨ
    ᶃ ᶄ
    Ϋϩοϐϯά͸
    ඒຯͦ͠͏ɾ࡞Γ͍ͨʹ
    ༩͑ΔӨڹ͕େ͖͍

    View Slide

  5. ࠓ೔ͷ࿩
    5
    ը૾ͷΫϩοϐϯάΛ
    ػցֶशΛ࢖͍͍ͬͯײ͡ʹ͢Δ
    γεςϜΛ࡞ͬͨ࿩

    View Slide

  6. ࠓ೔ͷ࿩
    6
    ը૾ͷΫϩοϐϯάΛ
    ػցֶशΛ࢖͍͍ͬͯײ͡ʹ͢Δ
    γεςϜΛ࡞ͬͨ࿩
    ͍͍ײ͡ʹ͢Δͷ͸ΊͪΌͪ͘Όେม

    View Slide

  7. 7
    εϧʔϓοτ
    SQT
    ڐ༰ϨΠςϯγʔ
    NTSFR
    ը૾Λ഑৴͢Δͷ͸͍ͨ΁Μ
    αΠτ಺ʹͨ͘͞Μͷը૾͕͋Δ
    ͨ͘͞ΜͷϢʔβ͕ར༻͍ͯ͠Δ
    ௿ϨΠςϯγʔɾߴεϧʔϓοτ଱ੑ͕ඞਢ
    ػցֶशΛ༻͍ͨγεςϜͰ
    ௿ϨΠςϯγʔɾߴεϧʔϓοτΛ࣮ݱ͢ΔͨΊͷ
    γεςϜઃܭઓུʹ͍ͭͯ࿩͠·͢

    View Slide

  8. എܠ·ͱΊ
    • ը૾഑৴γεςϜ͸͢Ͱʹ͋Δ͕վળ఺͋Γ
    • Ϩγϐը૾ͷ಺༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ
    • ը૾͸αʔϏεར༻ऀ΁༩͑Δҹ৅͕େ͖͍ͨΊԿͱ͔͍ͨ͠
    • ػցֶशΛ࢖ͬͯ࠷దͳը૾ΫϩοϐϯάΛ࣮ݱ͍ͨ͠
    • ྉཧͷ৔ॴΛݕग़ͯ͠ΫϩοϐϯάΛߦ͑͹ɼΑΓΑ͍ը૾ΛఏڙͰ͖Δ
    • ՝୊: ը૾഑৴γεςϜ͸௿ϨΠςϯγʔɾߴεϧʔϓοτ଱ੑ͕ඞਢ
    • ࠷େ 600 req / secɼ஗ͯ͘΋(95ύʔηϯλΠϧͰ) 200 ms / req ͘Β͍
    8
    ˞QSPEVDUJPOʹಋೖؒʹ߹͍·ͤΜͰͨ͠
    ಋೖͯ͠ύϑΥʔϚϯεͷ࿩΋͔ͨͬͨ͠ͷͰ͕ؒ͢ʹ߹͍·ͤΜͰͨ͠
    γεςϜઃܭઓུΛॏ఺తʹ࿩͠·͢

    View Slide

  9. γεςϜઃܭ͢Δલʹௐ΂ͨ਺ࣈ
    9
    ը૾ೖྗˠΫϩοϐϯάྖҬग़ྗɿNT QZUIPO खݩͷ.#1Ͱ

    4͔Βը૾Λऔͬͯ͘ΔɿNTʢ&$্Ͱʣ
    ΫϩοϐϯάྖҬͷਪ࿦ɿNT

    ݁ߏॏ͍ͷͰී௨ʹॲཧͯͨ͠Βؒʹ߹Θͳ͍

    View Slide

  10. 10
    όονͰܭࢉ͓͚ͯ͠͹͍͍ͷͰ͸ʁ

    View Slide

  11. ৽ػೳͷϓϩτλΠϐϯά
    11
    ͪΐͬͱࢼ͍ͨ͠ͱ͖ʹରԠͰ͖ͳ͍
    ৽6*ࢼͨ͢ͼʹόον૸ΒͤΔɽɽʁ

    View Slide

  12. 12
    ࢼߦࡨޡʹ͸ରԠͰ͖ͳ͍͚Ͳ
    ຊ൪Ͱ࢖͏αΠζ͸ࣄલʹ஌ΕΔͷͰ͸ʁ

    View Slide

  13. ࣄલܭࢉ͢ΔαΠζͷ؅ཧ
    13
    YͷϨγϐը૾Λ
    ࢖͍͍ͨͰ͢
    Yͷͭ͘ΕΆը૾Λ
    ࢖͍͍ͨͰ͢
    Yͷࣄલܭࢉͬͯ
    ΋͏ऴΘͬͯΔʁ
    Yͷࣄલܭࢉґཔ
    ๨Εͯͨʂʂʂ
    ๨Εͳ͍Α͏ʹ
    αʔϏεͷ࢖͍ͬͯΔαΠζΈͯ
    ࣗಈͰґཔ౤͛Δ࢓૊Έ࡞Γ·ͨ͠
    Ϧιʔε͝ͱʹҟͳΔαΠζ
    ܭࢉऴ͍ྃͯ͠Δ͔ͷ֬ೝ
    ෳࡶʹͳΔपลαʔϏε

    View Slide

  14. ࣄલܭࢉ͢ΔαΠζͷ؅ཧ
    14
    YͷϨγϐը૾Λ
    ࢖͍͍ͨͰ͢
    Yͷͭ͘ΕΆը૾Λ
    ࢖͍͍ͨͰ͢
    Yͷࣄલܭࢉͬͯ
    ΋͏ऴΘͬͯΔʁ
    Yͷࣄલܭࢉґཔ
    ๨Εͯͨʂʂʂ
    ๨Εͳ͍Α͏ʹ
    αʔϏεͷ࢖͍ͬͯΔαΠζΈͯ
    ࣗಈͰґཔ౤͛Δ࢓૊Έ࡞Γ·ͨ͠
    Ϧιʔε͝ͱʹҟͳΔαΠζ
    ܭࢉऴ͍ྃͯ͠Δ͔ͷ֬ೝ
    ෳࡶʹͳΔपลαʔϏε
    αΠζͷ؅ཧ͸ߟ͑Δ͜ͱ͕ଟ͍
    ΍Γͨ͘ͳ͍

    View Slide

  15. • ը૾഑৴γεςϜ͸͢Ͱʹ͋Δ͕վળ఺͋Γ
    • Ϩγϐը૾ͷ಺༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ
    • ը૾͸αʔϏεར༻ऀ΁༩͑Δҹ৅͕େ͖͍ͨΊԿͱ͔͍ͨ͠
    • ػցֶशΛ࢖ͬͯ࠷దͳը૾ΫϩοϐϯάΛ࣮ݱ͍ͨ͠
    • ྉཧͷ৔ॴΛݕग़ͯ͠ΫϩοϐϯάΛߦ͑͹ɼΑΓΑ͍ը૾ΛఏڙͰ͖Δ
    • ՝୊: ը૾഑৴γεςϜ͸௿ϨΠςϯγʔɾߴεϧʔϓοτ଱ੑ͕ඞਢ
    • ࠷େ 600 req / secɼ஗ͯ͘΋(95ύʔηϯλΠϧͰ) 200 ms / req ͘Β͍
    • ཧ૝: αΠζͷ؅ཧΛͨ͘͠ͳ͍
    15
    എܠ·ͱΊʢ࠶ʣ
    Ͳ͏࣮ݱ͢Δ͔

    View Slide

  16. ௿ϨΠςϯγʔɾߴεϧʔϓοτͳ
    ΞϓϦέʔγϣϯΛߏங͢Δ
    16
    1ZUIPOΛબ୒͢Δ͔ʁ
    ػցֶशͷ͜ͱ͸Ұ୴ஔ͍͓͍ͯͯ

    View Slide

  17. ௿ϨΠςϯγʔɾߴεϧʔϓοτΛ
    1ZUIPOͰ࣮ݱ͢Δͷ͸೉͍͠
    w ஗͍ʢ͜ͱ͕ଟ͍ʣ
    w ύϑΥʔϚϯεͷνϡʔχϯά͕େม
    w ϝϞϦίϐʔ͕Ͳ͜Ͱى͍ͬͯ͜Δͷ͔೺Ѳͮ͠Β͍
    w ϚϧνεϨουॲཧ͕஗͍
    w (*- άϩʔόϧΠϯλϓϦλϩοΫ

    w ؆୯ʹݴ͏ͱɼҰͭͷεϨουͰ͔͠$16ॲཧ͕࣮ߦ͞Εͳ͍
    17

    View Slide

  18. 3VTU
    18
    ҆શ
    ଎͍
    ฒߦੑ
    Τί
    γεςϜ
    -JGFUJNF 0XOFSTIJQʹΑͬͯϝϞϦΛ؅ཧ
    $$ʹඖఢ͢Δ଎͞
    ϚϧνεϨουΛߟྀͨ͠ݴޠઃܭ
    ศརͳΫϨʔτ ϥΠϒϥϦ
    ͕ଟ਺ఏڙ͞Ε͍ͯΔ
    QZUIPO΄ͲͰ͸ͳ͍͕

    View Slide

  19. ػցֶशΛ༻͍ͨ

    ௿ϨΠςϯγʔɾߴεϧʔϓοτͳ
    ΞϓϦέʔγϣϯΛߏங͢Δ
    19
    3VTUΛબ୒͢Δ͔ʁ

    View Slide

  20. 3VTU
    20
    ҆શ
    ଎͍
    ฒߦੑ
    Τί
    γεςϜ
    -JGFUJNF 0XOFSTIJQʹΑͬͯϝϞϦΛ؅ཧ
    $$ʹඖఢ͢Δ଎͞
    ϚϧνεϨουΛߟྀͨ͠ݴޠઃܭ
    ศརͳΫϨʔτ ϥΠϒϥϦ
    ͕ଟ਺ఏڙ͞Ε͍ͯΔ
    QZUIPO΄ͲͰ͸ͳ͍͕
    Τί
    γεςϜ
    ศརͳΫϨʔτ ϥΠϒϥϦ
    ͕ଟ਺ఏڙ͞Ε͍ͯΔ

    View Slide

  21. 21

    View Slide

  22. 3VTUͰਪ࿦
    w χϡʔϥϧωοτϫʔΫ෦෼ͷҠߦ͸؆୯
    w [email protected]Λ࢖͏ͱωοτϫʔΫͷఆٛ͸Ұߦ
    w લॲཧɾޙॲཧ͸ॻ͖௚͢ඞཁ͕͋Δ
    w ը૾ܥͷλεΫͩͱ͜ͷ෦෼͸؆୯ʢͳ͜ͱ͕ଟ͍ʣ
    w ॲཧ଎౓
    w ׂݮʢQZUIPONT SVTUNT˞લॲཧɾޙॲཧؚΉʣ
    22

    View Slide

  23. Ϟσϧͷ֓ཁ
    23
    .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf
    ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ

    ΢Οϯυ΢ΛҠಈͤ͞ͳ͕Β
    είΞ͕Ұ൪ߴ͘ͳΔ෦෼Λ୳͠ग़͢

    View Slide

  24. Ϟσϧͷ֓ཁ
    24
    .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf
    ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ

    ΢Οϯυ΢ΛҠಈͤ͞ͳ͕Β
    είΞ͕Ұ൪ߴ͘ͳΔ෦෼Λ୳͠ग़͢

    1ZUIPOϥΠϒϥϦ
    1*- OVNQZ LFSBT OVNQZ

    View Slide

  25. Ϟσϧͷ֓ཁ
    25
    .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf
    ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ

    ΢Οϯυ΢ΛҠಈͤ͞ͳ͕Β
    είΞ͕Ұ൪ߴ͘ͳΔ෦෼Λ୳͠ग़͢

    3VTUΫϨʔτ
    JNBHF OEBSSBZ UFOTPSqPX OEBSSBZ

    View Slide

  26. 26
    ਪ࿦ʹݶఆͨ͠৔߹
    3VTUͰ΋ػցֶशΛ༻͍ͨγεςϜΛ
    ؆୯ʹ࣮ݱͰ͖Δ

    View Slide

  27. 27
    3VTUʹ͚ͨͩ͠Ͱ
    ύϑΥʔϚϯεཁ݅ΛຬͨͤΔΘ͚Ͱ͸ͳ͍
    ͱ͸͍͑

    View Slide

  28. 28
    ॏ͍ͨॲཧ͸Ωϟογϡ͢Δ
    ఘΊΔ෦෼͸ఘΊΔ
    γεςϜઃܭํ਑
    ͳʹΛ͍·͞Β౰ͨΓલͷ͜ͱΛʁ

    View Slide

  29. 29
    ॏ͍ͨॲཧ͸Ωϟογϡ͢Δ
    ఘΊΔ෦෼͸ఘΊΔ
    γεςϜઃܭํ਑
    ػցֶश͕བྷΉγεςϜͰ΋ී௨ʹઃܭ͢Ε͹͍͍
    ͳʹΛ͍·͞Β౰ͨΓલͷ͜ͱΛʁ

    View Slide

  30. Ϋϩοϐϯά݁ՌͷΩϟογϡ
    30
    ಉ͡αΠζͷϦΫΤετ͸݁Ռ͕ಉ͡ͳͷͰ࢖͍ճ͢
    ܭࢉ͕ඞཁͳ͍ͷͰߴ଎

    View Slide

  31. 31
    .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf
    ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ

    ΢Οϯυ΢ΛҠಈͤ͞ͳ͕Β
    είΞ͕Ұ൪ߴ͘ͳΔ෦෼Λ୳͠ग़͢

    ॏ͍ͨॲཧ͸Ͱ͖Δ͚ͩΩϟογϡ͍ͨ͠
    Ϟσϧ֓ཁ
    ਪ࿦ͷΩϟογϡ

    View Slide

  32. 32
    .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf
    ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ

    ΢Οϯυ΢ΛҠಈͤ͞ͳ͕Β
    είΞ͕Ұ൪ߴ͘ͳΔ෦෼Λ୳͠ग़͢

    ਪ࿦ͷΩϟογϡ
    Ϟσϧ֓ཁ
    Ϟσϧͷڞ௨෦෼͸ΩϟογϡͰ͖Δ
    ώʔτϚοϓ͕͋Ε͹
    ΫϩοϐϯάྖҬͷܭࢉ͕Մೳ

    View Slide

  33. ఘΊΔ൑அ
    w Ͱ͖Δ͚ͩࣸਅͷݟӫ͑ΛΑ͍ͨ͘͠
    w ը૾഑৴͕஗͘ͳΒͳ͍͜ͱ͕ॏཁ
    w ը૾഑৴γεςϜ͸͢Ͱʹ͋Δ
    33
    ॲཧ͕٧·͍ͬͯΕ͹
    ఘΊͯطଘͷ࢓૊ΈͰ഑৴͢Ε͹Α͍
    ώʔτϚοϓΩϟογϡͰ͖͍ͯͳ͍৔߹
    ॲཧ͕٧·Δ
    ʢॳճಋೖ࣌ɾ৽͍͠Ϧιʔε ͭ͘ΕΆʹ΋ରԠ౳
    ͕૿͑ͨ৔߹ʣ

    View Slide

  34. ը૾഑৴ͷํ๏
    34
    طଘ഑৴αʔό
    ΫϩοϐϯάγεςϜ
    ϦΫΤετ
    ৔ॴࢦఆͳ͠
    ϦΫΤετ


    طଘ഑৴αʔό
    ΫϩοϐϯάγεςϜ
    ϦΫΤετ
    Ϋϩοϓ৔ॴࢦఆͯ͠
    ϦΫΤετ
    ͜ͷ৔ॴͰ
    Ϋϩοϓͯ͠΄͍͠
    ը૾Λฦ͢
    ௨ৗ࣌
    ఘΊΔ࣌
    ૣΊʹఘΊΔ൑அΛ͢Δ͜ͱ͕େࣄ

    View Slide

  35. ࡞ͬͨγεςϜ
    35

    View Slide

  36. 36

    View Slide

  37. 37
    աڈʹΫϩοϐϯά͍ͯͨ͠Βͦͷ݁ՌΛ࠶ར༻
    Ϋϩοϐϯά݁ՌͷΩϟογϡ

    View Slide

  38. 38
    ώʔτϚοϓ͕͋Ε͹ॊೈͳαΠζʹରԠՄೳ
    ώʔτϚοϓΛΩϟογϡͯ͠//ʹ͔͔ΔॲཧΛল͘
    ৽͍͠ϦΫΤετʹ͸ώʔτϚοϓΛܭࢉͯ͠ฦ͢
    ϦΫΤετϕʔεͰܭࢉ͢ΔͷͰ؅ཧ͠ͳ͍͍ͯ͘
    ώʔτϚοϓͷΩϟογϡ

    View Slide

  39. 39
    ܭࢉࢿݯͷޮ཰ར༻
    ֎෦Ϧιʔε͕བྷΜͩॲཧ͸͢΂ͯඇಉظॲཧ
    ϦΫΤετΛϚϧνεϨουͰॲཧ͍ͯ͠ΔͷͰ
    ޮ཰Α͘$16Λར༻Ͱ͖Δ

    View Slide

  40. 40
    ఘΊΔ൑அ
    ผεϨουͰෳ਺ಈ͔͓ͯ͘͠
    ΩϡʔͰλεΫΛ؅ཧ
    Ωϡʔ͕٧·͍ͬͯΕ͹ఘΊͯ
    طଘͷγεςϜͰ഑৴
    ఘΊͨ৔߹͸
    ΩϟογϡΛૣΊʹ&YQJSF͢Δ

    View Slide

  41. 41
    ఘΊΒΕΔ࢓૊Έ
    Ͱ͖ͳ͔ͬͨ৔߹͸
    ྖҬΛࢦఆͤͣʹطଘ഑৴αʔόʹϦΫΤετ
    ΫϩοϓྖҬΛܭࢉͰ͖ͨ৔߹͸
    ΫϩοϓྖҬΛࢦఆͯ͠طଘ഑৴αʔόʹϦΫΤετ

    View Slide

  42. 42
    ΩϟογϡʹΑΓύϑΥʔϚϯεΛҡ࣋ͭͭ͠
    ॊೈͳϦΫΤετʹରԠՄೳ
    ͔ͭϝϯςφϯεϑϦʔ

    View Slide

  43. 43
    ͜ͷγεςϜΛຊ൪Ͱಈ͔ͨ͠ΒͲ͏ͳ͔ͬͨ͸·ͨผͷػձʹɽɽɽɽ

    View Slide

  44. ·ͱΊ
    • ݱঢ়ͷը૾഑৴͸಺༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ
    • ػցֶशΛ༻͍ͯը૾͝ͱʹ࠷దͳҐஔͰͷΫϩοϐϯάΛ࣮ݱ͠
    Α͏ͱͨ͠
    • ը૾഑৴γεςϜʹٻΊΒΕΔ௿ϨΠςϯγʔɾߴτϥϑΟοΫ଱ੑͷ
    ͋ΔΞϓϦέʔγϣϯΛ࣮૷͢ΔͨΊʹpythonͰ͸ͳ͘rustΛબ୒ͨ͠
    • ػցֶशΛ༻͍ͨγεςϜͰ΋ී௨ʹઃܭ͢Ε͹࣮ݱՄೳ
    • Ωϟογϡઓུɾݱ࣮తͳམͱ͠ॴΛݟ͚ͭΔ
    44

    View Slide