自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

U R MINE

不为繁华易匠心

  • 博客(138)
  • 收藏
  • 关注

原创 LeetCode hot 100 —— 哈希表 by python

集合和字典基本相同,唯一的区别,就是集合没有键和值的配对,是一系列无序的、唯一的元素组合。

2024-03-12 12:01:02 394

原创 google 浏览器护眼色调整(无插件)

搜索dark,找到以下选项,设置 enable。

2024-02-28 14:27:32 206

原创 读论文:DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

模糊核的大小遵循7 ~ 21的均匀分布,第一次退化过程的模糊σ均匀采样在0.2 ~ 3之间,第二次退化过程的模糊σ均匀采样在0.2 ~ 1.5之间。对于第一次降解过程,调整尺寸的比例因子遵循0.15至1.5的均匀分布,对于第二次降解过程,比例因子遵循0.3至1.2的均匀分布。在第一次和第二次退化过程中,泊松噪声的尺度分别在0.05 ~ 3和0.05 ~ 2.5之间随机采样。上述引导可以迭代地强制潜在特征之间的空间对齐和颜色一致性,并引导生成的潜在保留参考潜在的内容,实现从生成的输出到更平滑的结果的过渡。

2024-02-04 15:48:36 1014

原创 深入浅出 diffusion(5):理解 Latent Diffusion Models(LDMs)

1. LDM 优势如果你了解 diffusion 原理的话,那么理解 Latent Diffusion Models 的原理就比较容易。论文High-Resolution Image Synthesis with Latent Diffusion Models(Latent Diffusion Models)发表于CVPR2022,第一作者是Robin Rombach(慕尼黑大学)。1. LDM 优势论文LDM 的网络示意图如下所示。

2024-01-31 10:40:05 1233

原创 深入浅出 diffusion(4):pytorch 实现简单 diffusion

【代码】深入浅出 diffusion(4):pytorch 实现简单 diffusion。

2024-01-26 16:38:25 586 2

原创 深入浅出 diffusion(3):pytorch 实现 diffusion 中的 U-Net

使用Self-Attention注意力机制,做一个全局的Self-Attention。计算时间步长的位置嵌入,一半为sin,一半为cos。GitCode - 开发者的代码家园。用于特征提取的残差结构。

2024-01-26 15:02:57 724

原创 深入浅出 diffusion(2):pytorch 实现 diffusion 加噪过程

可见,随着 t 的加大,原图对应的比例系数减小,噪声的强度系数加大,t = 500的时候,隐约可见人脸轮廓,t = 999 的时候,人脸彻底淹没在噪声里面了。中介绍了 diffusion 的一些基本原理,其中谈到了 diffusion 的加噪过程,本文用pytorch 实现下到底是怎么加噪的。以下分别为原图,t = 0, 50, 100, 500, 999 的结果。

2024-01-25 15:41:21 827

原创 深入浅出 diffusion(1):白话 diffusion 基本原理(无公式)

两个过程 前向过程(forward process):添加噪声; 反向过程(reverse process),又称为扩散过程(diffusion process):去除噪声,数据样本生成。过程核心原理 无论是前向过程还是反向过程都是一个参数化的马尔可夫链(Markov chain),即当前过程状态仅与上个过程状态相关; 复杂的条件概率推理最终将这个过程简化为学习噪声分布的网络。前向过程如何加噪 添加 t 次随机高斯噪声(逐渐增大),但是这样比较繁琐; 推理得到最终添加的所有噪声可以表

2024-01-25 12:06:33 866

原创 diffusion 和 gan 的优缺点对比

train GAN 训练的网络是生成器和判别器,生成器用于生成图像,判别器辅助生成器的训练。 Diffusion 训练的噪声评估网络。sample GAN 推理快,GAN的生成网络有维度变化。 Diffusion 推理慢,需要迭代更多次,推理过程图像尺寸不变。训练难度 GAN 的训练可能是不稳定的,容易出现模式崩溃和训练振荡等问题。 Diffusion 训练loss收敛性好,比较平稳。模拟分布连续性 Diffusion相较于GAN可以模拟更加复杂,更加非线性的分布。但是Dif

2024-01-24 20:43:11 1393

原创 ISO、增益、倍数之间的关系

举例,iso6400,对应64倍,对应36db。这里有个快速转换方法,2^6 = 64,6*6db = 36db。影像系统中,ISO 概念在相机领域用的较多,增益(db)概念在摄像头领域用得多,两者都是倍数的换算。增益= 20 * log10(倍数)倍数 = iso/100。

2024-01-08 11:27:56 586 2

原创 基于泊松-高斯噪声模型的详细标定计算方式

中分析过 sensor 的噪声类型,从本质上分析,噪声可以归类为与信号值有关的噪声,该部分噪声符合泊松分布;另一类为与信号无关的噪声,该部分噪声符合高斯分布。下面详细分析下参数如何标定计算。

2023-12-28 20:32:23 507

原创 Raw 单帧降噪论文整理

该文章最大的特点在于使用了k-sigma变换,去掉数据的噪声强度对于ISO的依赖,某种程度上算是降低了训练数据的难度,本质上是借鉴VST(variance stabilizing transformations )的思想。该文章最大特点我认为是提出了一种为可用的现代数码相机校准噪声参数的方法,噪声模型建模方式为常见的 k-sigma 参数标定模型。该文章最大特点我认为是改善了 ELD(下文) 的校准噪声参数的方法,噪声模型建模方式本质为泊松-高斯参数标定模型。该文章是22年那篇的扩展。

2023-12-26 20:10:37 508

原创 超分任务中的转置卷积、pixelshuffle 和插值上采样

pixelshuffle 在超分任务中比较主流,不过我实测发现跟其他的上采样方式效果差别不大,内存和计算速度上也没啥差别。

2023-12-26 11:48:35 308

原创 pytorch 实现 Restormer 主要模块(多头通道自注意力机制和门控制结构)

介绍了 Restormer 网络结构的网络技术特点,本文用 pytorch 实现其中的主要网络结构模块。1. MDTA(Multi-Dconv Head Transposed Attention:多头注意力机制。

2023-12-25 10:43:12 483 1

原创 说说 style gan 中的感知路径长度(Perceptual Path Length)

在优秀的GAN网络中,得到的结果应该是perceptual距离也是最短的(也就是蓝色的线,最短距离)。绿色的线是比较差的GAN网络,在从白狗向黑狗变化的过程中,变化perceptual过大,出现了卧室。比如下图,在两个不同的网络中。通过累加的方法逐步计算出绿线比蓝线长,那么得到了蓝线代表的GAN网络要比绿线代表的GAN网络要好。:给出两个随机噪声 z 1 , z 2 ​ ,为求得两点的感知路径长度PPL,采用微分的思想。(2) 将潜在空间插值路径细分为线性段,每个段上的感知差异的总和就是感知路径长度。

2023-12-21 17:31:57 755

原创 比 style gan 更好的 style gan2

因为文中作者指出 style modulation 可能会放大某些特征的影像,所以 style mixing 的话,我们必须明确的消除这种影像,否则后续层的特征无法有效的控制图像。,但是 style gan 的结果会有水珠伪影,作者实验后发现是 Adain 导致的,AdaIN对每一个feature map的通道进行归一化,这样可能破坏掉feature之间的信息。所以,其实 Mod 和卷积是可以继续融合的。这里替换了对特征图做归一化,而是去卷积的参数做了一个归一化,先前有研究提出,这样会有助于GAN的训练。

2023-12-19 10:52:03 190

原创 浅谈 Style GAN

根据交叉点选取位置的不同,style组合的结果也不同。可以提高数据分布的整体密度,把分布稀疏的数据点都聚拢到一起,类似于PCA,做法很简单,首先找到数据中的一个平均点,然后计算其他所有点到这个平均点的距离,对每个距离按照统一标准进行压缩,这样就能将数据点都聚拢了,但是又不会改变点与点之间的距离关系。,它的作用是生成图像,创新之处在于给每一层子网络都喂了 A 和 B,A 是由 w 转换得到的仿射变换,用于控制生成图像的风格,B 是转换后的随机噪声,用于丰富生成图像的细节,即每个卷积层都能根据输入的A来调整。

2023-12-18 15:12:06 139 2

原创 比 WGAN 更好的 WGAN-GP

这个约束的意思是:critic 相对于原始输入的梯度的 L2 范数要约束在1附近(双边约束)(原文作者给了一个命题:在最优的优化路径上(把生成分布推向真实分布的“道路”上),critic函数对其输入的梯度值恒定为1)原因在于:WGAN采用了权重修剪(weight clipping)策略来强行满足critic上的Lipschitz(利普希茨)连续的约束(“Lipschitz 连续”,意思就是定义域内每点的梯度恒定不超过某个常数(常数是多少无所谓,不是无穷就行)。训练不稳定是GAN常见的一个问题。

2023-12-18 11:10:58 67

原创 WGAN 优势小结

我在上一篇博文中,分析了原始 GAN 难以训练的原因,本篇博文将分析下 WGAN 的优势。

2023-12-15 14:46:48 103

原创 为什么 GAN 不好训练

也就是说,如果Discriminator训练得太好,Generator就无法得到足够的梯度继续优化,而如果Discriminator训练得太弱,指示作用不显著,同样不能让Generator进行有效的学习。考虑如下二维空间中的两个分布P1和P2,P1在线段AB上均匀分布,P2在线段CD上均匀分布,通过控制参数θ可以控制着两个分布的距离远近。实际上,JS散度出现为常数的概率非常大,当数据分布类似高维空间中的低维流形,如下图时,虽然数据分布处理三维空间,本质展开是个二维平面。为什么 GAN 不好训练?

2023-12-15 12:01:00 181

原创 再回首感知损失在low-level上的应用

Style Reconstruction Loss 计算的时候,VGG 中间输出特征先经过 Gram matrix(格拉姆矩阵:n维欧式空间中任意k个向量之间两两的内积所组成的矩阵)计算获得内积矩阵,再对该矩阵计算 L1。我近几年的工作中,所训练的模型都离不开感知损失。小结,如果是需要做一些很精细化的超分,比方人脸,追求真实自然性,那么用 Feature Reconstruction Loss 就够了,用了 Style Reconstruction Loss 容易出现一些偏色、不自然条纹等问题。

2023-12-14 19:38:34 70

原创 读论文:HINet: Half Instance Normalization Network for Image Restoration

第二,一个阶段的多尺度特征有助于丰富下一个阶段的特征。原因方面还是在于 low-level 比较依赖浅层信息,两级网络中的第一级输出控制在较浅的信息,然后再经过一个 U-Net 操作,效果就上来了。与resblock相比,主要差别在于:HIN对输入3*3conv处理的特征按照通道分成两部分,一部分采用IN进行规范化,另一部分无规范化,处理后的两部分沿着通道维度进行拼接。其次,在局部监督预测的帮助下,生成 attention map 抑制当前阶段信息量较少的特征,只允许有用的特征传播到下一阶段。

2023-12-14 15:32:18 173

原创 读论文:Restormer: Efficient Transformer for High-Resolution Image Restoration

在早期阶段,网络在较小的图像块上进行训练,在后期的训练阶段,网络在逐渐增大的图像块上进行训练,所以会随着patch大小的增加而减少batch大小,以保持相同的训练时间。最后,根据实际训练情况来看,restormer,尤其是小型化的restormer,未必比同大小的cnn更有优势。~计算通道上的自注意力而不是空间上,即计算跨通道的交叉协方差来生成隐式地编码全局上下文的注意力图。的生成则是依靠伯努利分布的随机输入,可以看作 dropout的思想和relu的结合,增加鲁棒性。

2023-12-13 20:01:55 178

原创 基于 low-level 的 cv 问题该如何落地

深度学习技术在 cv 的 low-level 问题方面有很多研究,比如超分、降噪、图像强化等。但是在业界的应用中,则面临一些具体的挑战,主要有以下一些方面:1. 数据集如何构建这是根本问题。2. 网路如何构建 并非要类似最新的学术论文那般做出非常复杂或者原创性的网络。从工程应用的角度来说,通用型的大型网络就能取得较好的效果情况下,复杂网络结构对于性能提升的意义不大。 网络的构建意义更多在于如何把大网络压缩成小网络设计。 该减小哪些网络层?卷积核大小如何取舍?...

2022-02-17 14:24:23 1701

原创 从生产力角度看算法设计

我最近看一些深度学习网络在人脸超分任务上的应用。例如 CVPR 期刊在2018年有篇文章为:FSRNet: End-to-End Learning Face Super-Resolution with Facial Priors,其核心思想是用了一个子网络获得人脸的特征信息,再结合主网络做超分任务,性能效果获得了突破。 我由此联想到,人类文明发展的过程中,社会分工的精细化使得人各司其职,在公司里面每个人更是做着拧螺丝的工作。然后,在这种生产力的模式下,取得了1+1>2的效果,甚至是1...

2021-08-17 16:05:00 227

原创 三言两语讲讲 sensor 的噪声

2021-08-15 13:19:43 1991

原创 Could not stat /dev/sdc3 --- No such file or directory

服务器需要挂载磁盘,例如 sdc3 分区后,终端输入:fdisk -l,可以看到已经分区,但是在 /dev 路径下却没有对应的分区块 sdc3。 这个时候要格式化新建的分区,输入:mkfs.ext4 /dev/sdc3,就会出现报错:Could not stat /dev/sdc3 --- No such file or directory 终端输入:partprobe 即可解决问题。...

2021-04-13 15:52:56 660

原创 读论文:Noise2Noise: Learning Image Restoration without Clean Data

很有意思的文章,我之前做过一些深度学习的降噪任务,针对不同光照条件下的图像进行降噪。这个时候就会涉及到标签样本的制作。 在监控领域中,相差6个db的照度,图像的噪点就会有明显的差异性。所以我们在训练模型的时候,如果用了40db的噪点图,那么标签可能是30db的图像,也可能是20db的图或者其他更加干净的图。很明显,30db的图像尽管比40db的图像噪点表现要好,但也是有噪点的。为什么依然能够训练模型呢,Noise2Noise: Learning Image Restoration with...

2021-02-26 16:14:16 598

原创 浅谈汉密尔顿(Hamilton)插值算法

1 什么是bayer数据? bayer数据是包含rgb的一维矩阵数据,因此对于每个像素点而言,需要用周围像素点插值得到其他两个通道的值。 一般由于绿色分量较好,会优先插值r/b点的绿色分量,然后插值g点的r/b分量。2 汉密尔顿插值算法有何优势? 汉密尔顿插值算法通过同色一阶梯度和异色二阶差分,考虑了插值的方向判断,并用了颜色插值的方法减少轮廓边缘的色差。3 汉密尔顿插值算法有何劣势? 毕竟1997年的算法,首先该算法对于密集纹理区的方向判断效果不佳,其次插值...

2021-02-03 20:35:41 3166 3

原创 关于 matlab 中的 imwrite

matlab 中的 imwrite 需要的图片是归一化到 0-1 后的矩阵。如果你的原始图像是 8bit 以上的 raw,那么需要进行归一化,然后再保存。 如果手动截位到 8bit,比如是 img 是12bit,做个线性映射,img/4095*255,那么保存后的图是过曝的白色。 当然,如果用uint8(img),那么也是可以用 imwrite 保存的。...

2021-01-18 19:13:37 1407

原创 exceeds 10% of system memory--------fatal python error: aborted

我在用 tensorflow 写的深度学习模型进行前向传播的时候,连续跳出几个 exceeds 10% of system memory,紧跟着就是:fatal python error: aborted。 跑程序的时候,我打开任务管理器,但是发现内存并没有满,所以也不知道底层是哪里的问题。 不过可以肯定的是前向传播的时候内存不够。于是我把输入图片的尺寸减小(中间有resize的操作),这个报错就没再出现了。...

2021-01-17 19:29:03 1615

原创 读论文:Non-Local Recurrent Network for Image Restoration

简单讲下文章的思路: 文章将 rnn 的思想和 non-local 的思想相结合,将 non-local 嵌入到 rnn 内部计算中,同时,(我估摸着参考了类似 LSTM 的思想)设计了一个长期的残差连接,总体设计如下图: ...

2021-01-08 14:56:03 561

原创 tensorflow 中的深度可分离卷积接口 slim.separable_conv2d()

我在前面的一篇博客深入浅出谈谈深度可分离卷积中介绍了深度可分离卷积的原理,然后用 tensorflow 实现了下。 在 tensorflow 中的接口是slim.separable_conv2d(),接口说明:def separable_convolution2d( inputs, num_outputs, kernel_size, depth_multiplier=1, stride=1, padding='SAME', ...

2020-11-24 14:55:36 3832 2

原创 深入浅出谈谈深度可分离卷积及 tensorflow 实现

1 简介 深度可分离卷积的核心思想就是将普通N个通道为M的卷积拆分成1个通道为M的卷积(这个卷积进行单通道滤波操作,区别于普通卷积滤波后通道相加)和N个1×1×M的卷积,其作用在于减少运行的参数量。如果采用 3 × 3 的卷积,那么采用深度可分离卷积后,参数将变成原来的1/8~1/9。2 原理2.1 普通卷积 对于普通卷积而言,一个边长为Dk,通道为M的卷积核(N个卷积),处理一个输入矩阵(通道为M),得到一个宽为Dw...

2020-09-01 15:26:06 1481

原创 tensorflow 如何减少网络层并微调参数

当你的模型需要剪裁的时候,可以采用减少原网络结构的层数,达到简化的目的,那么如何训练新的网络参数呢? 如果我没弄错的,修改网络架构后,可直接导入原网络架构,然后采用相同的训练数据进行训练,可以得到修改后的新网络的参数。这样训练的时候,导入原网络模型的图和参数后,内部会根据索引对比。保留的原有层的参数在训练的时候进行微调,从而实现裁剪的网络快速训练目的。 如果不对请指正。path = '/model/checkpoints/' ...

2020-08-28 14:24:17 498 2

原创 人脸降噪中的深度学习算法学问

降噪算法,最大的问题是降噪后的图像容易不实,显得模糊。而且一个降噪算法难以处理多种类型的噪点(彩噪、亮噪等)。 降噪算法的劣势在监控领域应用后容易使得人脸的五官等细节不实,涂抹比较严重。尤其在低照度场景下,这种问题会被放大。 传统算法搞来搞去,根据像素点的值和空间距离设置各种规则进行滤波,都难以克服上述的缺点。 只有深度学习技术可以克服上述缺点。 当前各种计算机视觉顶会论文主要聚焦于基础理论和学问创新点,深度学习在人脸(jpg)降噪后处理的实际应用上几乎没有工...

2020-08-06 14:41:52 706

原创 tensorflow 模型转 caffe 模型的相关细节和部分代码

tensorflow 和 caffe 都是常见的深度学习框架,有时候前端部署会因为平台的要求只能用其中的某种框架,这个时候则需要进行框架间的转换。本博客会介绍 tensorflow 转 caffe 模型的相关细节和部分相应的代码。1 有哪些转换方法 我做了简单的查阅,发现主要是下面三种:1) 利用 net.params 逐层添加参数2) prototxt 中逐层添加参数后编译成 caffemodel 我阅读了大佬的专栏,学习良多(地址:tensorflow2caffe...

2020-07-10 15:24:49 923 5

原创 读论文:Unprocessing Images for Learned Raw Denoising

1 先讲讲文章干啥的 深度学习降噪需要成对的图像(噪点数据、对应的清晰数据)。 通常 raw 数据经过 isp 流程(我前面的博客介绍过什么是 isp:图像 ISP 处理流程以及新人学习图像的注意点)后得到的 rgb 数据的噪点比较复杂,而原本的 raw 数据的噪点相对容易模拟。作者假设整体噪声可以更准确地建模为包含高斯和泊松信号相关分量或者从一个方差是强度函数的异方差高斯分布中采样。 所以,作者自己在清晰的 raw 上面和成有噪声的 raw,然后用神经网络降噪。2 然后看...

2020-06-11 19:37:34 603 2

原创 怎么训练 GAN 网络

我最近看的一些底层图像算法的 paper 有很多用了各种变形的 GAN 来做。我就很好奇,GAN 到底有啥牛逼。网上关于 GAN 的介绍很多,我从 GAN 的训练角度口头解释下其训练机制。 GAN 的核心思想是纳什均衡理论。因此,GAN 网络中包含一个生成器和一个判别器,如下图所示。生成器和判别器本质是两个独立的网络,因此训练的时候独立训练。 ...

2020-06-09 12:04:03 4288

原创 读论文:LADN: Local Adversarial Disentangling Network for Facial Makeup and De-Makeup

1 前言 传统算法做美妆迁移的时候,如下图所示,把 A* 的美妆迁移到 B 上面。但是这样会有一些问题:A 和 A* 难以同时获得 A 和 B 要做对齐工作 其他 而 LADN: Local Adversarial Disentangling Network for Facial Makeup and De-Makeup 这篇文章,解决了上述的一些缺点,其效果特色在于:同时实现化妆和卸妆效果; 美妆迁移后的人脸的面部细节保留好。其技术特点在于:局部对抗网络;...

2020-06-03 15:51:49 830 1

空空如也

空空如也

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

TA关注的人

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