Computer Graphics
文章平均质量分 72
Researcher-Du
duzj19@mails.tsinghua.edu.cn
展开
-
随机采样方法之逆变换采样
抽样或采样是指从目标总体中抽取出部分个体也就是样本,通过对样本的属性或特征进行分析,以此对总体进行评估。采样作为一种重要的数据分析方法,在深度学习、渲染等诸多方面具有广泛的应用。本文将回顾一种基本的采样方法即逆变换采样。原创 2024-10-30 00:00:17 · 1001 阅读 · 0 评论 -
重读经典论文: Mean Value Coordinates for Closed Triangular Meshes
Mean Value Coordinates for Closed Triangular Meshes 发表于ACM SIGGRAPH 2003, 是图形学领域的经典论文,论文只有6页,这在SIGGRAPH会议中并不多见,目前引用超过700次,在插值,参数化,变形等领域被广泛应用。原创 2022-11-27 23:21:16 · 761 阅读 · 1 评论 -
读源码学算法之Octree color quantization
八叉树颜色量化算法代码原创 2022-09-01 14:18:28 · 775 阅读 · 0 评论 -
论文解析:Photo2ClipArt:Image Abstraction and Vectorization Using Layered Linear Gradients
论文解析:Photo2ClipArt:Image Abstraction and Vectorization Using Layered Linear Gradients原创 2022-08-22 23:40:51 · 516 阅读 · 0 评论 -
NeRF(神经辐射场)学习资料
NeRF学习资料原创 2022-08-17 11:43:37 · 460 阅读 · 0 评论 -
双边滤波的基本原理
双边滤波(Bilateral filter)是一种非线性的滤波方法,本质是基于高斯滤波,目的是解决高斯滤波造成的边缘模糊。结合图像的空间邻近度和像素值相似度的一种折处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。具有简单、非迭代、局部的特点。双边滤波器的好处是可以做边缘保存(edge preserving),一般用高斯滤波去降噪,会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的转载 2022-01-04 20:13:26 · 6971 阅读 · 0 评论 -
开源视频重着色的代码
重着色是可视媒体编辑领域的热门研究方向,广泛应用于电影制作和艺术设计中,在图像视频的颜色编辑中发挥着重要的作用。目前基于调色板的图像重着色方法主要有两类:第一类方法通过聚类提取图像调色板,然后通过RBF插值获取每个像素点关于聚类中心的权重进行图像重着色编辑。第二类方法通过计算凸包提取图像调色板。这类方法将图像看作RGB颜色空间的点集,计算该点集的凸包并进一步简化。然后通过MVC插值的方法求得每个像素点关于调色板的权重,最后通过修改调色板的颜色实现图像重着色。据调研,目前大部分基于调色板的颜色编辑主要集中原创 2021-10-29 11:21:18 · 590 阅读 · 1 评论 -
GAMES101-现代计算机图形学入门相关资料
GAMES101-现代计算机图形学入门课程主页:http://games-cn.org/intro-graphics/GAMES101-现代计算机图形学入门B站视频:https://www.bilibili.com/video/av90798049/学习笔记:GAMES101-现代计算机图形学入门:https://blog.csdn.net/weixin_43803133/category_10303553.htmlOpenGL入门学习笔记:https://blog.csdn.net/weixin_.原创 2021-08-21 20:30:16 · 913 阅读 · 0 评论 -
读源码学算法之MeanShift Clustring
最近学了一个新的算法:MeahShift,中文翻译为均值漂移,可用于目标跟踪,聚类,图像分割等任务。本文主要介绍如何通过MeahShift实现聚类。说到聚类,大家第一时间会想到Kmeans,但是它需要我们提前给定K,然后不停的迭代直至收敛到K个中心,然而很多时候我们并不知道K取多少比较合适。那么,基于MeanShift的聚类算法就不需要提前给定类别的数目,它可以自动决定有多少类。一、MeanShit原理我们以二维为例,如下图所示,给定二维空间的nnn个点,随机的从任意点pip_ipi开始,以rrr为半原创 2021-06-14 15:33:10 · 375 阅读 · 0 评论 -
论文阅读:Mean Value Coordinates
Mean Value Coordinates(MVC) 是一种重要的插值技术,广泛应用于参数化、网格变形等几何处理方向。但很少有博客讲述MVC,尤其是计算三角网格的MVC,大多数人直接按论文中的伪代码进行实现。最近重读了关于MVC的几篇经典论文,因此在这里简单介绍一下。1 重心坐标对于三角形△v1v2v3\triangle v_1v_2v_3△v1v2v3 中任一点 ppp表示为三角形三个顶点的凸组合, 即满足如下的等式:p=λ1v1+λ2v2+λ3v3p = \lambda_1v_1 + \l原创 2021-05-09 19:51:44 · 2051 阅读 · 2 评论 -
几篇关于范数的文章
知乎:如何通俗理解范数?L1 Norm Regularization and Sparsity Explained for Dummiesl0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm原创 2020-12-02 12:19:06 · 255 阅读 · 0 评论 -
GMM混合高斯模型
最近研究经典论文:GrabCut, 里面讲到混合高斯模型GMM,特地学习一下。以下代码段来自:https://blog.csdn.net/u012436149/article/details/53557008# -*- coding: utf-8 -*-# for multi-Gaussian__author__ = "KeithYin"import numpy as npdef gaussian(x,mu,sigma): temp = -np.square(x-mu)/(2*sigma原创 2020-09-24 22:39:13 · 406 阅读 · 0 评论 -
Qhull库C++接口修改
官网:http://www.qhull.org/, qhull是一个强大的计算几何库,可以用于计算高维的convex hull, Delaunay triangulation, Voronoi diagram等,在python中调用非常方便,最近由于需要将项目迁移到C++,因此折腾了一下。qhull的c++接口并不太完善,很多接口是基于Rbox(生成数据),因此我根据自身需要,修改了qhull的c...原创 2020-04-14 10:55:30 · 3473 阅读 · 2 评论 -
TUM评测工具及自动调用Python脚本
在原有基础上,增加了输出每一帧ate。#!/usr/bin/python# -*- coding: utf-8 -*-import sysimport numpyimport argparseimport associate#一般数据的第一帧的相机的位姿设定为单位矩阵,但是grounftruth的第一帧未必是算法估计位姿打第一帧,#因此两个轨迹很有不能不在同一个坐标系,因此需...原创 2020-01-02 16:35:24 · 1669 阅读 · 0 评论 -
泊松变形技术理论知识解读
微分域变形领域最重要的两篇论文分别是:[1] Yu Y , Zhou K , Xu D , et al. Mesh editing with poisson-based gradient field manipulation[J]. ACM Transactions on Graphics, 2004, 23(3):644. [ciation:679][2] Olga Sorkine...原创 2019-12-27 14:15:56 · 4559 阅读 · 11 评论 -
编辑传播论文AppWand解读
最近看到好几篇论文如Colorization,poisson image editing等都使用线性系统求解泊松方程。今天找一篇文章简单推导一下:参考论文:AppWand: Editing Measured Materials using Appearance-Driven Optimization, SIGGRAPH 07论文是编辑传播领域的经典论文,用于将局部的编辑,传播到图像的所有区域...原创 2019-12-11 14:19:19 · 403 阅读 · 0 评论 -
计算机动画作业:图像morphing
本学期选了计算机动画课程,第一次作业是图像morphing, 本来打算选择基于四边网格的morphing, 但因为要用到曲面插值,感觉比较麻烦,因此使用基于三角网格的face morphing。总体方案:1、检测人脸特征点,有现成的方法:https://github.com/codeniko/shape_predictor_81_face_landmarks, 可以检测人脸81个特征点...原创 2019-12-03 14:06:54 · 3424 阅读 · 7 评论 -
读源码学算法之TSDF Volume模型
目前稠密三维重建主要使用两种框架,分别是基于体素的(volumetric-based) TSDF框架 和 基于面元(surfel-based)框架。基于体素的框架可以通过维护重建的历史信息,可以获得紧致的曲面和高质量的重建效果,在kinectfusion等一系列经典方法中被广泛的应用。首先,推荐一个3D开源算法库:Open3D,它实现了很多经典的三维数据几何处理算法,代码风格友好,非常容易阅读。...原创 2019-11-25 20:56:39 · 4364 阅读 · 3 评论 -
论文解读:A Fast Voxel Traversal Algorithm for Ray Tracing
今天看Refusion代码时发现作者用的Ray Casting方法非常奇妙,查了一下方法来自87年的一篇EG。原文链接: A Fast Voxel Traversal AlgorithmforRay Tracing文章主要解决的问题为:在一个空间体素模型中,已知起点和终点,求光线从起点到终点经过的所有体素。如下图所示:要求路径尽可能平滑,跟直线DDA算法的输出确实非常相似。作者这篇论文对传统...原创 2019-11-24 21:38:40 · 3792 阅读 · 2 评论 -
marching cubes表面重建原理
Marching Cubes算法是三维离散数据场中提取等值面的经典算法,之前主要应用于医学图像重建,当前在TSDF等重建场景广泛应用。参考论文:Marching Cubes: A High Resolution 3D Surface Construction Algorithm算法主要的思想是在三维离散数据场中通过线性插值来逼近等值面,具体如下:三维离散数据场中每个栅格单元作为一个体素,体素的...原创 2019-11-19 15:05:40 · 3034 阅读 · 1 评论 -
位姿估计和坐标系变换
在SLAM中,所谓的位姿其实指的是相机在世界坐标系中的位姿。位姿包括两方面:位置和姿势,即三维坐标和朝向。如下所示,建图的过程就需要知道每一刻相机的位姿,从而将当前相机捕获的点云注册到全局的点云模型中。常用的变换有:世界坐标系 -> 相机坐标系 和 相机的位姿 -> 世界坐标系如下所示:世界坐标系为wxywxywxy, 相机坐标系为cx’y’cx^’y^’cx’y’, PPP...原创 2019-11-13 10:35:58 · 5067 阅读 · 1 评论 -
ubuntu 16.04安装nvdia驱动,cuda驱动以及cudnn
一. nvidia驱动安装1. 查询显卡型号nvidia-smi -L出现显卡型号,我的是:GPU 0: GeForce RTX 2080 SUPER2. 查询显卡驱动网址:https://www.geforce.cn/drivers输入显卡型号并搜索,列表中会出现很多驱动版本,选择一款驱动3.安装显卡驱动网上常见的做法是:从命令行系统安装,巨麻烦,推荐使用apt-get in...原创 2019-11-04 15:48:38 · 334 阅读 · 0 评论 -
Win10 + PCL1.8 + Kinect 2.0配置
PCL1.8 + Kinect 2.0的配置是一个比较麻烦的问题,网上很多资料都是针对Kinect 1.0,针对Kinect 2.0的寥寥无几,使用Kinect 2.0相对比较麻烦,需要重装驱动,甚至修改源代码,前前后后踩坑无数花了近一个月时间才配置成功。写下这篇博客一方面对基础配置工作做一简要总结,一方面希望对接触PCL的新手提供必要的帮助,尽量少走弯路。安装环境 pcl 版本:...原创 2018-08-05 12:02:07 · 2160 阅读 · 4 评论 -
对极几何基本概念
对极几何(Epipolar Geometry)描述的是两幅视图之间的内在射影关系,与外部场景无关,只依赖于摄像机内参数和这两幅试图之间的的相对姿态 什么是对极几何粗略概念对极几何相关的一个重要约束5点共面约束对极几何的几个相关概念对应点的约束1. 什么是对极几何·粗略概念提到对极几何,一定是对二幅图像而言,对极几何实际上是“两幅图像之间的对极几何”,它是图像平转载 2018-01-18 14:02:58 · 824 阅读 · 0 评论 -
相机模型(转自高翔博士视觉SLAM十四讲)
图片剪切自:高翔-视觉SLAM十四讲转载 2018-08-05 14:47:51 · 884 阅读 · 0 评论 -
基本RANSAC的原理
本文主要参考以下两篇博文以及提供的源代码,在此感谢原作者:1、https://www.cnblogs.com/xrwang/p/SampleOfRansac.htm2、https://blog.csdn.net/weixin_40023317/article/details/90215182RANSAC为Random Sample Consensus的缩写,它是根据一组包含异常数据的样本数据...原创 2019-05-22 11:38:04 · 2537 阅读 · 0 评论 -
SLAM之对极约束推导
以下图片就来自于高翔博士《视觉SLAM十四讲》我看到这里的时候对于(7.2)没有看懂,因为直觉上跟(7.1)完全不等,因此我自己推导了以下,发现也可以推导出之后的对级约束(7.7)。具体推导如下:s1p1=KP,s2p2=K(RP+t) s_1p_1 = KP, s_2p_2 = K(RP+t)s1p1=KP,s2p2=K(RP+t) 注意这里的R和t实际上可以写为R21R_...原创 2019-05-23 15:41:56 · 1128 阅读 · 1 评论 -
Graph Cut Ransac代码编译过程
一、 论文简介Graph Cut Ransac来自于CVPR2018,本文提出了一种新的鲁棒估计算法,叫做图割RANSAC,简称GC-RANSAC。当找到当前最好模型时,该算法在局部优化中使用图割算法来区分局内点和局外点。本文提出的局部优化算法理论简洁、易于实现,是全局最优解且效率高。原文链接:https://www.researchgate.net/publication/317356965...原创 2019-06-03 23:32:09 · 2172 阅读 · 5 评论 -
翻译:ORB-SLAM: a Versatile and Accurate Monocular SLAM System
本文为ORB-SLAM的翻译,转载自:http://qiqitek.com/blog/?p=102ORB-SLAM: a Versatile and Accurate Monocular SLAM System(文章已发表,有版权)Taylor Guo, 2016...转载 2019-06-10 17:13:27 · 647 阅读 · 0 评论 -
opencv kdtree的用法
int main(){ vector<cv::Point3f> features={{1,1, 0}, {2, 2, 0}, {3, 3, 0}, {4, 4, 0}, {2, 4, 0}}; vector<cv::Point3f> raw_queries={{0,0,0}, {3, 4, 0}, {4, 3, 0}}; /**建立kd树索引**/ ...原创 2019-08-29 20:17:05 · 4769 阅读 · 2 评论 -
经典论文推导: As-Rigid-As-Possible(ARAP) Surface Modeling
As-Rigid-As-Possible Surface Modeling, 尽可能刚性的形状变形原创 2018-01-22 14:43:03 · 10797 阅读 · 3 评论