自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaomifanhxx的博客

深度学习初学者

  • 博客(99)
  • 资源 (1)
  • 收藏
  • 关注

原创 dropout以及dropblock

在搭建深度卷积神经网络的过程中,当我们拥有的数据比较少的时候,我们经常遇到过拟合问题,为了解决该问题Hinton提出了dropout方法,即其认为过拟合问题可以通过抑制某些特征的协同来缓解。同样,在进行检测过程中,若在卷积层中使用dropout意义并不是很大,由于卷积层可以通过drop掉的神经元附近学习到相似的信息,因此为了在卷积层中防止过拟合现象,出现了dropblock模块,通过随机失活某一个区域来达到抑制信息协同的作用。Dropoutdropout的实现主要是通过binomial(伯努利)方法,随

2020-07-15 19:24:01 2893

原创 普通卷积、空洞卷积、反卷积以及池化的感受野以及输出尺寸

普通卷积、空洞卷积、反卷积以及池化的感受野以及输出尺寸本文主要是针对卷积神经网络中如何通过搭建正确的网络结构来提高目标分类、目标检测以及目标分割的精度。下面我将分别介绍常用卷积的不同以及不同卷积的各个用途。普通卷积目前随着计算机视觉的不断发展以及现在计算单元计算速度的提升,使得卷积神经网络进行视觉推理已经是不可阻挡的趋势,那么如何有效的搭建网络结构成为了提高精度的有效方法。使用3个3x3来代替7x7: 研究发现一个尺寸较大的卷积核能够被几个较小的卷积核代替,由于他们在原图上拥有相同的感受野,但是,在

2020-07-14 10:23:41 2210 2

原创 对CNN感受野的理解加公式

随着对深度学习的不断加深,需要对卷积神经网络的基础进一步巩固,那么对于卷积功能的操作是必须理解的如上所示:(1) nin代表输入的特征图的尺寸、p代表的是padding指数、k代表的是卷积核的大小,s代表卷积的步长,nout代表输出特征图的尺寸大小;(2)jin代表输入特征图特征与特征之间的距离;s代表卷积的步长;jout代表输出特征图的特征与特征之间的距离;(3)rin代表输...

2020-02-29 14:33:48 395

原创 关于评价指标的理解(TPR,FPR,TAR,FAR,FRR,ERR)

近期,一直在做人脸识别方面的研究,在阅读paper的时候,发现对一些指标认识不足,因此,从新学习认识算法的评价指标,非常感谢https://blog.csdn.net/liuweiyuxiang/article/details/81259492,学习到了很多。由于在做人脸之前,做的是工业上的检测,对于工业上检测,常用指标为TPR(True Positive Rate),FPR(Fals...

2020-02-12 12:06:56 24611 1

原创 关于在ubuntu下使用nohup、定向存储问题以及记录时间总结

1、定向存储问题 当我们在调程序尤其是在训练神经网络观察其参数的变化时,我们通常喜欢将输出结果存储到线下的文件中,意为打log,但是存储数据又分为存储输入、错误输出以及正常输出3类。 &1为文件描述符1,并不是我们时常认为的命名为1的文件,切记这个要区分开,2>&1是将输出错误结果与正确结果进行合并,一起保存在文件中,其中0表示键盘输入、1...

2019-12-30 11:41:13 860

原创 PFLD 论文理解(二)

PFLD(practical facial landmark detector)这篇论文主要是解决了在移动端等应用人脸关键点识别速度慢、准确率低的问题。 人脸关键点检测面临的四大挑战:(1)local variation:expression(表情)、local extreme lighting(强光照)、occlusion(遮挡)等会影响局部信息变量,导致检测出错。(2...

2019-07-22 10:21:40 1393

原创 PFLD 论文理解(一)

在对PFLD论文进行解析之前,首先为大家科普一下什么叫做:旋转角(roll)、俯仰角(pitch)、偏航角(yaw)。如下图所示旋转角(roll):即绕着x轴旋转,机身为x轴俯仰角(pitch):即绕着y轴旋转,即机翅旋转偏航角(yaw):即绕着z轴旋转,即重力反方向参考博客:https://blog.csdn.net/sinat_27456831/article/deta...

2019-07-21 18:03:57 1486

原创 python 大杀器

在进行深度学习的时候,我们常常希望能够多线程去处理数据,以便于提高程序的处理速度,于是给大家介绍诸多python的大杀器,能够很快的提高代码能力以及程序的处理速度。Round1:__getitem__:可以让类对象实现迭代功能,即拥有和tuple、list一样的可以用for...in...来迭代该对象。class Animal: def __init__(self, ...

2019-07-17 16:32:57 127

原创 python多线程与多进程

在进行算法优化的时候,我们需要实时性,运行速度越快,效率越高。而平常运行使用程序,我们只使用一个核进行运算,而cpu均含有多核,那么其他核不进行运算,这就造成了巨大的浪费,而为了加速,使用了python所带的多线程与多进程。多线程: 多线程即是将一个大任务,分成若干个子任务,cpu每个核分别进行处理若干个子任务,这样进行并行运算,提高了处理速度。推荐使用python带有的mu...

2019-07-04 11:31:39 270

原创 浅谈YOLOV2与YOLOV3

YOLOv1:YOLOv1论文理解 最近要做目标跟踪,经过调研发现,YOLOv3的速度与精度喜人,超过了同时代的(Faster-R-cnn、SSD、YOLOv2),达到了 art-to-state水平,但是在阅读过程中,尽管我曾经看过v1和v2但是在了解v3的时候还是有点困难,因此重新进行了梳理。YOLOv2: 不得不说,作者的"分而治之"的策略的确很好,在提高速度的同时,...

2019-06-24 14:54:49 9636

原创 python转为exe执行文件

python代码比较特殊,在给客户工具的时候,如果给予python,这样会使得客户进行操作,但是如果给予客户一个exe执行文件,那么客户便可以方便、直接的使用工具。经过调研python转为exe文件有2种途径。1、使用pyinstaller首先利用pip安装python的工具库:pip install pyinstaller安装成功后运行:pyinstaller -F pyth...

2019-06-19 22:30:31 2537

原创 Mac在vscode中加入venv环境并进行选择(包括加入相应插件)

1、首先查看virtual enviroment位置所有的环境均保存在该文件夹下/Users/hx/venv/2、打开setting.json来设置vscodecommond+shift+p:输入setting,选择open Settings(Json)将之前的环境添加进去:{ "python.venvPath": "/Users/hx/venv", "...

2019-06-13 22:07:42 4511

原创 Virtual environment

在使用Python开发的时候,我们会遇到每个项目使用的Package的版本不一样,这样我们要来回调试我们的版本,给我们造成了很大的麻烦,于是Python出现了一个Virtual enviroment的 1、安装python3 众所周知,刚拿到手的mac是自带python2.7的,但是我们需要使用python3,这样我们就要使用到我们的神器Homebrew。(1)安装...

2019-06-12 22:49:46 458

原创 Optimizer优化器总结

在训练深度学习模型的时候,我们要使用优化算法不断迭代模型参数以降低模型损失函数的值。在深度学习问题中,我们通常要预定义一个损失函数(L1,L2等Loss),在模型训练过程中,这样的损失函数通常被称为目标函数。优化算法的目标损失函数通常是一个基于训练数据集的损失函数,优化目标是为了降低训练误差,但是在降低训练误差以外还要注意过拟合,后面将介绍防止过拟合的相关方法。 在优化过程中,我...

2019-05-27 19:22:44 1160

原创 计算NMS以及Map(一)

计算NMS 在进行测试的时候我们需要进行NMS,把没有必要的框去除掉,以保证我们的输出效果。 在把数据输入到检测网络中时,输出的为PreBoxes(Shape=(B,A,4)),PreIds(Shape=(B,A,NUMClass)),PreScores(Shape=(B,A,NUMClass)),在此我真对一张图片进行求解NMS。首先我们要明白PreBoxes包含的是所有De...

2019-05-25 20:25:14 864

原创 阅读完相关论文自己的理解(二)

上篇博客主要叙述了ResNetv1/v2两篇经典论文的解析,由于工作需要,需要做关键点检测,那么阅读了关键点的一些文章,现就Pose的经典的三篇论文进行理解:CPM(Convolutional Pose Machines)、StackedHourGlassNetWork、SimPleBaseLine。1、CPM 1 Introduction PoseMachin...

2019-05-20 16:10:17 238

原创 Pose Estimation 相关操作-HeatMap生成

1、HeatMap的生成相关代码(1)import numpy as npimport cv2input_size=(96,96)center=(10,10)stride=1start=stride/2-0.5#用来控制center的位置,默认stride为1xx=np.arange(1,input_size[0])yy=np.arange(1,input_size[1])...

2019-05-14 18:46:01 2271 1

原创 阅读完相关论文自己的理解

ResNetv1:(1)ResNetv1使用了残差单元,使得网络结构更加容易优化、验证了使用残差单元可以通过增加网络的深度来提高精度。(2)该论文阐述了plain NetWork随着网络深度的不断提升,TrainError也不断提高,这不是梯度消失问题,由于网络的模型结构使用了BN,其保证了前向传播网络的输出分布为非0分布,并且反向传播的梯度也是一直存在的,所以不是梯度消失的问题,而是随着...

2019-05-14 14:28:54 216

原创 Python 关于__init__.py的理解

在使用Python文件时,我们引入了一个Package的概念,这样方便我们去调用我们写的函数,而不需要重新复制一遍。但是在包导入的时候,会出现各种各样的问题。在使用以下方法进行导包的时候:from . import xxxfrom .. import xxx会出现SystemError: Parent module '' not loaded, cannot perf...

2019-05-10 14:28:00 1683

原创 使用Mxnet进行重构SSD(五)

在进行训练与测试后,我们需要验证模型的鲁棒性,我们使用的是Voc数据集格式,即用VOCMap来评判模型。 在讲述Map(Mean Average Precision)之前,我们先要讲述目标检测评估的指标为P-R曲线、AP、MAP。P为precision与R为Recall。P-R曲线对我们来说,P和R都为1的模型是最完美的,但实际情况却并不像我们想的那样,通...

2019-04-20 14:23:43 402

原创 使用Mxnet进行重构SSD(五)

前面博客讲述了训练从数据流的获取到Loss的选择,但是在我们的检测的时候,要进行NMS然后再进行输出,这篇博客主要讲述NMS。1、由于网络结构预测的是Box的offsets,即首先要把offsets应用于anchor的转换,进行bbox_decoder:def __init__(self, stds=(0.1, 0.1, 0.2, 0.2), means=(0., 0.,...

2019-04-19 19:37:17 725

原创 使用Mxnet进行重构SSD(四)

前面博客讲述了数据流的输入,通过网络后我们要计算网络损失,我们通过CrossEntropy来进行类别分类,通过SmoothL1来进行计算损失。由于是SSD需要考虑前景与背景的数据平衡,因此根据论文我们选择了Positive:Negitive=1:3。(查询包的位置site-package)1、首先判断每张图Positive的个数,与整个Batch下Positive的数量。...

2019-04-19 18:23:43 184

原创 使用Mxnet进行重构SSD(三)

前面博客介绍了DataSet与Transform的生成,但是在做目标检测的时候我们的label是不固定的,由于每张图片物体出现的个数是不一样的,我们要将label生成anchor形状的,使用的是target_generator函数,输入的box是(1,N,4),label是(1,N,1)。整体函数:class SSDTargetGenerator(Block): ...

2019-04-17 12:59:10 555

原创 使用Mxnet进行重构SSD(二)

前面博客主要讲述了如何生存DataSet,DataSet输出的为mx.nd.array类型的image与np.array类型的label。但是由于GPU显存大小的问题,我们需要每次选取BatchSize个图片送进网络,而且还需要做数据增强DataAugment,Mxnet里面做数据增强使用的是TransForm函数。1、img = experimental.image.rand...

2019-04-17 12:14:10 478

原创 Mask R-CNN实现RGB-D数据集训练

在使用Mask R-CNN做了RGB的数据的实例分割,感觉效果很棒,提出疑问,如果使用RGB-D数据集多了一个维度的信息,那么分割效果是不是更好。于是就开始了我尝试使用RGB-D数据集训练Mask R-CNN的想法。网上的开源的Mask R-CNN代码是以RGB图像作为默认输入图像的,如果需要处理4通道图像,需要对源码进行一定的修改,参考github以为大神的解决方案,Gith...

2019-04-17 09:44:34 3024 19

原创 使用Mxnet进行重构SSD(一)

在使用Mxnet进行SSD重构的时候,Backbone使用的MobileNetv1,并使用了PreTrainModel的参数进行BackBone参数初始化,剩余网络使用MSRA进行随机初始化。训练初期,Freeze掉Backbone的参数只训练多尺度网络,为防止多尺度网络将Backbone的参数带偏。训练中期,所有的参数全部打开一起训练。训练后期,调整Size、Steps以及网络模型等参数...

2019-04-16 11:37:35 425

原创 训练过程总结问题(一)

最近在做烟盒检测的U型分类,主要是来查看烟盒的摆放是否是U型排列(相同类别的烟盒)。 通过目标检测将每一张图含有的烟盒检测出来,并进行分类,并统计每一类烟盒的出现在该图像的频率,一般数目为6个及以上的数量才能构成U型排列,因此,统计出哪类烟盒出现在图像的次数超过6次,并将其生成二值化图,用于U型分类,主要是类似于Minist手写数字,但是在训练过程中遇到了诸多问题。首先使用了...

2019-03-03 10:49:47 647

原创 关于梯度下降的理解

    这段时间,特别懵懵懂懂,每天跑网络但是不知道为什么这样做,总感觉是个黑盒子,想要慢慢把它原理弄清楚。1、为什么梯度下降可以达到全局最优点?为什么朝着梯度的反方向下降是正确的方向?    拿一个回归函数以及目标函数为例:以均方误差作为目标函数(损失函数)我们的目的是将损失函数的损失降到最低,这意味着我们的回归精度得到了提高。由拉格朗日中值定理我们可以得到要使比...

2019-01-27 15:08:03 322

原创 MTCNN-Caffe(四)net.prototxt

在上篇博客生成train_lmdb与val_lmdb后,要进行网络与迭代器搭建,首先进行网络的搭建1、数据层即输入层。    Caffe中数据以blob的格式进行存储和传输,在这一层中是实现数据其他格式与blob之间的转换,例如从高效的数据库lmdb或者level-db转换为blob,也可以从低效的数据格式如hdf5或者图片。另外数据的预处理也可以在本层实现,如减均值,放大缩小,裁剪和镜像...

2019-01-24 14:56:54 1297

原创 MTCNN-Caffe(三)生成lmdb

#!/usr/bin/env sh # Create the imagenet lmdb inputs # N.B. set the path to the imagenet train + val data dirs EXAMPLE=. TOOLS=/data2/zxli/CODE/caffe_multilabel/build/tools DATA=. TRAIN_DATA_R...

2019-01-22 12:30:12 1018 2

原创 MTCNN-Caffe(二)生成训练集、验证集的list,混合

上篇博客讲述了在训练caffe模型时,生成了3个txt文件,再分成训练集和验证集后要生成整体的train/val.txt,该py文件将整理好train与valid。默认比例是pos:neg:part:landmark为1:3:1:0#!/usr/bin/env python"""classify.py is an out-of-the-box image classifer callab...

2019-01-21 20:15:45 1113

原创 MTCNN-Caffe(一)随机Crop图片分成3类

在做MTCNN时,首先训练12Net,目的是为了提高Face的召回率,即首先进行三分类:pos,neg,partgenetate size为12的py文件:import sys#sys.path.append('../12net')import numpy as npimport cv2import osimport numpy.random as nprsys.path.a...

2019-01-21 18:17:24 587

原创 Mxnet/Gluon中网络和参数的存取方式

    由于mxnet的更新速度较快,本文参考https://blog.csdn.net/caroline_wendy/article/details/80494120来对最近的Mxnet、Gluon网络和参数存取进行更新。Gluon是MXnet的高层封装,网络设计简单易用,与Keras类似。随着深度学习技术的普及,类似于Gluon这种高层封装的深度学习框架,被越来越多的开发者接受和使用。...

2019-01-06 12:42:11 1874

原创 MxNet学习笔记(2)-softmax和log_softmax的区别、CrossEntropyLoss()与NLLLoss()的区别、Log似然代价函数

1  softmax函数Softmax(x)是一个non-linearity,但它的特殊之处在于它通常是网络中的一次操作,这是因为它接受了一个实数向量并返回一个概率分布,其定义如下,定义x是一个实数的向量(正数或负数都无所谓,没有限制)。然后,第i个Softmax(x)的组成是输出是一个概率分布:每个元素都是非负的,并且所有元素的总和都是12  log_softmax在soft...

2019-01-06 11:46:27 1392

原创 MxNet学习笔记(1)

1  mxnet.ndarray.concatimport mxnet.ndarray as ndx=[[1,1],[2,2]]y=[[3,3],[4,4],[5,5]]z=[[6,6],[7,7],[8,8]]nd.concat(x,y,z,dim=0)##按行拼接nd.concat(y,z,dim=1)##按列拼接2  Python中*和**的区别当要使函数接收元组或字...

2019-01-06 11:09:41 607

原创 Python对DataFrame的常规操作

import numpy as npimport pandas as pdfrom pandas import *from numpy import *data = DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))print dataprint data[0:2] ...

2019-01-04 12:39:24 2607

原创 python中split、os.path.split()、以及os.path.splitext()

import os #os.path.join() 将分离的部分合成一个整体filename=os.path.join('/home/ubuntu/python_coding','split_func')print filename#输出为:/home/ubuntu/python_coding/split_func #os.path.splitext()将文件名和扩展名分开fna...

2019-01-04 12:31:39 164

原创 Python中数组及矩阵的大小

python中常见的二维数组:list.np.array(),很多情况下我们求解列表与数组的行列会出现问题,在求解行列的时候我们要明确什么类型用什么函数求解。import numpy as npa=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]b=np.array(a)print(type(a))print(a)print(type(b))print(b)...

2018-12-29 18:51:40 46993

原创 剑指Offer C++总结

1、向量vector用法1.1  Vector的存储空间是连续的,List不是连续存储的。定义初始化: vector<type> v //默认v为空,即v[0]=5是错误的;vector<type> v1(v) 或者v1=v或者vector<type> v1(v.begin(),v.end());vector<type> v(n,i...

2018-12-12 21:33:36 1935

原创 剑指Offer-Python总结

1  列表1.1  列表的入列出列是a.append()、a.pop()1.2  在删除列表中某个元素的时候 1.2.1 a.remove()删除某个值,如果知道值为多少则写值,反之写值得位置如a[i]1.2.2 a.pop()删除某个位置的值,括号里面写pop出的值得位置如i,并且返回输出的值1.2.3 del a[i] 删除某个元素1.3  入列的时候除了a.appen...

2018-12-12 10:02:00 290

labelme16位转8位

labelme16位转8位

2018-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除