自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Pycharm远程连接服务器调试程序(包含VPN连接)

SSHFS-Win Manager:https://github.com/evsar3/sshfs-win-manager/releases (GUI,可选)服务器中转:利用VPN连进内网,再由内网连接服务器时需要进行服务器中转让Pycharm可以直接连接服务器。本地用pycharm打开映射文件夹,后续就和本地操作文件夹一模一样,非常方便。连接后直接进去个人账户环境,source .bashrc激活conda环境。直接连本地的8888即可,如果需要密码则输入SSH服务器上的个人账户密码。

2024-08-17 11:28:30 248

原创 鱼师弟的论文分享(1)VR-GS: A Physical Dynamics-Aware Interactive Gaussian Splatting System in Virtual Realit

早期的3d表征:mesh [Sorkine and Cohen Or 2004], point clouds [Qi et al. 2017], signed distance fields [Wang et al. 2021], and grids [Zhu and Bridson 2005]Ye et al. 2023].

2024-08-08 20:39:32 1032

原创 pytorch3d安装

之前自己安装成功了,后来再安装的时候老是报错,这个大佬有可以直接安装的版本。

2024-04-07 11:04:37 224

原创 三维场景生成论文整理

把分数蒸馏采样单独拿出来讲,实在是因为这个东西太重要了,是文生3D的核心。在MVdream论文中,作者列出了两类基于Diffusion生成3D模型的思路第一条非常直观,我用一个文生图模型生成多视图图像,然后进行三维重建,主要问题是文生图模型很难控制多视角图像的连贯性稳定性。第二条比较难理解,我们来看Dreamfusion的pipeline。

2024-01-12 14:08:49 3821

原创 语义补全任务2023年论文总结

语义场景补全SSC旨在联合估计出一个场景完整的几何和语义信息,假设只需要部分稀疏输入数据。1、数据集2、场景表示点云是一种方便的、记忆高效的表示方法,它将三维连续世界中的场景几何形状表示为位于其表面上的一组点。与其它表示方式不同的是,点云省略了自由空间的定义并且缺乏几何结构。很少有工作实际上应用了基于点的语义场景补全。在对象上,是第一个处理基于点的补全问题]。然而,场景上点的生成更具挑战性,文献[121,180]需要通过查询给定位置的语义类围绕这个展开研究。占用网格,其中单元格描述。

2024-01-11 13:29:17 1408

原创 论文阅读及代码复现:RaBit: Parametric Modeling of 3D Biped Cartoon Characterswith a Topological-consistent Dat

这篇文章带给我最大的收获是参数化建模这个概念,我之前一直尝试用Diffusion重建NeRF或者SDF表达的动漫玩具模型,Diffusion的优点在于创造性,你可以让它一次性生成几十个模型,挑选其中效果好的,缺点就是生成质量以及推理速度了,即使在可接受范围内,但和这篇文章提出的参数化建模方法相比还是差距比较大的。方法从原理上来说就是上面这张图,以图像作为输入,用Encoder编码一系列参数化特征,然后用参数化特征来生成模型的shape、pose以及texture,最后结合获得最终的输出。

2023-12-26 11:47:26 505

原创 Unity学习笔记

【代码】Unity学习笔记。

2023-12-20 17:03:26 531

原创 NeRF系列论文阅读

这段话的核心含义是空间点的输入差异太小了,所以放大到高维空间,扩大它们之间的差异,从而使得重建结果能够区分很相近的点的差异,具体效果可以看实验结果图。数学上,它的颜色由下面的“体渲染公式”计算而出,其中C表示渲染出的像素点颜色,σ表示体素密度, r 和 d 分别表示camera ray上的距离和ray上的方向,r=o+dt, t表示在camera ray上采样点离相机光心的距离,T表示透射比,也叫光学厚度、介质透明度,c表示当前区域的粒子发光和内散射辐射强度,也就是表面的实际颜色。至于为什么是这样的?

2023-12-01 16:59:40 422

原创 AIGC43D论文阅读:Dream系列

之前开了一个AIGC43D的合集,但是这个技术实在是更新得太快了,所以还是挑一些重点文章和技术出来额外仔细讲。

2023-12-01 16:41:54 377

原创 基于NeRFstudio设计自己的NeRF

之前全面分析了NeRF的代码实现,并且部署了好几个版本的NeRF,其中NeRFstudio这个工具还是非常好用的,而且里面集成了多个先进的NeRF模型,所以本篇文章的目的有三个,理解NeRFstudio的代码结构,学习多个先进的NeRF模型的结构和作用,自己对NeRF进行一定的改进。

2023-12-01 15:49:57 581 1

原创 草图三维模型生成论文阅读整理

仅为个人整理,如有错误,欢迎指出!

2023-11-03 16:59:31 610

原创 从0开始的视觉研究生涯(6)YOLOv8-seg实战应用NCNN加速详解(进阶,多线程、Int8量化)

非常麻烦,做一个经验总结,以后希望不会再碰了,都是好的工具,但是在商业化过程中,通常不愿意升级芯片会加大设备成本,此外数据也会有很多问题,这导致再怎么加速效果都不满足,当然做demo还是够用了,哎,资本家。

2023-11-01 17:25:19 2579 15

原创 从0开始的视觉研究生涯(5)模型训练测试导出及相关任务指标

第4节计划讲图像基础以及有用的传统图像算法,比如keams、边缘检测等等,这些内容后面有个项目会用到,所以放在后面再一块整合了。第5节的主要目标是教会萌新如何训练测试一个视觉深度学习模型,以及各种指标的含义和作用。

2023-10-30 17:10:42 276

原创 实用脚本8 Python批量读取dat文件并保存为16位8位灰度图

【代码】实用脚本8 Python批量读取dat文件并保存为16位8位灰度图。

2023-10-23 10:17:31 305

原创 从0开始的视觉研究生涯(3)深度学习基础(进阶)

深度学习是一种特殊的机器学习,它通过学习将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,每个概念都是根据更简单的概念进行定义的,而更抽象的概念则是用不那么抽象(更加具象)的概念计算出来的。

2023-10-18 15:01:05 134

原创 从0开始的视觉研究生涯(2)复现深度学习模型以YOLOv8为例(入门)

复现深度学习模型和前一篇的数据集构建一样,都需要大量的实战才能逐渐掌握,两篇文章的目的都是帮助初学者入门,并尝试完成一个简单的工业项目。

2023-10-16 16:21:07 305 1

原创 训练自己的ControlNet

之前埋了一个坑,要自建数据集训练ControlNet,数据集其实早就建好了,但是因为改论文一直没时间实践,所以这篇文章先把这个坑填了,也算是把AIGC的内容暂时先结个尾。AIGC内容从扩散模型讲起到Stable Diffusion再到ControlNet主要讲了原理和应用,训练方面主要是因为这类模型训练对算力和时间要求比较高,这次用ControlNet作为切入点,尝试只训练一部分SD是不是能显著降低训练要求。目前网络上有用huggingface训练的教程先安装huggingface依赖库。

2023-10-11 15:30:46 5477 27

原创 从0开始的视觉研究生涯(1)从数据集开始讲起(入门)

这篇文章的主要目的是帮助刚入门视觉做横向的同学知道要如何采集数据、标注数据、选择任务并构建任务需要的数据集,这些活在研究生阶段又叫杂活,一般会分配给本科生去干,但是对于0基础的同学来说构建数据集反而是非常痛苦的过程,会接触到json、xml等以前没有接触过的数据格式,还要对它们进行处理,我一开始的时候也是非常头大,后续也不知道能不能脱离视觉苦海,但是祝各位研究生涯顺利快乐吧!

2023-10-09 16:42:32 385 1

原创 从SD开始搞懂ControlNet

原理部分我们直接拿出Controlnet作者的图网上对这张图的说明都比较粗略,我们首先要搞明白几个值得含义,参考下面这张图,我们会发现作者在原先的SD之外新增了一个condition的额外输入,这个condition就是我们增加的额外条件,而controlnet的训练是不影响原来的SD的,即原来的SD完全保持独立和不变,影响是通过在SD的Decoder阶段添加condition的编码信息,而训练的部分就说图中的蓝色方块,也就是SD的编码块,如果算力富余的话,controlnet也可以重新训练整个SD。

2023-08-30 16:22:34 1851 2

原创 实用脚本七:归一化文件夹中的txt文件的图像标签

这个脚本的具体作用是将一个label文件夹中的txt文件中的点的坐标根据图像大小进行归一化。

2023-08-18 15:54:21 211 2

原创 实用脚本六:python划分YOLOv8-Seg数据集训练集测试集

注意x1、y1这些坐标需要根据图像大小进行归一化,如下45是类别index,后面是归一化后的坐标点。我们最开始的数据集是一个文件夹里有图像和标签文件,然后有一些图像没有标签,所以选择按照标签进行划分。划分完之后在目标文件里获得YOLOv8-seg格式的分割数据集。其中txt文本的格式为。

2023-08-17 15:51:34 645 1

原创 实用脚本五:C++Opencv图像添加文字不超过图像区域

客户要求的添加文字框,但是会超过图像区域,后来发现YOLOv5里有现成的逻辑。主要思路就是限制中心点x和y的范围。

2023-08-16 11:14:28 271 1

原创 从Diffusion开始搞懂StableDiffusion

这种方法的一个优势是只需要训练一个通用的自编码模型,就可以用于不同的扩散模型的训练,在不同的任务上使用。在第一阶段训练自编码器时,为了避免潜在表示空间出现高度的异化,作者使用了两种正则化方法,一种是KL-reg,另一种是VQ-reg,因此在官方发布的一阶段预训练模型中,会看到KL和VQ两种实现。简单来说,就是原本diffusion模型直接在像素层面训练,内存占用太大,引入感知压缩就是说通过VAE这类自编码模型对原图片进行处理,忽略掉图片中的高频信息,只保留重要、基础的一些特征。原理部分参考大佬的文章。

2023-08-15 16:37:23 2505

原创 从0开始搞懂Diffusion扩散模型

简单来说就是套贝叶斯公式,B是X(t-1),P(B)就是q(X(t-1)|X0),A是Xt,P(A|B)就是q(Xt|X(t-1),X0),下面其实就是P(A),那就说q(Xt|X0),鄙人是这么理解的,但是鄙人概率论实在学得不好,这里很难理解,如果有错误欢迎指出,后续也会抓紧学习得。首先是为什么q(X(t-1)|Xt)变成了q(X(t-1)|Xt,X0),这是因为光靠Xt是反推不了这个公式的,所以得把知道X0也当作条件,引入这个公式,来和Xt一起反推X(t-1)。这里参考大佬的计算过程。

2023-08-14 17:15:45 5754

原创 基于Controlnet和SDwebui实现草图转细节图

后续计划找不同风格的sd来做实验,做个总结,目前网络上信息量已经非常爆炸了,sd的营销号也非常多,总是吹嘘会取代人,会失业,但实际上不管人工智能如何,最后总还是需要人来做最后的微调步骤,只是减轻工作量罢了,解放生产力,毕竟只有人才能筛选出真正的优质内容,而生成却是良莠不齐的,当然controlnet从很大程度上还是推进了优质内容的诞生,因为人可以控制中间的生成步骤。其中关于torch的部分需要注意一下,可能安装的是无cuda版本的,可以自己去pytorch官网下载自己的版本。

2023-08-08 10:51:32 406 1

原创 实用脚本四:C++导出DLL并传递Char*值

然后对需要导出的函数加上extern "C" PDDETECTDLL即可,注意extern "C"必须要加,不然动态调用的时候会找不到该函数,另一个做法是用def文件导出函数,作用和extern "C"一样。首先是char*作为函数参数时,它是不会被直接赋值的,需要在函数内构建一个char*,在用memcpy函数拷贝给输入的char*。静态调用就和正常调用其他库类似,加上h和lib,然后include h文件,直接调用函数即可。在调用的时候,动态调用不需要h和lib文件,直接在调用的CPP里加上函数定义。

2023-08-04 14:32:32 297 2

原创 NeRF模型之Instant-NGP原理及代码学习

具有多分辨率哈希编码的即时神经图形基元。

2023-08-02 19:10:00 8062 2

原创 基于COLMAP和NERFStudio实现自拍视频的三维重建

获取数据集后再进行训练,其实和colmap输出相比,只是多了一个transforms.json,这个其实可以从colmap2nerf.py的脚本获得,所以如果ubuntu的colmap安装失败了,可以曲线操作一下。然后用colmap进行初步重建,windows的colmap可以直接下载安装有cuda的版本,比较麻烦的是ubuntu系统安装有cuda的colmap,网上教程很多,这里记录一下笔者实测可行的方法。colmap的使用,windows可以直接打开,ubuntu colmap gui。

2023-07-31 19:03:00 1435 6

原创 实用脚本三:C++ DBSCAN算法实现图像中的点聚类并可视化

其基本方法是将当前像素梯度强度与沿正负梯度方向上的相邻像素的梯度强度进行比较,若其最大(即为极值),则保留该像素为边缘点,若不是最大,则对其进行抑制,不将其作为边缘点。DBSCAN算法C++代码实现如下,具体输入为待聚类的点集dataset,聚类半径eps,聚类半径内点的最小数minpts,具体做法简单而言就是遍历点,然后在该点的eps内如果有大于minpts的点,则将该点记为核心点并聚类,最终的输出为聚类后的边缘点集,其属性为x,y,cluster。高于高阈值的像素点被定义为强边缘,保留为边缘点;

2023-07-28 13:14:08 699 1

原创 彻底搞懂NeRF论文公式代码

先将输入展平为向量,随后进行位置信息编码。然后调用batchify_rays函数,核心目的是为了实现批量渲染,batchify_rays比较简单,rays_flat.shape[0]是1024,这里实际上只会进行一次循环,因为chunk是步长,一次就大于shape了,实际上chunk就是一次能进行渲染的光线最大值,这里设置成1024*32,所以rays_flat[i:i+chunk]其实就是输入的rays本身,只有rays更大的时候,chunk才会发挥作用,我们再来看这里引用的render_rays函数,

2023-07-25 17:06:08 3217 2

原创 实用脚本二:C++读取dat文件并保存为图像

主要涉及到的内容有批量读取文件夹中以dat为后缀的文件,获取文件名,读取datshuju,并最后赋图保存。//读取所有格式为dat的文件。//获取特定格式的文件名。//获取所有的文件名。

2023-07-20 16:29:11 551

原创 nerfstudio应用(官方实现代码)

上一篇文章讲解了DreamFusion和NeRF的过程,但正如结尾所言,我还是不清楚中间的具体过程,所以这篇文章将应用Mip-NeRF 360,进一步搞清楚输入输出,以及中间过程的实现。这两步都不会报错,但是在测试的时候会显示没有可用的GPU和TPU,可以通过更新JAX解决。后续安装出现没有gtest的报错,未解决,暂时放弃使用pytorch版本的nerf。后续在使用的过程中,发现之前并没有安装colmap,colmap需要单独安装。在已经有cuda和cudnn的电脑上,直接。

2023-07-18 17:05:21 815 1

原创 Stable-DreamFusion实现解读

那么如何获得相机参数呢?(1)数据预处理:NeRF输入除了图像还需要相机参数,相机参数包含内外参数两类,相机外参(extrinsic matrix)是相机位置和朝向的组合,是一个4x4的矩阵,其作用是将世界坐标系的点变换到相机坐标系下,因为不熟悉怎么打公式,所以引用一下大佬的公式图,因为本科学习过机器人坐标变换,这里还是可以理解的。取成像平面中某一位置(对应的real像素值是已知的),与相机位置的连线构成一条射线,得到二维的视角参数,在最近和最远距离内采样 n 个点,得到三维的位置参数,构成n个五维向量。

2023-07-17 15:36:41 1323

原创 Stable-DreamFusion安装及使用

这里有问题的是torch默认是CPU版本的,可以注释掉,然后nvdiffrast和Clip直接用git可能下载不下来,我的做法是直接去对应的GitHub上下载到stable-dreamfusion的文件夹里,然后在虚拟环境里分别运行两个文件夹下的setup.py。然后这两个也可以注释掉,其他的就能下载没问题了,然后单独下载torch,随便在pytorch官网找个支持GPU的版本。电脑原配置为4060,cuda12.1,vs2019,需要结合官方的教程,这里是额外一些问题的说明。此时直接运行,还是会报错。

2023-07-13 20:48:48 2778 16

原创 实用脚本一:python将文件夹中的视频文件按帧分割为图像并命名保存

【代码】实用脚本一:python将文件夹中的视频文件按帧分割为图像并命名保存。

2023-06-08 15:47:46 459 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除