图形学算法
文章平均质量分 82
这里放一些关于图形学算法的的技术博客,涉及模型处理,形状检索,网格重建,开源项目等相关领域。
程序猿老甘
NTU博后,主要研究领域为图形学,计算机视觉,几何分析等。
展开
-
3D高斯溅射:面向三维场景的实时渲染技术
高斯溅射技术一经推出,立刻引起学术界和工业界的广泛关注。相比传统的隐式神经散射场渲染技术,高斯溅射依托椭球空间,显性地表示多目图像的三维空间关系,其计算效率和综合性能均有较大的提升,且更容易理解。可以预见,未来2年针对高斯溅射的应用研究将会迎来爆炸式发展。通过本篇博文,我和大家来一起了解高斯溅射技术,希望对有需要的同学提供一点帮助。原创 2024-02-11 22:14:10 · 8431 阅读 · 0 评论 -
Neural-Pull曲面重建程序配置
前几天一篇曲面重建文章的审稿意见回来了,要求加近三年对比方法。在github上搜了一些项目,大部分的环境都很难配置成功。最后找了一个ICML2021年的点云重建项目作为实验对比。原创 2023-01-07 21:58:36 · 802 阅读 · 3 评论 -
基于Eigen求解线性方程组Ax=b的性能分析
在上一篇博客中,我们介绍了三维人脸参数化方法。在该算法中,涉及到求解线性方程AX=b的问题。这里的A为针对网格的拉普拉斯权重矩阵,规模是比较大的,尺度为N*N,N为网格点数。对于人脸数据,动则10000以上的点数,为线性方程求解带来挑战。Eigen提供了一系列的求解线性方程的解法,本博客就基于人脸参数化方法,对比下这些解法的性能特点,以帮助需要深入了解求解大规模线性方程的同学,选择合适的计算工具。原创 2022-09-05 13:54:58 · 1402 阅读 · 0 评论 -
基于测地距离场的三维人脸参数化方法
三维人脸数据的识别与处理,一直是视觉与图形学领域的热点问题。相对于人脸图像来说,三维人脸数据拥有完整的几何信息,能够支持更加精确的人脸数据分析算法。在进行相关的计算之前,我们希望三维人脸能够有一个统一的表示形式,以准确的界定人脸的区域以及对应的位置,尽可能的消除姿态以及尺度不一致带来的影响。基于该目的,人脸参数化方法被提出。原创 2022-09-02 16:23:44 · 1520 阅读 · 0 评论 -
浅谈调和形状上下文特征HSC对3DSC的改进
在上一篇博客中(浅谈三维形状上下文特征3DSC理论及应用),我们已经介绍了3DSC的设计原理以及实现细节,以及该特征在一定程度上受限于法线估计的缺陷。事实上,在文献[1]中,作者在提出3DSC的同时,也给出了对应的解决方案,以缓解3DSC的内在缺陷,即调和形状上下文特征HSC。今天我们将具体学习一下HSC的原理以及实现。.........原创 2022-06-10 13:59:44 · 634 阅读 · 1 评论 -
浅谈FPFH算法实现原理及其在点云配准中的应用
统计分析方法在看一个点是否为特征点时,除了考虑该点的几何特征,同时还会考虑该点附近的区域,一些几何特征的分布情况。这样做的好处就是避免了一些异常的点被错误识别的情况。其原理在于,一个或少数几个点带有异常值,会破坏特征识别,但是我们分析这些异常点的邻域,对邻域内的点做统计计算,就会显著降低异常权重,使得对该点或者该区域的几何特征表述,更加稳定。FPFH算法正是基于该思想所提出。...原创 2022-04-01 14:39:18 · 18494 阅读 · 19 评论 -
浅谈三维形状上下文特征3DSC理论及应用
在之前的博客中,我们已经介绍过了使用FPFH在点云上建立局部形状描述,实现对点云局部隐曲面几何特征的高效表达(浅谈FPFH算法实现原理及其在点云配准中的应用)。今天,我们将介绍另外一种局部形状描述子: 3DShapeContext (3DSC)。最近上课需要准备这部分内容,本打算找一个现成的博客学习一下了事的。但是看了几个博客,感觉还是差点意思,于是我下载了原始论文,从头读了一遍,将一些原理与实现细节在这篇博客做个展开,希望能够帮助到有需要的同学。...原创 2022-06-09 19:02:37 · 2509 阅读 · 3 评论 -
Nvidia最新三维重建技术Instant-ngp初探
最近逛技术论坛,发现一个牛到了不得的英伟达项目,刚刚发布,其全称为:Instant Neural Graphics Primitives,项目链接为:https://github.com/NVlabs/instant-ngp该项目提出一个称为Multiresolution Hash Encoding的技术,能够大大提升NeRF网络的训练速度,使之可以从几分钟缩短到几秒钟(非常惭愧的是,NeRF这个被广泛接受的三维重建技术我也是第一次听说)。其演示结果好的让人震惊。...原创 2022-04-22 20:44:15 · 26196 阅读 · 6 评论 -
三次样条(Cubic Spline)的C++实现以及可视化
无论是曲线拟合,能量优化还是分段函数模拟的应用中,通过一组离散点拟合出一条完整的曲线,都是不可避免的工作。一般来说,像贝塞尔曲线,b样条等曲线拟合方法,是通过控制点来生成曲线,控制点本身不经过曲线,这就带来一些不便。我们希望使用一种控制点在曲线上,同时保证曲线光滑,拟合结果良好方法,来实现曲线拟合。这就引出了我们今天的主题:三次样条曲线。原创 2021-12-16 10:31:23 · 10399 阅读 · 7 评论 -
CGAL项目配置问题
将之前电脑上的CGAL项目迁移到新的电脑上,发现报错:CGAL::Diagonalize_traits is a deprecated class that can lead to precisionCGAL在之前的项目中已经完成了编译,并且保持一致的配置,程序源代码没有任何修改,但是还是不能通过编译。因此猜测是开源包的配置出现了问题,因此将boost与eigen的配置检查一遍,并...原创 2019-11-11 10:55:13 · 541 阅读 · 2 评论 -
基于虚幻引擎与AppleAR的人脸动画实时迁移项目
最近上网闲逛,发现一个非常有趣的Unreal项目,可以利用iphone的前置摄像头(一般要求iphoneX及更新的版本)捕捉人脸数据并传输到Unreal中,以实现人脸动画的实时迁移与模拟。整个过程以数据流的方式实现,稳定性极好,速度极快,且表情捕捉的精度非常高,基本上可以替换过去复杂的多目人脸数据采集系统。在Unreal的官方频道,介绍了该项目在一个三维动画项目中的应用。设计师通过该系统能够捕捉包括人脸表情,手部动作以及人体姿态与运动等多种数据,并驱动一个三维拟真数字角色实现各种复杂的动作。该项目大大...原创 2022-01-14 20:07:45 · 4759 阅读 · 0 评论 -
基于单幅图像的三维动物自动建模项目(The SMAL Model)学习笔记1
The SMAL Model为马普所在2017年CVPR上发表的一项工作,用于解决基于单幅图像的三维动物模型自动生成问题。项目链接:http://smal.is.tue.mpg.de/该项目比较大的亮点是定义了一个分块的标准动物模型模板,基于母狮子作为参考,并包含一组动作。设计了分块优化的配准方法,对一组动物雕塑建立了拓扑一致的表示,并实现了对姿态与形状的优化框架。这样就有了一组动作数...原创 2019-08-20 16:17:33 · 1839 阅读 · 0 评论 -
基于单幅图像的三维动物自动建模项目(The SMAL Model)学习笔记2
Initial Registration接上文,SMAL Model的最大亮点在于定义了一个分块的通用动物模型模板以及对应的配准方法。这项工作的应用场景十分广泛。那么本文就尝试对这一部分进行展开。定义分块的通用动物模板,通过对一个模型进行精细额分块与建模,包括对不同形变的数学建模,得到一个初始的优化模板。初始配准主要包括两个部分,即GLoSS-based registration和AR...原创 2019-08-22 09:57:52 · 1265 阅读 · 3 评论 -
如何生成漂亮的点云渲染图?
1. 背景介绍之前笔者已经介绍过一种基于blender的点云渲染方法,利用blender软件以及一款对应的PCD插件,能够实现对点云的渲染。原文:https://blog.csdn.net/aliexken/article/details/118356716。使用该渲染流程,能够利用blender强大的渲染工具,完成对点云的可视化渲染任务。但是,该方法在操作层面存在一些小问题,即渲染流程略显繁琐。通常我们在做论文的渲染图时,仅仅是处理一些比较简单的渲染任务,使用如此繁琐的渲染操作,有点杀鸡用牛刀。那原创 2021-09-05 20:45:43 · 6032 阅读 · 1 评论 -
在本地项目中使用MeshLab源代码(VCGLib)
搞图形学的同学一定知道MeshLab这个软件。这是一个维护良好的开源图形处理程序,包含丰富的图形学算法,对点云,网格数据处理,其算法执行效率极高。我之前也用过PCL和CGAL,在代码的执行效率上,真的没法和MeshLab相提并论。因此,我决定在最近的项目中,将一些处理程序用MeshLab的代码替换。使用MeshLab程序,有三种方法,1. 使用软件本身提供的交互界面;2. 使用MeshServer的批处理服务,用脚本进行控制;3. 直接使用项目源代码。为了能够全面的了解MeshLab高效率的秘密,我觉得入坑原创 2021-08-03 19:58:45 · 2001 阅读 · 1 评论 -
PointCleanNet: 一种基于数据驱动的点云去噪方法
最近投文章,不止一个审稿人向我推荐了PointCleanNet用于稠密点云去噪。查了一下,是Ovsjanikov教授挂名的文章,高手背书,果断决定研究一下。原创 2021-07-12 12:17:51 · 3933 阅读 · 16 评论 -
基于blender的点云数据渲染
做点云相关的科研论文,需要渲染一些好看的可视化图片,来表现点云数据的一些几何特性。我在之前的论文中,渲染点云可视化图片的流程是,先在VS里用C++把需要渲染的点云颜色信息计算好,然后存储成带有颜色对应关系的ply文件,直接在meshlab里做可视化就可以了。但是,在meshlab里的可视化效果只能说是一般,如果要投图形学Siggraph, TOG和TVCG这样级别的文章,还需要提高图片的渲染质量。经过调研,发现了一个很不过的工作流,今天本文就来分享下这个新的工作流,以及如何利用该工作流渲染点云数据的。1原创 2021-06-30 12:18:04 · 9090 阅读 · 11 评论 -
利用深度学习框架实现点云配准(以PointNetLK项目为例)
1.前言之前已经介绍过了基于BnB算法的点云配准应用。熟悉点云配准近年来发展趋势的同学应该知道,目前CVPR,ICCV这些会议,比较主流的方法还是基于深度学习来建立点云的对应关系,尤其以基于PointNet变种网络的方法居多。所以如果要想搞搞点云配准的话,这条技术路线是没办法忽视的。这对完全不懂深度学习的我来说实在是个挑战。但是既然决定深耕点云应用,就不得不面对。综合考虑,选择了Pycharm平台建立项目的实现。当然,很多代码内嵌的方法,是基于linux系统建立的,部分源码在windows上的兼容并不好原创 2021-02-05 19:15:44 · 7124 阅读 · 13 评论 -
Branch and Bound(BnB)算法及其在点云配准上的应用
1. 前言点云配准在点云数据处理应用领域,一直是一个热点问题,包括TPAMI,CVPR,ICCV等顶刊顶会,每年都会有相应的工作被提出。众所周知,ICP算法在对于解决点云配准问题上,应用最广。当然ICP算法本身也有显著的问题,如局部最优,尺度敏感,对局部到全局的对应缺少鲁棒性等。很多方法尝试基于ICP算法,提出改进,以解决上述问题,如NDT,PFH等等。近年来,一些工作利用BnB与ICP的结合构建配准算法框架,变成一个流行趋势。BnB可以被理解为一个基于上下定界的优化搜索问题,通过BnB,能够迭代的寻找原创 2021-02-02 20:33:45 · 2669 阅读 · 0 评论 -
在点云上计算两点之间的测地线
在之前的博客中(https://blog.csdn.net/aliexken/article/details/109256534),我们已经介绍了Fast Marching算法的原理以及实现方法。在点云上给定一个源点,通过算法,我们能够得到一个距离场,如下图所示。有时,我们不仅需要这个距离场,我们还希望知道如何获得点云中两点的测地路径,进而帮助实现一些几何分析方法。我查阅了PCL库,好像没有给出直接的解法。这里,我们给出一个解决方法。实现非常简单,伪代码如下:1. 输入源点和终点的index原创 2020-11-16 19:25:21 · 2222 阅读 · 5 评论 -
Fast Marching算法及其在点云测地线计算中的应用
前言:在解离散测地线问题中,Fast Marching算法被广泛使用。其最大的优点是可以直接应用于点云数据。要知道,大部分内蕴几何算法需要原始数据提供连续的网格信息,才能够被使用。Fast Marching算法能够在没有网格信息的前提下,根据点云局部邻域的关系,利用波动方程计算点云内不同点的时间与距离的均匀变化,得到点云的标量距离场,其结果可以被近似的看作是测地距离计算结果。这对于点云数据几何特征分析具有十分重要的意义。网上大部分关于Fast Marching算法的描述,都偏理论一些,涉及大量的数学原创 2020-10-27 10:28:43 · 3149 阅读 · 8 评论 -
Isotropic Remeshing:各向同性网格重建介绍与实现
最近开始做网格重建与优化方面的工作,这里就不得不提到Isotropic Remeshing.部分内容参考自:https://zhuanlan.zhihu.com/p/104107745#ref_3在之前的博客中,我们已经提到了一种非常好的Isotropic Remeshing方法,即基于CVT(Centroidal Voronoi Tessellation)的网格重建方法,链接:https://blog.csdn.net/aliexken/article/details/106746560。该方法能够.原创 2020-09-03 13:57:49 · 2437 阅读 · 0 评论 -
L-BFGS算法在点云网格重建中的应用
在上一篇博客(https://blog.csdn.net/aliexken/article/details/108020050)中,我们已经介绍了L-BFGS算法的由来于功能,在这一篇中,我们来用一个点云重建工作的实例来具体说明L-BFGS算法是如何解决实际优化问题的。1. 问题描述在之前的工作中,我们已经描述过利用CVT算法实现点云网格重建,即基于Centroidal Voronoi Tessellation (CVT)算法的点云三角网格化方法,https://blog.csdn.net/alie原创 2020-08-19 18:03:48 · 626 阅读 · 1 评论 -
基于PCL库函数的点云高斯滤波去噪方法
最近投稿点云数据处理的文章,经常被审稿人Diss不加点云去噪的相关介绍。点云去噪本身就是一个非常独立且复杂的研究领域,要想增加这部分内容的介绍,还是要下一点功夫的。这里,就跟大家分享一个基于PCL库的比较成熟的点云去噪方法实现,即高斯滤波。高斯滤波(标准差去噪)适用于呈正态分布的数据。考虑到离群点的特征,则可以定义某处点云小于某个密度,既点云无效。计算每个点到其最近的k个点平均距离。则点云中所有点的距离应构成高斯分布。给定均值与方差,可剔除3∑之外的点。高斯函数的具体介绍转自:https://b原创 2020-08-11 18:45:39 · 9317 阅读 · 17 评论 -
基于Centroidal Voronoi Tessellation (CVT)算法的点云三角网格化方法
在之前的博客中,老甘已经跟大家提到过Centroidal Voronoi Tessellation(CVT)算法的实现与可视化。链接:https://blog.csdn.net/aliexken/article/details/106555993基于CVT算法的一个非常重要的应用就是针对于点云数据的三角网格化。基本的步骤就是首先对点云数据进行均匀重采样,得到一个被优化过的点云。基于重采样的点云,利用与Voronoi图对偶的Delaunay三角化结果,生成一个近似全局同构的三角网格。这个三角网格因为是原创 2020-06-14 20:10:21 · 6397 阅读 · 6 评论 -
基于CGAL的Centroidal Voronoi Tessellation(CVT)算法实现以及可视化
之前我们已经介绍了基于CGAL的Voronoi图实现。链接:https://blog.csdn.net/aliexken/article/details/106462597今天我们在该项目的基础上,来介绍一下Centroidal Voronoi Tessellation算法实现及其可视化。原创 2020-06-04 21:26:39 · 7404 阅读 · 0 评论 -
基于CGAL的Voronoi图(包括Delaunay三角化)计算与可视化
最近研究Delaunay三角化方法及其对偶问题,即求Voronoi图。看了很多博客,结合CGAL库种对Voronoi图的相关实现,终于完成了一个基于opencv呈现的二维有限区域Voronoi图生成与可视化方法,显示结果如下:黑色的方框为限定区域,红色的点为原始点,粉色的点为Voronoi图顶点,左图蓝色的线为Voronoi图的边,分为线段和射线两种。右图为与之对偶的Delaunay三角化结果,红色的边为三角的边。以上计算通过CGAL中的类Voronoi_diagram_2<DT, AT.原创 2020-06-03 22:29:50 · 4295 阅读 · 2 评论 -
草图检索&识别项目(OpenSSE)学习笔记3
OpenSSE的训练数据可以通过Docker下载以及用户自己训练得到,自己训练可以按照wiki上的相关指导进行。https://github.com/zddhub/opensse/wiki可以通过拷贝opensse项目里的源文件,放在配置好环境的独立项目中进行训练。这里重点说一下使用docker下载训练数据。不是很懂这个工具,浅显的理解是一个文件镜像共享以及数据管理的一个工具。按照...原创 2019-08-13 12:01:13 · 543 阅读 · 0 评论 -
Unity之FBX文件操作学习笔记(二)SDK sample代码初探
为了更好的学习FBX SDK中的一些操作,从sample代码入手是效率最高的方法之一。这里我们使用sample中的ViewScene作为学习fbx sdk的第一个项目对象。在之前的sdk配置的基础上,配置好GL相关文件,包括include,lib以及bin文件在环境变量下的目录,如果不了解具体配置方法,可搜索opengl配置的相关博客。在配置好后,将ViewScene的源文件以及fbx文件...原创 2019-09-10 17:59:31 · 1478 阅读 · 1 评论 -
Unity之FBX文件操作学习笔记(一)
FBX作为隶属于Autodesk的一种三维模型场景动画打包格式文件,在图形学工程化领域应用十分广泛。然而,FBX文件格式不是公开的,所以对FBX文件进行读取与存储需要专门的工具。除了游戏引擎以及三维软件自带的FBX文件操作工具外,Autodesk提供了针对FBX文件一系列操作的FBX SDK。本文首先介绍如何基于FBX SDK的Hello World项目。首先需要下载FBX SDK...原创 2019-09-10 15:01:43 · 5897 阅读 · 1 评论 -
草图检索&识别项目(OpenSSE)学习笔记4
在将数据成功下载后,解压,将对应的路径配置好,就能够载入数据了。载入数据的文件如下所示:在sketchsearcher.h文件中,配置如下路径:这一部分的数据是从json文件中解析出来的,当然也可以通过编辑json文件来实现对这些路径的修改。SketchArea 文件下的saveSketchFileName路径用来存储QT草图交互页面获取的用户草图数据,将该链接修改正确,这样在草图...原创 2019-08-14 11:17:11 · 404 阅读 · 0 评论 -
草图检索&识别项目(OpenSSE)学习笔记2
基于编译好的opensse的静态lib,希望能够运行起来相应的操作界面,即SketchSearchDemo。配置相对容易,需要在VS上安装QT的扩展插件。安装完成后,使用Open Qt project即可打开项目。注意,项目中的路径需要配置成你本地的路径,这里我没有记录,可以用debug模式找一下,或者在源文件找一下,需要修改的不是很多。OpenGL和OpenCV的环境需要重新...原创 2019-08-12 15:42:42 · 425 阅读 · 0 评论 -
草图检索&识别项目(OpenSSE)学习笔记1
目前在进行一个有关草图识别与检索的项目,在网上找到zddhub的opensse开源项目,再次对他的工作致敬,附上链接。CSDN博客:https://blog.csdn.net/zddblog/article/details/25421955github链接:https://github.com/zddhub/opensse我希望能够在VS平台上搭建基于opensse的草图检索项目,...原创 2019-08-09 15:10:57 · 1232 阅读 · 0 评论