- 博客(203)
- 资源 (5)
- 收藏
- 关注
原创 yolo-yolov5介绍
预处理数据集得到 yolov1需要的label训练后处理数据得到方便显示的方式。后处理:98个bbox , 20个种类, 然后NMS处理。
2024-04-08 10:46:05 851
原创 pytorch的 F.pixel_unshuffle函数理解,利用卷积来实现pixel_unshuffle, yolov5中focus操作和pixel_unshuffle是否一样?
b3是yolov5中用到的focus操作,上述代码我用卷积实现了pixel_unshuffle操作, focus操作同理当然也可以利用卷积实现。pixel_unshuffle示意图:和focus不同的是最后的输出的通道排列顺序有差异。结果显示:b = b1 =b2 但是和b3不太一样.
2024-04-03 13:39:18 258
原创 大疆的raw图噪声合成:Towards General Low-Light Raw Noise Synthesis and Modeling
这是关于raw noise model的最新一篇论文,结合了物理建模和深度学习,创新点吧也是有一些的,当然作者也提到可能对于特别暗的场景可能效果好一些,如果sidd数据集其实 P-G噪声模型也许就够好了,实际使用的适合我主要是基于PG,以及sampling建模的方法,标定噪声和制作数据集。这一系列论文是不断对raw noise model的建模方法改进,来生成噪声数据,效果是可以的。当然如果直接使用 n2n, nb2nb等无监督方法降噪也是可以的。建模越准,训练的model效果就会越好吗?
2024-03-08 14:36:20 1100 1
原创 Rethinking Data Augmentation for Image Super-resolution
根据方法应用的位置将现有的增强技术分为两组:像素域就是针对图像 和 特征域就是中间的特征层。作者提出cutblur方法,正则化模型使模型可以学到 在图像的什么区域区增强以及如何增强。作者基于提出cutblur数据增强方法以及其他一些辅助方法 构建一个混合的数据增强策略,效果很好。作者主要利用EDSR model 在 DIV2K和 RealSR 两个数据集上从头训练,进行分析。
2024-03-08 13:15:34 1358
原创 GAN 网络的损失函数介绍代码
pixel_opt:相比于一般的l1 loss多了 loss weight, reduction, weight三个功能。首先loss_util.py文件定义weight_lossArgs:Returns:"""else:Args:Returns:"""else::Example:tensor(3.)"""loss = loss_func(pred, target, **kwargs) # 这里 reduction='none'接下来定义带weight的L1 loss。
2024-03-07 17:55:11 958
原创 gan, pixel2pixel, cyclegan, srgan图像超分辨率
上图的左上部分如下就是1个 gan, gan生成目标B, 但是没有label条件约束,因此pixel2pixel中的L1损失就没法使用了,那么如何保持生成的图像目标图像的一致性呢?那么生成器呢,除了原来的损失,再加上一个L1损失。就是通过添加限制条件,来控制GAN生成数据的特征(类别),比如之前我们的随机噪声可以生成数字0-9但是我们并不能控制生成的是0还是1,还是2.噪声z 输入生成器,希望判别器得到 1, 即希望生成器生成的图 输入判别器时 是 1,即希望生成器生成的图,和real更接近。
2024-03-06 16:41:29 887
原创 图像超分辨率:Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution
首先,学习从LR到HR图像的映射函数通常是一个不适定问题,因为存在无限的HR图像可以降采样到相同的LR图像。因此,可能的函数的空间可能非常大,这使得很难找到一个好的解决方案。深度神经网络通过学习从低分辨率(LR)图像到高分辨率(HR)图像的非线性映射函数,在图像超分辨率(SR)方面表现出了良好的性能。其次,成对的LR-HR数据在现实应用程序中可能不可用,而且潜在的退化方法通常是未知的。为了解决上述问题,我们提出了一种对偶回归方案,通过对LR数据引入一个额外的约束,以减少可能的函数的空间。
2024-03-06 16:09:25 138
原创 图像超分辨率:Fast Nearest Convolution for Real-Time Efficient Image Super-Resolution
注意的是tf.depth2space 与 torch.pixel_shuffle 在 生成多通道 图像时,排布时不同的。因此最终的效果 就是 把RGB image stack (scale * scale) 次而已。主干网络预测的是 残差,什么的残差?是最近邻插值图像与 ground-truth的残差。最近邻卷积,可以理解为最近邻插值,只不过插值后的图像按channel迭代,而不是空间。然后 与 残差相加,最后一个 depth2space 生成超分图像。提出一种适用移动端的超分网络。
2024-03-06 16:01:42 319
原创 图像超分辨率:Quality Assessment of Image Super-Resolution: Balancing Deterministic and Statistical Fidelit
ssim 指数计算如下图ssim基于三个相似度指标,分别是亮度,对比度 和结构[1]
2024-03-06 15:57:41 885
原创 pytorch 自定义函数
比如 layernorm: 参考:https://github.com/zhangyi-3/KBNet/blob/main/basicsr/models/archs/kb_utils.py。导数的推导:https://blog.csdn.net/qinduohao333/article/details/132309091。介绍:https://zhuanlan.zhihu.com/p/344802526。主要构建 static method forward 和 backward。
2024-03-04 17:08:56 349
原创 深度学习non-local:Non-local Neural Network,PANet Pyramid Attention Network for Image Restoration
之前介绍kernel prediction net的时候,会为每一个像素生成一个 filter来处理图像, 这样每个像素都有自定义的filter, 但是这个filter只是处理邻域像素,对于距离更远的区域没办法融合进来处理, 除非 filter很大,比如作用于整张图像。non-local概念在图像降噪领域有比较广泛的应用,传统算法有。深度学习模型也可以借鉴类似的概念,引入和设计相关non-local模块。
2024-02-22 20:15:07 597
原创 卷积模块结构re-parameterization
就是 3x3, 1x3, 3x1 3个卷积核在推理阶段融合为1个3x3卷积核。在实际使用的时候注意,并不是先将每个分支卷积核融合 再进行BN,而是先 每个卷积核都有自己的BN 然后与BN融合后, 再进行每个分支卷积核融合。后者比前者效果更好,虽然前者也比直接训练一个3x3要好。
2024-02-19 16:57:28 958
原创 一些常见的激活函数介绍
超参数α的取值也已经被很多实验研究过,有一种取值方法是 对α随机取值,α的分布满足均值为0,标准差为1的正态分布,该方法叫做随机LeakyReLU(Randomized LeakyReLU)。至于为什么随机LeakyReLU能取得更好的结果,解释之一就是随机LeakyReLU小于0部分的随机梯度,为优化方法引入了随机性,这些随机噪声可以帮助参数取值跳出局部最优和鞍点,这部分内容可能需要一整篇文章来阐述。如果对于所有的样本输入,该激活函数的输入都是负的,那么该神经元再也无法学习,称为神经元”死亡“问题。
2024-02-18 11:51:50 898
原创 图像降噪:Zero-shot Blind Image Denoising via Implicit Neural Representations
然后作者发现,拟合一个有噪声的图像,在前期会有一个阶段拟合的结果与 无噪声图像接近,然后最后训练完成与噪声图像接近。如下图a, 下图a还可以看出 在INR output与 clean最接近的时候,与 noisy的psnr 变化也更加平台。那么既然INR拟合一个有噪声的图像,在前期会有一个阶段拟合的结果与 无噪声图像接近,那么是不是在这个时候让网络停止训练就可以了。输入是图像的坐标,输出是像素值,然后这个网络就是这个图像的一个表示。在遇到噪声比较小的图像或者真实场景的图像容易失效,比如变模糊。
2024-01-26 11:40:31 565
原创 diffusion入门
https://zhuanlan.zhihu.com/p/638442430 这篇博客写得很好,顺便做一点笔记记录一下。原博客附带的代码也很清晰易懂。后一个过程等于前一个结果的均值乘上sqrt(1-beta_t), 再加上方差beta_t的噪声。这样下去可以得到 xt 基于 x0的公式, 也就是只要已知x0, 和每一步的beta_t可以求得任一阶段得 x_t而且最终x_t接近 正态分布。正向x_t-1 到x_t 过程如下:乘上一个数,再加噪声那么逆向从x_t 到 x_t-1这一步,是不是只需要减去
2024-01-24 14:17:14 920
原创 INFOBATCH: LOSSLESS TRAINING SPEED UP BY UNBIASED DYNAMIC DATA PRUNING 和Masked Image denoised
加速训练一个比较直接的方法是降低数据集规模。如何降低数据集规避,应该剔除哪些数据,一般认为剔除那些 loss(或者其他一些指标score)较小的,因为这样的样本数据对模型训练梯度下降影响较小。一种方式是 static prune,就是训练一些epoch后,根据损失值或者其他指标 设定 阈值,裁剪 那些小于 阈值的样本。一种方式是 dynamic prune, 就是每隔一些epoch 根据指标排序,然后进行裁剪,整个训练过程中多次裁剪。
2024-01-22 17:09:14 1031
原创 Deep Unfolding Network for Image Super-Resolution
退化模型:本文提出的USRNet可以有效地处理经典的退化模型(即等式(1))。可以通过单一模型处理不同的模糊核、尺度因子和噪声水平。另一方面,与基于学习的方法类似,USRNet可以以端到端的方式进行训练,以保证有效性和效率。
2024-01-11 11:20:07 423
原创 Real-time Controllable Denoising for Image and Video和 Invertible Image Signal Processing
从sRGB->raw或者从raw->sRGB端到端的方式一次优化所有isp步骤。
2023-12-28 13:39:23 966
原创 瑞芯微 rk3568的npu使用,部署unet网络
模型转换是 RKNN-Toolkit2 的核心功能之一,它允许用户将各种深度学习模型从不同的框架转换为 RKNN 格式以在 RKNPU 上运行,用户可以参考模型转换流程图以帮助理解如何进行模型转换。因此如下图,输入的 uint8的image data, 然后归一化到0-1,因为设置了 outputs[0].want_float=1,然后model infer 得到 float data,范围 0-1. 以上全在 npu中进行,也就是全在rknn_run中进行,因为使用的时零拷贝 api.
2023-12-19 09:51:41 2001
原创 部署系列六基于nndeploy的深度学习 图像降噪unet部署
比如模型infer输出是c,h,w, float32的结果,后处理 input是 c,h,w float32 的数据,output转换为 h,w,c float32的数据(对应上面的cv::Mat result(img_h, img_w, CV_32FC3);然后前处理,infer, 后处理 内部也有自己的input和output,不要搞混淆了。前处理,infer , 后处理是一个 graph , 也就是demo中完整的图。demo中的input和output是 完整的图的输入输出。
2023-11-24 11:57:28 1234
原创 ubuntu访问github慢
https://juejin.cn/s/github%E6%89%93%E5%BC%80%E6%85%A2%E6%80%8E%E4%B9%88%E5%8A%9Eubuntu
2023-11-17 14:05:46 243
原创 tensorrt: pycuda, onnx, onnxruntime, tensorrt,torch-tensorrt 安装
这是一种统一的神经网络模型定义和保存方式,上面提到的除了tensorflow之外的其他框架官方应该都对onnx做了支持,而ONNX自己开发了对tensorflow的支持。对于caffe2,pytorch,mxnet,chainer,CNTK等框架则是首先要将模型转为 ONNX 的通用深度学习模型,然后对ONNX模型做解析。然后安装tensorrt python 和 onnxruntime:https://zhuanlan.zhihu.com/p/467401558。tensorRT安装和示例。
2023-11-09 20:52:33 176
原创 部署系列0ubuntu, nvidia driver, cuda, cudnn, pytorch-gpu, opencv安装
上面的教程是通过https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html Package Manager Installation的方法安装cudnn的。sudo apt-get install cuda-drivers-418 安装特定版本的驱动。ubuntu-drivers devices 寻找可以安装的驱动。除了以上的 通过下runfile来安装,也可以通过包安装。Ctrl + Alt + Delete 退出tty模式。
2023-11-09 20:11:32 188
原创 basic_sr介绍
首先DataParallel是单进程多线程的方法,并且仅能工作在单机多卡的情况。而DistributedDataParallel方法是多进程,多线程的,并且适用与单机多卡和多机多卡的情况。当我们的服务器上有多个GPU,我们应该指明我们使用的GPU是哪一块,如果我们不设置的话,tensor.cuda()方法会默认将tensor保存到第一块GPU上,等价于tensor.cuda(0),这将会导致爆出out of memory的错误。直接参看:https://docs.wandb.ai/quickstart。
2023-10-18 15:14:18 306
原创 轻量级超分网络:Edge-oriented Convolution Block for Real-timeMM21_ECBSR 和 eSR
训练的时候网络右五个分支组成,在inference的时候可以利用re-parameteize技术合并为一个conv-3x3,这样推理的速度和效率都得到提高,精度基本上没有损失。多分支结构,以及dense connections 可以丰富特征提取和表示, 虽然不会引入太多 FLOPs, 但是会牺牲并行化速度,以及受到DDR 低带宽的影响。另外一些 delite conv等其他卷积方法也有被提出来提高 网络性能,但是在GPU,NPU上可能没有被很好的优化。一个单独的conv-3x3。关于重参数化具体实现。
2023-10-18 15:06:07 455
原创 pretrained model的参数修改,满足自己创建的net
修改为处理rgb图的三个通道,如果要想加载作者提供的pretraine weight, 则需要修改一下。中的网络模型是处理raw图的 4个通道。
2023-10-18 15:00:23 213
原创 git和github的使用
这就表示已成功连上github。git branch --set-upstream 本地新建分支名 origin/远程分支名 :新建本地分支和远程分支关联。git branch --set-upstream 本地新建分支名 origin/远程分支名 :新建本地分支和远程分支关联。git branch -a :加上-a参数,可以查看远程分支,远程分支会用红色表示出来(开了颜色支持的前提下)git branch --set-upstream-to=origin/master 关联远程分支。
2023-10-11 23:46:04 695
原创 tonemapping:Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images
最终公式9将 公式3中的L(x,y)替换为 V1, 然后解释了为什么是 dodging 和 burned.每个尺度求一个高斯差分。若高斯差分的值小于某个阈值,则认为该尺度是平坦的。利用dodging and burning方法将公式3变为公式9。进而找到满足小于阈值条件下的最大的尺度 s, 命名为sm.某个点的像素是 应该降低还是上升应该受到周围像素的影响。以上其实是找到该像素周围最大的平坦区域。其中公式9的原理是什么呢?公式5,6,7表示高斯差分。公式8找到满足条件的s。
2023-08-10 10:05:50 172
原创 pytorch分类和回归:阿里天池宠物年龄预测
阿里天池宠物年龄预测https://tianchi.aliyun.com/competition/实验了多种方法,最终成绩并不是特别好,比赛结束后如果有更好的思路,欢迎指教。其他方法:参考:torch.nn.CrossEntropyLoss() = log_softmax + nll_loss详细介绍:https://zhuanlan.zhihu.com/p/159477597描述分布的差异,如果分类的目标不是one-hot而是soft-label的时候可以用https://zhuanlan.zhihu
2023-07-27 15:06:20 1182 7
原创 IDR: Self-Supervised Image Denoising via Iterative Data Refinement sensenoise-500 dataset
这里的n表示的是sensor的噪声模型(也可以是采样得到的,参考作者另一篇论文rethinking noise).由于 新的数据集 更接近 noisy-clean 数据,因此训练的结果对于noisy的表现会更好。3.因此可以迭代训练,不断生成新的less biased数据集, 训练新的model。这样改进下来,和正常训练差别不大了,除了每个epoch要更新一次数据集。以上迭代训练需要生成多次数据集,训练多次model.对噪声图像再添加噪声,得到 噪声更大的图像。1.训练F0,生成新的数据集。
2023-07-18 10:18:31 491 1
原创 raw denoise:NERDS: A GENERAL FRAMEWORK TO TRAIN CAMERA DENOISERS FROM RAW-RGB NOISY IMAGE PARIS
1)pair, 2)噪声模型合成噪声图,3) 无监督unpair, 和4)作者提出的利用down scale图近似ground truth。损失函数是 估计 的 noisy image 与 ground truth的L1。2)卷积网络学习raw2srgb的转换。1)利用重参数化技术噪声水平估计。3)denoiser的设计。
2023-06-27 15:04:10 201
原创 raw denoising: Learnability Enhancement for Low-light, ELD,rethinking noise synthesis
对于场景很暗的图像,又lowbit的情况下,数据量比较少,难以通过统计信息得到 比较多有价值的信息。通过以上步骤可知,在已知 clean-noisy(noisy可以是合成的) pair和噪声参数的情况下可以得到增强后的clean-noisy pair。和一般的通道颜色增强还是不同的,这里clean, noisy的通道都发生变化,增强了数据的多样性同时保持噪声model。泊松噪声的参数可以通过flat frame标定得到,而其他噪声作者采用采样的方式得到,从哪里采样呢?
2023-06-19 14:36:29 499 2
傅里叶变换及其应用(斯坦福大学stan).pdfbook.rar
2019-09-21
机器人状态估计英文版
2017-09-11
mfc:单文档中对话框类调用视图类和框架类成员变量的实例
2017-02-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人