计算机视觉
文章平均质量分 87
有点方
这个作者很懒,什么都没留下…
展开
-
浅读CV中的注意力机制(Non-local,SENet,CBAM )
1.Non-local Neural Networks从Non-local Neural Networks 开始计算机视觉中使用attention开始火热,这是一种基于空间注意力机制的网络。Non-local Neural Network主要解决的问题:当图像中两个特征距离比较远时,浅层卷积无法覆盖全部特征,特征提取很难提取到完整的信息。传统的解决方案:传统CNN通过堆叠多个卷积模块来形成大感受野,使用大感受野来覆盖到全部的特征信息。这样做主要有三个缺点:(1) 捕获距离远的特征,效原创 2021-03-19 11:53:05 · 3375 阅读 · 0 评论 -
incremental few-shot learning论文阅读
incremental few-shot learning论文的主要目的:在不使用原始训练数据的情况下,对新增加类别的少量数据进行训练以进行增量学习。Related Work:object detection作者比较了一阶段和二阶段检测模型,并讲述了一般检测模型的不足。检测模型需要大量有标注的数据进行训练,当线上部署的模型需要新增类别时,模型的实用性和可延伸性不足的缺点暴露。作者基于CenterNet作为BackBone进行优化。Few-shot learningFew-shot lea原创 2020-08-28 15:36:05 · 1579 阅读 · 5 评论 -
YOLO1-5的BackBone和Neck
YOLO1:Backbone: GoogLeNet with no inception modulesNeck: None Head: YOLO [fc(1570)->7*7(5*2+20)]YOLO2:Backbone: darknet19Neck: None Head: passthrough [conv->13*13*anchor*(5+20)]7*7卷机使用3*3加1*1卷机替代。减少计算量小,防止过拟合;网络可以做的更深,更好的提取特征。 使用.原创 2020-08-20 13:20:40 · 3388 阅读 · 1 评论 -
YOLO1-YOLO5检测头的改进
YOLO1:最后检测头7*7grid,每个点预测两个框(一个大框一个小框),分类用one hot,如下图所示:YOLO2:7*7 grid 太小了,增大为13*13 每个grid对应两个人为设计的anchor增加为5个统计得到的anchor(在voc2007和coco上都进行了统计,coco相比voc小框更多) 每个anchor对应一个类别,13*13*(5*5+5*20)=422500 outputs 损失函数gt:1 >> iouYOLO3:分为3个检测头分别检测原创 2020-08-14 16:58:38 · 6780 阅读 · 1 评论 -
YOLOv5环境配置以及训练私人数据
Git地址:https://github.com/ultralytics/yolov5 1.使用anaconda安装python3.8的环境conda create -n yolo5 python=3.8 #anaconda下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 2.安装pytorch1.6 torchvision0.7conda install pytorch==1.6 torchvis...原创 2020-08-13 21:03:22 · 3579 阅读 · 0 评论 -
CIoU的成长之路
原始的IOU损失函数只要IOU不相交。损失函数不变第一次升级,GIOU:不相交时,两个框的距离变化,loss不变,改进为GIoU loss.第二次升级,DIOU:完全包含时,两个框的距离变化,loss不变,改进为DIoU loss.第三次升级,CIOU:中心点重合但宽高比不同时, loss不变,改进为CIoU loss.CIoU的惩罚项是在DIoU的惩罚项基础上加了一个影响因子a,v,这个因子把预测框长宽比拟合目标框的长宽比考虑进去。其中a是用于做...原创 2020-08-05 18:22:18 · 8003 阅读 · 0 评论 -
DropBlock
(a)原始输入图像(b)绿色部分表示激活的特征单元,b图表示了随机dropout激活单元,但是这样dropout后,网络还会从drouout掉的激活单元附近学习到同样的信息(c)绿色部分表示激活的特征单元,c图表示本文的DropBlock,通过dropout掉一部分相邻的整片的区域(比如头和脚),网络就会去注重学习狗的别的部位的特征,来实现正确分类,从而表现出更好的泛化。code:import torchimport torch.nn.functional as Ffrom tor..原创 2020-08-05 17:53:18 · 357 阅读 · 0 评论 -
Label Smoothing
在分类任务中,我们通常对类别标签的编码使用[0,1,2,…]这种形式。在深度学习中,通常在全连接层的最后一层,加入一个softmax来计算输入数据属于每个类别的概率,并把概率最高的作为这个类别的输入,然后使用交叉熵作为损失函数。这会导致模型对正确分类的情况奖励最大,错误分类惩罚最大。如果训练数据能覆盖所有情况,或者是完全正确,那么这种方式没有问题。但事实上,这不可能。所以这种方式可能会带来泛化能力差的问题,即过拟合。按softmax交叉熵优化时,针对这个样本而言,会让0.721越来越接近于1,因为这原创 2020-08-05 16:21:49 · 224 阅读 · 0 评论 -
数据增强Mosaic
丰富检测物体的背景,且在BN计算的时候一下子会计算四张图片的数据,使得mini-batch大小不需要很大,那么一个GPU就可以达到比较好的效果。实现思路1、每次读取四张图片。2、分别对四张图片进行翻转、缩放、色域变化等,并且按照四个方向位置摆好。3、进行图片的组合和框的组合主要代码: def load_mosaic(self, index): # loads images in a mosaic s = self.img_size // 2..原创 2020-08-05 14:56:21 · 1504 阅读 · 0 评论 -
CutMix
Mixup:将随机的两张样本按比例混合,分类的结果按比例分配; Cutout:随机的将样本中的部分区域cut掉,并且填充0像素值,分类的结果不变; CutMix随机生成一个裁剪框Box,裁剪掉A图的相应位置,然后用B图片相应位置的ROI放到A图中被裁剪的区域形成新的样本,计算损失时同样采用加权求和的方式进行求解主要code(Iteration过程中的实现方法):lam = np.random.beta(args.beta, args.beta)rand_index = torch.ran...原创 2020-08-05 14:37:28 · 594 阅读 · 0 评论 -
深度学习中的BN_CBN_CmBN
BN:反向传播时经过该层的梯度是要乘以该层的参数的,即前向有:反向传播时便有:那么考虑从l层传到k层的情况,有:其中这个便是问题所在。如果Wi小于1,就会发生提督弥散而如果Wi大于1,那么传到这里的时候又会有梯度爆炸问题BN所做的就是解决这个梯度传播的问题,因为BN作用抹去了w的scale影响。BN为了保证非线性的获得,对变换后的满足均值为0方差为1的x又进行了scale加上shift操作(y=scale*x+shift),每个神经元增加了两个参数原创 2020-08-04 20:16:05 · 5934 阅读 · 2 评论 -
kappa与quadratic weighted kappa
kappa系数是统计学中度量一致性的指标, 对于分类问题,一致性就是模型预测结果和实际分类结果是否一致. kappa系数的计算是基于混淆矩阵, 取值为-1到1之间, 通常大于0.kappa quadratic weighted kappakappakappa系数的数学表达:Po为预测的准确率, 也可理解为预测的一致性:Pe表示偶然一致性:例子来自:https://blog.csdn.net/weixin_38313518/article/deta...原创 2020-07-20 17:56:01 · 4559 阅读 · 0 评论 -
玩转NMS
NMS的改进非极大值抑制NMS是目标检测常用的后处理算法,用于剔除冗余检测框,本文将对可以提升精度的各种NMS方法及其变体进行阶段性总结。对NMS进行分类,大致可分为以下六种,这里是依据它们在各自论文中的核心论点进行分类,这些算法可以同时属于多种类别。分类:NMS,Soft-NMS (ICCV 2017) 定位:IoU-Guided NMS (ECCV 2018) 加权平均:Weighted NMS (ICME Workshop 2017) Softer-NMS (CVPR 2019) 自原创 2020-07-17 17:27:35 · 576 阅读 · 0 评论 -
交叉熵损失函数的进化路程
一.交叉熵损失函数(CrossEntropy Loss)1. 公式与性质交叉熵代价函数同样有两个性质:非负性:目标就是最小化代价函数 克服方差代价函数更新权重过慢的问题导数中没有σ′(z)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢2.交叉熵代价函数是如何产生的? 以偏置b的梯度计算为例,推导出交叉熵代价函数:b的梯度公式为:为了消掉该公式中的我们...原创 2020-07-16 18:25:54 · 652 阅读 · 0 评论 -
从YOLO1到YOLO4
Yolov11.1 yolov1网络结构:1.2 yolov1和RCNN比较YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。从网络设计上,YOLO与rcnn、fast rcnn及faster rcnn的区别如下:[1] YOLO训练和检测,特征提取和分类回归均是在一个单独网络中进行。YOLO没有显示地求取region proposal的过程。而rcnn/fast rcnn 采用分离的模块(独立于网络之外的select原创 2020-07-10 15:52:05 · 790 阅读 · 1 评论 -
从CornerNet到CornerNet-Lite再到训练自己的数据
从CornerNet到CornerNet-Lite再到训练自己的数据相关论文与代码 相关工作 CornerNet CornerNet-Lite 训练自己的数据一.论文论文CornerNet: Detecting Objects as Paired Keypoints论文链接:https://arxiv.org/abs/1808.01244代码链接:https://github.com/umich-vl/CornerNet论文CornerNet-Lite: Efficient Key原创 2020-07-08 20:33:37 · 764 阅读 · 1 评论 -
图像处理之边缘检测
Canny边缘检测算法一直是边缘检测的经典算法,出自论文:《A Computational Approach to Edge Detection》Canny边缘检测算法的处理流程:使用高斯滤波器,以平滑图像,滤除噪声。 计算图像中每个像素点的梯度强度和方向。 应用非极大值抑制,以消除边缘检测带来的杂散响应。 应用双阈值检测来确定真实的和潜在的边缘。 通过抑制孤立的弱边缘最终完成边缘检测。1.高斯滤波去燥任何边缘检测算法都不可能在未经处理的原始数据上很好地处理,所以第一步是对原始数.原创 2020-07-06 16:54:26 · 2717 阅读 · 0 评论 -
图像处理中的滤波器之均值滤波,中值滤波,高斯滤波
1.均值滤波原理: 均值滤波采用线性的方法,使用模板内所有像素的平均值代替模板中心像素灰度值特点: 不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。Python-OpenCV中的实现代码:img_mean = cv2.blur(img, (3,3))#(3,3)卷积核是可调的举个例子:下面左图为椒盐噪声原始图像,右图为高斯噪声原始图像下图从左到右分别为均值滤波(3,3)(原创 2020-07-06 16:32:06 · 10095 阅读 · 0 评论