GCP Marker自动刺点软件测试

本文详述了一次使用GCPMarker软件进行无人机摄影测量自动化刺点的实验过程。通过大疆M300RTK与P1相机在西南某村庄获取高分辨率影像,利用14个像控点进行空三计算。软件在659秒内完成刺点,结果显示所有像控点重投影误差在1像素内,证明了GCPMarker的准确性和实用性,有效减少了内业工作量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇文章简要介绍了我们开发的无人机摄影测量自动化刺点软件"GCP Marker"的各项功能及工作流程。这篇文章使用真实的无人机影像对其进行测试。

本次实验以西南地区某村庄为测量对象,使用大疆M300 RTK搭载P1相机进行倾斜摄影测量,航高为130m,此时地面分辨率为1.75cm/pixel,共计飞行32分钟,拍摄影像859张。在无人机起飞前使用红色油漆绘制14个L型像控点,均匀分布在测区内。其航线规划及像控点分布如图所示。

将无人机影像及像控点坐标文件导入GCP Marker软件后进行自动刺点,共耗时659秒即可完成所有刺点,并生成相应的刺点文件。GCP Marker软件的自动刺点效果如图所示,其中右下角视图中的蓝色小点为软件自动刺点的结果。

将刺点文件导入Metashape软件后即可完成自动刺点。将像控点中的7个作为控制点,另外7个作为检查点,然后进行高精度空三计算后得到精度报告如下图所示:

将刺点文件导入Pix4D软件后进行空三处理,得到空三精度报告如图所示:

将刺点文件导入ContextCapture中后进行空三计算,得到空三精度报告如图所示:

 

 可见所有像控点的重投影误差均在1个像素内,由此证明GCP Marker软件的刺点准确性。另外,由于该软件避免了人工刺点,能够极大地减少航测内业工作量,将内业人员从枯燥重复的刺点工作中解放出来,具有很强的实用性。

### 如何在Metashape (以前称为Photoscan) 中手动添加控制 #### 工具概述 Metashape 是一款功能强大的三维建模软件,能够通过多视图几何技术将二维照片转化为高精度的三维模型[^2]。为了提高地理定位的准确性,在处理无人机航拍照片时通常会引入地面控制(Ground Control Points, GCPs)。这些控制用于校正模型的空间位置和比例。 --- #### 手动添加控制的操作方法 1. **导入项目数据** 首先确保已成功导入所有航拍照片并完成初始对齐操作。如果尚未执行此步骤,则需运行“Align Photos”命令来生成稀疏云[^1]。 2. **打开标记工具** 转至菜单栏中的 `Tools` -> `Markers` 或者直接击界面右侧的 “Markers” 面板以显示现有标志列表以及创建新标志的功能选项卡。 3. **定义新的控制** 在左侧树状结构下的“Chunk”节右键单击选择新建 Marker (`Add New Marker`) ,或者利用快捷方式 Ctrl+D 来快速增加一个新的未命名 marker 。此时屏幕上会出现十字准线提示你选取目标区域内的特征作为候选对象之一。 4. **标注多个视角下相同的位置** 对于每一个选定的实际物理地标(即GCP),都需要找到它出现在不同角度拍摄的照片里,并逐一进行标记关联工作。具体做法如下: - 切换当前活动图像直到发现下一个包含该兴趣区的新视角; - 使用鼠标拖拽移动十字光标精确放置到对应像素级坐标处; - 双击确认绑定关系或将键盘焦移回主窗口按 Enter 键提交更改。 5. **输入真实世界坐标值** 当所有的视觉匹配完成后,最后一步就是赋予这个虚拟marker确切的世界空间参数。选中刚刚建立起来的那个特定entry项之后,在属性编辑框旁边可以看到XYZ字段等待填充。按照实际测量得到的数据依次填入经度、纬度还有高度数值即可完成整个过程。 6. **优化相机与调整模型** 完成全部GCP设置以后,应该重新计算摄像机姿态并通过再次调用`Optimize Cameras` 功能进一步细化整体构型质量;随后还可以考虑应用额外约束条件比如固定缩放因子之类的措施增强最终成果可靠性。 7. **导出修正后的文件** 经过上述一系列操作之后所得产品已经具备较高的绝对地理位置参照意义了,可以将其保存下来供后续分析使用或者是分享给其他相关人员审阅评估。 ```python # 示例 Python 脚本片段展示如何批量加载 CSV 文件格式存储的 GCP 数据 import csv from pathlib import Path def load_gcps_from_csv(file_path: str): gcps = [] with open(Path(file_path), 'r') as f: reader = csv.DictReader(f) for row in reader: gcp_name = row['Name'] lat = float(row['Latitude']) lon = float(row['Longitude']) alt = float(row['Altitude']) # 创建 GCP 并附加其地理坐标 new_gcp = { "name": gcp_name, "coordinates": (lat, lon, alt), } gcps.append(new_gcp) return gcps ``` --- #### 注意事项 - 确保每张图片都有足够的重叠部分以便准确识别共同特征。 - 尽量均匀分布各个方向上的观测角度从而获得更加稳健的结果估计。 - 如果可能的话尽量采用高质量打印版靶纸形式制作标准样式的参考物代替自然环境里的随机物体充当人工设定好的定依据材料。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值