Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[TECHCON 2019: MOBILE - iOS]4-1.ARKit, CoreML, Turi Create 삼형제

130 views

Published on

노수진
네이버 웹툰

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[TECHCON 2019: MOBILE - iOS]4-1.ARKit, CoreML, Turi Create 삼형제

  1. 1. ARKit CoreML Turi Create 삼형제 노수진, GW Tech 김희재, NSML
  2. 2. Overview ARKit AVFoundation Core ML SceneKit MLKit
  3. 3. Image Tracking ARKit
  4. 4. Realtime detection for Better User Experience Face Detection AVMetadataFaceObject
  5. 5. Realtime detection for Better User Experience Face Detection AVMetadataFaceObject
  6. 6. Face Detection MLKit MLKit Vision Framework
  7. 7. Convert Coordinate Tip
  8. 8. Convert Coordinate func UIKitRectForCoreImageRect(_ rect: CGRect, _ height: CGFloat) -> CGRect { let ciCoordToUICoord = CGAffineTransform(scaleX: 1, y: -1).translatedBy(x: 0, y: -height) return rect.applying(ciCoordToUICoord) } Tip
  9. 9. Overheating private var captureDevice: AVCaptureDevice? captureDevice?.addObserver(self, forKeyPath: "systemPressureState", options: NSKeyValueObservingOptions.new, context: nil) var frameRate: Int32 try captureDevice?.lockForConfiguration() captureDevice?.activeVideoMinFrameDuration = CMTime(value: 1, timescale: frameRate) captureDevice?.activeVideoMaxFrameDuration = CMTime(value: 1, timescale: frameRate) captureDevice?.unlockForConfiguration() Tip
  10. 10. Overheating NotificationCenter.default.addObserver(self, selector: #selector(thermalStateDidChange), name: ProcessInfo.thermalStateDidChangeNotification, object: nil) Tip
  11. 11. Memory Budget https://stackoverflow.com/questions/5887248/ios-app-maximum-memory-budget Tip
  12. 12. Anchoring with SceneKit
  13. 13. ARAnchor
  14. 14. SCNNode private func makeOutlineNode(from bill: Bill) -> SCNNode { let geometry = SCNPlane(size: bill.outlineSize) geometry.firstMaterial?.diffuse.contents = bill.outlineImage let node = SCNNode(geometry: geometry) node.name = PortraitNode.PortraitOutlineNodeName node.eulerAngles.x = -.pi / 2 return node }
  15. 15. 성장
  16. 16. 성장

×