自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rolin的专栏

路在自己脚下

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

原创 Visual Studio 2017编译Lua 5.4静态库

Lua 编译官网下载最新Lua版本, Lua 5.4.3.2.Visual Studio 2017 新建工程

2021-07-28 11:13:50 1094

原创 语义分割经典神经网络框架汇总

语义分割经典神经网络框架汇总FCN Jonathan Long, Evan Shelhamer, Trevor Darrell. 2014. Fully Convolutional Networks for Semantic Segmentation DeepLabv1 Liang-Chieh Chen, George Papandreou, Iasonas ...

2018-02-26 19:53:37 3309

原创 DeepLab V2安装配置

2016年Semantic Segmentation方向比较出色的一篇文章,DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs https://arxiv.org/abs/1606.00915作者提供了开源的代码,shell版本

2017-05-05 22:44:38 13552 5

原创 Caffe可视化MNIST错误识别样本

当基于LeNet网络的MNIST手写库训练完毕后,测试样本精度能达到99%以上。但是那错误的不到百分之一的样本是什么样子的呢?我们怎么才能把这些识别错误的样本可视化出来呢?1.将测试错误样本打印出来当运行测试时,最后的输出层为AccuracyLayer层。AccuracyLayer对前一层全连接层ip2的10个神经元输出结果进行排序,然后将最大值所对应的神经元序号与标签label进行比较,相等则判定

2016-12-09 17:19:31 3531 8

原创 Ubuntu16.04安装NVIDIA显卡驱动

1.下载官方驱动程序http://www.geforce.cn/drivers如果我们直接安装驱动的话,往往会报错:ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver。请接着往下看吧。2. 禁

2016-10-16 14:54:06 101837 9

原创 使用Pycaffe绘制Caffe网络图

执行buildpython setup.py build执行testpython setup.py test输出:----------------------------------------------------------------------Ran 590 tests in 1.079sOK (skipped=7)继续执行installpython setup.py install输出

2016-10-02 11:51:33 2858

原创 Caffe框架源码剖析(9)—损失层SoftmaxWithLossLayer

类SoftmaxWithLossLayer包含类SoftmaxLayer的实例。其中SoftmaxLayer层在正向传导函数中将100*10的bottom_data,通过计算得到100*10的top_data。这可以理解为输入数据为100个样本,每个样本特征数量为10,计算这100个样本分别在10个类别上的概率。公式如下:

2016-09-20 13:22:30 18944

原创 Caffe框架源码剖析(8)—激活函数层ReLULayer

LeNet中使用修正线性单元(Rectified Linear Unit,ReLU)代替Sigmoid作为激活函数,目的是为了加速收敛。激活函数层ReLULayer原理很简单,就是实现了对输入数据的非负处理,将小于零的数据进行了截断。

2016-09-20 09:45:52 5450

原创 Caffe框架源码剖析(7)—全连接层InnerProductLayer

全连接层InnerProductLayer的原理很简单,说白了就是矩阵乘法运算。正向传导时输出数据等于输入数据乘上权重,如果有偏置项就再加上偏置项。写成公式就是:top_data = bottom_data * weight + bias.矩阵乘法在CPU端采用OpenBLAS实现,在GPU端则采用NVIDIA cuBLAS实现加速。

2016-09-19 16:30:48 6982 3

原创 Caffe框架源码剖析(6)—池化层PoolingLayer

池化层往往在卷积层后面,通过降采样来降低卷积层输出的特征向量,同时改善结果,不易出现过拟合。最常用的降采样方法有均值采样(取区域平均值作为降采样值)、最大值采样(取区域最大值作为降采样值)和随机采样(取区域内随机一个像素)等。PoolingLayer类从Layer基类单一继承而来,没有再多的子类。具体定义在pooling_layer.hpp中,template class

2016-09-19 13:40:54 6947

原创 Caffe框架源码剖析(5)—卷积层ConvolutionLayer

ConvolutionLayer是BaseConvolutionLayer的子类,功能较为简单。类中不包含成员变量,仅包含几个虚函数的实现。conv_layer.hpp头文件的定义如下:

2016-09-18 09:20:11 3590

原创 Caffe框架源码剖析(4)—卷积层基类BaseConvolutionLayer

数据层DataLayer正向传导的目标层是卷积层ConvolutionLayer。卷积层的是用一系列的权重滤波核与输入图像进行卷积,具体实现是通过将图像展开成向量,作用矩阵乘法实现卷积。

2016-09-16 15:47:11 1660

原创 Caffe框架源码剖析(3)—数据层DataLayer

Caffe网络正向传导时,首先进行的是DataLayer数据层的传导。该层从文件读取数据,加载至它的上一层卷积层。反向传导时,因为数据层不需要反传,所以它的Backward_cpu()和Backward_gpu()都是空函数。下面看一下DataLayer类图关系。

2016-09-13 08:27:17 4165

原创 Caffe支持多GPU分布式计算

Caffe允许多GPU间并行,与AlexNet不同,多GPU模式的内涵在于“不共享数据,却共享网络”。所以,允许多个solver存在,且应用到不同的GPU上去。第一个solver会成为root_solver,第二、第三个solver就会成为shared_solver。直接使用solver_count的地方是DataLayer层中的DataReader对象。每一个DataLayer都有一

2016-09-12 17:00:21 7900

原创 Caffe框架源码剖析(2)—训练网络

中间因为工程开发等杂七杂八原因暂停了Caffe源码分析,现在继续补上。上篇分析在函数 train() 中建立了网络,接下来就是进入训练网络步骤了。

2016-09-09 22:50:42 2831

原创 Caffe框架源码剖析(1)—构建网络

今天花了一整天时间进行阅读和调试Caffe框架代码,单单是以Lenet网络进行测试就可见框架的大致工作原理。贾扬清在Caffe中大量使用了STL、模板、智能指针,有些地方为了效率也牺牲了一些代码可读性,处处彰显了大牛风范。为了他人阅读方便,现将代码流程简单梳理一下。

2016-05-18 21:02:44 4513 2

原创 Windows平台基于Caffe框架的LeNet网络训练

在Windows平台下使用Caffe的确不如Linux来的方便,至少人家把Shell都已经写好了。但是像我这种VS重度依赖者,还是离不开微软大腿呀…废话不多说,一步步来吧。0. 为了后续文件路径访问的便利,我们先将$CAFFE_ROOT根目录添加到操作系统环境变量PATH中,并重启使之生效。1.首先需要从Yann LeCun的网站上下载手写数字图像库,共为四个压缩包约11MB大小,分别是train-images-idx3-ubyte.gz(训练集图像),train-labels-idx1-ubyte.g

2016-05-17 11:59:30 4138 10

原创 VS2013下安装&编译Windows Caffe

想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了…1. 从Microsoft官方Github上下载Caffe,源代码压缩包不到9MB大小,并将其解压缩到本地目录2.安装NVIDIA CUDA,目前最新版本是7.5,离线安装包约962MB(8.0版也即将要发布了)。3.安装NVIDIA cuDNN(CUDA Deep Neural Library

2016-05-15 22:10:31 10425 11

原创 VS2015找不到stdio.h或new.h的Bug修复

今天尝试安装了VS2015,发现微软还是没有处理好一台计算机安装多个VS版本时环境配置问题。无论是建立Console控制台程序还是MFC程序,都提示缺少"stdio.h"或"new.h"头文件。VS工程默认的包含路径C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include下的确没有这些头文件,那么应该怎么办呢

2016-04-06 17:21:48 23822 3

原创 MFC解析启动命令行参数——CCommandLineInfo类

MFC中CCommandLineInfo类被用于分析启动应用时的命令行参数。MFC应用一般都会在它的应用对象中使用函数InitInstance创建这个类的一个本地实例。然后把该对象传给CWinApp::ParseCommandLine,ParseCommandLine又重复调用ParseParam填充CCommandLineInfo对象。最后,CCommandLineInfo对象被传给CWin

2015-05-29 23:05:56 12157

原创 未加载mfc120ud.i386.pdb:VS2013调试MFC程序解决方法

刚使用VS2013时,想转入MFC库函数发现无法调试MFC代码。VS2013提示如下:网上查了一下才得知,VS2013不像以前的VS版本一样自带MFC的pdb文件。但是微软提供了Microsoft Symbol Server自动下载pdb文件,只是默认情况下没有打开。打开方式为:“设置”->“调试”->“符号”,选中“Microsoft 符号服务器”即可。这样在调试时,VS2013

2015-05-11 16:44:25 20358 5

原创 总变分(Total Variation)最小化方法

总变分(Total Variation)最小化方法Rudin等人(Rudin1990)观察到,受噪声污染的图像的总变分比无噪图像的总变分明显的大。总变分定义为梯度幅值的积分: JT(u)=∫Ωu|▽u|dxdy=∫Duu2x+u2y−−−−−−√dxdyJ_T(u)=\int\limits_{\Omega_{u}}|\triangledown_u|dxdy=\int\limits_{D_u}\sq

2015-03-06 16:25:33 26541 1

转载 图像锐化的空域滤波器

图像锐化的空域滤波器       1.拉普拉斯滤波      使用平均滤波器,可以将图像平滑,其本质是将图像在滤波器范围内求平均值。从频域上来看,平均滤波器是低通滤波器。然而,所谓的锐化,即是将图像的细节强调出来。这里进行了一个假设,假设细节部分是图像高频成分。从这里看来,其实锐化滤波器是与平均滤波器是相反的操作。      对于一个一次元函数,其一

2015-03-05 17:05:13 8299 1

转载 理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器

低通滤波器        1.理想的低通滤波器       其中,D0表示通带的半径。D(u,v)的计算方式也就是两点间的距离,很简单就能得到。       使用低通滤波器所得到的结果如下所示。低通滤波器滤除了高频成分,所以使得图像模糊。由于理想低通滤波器的过度特性过于急峻,所以会产生了振铃现象。

2015-03-05 16:21:26 43247

转载 Detected memory leaks! vc内存泄漏定位

Detected memory leaks!Dumping objects ->{98500} normal block at 0x05785AD0, 152 bytes long.Data: 3C AC 4E 10 00 00 00 00 BC A4 4E 10 78 B6 37 00Object dump complete.解决方法:在程序开始启动的地方(足够前的地方

2014-08-22 17:47:47 1280

原创 VS2012找不到SDKDDKVer.h的Bug修复

Visual Studio 2012找不到SDKDDKVer.h的Bug修复方法,通过手工修改props配置文件完美解决。

2014-06-07 17:46:44 42112 19

原创 去掉“正在更新IntelliSense”

使用VS2008或者2005时候,当切换配置,总是显示“正在更新IntelliSense...”。例如从Debug切换到Release,这时候VS开始更新IntelliSense,CPU占用上升到100%。 解决方法就是将/Microsoft Visual Studio 9.0/VC/vcpackages/feacp.dll改名,或者直接删除。反正用Visual Assist完全可以取代V

2008-12-31 17:55:00 8600

原创 VS2008调试中遇到源文件与模块生成时的文件不同的问题

 如图所示,在用 Microsoft Visual C++ 2008 调试程序时,设置的断点无效,按F11转进则弹出对话框。网上搜索了一下,解决方法如下:VS2008 -> 工具 -> 选项 -> 调试 -> 常规去掉“要求源文件和版本匹配”和“启用地址级的调试”前面的勾勾就可以了。

2008-12-16 11:03:00 2646 1

转载 Visual C++ 2008发行到未装vc9上运行提示"应用程序配置不正确" 的解决方案

环境:Visual C++ 2008 英文版 加上Visual C++ 2008 Feature Pack 使用向导创建的VisualStudio2005的界面 Debug和Release在本地都可以运行 但是只要复制到别的电脑上就提示"由于应用程序配置不正确,应用程序未能启动...." 编译条件: Use MFC in a Shared DLL(共享库) Multi-thre

2008-12-04 12:00:00 2238

原创 MagicEyes版本号推进到2.3

    2.3版本中主要的改动是加入了动态菜单,该动态菜单由外部的DLL加载进来。这样在后续的开发中,硬件通信模块和软件主体分开进行,不会再像1.x版本开发中那么麻烦,也不会因硬件不同衍生出N多个版本。想想还要维护1.x的各个版本就头疼……    界面如图所示例,还需要加油!   

2008-12-01 22:06:00 618

转载 输出Win32程序中的错误

 ...{       // 获得信息        LPVOID lpMsgBuf;    //Windows will allocate         ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),                       

2008-02-26 09:59:00 560

原创 编译DLL时遇到的警告

dllD.exp : warning LNK4070: /OUT:dll.dll directive in .EXP differs from output filename "Debug/dllD.dll"; ignoring directive        我在DLL项目中遇到了,因为要对Debug版和Release版分别指定不同的输出文件名。对Debug版,我指定输出文件为dllD.d

2007-03-21 21:21:00 897

原创 为Windows XP系统下的MFC控件提供xp风格

在Windows xp + VS6.0(VS2003)环境下开发的MFC程序,为了可以拥有xp的风格,把下面的代码保存到你的运行目录下,文件名为YourApplication.exe.manifest.     version="1.0.0.0"     processorArchitecture="X86"     name="Microsoft.Windows.dummy"    type

2006-10-23 01:04:00 1487

转载 MFC程序中检查内存泄漏的手段

  CMemoryStateCMemoryState does not have a base class.CMemoryState provides a convenient way to detect memory leaks in your program. A “memory leak” occurs when memory for an object is allocated

2006-08-21 16:52:00 1255

原创 保持对话框在最前端显示

pDlg->SetWindowPos(&wndTopMost , 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

2006-08-11 15:10:00 1664

转载 医学影像“调窗”(window-leveling)的算法

图像显示和打印面临的一个问题是:图像的亮度和对比度能否充分突出关键部分。这里所指的“关键部分”在 CT 里的例子有软组织、骨头、脑组织、肺、腹部等等。技术问题:     显示器往往只有 8-bit, 而数据有 12- 至 16-bits。    如果将数据的 min 和 max 间 (dynamic range) 的之间转换到 8-bit 0-255 去,过程是个有损转换, 而且出来的图像往往

2006-06-25 16:08:00 2967

转载 关于OpenCV的介绍(摘自OpenCV官方wiki主页)

Intel® 开源计算机视觉库OpenCV什么是OpenCVOpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。 重要特性OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖与其它的外部库,尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应

2006-06-19 19:15:00 3414 1

原创 Visual C++6.0中配置OpenCV

安装完OpenCV_b5a后,打开Visual C++ 6.0,在Tools -> Directories选项中,Show Directories for中选择Include files,在其中添加C:/Program Files/OpenCV/cv/includeC:/Program Files/OpenCV/cvaux/includeC:/Program Files/OpenCV/cxco

2006-06-19 19:12:00 3482 1

原创 利用编译器得知动态分配数组的大小

每次在CSDN论坛C++板块闲逛,都会有很多收获,时常遇到一些精彩的回复。    原帖地址http://community.csdn.net/Expert/topic/4822/4822941.xml?temp=.5199396中,摘录triace_zhang的回复如下:    主要看编译器采用的策略。如果是vc6.0的话在动态分配的内存段前面16个字节会用一个cookie记录该内存段的大

2006-06-15 17:10:00 1405

转载 在单独线程中执行对象成员函数

问题的提出:    实际上所有线程都是用来处理C函数的,而不是C++类成员函数。标准库中提供一个API函数,这个函数以回调函数指针作为线程的执行代码并在单独的线程中调用回调函数。问题是在这样的线程库中不能创建执行对象成员函数的线程;只能使用普通的函数。因此,下列代码是失败的: // 启动线程库函数的线程 int thr_create (void (*pf)(), void* prm, thread

2006-06-12 11:48:00 978

关于卷积神经网络中类不平衡问题的综述

2017年的一篇综述论文,系统阐述了在卷积神经网络中的类别不平衡问题,以及对比了几种常用的解决方法,并在MNIST、CIFAR-10和ImageNet数据集上进行结果对比。

2019-01-08

空空如也

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

TA关注的人

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