Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LINE Creators Studioで写真を簡単 & きれいに切り抜いてもらいたい話 / ...
Search
LINE Developers
February 13, 2019
Technology
0
590
LINE Creators Studioで写真を簡単 & きれいに切り抜いてもらいたい話 / Grabcut in LINE Creators Studio
2019/2/13に開催されたLINE Developer Meetup #50 in Fukuokaでの登壇資料です
LINE Developers
February 13, 2019
Tweet
Share
More Decks by LINE Developers
See All by LINE Developers
LINEスタンプのSREing事例集:大きなスパイクアクセスを捌くためのSREing
line_developers
1
2.3k
Java 21 Overview
line_developers
6
1.2k
Code Review Challenge: An example of a solution
line_developers
1
1.3k
KARTEのAPIサーバ化
line_developers
1
530
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.2k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.1k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.5k
A/B Testing at LINE NEWS
line_developers
3
970
LINEのサポートバージョンの考え方
line_developers
2
1.3k
Other Decks in Technology
See All in Technology
GitHub Copilot の概要
tomokusaba
1
140
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
1
280
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
5
580
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
420
本が全く読めなかった過去の自分へ
genshun9
0
660
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.6k
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
220
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
350
Wasm元年
askua
0
160
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
1
560
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
290
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
Designing Experiences People Love
moore
142
24k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Side Projects
sachag
455
42k
Docker and Python
trallard
44
3.4k
Rails Girls Zürich Keynote
gr2m
94
14k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Transcript
-*/&$SFBUPST4UVEJPͰ ࣸਅΛ؆୯ˍ͖Ε͍ʹ Γൈ͍ͯΒ͍͍ͨ LINE Developer meetup #50 in Fukuoka -*/&'VLVPLB։ൃࣨഅݟ
Feb 13, 2019
അݟ -*/&'VLVPLBגࣜձࣾ ։ൃ̏ࣨॴଐ UMAMI MAKOTO @umakoz -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ `z
-*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ LINE Creators Studio? ɾεϚʔτϑΥϯ͔Β-*/&ελϯϓ͕؆୯ʹ࡞ΕΔ ɾࡱͬͨࣸਅΛՃͯ͠ελϯϓʹͰ͖Δ ɾελϯϓͷ৹ࠪਃൢച͕Ͱ͖Δ ɹIUUQTDSFBUPSMJOFNFKBTUVEJP ಛ
LINE Creators StudioͰͷSticker࡞ྫ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ IUUQTDSFBUPSMJOFNFKBTUVEJP
LINE Creators Studio Android ɾPure Kotlinʢwithout Libraryʣ ɾMVVM ɾDagger2, RxJava2,
RxKotlin, RxLifecycle, Retrofit2, OkHttp3, Glide, Realm, Anko, Espresso, Mockito-Kotlin ߏ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
History 7FS ݄ ϦϦʔεɺͳͧͬͯΓൈ͖ػೳ 7FS ݄ ඇެ։ઃఆ 7FS ݄ ଟݴޠରԠʢӳޠɺλΠޠɺதࠃޠɺΠϯυωγΞޠʣ
7FS ݄ ܗͰΓൈ͖ػೳ 7FS ݄ ফ͠ΰϜػೳ 7FS ݄ σίϑϨʔϜػೳ 7FS ݄ 6*มߋ 7FS ݄ ࣗಈΓൈ͖ػೳʢ"OESPJEʣ 7FS ݄ ΩϟϯϖʔϯࢀՃػೳ 7FS ݄ ࣗಈΓൈ͖ػೳʢJ04ʣ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
History -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ 7FS ݄ ϦϦʔεɺͳͧͬͯΓൈ͖ػೳ 7FS ݄ ඇެ։ઃఆ 7FS ݄
ଟݴޠରԠʢӳޠɺλΠޠɺதࠃޠɺΠϯυωγΞޠʣ 7FS ݄ܗͰΓൈ͖ػೳ 7FS ݄ফ͠ΰϜػೳ 7FS ݄σίϑϨʔϜػೳ 7FS ݄ 6*มߋ 7FS ݄ ࣗಈΓൈ͖ػೳʢ"OESPJEʣ 7FS ݄ ΩϟϯϖʔϯࢀՃػೳ 7FS ݄ ࣗಈΓൈ͖ػೳʢJ04ʣ
Γൈ͖ؔ࿈ଟ͗͢ʜ ɾͳͧͬͯΓൈ͖ ɾܗͰΓൈ͖ ɾফ͠ΰϜ ɾσίϑϨʔϜ ɾࣗಈΓൈ͖ ؆୯ͳૢ࡞Ͱ͖Ε͍ʹΓൈ͖͍ͨʂ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ͳͧͬͯΓൈ͖ ɾΠϝʔδͷԑΛͳͧͬͯΓൈ͘ ɾύε্ͷͷΛҠಈͤ͞Δ͜ͱͰඍௐ͢Δ 7FSʙ ɾײత ॴ ɾࡉ͔͍मਖ਼͕͠ʹ͍͘ ɾҰຊͷύεͰ͔͠Γൈ͚ͳ͍ ॴ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ܗͰΓൈ͖ ɾԁ࢛֯ɺϋʔτɺͷܗΛબͿ ɾΠϝʔδΛҠಈ֦େॖখɺճసͤ͞Δ͜ͱͰඍௐ͢Δ 7FSʙ ɾ؆୯ ॴ ɾ༻ҙ͞ΕͨܗͰ͔͠Γൈ͚ͳ͍ ॴ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ফ͠ΰϜ ɾফ͠ΰϜΛ͔͚ͨ෦͕ফ͑Δ ɾम෮ফ͠ΰϜΛ͔͚ͯ෦తʹΠϝʔδΛ͠ɺඍௐ͢Δ 7FSʙ ɾΤοδͷࡉ͔ͳௐ͕Ͱ͖Δ ɾෳͷύεͰΓൈ͖Ͱ͖Δ ॴ ɾ͖Ε͍ʹΓൈ͘ʹख़࿅ͷٕͱ͕࣌ؒඞཁ ॴ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
σίϑϨʔϜ ɾΠϝʔδΛσίϨʔγϣϯ͢ΔϑϨʔϜΛબͿ ɾΠϝʔδΛҠಈ֦େॖখɺճసͤ͞Δ͜ͱͰඍௐ͢Δ 7FSʙ ɾ؆୯ʹݟӫ͑ͷ͢Δελϯϓ͕࡞ΕΔ ॴ ɾಉ͡Α͏ͳελϯϓ͕ྔ࢈͞ΕΔ ॴ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ ࠓɺྲྀߦΓͷػցֶशͱ͔ͬͯ ελϯϓʹඞཁͳ෦ΛΓൈ͚ͳ͍ʁ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ SFNPWFCH IUUQTXXXSFNPWFCH ػցֶश
ࣗಈΓൈ͖ ɾ'BDF%FUFDUPS ɾ.-,JUGPS'JSFCBTF ɾ:0-0 0CKFDU%FUFDUJPO -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ :0-0 IUUQTQKSFEEJFDPNEBSLOFUZPMP
ࣗಈΓൈ͖ ɾ.BTL3$// *NBHF4FHNFOUBUJPO -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ IUUQTBSYJWPSHQEGQEG
ࣗಈΓൈ͖ 5FOTPS'MPX`TMJHIUXFJHIUTPMVUJPOGPS NPCJMFBOEFNCFEEFEEFWJDFT IUUQTXXXUFOTPSGMPXPSHMJUF -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ 5FOTPS'MPX-JUF
ࣗಈΓൈ͖ ɾࣸਅͷҰ෦͚ͩΛ͏ ɾਓͷશମͰͳ͘ɺҰ෦͚ͩʢإͱ͔ʣΛ͏ ɹˠྖҬΛݕग़͢Δ͚ͩͰෆे Ͳ͕͜ελϯϓʹద͍ͯ͠Δ͔Λݕग़Ͱ͖Δ͔ʁ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ ελϯϓ࡞࣌ͷϢʔβʔχʔζ IUUQTDSFBUPSMJOFNFKBTUVEJP
ࣗಈΓൈ͖ ΠϝʔδͷपғΛͬ͘͟ΓͳͧΔ ࣗಈͰΓൈ͍ͯΒ͏ ࣗಈͰΓൈ͍ͯཉ͍͠෦ʹফ͠ΰϜΛ͔͚Δ ࣗಈͰΓൈ͍ͯཉ͘͠ͳ͍෦ʹम෮ফ͠ΰϜΛ͔͚Δ ʙͷૢ࡞Λ܁Γฦͯ͠ඍௐ͢Δ 7FSʙ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ ɾ؆୯Ͱ͖Ε͍ʹΓൈ͚Δ ॴ ɾૢ࡞͕ෳࡶͰ׳Ε͕ඞཁ ॴ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ ɾΠϝʔδͷલܠྖҬΛநग़͢Δ ɾ0QFO$7 IUUQTPQFODWPSH (SBC$VU"MHPSJUIN -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
-*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ GrabCut Algorithm Ϣʔβʔ͕બͨ͠ൣғ͔ΒۣܗΛੜͯ͠ೖྗ͠ɺ ֎ଆഎܠʹଆલܠʹͳΔɻ (..ʢࠞ߹ΨεϞσϧʣͰલܠͱഎܠͷըૉΛֶश͢Δɻ ϐΫηϧͷ৭ใΑΓલܠʗഎܠͰ͋Δ֬Λ༧ଌ͢ΔϞσϧΛ࡞Δɻ
-*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ GrabCut Algorithm http://www.cs.ru.ac.za/research/g02m1682/ Ϣʔβʔ͕બͨ͠ൣғ͔ΒۣܗΛੜͯ͠ೖྗ͠ɺ ֎ଆഎܠʹଆલܠʹͳΔɻ (..ʢࠞ߹ΨεϞσϧʣͰલܠͱഎܠͷըૉΛֶश͢Δɻ ϐΫηϧͷ৭ใΑΓલܠʗഎܠͰ͋Δ֬Λ༧ଌ͢ΔϞσϧΛ࡞Δɻ ϞσϧΛ༻͍ͯϐΫηϧΛͭͳ͗άϥϑΛߏங͢Δɻ
-*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ GrabCut Algorithm http://www.cs.ru.ac.za/research/g02m1682/ Ϣʔβʔ͕બͨ͠ൣғ͔ΒۣܗΛੜͯ͠ೖྗ͠ɺ ֎ଆഎܠʹଆલܠʹͳΔɻ (..ʢࠞ߹ΨεϞσϧʣͰલܠͱഎܠͷըૉΛֶश͢Δɻ ϐΫηϧͷ৭ใΑΓલܠʗഎܠͰ͋Δ֬Λ༧ଌ͢ΔϞσϧΛ࡞Δɻ ϞσϧΛ༻͍ͯϐΫηϧΛͭͳ͗άϥϑΛߏங͢Δɻ ϐΫηϧΛͭͳ͙ΤοδͷॏΈΛܭࢉ͢Δɻ
ΤοδͷॏΈͷ૯͕࠷খʹͳΔΑ͏ʹஅ͢Δɻ
GrabCut Algorithm -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ http://www.cs.ru.ac.za/research/g02m1682/ Ϣʔβʔ͕બͨ͠ൣғ͔ΒۣܗΛੜͯ͠ೖྗ͠ɺ ֎ଆഎܠʹଆલܠʹͳΔɻ (..ʢࠞ߹ΨεϞσϧʣͰલܠͱഎܠͷըૉΛֶश͢Δɻ ϐΫηϧͷ৭ใΑΓલܠʗഎܠͰ͋Δ֬Λ༧ଌ͢ΔϞσϧΛ࡞Δɻ ϞσϧΛ༻͍ͯϐΫηϧΛͭͳ͗άϥϑΛߏங͢Δɻ ϐΫηϧΛͭͳ͙ΤοδͷॏΈΛܭࢉ͢Δɻ
ΤοδͷॏΈͷ૯͕࠷খʹͳΔΑ͏ʹஅ͢Δɻ Ϣʔβʔʹิਖ਼ͷͨΊͷઢΛೖྗͯ͠Β͍ɺ࠶ͼܭࢉ͢Δɻ
ࣗಈΓൈ͖ͷ (SBC$VUલʹબྖҬΛج४ͱ͠ ը૾ΛτϦϛϯά͢Δɻ ˞എܠΛશࣦͯ͏ͱਫ਼͕མͪΔͷͰ ɹϚʔδϯΛ͢ɻ ॲཧͷ্ τϦϛϯά -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ͷ ϚʔΧʔͷαΠζΛʹͯ͠(SBC$VUΛ ࣮ߦ͢Δɻ ॲཧͷ্ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ͷ 3FOEFS4DSJQUΛ͏ "OESPJEͰ࠾༻͞Ε͍ͯΔ ϐΫηϧ୯ҐͷॲཧΛ ߴʹߦ͏ͨΊͷ4DSJQU ॲཧͷ্ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ QSBHNBWFSTJPO
QSBHNBSTKBWB@QBDLBHF@OBNF DPNMJOFDPSQVTFSTUJDLFSST ST@BMMPDBUJPOJOQVU*NBHF VJOU@U SFDU WPJE@@BUUSJCVUF@@ LFSOFM SPPU VDIBSJO VJOU@UY VJOU@U GMPBUBST6OQBDL$PMPS JO B JG B \ JG YSFDU<> \ SFDU<>Y ^
ࣗಈΓൈ͖ͷ ݩը૾ͷେ͖͞Λҡ࣋ͨ͠··Γൈ͘ ˞࠷ऴతʹ࡞Δͷ ɹελϯϓ º ͳͷͰɺ ɹେ͖͗͢Δ࣌ϦαΠζ ը࣭ͷ্ ݩը૾ σΟεϓϨΠ
Ҡಈɺ֦େॖখɺճస Matrix Matrix -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ͷ Τοδʹ΅͔͠Λ͔͚Δɻ ͨͩ͠ɺ΅͔ͨ͠ϚʔΧʔΛ(SBC$VUʹ͏ͱ ਫ਼͕མͪΔͷͰɺσΟεϓϨΠ্͚ͩ΅͔͢ɻ ඒ͠͞ͷ্ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ͷ ϦΞϧλΠϜʹ΅͔͢ͱॲཧ͕͘ͳΔͷͰɺ ϚʔΧʔͷ֬ఆ࣌ʹ΅͔͢ɻ ඒ͠͞ͷ্ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
ࣗಈΓൈ͖ ࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨʂ -*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ
-*/&$SFBUPST4UVEJPͰࣸਅΛ؆୯ˍ͖Ε͍ʹΓൈ͍ͯΒ͍͍ͨ IUUQTMJOFGVLVPLBDPKQKBDBSFFSFOHJOFFS
5IBOLZPV