深度学习
文章平均质量分 92
just-solo
这个作者很懒,什么都没留下…
展开
-
精选CV的最新文章(持续更新)
sparse R-CNN使用固定数量的 learnable box/feature(与backbone无关) 替代anchors,从而将原始one/two-stage检测方法转换为set prediction形式原创 2020-11-27 20:33:18 · 255 阅读 · 0 评论 -
FCN(全卷积网络)详解
FCN详解全卷积网络就是在全连接网络的基础上,通过用卷积网络替换全连接网络得到的。首先看一下什么是全连接网络,以及全连接网络的缺点。通常的CNN网络中,在最后都会有几层全连接网络来融合特征信息,然后再对融合后的特征信息进行softmax分类。假设最后一层的feature_map的大小是7x7x512,那么全连接层做的事就是用4096个7x7x512的滤波器去卷积这个最后的feature_map。所以可想而知这个参数量是很大的!!但是全卷积网络就简单多了。FCN的做法是将最后的全连接层替换为409原创 2020-11-25 19:49:02 · 15472 阅读 · 0 评论 -
Transform和self-attention
Transform和self-attention再讲Transform之前必须先讲一下self-attention,但是再讲self-attention之前有必要讲一下attention。attention的讲解这篇文章讲的挺好的,可以参考一下。总的来说attention有两种划分方式:第一种划分方式:Spatial Attention 空间注意力(图片)和Temporal Attention 时间注意力(序列)这种划分方式里面主要有BAM,CBAMCBAM可以看做是通道注意力机制和空间注意力原创 2020-10-14 10:58:21 · 1141 阅读 · 0 评论 -
pytorch---onnx---tensorflow踩坑笔记
pytorch—onnx—tensorflow踩坑笔记首先我转的模型是centertrack这个模型,其实总的来说这个模型还是比较简单的,但是由于其中有一个DCN卷积在onnx和tensorflow中不支持的自定义算子,所以有很多坑都是围绕他进行的。首先就是对这个DCN卷积部分的处理,我使用了一个插件的形式来方便插入到onnx中,这是由于onnx支持自定义算子的实现。插件部分:(类似于这样的插件定义的形式)###############################################原创 2020-12-31 23:54:47 · 2986 阅读 · 1 评论 -
TVM安装踩坑笔记
TVM安装踩坑笔记由于是在公司服务器安装的TVM,所以有各种网络的限制问题,不能从服务器端直接下载包文件,得先下载到windows上面然后再上传到服务器端。但是,TVM和LLVM的包文件服务器在国外的缘故,所以下载的很慢。。。。花了我一天时间才搞好,太惭愧了。。。。想要安装TVM(这个是不区分C还是python的,安装好以后都可以用的),首先必须安装TVM的编译器LLVM和clang。下载链接进去以后选择自己需要的版本,这里也不是越高越好啊,我安装的7.0.1没出什么版本问题,你们可以自己尝试一下原创 2020-07-15 22:55:48 · 2603 阅读 · 5 评论 -
你真的懂了全连接层了吗?
你真的懂了全连接层了吗?随着我对CNN的认识的增加,有以下几个阶段的问题逐渐困惑着我。1、全连接层到底是怎么计算的?2、为什么全连接层有1层,两层,三层。。。?3、全连接层与1x1卷积相同?与最后同尺寸的卷积核相同?4、全连接层的作用到底是什么?下面我们来一一探讨一下,有不同意见的欢迎讨论。第一个问题看下面的图(以前见过无数遍,可是没有认真思考过。。。可惜),假设我们最后的特征层是7x7x512的,我们的全连接层是1x1024的,那么实际上就相当于用1024个7x7x512的kernel_s原创 2020-06-18 18:23:29 · 11053 阅读 · 5 评论 -
Light-Head R-CNN学习笔记
Light-Head R-CNN学习笔记在这篇文章里,作者主要分析了:为什么two-stage detector会慢,主要慢在哪?如何在解决速度慢同时保证精度?文中,作者把 two-stage 拆解成 body 跟 head:body: 生成proposal(RoI)的过程, 即: ROI warping.head: 基于proposal的recognition过程, 即: RCNN subnet.作者认为,目前的算法,为了追求best accurcy,一般都会把head设计的非常heavy,原创 2020-06-17 21:56:10 · 244 阅读 · 0 评论 -
R-FCN学习笔记
R-FCN学习笔记R-FCN的主要贡献在于解决了“分类网络的位置不敏感性(translation-invariance in image classification)”与“检测网络的位置敏感性(translation-variance in object detection)”之间的矛盾,在提升精度的同时利用“位置敏感得分图(position-sensitive score maps)”提升了检测速度。已经提出来的两种解决方案:首先Faster-rcnn网络的缺陷是大量的卷积层位于roi-pooli原创 2020-06-16 21:40:30 · 263 阅读 · 0 评论 -
DetectoRS学习笔记(54.7AP 目前目标检测最强模型!)
DetectoRS学习笔记从结果上看,这篇文章在Res50+HTC的基础上将box mAP从43.6刷到了51.3.文章的创新点主要来自于两点:1、FPN的改进—>RFP主要提出对FPN的结构增加feedback的反馈和recursive的repeat堆叠, 融合时还使用了ASPP的结构,增大了全局特征和感受野。具体示意图如下:公式为:这里的f代表的就是自顶向下的FPN的过程,B就是自底向上的特征提取的过程,x是输入,R是自顶向下传输到自底向上的过程中的横向连接的一种转换,也就是ASPP原创 2020-06-06 20:33:02 · 3004 阅读 · 0 评论 -
bottlenect attention module(BAM)
bottlenect attention module(BAM)1. BAM论文代码链接BAM全程是bottlenect attention module,与CBAM很相似的起名,还是CBAM的团队完成的作品。CBAM被ECCV18接收,BAM被BMVC18接收。CBAM可以看做是通道注意力机制和空间注意力机制的串联(先通道后空间),BAM可以看做两者的并联。具体的代码实现如下:2、时间注意力机制class Flatten(nn.Module): def forward(self原创 2020-06-03 17:49:49 · 907 阅读 · 0 评论 -
Convolutional Block Attention Module(CBAM)
Convolutional Block Attention Module(CBAM)论文1. 什么是注意力机制?注意力机制(Attention Mechanism)是机器学习中的一种数据处理方法,广泛应用在自然语言处理、图像识别及语音识别等各种不同类型的机器学习任务中。通俗来讲:注意力机制就是希望网络能够自动学出来图片或者文字序列中的需要注意的地方。比如人眼在看一幅画的时候,不会将注意力平等地分配给画中的所有像素,而是将更多注意力分配给人们关注的地方。从实现的角度来讲:注意力机制通过神经网络的操作原创 2020-06-03 16:27:10 · 2171 阅读 · 0 评论 -
CV中的attention机制之(cSE,sSE,scSE)
CV中的attention机制之(cSE,sSE,scSE)论文代码SE模块的博文链接提出scSE模块论文的全称是:《Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks 》。这篇文章对SE模块进行了改进,提出了SE模块的三个变体cSE、sSE、scSE,并通过实验证明了了这样的模块可以增强有意义的特征,抑制无用特征。实验是基于两个医学上的数据集MALC Dataset和Vi原创 2020-06-03 10:11:38 · 11092 阅读 · 0 评论 -
YOLOv4---(详解各种trick)
YOLOv4—(详解各种trick)参考自(https://zhuanlan.zhihu.com/p/139764729)前段时间大名鼎鼎的yolov4终于面世了,可是看过以后确实大失所望。不是说yolov4不好,只不过没有什么革命性的创新,相当于作者尝试了计算机视觉领域的各种花里胡哨的trick,然后给了一个最佳方案的trick组合。而且,这些东西对于实际的工业生产并没有什么用。。。。也就是落地基本不可能。下面来仔细看一下文章中提到的各种trick。论文地址github文中将前人的工作主要分原创 2020-05-29 11:30:46 · 20675 阅读 · 8 评论 -
打通多个视觉任务的全能Backbone:HRNet
打通多个视觉任务的全能Backbone:HRNet参考:https://arxiv.org/pdf/1908.07919https://www.bilibili.com/video/BV1WJ41197dh?t=508https://github.com/HRNetHRNet是微软亚洲研究院的王井东老师领导的团队完成的,打通图像分类、图像分割、目标检测、人脸对齐、姿态识别、风格迁移、Image Inpainting、超分、optical flow、Depth estimation、边缘检测等网络结原创 2020-05-26 23:11:52 · 334 阅读 · 2 评论 -
ACNet(无痛涨点)
ACNet(无痛涨点)论文链接1. 前言不知道你是否发现了,CNN的结构创新在这两年已经变得相对很少了,同时要做出有影响力并且Solid的工作也变得越来越难,最近CNN结构方面的创新主要包含两个方面:1、网络结构搜索,以Google Brain的EfficientNet为代表作。2、获取更好的特征表达,主要是将特征复用,特征细化做得更加极致,以HRNet,Res2Net等为代表作。本文要介绍的是ICCV 2019的一个新CNN架构ACNet(全称为Asymmetric Convolution N原创 2020-05-26 10:45:43 · 4499 阅读 · 1 评论 -
华为GhostNet
华为GhostNet1. 引言受限于内存以及计算资源,将常规的CNN架构部署到移动设备是件非常困难的事。近几年来有各种移动端网络架构设计,大部分都是从减少卷积计算量的思路出发,谷歌出品的Mobilenet系列是提出了「Depthwise+Pointwise卷积」来减少计算量,旷视则是提出「通道混洗」,利用转置操作,均匀的shuffle各个通道进行卷积。Mixnet是在Mobilenet基础上,关注了卷积核的大小,通过「不同大小卷积核」所生成的卷积图在不增加计算量前提下进一步提高精度。而华为的Ghostn原创 2020-05-25 23:33:01 · 656 阅读 · 0 评论 -
非极大值抑制(NMS)和soft-nms,及其代码实现
非极大值抑制(NMS)和soft-nms,及其代码实现NMS算法的大致思想:对于有重叠的候选框:若大于规定阈值(某一提前设定的置信度)则删除,低于阈值的保留。对于无重叠的候选框:都保留。注释很详细了,应该能看得懂。# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltdef NMS(arr, thresh): # 首先数据赋值和计算对应矩形框的面积 # arr的数据格式是arr = [[ xm原创 2020-05-22 11:10:28 · 985 阅读 · 0 评论 -
目标检测中的MAP的计算(逐步推导)
目标检测中的MAP的计算(逐步推导)概念介绍首先放一下前面一篇博文中提到的precision和recall的计算公式和概念。P(precision) = TP/(TP+FP) 在目标检测中就是检测出的所有框中预测正确的比例。R(recall) = TP/(TP+FN) 在目标检测中就是所有的ground truth(不懂ground truth的自行百度,简单点就是你的训练数据中事先标注好的bboxes)中检测出来的部分所占的比例。我们假设一个场景,一共有两张图片,有两个类别,一个类别是人一个类别原创 2020-05-21 23:21:48 · 3202 阅读 · 0 评论 -
卷积神经网络系列以及代码实现继往开来的backbone(Lenet,AlexNet,ZFNet,VggNet,gooleNet,DenseNet,DPN双路网络)
继往开来的backbone(卷积神经网络系列)(Lenet,AlexNet,ZFNet,VggNet,gooleNet,DenseNet,DPN双路网络)LeNet首先看一下网络图这时候的卷积神经网络是没有padding的。keras实现代码def LeNet(): model = Sequential() model.add(Conv2D(32,(5,5),strides=(1,1),input_shape=(28,28,1),padding='valid',activa原创 2020-05-16 13:15:29 · 793 阅读 · 0 评论 -
BN(多种角度),IN,LN,GN 的原理,公式,以及反向传播的推倒及代码
batchnormalization(BN) 的原理,公式,以及反向传播的推倒及代码(参考自https://mp.weixin.qq.com/s?__biz=MzA4MjY4NTk0NQ==&mid=2247484478&idx=1&sn=10012618cc60f180c5e4fa1ef52d8d00&chksm=9f80bea8a8f737be7e2e3a2374731bcf89ac25238fcdf35fc6dde3157a12333b8c2864c568a2&原创 2020-05-16 12:44:13 · 2826 阅读 · 0 评论 -
卷积神经网络之Inception系列学习笔记
Inception系列学习笔记InceptionV1又叫做GooleNet,他的创新点主要有:1、提出Inception模块。2、使用辅助Loss。3、全连接层用简单的平均池化代替。网络太大就不放了。下面介绍一下Inception模块:a图是基本的inception模块,b图是添加1x1卷积的inception模块,这样极大的降低了计算量。Inception模块中的卷积步长都是1,另外为了保持特征图大小一致,都设置了Padding方式为Same。每个卷积层后面都接了ReLU激活函数。在输出前有原创 2020-05-16 12:36:50 · 1635 阅读 · 2 评论 -
anchor_free and anchor_based的简单理解
anchor_free and anchor_based的简单理解参考自(https://www.zhihu.com/people/AI_team-WSF)anchor_based目标检测中一般用到的就是anchor_based。那么什么是anchor_based呢?在一张图片上放置大量的预先定义好的 anchor boxes,然后预测其类别,优化这些anchor boxes的坐标,最终将这些优化后的 anchor boxes作为检测结果输出。anchor_based又分为单阶段检测和双阶段检测,原创 2020-05-15 20:48:13 · 1300 阅读 · 0 评论 -
普通卷积和可分离卷积的参数量和计算量以及FLOPS的计算
普通卷积和可分离卷积的参数量和计算量以及FLOPS的计算首先看一下普通卷积的计算过程。我们直接给出普通卷积的参数量,计算量的计算公式。假设输入的feature-map大小是N x H x W的,卷积核的大小是m x h x w,经过卷积后输出的feature-map是S x A x B。所以普通卷积的参数量h x w x N x S普通卷积的计算量h x w x A x B x N x S我们可以看出参数量和计算量的计算跟原来feature-map的长宽没有任何关系,跟卷积核的纬度也没有任何关系原创 2020-05-15 16:31:54 · 1816 阅读 · 1 评论 -
再话RNN,LSTM(双向RNN)帮助你一次记住LSTM!!
再话RNN,LSTM(双向RNN)之前写了一篇关于RNN,LSTM,GRU的公式推导以及前向传播的文章,但是后来发现,当时自己写的时候挺清楚的,后来过段时间就忘了,看来还是理解的不够啊。所以今天这篇文章写一下,到底什么是RNN,LSTM。首先,大家都知道,RNN解决的就是神经网络记忆的问题。因为RNN网络的有一个临时的输入,所以可以很好地记忆住之前的信息。但是,在进行BPTT(rnn的反向传播)的时候,你就会发现RNN会出现梯度消失的现象,RNN的梯度消失跟CNN的梯度消失是不一样的,RNN由于每个原创 2020-05-10 14:16:57 · 795 阅读 · 0 评论 -
DCN和DCNv2(可变性卷积)学习笔记(原理代码实现方式)
DCN和DCNv2(可变性卷积)网上关于两篇文章的详细描述已经很多了,我这里具体的细节就不多讲了,只说一下其中实现起来比较困惑的点。(黑体字会讲解)DCNv1解决的问题就是我们常规的图像增强,仿射变换(线性变换加平移)不能解决的多种形式目标变换的几何变换的问题。如下图所示。可变性卷积的思想很简单,就是讲原来固定形状的卷积核变成可变的。如下图所示:首先来看普通卷积,以3x3卷积为例对于每...原创 2020-07-23 08:03:00 · 35412 阅读 · 35 评论 -
RCNN,fast-rcnn学习笔记
RCNN,faste-rcnn学习笔记RCNN首先来说一下RCNN。至于RCNN的开创新地位我就不提了,直接讲RCNN的结构。首先RCNN有一个预训练的backbone(alexnet,vgg),然后重新训练一下最后的全连接层也就是fine-tune技术,因为我们的输出的N类,所以我们要把之前的20类改成N+1类输出。再然后就是候选框的生成,利用的selective Search算法提取所...原创 2020-04-20 21:52:00 · 195 阅读 · 0 评论 -
目标检测中的一些评价标准(ACC,Precision,recall,AP,MAP,F1Score,ROC,AUC)
目标检测中的一些评价标准(ACC,Precision,recall,AP,MAP,F1Score,ROC,AUC)介绍这些之前,应该了解一下最基本的TP,TN,FP,FN.先看一下下面这些解释。True positives: 简称为TP,即正样本被正确识别为正样本,飞机的图片被正确的识别成了飞机。True negatives: 简称为TN,即负样本被正确识别为负样本,大雁的图片没有被识别出...原创 2020-04-17 23:44:28 · 7701 阅读 · 0 评论 -
目标检测比赛的trick
目标检测比赛的trick取自郑烨大佬的分享。1、anchor_ratio和anchor_scale的设置。根据模型感受野,anchor的长宽比,图片的长宽比来确定上面这两个数字。链接1链接22、hrnet作为backbone来应对iou要求极高的检测3、粗检测+细检测来应对目标数量极其稀少的检测。4、训练采样的方式:a、在线加权采样(1、按照类别数量比例加权 2、按照图片类别丰富程...原创 2020-04-17 20:38:04 · 1310 阅读 · 0 评论 -
ROI-Align 原理理解
转载:https://blog.csdn.net/gusui7202/article/details/84799535转载:https://www.cnblogs.com/ranjiewen/articles/8869703.html前面一个理解较为深刻,后面讲的详细点。原创 2020-04-11 23:47:09 · 2357 阅读 · 0 评论 -
L1正则化与L2正则化(详解)
L1正则化与L2正则化正则化之所以能够降低过拟合的原因在于,正则化是结构风险最小化(模型结构最简单,经验风险最小化就是训练误差小)的一种策略实现。 给loss function加上正则化项,能使得新得到的优化目标函数h = f+normal,需要在f和normal中做一个权衡(trade-off),如果还像原来只优化f的情况下,那可能得到一组解比较复杂,使得正则项normal比较大,那么h就不...原创 2020-04-09 15:38:31 · 3463 阅读 · 0 评论 -
梯度消失和梯度爆炸
梯度消失和梯度爆炸首先我们先说一下DNN中的梯度消失和梯度爆炸。DNN中的梯度消失和梯度爆炸是由于激活函数引起的,主要是sigmoid函数。因为在反向传播的过程中我们需要对激活函数进行求导,而sigmoid激活函数的导数如下图:所以如果网络足够长的话,经过多个激活函数的导数以后就会出现梯度接近于0的情况。梯度爆炸是由于权重参数初始化太大时,权重参数与激活函数的导数相乘导致梯度爆炸的出现...原创 2020-04-09 15:10:26 · 674 阅读 · 0 评论 -
部分主流优化函数讲解(SGD,AdaGrad,RMSProp,Adam)
部分主流优化函数讲解(SGD,AdaGrad,RMSProp,Adam)参考自(https://blog.csdn.net/weixin_42398658/article/details/84525917)之所以出现了这么多的优化函数就是因为病态曲率的存在,也就是梯度下降容易进入鞍点。这样的话我们就很容易想到牛顿法了,一阶导数指出的是运动方向的问题,二阶导数指出的就是加速度的问题。但是由于牛...原创 2020-04-09 14:09:36 · 996 阅读 · 0 评论 -
从RNN到LSTM再到GRU
从RNN到LSTM再到GRU参考自(https://www.cnblogs.com/jiangxinyang/p/9362922.html)先从rnn的最常见的模型来说起。上图中左边是RNN模型没有按时间展开的图,如果按时间序列展开,则是上图中的右边部分。我们重点观察右边部分的图。这幅图描述了在序列索引号t 附近RNN的模型。其中:1)x(t)代表在序列索引号 t 时训练样本的输入。同样...原创 2020-04-09 12:37:40 · 435 阅读 · 0 评论 -
最简单最易实现的SE模块(Squeeze-and-Excitation Networks)
最简单最易实现的SE模块Squeeze-and-Excitation NetworksSENet是Squeeze-and-Excitation Networks的简称,拿到了ImageNet2017分类比赛冠军,其效果得到了认可,其提出的SE模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中。SENet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一...原创 2020-04-07 23:33:51 · 11655 阅读 · 3 评论 -
EfficientNet 阅读笔记
EfficientNet 阅读笔记参考自(https://mp.weixin.qq.com/s?__biz=MzA4MjY4NTk0NQ==&mid=2247485124&idx=1&sn=d2d6ed5fc9078fe2c522c6647b340668&chksm=9f80bc52a8f735441a4cbcdb7364ba0f7e5fb781465e93a3e...原创 2020-04-07 23:26:56 · 545 阅读 · 0 评论 -
轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记
轻量化网络ShuffleNet MobileNet v1/v2学习笔记部分取自(giantpandacv公众号)在学习这两部分之前,大家应该要懂一个卷积操作,分组卷积和深度可分离卷机。其实他们的原理差不多,我在这里就不详细讲了,不清楚的同学可以查看我的这篇博文这篇博文几乎涵盖了现在神经网络中大部分的卷积的骚操作,看完以后相信你就会茅塞顿开的。MobileNet v1文章链接Mobilen...原创 2020-04-07 22:57:11 · 12264 阅读 · 3 评论 -
DenseNet学习笔记
DenseNet学习笔记近几年来,Highway和ResNet结构中均提出了一种数据旁路(skip-layer)的技术来使得信号可以在输入层和输出层之间高速流通,核心思想都是创建了一个跨层连接来连通网路中前后层。在本文中,作者基于这个核心理念设计了一种全新的连接模式。为了最大化网络中所有层之间的信息流,作者将网络中的所有层两两都进行了连接,使得网络中每一层都接受它前面所有层的特征作为输入。由于网...原创 2020-04-07 14:29:31 · 377 阅读 · 0 评论 -
目标检测和感受野的总结和想法
目标检测和感受野的总结和想法先放一下大佬的微信公众号(GiantPandaCV)接下来我们讲一下目标检测中很重要的一个思想,感受野的计算方法。经典的目标检测如Faster R-CNN, YOLOv3等都用到了Anchor, 怎么设计Anchor每个目标检测方法各不相同。Faster R-CNN中的Anchor有三种形状,三种长宽比,比如形状有[128, 256, 512]三个,长宽比有[1:...原创 2020-04-07 12:14:22 · 714 阅读 · 0 评论 -
目标检测算法之AAAI 2020 DIoU Loss 已开源(YOLOV3涨近3个点)
目标检测算法之AAAI 2020 DIoU Loss 已开源(YOLOV3涨近3个点)我们先来回顾一下IoU Loss和GIoU Loss。IoU Loss可以表示为:LIoU=1−∣B∩Bst∣∣B∪Bst∣L_{I o U}=1-\frac{\left|B \cap B^{s t}\right|}{\left|B \cup B^{s t}\right|}LIoU=1−∣B∪Bst∣∣B∩B...原创 2020-04-06 22:24:35 · 999 阅读 · 0 评论 -
目标检测算法之CVPR2019 GIoU Loss
目标检测算法之CVPR2019 GIoU Loss首先说一下GIOU的计算方式:然后计算C \ (A ∪ B) 的面积与C的面积的比值,注:C \ (A ∪ B) 的面积为C的面积减去A∪B的面积。再用A、B的IoU值减去这个比值得到GIoU。前面介绍了很多Anchor-Based的目标检测算法,它们的Loss普遍使用bbox和ground truth bbox的L1范数,L2范数来计算位...原创 2020-04-06 21:54:41 · 398 阅读 · 0 评论