当前位置: 首页 > news >正文

【Camera驱动】GMS测试项中Camera FOV Calibration问题详解

一、基础定义
Camera FOV(Field of View,视场角)是光学成像系统的核心参数,其原理可从以下维度解析:

FOV指镜头捕捉场景的物理范围或角度,通常分为‌水平视场角‌、‌垂直视场角‌和‌对角线视场角‌三种类型‌。在摄影领域,默认FOV常指对角线视场角‌,而医学影像中则直接对应成像平面的物理尺寸(如25cm×25cm)‌

二、核心影响因素

焦距与FOV的数学关系‌
焦距与FOV呈反比:焦距越短,视场角越大(如广角镜头);焦距越长,视场角越小(如长焦镜头)‌

三、基础计算公式

‌通用公式‌(基于三角形几何关系):
FOV=2×arctan⁡(d/2f)其中:dd:传感器尺寸(水平或垂直方向)ff:镜头焦距结果单位为弧度,可转换为角度(1弧度≈57.3°)‌

四、关键参数影响

‌焦距与FOV的反比关系‌
焦距ff越大,FOV越小(长焦镜头视野窄);焦距越小,FOV越大(广角镜头视野广)‌‌传感器尺寸的线性影响‌
相同焦距下,传感器尺寸dd越大(如全画幅 vs. APS-C),FOV越广‌‌物距的间接作用‌
固定焦距下,物距越远,像距越小,FOV越大(但实际影响需通过像距计算)‌

五 FOV修改

9.0是HAL3,请参考下面的方式修改Metadata。

a.向供应商确认sensor信息,需要确认如下图
在这里插入图片描述
镜头宽高:Resolution*Pixel Size

宽(d):5344*1.12=5985 --> 约5.98mm

高(f):4016*1.12=4497 --> 约4.49mm

可能会有误差,可以调整上面标注可调整的数字大小PASS测试项。

b.Camera FOV metadata 参数修改:
有如下方法可调整正确的FOV值。

//CTS FOV:  FOCAL_LENGTH = WIDTH_PIXEL_SIZE / (2 * tan FOV/2)#define WIDTH_PIXEL_SIZE    4.71f    //SENSOR_WIDTH * Unit pixel size(查看datasheet)
#define HEIGHT_PIXEL_SIZE   3.49f    //SENSOR_HEIGHT * Unit pixel size#define FOCAL_LENGTH        6.980f
//config_static_metadata.sensor.xxxx_mipi_raw.hCONFIG_METADATA_BEGIN(MTK_SENSOR_INFO_PHYSICAL_SIZE) // mmCONFIG_ENTRY_VALUE(WIDTH_PIXEL_SIZE, MFLOAT)CONFIG_ENTRY_VALUE(HEIGHT_PIXEL_SIZE, MFLOAT)CONFIG_METADATA_END()//config_request_metadata__.hCONFIG_METADATA_BEGIN(MTK_LENS_FOCAL_LENGTH)//not nullCONFIG_ENTRY_VALUE(FOCAL_LENGTH, MFLOAT)CONFIG_METADATA_END()//config_static_metadata.lens.xxxx_mipi_raw.hCONFIG_METADATA_BEGIN(MTK_LENS_INFO_AVAILABLE_FOCAL_LENGTHS)CONFIG_ENTRY_VALUE(FOCAL_LENGTH, MFLOAT)CONFIG_METADATA_END()//config_static_metadata_request_commonType.hCONFIG_METADATA_BEGIN(MTK_REQUEST_AVAILABLE_REQUEST_KEYS)CONFIG_ENTRY_VALUE(MTK_LENS_FOCAL_LENGTH, MINT32)CONFIG_METADATA_END()CONFIG_METADATA_BEGIN(MTK_REQUEST_AVAILABLE_RESULT_KEYS)CONFIG_ENTRY_VALUE(MTK_LENS_FOCAL_LENGTH, MINT32)CONFIG_METADATA_END()CONFIG_METADATA_BEGIN(MTK_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS)CONFIG_ENTRY_VALUE(MTK_LENS_INFO_AVAILABLE_FOCAL_LENGTHS, MINT32)CONFIG_METADATA_END()
http://www.dtcms.com/a/347551.html

相关文章:

  • ROS机器人运动控制
  • 布偶猫吃什么猫粮比较好?2025猫粮品牌排名
  • 如何创建自己的 Minecraft 世界
  • 8月23号打卡
  • MySql知识梳理之DML语句
  • FL Studio Win版.exe安装教程(直接安装版/详细步骤/附安装包下载)
  • 基于STM32的病房监测系统/环境监测系统/人体健康监测系统
  • 曲面方程的三维可视化:从数学解析到Python实现
  • 分割等和子集
  • React学习(十)
  • 【LeetCode】85. 最大矩形 (暴力枚举)
  • 某铝业智慧工厂网络建设优化方案实践
  • 使用tensorRT10部署yolov5目标检测模型(2)
  • 【深度学习】深度学习中的结构化概率模型:理论、方法与应用
  • Qt从qmake迁移到cmake的记录
  • 【深度学习新浪潮】有哪些工具可以帮助我们对视频进行内容分析和关键信息提取?
  • 从0开始学习Java+AI知识点总结-23.web实战案例(班级和学生增删改查、信息统计)
  • Day58 Java面向对象13 instanceof 和 类型转换
  • 自动化运维Ansible
  • 13.机器学习—— ML特征工程和优化方法
  • CANN安装
  • 电力方向国际期刊推荐
  • 分析 HashMap 源码
  • 《TCP多线程通信代码C语言开发流程解析》
  • redis----hash类型详解
  • 领码方案:新一代页面权限体系全景解析(完整版)
  • Radis安装部署(Linux,Docker)
  • 温度对直线导轨的性能有哪些影响?
  • TypeScript 的泛型(Generics)作用理解
  • 如何优雅解决 OpenCV 分段错误(Segfault):子进程隔离实战