【问题标题】:Why are iPhone 12 Pro stereo video frames vertically displaced?为什么 iPhone 12 Pro 立体视频帧垂直移位?
【发布时间】:2021-03-10 07:29:06
【问题描述】:

更新:问题似乎归结为未校正相机的固有矩阵,但这些矩阵不可用。请参阅下面的编辑 3。

我正在使用AVCaptureMultiCamSessionbuiltInDualCamera、两个输出和一个AVCaptureDataOutputSynchronizer 捕捉视频,用于计算机视觉。我正在裁剪广角相机图像,以便视野匹配。视频是以相机的自然方向拍摄的,即右侧的“主页按钮”。

由于广角和长焦设备仅沿相机水平轴物理位移,至少在 iPhone 12 Pro 上,我预计仅沿水平图像轴的深度差异。除了一个奇怪的问题之外,这基本上是成立的:

当且仅当我将设备大致竖直放置在横向时,图像之间会有轻微的垂直差异,对应于 1920x1080 的广角帧中大约 11 个像素。但是,如果我将设备竖直放置在纵向,或者将其平放(与地面平行),图像空间的垂直差异就会消失。这是一个渐进的过渡,所以我越接近直立和横向,我得到的图像空间垂直差异就越大。

由于问题肯定取决于物理设备的方向,似乎必须以某种方式涉及陀螺仪。编辑:它也可以是加速度计或OIS。是否有任何 AVFoundation 设置可以使其在视频捕获期间使用陀螺仪、加速度计或 OIS?我唯一能想到的就是视频稳定功能,但肯定是关掉了。

以下是一些说明该问题的屏幕截图。屏幕截图都是相机的自然方向,即右侧的“主页按钮”。它们被裁剪。蓝色圆圈来自广角镜头,红色圆圈来自长焦镜头。

编辑:第一张照片是在设备直立的情况下拍摄的,“主页按钮”在右侧。 左边的“主页按钮”,从用户的角度来看,垂直差异是相同的,即它相对于视频帧是倒置的。

编辑 2:对于设备类型 builtInWideAngleCamerabuiltInTelephotoCamera,通过调用 ports(for:sourceDeviceType:sourceDevicePosition:) 获取输入端口。虚拟设备builtInDualCamera 也有一个不同的复合输入端口,它可以根据当前的缩放级别从任一摄像机中抓取帧。奇怪的是,后一个端口似乎产生了与builtInWideAngleCamera 端口相同的帧。换句话说,builtInWideAngleCamera 端口根据缩放级别从两个物理设备中的任何一个输出帧。这似乎是一个错误。

编辑 3:从 36:28 开始,this WWDC talk 强烈暗示您需要纠正组成设备的内在矩阵,以便将图像相互关联。这大概就是问题所在。不幸的是,isCameraIntrinsicMatrixDeliverySupported 为我的两个连接返回了false,即使我的捕获会话的设置与演讲中描述的完全一样。

直立景观:

平:

直立肖像:

【问题讨论】:

  • 你有没有检查相机之间的extrinsic matrix,旋转设备时它是否改变?
  • 好问题@FrankSchlegel。当我移动相机时,外在矩阵不会改变。它是:simd_float4x3([[0.9999969, -0.0001923358, -0.0024844604], [0.0001978918, 0.9999975, 0.0022362475], [0.002484024, -0.0022367323, 0.9999944], [-15.419649, 0.0027622615, 0.12930928]]),即几乎没有旋转,几乎只有水平平移。
  • 您是否在文档中看到了有关视频稳定的说明?也许这会影响对齐方式。
  • @FrankSchlegel 视频稳定功能默认是关闭的,我也验证它是关闭的。您指的是文档中的哪个注释?
  • 来自extrinsicMatrix(from:to:),底部的“重要”部分。

标签: ios camera computer-vision avfoundation


【解决方案1】:

this WWDC talk 中所述,您必须校正内在矩阵才能将来自各个摄像头的视频帧相互关联。

奇怪的是,AVCaptureConnectionisCameraIntrinsicMatrixDeliverySupported 似乎返回false,除非两个连接都连接已添加到会话中,在这种情况下它返回true (给定有问题的会话拓扑).

各个相机的内在矩阵确实会实时变化,这导致了意想不到的垂直差异。

This WWDC talk 更详细地描述了内在矩阵。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多