![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 84
有点方
这个作者很懒,什么都没留下…
展开
-
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 · 1543 阅读 · 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 · 3355 阅读 · 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 · 6736 阅读 · 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 · 3547 阅读 · 0 评论 -
激活函数Mish
y = x*tanh(ln(1+exp(x)))实验中,随着层深的增加,ReLU激活函数精度迅速下降,而Mish激活函数在训练稳定性、平均准确率(1-2.8%)、峰值准确率(1.2% - 3.6%)等方面都有全面的提高。从图中可以看出,Mish是一个平滑的曲线,平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化;在负值的时候并不是完全截断,允许比较小的负梯度流入。Code:# -*- coding: utf-8 -*-import torchimport torc原创 2020-08-05 17:09:09 · 1525 阅读 · 1 评论 -
数据增强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 · 1489 阅读 · 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 · 5851 阅读 · 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 · 4461 阅读 · 0 评论 -
交叉熵损失函数的进化路程
一.交叉熵损失函数(CrossEntropy Loss)1. 公式与性质交叉熵代价函数同样有两个性质:非负性:目标就是最小化代价函数 克服方差代价函数更新权重过慢的问题导数中没有σ′(z)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢2.交叉熵代价函数是如何产生的? 以偏置b的梯度计算为例,推导出交叉熵代价函数:b的梯度公式为:为了消掉该公式中的我们...原创 2020-07-16 18:25:54 · 624 阅读 · 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 · 768 阅读 · 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 · 753 阅读 · 1 评论 -
pytorch模型转tensorflow pb模型
#1.配置安装conda create -n pth_pb python=3.7pip install tensorflow==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install tensorflow-addons==0.9.1 -i https://pypi.tuna.tsinghua.edu.cn/simp...原创 2020-04-24 17:11:21 · 7903 阅读 · 31 评论 -
mmdetection的安装与个人数据的训练
第一部分:mmdetection的安装1. 首先查看一下gcc的版本,有的服务器gcc版本较低,导致后续安装出现问题(大部分无此问题)gcc --version官网v1.0rc0 (27/07/2019)版本要求GCC: 4.9/5.3/5.4/7.32.创建基本运行环境注:这里使用anaconda管理项目环境,不建议使用Anaconda3-2019.03-Linux-x86...原创 2019-08-05 16:46:49 · 1565 阅读 · 8 评论 -
Mac升级gcc详解
github 开源的许多项目在配置安装过程中需要 进行“pip install .”,如果是在mac上进行配置,往往会遇到一下问题。从图中 commad ‘gcc’failed with exit status 1 错误报告中可以得知问题应该是gcc版本过低导致的。Mac 默认的gcc版本为4.2,通过命令gcc --version可以产看自己的gcc版本。目前github中新开源的代码...原创 2019-07-31 11:50:07 · 4812 阅读 · 0 评论 -
PyTorch学习:逻辑回归
import torchfrom torch.autograd import Variableimport numpy as npimport torch.nn.functional as Fimport matplotlib.pyplot as plt# 设定随机种子torch.manual_seed(2018)# 从 data.txt 中读入点#data.txt 是一个100...翻译 2018-11-12 19:25:13 · 428 阅读 · 0 评论 -
PyTorch学习:多项式回归的小例子
#多项式回归模型import torchimport numpy as npfrom torch.autograd import Variableimport matplotlib.pyplot as plttorch.manual_seed(2018)# 定义一个多变量函数w_target = np.array([0.5, 3, 2.4]) # 定义参数b_target = ...翻译 2018-11-12 14:57:44 · 573 阅读 · 0 评论 -
PyTorch学习:一个非常简单的线性回归的小例子
import torchimport numpy as npfrom torch.autograd import Variableimport matplotlib.pyplot as plttorch.manual_seed(2018)# 读入数据 x 和 yx_train = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.16...原创 2018-11-12 11:56:39 · 726 阅读 · 0 评论 -
PyTorch学习:参数初始化
Sequential 模型的参数初始化import numpy as npimport torchfrom torch import nn# 定义一个 Sequential 模型net1 = nn.Sequential( nn.Linear(2, 4), #nn.Linear(2, 4) shape为(4,2) nn.ReLU(), nn.Linear(4,...翻译 2018-11-13 17:17:57 · 5129 阅读 · 0 评论 -
PyTorch学习:多层神经网络的多种实现方式
import torchimport numpy as npfrom torch import nnfrom torch.autograd import Variableimport torch.nn.functional as Fimport matplotlib.pyplot as pltdef plot_decision_boundary(model, x, y): #...翻译 2018-11-13 15:08:35 · 1016 阅读 · 0 评论 -
图像的读取和翻转
使用opencv和PIL读图像的异同点以及图像翻转的numpy操作import cv2import numpy as npfrom matplotlib import pyplot as pltfrom PIL import Imagesrc="lena.png"# opencv的读取显示与保存图像,opencv读取出来的图像直接为numpy格式.# opencv的一个像素为:[B,G...原创 2018-05-13 16:12:27 · 265 阅读 · 0 评论 -
常用的图像处理插值方法
1.最近邻插值import cv2 import numpy as np import time from traitlets.config.application import catch_config_errordef function(img,dstHeight,dstWidth): height,width,channels =img.shape empt...原创 2018-05-14 17:07:29 · 789 阅读 · 0 评论 -
Canny+Hough可视化调参(Trackbar)
这里引用一个脑CT图片,用一天直线从中间分开。g_CannyThred_1:canny边缘检测运用高低阈值的方法(小于低阈值忽略,高于高阈值为边缘,高低阈值之间的值如果与边缘相连则判定为边缘),官方推荐高阈值是底阈值的2到3倍。本惨数为底阈值的参数。g_CannyP_1:在代码中(g_CannyThred_1 + 1) * (2 + g_CannyP_1 / 100.0)这样计算高阈值,使高阈值在...原创 2018-05-24 19:47:27 · 957 阅读 · 2 评论 -
图片的旋转
原理:图片旋转的原理代码实现:codekeras中的图片旋转:datagen = ImageDataGenerator(rotation_range = 40)#随机旋转40度opencv中的旋转:#不改变图片大小import cv2import numpy as npdef rotate(image, angle, center=None, scale=1.0): # grab t...原创 2018-05-24 19:56:02 · 252 阅读 · 0 评论 -
从LeNet-5到NasNet
VGGNet:堆叠多个小的卷积核而不使用池化操作可以增加网络的表征深度,同时限制参数的数量。vgg16和vgg19都有5个block块,每个block块有一个MaxPooling2D,是特征图缩小两倍。共缩小32倍。卷机层与全连接层相连接时先进行了扁平化处理,然后连接看了两个4096的全连接,最后再接一个softmax分类函数。如果不加全连接层,在keras中会对特征进行全局平均池化以防止过拟合。...原创 2018-06-07 21:16:39 · 1357 阅读 · 0 评论 -
keras 自带数据的标准化方法
1. featurewise_center:布尔值,使输入数据集去中心化(均值为0), 按feature执行。2. samplewise_center:布尔值,使输入数据的每个样本均值为0。3. featurewise_std_normalization:布尔值,将输入除以数据集的标准差以完成标准化, 按feature执行。4. samplewise_std_normalization:布...原创 2018-06-07 21:39:34 · 9384 阅读 · 0 评论 -
python dp 地牢游戏
题目思路:从右下到左上进行动态规划。逆向计算经过每一个格子至少需要的生命值。def loving(n,m,s): qishi=1 i=n-1 j=m-1 dp=[[0 for i in range(3)] for j in range(3)] print(dp) dp[i][j]=max(1,1-s[i][j]) j-=1 ...原创 2018-07-23 11:13:07 · 775 阅读 · 0 评论 -
IOU的计算
IOU:在图像检测中经常用来筛选候选框。具体为两个候选框的交集除以两个候选框的补集。# -*- coding: utf-8 -*-def IOU(Reframe,GTframe): """ 自定义函数,计算两矩形 IOU,传入为均为矩形对角线,(x,y) 坐标。· """ x1 = Reframe[0] y1 = Reframe[1] wi...原创 2018-07-23 11:34:09 · 1427 阅读 · 0 评论 -
CTPN细粒度候选框合并
1.候选框分组2. 确定每个分组的坐标1.候选框的分组:im_size[1]:传入图片的宽度box[0]:细粒度候选窗口的左上角横坐标boxes_table:把所有左上角横坐标相同候选窗口放在一块,方便下面根据左上角候选窗口的横坐标等位候选窗口的索引。 boxes_table=[[] for _ in range(self.im_size[1])] ...原创 2018-07-23 16:13:54 · 1483 阅读 · 1 评论 -
PyTorch学习:PyTorch 当做 NumPy 用
PyTorch 当做 NumPy 用:PyTorch 的官方介绍是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构件是张量,所以我们可以把 PyTorch 当做 NumPy 来用,PyTorch 的很多操作好 NumPy 都是类似的,但是因为其能够在 GPU 上运行,所以有着比 NumPy 快很多倍的速度。import torchimport numpy as nppytorc...翻译 2018-11-09 10:33:58 · 1211 阅读 · 0 评论 -
PyTorch学习:Tensor的操作
x = torch.ones(2, 2)print(x) # 这是一个float tensor 1 1 1 1[torch.FloatTensor of size 2x2]print(x.type())torch.FloatTensor# 将其转化为整形x = x.long()# x = x.type(torch.LongTensor)print(x)...翻译 2018-11-09 11:41:26 · 3078 阅读 · 0 评论 -
PyTorch学习:Variable
tensor 是 PyTorch 中的完美组件,但是构建神经网络还远远不够,我们需要能够构建计算图的 tensor,这就是 Variable。Variable 是对 tensor 的封装,操作和 tensor 是一样的,但是每个 Variabel都有三个属性,Variable 中的 tensor本身`.data`,对应 tensor 的梯度`.grad`以及这个 Variable 是通过什么方式得...翻译 2018-11-09 13:07:05 · 698 阅读 · 0 评论 -
PyTorch学习:自动求导
自动求导是 PyTorch 中非常重要的特性,能够让我们避免手动去计算非常复杂的导数,这能够极大地减少了我们构建模型的时间,这也是其前身 Torch 这个框架所不具备的特性,下面我们通过例子看看 PyTorch 自动求导的独特魅力以及探究自动求导的更多用法。import torchfrom torch.autograd import Variable# 简单情况的自动求导# 下面我们显...翻译 2018-11-09 15:13:12 · 330 阅读 · 0 评论 -
PyTorch学习:动态图和静态图
动态图和静态图目前神经网络框架分为静态图框架和动态图框架,PyTorch 和 TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现形式。 TensorFlow 使用静态图,这意味着我们先定义计算图,然后不断使用它,而在 PyTorch 中,每次都会重新构建一个新的计算图。通过这次课程,我们会了解静态图和动态图之间的优缺点。对于使用者来说,两种形式的计算图有着非常大...翻译 2018-11-09 15:20:21 · 13613 阅读 · 1 评论