Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 18 Ad
Advertisement

More Related Content

Similar to [TECHCON 2019: MOBILE - iOS]4-1.ARKit, CoreML, Turi Create 삼형제 (20)

More from NAVER Engineering (20)

Advertisement

Recently uploaded (20)

[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. 성장

×