Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
LINE Creators Studioで写真を簡単 & きれいに切り抜いてもらいたい話 / Grabcut in LINE Creators Studio
LINE Developers
PRO
February 13, 2019
Technology
0
480
LINE Creators Studioで写真を簡単 & きれいに切り抜いてもらいたい話 / Grabcut in LINE Creators Studio
2019/2/13に開催されたLINE Developer Meetup #50 in Fukuokaでの登壇資料です
LINE Developers
PRO
February 13, 2019
Tweet
Share
More Decks by LINE Developers
See All by LINE Developers
SONiCをLINEのClosネットワークに導入した話 / A story to adopt SONiC in LINE’s Clos Network
line_developers
PRO
1
75
ML PM, DS PMってどんな仕事をしているの?
line_developers
PRO
1
240
LINE iOSエンジニアの日々 / LINE iOS Engineer Days
line_developers
PRO
1
150
“Do you have a virtual router?” Discuss how to use virtual routers
line_developers
PRO
0
580
LINEにおけるネットワーク自動化チーム / Network Automation Team in LINE
line_developers
PRO
0
310
ひとりで書ける! 日英文章作成のコツ / Do-it-yourself! - Tips for writing in Japanese-English
line_developers
PRO
1
430
UIT Survey 2022
line_developers
PRO
0
120
LINE’s Journey; Road to 4 Million Cores in the Private Cloud
line_developers
PRO
0
79
Investigating Kafka performance issue caused by lock contention in xfs
line_developers
PRO
0
250
Other Decks in Technology
See All in Technology
Pentesting Password Reset Functionality
anugrahsr
0
500
NGINXENG JP#2 - 2-NGINXの動作の詳細
hiropo20
1
140
DNS権威サーバのクラウドサービス向けに行われた攻撃および対策 / DNS Pseudo-Random Subdomain Attack and mitigations
kazeburo
5
1.3k
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
1
290
230125 モニターマウントLT ITガジェット翁(Ryu.Cyber)さん
comucal
PRO
0
4.7k
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
560
CES_2023_FleetWise_demo.pdf
sparkgene
0
120
SmartHRからOktaへのSCIM連携で作り出すHRドリブンのアカウント管理
jousysmiler
1
120
cdk deployに必要な権限ってなんだ?
kinyok
0
180
CSS Variable をもっと活用する / Kyoto.js 18
spring_raining
2
910
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
390
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
150
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
152
13k
Docker and Python
trallard
30
1.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
7
580
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
GitHub's CSS Performance
jonrohan
1020
430k
From Idea to $5000 a Month in 5 Months
shpigford
374
44k
What's in a price? How to price your products and services
michaelherold
233
9.7k
How to train your dragon (web standard)
notwaldorf
66
4.3k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Visualization
eitanlees
128
12k
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
QSBHNBST
[email protected]
@OBNF DPNMJOFDPSQVTFSTUJDLFSST
[email protected]
JOQVU*NBHF VJOU@U SFDU WPJE@@
[email protected]
@ 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