- 博客(73)
- 收藏
- 关注
原创 轻量级网络 | SQUEEZENET
论文:https://arxiv.org/abs/1602.07360github: https://github.com/forresti/SqueezeNet简介:SqueezeNet是一个经典分类模型, 主要特点是模型参数量少, 在Imagenet上精度和AlexNet差不多,模型大小是AlexNet的150\frac{1}{50}501 之一左右,压缩后可以小于0.5M。S...
2020-03-21 23:24:50 495
原创 目标检测 | Detectron2 中Boxes 详解
简介Boxes 是Detectron2 中用来处理检测框的基础类,功能强大, 包括clip、scale、cat 等等操作。代码解析初始化类,可以看出成员变量tensor是一个二维tensor,保存N个框(x0, y0, x1, y1), 第二维度为4, 可以存放anchor或groun truth.class Boxes: """ This structure st...
2020-03-10 22:41:24 4658
原创 论文阅读 | Ghostnet网络
简介paper: https://arxiv.org/abs/1911.11907github:https://github.com/huawei-noah/ghostnetGhostnet(CVPR2020)是华为提出的一种轻量级网络,结构类似mobilenetV3,具有速度快、精度较高特点。论文中主要贡献是:提出Ghost Module。Ghost Module如图二所示,...
2020-03-09 22:02:53 678
原创 ncnn | windows 下编译ncnn android库
软件环境ncnnvulank(option)cmakeandroid ndk编译主要编译两个架构和是否加vulkan.在ncnn 同级目录新建 build_android.bat,写入下面内容。编译脚本在官方基础上加下面语句。set ANDROID_NDK= your android ndk root # eg C:/android-ndk-r20 -G "Unix Make...
2020-01-03 22:33:13 1685 1
原创 pytorch | tensor维度中使用 None
None可以在所处维度中多一维,具体实现。import torchtensor = torch.randn(3, 4)print('tensor size:', tensor.size())tensor_1 = tensor[:, None]print('tensor_1 size:', tensor_1.size())tensor_2 = tensor[:, :, None]p...
2019-12-30 21:03:46 16755 2
原创 ncnn |在win上利用ncnn实现squeezenet分类(imagenet1000类)
简介熟悉ncnn的使用,可以从ncnn官方提供的squeezenet网络入手,squeezenet网络在imagene上训练,类别数为1000。 实现流程主要包括模型转换、加载、推理、后处理。在pc上实现可以验证模型结果是否正确,进一步部署到其他平台,本博客主要介绍在windows10上实现。系统环境Windows10Visual Studio 2017ncnn (2019122...
2019-12-24 23:23:39 1107 1
原创 Pytorch | dataloader 多线程下numpy每个线程随机种子都一样解决方案。
问题描述pytorch的Dataloader用于加载数据。在num_works >1时, 每个线程中numpy.random产生的随机数一样,也就是随机种子相同。random 和 torch两个模块的随机数不会出现这种情况。DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_...
2019-12-04 21:21:00 2078 2
原创 目标检测 | Receptive Field Block Net for Accurate and Fast Object Detection
Paper:https://eccv2018.org/openaccess/content_ECCV_2018/papers/Songtao_Liu_Receptive_Field_Block_ECCV_2018_paper.pdfGitHub: https://github.com/ruinmessi/RFBNet简介RFB Net主要用于目标检测,模型参数少。文中提出了RF bl...
2019-09-24 20:22:01 1565
原创 目标检测|CornerNet 数据预处理ground truth heatmaps
简介CornerNet 是最经典的Anchor-free方法,本博客主要介绍数据预处理中最核心步骤: ground truth heatmaps。方法如上图所示, 有三种颜色的图形, 红色框代表ground truth, 绿色框的角点在橙色圆圈里面, gound truth heatmap就是通过高斯分布函数生成, 以ground thuth 的两个角点为中心,半径为rrr, 利用高...
2019-09-18 21:08:40 1593 1
原创 目标检测|制作MS COCO json格式的数据集
简介MS COCO 是google 开源的大型数据集, 分为目标检测、分割、关键点检测三大任务, 数据集主要由图片和json 标签文件组成。 coco数据集由自带COCO API,方便对json文件进行信息读取。本博客介绍是目标检测数据集格式的制作。步骤对现有数据标签文件转化为json格式, json文件主要用字典形式存取, coco原数据集包括:info、licenses、image...
2019-09-18 20:30:10 6404
原创 目标检测|安装 mmdetection
github:https://github.com/open-mmlab/mmdetectionpaper:https://arxiv.org/abs/1906.07155一、简介mmdetetion是香港中文大学 MMLab实验室开源的目标检测框架, 是一款基于pytorch 深度学习框架搭建的目标检测库,包含很多主流的算法,包括anchor、anchor-free, one-sta...
2019-09-10 15:27:52 6674 6
原创 Arcface训练vgg2face数据集——数据制作
Arcface训练vgg2face数据集——数据制作简介本博客是基于开源项目insightface训练vgg2face。训练首先要对数据里面的人脸图片进行检测,接下来进行人脸对齐,保存对齐后的图片,最后生成一个和原来数据文件目录一样的存放图片文件夹和一个lst文件,lst存放图片绝对路径和每张图片对应类别ID。代码解读利用 $INSIGHTFACE_ROOT/src/align/al...
2019-04-14 21:36:13 3467 6
原创 tensorflow——tensorboard入门总结
简介tensorboard 是tensorflow的一个可视化工具,可以简便看网络图、loss等评估指标曲线。使用方法1、首先要用tf.summary.scalar(name, valiable)创建一个节点,用于保存这一层的权重,name是新建节点名称,valiable是网络图中变量名。2、利用 tf.summary.FileWriter(filepath, graph) 来保存所...
2019-04-03 20:24:08 332
原创 C++——string
简介string 是标准类型库一种,存放字符串和对字符串进行操作,头文件<string,h>常用操作:empty(): 当string对象为空,返回trues.length() string长度s1 + s2 字符串拼接s1 = s2 s2覆盖s1s1 == s2 判断是否相同,区分大小写s1 != s2初始化方法string s1; // ...
2019-03-31 16:02:55 136
原创 Python——from collections import namedtuple
Python——from collections import namedtuple在读SSD源码中看到 namedtuple这个子类,这可以理解为元祖的升级版。细节看官方文档。collections.namedtuple(typename, field_names, *, verbose=False, rename=False, module=None)¶typename: 代表新建的...
2019-03-28 20:08:19 1862
原创 Python——循环技巧
Python——循环技巧简介对list 进行循环操作,正常都用 for da in data方式,无法获得da的下标。不过enumerate()函数可以返回i 和 da,i是下标,如下图:当同时在两个或更多序列中循环时,可以用 zip() 函数将其内元素一一匹配questions = ['name', 'quest', 'favorite color'] answers = ['l...
2019-03-27 17:47:52 214
原创 Python复习——数据结构
一、 简介在本博客主要介绍python的三个数据结构: list、dict、tuple、set。ps:最近面试发现python基础还不是很牢固,加上昨天python中文文档出来,决定复习一下python.下面都是基于python3.6二、 ListList是比较常用的数据结构,可以存储多种数据类型,能进行插入、删除、查找等功能。1、append(x),在list最后面加入一个元素x...
2019-03-27 17:36:22 348
原创 Linux基础——grep 命令
Linux基础——grep 命令最近复习Linux基础命令,记录下grepgrepgrep,这个命令用于文件查找,功能强大。grep [options] pattern [file]grep 会在指定文件file查找匹配字符。比较查用命名,举例用文件file,内容为onetwofourfivesixthreetenoldnewandsodot1、...
2019-03-21 23:22:34 196
原创 机器学习——AdaBoost 算法
AdaBoost 算法简介AdaBoost 算法:通过初始化一个分类器,然后根据前一个,训练多个分类器,然后加权得到最终分类器,是一种强学习的算法。算法流程输入: 训练数据集T={(x1,y1),(x2,y2),...,(xN.yN)}T=\{(x1,y1),(x2,y2),...,(x_N.y_N)\}T={(x1,y1),(x2,y2),...,(xN.yN)},其中xi∈Rnx...
2019-03-19 17:45:05 224
原创 机器学习——SVM原理解析
机器学习——SVM原理解析简介支持向量机(support vector machines,SVM)是一种二分类模型,学习策略是间隔最大化,是求解凸二次规划的最优化算法。模型由繁到简分为:线性可分支持向量机、线性支持向量机和非线性支持向量机。<<机器学习>>6.2图<<机器学习>>...
2019-03-19 00:09:59 315
原创 人脸检测——基于YOLOV3的人脸检测训练、评估、部署
人脸检测——基于YOLOV3的人脸检测训练、评估、部署简介最近,在·YOLOV3上训练 WIDER FACE 数据集,自己写了个Focal Loss,最后结果比较理想,在 NVIDIA GTX 1080TI 11G 上速度为30帧,细节请看github,项目源码地址: https://github.com/jmu201521121021/FaceDetector-Base-Yolov3-sp...
2019-03-13 14:45:48 6201
原创 Loss——Focal Loss
Loss——Focal Loss一、简介Focal Loss论文地址:https://arxiv.org/pdf/1708.02002.pdfFocal Loss是基于Cross Entropy修改的,是解决分类不均衡问题的一种方案。 reduces the relative loss for well-classified examples,(pt &amp;amp;amp;gt; :5), putting m...
2019-02-24 21:12:10 925 1
原创 RCNN系列——Faster RCNN anchor生成解析
RCNN系列——Faster RCNN anchor生成解析一、简介Faster RCNN里的anchor 是一个矩形框,用于box regressor, 可以减少网络计算量, 把anchor 数目定义为kkk,featur map每个点只预测kkk个box,然后与anchor计算偏差,回归更加精准的框位置。假设feature map 尺寸为W×HW \times HW×H,输出anchor...
2019-02-22 14:43:02 4849
原创 RCNN系类——RoI pooling layer
RoI pooling layer一、简介RoI pooling layer是Fast RCNN中一个层,也应用于Fater RCNN,可以让region of interest(ROI)区域特征转化为固定大小的feature map(变为 W×HW \times HW×H),方便后面cls softmax,bbox regressor训练。二、 算法流程——————————————...
2019-02-22 11:33:23 397
原创 人脸检测——FDDB数据集评估
人脸检测——FDDB数据集评估一、FDDB数据集简介FDDB数据集官网:http://vis-www.cs.umass.edu/fddb/index.htmlFDDB数据集用于人脸检测算法。This data set contains the annotations for 5171 faces in a set of 2845 images taken from the Faces i...
2019-02-20 21:43:58 7178
原创 深度学习——Pooling Layer
深度学习——Pooling Layer简介Pooling Layer正常是用于Convolution Layer后面,可以进一步提取有效特征,降低nW,nHn_W,n_HnW,nH维度,减少计算量。Pooling 层和Convolution层一样具有stride(d)、f、pad(p)stride(d)、f、pad(p)stride(d)、f、pad(p)参数。Pooling Laye...
2019-02-08 20:06:10 1488
原创 深度学习——卷积神经网络原理解析(Convolution layer)
深度学习——卷积神经网络原理解析(Convolution layer)简介卷积主要应用于计算机视觉领域,经常用于特征的提取、目标检测、人脸检测与识别等任务。卷积是同于一系列加乘法运算完成,核心是卷积核(filter),还有一些参数:strid(s)、pad、weights。下面介绍卷积层的前向传播和反先传播过程。前向传播(fowardpropagation)前向传播比较容易理解,就是...
2019-02-08 18:02:45 2412
原创 深度学习中解决过拟合(over fitting)、欠拟合(underfitting)的方案。
深度学习中解决过拟合(over fitting)、欠拟合(underfitting)的方案。简介在深度学习训练和测试数据过程经常会遇到过拟合和欠拟合的问题。过拟合(over fitting):就是模型在训练集上精度达到我们需求,而在测试集上效果偏差。欠拟合(under fitting): 就是模型在训练集上精度不理想,无法达到我们要求。举个例子accuracyaccur...
2019-02-06 12:11:45 1340
原创 神经网络优化——梯度下降常用算法:随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma
神经网络优化——梯度下降常用算法:min-batch、随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma简介梯度下降算法是应用于神经网络反向传播过程的计算梯度,然后更新参数,最终找到最优的位置。本博客主要介绍随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma。也是对Andrew NG 的deepl...
2019-02-04 11:25:20 3141 1
原创 深度学习——全连接层(Fully connected dence layers)原理解析
深度学习——全连接层(Fully connected dence layers)原理解析一、简介全连接层有多个神经元,是一个列向量(单个样本)。在计算机视觉领域正常用于深度神经网络的后面几层,用于图像分类任务。全连接层算法包括两部分:前向传播(Forward)和反向传播(Backward)二、 算法解析前向传播(Forward)上图主要有5个变量,x,a,W,b,σx, a...
2019-02-03 12:46:20 26495
原创 交叉熵 (Cross Entropy)
交叉熵 (Cross Entrophy)Machine Learning 很大一部分二分类任务的 loss function 使用 Cross Entrophy.,正常前面会有sigmoidsigmoidsigmoid激活函数,具体前向和反先可以参考前面我的博客:https://blog.csdn.net/jmu201521121021/article/details/86658163公式P...
2019-02-02 23:19:10 1505
原创 深度学习——激活函数ReLu、LReLu、PReLu原理解析
深度学习——激活函数ReLu、LReLu、PReLu原理解析简介论文链接: https://arxiv.org/abs/1502.01852由于项目需要,需要了解msra 权重初始化方法原理, 正好Kaiming 大神这篇论文提出了PReLu。本博客主要介绍PReLu。文中两个创新点是使用PReLu和msra初始化后,在I ImageNet 2012 classification dat...
2019-01-29 23:08:01 13936 2
原创 darknet 源码阅读(网络层代码)——batch Normalize 层(BN)
简介论文链接:https://arxiv.org/abs/1502.03167yolov2中,根据论文所讲,通过在所有convolutional layer后添加batch normalization层,map提升2%.并且相对于yolov1,移除了droupout,BN提升了模型的泛化性,有效避免过拟合。BN原理简约公式:xi=xi−xˉ1N∑jN(xj−xˉ)2(1) x_i = ...
2019-01-27 21:42:13 1421
原创 darknet 源码阅读(网络层代码)——yolov3 yolo_layer
yolov3 yolo_layer原理解析和代码解读简介yolo 层是 yolov2 v3的最后一层,输出x,y,w,h,confidence, class。本篇博客主要介绍yolov3的loss。yolov3 loss 解读yolov3 loss 由 box、confidence 、class 三部分loss组成。box loss 采用 sum square error, co...
2019-01-27 15:15:29 5532 12
原创 python functools.reduce 函数学习
python functools.reduce 函数学习参考链接: https://mathieularose.com/function-composition-in-python/functools.reduce 第一次在 keras-yolov3代码里遇到,可以实现每一层网络计算过后参数传递给下一层。def compose(*funcs): """Compose arbitra...
2019-01-24 14:59:02 1404
原创 python argparse 模块
python argparse 模块利用argparse 传递参数import argparsedef parse_args(): parser = argparse.ArgumentParser(description = 'learn parse make firstly') # 参数描述 parser.add_argument('--gpu',dest = 'g...
2019-01-22 15:22:25 274
原创 darknet 源码阅读(数据预处理篇)——K-means生成anchor
darknet 源码阅读(数据预处理篇)——K-means生成anchor一、简介yolov2开始采用Faster RCNN RPN的anchor方法,区别在于,RPN是采用手动设置anchor尺寸,而yolov2是采用k-mean聚类,获得K个anchor尺寸。K-means 算法K-means 简称K-均值聚类,该算法最终将训练数据分为K个靠近彼此的不通样本聚类。算法流程...
2019-01-16 13:33:37 3004
原创 darknet 源码阅读(数据预处理篇)——制作VOC格式数据集
一 、简介VOC文件目录结构├── Annotations├── ImageSets│ └── Main├── JPEGImages1、需要在Annotations文件下生成所有图片对用的xml文件2、ImageSets└── Main 是存放txt文件,2007train.txt 2007test.txt 2007val.txt txt文件里面包含是图片名称(没有后...
2019-01-15 22:18:39 1054
原创 darknet 源码阅读(数据预处理篇)—— voc_label.py
darknet 源码阅读(一)——yolo 数据预处理篇(voc_label.py)简介本文都是基于darknet-AB版本源码进行解读。源码链接:https://github.com/AlexeyAB/darknetvoc——label.py 是yolo训练前数据预处理一部分,主要功能: 根据VOC数据集 ImageSets\Main目录下的train.txt、test.txt val...
2019-01-15 21:44:21 6559 17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人