推荐星级:
- 1
- 2
- 3
- 4
- 5
基于Python的无人机影像定位信息处理技术
资料介绍
影像定位信息处理是无人机数据处理的一项重要工作内容,针对常规影像的定位信息处理的不足,提出了以Exif信息为基础的影像GPS定位信息处理方法,并通过Python对该方法进行了程序实现,提高了无人机影像数据处理的工作效率。
部分文件列表
文件名 | 大小 |
基于Python的无人机影像定位信息处理技术.pdf | 2M |
部分页面预览
(完整内容请下载后查看)2018
10
Oct.2018
No.5
年
月
城
市
勘
测
5
Urban Geotechnical Investigation & Surveying
第
期
- - -
: 1672 8262( 2018) 05 63 04
: P209
: B
文献标识码
文章编号
中图分类号
Python
基于
的无人机影像定位信息处理技术
*
, , ,
余咏胜 易桂轩 尹言军 高雅冰
(
,
武汉市测绘研究院 湖北 武汉
430022)
: , ,
要 影像定位信息处理是无人机数据处理的一项重要工作内容 针对常规影像的定位信息处理的不足 提出了以
摘
Exif
GPS
,
定位信息处理方法 并通过
Python
,
对该方法进行了程序实现 提高了无人机影像数据处
信息为基础的影像
。
理的工作效率
: ;
关键词 无人机 影像处理
; Exif
; Python; GPS
信息
, Windows
件中 在
系统中可以通过文件属性查看图像
1
引 言
Exif
。
的详细
信息
, ,
近年来 无人机航空摄影技术发展迅速 因其具有
JPEG
, ,
文件为例 影像文件由标记块组成 每个
以
、 、 ,
精度高 速度快 成本低等优势 已成为空间数据获取
2
标记块由 字节标记码
0xFFXX
,
标记描述信息 所有
( SOI) ,
表 示 图 像 开 始
, 、 、
的一种重要手段 在城市规划 国土资源管理 农林监
[1]
JPEG 0xFFD8
文 件 都 是 以
0xFFD9
表示图像结束
、
。
测 灾害应急等诸多领域广泛应用
采用无人机设
备进行航空摄影时 部分数码相机可以直接获取摄影
GPS
( EOI) ,
其中
0xFFE0 ~ 0xFFEF
,
。JPEG
之间的标记称为应用标记
文件常用的应用标
APP0( 0xFFE0)
应
,
时
定位信息 也有较多相机不能直接获取定位信
Jfif Exif ,Jfif
记有
用标记来插入数码相机的配置信息和缩略图信息 为
Jfif ,Exif APP1( 0xFFE1)
和
两种类型
使用
,
息 需要辅助
POS
等相关设备才能得到摄影时的位置
,
。 ,
和姿态信息 对于后一种情况 一般需要作业员根据
了避免与
信息冲突
标记记录的摄影信息更加全面 目前除
Jfif
使用
来标
。
需要将影像和定位信息进行关联处理
POS
。Exif
,
记信息
部分老式数码相机采用
Exif
,
数据是以文本文件方式提供 作业员需
通常
,
应用标记外 主流的数码
要根据不同的无人机数据处理系统所要求的数据格式
。
相机均使用
规范来存储摄影相关参数信息
,
进行整理 将指定路径下影像文件和定位信息逐一关
Exif
IFD ,APP1
信息以
IFD
结构方式保存
应用标记中
用来存储主图的元数据信
。IFD0
, 、
联 输入的任何字符遗漏 大小写错误或路径变更等问
2
: IFD0
包含
个
结构
用来存储缩略图的元数据信息
Sub IFD
, ,
题都会导致数据导入失败 需要反复检查修改 给后续
,IFD1
息
除了包
。
无人机影像自动化处理工作带来极大不便 本文针对
,
( In-
项 包含
GPS IFD
含常规摄影参数信息外 还包括
,
Exif
这些问题 提出了基于
信息的无人机影像定位信
Python
环境下对该数据处理方法进
teroperability IFD MakerNote IFD
和
)
子项 和
,
息处理方法 并在
,
项 其中
GPS IFD
项就是用来存储图像的
GPS
定位相
信息的标签值 字段名称和类型等参数如
Exif
。
行了程序实现
,GPS
、
关信息
1
。
,
表
所示 部分无人机摄影时 数码相机可通过
2
Exif
信息
图像文件的
GPS
。
相关信息
信息直接记录摄影瞬间影像的
Exif
Exchangeable Image File (
是
可 交换 图 像 文
( JEIDA)
GPS
1
属性信息表
表
) ,
件 的缩写 它是由日本电子工业发展协会
制
标签值
字段名称
字段类型
数量
,
定的相机文件设计标准 用来记录摄影时的各种状态
0xFF00
0xFF01
0xFF02
0xFF03
0xFF04
0xFF05
GPSVersionID
GPSLatitudeRef
GPSLatitude
4
2
3
2
3
1
字节型
字符型
有理型
字符型
有理型
字节型
[2,3]
。Exif
TIFF/JPEG
等图像文件格
参数
信息包含了
, 、 、
式的摄影参数信息 它将摄影时的光圈 快门 白平衡
GPSLongitudeRef
GPSLongitude
GPSAltitudeRef
、 、 、
等参数信息 相机品牌型号 图像尺寸 摄影时间以及
GPS TIFF/JPEG
定位等信息以文件头形式存储在
文
*
: 2018—01—08
收稿日期
:
作者简介 余咏胜
( 1979—) , , , , ,
男 硕士 高级工程师 注册测绘师 主要从事遥感数字图像处理
、GIS
。
数据应用研究与开发工作
-
( PF2015 10)
:
基金项目 精密工程与工业测量国家测绘地理信息局重点实验室开放基金项目
2018
10
月
64
城
市
勘
测
年
1
续表
IFD
, 1
块 并根据表 中的
GPS
属性字段名称获取所需
GPS 。 Python
信息 在
pyexiv2
扩展库的函
0xFF06
GPSAltitude
1
的
中调用
有理型
0xFF07
0xFF08
0xFF09
0xFF0A
0xFF0B
0xFF0C
0xFF0D
0xFF0E
0xFF0F
0xFF10
0xFF11
0xFF12
0xFF13
0xFF14
0xFF15
0xFF16
0xFF17
0xFF18
0xFF19
0xFF1A
0xFF1B
0xFF1C
0xFF1D
0xFF1E
0xFF1F
GPSTimeStamp
GPSStatellites
3
有理型
字符型
字符型
字符型
有理型
字符型
有理型
字符型
有理型
字符型
有理型
字符型
字符型
有理型
字符型
有理型
字符型
有理型
字符型
有理型
未定义
未定义
字符型
短整型
有理型
,
数 需要使用以下代码
:
任意
from pyexiv2 import *
GPSStatus
2
GPS
, GP-
信息之前 必须通过
在读取影像文件的
GPSMeasureMode
GPSDOP
2
1
STag
GPS
,
GPS
属
标签判断
性字段名称获取对应的
Exif
信息是否存在 然后根据
GPSSpeedRef
2
GPS
。
定位信息 根据影像文
GPSSpeed
1
、
信息读取摄影时经度 纬度和高程值等信息
件的
GPSTrackRef
2
GPSTrack
1
:
的相关代码如下
GPSImgDirectionRef
GPSImgDirection
GPSMapDatum
2
= + +
dms2deg lambda lst: float( lst[0]) float( lst[1]) /60. float
1
( lst[2]) /3600.
任意
=
im ImageMetadata( r'd: \test.jpg')
GPSDestLatitudeRef
GPSDestLatitude
GPSDestLongitudeRef
GPSDestLongitude
GPSDestBearingRef
GPSDestBearing
GPSDestDistanceRef
GPSDestDistance
GPSProcessingMethod
GPSAreaInformation
GPSDataStamp
2
im.read( )
3
if " Exif.Image.GPSTag" in im.exif_keys:
2
=
lst1 im[" Exif.GPSInfo. GPSLongitude"].value
3
2
=
lng dms2deg( lst1)
=
lst2 im[" Exif.GPSInfo.GPSLatitude"].value
1
=
lat dms2deg( lst2)
2
=
alt float( im[" Exif.GPSInfo. GPSAltitude"].value)
1
任意
任意
11
1
Exif.GPSInfo
通过
标签返回的经纬度数值为度分秒
,
形式的字符串列表 必须将字符串转换为浮点数值后再
,
换算成小数度形式 方便后续矢量要素生成等操作
。
GPSDifferential
GPSHPostioningError
1
,
无人机航空摄影完成后 往往需要快速地将像主
,
点位置叠加到工作底图上 检查航线分布和重叠度等
,
JPEG
值得注意的是 应用标记并不是
图像解码
等图像处理软件编辑
APP1
。
飞行质量 在完成影像文件的
GPS
,
信息提取后 还需
,
的必要标记信息 通过
Photoshop
ESRI Shapefile
,
文件 方便后续检
要将定位信息转换成
APP0
,
过的影像可能会删除
或
标记 同时插入
,
查处理 相关代码如下
:
APP2( ICC ) 、APP13( Photoshop IRB
色彩配置
) 、APP14( Adobe
图像资
import arcpy
) ,
标识 等应用标记 从而造成
Jfif/
源
arcpy.CreateFeatureclass_ management ( ' d: \ \ ',' test. shp ','
point')
Exif
。
信息的丢失
=
rows arcpy.da.InsertCursor( shpPathName,[" SHAPE@ " ])
rows.insertRow( [[lng,lat]])
3
Python
的定位信息处理
基于
del rows
Python
,
是一种面向对象的解释型程序设计语言
,
以上代码仅完成了单幅影像经纬度坐标的写入
1991
,
年 经过二十多年的发展
,Py-
首次公开发行是
thon
,
对于多幅航空影像 只需要进行一次简单的循环遍历
。
ArcGIS 9
已成为广泛应用的编程语言之一
,Python ArcObject
空间处理框架的脚本
从
。
Shapefile
,
文件中 还可以将
即可完成所有的操作
在
开始
作为使用
、 、
影像文件名 高程值 摄影时间等相关信息作为属性字
语言与软件其他组件一起自动安装到计算机系统
, 、
段加入矢量文件中 使检查工作更加便捷 高效
。
[4]
。Python
上
程序不需要像其他编程语言那样编译成
3. 2
GPS
信息写入影像文件
将
,
二进制代码即可运行 同时还可以通过标准库和第三
,
很多情况下 无人机摄影获取的影像数据没有附
,ArcGIS
方扩展库拓展其应用领域
Python 2. 7
软件缺省安装的
GPS
,
信息 相关定位信息通常以文本文件形式单独
加
。
是
版本
提取影像文件的
Python
,
提供 给后续的影像位置关联和数据处理带来不便
。
3. 1
GPS
信息
Exif
,
对于不包含任何
APP1
信息的影像文件来说 必须先进
IFD0 GPS IFD
结
Exif
在
中操作影像文件的
信息需要使用
,
行
应用标记插入 再将
结构和
++
pyexiv2
,
C
exiv2
的
第三方扩展 该扩展库是
程序库
绑定 用于操作 图像元数据等信
pyexiv2 , GPS
扩展库 程序可以自动定位到
GPS
。
构嵌入影像文件后才能进行
相关信息写入操作
,
Exif、IPTC XMP
和
GPS
Exif
, GPS
标准的一部分 将
标签是
信息写入
。
,
影 像 时 必 须 设 置
GPSLatitude、 GPSLatitudeRef、
息
通过
全部评论(0)