ARFrame

作者: 何颀 | 来源:发表于2024-10-29 15:09 被阅读0次
ARFrame (AR 会话中的一帧数据) 属性 (具体数据特征) 具体参数 描述
ARFrame camera (相机信息) transform (位置和方向) simd_float4x4:表示相机在 3D 空间中的位置和方向,包含平移和旋转信息。
intrinsics (内参矩阵) simd_float3x3:相机内参矩阵,描述镜头的焦距和图像中心,用于从 3D 坐标到 2D 图像的投影。
anchors (锚点信息) count (锚点数量) Int:当前帧中锚点的数量,表示虚拟物体的数量,帮助开发者了解场景的复杂性。
identifier (唯一标识符) UUID:锚点的唯一标识符,用于区分不同的虚拟对象,使得每个对象能够被独立跟踪和管理。
transform (锚点变换) simd_float4x4:表示该锚点在 3D 空间中的位置和方向,类似于相机变换。
lightEstimate (光照估计) ambientIntensity (环境光强度) Float:当前环境的光照强度(以勒克斯为单位),用于调整虚拟物体的光照效果,使其看起来更加自然。
ambientColorTemperature (光色温) Float:环境光的色温(以开尔文为单位),影响物体的渲染色彩和真实感,帮助改善虚拟与现实的融合。
capturedImage (捕获的图像) capturedImage (原始图像数据) CVPixelBuffer:当前帧的原始图像数据,包含摄像头捕获的画面,可用于进行图像处理或后续渲染。
timestamp (时间戳) timestamp (捕获时间) TimeInterval:该帧捕获的时间,通常以秒为单位,方便进行时间相关的处理或同步。
worldMappingStatus (世界映射状态) worldMappingStatus (环境理解状态) ARFrame.WorldMappingStatus:表示 ARKit 对环境理解的状态(如 .notAvailable.limited.extending.mapped),指示 AR 会话的质量和稳定性。
detectedBody (检测到的身体) detectedBody (人体数据) ARBody2D?ARBodyAnchor?:如果检测到人体骨架,返回相关数据(如身体位置和姿势),否则为 nil,可用于与用户进行交互。
segmentationBuffer (分割图像) segmentationBuffer (图像分割数据) CVPixelBuffer?:表示当前场景的分割图像,用于区分不同区域(如前景和背景),帮助提高渲染效果和视觉真实感。
depthData (深度数据) depthData (深度信息) AVDepthData?:场景的深度信息,提供距离数据,用于计算虚拟物体与现实世界之间的遮挡效果,增强 AR 体验的真实感。

ARBody2D 的人体节点信息如下
let skeleton = body.skeleton
for na in skeleton.definition.jointNames
{
print("--->(na)")
}
空间位置信息 : skeleton.jointLandmarks
--->head_joint
--->neck_1_joint
--->right_shoulder_1_joint
--->right_forearm_joint
--->right_hand_joint
--->left_shoulder_1_joint
--->left_forearm_joint
--->left_hand_joint
--->right_upLeg_joint
--->right_leg_joint
--->right_foot_joint
--->left_upLeg_joint
--->left_leg_joint
--->left_foot_joint
--->right_eye_joint
--->left_eye_joint
--->root
--->right_ear_joint
--->left_ear_joint

以上表格json化


{
    "ARFrame": {
        "description": "AR 会话中的一帧数据",
        "attributes": [
            {
                "name": "camera",
                "description": "相机信息",
                "subAttributes": [
                    {
                        "name": "transform",
                        "type": "simd_float4x4",
                        "description": "表示相机在 3D 空间中的位置和方向,包含平移和旋转信息。"
                    },
                    {
                        "name": "intrinsics",
                        "type": "simd_float3x3",
                        "description": "相机内参矩阵,描述镜头的焦距和图像中心,用于从 3D 坐标到 2D 图像的投影。"
                    }
                ]
            },
            {
                "name": "anchors",
                "description": "锚点信息",
                "subAttributes": [
                    {
                        "name": "count",
                        "type": "Int",
                        "description": "当前帧中锚点的数量,表示虚拟物体的数量,帮助开发者了解场景的复杂性。"
                    },
                    {
                        "name": "identifier",
                        "type": "UUID",
                        "description": "锚点的唯一标识符,用于区分不同的虚拟对象,使得每个对象能够被独立跟踪和管理。"
                    },
                    {
                        "name": "transform",
                        "type": "simd_float4x4",
                        "description": "表示该锚点在 3D 空间中的位置和方向,类似于相机变换。"
                    }
                ]
            },
            {
                "name": "lightEstimate",
                "description": "光照估计",
                "subAttributes": [
                    {
                        "name": "ambientIntensity",
                        "type": "Float",
                        "description": "当前环境的光照强度(以勒克斯为单位),用于调整虚拟物体的光照效果,使其看起来更加自然。"
                    },
                    {
                        "name": "ambientColorTemperature",
                        "type": "Float",
                        "description": "环境光的色温(以开尔文为单位),影响物体的渲染色彩和真实感,帮助改善虚拟与现实的融合。"
                    }
                ]
            },
            {
                "name": "capturedImage",
                "description": "捕获的图像",
                "subAttributes": [
                    {
                        "name": "capturedImage",
                        "type": "CVPixelBuffer",
                        "description": "当前帧的原始图像数据,包含摄像头捕获的画面,可用于进行图像处理或后续渲染。"
                    }
                ]
            },
            {
                "name": "timestamp",
                "description": "时间戳",
                "subAttributes": [
                    {
                        "name": "timestamp",
                        "type": "TimeInterval",
                        "description": "该帧捕获的时间,通常以秒为单位,方便进行时间相关的处理或同步。"
                    }
                ]
            },
            {
                "name": "worldMappingStatus",
                "description": "世界映射状态",
                "subAttributes": [
                    {
                        "name": "worldMappingStatus",
                        "type": "ARFrame.WorldMappingStatus",
                        "description": "表示 ARKit 对环境理解的状态(如 .notAvailable、.limited、.extending 和 .mapped),指示 AR 会话的质量和稳定性。"
                    }
                ]
            },
            {
                "name": "detectedBody",
                "description": "检测到的身体",
                "subAttributes": [
                    {
                        "name": "detectedBody",
                        "type": "ARBody2D? 或 ARBodyAnchor?",
                        "description": "如果检测到人体骨架,返回相关数据(如身体位置和姿势),否则为 nil,可用于与用户进行交互。"
                    }
                ]
            },
            {
                "name": "segmentationBuffer",
                "description": "分割图像",
                "subAttributes": [
                    {
                        "name": "segmentationBuffer",
                        "type": "CVPixelBuffer?",
                        "description": "表示当前场景的分割图像,用于区分不同区域(如前景和背景),帮助提高渲染效果和视觉真实感。"
                    }
                ]
            },
            {
                "name": "depthData",
                "description": "深度数据",
                "subAttributes": [
                    {
                        "name": "depthData",
                        "type": "AVDepthData?",
                        "description": "场景的深度信息,提供距离数据,用于计算虚拟物体与现实世界之间的遮挡效果,增强 AR 体验的真实感。"
                    }
                ]
            }
        ]
    }
}

相关文章

  • ARFrame

    A video image, with position-tracking information, captur...

  • AR之—悬空指南针

    新建CLLocationManager并设置代理 当手机方向发生改变时,系统会调用下面方法 ARFrame更新的代...

  • ARKit3.5 框架学习 (二)核心类简介(中)

    3.4 ARCamera ARCamera: 关于给定帧的摄像机位置和成像特性的信息。 您可以从ARFrame A...

  • 十五、<ARKit> ARFrame 类

    本文译自官方文档 ARFrame,不足之处,请纠正。 视频图像和位置的追踪是 AR 会话的部分。 一、简介 运行 ...

  • 08_ARKit 相机:类 ARFrame

    会话期间捕捉的、带有位置跟踪信息的视频图像。 概念 一个正在运行的会话不断地从设备的摄像头捕获视频帧,而 ARKi...

  • ARKit API介绍

    1.ARAnchor ARAnchor表示一个物体在3D空间的位置和方向(ARFrame用于捕捉相机的移动,其他虚...

  • ARKit尝试翻译七_Camera and Scene Deta

    ARFrame 作为AR会话的一部分捕获的视频图像和位置跟踪信息。 Overview 运行的AR会话连续捕获来自设...

  • 09_ARKit 相机:类 ARCamera

    给定帧中的摄像头位置和影像特征信息。 您可以从每个ARFrame ARKit交付的摄像机属性中获取摄像机信息。 处...

网友评论

      本文标题:ARFrame

      本文链接:https://www.haomeiwen.com/subject/rgumdjtx.html