计算机视觉
文章平均质量分 74
Liwx1014
做好现在的事
展开
-
提高模型泛化能力的几大方法
作者:OpenMMLab链接:https://www.zhihu.com/question/540433389/answer/2629056736来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这一方法最早在一文中被提出,原文中被称为。在 EfficientNet 的实现中被 Google 称为。因为和撞名,在 timm 的实现中又被改名为drop path(但是这个名字也和撞名了,尴尬)。因此大家听到这几个名词的时候最好注意区分一下到底是哪个。...转载 2022-08-17 16:25:55 · 5706 阅读 · 0 评论 -
CenterNet 模型后处理 (C++和python代码)
该网络有三个部分组成 backbone(提取高级语义特征),上采样(恢复分辨率),head (三个卷积最终输出三个向量 )heatmap[B,C,H,W],wh [B,2,H,W],reg[B,2,h,w]heatmap 存放的是目标中心点位置,整张图那个位置最接近1 ,代表那个位置,是目标的中心点。wh 总共两个通道,存放的是目标在该点的目标框的长和宽,所以计算左上和右下点 x-w/2reg 总共两个通道,存放的是目标中心点的x,y偏移量,加上这个数值即可w........原创 2022-02-24 16:39:32 · 2368 阅读 · 1 评论 -
深度学习中 BN、 LN 归一化的作用以及意义
之前一直对各种归一化只停留下会使用的阶段,后来研究了一下,写下此文章当做读后感,如有任何理解错误,还请评论区指正。提出背景: 总所周知,深度神经网络是很多层堆积而成,比如说一个网络有50层,第一层的参数更新,经过层层相乘,会使得第50层的输入变化非常剧烈,就要不断去适应,降低的收敛速度。 其次底层输入过大或者过小,会使得输出落入饱和区(sigmoid),导致梯度消失,使得学习过早停止。所以将输入数据映射到非饱和区提高模型表达能力是一个非常重要的任务 ...原创 2021-09-25 11:28:06 · 1535 阅读 · 0 评论 -
pytorch 分布式训练
作者 | 堂姐来源 |九点澡堂子编辑 | 极市平台导语:前段时间工作涉及到修改分布式训练代码,在自研的工具库里直接调用简单的几行代码就可以,很多复杂的东西都封装起来了,但总感觉还是尽可能多了解下背后的东西比较好,原理和Pytorch的类似,就直接以torch来分析记录了。过程中碰到想不明白的地方就“骚扰”同事小伙伴和mentor,周末也不放过,远程表感谢和歉意hh。正文:Pytorch 分布式训练主要有两种方式: torch.nn.DataParallel ==> 简称.转载 2021-09-13 16:46:18 · 4161 阅读 · 0 评论 -
面试常见问题CV
作者:忆臻链接:https://zhuanlan.zhihu.com/p/376369795来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。优化算法深度学习优化学习方法(一阶、二阶)一阶方法:随机梯度下降(SGD)、动量(Momentum)、牛顿动量法(Nesterov动量)、AdaGrad(自适应梯度)、RMSProp(均方差传播)、Adam、Nadam。二阶方法:牛顿法、拟牛顿法、共轭梯度法(CG)、BFGS、L-BFGS。自适应优化算法有哪些.转载 2021-06-30 10:53:00 · 455 阅读 · 0 评论 -
Pytorch 最常用的数据增强API
作者:极市平台链接:https://zhuanlan.zhihu.com/p/379977527来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。介绍Pytorch是一个深度学习框架,广泛用于图像分类、分割、目标识别等各种任务。在这种情况下,我们必须处理各种类型的数据。很可能在大多数情况下,数据可能不是我们所需要的格式。PyTorch转换就是救星。torchvision.transforms模块提供了可以使用的各种图像转换。我们使用变换对数据进行一些操作,使其适合于.原创 2021-06-23 15:01:26 · 835 阅读 · 1 评论 -
Pytorch 使用技巧
本文转载自 Jack Cui 微信公众号。不少读者问我,Pytorch深度学习框架怎么学,答曰:Github大法好啊!这个是我当初入门Pytorch的教程,简洁易懂:https://github.com/yunjey/pytorch-tutorial其实,学习Pytorch最好的资料是官方文档,不过需要先具备一些基础:https://pytorch.org/docs/stable/index.html本文对Pytorch常用的代码段进行了整理,祝你代码写起来事半功倍,值得收藏,欢迎传转载 2021-03-10 14:31:30 · 1097 阅读 · 0 评论 -
简单理解卷积神经网络的基本过程
一般来说卷积神经网络主要执行了四个基本操作:1 卷积2非线性(Relu)3 池化下采样4 分类(全连接)以上所有操作都是卷积神经的基石,所以理解好这些对能写出厉害的神经网络起着至关重要的作用。本质上讲,每个图片都可以表示为像素值组成的矩阵,通道是代表图片特定成分的习语。常见数码相机拍出的图片有三个通道--BGR1 卷积卷积的根本目的是从输入图片提取特征。卷积用一个...原创 2019-08-12 15:03:13 · 4858 阅读 · 0 评论 -
深度学习基础理解
和机器学习不同的是,机器学习训练的分类器是一个神经网络模型,而机器学习分类训练出来的是特征的组合。神经网络模型是一个层次结构,包含输入层,隐藏层,输出层。它是非线性的(因为有激活函数)得分函数假设输入x[3,4] (三行四列的) w(x,y)(x取决于输入有多少个特征值这里取4,y取决去后面连接的输出层是几分类的)note:矩阵的乘法C=AB A的第i行点乘B的j列 构成Cij...原创 2019-04-12 11:00:20 · 198 阅读 · 0 评论 -
计算机视觉/图像处理所需要的技能
计算机视觉/图像算法/图像处理岗位需要掌握的技能基础技能 :数学基础,图像处理基础,深度学习概念基础,相机原理中间层技能: 图像分割,图像分类,目标检测,目标跟踪,视频分析应用层技能:OCR,图像检索,图像识别,视频内容分析,手势识别,人脸识别等等数学基础: 线性代数,统计学,概率论与数理统计图像处理基础: 图像存储格式,通道,读写像素,图像亮度与对比度,图像的...原创 2019-05-16 10:55:25 · 3016 阅读 · 0 评论 -
ubuntu18.04 &&NVIDIA装机 &&pytorch 开发环境安装指南
写下此文章目的是以后在装机的时候直接来参考,不用到处找命令一:安装ubuntu18.04 桌面版本 带GPU 装机的时候要显示屏要接到主板的视频输出口,装完系统,把显示屏接到显卡输出口,因为系统一般会自带nouveau驱动。这个时候要把ssh,samba,静态ip配好 其中在装机过程中,选择清楚整个磁盘并安装ubuntu ,如果要自定义分区,选择其他选项然后就会让你重新划分磁盘,有几个区是必须要有的efi 分区。大约1G,类型逻辑分区 swap 分区,看自己硬盘大......原创 2021-03-08 15:33:37 · 1047 阅读 · 0 评论 -
ubuntu18 源码安装opencv4.0 和caffe(成功)
1第一步 安装opencv(Python部分自行安装(使用anaconda3安装的))$ sudo apt-get install build-essential$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev$ sudo apt-...原创 2019-06-22 13:55:18 · 3209 阅读 · 2 评论 -
Non_Local 网络模块的解析
该模块可以插入到现有的CNN网络结构中,优点是可以提高整体的性能,缺点是参数多,计算量大写此文章只为自己日后回顾首先base cnn 为resnet50 ,插入在block3之后,模块的输入和输出都不变,这也是可以即插即用的原因。首先输入为【B,H,W,C】 先对输入使用1X1大小的卷积核做卷积,降低输入通道。减少计算量。然后把【B,H,W,C】reshape 成[B,HW,C],然后两个相乘(其中一个transpose),这样可以得到【B,HW,HW】,可以得到图像像素和其他位置的相关性,然后原创 2020-07-06 15:35:49 · 1744 阅读 · 0 评论 -
TSM,TRN 神经网络模型解析附代码
TSM是一个保持2DCNN复杂度但是却能达到3DCNN效果的网络结构对于视频识别的关键就是时间信息,这也是众多分析序列网络模型的研究点。TSM提出了一种可以基于现存的网络模型(Resnet)加入temporal shift module的方法例如基于resnet50的改进办法:首先得到resnet50的网络模型,在每个残差块的第一卷积之前,进行shift操作,假如入模型输...原创 2019-11-19 10:53:03 · 6762 阅读 · 4 评论 -
STnet 解析
这是百度2018年底发表的一篇论文。主要思想:可以基于任何现有的网络结构,插入三个模块步骤:(tensorflow版本的)输入图像序列【8,224,224,3】--》把输入的图像每N个图像(本次2个)看成一个超图【4,224,224,6】,相应的第一层卷积核通道需要修改下 --》经过RESnet两个残差块(3,4,6,3)--》加入temporal module在(4和6之后插入)...原创 2020-01-19 16:31:05 · 1014 阅读 · 0 评论 -
理解SVM(附代码)
参考内容:https://blog.csdn.net/weixin_39605679/article/details/81170300SVM 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的分类器,SVM还包含核技巧,这使它可以成为非线性的分类器。SVM的学习策略就是间隔最大化。算法原理SVM 学习的基本思想就是求解能够正确划分训练数据集并且几何间隔距离最大...原创 2020-01-19 16:31:40 · 1701 阅读 · 0 评论 -
Pytorch 编写一个简易版的resnet
import torchimport torch.nn as nnimport torchvisionimport torchvision.transforms as transforms# Device configurationdevice = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')'''...原创 2019-11-16 16:09:28 · 387 阅读 · 0 评论 -
Vision Transformer在CV领域的理解
最近这玩意比较火,找了好多资料和源码研究了下,写下这篇读后感在CV领域是怎么用呢?1 CNN backbone 处理的是 [B,3,H,W] 图像,经过层层提取特征,输出是[B,C,H,W],backbone 只做这一件事。2 Encoder部分: 先用1X1 卷积,将通道数从C 压缩到D,得到新的特征图[B,D,H,W] 将[B,D,H,W]的空间维度(高和宽)压缩成一个维度,得到序列化数据【B,D,HW】 在得到了【B,D,H,W】特征图之后...原创 2021-02-26 10:13:17 · 870 阅读 · 3 评论 -
conv1d 卷积的理解与应用
1 在tansorflow 中:conv1d(value,filter,stride,padding)conv1d(in_channel,out_channel,kernel_size,stride,padding)一般输入为3D 张量【B,X1,X2】这里之所以使用X1,X2,代表维度,是因为一维卷积不仅可以应用在语音文字上,在图像处理方面也有应用,所以使用X,来统一总结下。如果输入为以上,对于tensorflow.conv1d()中的filter参数设置应当如下:fileter.原创 2020-07-09 15:47:12 · 10006 阅读 · 4 评论 -
Faster-RCNN 源码解析
参考文档:读懂Faster RCNN - 白裳的文章 - 知乎 https://zhuanlan.zhihu.com/p/31426458一 :目标检测发展概述如上图所示,目标检测在2012年之前还是使用传统的方法。之后深度学习在计算机视觉的应用,使得各种框架涌现出来,这里我们挑选最经典的进行解析,领悟其中的思想。在之前的经验基础上,2016年提出faster-rcnn,将...原创 2020-01-19 16:30:27 · 566 阅读 · 0 评论 -
Pytorch 创建自己的数据DataSet 并加载多张图像数据到input tensor
#DataLoader.pyimport torchfrom torch.utils.data import Dataset,DataLoaderimport numpy as npimport osimport torch.utils.data as datafrom PIL import Imageimport cv2import os.pathfrom numpy.ra...原创 2019-11-16 16:08:23 · 1626 阅读 · 1 评论 -
深度学习中优化算法的演进历程
随机梯度下降(SGD)缺点: 在训练过程中可能会错误标记数据,或者有数据和正常数据差别很大,使用这些数据进行训练,求得的梯度也会有很大的偏差,因此,SGD在训练过程中会有很大的随机性。解决方法:选择一批量的数据,一起求梯度和,再求均值。也就是一个batch更新一次权重。如下图所示:以上的两种方法的缺点是:计算量大,更新速度慢解决方法:采用SGD+Mo...原创 2019-09-19 14:34:44 · 857 阅读 · 0 评论 -
配置深度学习环境 python+caffe
作者:AIBoys-TXW链接:https://zhuanlan.zhihu.com/p/76865341来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1 安装OpenCV1.1、安装必要的依赖sudo apt-get install cmakesudo apt-get install build-essential libgtk2.0-d...原创 2019-08-09 14:38:37 · 316 阅读 · 0 评论 -
计算机视觉--网络搭建及训练(TensorFlow pytorch caffe)
深度学习模型训练痛点及解决方法 https://blog.csdn.net/weixin_40581617/article/details/80537559深度学习模型训练流程 https://blog.csdn.net/Quincuntial/article/details/79242364深度学习模型训练技巧 https://blog.csdn.net/w7256037/article...翻译 2019-06-03 14:06:08 · 1249 阅读 · 0 评论 -
TensorFlow 训练模型流程解读(含源码)
使用TensorFlow 编写了一个对四种花分类的代码,其中涉及到读取数据,搭建模型,测试图片。在编写代码中有些API用的不是很熟练,因此写下此文章记录,方便日后回忆。第一部分:读取数据和标签一般我们训练模型,需要大量的数据,一般有数据集,但是一些特殊行业,需要自己手动收集数据。我们把数据分类放好,如图:四种花的图片分门别类放好。我们就可以写代码读取,并标签0 1 2 3代码如...原创 2019-06-13 14:23:18 · 24162 阅读 · 14 评论 -
计算机视觉学习--目标检测算法分类
基于深度学习的目标检测算法主要分为两类:1 two stage:先进行区域生成(一个可能包含待检测物体的预选框),在通过卷积神经网络进行样本分类。常见的算法:R-CNN SPP-Net Fast R-CNN R-FCN Faster R-CNN等2 one stage:不用RP,直接在网络中提取特征来预测物体的分类和位置常见的算法:YOLOv1 YOLOV2 YOLOV3 ...原创 2019-06-01 16:21:51 · 3678 阅读 · 0 评论 -
计算机视觉学习---先导篇(发展历史介绍)
计算机视觉是多个学科交叉重叠的一项工程学科,如图所示:有一个很有趣的理论,在大约5.4亿年前,地球上都是水,生物种类也都是极其简单的,飘在水里,等着食物撞进嘴里,因为还未进化出视觉,直到某一天其中一个生物能看见周围的环境了,就好比,进了自助餐厅一样,可以随意吃食物,但是食物也在进化,为了生存,也进化出了视觉,为了躲避不被吃掉,就这样互相博弈,进化,直到现在丰富的种类。另外一个故事,是在...原创 2019-05-17 11:15:29 · 660 阅读 · 0 评论 -
计算机视觉学习--分类算法&损失函数&优化
先解释下为什么前缀有一个图像分类,是因为几乎所有的图像识别任务中,图像分类是一个基础功能,不分好类,何谈后续的处理。图像识别面对的挑战有:光线的变化,图像形变,图像遮挡,背景干扰等。。。。能想到的最简单的分类器是K-NN分类器,步骤如下:将当前图片和样本图片一一相减,在相加,取绝对值。按照距离排序(L1距离,L2距离)选取与距离最小的K个图像判断这K个图像属于哪个类别数目最...原创 2019-05-20 09:38:02 · 1084 阅读 · 0 评论