- 博客(56)
- 收藏
- 关注
原创 RTX 5080 PyTorch2.8 Ubuntu24.04 安装Neural Render排坑
3.修改torch/utils/cpp_extension.py中第1631行的[‘ninja’, ‘-v’]改成[‘ninja’, ‘–version’]主要参考https://winterwindwang.github.io/2021/07/22/nerual_rendered_build.html。1.CUDA与PyTorch支持的CUDA版本要配套,分别是nvcc -V和torch.version.cuda;进入文件夹使用ninja编译。.scalar_type()替换.type()
2025-04-13 19:33:15
237
原创 Adversarial Patch(PyTorch)实现
Adversarial Patch是2017年NIPs的文章,网上有很多复现代码,但主要集中于TF。在找代码的过程中发现了Adversarial Robustness Toolbox包,这个包集成了很多对抗攻击方法,包括酚类、检测、跟踪,甚至还有语音识别,而且提供了TF、Pytorch等多种框架的实现方式。很值得大家一试。...
2022-06-15 22:50:43
1830
2
原创 RoIPooling与RoIAlign
直接上代码。import numpyimport torchimport torchvisiontorch.random.manual_seed(0)x1, y1, x2, y2 = 0.0, 16.0, 16.0, 32.0#RoIPooling的池化后输出3×3大小的特征图.图像尺寸为224,特征图尺寸为14,下采样倍数16.RoIPooling = torchvision.ops.RoIPool(output_size=3, spatial_scale=1/16)#设定原始图像的尺寸
2022-04-04 11:26:17
608
原创 RPN-3 标签分配与选取正负样本
本文介绍RPN是如何筛选正负样本。对应图中的红色部分。 假设输出特征图尺寸为13×19,在特征图的每个位置上会放置15个Anchor,则总共有13×19×15=3705个Anchor。但是一张图像上的Ground Truth是有限的,不能要求每一个Anchor都试图去回归Ground Truth,因此必须要有取舍。RPN从所有的Anchor中挑选出256个样本,其中正样本最多为128个,不够的用负样本补齐,并通过这256个样本进行训练。 首先计算图像中所有Ground Truth与Anchor
2022-04-02 20:58:44
1228
2
原创 RPN-2 Anchor Generator与RPN Head
计算得到骨干网络的输出特征图后,进行两个步骤:1)生成Anchor并放置到特征图上的每一个点;2)将输出特征图输入RPN Head,在特征图的每个位置上预测Anchor的目标与回归参数。对应于图中的红色框部分。 def forward(self, image_list, feature_maps): # type: (ImageList, List[Tensor]) -> List[Tensor] # 获取每个预测特征层的尺寸(height, width)
2022-04-01 21:27:06
604
1
原创 RPN-1数据处理
简介 Region Propsal Network由任少卿等人提出,通过深度卷积网络从特征图上生产候选区域(Proposals),极大地提升了执行速度,并实现了端到端的训练。RPN也是Faster R-CNN的第一阶段框架,虽然距提出已有6年的时间,但是其中的基本机理对今天的目标检测任务仍有很大的启发意义,也适合新手作为入门的第一个项目。其后的Cascade R-CNN、Libra R-CNN等算法也对RPN中存在的问题进行了改进。
2022-04-01 19:57:05
548
1
原创 Vision Transformer-Base流程图
流程图注意的是,每一次Encoder执行完输出的特征图尺寸是一样的,会消耗较多的资源。训练时需要大量的额外数据才能达到和CNN近似的效果,我认为的主要原因是没有和CNN一样带有一定的先验知识(平移不变等)。...
2021-11-21 10:27:08
3271
原创 Pytorch unfold和fold
今天撸代码看到了unfold和fold,简单记述一下用法。文档中说明输入大小为(N,C,),输出为(N,C×连乘,L)。计算L的公式中,d为数据的空间维度,假设输入数据为(1,3,4,4),则可以将其看作是batch=1,channel=3,4×4的图像,4×4为二维,所以d=2。unfold到底在计算什么呢?我们平时调用pytorch的卷积接口,使用的是Conv,是一个完全封装好的过程。使用unfold,相当于将kernel滑动扫过的数据提取出来。比如刚刚(1,3,4,4),如果使用kernel_
2021-01-13 15:01:00
4804
原创 PyTorch中的梯度计算2
上篇博客已经说到,torch对梯度求导,仅保留叶子节点的梯度。这里使用FGSM进行说明。FGSM的公式为:对损失函数进行反传,得到原图x的梯度方向,在梯度方向上添加定长的扰动。结果为:这里打印了x梯度及其方向的[0,0,0,0:10]。但这里存在的一个问题是,我们仅能获得原图x的梯度,原图x为叶子结点。之后原图x送入网络,中间任何层的输出,均不是叶子结点,直至最后通过全连接输出结果(叶子节点)。那应当如何保存,数据通过网络中间层而产生的梯度呢?知乎上的解答写的很好:开发者说是因为当初开发时
2020-11-16 16:17:26
568
原创 PyTorch中的梯度计算1
主要用pytorch,对其他的框架用的很少,而且也没经过系统的学习,对动态图和梯度求导没有个准确的认识。今天根据代码仔细的看一下。import torchfrom torch.autograd import Variabletorch.manual_seed(1)x = torch.Tensor([2])y = torch.Tensor([10])loss = torch.nn.MSELoss()w = Variable(torch.randn(1),requires_grad=True)
2020-11-13 22:51:01
3780
1
原创 Anchor-Free算法-CornerNet
CornerNet是2018年ECCV的文章,使用人体关键点检测的思想完成目标检测任务。使用卷积神经网络进行目标检测任务已经取得了显著的效果。而目标检测中最常使用的一种机制就是锚框机制。不论是单阶段还是双阶段方法都应用了锚框机制。我个人理解呢,双阶段的锚框,如Faster-RCNN,使用不同大小、比例的锚框对图像进行遍历,判断出前后背景,并根据GT对锚框的位置进行回归;单阶段在不同缩放比例的特征图上放置锚框,对框的位置进行回归。但使用锚框存在多个问题,1.用不同的锚框对图像遍历,会产生非常非常多的锚框,
2020-09-07 16:47:05
482
原创 DCNv2阅读笔记
本文是对DCNv1的改进版本。DCNv1通过学习偏移增大卷积的感受野,虽然增大的感受野对任务是有帮助的,但是增大的部分可能远远超过了我们需要的部分,有点过犹不及,使得提取出的特征包含无关的图像信息。所以本文的主要目标就是解决这个问题。首先作者在网络中更大规模的使用变形卷积,提升网络的建模能力。其次通过老师网络指导主干网络对偏移的学习,控制其范围。(有点博弈的意思)作者回顾了DCNv1提出的可变形卷积与DCN ROI Pooling。通过可视化DCN训练中的感受野变化,作者发现感受野的激活点主要集中在目标
2020-09-02 20:11:38
550
原创 DCNv1阅读笔记
提出由于卷积网络卷积核的结构固定,导致对图像的建模不精确,对此作者提出了可变性卷积DCN和可变形ROI Pooling,两种方法都是在空间中通过学习偏移量来扩展卷积核的采样空间,并且所增加的资源很少,也可以进行端到端的训练。如何对于目标的形状、角度等几何变换进行建模,一般来说有两种方法,一是获得大量的监督信息,但这样成本太高;二是通过手工设计,这类的方法以前有很多了,但这种方法泛化能力较差,而且复杂情况下也未必奏效。卷积神经网络在计算机视觉任务取得了显著的成果,但同样有着上述的问题,卷积结构固定,对目标
2020-09-02 10:58:48
416
原创 pytorch语法unsqueeze、squeeze和gather
今天看网上DCN的解读,顺带看了代码,决定这次把unsqueeze和gather搞明白。unsqueeze的作用跟字面意思一样,与squeeze作用相反,就是扩维,请看代码。>>> import torch>>> a = torch.tensor([1,2,3,4,5])>>> a.shapetorch.Size([5])可以看到a的维度为1.>>> b=a.unsqueeze(dim=0)>>>
2020-09-02 08:26:36
1102
原创 Towards Large yet Imperceptible Adversarial Image Perturbations with Perceptual Color Distance
本文是白盒方法,已开源。
2020-08-17 08:07:59
322
1
原创 C&W攻击
C&W是非常经典的算法,它总结了之前算法的一些优缺点,成为了对抗样本生成算法的一个标杆。之前读了很多遍都没有踏踏实实的读下去,这是第一次全文认真读完,也有一些不明白的地方,希望能一起讨论。...
2020-08-13 00:13:52
3402
原创 暗通道先验对单图像去雾 Single Image Haze Removal Using Dark Channel Prior
原文发表在PAMI2011,一作何凯明。# -*- coding: utf-8 -*-import cv2import numpy as npimport argparsedef dark_channel(img, size = 15): r, g, b = cv2.split(img) min_img = cv2.min(r, cv2.min(g, b))#求出三...
2020-04-26 21:58:27
535
原创 NMS代码详解
dets = np.array([ [204, 102, 358, 250, 0.5], [257, 118, 380, 250, 0.7], [280, 135, 400, 250, 0.6], [255, 118, 360, 235, 0.7]])thresh = ...
2020-04-05 23:48:20
1126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人