深度学习
文章平均质量分 94
太阳花的小绿豆
这个作者很懒,什么都没留下…
展开
-
TensorRT安装记录(8.2.5)
根据官方对于TensorRT的介绍可知,TensorRT是一个针对已训练好模型的SDK,通过该SDK能够在NVIDIA的设备上进行高性能的推理。那么TensorRT具体会对我们训练好的模型做哪些优化呢原创 2022-09-20 16:04:06 · 19004 阅读 · 15 评论 -
MobileViT模型简介
自从2010年ViT(Vision Transformer)模型的横空出世,人们发现了Transformer架构在视觉领域的巨大潜力。近些年,越来越多的科研人员投入Transformer的怀抱,视觉领域的各项任务也不断被Transformer架构模型刷新。Transformer虽然强大,但在现在看来落地仍存在很多难点。比如模型参数太大(比如ViT Large Patch16模型光权重就有1个多G),而且算力要求太高,这基本就给移动端部署Transformer模型判了死刑。原创 2022-09-05 23:43:49 · 37344 阅读 · 38 评论 -
U2Net网络简介
U2Net是阿尔伯塔大学(University of Alberta)在2020年发表在CVPR上的一篇文章。该文章中提出的U2Net是针对Salient Object Detetion(SOD)即显著性目标检测任务提出的。而显著性目标检测任务与语义分割任务非常相似,只不过显著性目标检测任务是二分类任务,它的任务是将图片中最吸引人的目标或区域分割出来,故只有前景和背景两类。......原创 2022-08-09 21:03:20 · 23378 阅读 · 23 评论 -
RepVGG网络简介
VGG网络是2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出的。在2014到2016年(ResNet提出之前),VGG网络可以说是当时最火并被广泛应用的Backbone。后面由于各种新的网络提出,论精度VGG比不上ResNet,论速度和参数数量VGG比不过MobileNet等轻量级网络,慢慢的VGG开始淡出人们的视线。...............原创 2022-07-10 15:31:08 · 33568 阅读 · 31 评论 -
YOLOX网络结构详解
在之前文章中我们已经聊过YOLO v5了,今天我们再来聊聊YOLOX。YOLOX是旷视科技在2021年发表的一篇文章,当时主要对标的网络就是很火的YOLO v5,如果对YOLO v5不了解的可以看下我之前的文章。那么在YOLOX中引入了当年的哪些黑科技呢,简单总结主要有三点,decoupled head、anchor-free以及advanced label assigning strategy(SimOTA)。............原创 2022-06-07 18:12:17 · 46283 阅读 · 39 评论 -
FCOS网络解析
在之前讲的一些目标检测网络中,比如Faster RCNN系列、SSD、YOLOv2~v5(注意YOLOv1不包括在内)都是基于Anchor进行预测的。即先在原图上生成一堆密密麻麻的Anchor Boxes,然后网络基于这些Anchor去预测它们的类别、中心点偏移量以及宽高缩放因子得到网络预测输出的目标,最后通过NMS即可得到最终预测目标。那基于Anchor的网络存在哪些问题呢...原创 2022-05-21 11:05:32 · 21993 阅读 · 22 评论 -
HRNet网络简介
这篇文章是由中国科学技术大学和亚洲微软研究院在2019年共同发表的。这篇文章中的HRNet(High-Resolution Net)是针对2D人体姿态估计(Human Pose Estimation或Keypoint Detection)任务提出的,并且该网络主要是针对单一个体的姿态评估(即输入网络的图像中应该只有一个人体目标)。人体姿态估计在现今的应用场景也比较多,比如说人体行为动作识别,人机交互(比如人作出某种动作可以触发系统执行某些任务),动画制作(比如根据人体的关键点信息生成对应卡通人物的动作)等等原创 2022-05-12 17:27:55 · 84452 阅读 · 68 评论 -
Mask R-CNN网络详解
Mask R-CNN是2017年发表的文章,一作是何恺明大神,没错就是那个男人,除此之外还有Faster R-CNN系列的大神`Ross Girshick`,可以说是强强联合。该论文也获得了ICCV 2017的最佳论文奖(`Marr Prize`)。并且该网络提出后,又霸榜了MS COCO的各项任务,包括目标检测、实例分割以及人体关键点检测任务。在看完这边文章后觉得Mask R-CNN的结构很简洁而且很灵活效果又很好(仅仅是在Faster R-CNN的基础上根据需求加入一些新的分支)。原创 2022-04-05 17:10:04 · 47834 阅读 · 62 评论 -
YOLOv5网络详解
在前面我们已经介绍过了YOLOv1~v4的网络的结构,今天接着上次的YOLOv4再来聊聊YOLOv5,如果还不了解YOLOv4的可以参考之前的博文。YOLOv5项目的作者是Glenn Jocher并不是原Darknet项目的作者Joseph Redmon。并且这个项目至今都没有发表过正式的论文。之前翻阅该项目的issue时,发现有很多人问过这个问题,有兴趣的可以翻翻这个issue #1333。作者当时也有说准备在2021年的12月1号之前发表,并承诺如果到时候没有发表就吃掉自己的帽子。...原创 2022-03-20 14:53:57 · 231858 阅读 · 159 评论 -
YOLOv4网络详解
YOLOv4是2020年Alexey Bochkovskiy等人发表在CVPR上的一篇文章,并不是Darknet的原始作者Joseph Redmon发表的,但这个工作已经被Joseph Redmon大佬认可了。之前我们有聊过YOLOv1~YOLOv3以及Ultralytics版的YOLOv3 SPP网络结构,如果不了解的可以参考之前的视频。原创 2022-03-03 18:06:12 · 56273 阅读 · 38 评论 -
Grad-CAM简介
对于常用的深度学习网络(例如CNN),可解释性并不强(至少现在是这么认为的),它为什么会这么预测,它关注的点在哪里,我们并不知道。很多科研人员想方设法地去探究其内在的联系,也有很多相关的论文。今天本文简单聊一聊Grad-CAM,这并不是一篇新的文章,但很有参考意义。通过Grad-CAM我们能够绘制出如下的热力图(对应给定类别,网络到底关注哪些区域)。原创 2022-02-24 20:40:31 · 94989 阅读 · 98 评论 -
ConvNeXt网络详解
今年(2022)一月份,Facebook AI Research和UC Berkeley一起发表了一篇文章A ConvNet for the 2020s,在文章中提出了ConvNeXt纯卷积神经网络,它对标的是2021年非常火的Swin Transformer,通过一系列实验比对,在相同的FLOPs下,ConvNeXt相比Swin Transformer拥有更快的推理速度以及更高的准确率,在ImageNet 22K上ConvNeXt-XL达到了87.8%的准确率原创 2022-01-20 11:35:59 · 76542 阅读 · 43 评论 -
DeepLabV3网络简析
接着上篇DeepLab V2,本博文简单介绍下DeepLab V3(建议先去看下之前讲的DeepLab V1和DeepLab V2)。这是一篇2017年发表在CVPR上的文章。个人简单阅读完论文后感觉相比DeepLab V2有三点变化:1)引入了Multi-grid,2)改进了ASPP结构,3)把CRFs后处理给移除掉了。再吐槽一下,这篇论文看着感觉乱糟糟的。本篇博文就不按照论文的顺序去写了,直接按照我个人的想法去写。原创 2021-12-09 11:12:06 · 32741 阅读 · 36 评论 -
DeepLabV2网络简析
这是一篇2016年发布在CVPR上的文章。接着上一篇DeepLab V1网络简介,本文对DeepLab V2网络进行简单介绍。个人感觉相对DeepLab V1,DeepLab V2就是换了个backbone(VGG -> ResNet,简单换个backbone就能涨大概3个点)然后引入了一个新的模块ASPP(Atros Spatial Pyramid Pooling),其他的没太大区别。原创 2021-12-07 11:17:56 · 13641 阅读 · 6 评论 -
DeepLabV1网络简析
原论文名称:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs。这篇文章最早发表于2014年,是Google和UCLA等共同的杰作,也是一篇很经典的论文,DeepLab系列的第一篇论文。因为已经过了很久了,所以本博文只做部分简单的记录。原创 2021-12-04 19:11:22 · 20330 阅读 · 8 评论 -
Swin-Transformer网络结构详解
文章目录0 前言1 网络整体框架2 Patch Merging详解3 W-MSA详解Ω(MSA)\Omega (MSA)Ω(MSA)模块计算量Ω(W−MSA)\Omega (W-MSA)Ω(W−MSA)模块计算量4 SW-MSA详解5 Relative Position Bias详解6 模型详细配置参数0 前言Swin Transformer是2021年微软研究院发表在ICCV上的一篇文章,并且已经获得ICCV 2021 best paper的荣誉称号。Swin Transformer网络是Tran原创 2021-11-03 21:04:05 · 225634 阅读 · 157 评论 -
Pytorch1.10安装记录(CUDA11.3)
Pytorch刚更新到1.10,今天就简单尝个鲜,之前在使用1.9中有很多的UserWarning,在新版本中都已经修复了(强迫者的福音),推荐使用。关于Pytorch1.10更新的内容,请登录Pytorch官网查看。PyTorch官网:https://pytorch.org/文章目录查询NVIDIA GPU算力(可跳过)创建虚拟环境在线安装(CPU/GPU)安装CPU版本安装GPU版本检查GPU驱动版本更新GPU驱动安装Pytorch离线安装(CPU/GPU)安装CPU版本安装GPU版本查询NVI原创 2021-10-25 15:24:09 · 68065 阅读 · 26 评论 -
转置卷积(Transposed Convolution)
import torchimport torch.nn as nndef transposed_conv_official(): feature_map = torch.as_tensor([[1, 0], [2, 1]], dtype=torch.float32).reshape([1, 1, 2, 2]) print(feature_map) trans_conv = nn.ConvTranspose2原创 2021-10-13 15:27:30 · 43023 阅读 · 33 评论 -
Labelme分割标注软件使用
Labelme是一款经典的标注工具,支持目标检测、语义分割、实例分割等任务。今天针对分割任务的数据标注进行简单的介绍。开源项目地址:https://github.com/wkentaro/labelme原创 2021-09-07 17:16:54 · 43760 阅读 · 80 评论 -
EISeg分割标注软件使用
官方原话:EISeg(Efficient Interactive Segmentation)是基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了高精度和轻量级等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。飞桨(PaddlePaddle)是百度开源的深度学习框架,社区也比较活跃,关键是中文方便交流..原创 2021-09-07 17:06:29 · 40340 阅读 · 75 评论 -
pytorch转paddle推理模型
最近有个需求,是将训练好的pytorch模型转成paddlepaddle的inference_model,然后直接使用paddlepaddle载入使用。转换的工具主要使用paddle官方提供的X2paddle,对应项目链接:https://github.com/PaddlePaddle/X2Paddle官方文档中有对应pytorch模型转paddlepaddle模型的教程,但我只需要inference_model,所以我采用的方法是先将训练好的pytorch模型转成ONNX格式,然后在用X2Paddle原创 2021-08-25 15:15:36 · 6223 阅读 · 11 评论 -
使用k-means聚类anchors
在之前讲yolo理论基础知识时有提到过,从yolov2开始使用的anchors都是通过聚类得到的。如果想了解更多yolo相关的知识可以看看我在bilibili上录得视频:https://www.bilibili.com/video/BV1yi4y1g7ro今天补下之前没有细讲的聚类anchors相关知识,所使用的代码参考的是yolov3 spp以及yolov5中生成anchors的方法。文章目录K-means理论简介K-mean在anchors中的应用yolov5中聚类anchors代码讲解聚类anch原创 2021-08-14 17:32:29 · 24257 阅读 · 70 评论 -
HSV模型简介以及利用HSV模型随机增强图像
文章目录图像HSV模型简介RGB模型转HSV模型opencv关于HSV模型实验随机增强图像HSV图像HSV模型简介HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)(参考百度)。在HSV模型中,颜色是由色度(Hue),饱和度(Saturation),明度(Value)共同组成。 如图所示,HSV模型中色度(H原创 2021-08-07 15:15:12 · 29404 阅读 · 6 评论 -
数据增广:旋转,缩放,平移以及错切
在深度学习(图像领域)中,为了提升训练样本数量数据增广是非常常见的手段。比如:随机水平翻转随机色调(H)、饱和度(S)、明度(V)调整随机旋转,缩放,平移以及错切还有近几年常用的mixup,mosaic等等。今天简单讲讲随机旋转,缩放,平移以及错切方法,因为在之前yolov3 spp项目的数据读取部分有涉及到相关知识。本文会结合opencv来进行演示。文章目录仿射变换旋转、平移与缩放旋转与平移错切仿射变换在opencv中可以通过仿射变换来实现旋转,缩放,平移以及错切等一系列操作。仿射原创 2021-08-06 14:27:19 · 12538 阅读 · 7 评论 -
Wider Face数据集详解
根据官网的介绍,Wider Face数据集是最早是在2015年公开的v1.0版本。该数据集的图片来源是WIDER数据集,从中挑选出了32,203图片并进行了人脸标注,总共标注了393,703个人脸数据。并且对于每张人脸都附带有更加详细的信息,包扩blur(模糊程度), expression(表情), illumination(光照), occlusion(遮挡), pose(姿态),后面会进一步介绍。...原创 2021-07-22 16:39:07 · 24254 阅读 · 17 评论 -
PPOCRLabel使用中遇到的问题以及离线使用
PPOCRLabel是PaddleOCR中提供的一个半自动标注工具,使用起来非常方便,能够大幅提高标注效率。本篇博文简单记录下在使用PaddleLabel中遇见的问题(本篇博文只记录PPOCRLabel的安装使用,关于PaddleOCR的使用请自行阅读文档)。文章目录1 安装PPOCRLabel安装paddlepaddle安装pyqt5安装trash-cli(仅Linux环境需要)安装python-Levenshtein报错:Microsoft Visual C++ 14.0 or greater is原创 2021-07-10 19:31:03 · 6355 阅读 · 8 评论 -
Vision Transformer详解
论文名称: An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale论文下载链接:https://arxiv.org/abs/2010.11929原论文对应源码:https://github.com/google-research/vision_transformerPytorch实现代码: pytorch_classification/vision_transformer文章目录前言模型详解Vision原创 2021-06-26 14:50:39 · 262517 阅读 · 153 评论 -
Group Normalization详解
论文名称:Group Normalization论文地址:https://arxiv.org/abs/1803.08494在之前的文章中有介绍过BN(Batch Normalization),链接,以及LN(Layer Normalization),链接。今天来简单聊聊GN(Group Normalization)。在视觉领域,其实最常用的还是BN,但BN也有缺点,通常需要比较大的Batch Size。如下图所示,蓝色的线代表BN,当batch size小于16后error明显升高(但大于16后的效果确原创 2021-06-18 14:50:14 · 11606 阅读 · 13 评论 -
详解Transformer中Self-Attention以及Multi-Head Attention
原文名称:Attention Is All You Need原文链接:https://arxiv.org/abs/1706.03762最近Transformer在CV领域很火,Transformer是2017年Google在Computation and Language上发表的,当时主要是针对自然语言处理领域提出的(之前的RNN模型记忆长度有限且无法并行化,只有计算完tit_iti时刻后的数据才能计算ti+1t_{i+1}ti+1时刻的数据,但Transformer可以)。在这篇文章中作者提出了S原创 2021-06-11 17:11:33 · 137254 阅读 · 86 评论 -
Layer Normalization解析
原论文名称:Layer Normalization原论文地址: https://arxiv.org/abs/1607.06450之前有讲过Batch Normalization的原理,链接,今天来简单讲讲Layer Normalization。Layer Normalization是针对自然语言处理领域提出的,例如像RNN循环神经网络。为什么不使用直接BN呢,因为在RNN这类时序网络中,时序的长度并不是一个定值(网络深度不一定相同),比如每句话的长短都不一定相同,所有很难去使用BN,所以作者提出了Lay原创 2021-06-07 14:45:45 · 41433 阅读 · 18 评论 -
使用fvcore计算Pytorch中模型的参数数量以及FLOPs
fvcore是Facebook开源的一个轻量级的核心库,它提供了各种计算机视觉框架中常见且基本的功能。其中就包括了统计模型的参数以及FLOPs等。fvcore is a light-weight core library that provides the most common and essential functionality shared in various computer vision frameworks项目开源地址:https://github.com/facebookresear原创 2021-06-02 16:16:49 · 13198 阅读 · 21 评论 -
EfficientNetV2网络详解
文章目录EfficientNetv1中存在的问题EfficientNetv2中做出的贡献NAS 搜索EfficientNetv2网络框架EfficientNetv1中存在的问题作者系统性的研究了EfficientNet的训练过程,并总结出了三个问题:训练图像的尺寸很大时,训练速度非常慢。 这确实是个槽点,在之前使用EfficientNet时发现当使用到B3(img_size=300x300)- B7(img_size=600)时基本训练不动,而且非常吃显存。通过下表可以看到,在Tesla V100上原创 2021-05-18 13:14:04 · 65839 阅读 · 78 评论 -
PASCAL VOC2012数据集介绍
之前有在Bilibili上简单介绍过这个数据集,但一直没有写博文,今天抽空总结下,如果不想看文章的,可以看下我在Bilibili上的讲解视频。Pascal VOC2012数据集详解视频: https://b23.tv/F1kSCKPascal VOC2012官网地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/官方发表关于介绍数据集的文章 《The PASCALVisual Object Classes Challenge: A Retrospecti原创 2021-04-17 11:24:36 · 70938 阅读 · 35 评论 -
EfficientNet网络详解
目录前言论文思想网络详细结构MBConv结构EfficientNet(B0-B7)参数前言原论文名称:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks论文下载地址:https://arxiv.org/abs/1905.11946原论文提供代码:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet自己使用Pyt原创 2021-03-06 16:14:40 · 117585 阅读 · 110 评论 -
RegNet网络结构与搭建
目录前言设计设计空间RegNet网络结构详解RegNet结构框架RegNet block详解RegNetX模型详细参数RegNetY模型详细参数前言原论文名称:Designing Network Design Spaces原论文下载地址:https://arxiv.org/abs/2003.13678.pdf论文中提供的源码: https://github.com/facebookresearch/pycls自己使用Pytorch实现的RegNet代码: Test10_regnet/model.p原创 2021-03-04 18:03:01 · 30772 阅读 · 22 评论 -
Tensorflow中卷积的padding操作
文章目录Tensorflow中padding为valid的情况Tensorflow中padding为same的情况和Pytorch的padding简单对比实验对比实验1实验2实验3实验4实验5实验6关于Tensorflow中卷积的padding其实在之前的课程中我有讲过,不过本节课会在详细讲解下,并和Pytorch中卷积的padding进行简单的对比。关于Pytorch中卷积的padding可以参考我之前写的一片文章。在Tensorflow中卷积的padding一般需要指定为same或者valid,并原创 2021-03-03 17:38:16 · 2328 阅读 · 0 评论 -
Pytorch与Tensorflow权重互转
文章目录准备测试输入数据将Pytorch卷积层权重转到Tensorflow中将Pytorch DW卷积层权重转到Tensorflow中将Pytorch BN层权重转到Tensorflow中全连接层完整测试代码在Pytorch以及Tensorflow官方,都有提供一些常用的预训练模型权重(在ImageNet上预训练得到的)。但有些时候,Pytorch官方提供的模型Tensorflow官方并没有。此时就会想些办法,将Pytorch官方提供的模型权重转到Tensorflow的模型中。反之亦然。首先,在Pyto原创 2021-02-19 16:15:00 · 6058 阅读 · 3 评论 -
MS COCO数据集介绍以及pycocotools简单使用
文章目录1. MS COCO数据集简介2. MS COCO数据集下载3. MS COCO标注文件格式3.1 使用Python的json库查看3.2 使用官方cocoAPI查看1. MS COCO数据集简介官网地址https://cocodataset.org/简介MS COCO是一个非常大型且常用的数据集,其中包括了目标检测,分割,图像描述等。其主要特性如下:Object segmentation: 目标分割Recognition in context: 图像情景识别Superp原创 2021-01-27 16:36:50 · 57365 阅读 · 40 评论 -
使用Mini-ImageNet训练分类网络
文章目录数据集下载链接数据集简介制作新的train以及val文件训练自己的网络数据集下载链接百度网盘下载:链接: https://pan.baidu.com/s/1Uro6RuEbRGGCQ8iXvF2SAQ 密码: hl31数据集简介提到Imagenet大家都知道,是一个非常大型、有名的开源数据集。一般设计一个新的分类网络就会在Imagenet1000类的数据上进行训练以及验证。包括常见的目标检测网络等,所使用的backbone一般都会先基于Imagenet进行预训练。但对于普通研究员或者开发原创 2021-01-23 10:53:41 · 25504 阅读 · 57 评论 -
通过pycocotools获取每个类别的COCO指标
在目标检测任务中,我们常用的评价指标一般有两种,一种是使用Pascal VOC的评价指标,一种是更加严格的COCO评价指标,一般后者会更常用点。在计算COCO评价指标时,最常用的就是Python中的pycocotools包,但一般计算得到的结果是针对所有类别的,例如: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.512 Average Precision (AP) @[ IoU=0.50原创 2021-01-06 10:49:19 · 23815 阅读 · 58 评论