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

张开发
2026/4/10 17:14:48 15 分钟阅读

分享文章

车路云-设备数据坐标转换
设备数据坐标转换一、摄像机目标像素坐标转地理位置坐标1.1 相机标定路口标定1.2 像素坐标转地理位置坐标二、毫米波雷达目标位置转地理位置坐标三、WGS84UTMGCJ02坐标系一、摄像机目标像素坐标转地理位置坐标1.1 相机标定路口标定使用棋盘格标定板采集多张图片用于求解相机内参矩阵和畸变系数。使用RTK设备打点路口不同位置的经纬度用于求解坐标转换的单应性矩阵。1.2 像素坐标转地理位置坐标需要使用到的的配置信息相机内参矩阵、相机畸变系数、路口单应性矩阵转换为齐次坐标人为构造一个值恒为1的坐标纬度方便后续参与单应性矩阵计算。将目标检测得出的检测框角点坐标进行齐次化即将左上角、左下角、右上角、右下角等坐标值转换为xys形式构成一个3*NN为框角点个数的目标角点齐次坐标。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.atdouble(0,4*i0)detect_obj_box[0];// xobj_pixel_xys_mat.atdouble(1,4*i0)detect_obj_box[1]*0.2detect_obj_box[3]*0.8;// yobj_pixel_xys_mat.atdouble(2,4*i0)1;// 齐次坐标: 人为构造一个值恒为1的坐标方便后续参与单应性矩阵计算// 左下角的点obj_pixel_xys_mat.atdouble(0,4*i1)detect_obj_boxes[i][0];obj_pixel_xys_mat.atdouble(1,4*i1)detect_obj_boxes[i][3];obj_pixel_xys_mat.atdouble(2,4*i1)1;利用相机的内参进行畸变校正可选相机内参矩阵和畸变系数都是通过棋盘格标定板工具采集数据计算出来的。相机的内参通常是纬度为3*3的矩阵。如果不进行内参畸变矫正则位于图片边缘位置的目标经纬度计算会有较大误差 。internal_mtx_vector相机内参矩阵3*3internal_dist_vector相机畸变系数大多数工业相机、普通镜头等畸变不太严重的情况一般采取5个 (k1,k2,k3,p1,p2)畸变系数使用更多系数可能导致过拟合。鱼眼镜头、广角镜头等畸变严重的情况会采取8个 (k1-k6,p1,p2)畸变系数。执行单应性矩阵变换单应性矩阵是通过RTK设备采集真实参考点的物理经纬度计算出来的。单应性变换是透视变换包含旋转、平移、缩放、透视畸变。单应性矩阵的纬度也是3*3是通过相机标定计算得出来的矩阵。将经过内参矫正后的目标框角点齐次坐标矩阵3N与单应性矩阵(33)进行矩阵乘法计算得到透视信息矩阵3*N。将带有透视信息的齐次坐标矩阵转换为笛卡尔坐标矩阵即对齐次坐标x,y,w进行透视归一化。// 单应性矩阵乘以齐次坐标矩阵得到结果矩阵Mat rst_matmy_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);计算目标的经纬度将透视变换后的笛卡尔坐标转为世界坐标中的经纬度。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_lastrst_mat.atdouble(0,4*i0);doublelat1_lastrst_mat.atdouble(1,4*i0);doublelng2_lastrst_mat.atdouble(0,4*i1);doublelat2_lastrst_mat.atdouble(1,4*i1);doublelng3_lastrst_mat.atdouble(0,4*i2);doublelat3_lastrst_mat.atdouble(1,4*i2);doublelng4_lastrst_mat.atdouble(0,4*i3);doublelat4_lastrst_mat.atdouble(1,4*i3);//计算目标中心点的实际经纬度基准经纬度还原标定放大倍数后的经纬度doublecenter_lngbase_lng(lng1_lastlng2_lastlng3_lastlng4_last)/4/base_num;doublecenter_latbase_lat(lat1_lastlat2_lastlat3_lastlat4_last)/4/base_num;//计算目标框4个角点的实际经纬度doublelng1base_lng(lng1_last/base_num);doublelat1base_lat(lat1_last/base_num);二、毫米波雷达目标位置转地理位置坐标device_north_deviation_angle设备正北偏转角。device_lng / device_lat设备经度、纬度。三、WGS84UTMGCJ02坐标系属性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经非线性加密偏移生成 - 正向转换精确逆向转换存在误差需迭代近似关键特点国际标准无偏移分带管理坐标以米为单位便于量测中国法定要求偏移量可达数百米保障地理信息安全

更多文章