CA.swift #9 LT AlfConfなど、WWDC19 周辺イベント 現地レポート USで浸透している便利アプリ・サービスの紹介 Vision FrameworkのImage Saliencyを試した話
ߦ ઍय़ʢͳΊ͖ ͪΔʣגࣜձࣾαΠόʔΤʔδΣϯτνέοτͳָ͔ͯͬͨ͘͠ΑʂWWDC19CA.swift #9 LTJune 19 2019Twitter, Qiita, GitHub @RidwyपลݱϨϙʔτ
View Slide
Beyond WWDCWWDCपลΠϕϯτhttps://developer.apple.com/wwdc19/more/
Beyond WWDCWWDCपลΠϕϯτhttps://developer.apple.com/wwdc19/more/AltConftry! SwiftWWDCLive near WWDCLoop BashLayers
AltConf
AltConf• San Jose Marriott, ίϯϕϯγϣϯηϯλʔ(WWDCձ)ྡͷϗςϧ• 6/3 ~ 6/6, WWDCΑΓ͍̍• ॳKeynoteͱPlatform state of the UnionͷϥΠϒ৴ΛօͰݟΔ• 2Track + ϥϘ• Free←͜͏ʹݟ͑ΔWWDCձ
AltConf • ຊ͔Β໊͕ొஃ• try! Swift Tokyoͱಉ͡༰ͷτʔΫ
AltConfϙουΩϟετSwift over Coffeeެ։ऩWeek in ReviewJames DempseyͱՎͰৼΓฦΔWWDC
Infinite Loop Appleࣾ ๚• AppleͷωοτϫʔΫΤϯδχΞ͞ΜʹதΛҊ͍ͯͨͩ͘͠• ෆ۩߹ʹ͍࣭ͭͯ → ͓ͦΒ͕ͩ͘ݪҼ໌• ͳ͔ͥLive Photoʹ͍ͭͯৄ͘͠ͳΔ
ؓٳUSϕΠΤϦΞʹਁಁ͍ͯ͠ΔΞϓϦ, αʔϏε
Uber Lyft
VTA muni • αϯϊθαϯϑϥϯγείΛΔެڞަ௨ػؔ• ΞϓϦͰνέοτങͬͯɺΔͱ͖ʹActivateվࡳͳͲͳ͍ɻӡΛ͍ͬͯΔͱূ໌Ͱ͖ΔͷΛ͍࣋ͬͯΕOK
ϨϯλϧిಈεΫʔλʔBirdLime• ΞϓϦͰQRίʔυΛಡΈऔͬͯं։࢝• ར༻࣌ؒʹԠͯ͡ྉ͕͔͔ۚΔ• తʹண͍ͨΒΞϓϦͰEndΛλοϓ ࣸਅΛࡱͬͯΓࣺͯLimeͷεΫʔλʔ
Ϩϯλϧࣗసं• εςʔγϣϯ͔Βεςʔγϣϯ• ҰճΓΓֹ݄ͷϓϥϯ͕͋Δ• าಓΛͬͯμϝFord GoBikeͷεςʔγϣϯ6/11ʹBay WheelsʹϦϒϥϯυBay Wheels
ΫϨδοτΧʔυܾࡁ• ݱۚΛ͏ػձ΄΅ͳ͍• Square͕৽͍͠ళɺখ͞ͳళʹΑ͘ಋೖ͞Ε͍ͯΔSquaresquareup.com ΑΓ
ΠϕϯτʹࢀՃ͍ͯ͠ͳ͍࣌…• WWDCͷηογϣϯͷϥΠϒ৴ΛݟΔ ݱʹ͍ΔͷͰવ͕࣌ࠩͳͯ͘ḿΔ• ࣮ࡍʹίʔυΛॻ͍ͯࢼ͢ SwiftUI Tutorial, SoundAnalysis, URLSessionWebSocketTask … RealityKitͷMotion CaptureA12 (iPhone Xs) ͕ͳͯ͘அ೦• ؾʹͳ͍ͬͯͨόάٕज़ͷௐࠪαϯϊθभཱେֶͷਤॻؗ,Airbnb, San Jose Marriott ͳͲͰ࡞ۀ͍ͯ͠·ͨ͠ӡʹͲ͜ిݯɾWi-Fiඋ͓ੈʹͳͬͨαϯϊθभཱେֶ
WWDC19Write code. Blow minds.
Γͩ͘͞ΜͰͨ͠Ͷʂ• Sign In with Apple• SwiftUI• Combine Framework• Xcode 11• Binary Framework• Swift 5.0, 5.1• ABI Stability• Opaque Result Type• Property Wrapper• iPadOS 13• Multitasking• iOS 13• Voice Control• Memoji Stickers• Dark Mode• SF Symbols• macOS Catalina• UIKit for Mac• RealityKit• Motion Capture• ARKit 3• Core ML 3• SoundAnalysis• BackgroundTasks• CryptoKit• watchOS 6• tvOS 13• Mac Pro• RIP iTunesॻ͖͖Εͳ͍Αʂ
Vision Framework ͷ Image Saliency Λࢼ͢ࢀߟ: Session 222 Understanding Images in Vision Frameworkhttps://developer.apple.com/videos/play/wwdc2019/222/ػցֶशͷ݁ՌΛ༻͍ͯਓ͕͍ؒͯ͠ΔΤϦΞ/खલͷମΛݕग़
let request = VNGenerateAttentionBasedSaliencyImageRequest()let requestHandler = VNImageRequestHandler(url: imageURL, options: [:])try? requestHandler.perform([request])if let observation = request.results?.first as? VNSaliencyImageObservation,let salientObject = observation.salientObjects?.first {// 68x68 Heat Mapobservation.pixelBuffer// ݕग़ΤϦΞͷۣܗ [0,1]x[0,1]salientObject.boundingBox}• VNGenerateObjectnessBasedSaliencyImageRequestखલͷମΛݕग़• VNGenerateAttentionBasedSaliencyImageRequestਓ͕͍ؒͯ͠ΔΤϦΞΛݕग़ݕग़ίʔυͷSample
Demo
Vision Framework ͷ Image Saliency Λࢼ͢• ݕग़͞ΕΔΤϦΞͳ͔ͳ͔ྑ͍͕ɺ࣌ʑ֎͢ ʢإͰͳ͘ݩʹͯ͠͠·ͬͨΓʣ• ղੳʹͦΕͳΓʹ͕͔͔࣌ؒΔ• ը૾ฤू࣌ʹΫϩοϓྖҬΛఏҊ• จࣈೝࣝͷલॲཧදࣔ࣌ʹαϜωΠϧΛྑ͍ײ͡ʹ͢Δ…ͷݫ͍͍͍ͯͦ͠͏ͳ༻్
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠νέοτͳָ͔ͯͬͨ͘͠ΑʂWWDC19