倾斜影像区块化自动整理方法研究与实现

2020-06-06 13:55王皎
山东国土资源 2020年6期
关键词:实景高精度整理

王皎

(山东省国土测绘院,山东 济南 250101)

0 引言

近年来无人机倾斜摄影技术得到了迅猛的发展,利用无人机倾斜摄影进行实景三维重建已成为自然资源调查监测、建筑施工、高精度农村房产一体化测量的创新技术手段。特别是消费级无人机倾斜摄影[1],在不依赖于POS精度的软件环境下,结合LiDar融合、环绕拍摄等多源数据融合技术[2-3],不仅能够真实地反映地物情况,而且能提供一系列地物信息。国外较早研制成功的大型倾斜航摄仪有德国的Penta-DigiCam、美国的AOS和以色列的A3等系统,随后国内相继研发了SWDC-5、AMC580、TOPDC-5等系统[4],但主要用于大面积倾斜实景三维重建。由于航速及航高限制,精度一般在±20cm~±60cm,较难满足高精度测绘要求。随着国内多旋翼无人机及小型倾斜相机的发展,模型精度得到极大提高,但普通多旋翼无人机体积大、操作难度高、价格昂贵限制了其使用范围,而目前消费级无人机多配备三轴自稳云台相机,具有操作简便、小巧灵活价格低廉等特点。已成为一种新型的快速获取对地光学影像的平台[5]。但消费级无人机高精度倾斜摄影,数据量大,冗余复杂的多视角、影像数据带来了较大的人工内业整理工作量,为解决这一难题,该文提出了一种倾斜影像区块化自动整理方法,以解决繁杂的前期工序。

1 方案介绍

1.1 传统倾斜影像整理方法

普通无人机倾斜摄影一般搭载五镜头、摇摆式两镜头,通过执行单一航飞设计来获取多视角倾斜影像。倾斜影像一般存储于不同视角相机的内存卡上,通常带有低精度POS。而消费级无人机则搭载单镜头通过执行多个航线设计来获取多个视角倾斜影像,所有影像存储于一张数据卡上,没有单独的POS信息,影像名称按序递增排列。但倾斜影像整理规范要求,应按摄区代号(5位)+分区号(2位)+航线号(3位)+相机号(2位)+影像航线流水号(4位),共计16位组成,后续数据整理面临着按规范命名、无效片剔除、航线号赋值、送审片选取、影像旋转、片号注记、十字丝标记等繁杂工序。传统倾斜影像整理需要人工将下载照片、分类(如前视、后视、左视、右视、下视),然后通过第三方软件提取照片拍摄点位,制作曝光点轨迹,但消费级无人机像幅小、无单独POS文件,如要在ContextCapture下制作高精度实景三维模型,为避免影像名称冲突和便于像控点片规范选取,对海量的多视角影像进行分类、重命名、挑片选片的工作更加复杂,人工劳动强度大,容易疏漏,数据整理更加繁琐。

1.2 倾斜影像区块化自动整理方法

Context Capture是基于图形运算单元GPU快速三维建模软件,可以将多种源数据、分辨率、任意数据量的照片转化为高分辨率带有图像纹理的三维网格模型。该文通过研究消费级无人机倾斜摄影特点及ContextCapture建模步骤[6]发现,利用倾斜影像Excel信息表可方便地将倾斜影像数据导入ContextCapture进行空三解算,具体包含影像名称、路径、类型、GPS信息、视角分类、拍摄姿态等信息。通过精心的研究和试验,该文基于C#编制了区块化倾斜影像信息表批量自动化整理程序,将前期多项工序通过程序自动实现,关键技术如下:

(1)多视角倾斜影像自动分类及重命名。消费级无人机所有视角照片按拍摄流水号依次存储于一张内存卡上,海量照片无法同大型倾斜摄影装备,自动按视角分类,该文利用消费级无人机照片内嵌EXIF信息,主要包含曝光点GPS位置信息、飞行器X、Y轴速度、拍摄云台姿态信息等,以及视角切换曝光拐点与断点续航曝光拐点的空间、时间逻辑关系实现海量多视角航片的自动分类。规范化的高精度倾斜摄影航片曝光间隔一般在秒级,视角切换或是断点续航间隔一般在分钟级,因而可根据曝光点之间的时间间隔筛选出倾斜摄影视角切换及断点续航拐点,然后再利用曝光点与上下帧之间的空间位置关系,剔除断点续航拐点,保留视角切换拐点,记录片号,完成影像自动分组。视角切换与断点续航拐点航线逻辑关系如图1所示:

图1 倾斜摄影视角切换与断点续航拐点时空关系逻辑示意图

自动分类后倾斜影像组名及重命名主要代码实现如下:

……

switch (dinfo.Name) {

case "前视":CameraFlag = "A"; break;

case "右视":CameraFlag = "B"; break;

case "左视":CameraFlag = "C"; break;

case "后视":CameraFlag = "D"; break;

case "下视":CameraFlag = "E"; break; }

Computer my_computer = new Computer();

string newname = CameraFlag + string.Format("{0:D4}", i);

……

my_computer.FileSystem.RenameFile(finfo.FullName, my_newname)

(2)倾斜影像GPS信息读取。消费级无人机影像GPS信息存储于Exif中,不同于名称、大小、类型等属性通过程序可直接读取,该文基于VS 2019创建了Exif读取类库,以便读取倾斜影像Exif-GPS属性,关键语句如下:

public String FGPS(String PicPath,out string _lat,out string _lon,out string _alt)

//定义Exif-GPS读取语句

……

case 0x0006:

if (objItem.Value.Length == 8){

double dblAltitude = BitConverter.ToUInt32(objItem.Value, 0) * 1.0d / BitConverter.ToUInt32(objItem.Value, 4);

alt = dblAltitude.ToString();}//高程读取语句

……

(3)Excel倾斜影像信息表。将自动分组及重命名后的倾斜影像信息按特定格式写入倾斜影像信息表模板,关键代码如下:

if (folder is DirectoryInfo)//如果是文件夹{

DirectoryInfo dinfo = new DirectoryInfo(folder.FullName);

FileSystemInfo[] fsinfos = dinfo.GetFileSystemInfos();

nub = 0;

for (int i = 0; i < (fsinfos.Count()); i++){

if (fsinfos[i] is DirectoryInfo) {

string modelExcel = folder.FullName + "" + "BlockImport_WURENJI.xlsx";//模板路径

excel.Application excel = new excel.Application();

object missing = System.Reflection.Missing.Value;

excel.Workbook wookbook = excel.Application.Workbooks.Open(modelExcel, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);

excel.Worksheet worksheet = (excel.Worksheet)wookbook.Worksheets[2]; //调用模板

DirectoryInfo my_info = new DirectoryInfo(fsinfos[i].FullName);

switch (my_info.Name) {//视角分类

case "前视":CameraFlag = "A";break;

case "右视":CameraFlag = "B";break;

case "左视":CameraFlag = "C";break;

case "后视":CameraFlag = "D";break;

case "下视":CameraFlag = "E";break;}

FileSystemInfo[] fs = my_info.GetFileSystemInfos("*.JPG");

for (int j = 0; j < (fs.Count()); j++){

FileInfo finfo = new FileInfo(fs[j].FullName);

……

FGPS(PicPath, out string my_lat, out string my_lon, out string my_alt);//EXIF类调用

worksheet.Cells[nub + 2, 1] = my_newname.Substring(0, my_newname.LastIndexOf("."));

worksheet.Cells[nub + 2, 2] = my_pitch;

worksheet.Cells[nub + 2, 3] = my_roll;

worksheet.Cells[nub + 2, 4] = my_heading;

worksheet.Cells[nub + 2, 5] = my_alt;

worksheet.Cells[nub + 2, 6] = my_lat;

worksheet.Cells[nub + 2, 7] = my_lon;

worksheet.Cells[nub + 2, 8] = CameraFlag;

worksheet.Cells[nub + 2, 9] = my_info.FullName;

worksheet.Cells[nub + 2, 10]= finfo.Extension;

……

nub = nub + 1;

this.toolStripProgressBar1.Value = nub; }

(4)曝光点轨迹制作。为了控制片选取方便及外业像控点导航需求,该文创建并引用了带有影像链接、片号、特定图标的模板,自动生成曝光点轨迹,效果如图2所示。在移动设备上不仅可查看点位信息还可同时浏览对应影像,示例代码如下:

图2 前杨岗村高精度实景三维及控制片自动选取

string modelpath = path + "" + "Model.kml";//引用模板

……

model[8 * (t + 1) + 34]= " Unknown Point Feature]]>";

//定义点位图片对应的倾斜影像 ……model[8 * (t + 1) + 38]= " ";//写入点位坐标信息

File.WriteAllLines(M_path,model);

2 前杨岗村倾斜影像数据整理实例

2.1 实例简介

前期多次探索的基础上,在滕州前杨岗村,采用大疆精灵4 Pro V2.0消费级无人机成功进行了高精度倾斜摄影。前杨岗村100余户,面积约0.1km2,村貌良好,户型较一般村庄复杂,檐廊、连户房较多。首先,根据实地情况进行航摄方案设计[7],采用单镜头超低空五航线航拍(下视、前视、后视、左视、右视),航高44m,影像分辨率约1.2cm(据下视计算),旁向重叠度85%,航向重叠度85%[8],然后进行靶标布设。靶标控制点采用“L”设计,容易区分内外角等特征信息,布设于村庄主路面,间距100~150m,大小20cm×20cm。采用简易三脚架对中杆,莱卡RTK进行30秒观测,统一采集外角。因影像分辨率较高,必要时也可采集村庄地面其他特征信息。再者在Context Capture软件下进行高精度实景三维建模。数据导入ContextCapture建模软件之前,需要对航片进行视角分类、无效片剔除、按规范重命名、影像信息表、曝光点轨迹制作等。

2.2 效率分析及精度验证

前杨岗村共获取高分辨率多视角影像4026张,分别采用了人工及自动化整理程序进行整理。其中人工耗时1d,主要耗时集中在海量数据的视角分类、无效片剔除以及区块化影像信息表人工信息录入等工序,而自动化整理程序耗时30min,自动完成前期多项工序,效率对比如表1所示,整理程序及影像信息表如图3所示:

表1 倾斜影像整理效率对比

为验证经倾斜影像区块化自动整理方法整理后的数据是否对实景三维建模精度带来的影响,该文利用莱卡免棱镜全站仪实测了共计44个房屋角点及分户界址点,与实景三维解析同名点进行了精度比对,如表2所示:

图3 倾斜影像区块化自动整理程序及倾斜影像信息表

表2 三维测图精度统计

注:X检,Y检为全站仪实测坐标;X图,Y图为实景三维解析坐标;ΔX,ΔY为实测坐标与解析坐标偏差值。

综上所述,基于消费级无人机的倾斜影像区块化自动整理方法,实景三维建模质量可以满足高精度三维测图精度要求,相比传统人工手动信息录入模式,工作强度极大减少,错误率得到有效控制[9-11]。利用轻型无人机航空摄影系统实现三维全景地图生产,生产方式方便、高效且质量较好,为三维地籍系统建设、农村区域房地一体化建设及地理省情监测与基础测绘带来了创新途径[12-15]。轻小型消费级无人机低空操控、灵活性强[16],且自动避障和失联返航功能都相对成熟,结合多源数据融合及实景三维模型处理技术[17],有效提高了实景三维建模的效率和精细程度[18]。

3 结语

倾斜影像区块化自动整理程序简化了冗余复杂的倾斜影像整理过程,缩短了高精度实景三维建模周期,满足高精度测绘要求,不仅适用于消费级无人机倾斜摄影,对大型旋翼、固定翼无人机倾斜摄影、正射影像的整理、丢片查找同样适用,并可实现多区块批量处理,极大降低了人工劳动强度,而且数据整理减小了对外业航摄人员的依赖程度,更容易实现内外业分离,规模化作业,将为“实景三维中国”建设提供强有力技术支撑。

猜你喜欢
实景高精度整理
金湖县创新“实景式”培训 提升精准执法水平
数字博物馆 线上实景游
基于Niosll高精度超声波流量计的研究
高精度PWM式DAC开发与设计
高精度PWM式DAC开发与设计
高抗扰高精度无人机着舰纵向飞行控制
论山水实景剧与山水实景演出的区别
基于STM32的高精度电子秤设计
高一零碎知识整理
论高职旅游教学中的实景教学