自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木盏

You only live once.

  • 博客(334)
  • 资源 (5)
  • 收藏
  • 关注

原创 Pytorch实现多GPU并行训练(DDP)

Pytorch实现并行训练通常有两个接口:DP(DataParallel)和DDP(DistributedDataParallel)。目前DP(DataParallel)已经被Pytorch官方deprecate掉了,原因有二:1,DP(DataParallel)只支持单机多卡,无法支持多机多卡;2,DP(DataParallel)即便在单机多卡模式下效率也不及DDP(DistributedDataParallel)。

2023-06-29 15:30:30 4693 9

原创 CVPR2023最佳论文提名(12篇)

本文对CVPR2023公布的12篇最佳论文候选文章进行统一梳理,所有文章链接均附上。

2023-06-19 22:54:51 1802 1

原创 图文多模态模型CLIP

CLIP带给我的震撼是超过transformer的,这是OpenAI的重要贡献之一。就如官网所描述的:用对比学习(Contrastive Learning)来对齐约束图像模型和文本模型。用文本嵌入指导图像学习,图像嵌入指导文本学习。这样一来,图像分类进入了CLIP时代,不需像传统深度学习图像分类一样,先定义出类别范围,然后准备各类别的数据(比如MNIST的十分类,ImageNet的千分类)。我们有了CLIP,可以直接任意给出一个class set如{“cat”,“dog”, “horse”,“Other”}

2022-12-05 23:22:57 4790 1

原创 轻量级Visual Transformer模型——LeViT(ICCV2021)

LeViT是FAIR团队发表在ICCV2021上的成果,是轻量级ViT模型中的标杆,文章对ViT中多个部件进行的改进,如加速策略等,对很多工程化铺设ViT系列模型都是很有借鉴意义的。按说,近期出现的优质模型非常多,各种冲击SOTA的,详情可戳我整理的小综述《盘点2021-2022年出现的CV神经网络模型》。但我为何会单独对LeViT拿出来进行详细剖析呢?原因很简单:LeViT非常工程实用,是一款足够优秀的轻量级视觉transformer模型。市面上很多轻量级模型都进入了一个误区:大家都在比拼FLOPs数和

2022-03-03 20:19:24 9973 5

原创 盘点2021-2022年出现的CV神经网络模型

在transformer席卷CV领域之后,掀起了一股新型神经网络模型的涌现热潮。短短一两年时间,研究者们从不同结构领域冲击着SOTA,有ViT的,有CNN的,甚至还有纯MLP的。其中,不乏有一些启发性和奠基性的模型出现,隐约感觉到这两年是基础模型的爆发年。ViT引领了继2012年AlexNet和2015年ResNet之后的第三个基础模型爆发潮。于是,木盏以此博文做一个不是很完全的综述,整理给大家浏览,说不定可以遇到有帮助的trick。

2022-02-22 01:13:01 16038 2

原创 Swin Transformer全方位解读【ICCV2021马尔奖】

自从ViT、DETR等尝试把language模型中的王炸transformer使用到视觉领域并得到还不错的验证效果后,研究者们一直在致力于“**如何更好地将语言模型建模到视觉**”这个问题。ViT直接把图片划分patch,用对待word的方式来对待每个patch,轻松将图片建模成sentence;而DETR则需要CNN辅助提取特征,而transformer只是当一个neck。后者更像是一个过渡模式,咱们本文不做过多讨论。

2021-10-18 23:15:11 12681 9

原创 令人心动的transformer

如果非要找一个模型来作为近三年来AI算法进展的突出代表,我认为transformer定会高票当选。本文作为算法解析文章,倡导思想为主,公式为辅,希望有助于大家理解transformer。行文逻辑为总-分-总结构。本文所有未标来源的图片均为本人所画,引用时请附上本文链接。

2021-04-12 11:31:24 4198 7

原创 目标检测中的b-box回归损失函数(IOU,GIOU,DIOU,CIOU)

目标检测作为一种经典CV任务,大致可以认为是三个子任务的集合:1. 确定目标大概位置;2. 分类出目标类别;3. 回归出检测框的宽高;这三种子任务分别需要对应损失函数的反传来学习。今天介绍的b-box回归损失函数主要是面向第三个子任务而设计的损失函数。1. IOU全称Intersection-Over-Union,即交并比。计算预测框和标注框(即GT框)的交并比,就可以知道它们的“贴合程度”好不好,作为调整模型的指导。原文链接:[1608.01471] UnitBox: An Advance

2021-03-11 12:40:12 6270 4

原创 【CVPR2021】RepVGG:重参数化——让VGG再次强大

这里的VGG指代各种平铺卷积的CNN,不带resnet那种shortcut。难得在这么浮躁的时代还有人在钻研改进VGG-style的CNN。VGG作为经典CNN的代表,事实上到如今都没有被淘汰,依然活跃在各种工程中。国际惯例,先放出原文:RepVGG: Making VGG-style ConvNets Great Again链接:https://arxiv.org/abs/2101.03697论文第一作者丁霄汉在知乎的解析:https://zhuanlan.zhihu.com/p/344324

2021-02-26 17:57:48 6294 3

原创 【GNN】图注意力网络GAT(含代码讲解)

毫无疑问,图神经网络(Graph Neural Networks)是泛计算机视觉领域内继CNN、GAN、NAS等之后的又一个研究热点,非常powerful。GAT是空域GNN的代表模型,Bengio大佬团队出品,发表在ICLR2018,目前谷歌引用已经1k了。它的特点是,很适合作为上手GNN模型。

2020-03-06 17:57:02 37143 45

原创 【ICCV2019】probabilistic face embeddings 概率人脸嵌入

概率人脸嵌入PFE:http://openaccess.thecvf.com/content_ICCV_2019/papers/Shi_Probabilistic_Face_Embeddings_ICCV_2019_paper.pdf这篇博文主体为对PFE的精细翻译,附带本人加的一些注释。摘要 通过比较隐语义空间的面部特征,嵌入方法已经在人脸识别领域取得了成功。然而,在完全无约束...

2019-10-29 11:35:01 7323 2

原创 Focal Loss(ICCV2017 best student paper)

Focal Loss由FAIR提出。Kaiming包揽了ICCV2017的最佳论文(Mask R-CNN)和最佳学生论文(Focal Loss)。按照国际惯例,给出Focal Loss的论文标题和链接:Focal Loss for Dense Object Detection http://openaccess.thecvf.com/content_ICCV_2017/papers/L...

2019-05-05 19:22:54 2887

原创 WDSR(NTIRE2018超分辨率冠军)【深度解析】

s超分辨率(super-resolution)的通俗解释就是:将低分辨率的图像通过算法转换成高分辨率图像。听起来似乎很神奇,这样是不是可以把低清电影转换成高清了?就现在来看,基于深度学习的超分辨率(简称SR)已经达到了amazing的效果。当然,以木盏的习惯就是,只在博文中讨论干货。这篇博文要解析的算法叫做WDSR,来自UIUC的华人学生JiaHui Yu的论文。在SR界有一个比赛,叫做N...

2018-12-17 17:29:27 29065 46

原创 【复现】deblurGAN: 用GAN使模糊图片变清晰(ECCV2018)

requirements:LinuxPython3.6Github地址:https://github.com/RaphaelMeudec/deblur-gan直接用这个代码会有问题,因为作者升级了网络结构,但参数没有重训,所以无法直接加载预训练参数。只能重训,或者恢复到以前的模型。 所以,直接可以加载老版本的代码:https://github.com/RaphaelMeud...

2018-11-07 10:46:43 19020 31

原创 MUNIT训练自己的数据集(图像风格转换)

MUNIT是ECCV2018的一篇关于不同风格图像之间转换的文章,是UNIT的衍生版本。作者是很大方滴,在gayhub上就可以找到munit的代码。Munit做了一件说明事情呢?我们看图就知道了:通过几笔简笔就可以生成真实感的图像,这就是munit的用处之一了。准确来说,munit是cycleGAN的强化版本。论文地址:http://openaccess.thecvf.com/co...

2018-11-04 20:25:08 9241 8

原创 【AI数学】Group Normalization(何恺明ECCV2018最佳论文提名)

声明:原创文章,欢迎转载,但必须经过本人同意。论文标题:《Group Normalization》论文链接: https://arxiv.org/pdf/1803.08494.pdf作为两年一届的计算机视觉顶会ECCV前不久在德国召开,引起了诸多CVer的关注。其中,最佳论文被一个3D朝向的论文斩获,提出了具有普世性价值的AAE。对,想要拿最佳paper,你的paper一定要提出具有普...

2018-10-20 14:25:08 3767 7

原创 【AI数学】Batch-Normalization详细解析

声明:十分欢迎转载,但须先征求本人同意。BN目前已经成为了调参师面试必问题之一了。同时,BN层也慢慢变成了神经网络不可分割的一部分了,相比其他优化操作比如dropout, l1, l2, momentum,影子变量等等,BN是最无可替代的。论文标题: 《Batch Normalization: Accelerating Deep Network Training b y Reducing ...

2018-10-17 16:28:12 14030 18

原创 yolo系列之yolo v3【深度解析】

yolo_v3是我最近一段时间主攻的算法,写下博客,以作分享交流。 看过yolov3论文的应该都知道,这篇论文写得很随意,很多亮点都被作者都是草草描述。很多骚年入手yolo算法都是从v3才开始,这是不可能掌握yolo精髓的,因为v3很多东西是保留v2甚至v1的东西,而且v3的论文写得很随心。想深入了解yolo_v3算法,必须先了解v1和v2。以下是我关于v1和v2算法解析所写的文章: v1算法...

2018-09-12 16:24:48 493516 1618

原创 生成对抗网络——GAN(一)

Generative adversarial network据有关媒体统计:CVPR2018的论文里,有三分之一的论文与GAN有关! 由此可见,GAN在视觉领域的未来多年内,将是一片沃土(CVer们是时候入门GAN了)。而发现这片矿源的就是GAN之父,Goodfellow大神。 ~~~ 生成对抗网络GAN,是当今的一大热门研究方向。在2014年,被Goodfellow大神提出来,当时的G...

2018-07-30 23:38:08 90715 48

原创 Overleaf中插图需要的pdf图片格式制作方法(python)

Overleaf很多模板中,需要用pdf格式来插入图片,即将png/jpg图片转化成pdf,才能插入此图。这么一来,就需要额外做一步转化。

2024-08-23 18:21:24 335

原创 深度图可视化

首先,深度图的每个像素点对应的是深度值,并不能直接转化为RGB图,其次,深度图的像素取值范围也不是0-255。于是,需要一些转换手段以辅助可视化。当我们估计出一个深度图矩阵时,想可视化深度图的效果,则可以参考本文。

2024-07-29 16:52:51 321

原创 【解决】CondaHTTPError: HTTP 000 CONNECTION FAILED for url

Conda新建虚拟环境的时候遇到error,在stackoverflow上着了好久都没有合适的解决方案。最终通过设置国内代理获得解决。

2024-07-08 22:21:02 721

原创 【pytorch扩展】CUDA自定义pytorch算子(简单demo入手)

Pytorch作为一款优秀的AI开发平台,提供了完备的自定义算子的规范。我们用torch开发时,经常会因为现有算子的不足限制我们idea的迸发。众所周知,CUDA/C++都是编译性语言,编译以后再调用会比python这种解释性语言更快。所以,我们需要对CUDA有一个编译过程。直接“python setup.py install”即可完成cuda算子的编译和安装。这里的"sum_double_op"就是我们用CUDA写的算子。那这个可以直接调用,并且可以传递梯度的算子,需要怎么做呢?

2024-07-04 22:50:27 472

原创 pytorch中的contiguous()

我们随便初始化的张量一开始都是连续张量,后来在计算中为了加速和节省存储,我们只会操作张量的索引,比如常见的narrow(), view(), expand() 和 transpose()等。这样就会产生在内存上不连续,或者索引值顺序乱序的情况。由这个例子,我们可以看出,二维张量转置以后会变得不连续,我们用contiguous做连续化以后并不会覆盖原来的张量,而是重新开辟了一块地址来存储连续的新张量。所以,contiguous只是在存储上做调整,不会改变张量的值。将张量在内存上调整为连续。

2024-07-04 22:28:36 458

原创 【张量乘法】pytorch中的mul、dot、mm、matmul

张量的乘法是pytorch等神经网络开发框架中最常见、最基本的操作之一。

2024-05-27 10:11:10 724 2

原创 一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚,于是本文梳理一下,既方便自己记忆,也方便小白学习。

2024-05-24 13:55:03 1698

原创 三维空间中的球坐标系

初中数学接触过极坐标,用半径r和与x轴夹角θ来表示二维平面上一个点的位置。球坐标系就是极坐标系在三维上的推广。球坐标系在三维场景中非常常见,在三维交互性的设计中也免不了球坐标系的应用,如AR/VR头显中的陀螺仪传感器等。

2024-05-17 11:19:37 598

原创 通过mask得到bbox(numpy实现)

在SAM的加持下,我们很容易得到物体的mask,但是物体的bbox信息通常也很有用。那么,我们可以写一个函数,立马可以通过mask得到bbox。

2024-05-07 17:33:41 299

原创 Django实验(远程访问+图片显示)

众所周知,Python除了不能生孩子什么都会。Python也是可以做web服务的。Python做web有一个重点优势是:做一个快速的AI Demo。第一步:安装一个版本5.0以上django第二步:构建咱们的Django工程,我取名为

2024-05-06 19:36:09 519

原创 向量的旋转矩阵

那么,这一理论的数学机理是什么呢?以及,这个旋转角度该怎么用矩阵表示呢?本文用二维向量旋转来推导旋转矩阵的公式。假设,我们有一个向量。我们用极坐标表示向量P和向量Q,默认原点是向量的起点,分别表示P和Q与x轴正向的夹角。,准备通过一个旋转矩阵将其旋转到。矩阵的乘法可以表示旋转。

2024-05-01 17:31:26 969

原创 Linear Blend Skinning (LBS)线性混合蒙皮

假如我们重建好一个人体,现在用全新的姿态对其进行驱动。由图1,2可知,点A在胳膊关节的坐标依旧是(3,1),在手肘关节的坐标从(-1,1)变为了(1,1),我们。,那么手肘关节的坐标在变换后变成了(5,1)。注意,这里的0.8和0.2分别是两个关节点对点A影响点权重。我们最后得到的点A坐标即为(3.4,1)。答:可以通过欧氏距离,也可以自己规定,现在也有很多基于学习的方法。假设我们要确定一直手臂在弯折90度之后,表面的A点的移动位置。手臂弯折后A点的位置就可以通过LBS来进行计算。A点受两个关节点影响。

2024-04-25 14:25:48 1588

原创 kmeans聚类sklearn实现(Python实验)

Kmeans毫无疑问,好用又“便宜”的算法,经常在很多轻量化场景中实现。所谓的“聚类”(Clustering),就是通过欧氏距离找哪些点构成一个簇。我们怎么决定哪些点属于哪一簇,以及每簇的中心分别是什么?

2024-04-09 12:52:32 365

原创 Python求空间中两条直线的距离及各自最近的点

已知空间中有两条异面直线,它们各自必有一个点距离另一条直线最近,并且最近点的连接也分别垂直这两条直线。

2024-04-08 23:15:35 229

原创 conda在【已有环境】上新建虚拟环境

在做Python工程时,经常遇到的一个问题就是:为了复现某个项目需要特地新建一个虚拟环境。但是,我们两个Project需要的环境几乎相同,只是有少数模块的版本互斥,这个时候都从0装一遍虚拟环境,就比较耽误时间。今天介绍的方法是:我们在已经建立好的虚拟环境的基础上再新建一个虚拟环境,不会影响原虚拟环境,即克隆虚拟环境。命令行如下:

2024-04-02 01:59:42 817

原创 将rgb图像加mask变差rgba图像(透明背景)

我们做demo的时候经常需要把人物或者物体分割出来,一个比较好的展示效果就是用分割mask把背景变成透明的,于是就需要将原本的rgb图像通过mask的指导变成rgba。

2024-04-01 14:01:03 287

原创 python读取ply文件

ply文件,是"Polygon File Format"的简称,即多边形文件格式。一般可以理解为,一个ply文件表示一个三维图形。python常见的读取ply文件的方法有两个:plyfile和open3d

2024-03-28 20:56:20 1809

原创 python对类对象进行排序

排序是最常见的操作之一,对于优雅的python而言,绝大部分情况下不需要手动快排,调用内置排序函数。直接对sorted函数增加一个key描述即可。但如果想根据类对象列表的某个类属性进行排序呢?

2024-03-28 01:10:07 284

原创 numpy矩阵做二维卷积

卷积在数据处理上是非常常用的手段,不局限于深度学习算法,比如传统的Sobel边缘检测等等,都需要用到卷积算法。这里用到scipy来做二维卷积。模式选用请参考文字《为什么需要用到numpy来做二维卷积呢?答:轻量、方便手写卷积核。

2024-03-27 16:34:04 619

原创 PSNR/SSIM/LPIPS图像质量评估三件套(含代码)

PSNR,峰值信噪比,是基于MSE的像素比较低质量评估,一般30dB以上质量就不错,到40dB以上肉眼就很难分别了。在图像质量评估上,有三个重要指标:PSNR,SSIM,LPIPS。LPIPS,利用AI模型来量化图像之间的相似性。取值范围也是[0,1],与SSIM相反,像这种常见的图像质量评价指标,都会收录到torchmetrics里面。SSIM,结构相似性,从分布上来比较相似性,量化到(0-1)之间,代码里给了两种PSNR实现方法,计算结果差别不大。LPIPS是越小则证明图像质量越好。

2024-03-21 15:16:20 1337

原创 Mesh网格obj文件构成解析

众所周知,Mesh网格是三维重建的常用手法,通过顶点-三角面的形式来完成对三维物体的表达。其中,最常见的Mesh网格文件格式就是obj格式。f后面的三个数字表示顶点的索引值,一个用三个顶点,对应的索引值是[1,2,3]。三个v和1个f,我们保存退出以后,即可用MeshLab打开这个。在文件中,三角形的顶点用三个v表示,f表示三个顶点的一个三角面。

2024-03-18 22:08:00 1329

CVPR2018模板latex

这是CVPR论文的latex模板,由于国内访问overleaf经常不稳定、网速也慢,而且需要注册登录十分麻烦。于是我传到CSDN上方便大家交流学习使用。

2020-12-02

FCOS检测算法训练模型

FCOS检测算法在VOC数据集上的训练模型,直接下载可进行inference。配合代码https://github.com/leviome/fcos_pure 使用。具体教程看README.

2020-11-19

graphviz-2.38

在网上找到的安全无毒的graphviz-2.38,象征性收1分下载分

2018-08-05

CVPR2018论文_oral_2

CVPR2018的oral论文合集,Oral一共有68篇,受上传文件大小限制,分成part1和part2压缩文件。Oral论文是CVPR中最优质的论文,best paper/honorable mention什么的都在oral里面。我花了很多工夫整理出来,来分享给各位CVer。还有少数几篇论文暂时没公开,所以只找出64篇。还有一点要说明:该文档仅作交流学习用处,不能当作商业用途。

2018-06-25

inception_dec_2015

这是来自https://storage.googleapis.com/download.tensorflow.org的模型文件,经常链接失效,或者下载速度奇慢。我花了很大功夫下载好,供大家使用。

2017-11-18

空空如也

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

TA关注的人

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