Ⅰ photoscan中文教程
1、打开软件点击菜单栏“工作流程”,下拉菜单中有“添加照片”、“添加文件夹”选项,分别以选择照片和选择整个文件夹影像方式加入影像,如下图所示:
2、点击“添加照片”,出现如下图界面,可选择需要处理的影像:
3、选择影像后,在下面会出现影像名列表,软件下侧会显示影像缩略图:
4、双击每个缩略图,主窗口显示该张影像的大图,可以查看影像:(有坐标的无人机拍摄直接到10)
5、如果有POS数据,点击左侧窗口“参考”栏中第一个图表,导入POS数据,若没有POS数据可直接跳至步骤十一(POS数据为拍摄每张影像所对应的无人机位置、姿态参数,辅助拼接,拼接后的影像将具有地理坐标信息):
6、点击“导入”后,弹出POS导入窗口,如下图,选择整理好的POS文档即可:
7、POS导入后,选择“WGS84”坐标系统,并将各列数据与表头名称对应:
8、对应好的POS
9、POS数据导入后,界面中将显示POS轨迹,即无人机拍摄照片时所处空间位置:
10、点击“工作流程-对齐照片”:
11、在弹出的对话框中,精度选择“高”,勾选标签后,点击确定:
12、下图自动开始“对齐照片”处理,此过程只需等待,无需操作:
13、处理完成后,会生成三维点云数据,如下图所示:
14、“对齐照片”完成后,点击“优化对齐”:
15、点击“工作流程-建立密集点云”,选择所需要的质量,如下图,质量设置越高,处理速度越慢:
16、点击确定后,系统自动处理,并显示处理进度:
17、处理完成后,生成密集点云数据:
18、选择“工作流程-生成网格”。
19、在弹出的对话框中选择所需要的质量,点击确定,出现以下进度显示界面:
20、处理完成后,生成测区光滑曲面:
21、利用补丁工具对不理想的区域进行替换:
22、在导航栏的工作流程上,build相应的数据。
23、点击“文件-导出正射影像-导出JPEG/TIFF/PNG”,导出拼接后影像(坐标:32637和32650)
24、在弹出的界面中,直接默认设置即可,点击“导出”:
25、点击“导出”后,选择导出路径及导出文件名:
26、点击确定后,开始导出,等待完成后,即可到相应路径下,查看拼接后正射影像。
软件链接:https://pan..com/s/12HQ04Yz35F6WygDe-QJdYA
一、摄影三角测量
1、处理各类图像:航空(最低点,斜)/近距离。
2、自动校准:框架(含鱼眼)/球形摄像机。
3、支持多摄像头项目。
二、点云编辑与分类
1、对准确的结果进行精心的模型编辑。
2、对点分类,定制几何重建。
3、经典的点数据处理工作流程更利于.LAS输出。
三、DSM/DTM
1、数字表面和/或数字地形模型-根据投影。
2、地理参考基于EXIF的元数据或飞行记录的GPS/控制点数据。
3、EPSG记录坐标系支持:WGS84,UTM,等等。
四、真正射影像
1、地理参考:GIS兼容的GeoTIFF格式;谷歌地球的.KML文件。
2、大项目批量输出。
3、对均匀纹理进行颜色校正
五、三维测量
1、内置工具可以测距,测面积、体积
2、对于更复杂的测量分析,PhotoScan可以顺利的导出到外部工具,因为它支持多样的输出格式
六、GCP控制点:高精度测量
1、GCPs控制结果精度
2、编码/非编码的目标自动检测便于控制点的快速输入
3、不用定位设备,利用比例尺工具来设置参考距离
七、二次开发
1、除了批量处理-一个节省人工干预的方法,Python脚本定制选项:
2、几个类似的数据集形成一个参数模板;
3、中间处理结果检查;等等
八、多光谱影像分析
1、RGB/近红外光谱/热/多光谱图像处理。
2、基于更好的渠道的快速重建。
3、多通道正射影像输出方便进一步的归一化植被指数计算和分析。
九、精细纹理
1、各种场景:考古遗址、文物、建筑物、内饰、人,等等。
2、直接上传Verold和Sketchfab资源。
3、纹理:HDR和多文件,超级详细的可视化。
十、4D时序
1、多相机站数据处理在电影艺术,游戏产业等创建项目。
2、依据大量的视觉效果与时间序列进行3D模型。
十一、全景拼接
1、三维重建的捕获数据来自同一个相机位置——相机站,提供至少2相机站。
2、360°全景拼接为一个相机站数据
十二、分布式和GPU计算
分布式计算在计算机网络中,使用多个节点的联合力量,处理一个项目中在巨大的数据集。
1、空中三角测量
2、生成多边形Mesh网模型(普通/彩色纹理)
3、设置坐标系统
4、生成真实坐标的数字高程模型(DEM)
5、生成真实坐标的正射影像
6、photoscan破解版支持输入格式包括:JEPG、TIFF、PNG、BMP、JEPGMulti-PictureFormat(MPO)
输出格式包括三维建模常见的格式GeoTiff、xyz、GoogleKML、COLLADA、VRML、WavefrontOBJ、PLY、3DSMax、Universal3D、PDF。
一、优点:
1、photoscan破解版支持倾斜影像、多源影像、多光谱影像的自动空三处理
2、支持多航高、多分辨率影像等各类影像的自动空三处理
3、具有影像掩模添加、畸变去除等功能
4、能够顺利处理非常规的航线数据或包含航摄漏洞的数据
5、支持多核、多线程CPU运算,支持CPU加速运算
6、支持数据分块拆分处理,高效快速地处理大数据
7、操作简单,容易掌握
8、处理速度快
二、不足:
1、缺少正射影像编辑修改功能
2、缺少点云环境下量测功能
Ⅱ ICP算法的三维点云算法
三维激光扫描技术的快速发展,使其在各个领域得到广泛应用。由于物理上的一些限制,一次三维激光扫描不能获取扫描物体的全部数据,因此要对扫描点云进行拼接。首先,对最常用的ICP算法进行一系列研究,ICP算法的前提条件是具有一个良好的配准初值,文中在配准初值的选取上采用主成分分析法,为后续ICP算法的工作提供一个良好前提条件,增加点集预处理,点对查找上增加各种限制,采用kd-tree加速查找,以此对算法进行改进,并通过实例来验证本算法的有效性及合理性。
Ⅲ 点云滤波相关
复制于:https://zhuanlan.hu.com/p/102748557
介绍
主要方法
直通滤波(PassThrough 滤波)
VoxelGrid滤波器对点云进行下采样
均匀采样
增采样
statisticalOutlierRemoval滤波器移除离群点
使用参数化模型投影点云
ConditionalRemoval
RadiusOutlinerRemoval 移除离群点
从一个点云中提取索引 根据点云索引提取对应的点云
介绍
点云滤波,顾名思义,就是滤掉噪声。原始采集的点云数据往往包含大量散列点、孤立点,在获取点云数据时 ,由于设备精度,操作者经验环境因素带来的影响,以及电磁波的衍射性,被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中讲不可避免的出现一些噪声。在点云处理流程中滤波处理作为预处理的第一步,对后续的影响比较大,只有在滤波预处理中将噪声点 ,离群点,孔洞,数据压缩等按照后续处理定制,才能够更好的进行配准,特征提取,曲面重建,可视化等后续应用处理。其类似于信号处理中的滤波,
点云滤波方法主要有:
1. 直通滤波器pcl::PassThrough<pcl::PointXYZ> pass
2. 体素格滤波器pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
3. 统计滤波器 pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;
4. 半径滤波器 pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;
5. 双边滤波 pcl::BilateralFilter<pcl::PointXYZ> bf;
该类的实现利用的并非XYZ字段的数据进行,而是利用强度数据进行双边滤波算法的实现,所以在使用该类时点云的类型必须有强度字段,否则无法进行双边滤波处理,双边滤波算法是通过取临近采样点和加权平均来修正当前采样点的位置,从而达到滤波效果,同时也会有选择剔除与当前采样点“差异”太大的相邻采样点,从而保持原特征的目的 。
6. 高斯滤波 pcl::filters::GaussianKernel< PointInT, PointOutT >
是基于高斯核的卷积滤波实现 高斯滤波相当于一个具有平滑性能的低通滤波器
7. 立方体滤波 pcl::CropBox< PointT>
过滤掉在用户给定立方体内的点云数据
8. 封闭曲面滤波 pcl::CropHull< PointT>
过滤在给定三维封闭曲面或二维封闭多边形内部或外部的点云数据
9. 空间剪裁:
pcl::Clipper3D<pcl::PointXYZ>
pcl::BoxClipper3D<pcl::PointXYZ>
pcl::CropBox<pcl::PointXYZ>
pcl::CropHull<pcl::PointXYZ> 剪裁并形成封闭曲面
10. 卷积滤波:实现将两个函数通过数学运算产生第三个函数,可以设定不同的卷积核
pcl::filters::Convolution<PointIn, PointOut>
pcl::filters::ConvolvingKernel<PointInT, PointOutT>
11. 随机采样一致滤波
等,
通常组合使用完成任务。
PCL中点云滤波的方案
点云数据密度不规则需要平滑
因为遮挡等问题造成离群点需要去除
大量数据需要下采样
噪声数据需要去除
对应的方案如下
按照给定的规则限制过滤去除点
通过常用滤波算法修改点的部分属性
对数据进行下采样
去除噪音
直通滤波(PassThrough 滤波)
最简单的一种滤波器,它的作用是过滤掉在指定维度方向上取值不在给定值域内的点。直通滤波器的实现原理如下:首先,指定一个维度以及该维度下的值域,其次,遍历点云中的每个点,判断该点在指定维度上的取值是否在值域内,删除取值不在值域内的点,最后,遍历结束,留下的点即构成滤波后的点云。直通滤波器简单高效,适用于消除背景等操作。
#include <pcl/filters/passthrough.h>
如果使用线结构光扫描的方式采集点云,必然物体沿z向分布较广,
但x,y向的分布处于有限范围内。
此时可使用直通滤波器,确定点云在x或y方向上的范围,
可较快剪除离群点,达到第一步粗处理的目的。
结果:
VoxelGrid滤波器对点云进行下采样
使用体素化网格方法实现下采样,即减少点的数量 减少点云数据,并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用,PCL是实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,容纳后每个体素内用体素中所有点的重心来近似显示体素中其他点,这样该体素内所有点都用一个重心点最终表示,对于所有体素处理后得到的过滤后的点云,这种方法比用体素中心(注意中心和重心)逼近的方法更慢,但是对于采样点对应曲面的表示更为准确。
在网格内减少点数量保证重心位置不变
下采样 同时去除 NAN点
如果使用高分辨率相机等设备对点云进行采集,往往点云会较为密集。
过多的点云数量会对后续分割工作带来困难。
体素格滤波器可以达到向下采样同时不破坏点云本身几何结构的功能。
点云几何结构 不仅是宏观的几何外形,也包括其微观的排列方式,
比如横向相似的尺寸,纵向相同的距离。
随机下采样虽然效率比体素滤波器高,但会破坏点云微观结构.
使用体素化网格方法实现下采样,即减少点的数量 减少点云数据,
并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用,
PCL是实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格,
容纳后每个体素内用体素中所有点的重心来近似显示体素中其他点,
这样该体素内所有点都用一个重心点最终表示,对于所有体素处理后得到的过滤后的点云,
这种方法比用体素中心(注意中心和重心)逼近的方法更慢,但是对于采样点对应曲面的表示更为准确。
结果:
结果不太明显,换一个:
均匀采样 pcl::UniformSampling
这个类基本上是相同的,但它输出的点云索引是选择的关键点,是在计算描述子的常见方式。
原理同体素格 (正方体立体空间内 保留一个点(重心点))
而 均匀采样:半径求体内 保留一个点(重心点)
#include <pcl/filters/uniform_sampling.h>//均匀采样
增采样 setUpsamplingMethod
增采样是一种表面重建方法,当你有比你想象的要少的点云数据时,
增采样可以帮你恢复原有的表面(S),通过内插你目前拥有的点云数据,
这是一个复杂的猜想假设的过程。所以构建的结果不会百分之一百准确,
但有时它是一种可选择的方案。
所以,在你的点云云进行下采样时,一定要保存一份原始数据!
statisticalOutlierRemoval滤波器移除离群点
作用是去除稀疏离群噪点。在采集点云的过程中,由于测量噪声的影响,会引入部分离群噪点,它们在点云空间中分布稀疏。在估算点云局部特征(例如计算采样点处的法向量和曲率变化率)时,这些噪点可能导致错误的计算结果,从而使点云配准等后期处理失败。统计滤波器的主要思想是假设点云中所有的点与其最近的k个邻居点的平均距离满足高斯分布,那么,根据均值和方差可确定一个距离阈值,当某个点与其最近k个点的平均距离大于这个阈值时,判定该点为离群点并去除。统计滤波器的实现原理如下:首先,遍历点云,计算每个点与其最近的k个邻居点之间的平均距离;其次,计算所有平均距离的均值μ与标准差σ,则距离阈值dmax可表示为dmax=μ+α×σ,α是一个常数,可称为比例系数,它取决于邻居点的数目;最后,再次遍历点云,剔除与k个邻居点的平均距离大于dmax的点。
#include <pcl/filters/statistical_outlier_removal.h>
统计滤波器用于去除明显离群点(离群点往往由测量噪声引入)。
其特征是在空间中分布稀疏,可以理解为:每个点都表达一定信息量,
某个区域点越密集则可能信息量越大。噪声信息属于无用信息,信息量较小。
所以离群点表达的信息可以忽略不计。考虑到离群点的特征,
则可以定义某处点云小于某个密度,既点云无效。计算每个点到其最近的k(设定)个点平均距离
。则点云中所有点的距离应构成高斯分布。给定均值与方差,可剔除n个∑之外的点
激光扫描通常会产生密度不均匀的点云数据集,另外测量中的误差也会产生稀疏的离群点,
此时,估计局部点云特征(例如采样点处法向量或曲率变化率)时运算复杂,
这会导致错误的数值,反过来就会导致点云配准等后期的处理失败。
解决办法:对每个点的邻域进行一个统计分析,并修剪掉一些不符合标准的点。
具体方法为在输入数据中对点到临近点的距离分布的计算,对每一个点,
计算它到所有临近点的平均距离(假设得到的结果是一个高斯分布,
其形状是由均值和标准差决定),那么平均距离在标准范围之外的点,
可以被定义为离群点并从数据中去除。
使用参数化模型投影点云
使用参数化模型投影点云
如何将点投影到一个参数化模型上(平面或者球体等),
参数化模型通过一组参数来设定,对于平面来说使用其等式形式。
在PCL中有特定存储常见模型系数的数据结构。
投影前的Z轴都不为0 ,投影之后,打印的结果表明,xy的值都没有改变,z都变为0。所以该投影滤波类就是输入点云和投影模型,输出为投影到模型上之后的点云。
ConditionalRemoval 或 RadiusOutlinerRemoval 移除离群点
ConditionalRemoval 滤波器的理解
可以一次删除满足对输入的点云设定的一个或多个条件指标的所有的数据点
删除点云中不符合用户指定的一个或者多个条件的数据点
RadiusOutlierRemoval移除离群点
一个比较简单常用的方法就是根据空间点半径范围临近点数量来滤波,对应的类名是 RadiusOutlinerRemoval,这个很容易理解,它的滤波思想非常直接,就是在点云数据中,设定每个点一定半径范围内周围至少有足够多的近邻,不满足就会被删除。比如你指定了一个半径d,然后指定该半径内至少有1个邻居,那么下图中只有黄色的点将从点云中删除。如果指定了半径内至少有2个邻居,那么黄色和绿色的点都将从点云中删除。
球半径滤波器与统计滤波器相比更加简单粗暴。
以某点为中心画一个球计算落在该球内的点的数量,当数量大于给定值时,
则保留该点,数量小于给定值则剔除该点。
此算法运行速度快,依序迭代留下的点一定是最密集的,
但是球的半径和球内点的数目都需要人工指定。