0%

空地融合空三

本文代码:https://github.com/ouwenwu/UAV2GroundMapper.git

一、数据准备

无人机数据

无人机数据图片

手持扫码仪数据

手持扫描仪数据

二、无人机数据处理

Photoscan无人机处理流程

Align Photos->Build Point Cloud

无人机数据处理结果

导出camera.xml和点云备用,需要设置导出格式为blockexchange同时不需要导出tiepoints

photoscan导出camera

导出参数设置

点云导出参数设置

手持激光扫描仪处理流程

RayStudio打开工程文件—-Basic Data解算图片和点云数据

Raystudio解算数据

点云赋色

点云赋色

slam处理结果

RayStudio导出图片使用Photoscan空三

将RayStudio的文件导出图像初始位置

1
python main.py getImageXYZ --colmap_dir J:/jyg/chibi/zhihuilou/outdoor/shading/Colmap/sparse/0/images.txt --output_path J:/jyg/chibi/zhihuilou/outdoor/shading/Colmap/image_xyz.txt

图片路径位于:./image_undistorted/camera_front

Photoscan添加图片后,在Reference(参考页)添加图像位置作为参考,并选择之前输出的图像位置

phtotscan导入参考

可以适量的删除影像(只保留研究区域)以及稀疏影像,当前影像采集频率高于需求,适当减少加快效率,删除后align photos(对齐图片)->Build Point Cloud

手持密集点云

导出camera.xml和点云备用,需要设置导出格式为blockexchange同时不需要导出tiepoints

手持与无人机融合

手持到无人机坐标系统转换

cloudcampare计算变换矩阵

包含粗配准和精配准两个步骤:其中粗配准为手动调整点云使得两个点云具有初步配齐,再使用icp进行精配准.

记录下每一步点云的变换矩阵

旋转平移方法

粗配准结果

裁剪两个点云至相同范围,并做精配准

精配准

记录下每一步的变换矩阵如下:

变换矩阵

将手持坐标系按照变换关系旋转

将无人机的photoscan的xml格式转为colmap格式

1
python main.py from_photoscan_xml_2_colmap_txt --xml_path J:/jyg/test/camera_shouchi.xml --output_path J:/jyg/test/colmap

根据colmap结果计算图像位置

1
python main.py getImageXYZ --colmap_dir J:/jyg/test/colmap --output_path J:/jyg/test/image_xyz.txt

图像位姿

旋转图像位置到无人机的坐标系下:

1
python main.py rotate_image_xyz --image_xyz J:/jyg/test/image_xyz.txt --output_path J:/jyg/test/image_xyz_out.txt --matrix_path J:/jyg/test/matrix.txt

根据旋转后的图像位置去纠正colmap文件到指定坐标系

1
colmap model_aligner --input_path J:/jyg/test/colmap --output_path J:/jyg/test/colmap_rotate --ref_images_path J:/jyg/test/image_xyz_out.txt --alignment_type enu --ref_is_gps 0  --robust_alignment_max_error 3

将旋转后的bin文件转为txt格式

colmap->import model->export model as text

将旋转后的colmap的txt文件,写为photoscan的xml文件

1
python main.py write_colmap_txt_2_photoscan_xml --colmap_txt_path J:/jyg/test/colmap_rotate --output_xml_path J:/jyg/test/camera_shouchi_rotate.xml --image_path J:/jyg/test/20250726162036/image_undistorted/camera_front

融合无人机和手持影像

合并无人机的xml和手持影像的xml

1
python main.py merge_photoscan_xml --xml_lists J:/jyg/test/camera_wrj.xml J:/jyg/test/camera_shouchi_rotate.xml --output_xml_path J:/jyg/test/merged_camera.xml

将xml文件导出为colmap的txt格式

1
2
python main.py from_photoscan_xml_2_colmap_txt --xml_path J:/jyg/test/merged_camera.xml --output_path J:/jyg/test/colmap_m
erge