2017-09-25 12 views
5

일부 검색을 수행 한 결과, iPhone X Face ID에 대한 다양한 예제, 문서 및 인증, 애니메이션 이모티콘 등 다양한 용도로 사용할 수있는 방법을 발견했습니다.IPhone X 용 Raw Depth지도 SDK

iPhone X 센서의 원시 깊이 맵을 앱에 가져 오기위한 API/SDK가 있는지 확인하고 싶습니다.

내 이해에서 깊이 계산은 투영 된 패턴을 기반으로 수행됩니다. 이것은 센서 앞에 모든 물체의 깊이 프로파일을 얻는 데 사용할 수 있습니다. (객체의 질감에 따라 다를 수 있습니다.)

답변

7

Xcode 9.1에는 적어도 iOS 11.1 SDK가 필요합니다 (이 글을 쓰는 시점에서는 모두 베타 버전입니다). 그것으로, builtInTrueDepthCamera 중 하나가되는 camera types 당신은 캡처 장치를 선택하는 데 사용 :

let device = AVCaptureDevice.default(.builtInTrueDepthCamera, for: .video, position: .front) 

는 그런 다음 TrueDepth 카메라 장치와의 AVCaptureSession을 설정에 갈 수 있습니다, 그리고 깊이 정보를 캡처하는 캡처 세션을 사용할 수 있습니다 당신은 다시 이중 아이폰 7 플러스, 8 개 플러스에 카메라와 함께 수 많은처럼 : AVCapturePhotoOutput.isDepthDataDeliveryEnabled와 사진에 대한 깊이 캡처에

  • 전원을 켜고, 다음 AVCapturePhotoSettings.isDepthDataDeliveryEnabled과 함께 사진을 찍을. 캡처 후받은 AVCapturePhoto 개체에서 depthData을 읽거나 나중에 촬영하고 잊어 버리고 (나중에 캡처 한 이미지 파일에서 데이터를 읽는 경우) embedsDepthDataInPhoto을 켤 수 있습니다.

  • AVCaptureDepthDataOutput으로 깊이 맵의 라이브 피드를 가져옵니다. 그 하나는 비디오 데이터 출력과 같습니다. 동영상 파일에 직접 녹음하는 대신 델리게이트에게 이미지 (또는이 경우에는 깊이) 버퍼의 시간 순서를 지정합니다. 동시에 비디오를 캡쳐하는 경우 AVCaptureDataOutputSynchronizer을 사용하면 깊이 맵과 컬러 프레임을 함께 조정할 수 있습니다. 애플의 Device Compatibility 문서 노트로

, 당신은이 깊이 캡처 옵션 중 하나를 얻을 수있는 builtInTrueDepthCamera 장치를 선택해야합니다. 앞면이 builtInWideAngleCamera 인 것을 선택하면 다른 셀프 카메라처럼 보이며 사진과 비디오 만 캡처합니다.


그냥 강조 : 뷰의 API 지점에서, 아이폰 X에서 전면 TrueDepth 카메라와 깊이를 캡처하는 것은 많은 아이폰 7 플러스, 8 플러스의 후면에 직면 듀얼 카메라와 깊이를 캡처처럼 . 따라서이 모든 깊이 캡처 비즈니스가 일반적으로 작동하는 방식과 캡처 된 깊이 정보로 수행 할 수있는 방법에 대해 자세히 알아 보려면 WWDC17 Session 507: Capturing Depth in iPhone Photography 토크를 확인하십시오.

+0

내가 지정한대로 AVCaptureDevice를 설정했는데 AVCapturePhotoOutput 객체에서 심도 데이터 전달을 사용하려고하면 "캐치되지 않은 예외로 인해 응용 프로그램을 종료하는 중 'NSInvalidArgumentException'이 발생합니다 : '* ** - [AVCapturePhotoOutput setDepthDataDeliveryEnabled :] 현재 데이터 구성에서 깊이 데이터 전달이 지원되지 않습니다 (''). 무슨 일이 일어 났는지 알아? iOS 용으로 개발 한 이후로 오랜 시간이 걸렸으므로 확실한 작업을 수행 할 가능성이 있습니다. – stranger

+0

@rickster 전면 카메라가 반환하는 깊이 데이터는 픽셀 당 8 비트 이상의 데이터를 반환 할 수 있습니까? – Vickram