【发布时间】:2020-11-05 16:16:00
【问题描述】:
我的目标:
在进行面部跟踪时,我正在尝试获取 TruthDepth 相机的 TruthDepth 相机参数(例如内在、外在、镜头失真等)。我读到OpenCV 有一些例子和可能的例子。我只是想知道是否应该在 Swift 中实现类似的目标。
我已阅读并尝试过的内容:
我阅读了有关 ARCamera 的苹果文档:intrinsics 和 AVCameraCalibrationData: extrinsicMatrix 和 intrinsicMatrix。
但是,我发现的只是AVCameraCalibrationData 和ARCamera 的声明:
对于AVCameraCalibrationData
对于内在矩阵
var intrinsicMatrix: matrix_float3x3 { get }
对于外部矩阵
var extrinsicMatrix: matrix_float4x3 { get }
我还阅读了这篇文章:get Camera Calibration Data on iOS 并尝试了 Bourne 的建议:
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
let ex = photo.depthData?.cameraCalibrationData?.extrinsicMatrix
//let ex = photo.cameraCalibrationData?.extrinsicMatrix
let int = photo.cameraCalibrationData?.intrinsicMatrix
photo.depthData?.cameraCalibrationData?.lensDistortionCenter
print ("ExtrinsicM: \(String(describing: ex))")
print("isCameraCalibrationDataDeliverySupported: \(output.isCameraCalibrationDataDeliverySupported)")
}
但它根本不打印矩阵。
对于ARCamera,我读过Andy Fedoroff 的 Focal Length of the camera used in RealityKit:
var intrinsics: simd_float3x3 { get }
func inst (){
sceneView.pointOfView?.camera?.focalLength
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
print(" Focal Length: \(String(describing: self.sceneView.pointOfView?.camera?.focalLength))")
print("Sensor Height: \(String(describing: self.sceneView.pointOfView?.camera?.sensorHeight))")
// SENSOR HEIGHT IN mm
let frame = self.sceneView.session.currentFrame
// INTRINSICS MATRIX
print("Intrinsics fx: \(String(describing: frame?.camera.intrinsics.columns.0.x))")
print("Intrinsics fy: \(String(describing: frame?.camera.intrinsics.columns.1.y))")
print("Intrinsics ox: \(String(describing: frame?.camera.intrinsics.columns.2.x))")
print("Intrinsics oy: \(String(describing: frame?.camera.intrinsics.columns.2.y))")
}
}
它显示了渲染相机参数:
Focal Length: Optional(20.784610748291016)
Sensor Height: Optional(24.0)
Intrinsics fx: Optional(1277.3052)
Intrinsics fy: Optional(1277.3052)
Intrinsics ox: Optional(720.29443)
Intrinsics oy: Optional(539.8974)
但是,这仅显示渲染相机,而不是我用于面部跟踪的 TruthDepth 相机。
那么任何人都可以帮助我开始获取 TruthDepth 相机参数,因为除了声明之外,文档并没有真正显示任何示例?
非常感谢!
【问题讨论】:
-
嘿,我也有类似的问题。您是否设法使用接受的答案得到它?如果是这样,您是否发现内在参数对您的应用来说是准确的,它们是否会随着时间而改变?这对我的前置摄像头 3D 姿势估计项目真的很有帮助,谢谢!
标签: ios swift augmented-reality arkit camera-calibration