自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hh_2018的博客

仅提供自己在运用深度学习进行图像处理过程中的一些见解

  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 使用keras对自己的模型通过GridSearchCV进行调参

GridSearchCVh是一个智能的调参工具,根据该工具我们可以让模型在一组参数里面自行选择最有的参数。一般keras自带的有对分类和回归两类问题的调参,但是对于一些复杂的模型,或者自己写的模型,如果我们想使用这个方法往往需要重构源码的函数。class KerasRegressorMy(BaseWrapper):def __init__(self, lr=0.0001, latent_dim=128, num_well=189, batch_size=2, epoch=1, factor.

2021-02-07 19:19:48 975

原创 keras如何使用model.compile封装自己的模型

使用keras可以方便的构造出我们自己的模型,但是由于keras是一种集成度但同时也缺乏一定的灵活性,本文主要介绍keras在构造模型的complie接口几个主要参数,帮大家理解如何根据自己的需求灵活的构造合适的参数model.compile中有几个主要的参数,其大概如下:model.compile(loss=[None, total, total, total, total, total, total], loss_weights=[0, 20, 1, 1, 10, 1

2021-02-07 19:11:15 1004

原创 基于tesseract的二次训练过程

tesseract 是一个开源的文字检测工具,但是其语言包具有一定的共性,所以针对一些特定的情景并不能很好的满足需要所有此时就需要进行二次训练,针对该方式的训练字体使用的工具为jTessBoxEditorFX-2.0.1.zip,其训练过程如下:1. 打开jTessBoxEditor。然后点tools->Merge TIFF,生成对应的文件并保存2. 执行 tesseract c...

2019-10-14 20:45:27 1131

原创 基于linux的tesseract5.0安装

tesseract5.0拥有更高的准确度的同时可以使用白名单进行识别的筛选,基于windows目前有很多安装好的压缩包直接安装即可,具体可见https://digi.bib.uni-mannheim.de/tesseract/但是其基于linux的安装却需没有很好的安装包,需要从源码进行编译,其具体安装方式如下:1. git clone https://github.com/tessera...

2019-10-14 20:32:47 2726 9

原创 基于tesseract的文字识别

tesseract是谷歌开源的一款可以对图片进行ocr识别开源软件,使用时主要包括安装tesseract,下载语音库,自训练语音库几个部分。其安装方式和下载方式目前有许多介绍不做多的说明。一、tesseract基本操作过程1. 安装过程需要注意自己选取的版本,tesseract-4的版本虽然提高了准确度但是不支持配置的白名单,tesseract-3和tesseract-5的版本支持,另外基...

2019-09-01 15:31:43 1004

原创 深度学习框架之Keras

Keras是一个抽象层次高的API,其后台也支持tensorflow框架。他的目的是让大家能够更快的构建深度学习网络模型。他可以理解为在tensorflow的API上又封装的一层API。该模块具有编程简单,模块化清晰,门槛低等优点,但是该模块支持的语言有限,目前只支持Python语言。下面简单介绍一下如何使用该模块生成对应的卷积神经网络。1. 模块概述: Keras提供了两种模式范式...

2019-05-13 22:02:12 653

原创 卷积计算过程中的减少计算量的优化方式

大卷积转化为小卷积:根据VGG的思想,对于大的卷积核可以转换为多个相同卷积串联的方式来减少。具体如下: 由图可以看出一个5X5的卷积核可以换成两个3X3的卷积,此时参数的个数由25变成了18(2X3X3),同理对于一个7X7的卷积核可以变成3个3X3的卷积,此时参数量由49变成了27。所以此时得到相同的效果使用了更少的参数。假设输入的特征大小是M,N,那...

2019-03-20 21:26:50 7061 2

原创 基于深度学习框架的超分辨率问题三之WDSR

WDSR是18年比较新的模型,现在又对应的官方pytorch版本,其链接为:https://github.com/JiahuiYu/wdsr_ntire2018WDSR(2018年冠军模型)模型架构主要由于目前使用的结构要么是丢失掉了浅层的信息,比如上述提到的网络,通过各种激活函数,当浅层信息传递到最后时已经丢失了;要么就是采用跳跃链接的方式比如SRDenseNet,此时虽然浅层信息通...

2018-12-24 11:49:29 3809 2

原创 基于深度学习框架的超分辨率问题二之EDSR

上篇主要介绍了一些基本的超分辨率的方法,这篇给大家介绍一下EDSR方法。EDSR和MDSR(17年冠军模型)模型架构EDSR的根本出发点还是希望增加网络的深度(卷积层的层数)和宽度(卷积核的通道数)来提高计算的准确度。而其更多的可以看作是对SRResNet的改进,去掉其对应的多余计算(主要是指BN和Relu)。其具体的Residual Block结构如右(图中a表示最原始的结构,c表示...

2018-12-24 11:32:55 5378

原创 基于深度学习框架的超分辨率问题一之基本模型架构

目前在调研基于深度学习的观点对超分辨率问题的解决,对于其中的一些方法进行了一个大概的综述,现将其总结如下:SRCNN模型架构SRCNN是深度学习用在超分辨率上的开山之作。首先将图片通过插值的方式放大到需要变换的尺寸。然后再将放大后的图片放入到一个3层的卷积神经网络中,最终输出一个较为清晰的图片。其对应的3层卷积网络结构如下:上述网络层次比较简单但是效果已经能够远远超过传统的方式...

2018-12-12 22:00:42 1623 1

原创 基于深度学的目标检测方法三之基于回归的方法

基于回归的方式就是彻底的去掉了region思想,也不使用RPN,直接在一个网络中进行回归和分类。其代表的方法主要有YOLO和SSD。由于减少了一个网络同时可以减少一些重复的计算,所以其在速度上有了较大的提升。YOLOYOLO的思想是将一幅图分成SxS个网格,然后让每个网格负责检测物体中心落在这个网格上的物体。                                        ...

2018-11-22 22:19:13 8995

原创 基于深度学的目标检测方法二之基于候选框的方法

 上篇内容介绍了一些基本的只是概念,这篇主要介绍一下运用这些基本概念产生的基于候选框的识别方法。 R-CNN该方法作为深度学习用于物体识别的开山之作,后续很多基于候选框为基础的方法都是在该方法上进行改进得到的。该方法的具体实现为:(1):输入一张图片(2):利用selective  search的方式从图中选出2000个左右的Region proposal 。(3):对...

2018-11-22 22:11:53 5637

原创 基于深度学的目标检测方法一之基本思想概念

 目前在研究基于深度学的目标检测方法,现在就目标检测涉及的一些基本概念总结如下: 一、基于图的图像分割(Graph  Based Image Segmentagion)该方法是基于图论中的最优树的思想,利用贪心算法对图像的区域进行聚类以达到对一副图找出对应候选框的方法。合并的标准是考察两个相连像素的不相似性,然后以同一个区域内最不相似的值为标准 ,以不同区域内最相似的值为依据 ,若:...

2018-11-22 22:06:03 892

原创 深度学习中基于tensorflow_slim进行复杂模型训练三之TFRecords的介绍

一、TFRecords的数据结构TFRecords数据集是一种二进制的数据集,是tensorflow推荐的标准文件格式。Tensorflow通过ProtocolBuffers定义了TFRecords文件中存储的记录及其所含的字段结构,使用该方式可以将数据,标签以及和数据相关的信息通过key,value的形式存储在同一个文件中,并通过key,value的形式对存储的数据进行读取。该数据结构定义在...

2018-10-30 11:55:09 371

原创 深度学习中基于tensorflow_slim进行复杂模型训练二之tensorflow_slim的使用

上篇博客主要介绍了tensorflow_slim的基本模块,本篇主要介绍一下如何使用该模块训练自己的模型。主要分为数据转化,数据读取,数据预处理,模型选择,训练参数设定,构建pb文件,固化pb文件中的参数几部分。一、数据转化:主要目的是将图片转化为TFrecords文件,该部分属于数据的预处理阶段,可以参考datasets中的download_and_conver_flower中的run函...

2018-10-29 19:19:11 831 2

原创 深度学习中基于tensorflow_slim进行复杂模型训练一之tensorflow_slim基本介绍

最近在进行微表情识别,但是目前没有查到比较有效的模型方式,考虑使用inception_v3的模型进行开发,但是该模的构造过程比较复杂,训练更是麻烦,因此考虑基于tensorflow_slim的模块进行二次训练,首先介绍一下关于tensorflow_slim的基本模块。tensorflow_slim的模块主要包括以下几个部分deployment ,nets,dataset, preprocess...

2018-10-28 17:26:48 542

原创 tensorflow之模型压缩

tensorflow的模型在移动端运行时往往需要进行模型压缩。这主要有于两方面的原因:1.模型过大不易加载和下载,运行时内存占用率太高。2. tensorflow的模型在训练的过程中可能为了训练会添加一些操作和节点,而tensorflow的移动端只专注于推理,这样在运行时就会产生一些内核不存在的错误。所以此时需要通过压缩来减少一些和输入及输出不相关的节点。下面介绍一下模型压缩的方式。一、环境需...

2018-09-17 20:19:32 7515

原创 Tensorflow之编译window平台下基于c/c++使用tensorflow

最近在考虑将tensorflow的工程迁移到window平台下进行,由于linux和mac平台在官网上有对应的c/c++接口的安装说明,而window平台则需要自己编译。所以现将编译过程记录如下:一、环境准备1. vs20152. swigwin-3.0.12。下载链接为  http://swig.org/download.html  。下载之后解压缩即可。3. Cmake  , ...

2018-07-31 20:44:15 9040 28

原创 tensorflow之编译使用c/c++动态链接库

tensorflow主流接口虽然是python,但是其也支持C语言的接口供大家调用,并且对于图像处理等方面c++是一种更为合适的语音。因此本文主要介绍一下如何安装并使用c版本的tensorflow。一、 编译。 编译的目的主要是为了产生对应的头文件和动态链接so文件。编译的方式有两种:1. bazel build --config=opt //tensorflow/tools/lib_...

2018-07-24 15:50:12 4445

原创 tensorflow之并行读入数据

最近研究了一下并行读入数据的方式,现在将自己的理解整理如下,理解比较浅,仅供参考。并行读入数据主要分1. 创建文件名列表2. 创建文件名队列3. 创建Reader和Decoder4. 创建样例列表5. 创建批列表(读取时可要可不要,一般情况下样例列表可以执行读取数据操作,但是在实际训练的时候往往需要批列表来分批进行数据的组织,提取)其具体流程如下: 一、 文...

2018-07-22 16:35:48 2988

原创 卷积神经网络之Inception Net

Goole Inception Net 首次出现在ILSVRC 2014 的比赛上,并且取得了当时比赛的第一名,当年的第二名是被VGGNet取得的。并且当时的Inception Net被称为Inception V1。inception  V1是一个22层的结构(卷积层),如果加上池化层大概有27层。在Inception网络中最基本的结构被称为Inception  model。我们可以通过Inc...

2018-07-19 12:08:45 5093

原创 tensorflow之源码编译及相关问题

最近研究模型速度问题,查了一些文献,有的文献说tensorflow本身的性能比其他的深度学习框架要低,但是tensorflow的开发团队加入了许多优化的设置,如果打开这些设置tensorflow的性能能够达到甚至超越现有的深度学习框架。但是现有的安装包为了平台的通用性往往在生成对应的wheel文件时会关掉一些配置,因此需要从源码编译安装包并且在编译的过程中自己打开一些需要的配置。基于上述原因,我采...

2018-07-11 17:52:29 3341 5

原创 tensorflow之GPU加速的理解

最近在整理模型加速的问题,使用到了GPU,但是有时候发现GPU的速度尽然比CPU还低,后来查找一些相关的资料后发现可能是由于两方面原因造成的:1. GPU的计算能力不行(毕竟对于笔记本自带的GPU而言其性能并不一定比CPU强);2. GPU和CPU之间存在通讯问题,即数据的读取要在CPU中进行,读取后的数据再送入GPU中进行处理。针对第2个问题,考虑以队列的方式来解决,具体原因为:当数据在队列...

2018-06-25 23:27:54 5030 6

转载 tensorflow之队列,线程,输入

本博客纯属转载一、队列和线程 1、队列:  1)、tf.FIFOQueue(capacity, dtypes, name='fifo_queue') 创建一个以先进先出的顺序对元素进行排队的队列    参数:      capacity:整数。可能存储在此队列中的元素数量的上限      dtypes:DType对象列表。长度dtypes必须等于每个队列元 素中的张量数,d...

2018-06-12 13:59:02 370

原创 人脸识别之DeepFace、DeepID以及FaceNet网络的区别

前面几篇博客介绍了目前基于深度学习比较常用的神经网络,并且在准确度方面都已经超越了人眼的效果。本篇博客就主要从表面介绍一下他们之间的区别。之所以是表面主要是因为目前只是从理论的层面来比较他们之间的差异。随着后续的使用可能再对差异进行补充。一、模型:DeepFace:在实现时需要使用3D对齐技术,然后将对齐的结果送入一个9层网络进行处理。整个训练过程前两个卷积层采用了共享卷积核,后三个卷积采...

2018-06-05 18:33:23 21636

原创 人脸识别之DeepFace模型

之前了解过了DeepID和FaceNet网路结构,但根据一些博客的说法DeepFace是深度学习用在人脸识别领域的奠基之做,所以也看了一下DeepFace的理论,现在主要将自己的理解梳理一下,如理解有误希望能及时指出。首先还是给出文章的地址,想看文章的朋友可以点击链接下载文章地址。 该文章介绍了整个方法的流程以及实验的结果。DeepFace在进行人脸识别的过程中采用的是检测——对齐——提取——...

2018-06-05 12:06:19 33495 9

原创 人脸识别之DeepID模型

本博文仅提供自己对DeepID的理解,如有错误希望大家能够及时指出。DeepID模型是人脸识别中主流的模型之一,它采用4层卷积网络,三层池化,并且最后一层和倒数第一层的卷积层以及倒数第二层的池化层全连接,具体的文章见文章地址 。关于该文章的具体内容大家可以阅读。以下主要介绍一下自己对文章的理解。1. 人脸识别目前主要面临的挑战是人脸图片较大的内变化和较小的类间变化。也就是说在人脸图片中由于人脸的角...

2018-06-01 18:16:58 6204

原创 人脸识别之facenet代码实现

上一篇博文介绍了facenet的原理,这篇讲解一下代码的实现,对于facenet的代码目前也有写好的部分。具体见链接facenet代码实现 。大家可以通过git直接下载代码,然后运行里面的validata_on_lfw.py。输入对应的lfw数据的路径就可以检测模型对lfw数据的准确度。 validata_on_lfw.py中,主要是通过data/pairs.txt对lfw进行分对读取。并标记...

2018-05-23 21:33:02 34971 4

原创 人脸识别之facenet原理

facenet是谷歌提出的一种新的人脸识别的方法,该方法在LFW数据集上的准确度已经达到了99.6%,目前是该数据集上检测的最好记录。关于facenet的官方介绍看链接论文地址 。 facenet 不同于传统的CNN方法。传统的CNN先通过网络进行处理,然后将处理后的结构利用SVM方法进行分类。该方法是直接通过学习将特征变为欧式平面上的一个点,然后通过比较点之间的距离来进行判断。在模型的训...

2018-05-23 18:25:40 10271

原创 人脸检测之MTCNN中的NMS方法

前两篇博客主要介绍MTCNN的原理和实现的方法,这篇博客介绍一下在实现过程中的一个主要的思想NMS。NMS又称为非极大值抑制方法。是用来处理重叠边框的。在检测的过程中往往会根据不能的维度特征产生不同的窗口,并且每个窗口都会进行是否是人脸的判断,这样就会导致一张人脸上会存在窗口的重叠。而NMS的方法就是要在重叠的框中选出最优的框来标记人脸。减少框的数量。具体如下;其实现原理如下: 1...

2018-05-23 16:11:38 3065

原创 人脸检测之MTCNN代码实现

上一篇博客介绍了MTCNN网络的原理,这篇博客介绍一个代码的实现。对应的MTCNN网络目前也有写好的代码,大家可以在代码链接 上下载代码,然后进行识别。对于下载后的代码主要有以下的说明。1. 该代码中的包含了已经训练好的模型,模型的数据存储在.npy文件中。2. 代码工程中主要关注detect_face.py和facedetect_mtcnn.py即可,其中detect_face.py...

2018-05-23 15:28:09 6937 2

原创 人脸检测之MTCNN网络

最近开始进行人脸检测,所以根据自己的理解和别人的博客总结一下自己对人脸检测的认识,如果错误希望能够指出。 本博客首先介绍了一下MTCNN论文中相关的知识,然后总结了一下使用联级网络的好处,其具体内容如下。 人脸检测的模型其实也有很多,简单点可以基于MNIST的网络模型进行对自己的检测,采用同样的网络模型,不同的数据进行训练会产生不同的作用,但这种情况往往无法进行泛化...

2018-05-23 11:43:10 5882

转载 人脸识别概要

 一.什么是人脸识别技术人脸识别技术,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。传统的人脸识别技术主要是基于可见光图像的人脸识别,这也是人们熟悉的识别方式。简单的来说就是一个让计算机认出你的过程。人脸识别技术主要是通过人脸图...

2018-04-27 15:20:21 12932 1

原创 tensorflow之模型集参数的保存

最近在研究移动端的时候涉及到了模型的冰冻,即将训练得到的模型生成对应的pb文件。因此研究了一下tensorflow中的几种保存模型的方式,具体如下:一、save保存。   save保存一定要在session中进行,并且save保存时会保存所有的参数信息,而这些信息是我们不一定需要的。并且save保存一般保存的是所有的网络和参数。    save的存储 tf.global_va...

2018-04-25 16:08:01 2213

原创 Tensorflow移动端之如何将自己训练的MNIST模型加载到Android手机上

本篇文章主要依托于官方demo,在官网demo上进行修改来体现如何在一个常规的app上加入深度学习的模型。因为对于在app中加入对应的模型也只是将app搜集的数据导入模型并进行处理,处理完之后将结果返回给app并进行后面的操作。其中只有处理的过程会涉及tensorflow,而本文主要介绍tensorflow处理的过程。所以需要依附于具体的app。一、环境准备      要想在安卓手机上运行...

2018-04-25 13:13:42 1497

原创 Tensorflow的android demo编译

最近在研究tensorflow模型的移动端。在编译安卓的代码的时候遇到了许多坑点,现总结如下:移动端编译有两种方式:第一,通过AAR从Jcenter中编译,此时只需要在build.gradle中将nativeBuildSystem改为none即可。然后将tensorflow/tensorflow/example/android导入android studio中运行即可。此时根据配置文件会自动下...

2018-04-24 21:50:13 678

转载 tensorflow识别音频文件

该文章纯属转载 概述 随着深度学习的广泛应用和Tensoflow的开源,移动端的模型应用层出不穷。本文介绍了笔者在搭建过程中的一些心得,希望可以帮助到你们。 Mac端Tensorflow CPU版本的安装 如果你现在用的没有太好的GPU,可以安装CPU only的Tensorflow。Linux、Mac系统可以安装Tensorflow的python2和python3版本,Windows系统...

2018-04-24 21:02:42 2150

原创 Tensorflow之调用object_detection中的API识别视频

上一篇博文主要介绍了如何使用object_detection进行图片的识别。本文将在上一篇的基础上介绍一下如何进行视频的识别。视频识别主要是将视频分为一帧一帧的图片,然后对图片进行识别。本文主要分为对摄像头拍摄的内容直接识别和对一段视频文件的识别。1.  采用VideoCapture对视频进行处理的方法:    首先需要依赖于opencv里面包含的视频处理方式。所以需要在python中...

2018-04-10 21:23:00 5278 8

原创 使用tensorflow中的object_detection

tensorflow中存在许多内置的模型,可以用来进行图片的识别。下面将介绍一下使用object_detection进行物体识别需要的环境。配置环境:1. 通过proto将对应的.proto文件变成.py文件。2.  首先将tensorflow_slim模块加入到环境变量中,然后打开cmd窗口,输入python, 然后输入import slim 若是不报错则证明可以环境已经导入3....

2018-04-08 11:30:53 4009 1

原创 tensorflow及tensorboard中MNIST数据解释及实现

一、MNIST数据:MNIST数据是tensorflow内置的一组手写数字的图片样例数据,其数据的格式是gz压缩格式。图片如下:对于上述图片,tensorflow中存在对应的input_data将图片转为对应的字节流的形式读入,并提供了各种API将数据转换为对应的张量参与运算。具体数据的读取以及API接口的使用不做多的介绍。有兴趣的可以看一下对应的源码(mnist.py)。MNIS...

2018-04-02 15:41:14 1208

关于一些常用的低照度增强算法

主要描述了一些常用的图片增强方法和对应方法所产生的效果

2018-12-03

物体检测概述

主要总结了目前比较流行的目标检测方法,并整理了一下相关的概念

2018-11-22

微表情识别

就深度学习的方式对人类的微表情数据进行识别,主要是基于inception_v3模型为框架

2018-11-16

空空如也

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

TA关注的人

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