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

车路云-设备数据坐标转换

设备数据坐标转换

  • 一、摄像机目标像素坐标转地理位置坐标
    • 1.1 相机标定&路口标定
    • 1.2 像素坐标转地理位置坐标
  • 二、毫米波雷达目标位置转地理位置坐标
  • 三、WGS84&UTM&GCJ02坐标系

一、摄像机目标像素坐标转地理位置坐标

1.1 相机标定&路口标定

  • 使用棋盘格标定板采集多张图片,用于求解相机内参矩阵和畸变系数。
  • 使用RTK设备打点路口不同位置的经纬度,用于求解坐标转换的单应性矩阵。

1.2 像素坐标转地理位置坐标

需要使用到的的配置信息:相机内参矩阵、相机畸变系数、路口单应性矩阵

    1. 转换为齐次坐标:
    • 人为构造一个值恒为1的坐标纬度,方便后续参与单应性矩阵计算。
    • 将目标检测得出的检测框角点坐标进行齐次化,即将左上角、左下角、右上角、右下角等坐标值转换为xys形式构成一个3*N(N为框角点个数)的目标角点齐次坐标。
    detect_obj_box[0]=x1;// leftdetect_obj_box[1]=y1;// topdetect_obj_box[2]=x2;// rightdetect_obj_box[3]=y2;// bottom// 左上角的点 (取y坐标的20%位置,避免取到车顶)obj_pixel_xys_mat.at<double>(0,4*i+0)=detect_obj_box[0];// xobj_pixel_xys_mat.at<double>(1,4*i+0)=detect_obj_box[1]*0.2+detect_obj_box[3]*0.8;// yobj_pixel_xys_mat.at<double>(2,4*i+0)=1;// 齐次坐标: 人为构造一个值恒为1的坐标,方便后续参与单应性矩阵计算// 左下角的点obj_pixel_xys_mat.at<double>(0,4*i+1)=detect_obj_boxes[i][0];obj_pixel_xys_mat.at<double>(1,4*i+1)=detect_obj_boxes[i][3];obj_pixel_xys_mat.at<double>(2,4*i+1)=1;
    1. 利用相机的内参进行畸变校正(可选)
    • 相机内参矩阵和畸变系数都是通过棋盘格标定板工具采集数据计算出来的。

    • 相机的内参通常是纬度为3*3的矩阵。

    • 如果不进行内参畸变矫正,则位于图片边缘位置的目标经纬度计算会有较大误差 。

    • internal_mtx_vector:相机内参矩阵(3*3)

    • internal_dist_vector:相机畸变系数

      • 大多数工业相机、普通镜头等畸变不太严重的情况,一般采取5个 (k1,k2,k3,p1,p2)畸变系数;使用更多系数可能导致过拟合。
      • 鱼眼镜头、广角镜头等畸变严重的情况,会采取8个 (k1-k6,p1,p2)畸变系数。
    1. 执行单应性矩阵变换
    • 单应性矩阵是通过RTK设备采集真实参考点的物理经纬度计算出来的。
    • 单应性变换是透视变换,包含旋转、平移、缩放、透视畸变。
    • 单应性矩阵的纬度也是3*3;是通过相机标定计算得出来的矩阵。
    • 将经过内参矫正后的目标框角点齐次坐标矩阵(3N)与单应性矩阵(33)进行矩阵乘法计算,得到透视信息矩阵(3*N)。
    • 将带有透视信息的齐次坐标矩阵转换为笛卡尔坐标矩阵,即对齐次坐标(x,y,w)进行透视归一化。
    // 单应性矩阵乘以齐次坐标矩阵得到结果矩阵Mat rst_mat=my_homo_mat*obj_pixel_xys_mat;// 齐次坐标转为笛卡尔坐标:根据结果矩阵中透视信息进行归一化rst_mat.row(0)=rst_mat.row(0)/rst_mat.row(2);rst_mat.row(1)=rst_mat.row(1)/rst_mat.row(2);
    1. 计算目标的经纬度
    • 将透视变换后的笛卡尔坐标转为世界坐标中的经纬度。
    • base_num: 标定时对经纬度坐标的放大倍数,通常为1000*1000。经纬度坐标通常是小数值(如 120.123456, 30.654321 ),直接用于单应性矩阵标定会导致:浮点数运算精度不够;矩阵条件数差,影响求解稳定性。因此在标定时通常会放大标定的经纬度后,再用于求解单应性矩阵。再计算实际经纬度时需要缩小对应倍数。
    • base_lng/base_lat:单应性矩阵标定时所选定的坐标系原点的经纬度,即标定坐标系的零点
      • 标定点坐标 = (标定位置实际经度 - base_lng) × base_num
      • 如果标定时以相机位置为原点,则为设备安装位置
      • 选取路口中心、道路起点等区域的某个参考点作为base_lng或base_lat
      • 选取标定板的某个角点作为base_lng或base_lat
    • 实际经度 = base_lng + (变换结果 / base_num)
    // 获取变换后的目标4个角点经纬度,此时的经纬度是放大后的经纬度doublelng1_last=rst_mat.at<double>(0,4*i+0);doublelat1_last=rst_mat.at<double>(1,4*i+0);doublelng2_last=rst_mat.at<double>(0,4*i+1);doublelat2_last=rst_mat.at<double>(1,4*i+1);doublelng3_last=rst_mat.at<double>(0,4*i+2);doublelat3_last=rst_mat.at<double>(1,4*i+2);doublelng4_last=rst_mat.at<double>(0,4*i+3);doublelat4_last=rst_mat.at<double>(1,4*i+3);//计算目标中心点的实际经纬度:基准经纬度+还原标定放大倍数后的经纬度doublecenter_lng=base_lng+(lng1_last+lng2_last+lng3_last+lng4_last)/4/base_num;doublecenter_lat=base_lat+(lat1_last+lat2_last+lat3_last+lat4_last)/4/base_num;//计算目标框4个角点的实际经纬度doublelng1=base_lng+(lng1_last/base_num);doublelat1=base_lat+(lat1_last/base_num);

二、毫米波雷达目标位置转地理位置坐标

  • device_north_deviation_angle:设备正北偏转角。
  • device_lng / device_lat:设备经度、纬度。

三、WGS84&UTM&GCJ02坐标系

属性WGS84UTMGCJ02
坐标系类型地理坐标系(球面) / 大地坐标系投影坐标系(平面) / 横轴墨卡托投影加密地理坐标系 / 火星坐标系
别名WGS 84 / GCS_WGS_1984UTM投影 / 通用横轴墨卡托投影国测局坐标系 / 火星坐标系(GCJ-02)
坐标单位经度/纬度(°)东距/北距(米,m),需指定带号与半球经度/纬度(°)
坐标表示(经度, 纬度)带号 + (东距, 北距)(加密经度, 加密纬度)
全球适用性全球通用分带覆盖(全球除两极,共60个带)仅限中国大陆及周边(强制要求)
主要用途全球卫星导航系统(GPS/北斗)基准国际地理数据标准(如GIS数据库)航空航天定位与导航科学研究(气象、地质等)工程测量(土地测绘、建筑施工)军事与国防(精确打击、后勤部署)大比例尺地图制作(如1:5000地形图)资源管理(林业、农业规划)中国境内所有公开出版地图的法定坐标系(如高德、腾讯、百度地图)涉及国家地理信息安全的应用(如国土调查、城市规划)位置服务(LBS)合规性要求(如共享单车、物流配送)
使用场景/设备GPS/北斗接收设备智能手机(原生定位数据)无人机与自动驾驶系统科研设备(气象监测站、地质勘探仪)全站仪、RTK测量仪军事作战指挥系统户外导航设备(如Garmin手持机)GIS软件(如ArcGIS、QGIS)国内导航APP(需将WGS84坐标转换后使用)车载导航系统(合规设备)测绘院官方地图服务政府GIS平台
转换特性- 基准坐标系,与其他系可互转 - 与UTM:数学投影(可逆、精确)- 与WGS84互转需指定带号 - 投影变形小,适用于局部- 由WGS84经非线性加密偏移生成 - 正向转换精确,逆向转换存在误差(需迭代近似)
关键特点国际标准,无偏移分带管理,坐标以米为单位,便于量测中国法定要求,偏移量可达数百米,保障地理信息安全
http://www.cnnetsun.cn/news/1673750.html

相关文章:

  • cursor ctrl+方法跳转
  • 你的微信记忆银行:三分钟学会永久保存珍贵聊天记录
  • ModTheSpire终极指南:如何为《杀戮尖塔》打造无限扩展的游戏体验
  • Path of Building高效实战全攻略:从零开始打造流放之路最强角色
  • 5大核心能力打造微信聊天记录管理系统:WeChatMsg实现数据永久保存与深度分析
  • 如何避免机械拼凑式的基金申请书撰写
  • 2026届毕业生推荐的十大AI写作助手推荐榜单
  • MDM主数据体系核心功能点
  • 让ai思考部署策略:使用快马平台智能生成适配网站的openclaw配置
  • Android智能图像识别自动点击器:告别坐标依赖,拥抱视觉自动化
  • 基于TMS320F28033的20MHz手持式双踪袖珍示波器设计与实现
  • 架构实战:清洁机器人梯控系统技术路线对比与非侵入式状态机设计
  • 项目经理的最高境界,是学会“睁一只眼闭一只眼”
  • Mermaid Live Editor:在线图表编辑器的终极解决方案,快速创建专业图表
  • 让大模型学会“开卷考试”:一文看懂什么是 RAG
  • AGPBI警告
  • kill-doc:高效文档下载的智能自动化解决方案
  • 颈椎病引起手臂疼?别乱揉,这样治才管用
  • Qt 并发编程进阶:QtConcurrent 处理大数据集的优雅之道
  • 7个实用技巧彻底掌握eSpeak-NG文本转语音引擎
  • WarcraftHelper优化工具:3大核心突破让经典游戏焕新体验
  • 突破跨平台存档困境:XGP-save-extractor让游戏进度实现高效无缝迁移
  • semi-utils智能批处理引擎:照片水印效率革命终极指南
  • cv_unet_image-colorization医疗影像延伸:X光片伪彩色增强辅助诊断可行性探讨
  • Sora被砍,OpenAI腹背受敌
  • Linux驱动三要素之——总线
  • Windows Defender 完全移除指南:释放系统性能,彻底掌控安全组件
  • 一文吃透UUID:原理、版本、实战避坑与选型指南(2026最新)
  • 战舰工具 1.47 逆向分析与授权绕过全记录
  • 数据入库第二章笔记