深度学习
文章平均质量分 65
Hogan180
这个作者很懒,什么都没留下…
展开
-
一起了解Transformer
前言Transformer是GooGle在2017年提出的,一开始主要应用于NLP领域,比如翻译,文本分类,比如BERT就有用到。随着技术不断发展,这门技术也逐渐应用于计算机视觉的领域了。可是,CNN卷积神经网络不是一直主流技术吗?什么时候transformer也来凑热闹了?CNN的局限性我们平常在计算机视觉中所提及的卷积神经网络,大部分是指2维卷积,其实在NLP处理中也会用到1维卷积,用来提取信息。此时,就是以时间序列地形式来表示了。卷积神经网络仅关注局部的信息,而忽略了全局的感知和理解,在信原创 2021-01-23 10:44:12 · 1644 阅读 · 1 评论 -
浅尝YOLOv4论文
摘要对于目标检测来说,都有one-stage和two-stage的方法,而yolo系列的算法都是one-stage的。one-stage速度快但是精确度却会稍微低一些。而yolov4就做到了鱼与熊掌都可兼得的效果,并且还可以降低硬件的要求。yolov4的主要贡献:1.设计了一个高精度、高实时性的网络,并且该网络只需要一个GPU就可以快速训练;2. 验证了Bag-of-Freebies和Bag-of-Specials对目标检测的影响很大,并将之使用到yolov4的网络中;yolov4的网络结构原创 2020-10-21 18:01:46 · 2100 阅读 · 0 评论 -
场景文本检测的方法(CTPN+EAST+DBNet)
前言文字识别分为两个具体步骤:一个是文字区域的检测,二是对文字内容进行识别。两者缺一不可,尤其是文字检测部分,是识别的前提。如果连包含文字的区域都找不到,那后面也就无法进行文字识别了。因为文本存在多种分布,多种方向、排版多样性的特点,所以检测不是一件简单的任务,尤其是当文本是不规则的形状,检测起来就很具有挑战性了。1.传统的图像学处理:基本思想就是 : 得出文本信息所在位置的轮廓,中间还可能进行一些形态学的操作:先二值化图片可以自适应二值化如果有些噪声可以采用高斯滤波来简单过滤掉然后通过腐蚀原创 2020-10-21 18:00:50 · 6709 阅读 · 0 评论 -
OCR所涉及的技术
OCR所涉及的技术OCR也叫作光学字符识别,主要用到了CNN来提取特征以及RNN来对序列进行分析相关性,这两者后来就结合而成了CRNN。然后还用CTC(Connectionist temporal classification)作为损失函数来解决对齐问题。CNN简介卷积神经网络里有一个概念叫做感受野。感受野是用来表示网络内部不同神经元对图像的感受范围,也就是在CNN中表示原图的区域大小,那是因为CNN关注局部像素的相关性比较强,而较远像素的相关性则比较弱,所以神经元的感受野越大,说明它能感受到全图原创 2020-10-21 18:00:24 · 2033 阅读 · 1 评论 -
你说的那个卷积神经网络,是个什么?
前言无论是机器学习还是深度学习,都是为了解决某个问题,比如为了解决分类的问题。拿猫狗分类当作例子,那么就需要知道猫,狗究竟是怎么表达的,要去了解它们的毛发,体型,长相等等。以上说的就是我们到底要选取它们的哪一些特征。当我们选取了合适的特征之后,就可以让机器学习,深度学习这一些算法去帮我们逐步去训练,去学习它们的特征。以深度学习为例:训练完毕后,我们就可以得到在神经网络中各个层的参数。卷积神经网络的组成卷积神经网络概括:卷积的主要作用是提取特征,并且在提取特征的同时能够使网络加深。因为卷积的过程原创 2020-10-21 18:00:10 · 702 阅读 · 0 评论 -
浅尝YOLOv3论文
关于YOLOYOLO的意思是 you only look once,比起想RCNN,FAST RCNN这些two stage的方法,YOLO仅仅需要扫描一遍图像,而不需要另外再寻找ROI,感兴趣的区域。YOLOv3是2018年发明的算法,并且所发表的论文也较为简短。以下是YOLOv3的网络结构图:上图三个蓝色方框内表示Yolov3的三个基本组件:(1)CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。(2)Res unit:借鉴Resnet网络中的残原创 2020-10-21 17:59:23 · 887 阅读 · 0 评论 -
RCNN家族的详解(RCNN,FAST RCNN, FASTER RCNN)
目标检测在目标检测中,一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。而另一类是Yolo,SSD这类one-stage算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类方法是准确度高一些,但是速度慢,但是第二类算法是速原创 2020-10-21 17:59:01 · 951 阅读 · 1 评论 -
填坑,pytorch的安装!
前言因为最近又需要配置新的环境,所以这里就记录 一下所踩的坑吧。这里的基本步骤可以分解为:1.下载anaconda并创建一个虚拟环境,你也可以在base环境下直接安装,但是这个就需要你在环境变量中配置好cuda,cudnn了。2.安装pytorch,cudatools3.测试是否可以import以及使用gpu虽然看起来很简单,但是第一次安装的话可能还是会有很多坑要踩的。创建一个环境首先我们先安装个anaconda并配置好环境变量那些,确保安装的这个没有问题。比如可以测试是否正常打印出hell原创 2020-09-20 14:40:33 · 3398 阅读 · 0 评论 -
tensorflow-gpu的安装以及测试
写在前面写这篇文章主要是为了整理一下之前配置环境埋下的坑,以及加深一下印象,为了以后当需要更改环境时,能够更快地配置好;或者当环境出问题的时候,更快地定位出问题。1.anaonda 配置tensorflow环境(2.x) conda创建一个虚拟环境 conda create -n py37 python=3.7 2.激活环境 `conda activate py37` 3.安装tensorflow-gpu版本,注意安装的时候要添加gpu,以及注意tensorflow与python版本,以及c原创 2020-08-22 21:37:03 · 2456 阅读 · 0 评论 -
自然语言处理之新闻分类(五)使用gensim训练词向量
gensim的介绍gensim中封装了包括了word2vec, doc2vec等模型,word2vec采用了CBOW(Continuous Bag-Of-Words,连续词袋模型)和Skip-Gram两种模型。gensim的参数设置gensim中的每个参数都会影响训练的速度和精度。1.sentences 第一个参数是预处理后的训练语料库。是可迭代列表,但是对于较大的语料库,可以考虑直接从磁盘/网络传输句子的迭代。2.sg=1是skip-gram算法,对低频词敏感;默认sg=0为CBOW算法。原创 2020-07-26 22:27:17 · 1184 阅读 · 0 评论 -
人脸识别 Dlib68,Dlib81,OpenCV对比以及效果提升
最近在做一个关于换脸的项目,就是将图片中模特的脸替换成用户的脸。其中有用Dlib,也有用OpenCv,但是在输入的用户图片中,还有需要自己手动去调整的,比方说对比度,亮度,饱和度这些预处理。OpenCV版本OpenCv中有它自身自带训练好的人脸检测模型,为XML文件。下载完直接用就可以了,当然,Dlib也是。人脸检测器(默认):haarcascade_frontalface_def...原创 2019-07-24 11:56:00 · 1518 阅读 · 0 评论 -
整理下深度学习中常用到的几个function
renameimport os path = ""count = 1for item in os.listdir(path): src=os.path.join(path,item) dst=os.path.join(path,'pic_'+str(count)+'.jpg') try: os.rename(src,dst) print("convert %s to %s"...原创 2020-02-16 15:37:22 · 285 阅读 · 0 评论 -
关于卷积的各种知识
在工科的领域中,特别是图像处理,信号处理,都会广泛使用到卷积这门技术。由卷积的定义,可以知道卷积就是两个函数经过反转、位移再进行相乘后的积分。空洞卷积空洞卷积顾名思义就是在卷积核中有部分元素是为零的,在其中插入空格来使得卷积核扩张。如图所示,33的红点经过卷积后输出的图像本来是33,但是因为空洞卷积的作用,卷积后的实际感受野大小却不同了,l=1 时感受野为 3×3,l=2 时为 7×7。...原创 2020-05-21 14:15:55 · 1428 阅读 · 0 评论 -
自编码器与GAN网络
自编码器在神经网络中分为监督学习和非监督学习,而自编码器就是通过非监督学习,学到输入数据高效表示的人工神经网络。输入数据的这一高效表示称为编码,其维度一般远小于输入数据,使得自编码器可用于降维。更重要的是,自编码器可作为强大的特征检测器,应用于深度神经网络的预训练。此外,自编码器还可以随机生成与训练数据类似的数据,这被称作生成模型。比如,可以用人脸图片训练一个自编码器,它可以生成新的图片。i...原创 2020-01-27 11:10:01 · 5506 阅读 · 3 评论 -
RNN的前世今生
什么是RNN?RNN,即循环神经网络(Recurrent Neural Network),是一类以序列数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。import tensorflow as tffrom tensorflow.examples.tutorials.mnist imp...原创 2020-01-26 21:25:13 · 1343 阅读 · 0 评论 -
深度学习中优化器的选择
首先,我们介绍一下优化器的概念:对于优化器来说,优化的目标是通过改变网络模型中的参数θ(是一个集合,θ1、θ2、θ3 ......)来使目标函数为损失函数L = 1/N ∑ Li(每个样本损失函数的叠加求均值)最小。这个损失函数L变量就是θ,其中L中的参数是整个训练集。换句话说,目标函数(损失函数)是通过整个训练集来确定的,当L对于θ的梯度为零,即对θ每个分量求偏导数,带入训练集全集,...原创 2019-10-08 15:13:10 · 761 阅读 · 0 评论 -
基于Keras的MINST的手写数据集分类
基于Keras的MINST的手写数据集分类import numpy as npnp.random.seed(1) from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Ac...原创 2019-10-08 15:13:21 · 524 阅读 · 0 评论 -
深度学习-----Keras的使用
Keras是基于Python编写的深度学习框架,其中有基于theano,tensorflow的后端。并且,与tensorflow不同,Keras封装好了许多功能,那么就可以简单、快速地进行设计神经网络。Keras最友好的一点是它具有高度模块化的特性。通过Keras,可以将模型构建为一个层的序列或者数据的运算图,并且网络层的搭建、损失函数的选择、优化器的选择、都是已经封装好的模块,使用起来很快...原创 2019-10-08 15:13:17 · 748 阅读 · 0 评论