- 博客(68)
- 资源 (13)
- 收藏
- 关注
原创 Noise Conditional Score Network
也就是说对于每个noise level,执行N步,直至样本收敛至当前noise level的最佳位置。
2025-02-05 23:19:55
483
原创 重要性采样
重要性采样(Importance Sampling)是一种统计方法,用于估计某个分布下的期望值,特别是在直接从该分布采样困难或成本高昂的情况下。这种方法通过从另一个更易于采样的分布中抽取样本,然后对这些样本进行加权,来近似目标分布下的期望值。重要性采样在蒙特卡洛方法中非常常见,广泛应用于机器学习、计算统计学和计算机图形学等领域。
2025-02-05 15:07:53
651
原创 生成模型VAE
如果直接利用torch.normal,输入encoder估计出的均值和方差,生成样本,训练过程中梯度无法反传,因此需要用到重参数化,绕开torch.normal采样,采用。得到第二版SGVB估计器,因为第二项的KL散度有解析形式,因此只有第一项的重建误差需要通过采样进行估计。evidence和ELBO之间的差值是非负的KL项,因此ELBO的值不会超过evidence,且当参数化模型近似的后验分布。RHS的第一项是近似分布和真实后验分布之间的KL散度,因为KL散度的非负特性,RHS的第二项被称为数据点。
2024-08-08 17:14:59
718
原创 Diffusion Models
根据极限可知,随着t越来越大,最终加噪后的数据分布趋近于各向同性的标准高斯分布。也为reverse process从一个标准高斯分布采样开始逐步去噪得到最终sample的过程,两相契合。,假设后验分布为高斯分布,则估算的就是高斯分布的均值和方差,式(11)和(12)就是网络学习时,均值和方差的gt。只需要学习均值即可。这个性质很重要,意味着可以不需要迭代过程,直接获得任意时间t的加噪数据。,一般也被称为前向过程或者diffusion过程,是一个马尔可夫链。的函数,标准高斯分布有了均值和方差,就可以从。
2024-01-18 23:56:45
962
原创 SD text prompt 文生图系列
如果GPU显存空间有限,可用空间小于4GB,需要确保以float16精度加载StableDiffusionPipeline。
2024-01-02 14:49:44
464
原创 torch常用和预期输入输出
nn中定义的是类,functional里面定义的是函数操作。outshaperoundmodestrideinshape2∗padding−kernelsize1默认的round_mode为floor,即向下取整。可以通过ceil_mode开关,指定为向上取整。
2023-11-24 12:14:45
1291
1
原创 AdaIN
在最开始的风格迁移研究中都是采用 BN,但后来发现把 BN 替换成 IN (Instance Normalization) 的效果更好。BN对一个batch的数据进行归一化,使数据符合均值为0,方差为1的分布,解决了Internal Covariate Shift问题,提升模型训练稳定性。虽然 IN 在风格迁移任务中表现很好,但是仍然不清楚为什么 IN 的效果更好。BN的计算操作如下,计算batch内数据每个通道的均值和方差,然后做归一化。
2023-11-16 11:38:39
157
原创 MeMFace解析
中加入显式记忆,解决one-to-many的映射问题。训练刚开始,key set和value set随机初始化,根据训练过程中的误差反传,更新参数。上述几篇文章做了一些尝试,引入可读写的spceialized implicit memory,为了解决这个sequence-to-sequence问题,使用Transformer-based结构。模型:audio2expression模型。M代表keys和values的数目。输出:和语音内容语义对齐的表情系数。是嘴部相关的表情系数的维度。
2023-08-10 15:36:31
157
原创 top-down HMR translation
HMR是一个简单且广泛使用的top-down方法,用以估计3D人体的pose和shape参数。根据人物检测框,得到一个方形的人物区域裁剪图,resize到224x224分辨率,经过一个卷积encoder提取特征,再经过3次迭代的MLP回归器预测SMPL参数。CLIFF计算的是全图分辨率下的重投影误差,而不是局部crop图。相机沿X和Y轴的平移。所以这里估计的并不是传统意义上的相机内参。沿着X, Y, Z三个轴的平移。r=224代表了resized方形裁切输入的分辨率。太晚了,具体的推导待续。
2022-12-09 23:58:54
595
原创 HybrIK流程
T={tk}k=1KT={tk}k=1K:静止姿态下的关节点坐标。R={Rpa(k),k}k=1KR={Rpa(k),k}k=1K:相对旋转。Q={qk}k=1KQ={qk}k=1K:根据输入的相对旋转,FK计算出的关节点坐标。KKK: 关节点数目。pa(k)pa(k)pa(k):第k个节点的父节点。Rpa(
2022-11-23 01:36:52
898
原创 Faster Transformer
Faster Transformer是一个BERT Transformer单层前向计算的高效实现。底层由CUDA和cuBLAS实现,支持FP16和FP32两种计算模式,其中FP16可以充分利用Volta和Turing架构GPU上的Tensor Core计算单元。Faster Transformer共接收4个输入参数,首先是attention head的数量以及每个head的维度。这两个参数是决定Transformer网络结构的关键参数。其余两个参数是batch size和句子最大长度。
2022-10-04 19:53:49
1232
原创 Transformer BEV 3D object detection
传统方案:利用2D模型在各自的相机视角获取3D检测结果。再通过后处理算法将各个视角的3D检测框投影到ego frame,融合到一起。
2022-10-03 12:03:10
737
原创 GRU学习笔记
和上一个节点传递下来的隐状态(hidden state)GRU的输入输出和普通RNN一样。,这个隐状态包含了之前节点的相关信息。,GRU会得到当前隐藏节点的输出。和传递给下一个节点的隐状态。
2022-09-27 16:49:41
1151
原创 VINS学习笔记
包括姿态,速度,重力向量,偏差,3D特征位置。VIO,重定位,和姿态图优化这三个模块以多线程的方式同时运行。该模块融合IMU预积分结果,特征观测,以及来自回环检测模块的重检测特征。测量预处理模块负责特征的提取和跟踪,相邻两帧之间的IMU测量预积分。VINS定义该坐标系和IMU坐标系相同。: 表示带噪声的测量结果,或者对一个确定量的估计值。重力方向和世界坐标系的z轴平行。: body坐标系到世界坐标系的旋转。: body坐标系到世界坐标系的平移。: 世界坐标系下的重力向量。帧图像时的body坐标系。
2022-09-24 18:02:19
951
原创 Transformer学习
主流的序列转换模型基于复杂的encoder-decoder结构的循环或者卷积神经网络。本文提出一个简单的仅基于注意力机制的网络结构,Transformer。完全摆脱了循环和卷积方式。在两个机器翻译任务上的实验结果表明Transformer的翻译质量更佳,并行度更好,需要更短的训练时长。...
2022-08-01 10:14:10
92
原创 Efficient Video Instance Segmentation via Tracklet Query and Proposal
VIS的目标是同时分类,分割,跟踪视频中的多个目标实例。当下clip-level的VIS输入一小段视频,因为利用了多帧的时序上下文信息。效果要明显优于frame-levelVIS。但是目前大多数clip-level方法既不能端到端可学习,也不能实时。VIStransformer解决了上述两个问题,但由于其frame-wise的稠密注意力计算,训练时间太长;而且VisTR对多个视频段无法端到端可学习,需要手动的数据关联,将前后clips周的实例tracklet链接起来。...
2022-07-25 19:06:59
337
原创 E2EC: An End-to-End Contour-based Method for High-Quality High-Speed Instance Segmentation
不同于先前的contour-based方案,手动构造初始轮廓,E2EC方案采用可学习的轮廓初始化方案,解决人工初始轮廓可能和真实轮廓之间交织过多,导致学习和推理困难的问题。采用globalcontourdeformation,其实就是MLP,更好的利用上所有顶点的特征。提出了labelsamplingscheme,叫做multi-directionalignment,可以降低学习难度。...
2022-07-15 16:41:07
592
原创 Deep Snake for Real-Time Instance Segmentation
提出了circularconvolution,相比图卷积,可以更好的学习轮廓的cycle-graph结构。是个二阶实例分割,分为initialcontourproposal和contourdeformation两步,可以处理检测误差。1080Ti上,512x512输入的速度为32.3fps。好奇图像中的实例数对速度没影响么?而且这篇文章提出来的圆环卷积,采用特征选取的方式,导致没法用推理引擎进行加速。......
2022-07-15 15:44:58
573
原创 Sparse Instance Activation for Real-Time Instance Segmentation
用实例激活图的稀疏集合,表示一个新目标,来高亮每个前景目标区域。再聚合高亮区域的特征,得到实例级特征,用以分类和分割。基于二分图匹配,实例激活图可以一对一的方式预测目标,因而避免了NMS的后处理。......
2022-07-13 20:51:11
510
原创 Weakly supervised Semantic Segmentation by Pixel-to-Prototype Contrast
通过引入cross-view和intra-view的约束,提升类内一致性(intra-class compactness)和类间区分性(inter-class dispersion)。优点就是不会增加推理计算量的情况下,提升(弱)监督场景下的分割效果。我觉得这样的约束,在强监督场景下也可以使用,弥补交叉墒损失的缺陷。..................
2022-07-13 19:58:31
1043
原创 smplify-x笔记
创建一个透视变换相机,初始化参数为rotation旋转矩阵,translation平移向量,focal_length_x x方向焦距,focal_length_y y方向焦距,batch_size相机个数,center相平面的中心坐标。如果没主动设置,默认焦距为5000。在这个相机模型里,需要梯度的有rotation,translation。前向部分,完成3d点投影的工作。主要是根据rotation和translation将坐标从世界坐标系转至相机坐标系,再根据相机投影矩阵,将坐标从相机坐标系转换至像素坐
2022-06-21 20:53:11
3523
原创 MNN学习笔记
程序调用某函数A,A函数存在于两个动态链接库liba.so,libb.so中,并且程序执行需要链接这两个库,此时程序调用的A函数到底是来自于a还是b呢?这取决于链接时的顺序,比如先链接liba.so,这时候通过liba.so的导出符号表就可以找到函数A的定义,并加入到符号表中,链接libb.so的时候,符号表中已经存在函数A,就不会再更新符号表,所以调用的始终是liba.so中的A函数。为了避免这种混乱,所以使用visibility用于设置动态链接库中函数的可见性,将变量或函数设置为hidden,则该
2022-06-09 11:21:10
631
原创 3d HMR相关
UV MappingUV mapping: 3D模型的3D网格转移到2D空间,以便进一步为模型制作纹理的过程。因为XYZ已经被用来表示3D模型的轴,所以用大写的UV表示2D纹理的轴,U和V分别指的是2D空间的水平轴和垂直轴。UV贴图是3D模型表面的平面表示,用于轻松包裹纹理。创建UV贴图的过程称为UV展开。接缝是展开任何3D几何体不可避免的副作用。接缝是网格的一部分,必须分割才能将3D网格转换为2D UV贴图。UV展开始终是一种折衷方案,即尽可能减少线框变形,同时将接缝保持在最低限度。...
2022-03-31 13:45:39
240
原创 2D&3D Pose数据集
2d&3D Pose数据集2D数据集COCOAICMPIICrowdPoseOCHuman3D数据集Human36M功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入2D数据集你好! 这是你第一次使用 Markdown编辑
2022-03-30 11:45:32
908
原创 yolov5-face
networkdataloader__getitem__()\_\_getitem\_\_()__getitem__()时,对每张图片,对应标注的数据维度为[num_objects,14][num\_objects, 14][num_objects,14],每一行的数据格式为[x, y, w, h, x1, y1, x2, y2, x3, y3, x4, y4, x5, y5]. 前四个为归一化的人脸bbox的中心和宽高,后面10个为归一化的人脸5点关键点的坐标。读入并进过一系列数据增强后,再将bbo
2021-12-02 15:10:59
4883
原创 RetinaFace解析
网络结构SSH模块通过级联的3x3卷积来模拟5x5和7x7更大的感受野,最后聚合输出out_channel通道数的特征图。Head部分classificationbboxlandmark
2021-11-30 21:34:00
1299
原创 常用激活函数解析
sigmoid 和 ReLUsigmoid(x)=11+e−xsigmoid(x) = \frac{1}{1+e^{-x}}sigmoid(x)=1+e−x1sigmoidsigmoidsigmoid激活函数的问题是随着输入趋近±∞\pm\infty±∞时,梯度会迅速变为0,梯度回传时,浅层的参数无法得到有效更新。ReLU(x)=max(0,x)ReLU(x) = max(0, x)ReLU(x)=max(0,x)ReLUReLUReLU在x>0时,梯度恒为1,不会存在梯度消失问题。在x&l
2021-11-19 15:02:49
402
原创 高通SNPE
DL Container Loader: SNPE使用后缀为dlc的模型文件,提供了模型load函数。Model Validation: 检查输入模型与所选择的运行后端是否合法。Runtime Engine: 选择运行模式的API,包括CPU,GPU,DSP和AIP四种运行模式。Partitioning Logic: 模型处理API,包括检查网络layer的合法性,调度网络的runtime。CPU Runtime:CPU运行模型,支持32-bit和8-bit量化模型。GPU Runtime:GPU
2021-11-09 11:46:46
3072
2
原创 android学习
WorkManager可以让app在后台执行。toy demoapp->java->com.example.myfirstapp->MainActivity这是主页面,app的入点。编译和运行app时,系统会加载该activity的一个实例,和加载它的layout,也即布局。app->res->layout->activity_main.xml这个XML文件定义了activity的UI布局。里面包含了一个TextView元素,文本内容为"Hello, Wor
2021-11-09 10:57:29
1052
原创 VIBE流程
main包含了DataloadersDataloadersDataloaders, Compile LossCompile\;LossCompileLoss, Initialize networks, optimizers and lr_schedulersInitialize\;networks,\;optimizers\;and\;lr\_schedulersInitializenetworks,optimizersandlr_schedulers, Start TrainingStar
2021-10-19 16:31:48
652
原创 ViT结构
vision Transformer# reshape and flatten[N, C, H, W] => [N, h*w, p_h * p_w * C] => [N, h*w, dim] # h = H // p_h, w = W // p_w, input flattened feature to nn.Linear, map into dim dimenstion.# concat cls_tokens and add positional embedding[N, n, dim
2021-10-18 19:50:04
1065
原创 SPIN流程
# No reduction because confidence weighting needs to be appliedself.criterion_keypoints = nn.MSELoss(reduction='none').to(self.device)keypoint_lossdef keypoint_loss(self, pred_keypoints_2d, gt_keypoints_2d, openpose_weight, gt_weight):""" Compute 2D r
2021-10-15 17:36:20
436
1
原创 有趣的torch.einsum
import torchimport numpy as npa = torch.arange(9).reshape(3, 3)提取矩阵对角线元素out = torch.einsum('ii->i', a) # tensor([0, 4, 8])矩阵转置out = torch.einsum('ij->ji', a)out = torch.einsum('...ij->...ji', a) # 高维矩阵最后两维转置reduce sumout = torch.einsum
2021-10-15 16:04:33
468
原创 smplify
smplify是一个基于模型的优化过程。Step 1只优化相机平移和身体朝向。camera_translation = init_cam_t.clone()global_orient = init_pose[:, :3].detach().clone()camera_opt_params = [global_orient, camera_translation]camera_optimizer = torch.optim.Adam(camera_opt_params, lr=self.step_
2021-10-15 11:35:02
766
原创 SMPL模型
SMPL的python版本在官方网站有两个,分别是SMPL_python_v.1.0.0,SMPL_python_v.1.1.0。区别是:以SMPL_python_v1.1.0为例,其中包含了三个models和操作models的基础脚本。三个模型是male,female,netrual的pkl格式模型,以netrual为例,我们看下其中的数据结构。import picklewith open(model_path, 'rb') as f: smpl = pickle.load(f, encodin
2021-10-14 11:36:28
3865
1
原创 DGF网络
DGFDeep Guided Filtering Network的目标是利用低的计算代价,生成全分辨率,并保留边缘特征的输出。采用coarse-to-fine的思路。下采样原始输入图像IhI_hIh, 得到低分辨率输入IlI_lIl。输入到CNN中Cl(Il)C_l(I_l)Cl(Il),得到对应的低分辨率输出OlO_lOl。然后以IlI_lIl, IhI_hIh, OlO_lOl作为输入,生成最终的全分辨率输出OhO_hOh。DGFSDGF_SDGFSCl(Il)C_l(I_l
2021-10-11 15:07:11
457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人