自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GH_HOME的专栏

爱自己,要自信,加油GH_HOME!

  • 博客(55)
  • 资源 (11)
  • 收藏
  • 关注

原创 关于卷积神经网络的几种结构

卷积的过程就是提取对应特征的过程,获得高维的特征向量。 反卷积的过程事实上是一个稀疏编码的过程,要把卷积拿到的特征向量通过加权恢复到原有的输入图片关于dilate convolution 可见这篇博文https://zhuanlan.zhihu.com/p/23795111 我认为既然dilate convolution可以通过改变kernel的大小来改变可以看到的视野,那么多个不同的dilat

2017-09-04 21:03:00 1783

原创 ResNet 论文解读

ResNet优点相比传统的卷积神经网络如VGG复杂度降低,需要的参数下降可以做到更深,不会出现梯度弥散的问题优化简单,分类准确度加深由于使用更深的网络解决深层次网络的退化问题解决梯度弥散常见方法:batch normalization学习原理对于传统的方法是直接去学习输入到输出的映射,而深度卷积残差网络是去学习输入到(输出-输入)的映射。这样就有了一个先验信息:输出一定是可以由输入的一部分

2017-09-03 20:07:15 3703

原创 Caffe 入门

Caffe的模型需要两个重要的参数文件,网络模型和参数配置。分别是.prototxt 以及 .solver.prototex绘制网络模型的时候,可以使用CAFFE中的python/draw_net.py网络模型的输入为数据层,数据层是每个模型的最底层,是模型的入口,不仅提供数据的输入,也提供数据从Blobs转换成别的格式进行保存输出。通常数据的预处理(如减去均值, 放大缩小, 裁剪和镜像等),也

2017-08-30 20:06:15 713

原创 神经网络学习笔记

隐含层数越多,越容易拟合复杂函数 为了拟合复杂函数需要的隐含节点数目,基本上随着隐含层数目的增加呈现指数下降的趋势,也就是说层数越多,神经网络所需要的隐含节点可以越少。层数越深,概念越抽象,需要背诵的知识点(神经网络的隐含节点)就越少。 但是,层数越多,容易出现过拟合以及参数难以调试以及梯度弥散的问题。过拟合:预测模型在训练模型上升高在测试集上下降。泛化能力不行。防止过拟合的方法:dropout

2017-08-15 19:44:27 1215

原创 structure from motion

1. 概念Structure from motion 指的是由图像生成3维点云以及相机姿态,即: - 输入:一系列图像,拍摄同一场景 - 输出: 每一张图像对应的相机位置和朝向, 场景中的3D点云2. 算法流程获取相机内参矩阵 对输入图像利用其内部的编码信息获取相机的焦距,计算内参矩阵对相邻图像两两计算匹配特征点 对于3D重建而言, 一般是首先用两张图像作为初始化建出来一个初始的点云,之

2017-06-29 19:53:49 4286

原创 三维重建——Structure from motion

1. 概念Structure from motion 指的是由图像生成3维点云以及相机姿态,即: - 输入:一系列图像,拍摄同一场景 - 输出: 每一张图像对应的相机位置和朝向, 场景中的3D点云2. 算法流程获取相机内参矩阵 对输入图像利用其内部的编码信息获取相机的焦距,计算内参矩阵对相邻图像两两计算匹配特征点 对于3D重建而言, 一般是首先用两张图像作为初始化建出来一个初始的点云,之

2017-06-29 10:17:01 9668

原创 CS231N-1

深度学习的两个基石: 1. 视觉处理流程的第一步是对简单图形结构的处理,包括边缘、排列等。每一列神经元对于固定的形状表示敏感 2. 视觉是分层的: 第一层是边缘结构-2.5D-3D

2017-04-25 11:46:24 695

原创 刷新android中的媒体库

1. 问题概述使用我们自己写的程序生成一张图像或者一段视频,存放在SD卡的某个位置下,之后打开系统自带媒体库(图库)无法找到对于的图像和视频。连上电脑打开相应文件夹也找不到相应的文件?但是当手机重启之后,不管是在媒体库里找还是连上电脑搜索都可以找到。这其中发生了啥?2. 问题原因Android 内部维护了很多数据库,比如媒体数据库、联系人数据库等等。你在生成视频后并没有将视频的位置添加到这个数据库中

2016-12-12 18:10:54 3587 1

原创 关于OpenGL中FrameBuffer Object的使用

副标题1:如何在GPU中存放一些texture以后用副标题2:如何把camera传过来的对应GLES11Ext.GL_TEXTURE_EXTERNAL_OES目标的texture转换为GLES30.GL_TEXTURE_2D类型的texture来使用Part1:FBO的介绍和学习OpenGL frambuffer object简称FBO,我们在OpenGL最终的渲染地点在framebuffer中,相

2016-10-14 18:32:50 7279 1

原创 NDK编译选项的几个解释

NDK程序运行速度的决定因素主要由编译选项所决定,分布在android.mk与application.mk两个makefile中Application.mk 变量 含义 APP_PROJECT_PATH 项目路径 APP_MODDLE 模块编译列表 APP_OPTIMAL 设置程序为release或者debug版 APP_CFLAGS C/C++编译选项 A

2016-09-19 14:34:42 967

原创 cmake自学

cmake 命令与visual studio的对应 cmake visual studio PROJECT(name) 解决方案名称 name ADD_EXECUTABLE(name ${SRC_LIST}) 工程名称 生成exe名称 name设置cmake的编译器首先使用 cmake -help获取cmake支持的编译器 运行 cmake -G “Visual Stud

2016-09-17 16:32:56 1150

转载 android 中的引用

转自:http://www.jiangwenrou.com/java%E7%9A%84%E5%9B%9B%E7%A7%8D%E5%BC%95%E7%94%A8.htmlJava中存在四种引用,它们分别是:强引用(StrongReference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference).下面分别介绍: 强引用(Stron

2016-09-07 15:58:14 821

原创 opencv中Mat与数组之间值传递的快速方法

1.将数组内容传递给Mat示例代码:unsigned char cbuf[height][width];cv::Mat img(height, width, CV_8UC1, (unsigned char*)cbuf);2.将Mat中的内容传递给数组如果Mat中的数据是连续的,那么对于传递到一维vector我们可以这样:std::vector<uchar> array(mat.rows*mat.c

2016-08-03 11:15:05 25143 2

原创 git笔记

git add AndroidManifest.xml 这是添加单个文件的方法 git add src 添加某个目录,加目录名 git add . 表示添加所有的文件在.gitignore文件中添加 bin/ gen/ 表示忽略这两个文件夹下的文件 加入 *.png 表示忽略后缀名为png的文件git status 查看自上次提交后文件修改的内容。(eg. Git 提醒我们 Main

2016-07-19 09:07:21 381 1

原创 关于执行ndk-build后的代码

参考以下两篇文章 http://corochann.com/build-executable-file-with-android-ndk-after-lollipop-android-api-21-388.htmlhttp://blog.csdn.net/u010940300/article/details/45289151

2016-07-18 13:54:23 593

原创 关于最小二乘法

最小二乘法,用于优化得到一组解,这组解距离实际解得值得差的总和最小,以这个差的总和作为优化能量的优化问题对于线性的最小二乘法而言,通常遇到的情况是求解方程over-determined,就是方程个数大于未知量个数,这种最小二乘优化问题,往往是可以凸优化的,可以找到闭式解(方程的解可以用公式具体表达出来)而非线性最小二乘往往需要通过迭代的方式来求解。并不是凸优化,可能存在几个局部最优

2016-07-14 13:44:58 846

转载 Jacobian矩阵和Hessian矩阵

转载出处: http://jacoxu.com/?p=1461. Jacobian在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲线可以嵌入其中. 它们全部都以数学家卡尔·雅可比(Carl Jacob, 1804年10月4日-1851年2月18日)命名

2016-07-14 10:48:06 1584

原创 关于C语言中的static关键字

用static声明一个变量的作用有两方面:对局部变量用static声明,则使得该变量在整个程序执行期间不释放,为其分配的空间始终存在全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)一般我们我们在设计程序中希望有些外部变量只限于本文件适用,而不能被其他文件引用,这时可以在定义外部变量的时候加一个static声明。 在程序设计中,常有不同人完成各个模块,个人可以独

2016-06-10 13:54:24 444

原创 关于C语言中的extern关键字

一. 概述extern是在外部定义的全局变量,其作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序文件中的各个函数多引用。编译时,外部变量分配在静态存储区内。在extern声明外部变量的时候,类型名可以可不写, extern int A,B 等价于 extern A,B二.利用extern在单个文件中扩展全局变量的作用域如果外部(全局)变量不在文件的开头处定义,其有效作

2016-06-09 16:04:05 1001

原创 自学git(一)

安装git 下载链接为 https://git-scm.com/download配置git 打开Git Bash git config 专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。通过git config 命令,以下文件内容会发生变化/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git conf

2016-06-01 21:03:49 480

原创 关于PDB与DLL

编写源码的时候,会调用一些库,库的呈现形式为pdb和dll以及lib 以opencv为例,其中我们调用的库的接口写在include文件夹中的.hpp中 程序运行的时候会调用dll,那么dll对应程序源码的哪一行是通过pdb来告知我们的。所以pdb存放了我们在编译这个dll的时候这个dll对应的源代码文件的位置信息(在哪个文件夹下的那个cpp下的哪一行)。所以pdb在编译生成后要对应源码文件的位置

2016-05-30 22:02:52 5960

原创 光流法

另外一种推导方式是基于最优化求导和泰勒展开来实现的由于标准LK算法的前提是泰勒展开足够近似,也就是说pixel displacement is small 光流较小。所以为了足够精确,采用了迭代的方法。事实上没迭代一次,就更新一下图的位置,让两张track的图的位置接近一次,然后再根据此时的图的位置加上标准光流方法重新计算光流,更新光流。根据光流方程的残差是否小于设定精度以及迭代次数小于设定阈值来

2016-05-29 22:58:53 1272

原创 你指间的电光,是我一生的信仰

某科学超电磁炮中的御坂美琴 自信,拧巴,善良。 外表刚强中内心却不乏女性的柔弱和无助,不乏小女生的心思 无论是看到青蛙硅太的移不动脚,还是对于上条当麻的感激和喜欢,都深深的印刻在我的脑海中。 你指间的电光,是我一生的信仰

2016-05-28 16:22:55 963

原创 关于C++的类的几点注意点

析构函数绝对不会有返回值,也没有任何参数,绝对不可能重载析构函数用于释放在构造函数或对象生命周期内分配的资源,在对象结束生命后会自动调用析构函数来善后。感觉一般都是我们在构造对象的时候,在对象内部要手动申请一块内存,然后我们在析构函数中需要将其释放掉即使是自己定义的类,C++也提供默认的成员逐一初始化。比如下面的代码 MyClass zhangsan; MyClass lisi=

2016-05-28 16:13:32 487

原创 ORB特征检测算法小结

1. 定义ORB (Oriented FAST and Rotated BRIEF),是一种特征检测算子,其特征点的性能介于SIFT和SURF之间,但是其速度是SURF算法速度的10倍。2. 特性速度快:基本上在特征检测算子方面借鉴了FAST特征检测算子,在特征描绘子方面借鉴了brief特征描绘算子,这两个方法都比较快。具备旋转不变性,对噪声不敏感。3. 算法流程1. 特征检测部分在特征检测部

2016-05-28 00:12:26 10593 1

原创 光流法小结

1. 定义空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。也就是说,由空间域到图像平面的投影。而通俗来讲,把图像中的每一个点的瞬时速度和方向找出来就是光流。2. 光流有什么用通过光流判断物体距离我们的远近。 一般而言,远景的物体相对来说光流较小,而近景物体

2016-05-26 22:29:54 12599 9

原创 FAST算法小结

本文解决以下问题FAST算法的基本原理FAST 算法在OpenCV中的调用一. FAST算法的基本原理1. FAST算法的动机大部分特征检测算法的效果较好,但是达不到实时,因此提出FAST (Features from Accelerated Segment Test)2. FAST算法的基本原理在图像中任选一点p, 假定其像素(亮度)值为 IpI_p以3为半径画圆,覆盖p点周围的16

2016-05-25 20:54:33 7752

原创 Android下OpenCV学习之-opencv读图

几个小tips使用opencv中的imwrite的时候注意: 直接使用imwrite("test.png",image);编译时可以过的,但是找不到保存的这张test.png,必须写为imwrite("/scard/test.png",image);,之后test.png会保存在系统根目录下。我建议我们先建一个我们自己的文件夹,之后把我们所有处理的图片放在这里,这样条理清楚些

2016-05-25 13:08:11 839

原创 编译带有OpenCL的OpenCVForAndroid

本文参考链接http://www.cnblogs.com/hrlnw/p/4720977.html1. 本机配置windows7 64为 cmake 版本 3.1.0 opencv版本 3.1.02. 基本步骤1) 下载opencv3.1.0 官方源码 https://github.com/Itseez/opencv/archive/3.1.0.zip 2) 下载cmake 3) 修改ope

2016-05-21 13:12:49 3624 2

翻译 Android NDK总结

一. introductionandroid NDK的介绍及应用对象 android NDK全称为Native Development Kit, 主要为了方便android开发程序员编写高速高性能的native 程序,也为处理一些底层的库和接口(如,调用OpenGL, OpenCL等等)二. ndk-build 基础我们在android中编写ndk程序的常用结构是这样的 +– project_r

2016-05-16 19:36:23 862

原创 自动检测溢出的unsigned int加法

int uadd_ok(unsigned int a, unsigned int b){ int result =a+b; if(result>a) { printf("the add is ok\n"); } else { printf("the add is

2016-05-15 17:04:48 1551

原创 深入理解计算机系统-2(信息存储)

2.1. C语言中的移位运算这里有两种移位操作:算术移位和逻辑移位,其主要差别在于有符号数的负数上。 对于x=00110011而言 y=x>>3 * 逻辑移位 y=00000110 * 算术移位 y=00000110对于x=10110011而言 y=x>>3 - 逻辑移位 y=00010110 - 算术移位 y=11110110也就是说:算术右移是在最左端补k个最高有效位的值,而逻

2016-05-15 16:21:39 580

转载 java 学习之 关于@Override

@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1 可以当注释用,方便阅读 2 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错 比如你如果没写@Override而你下面的方法

2016-05-12 15:48:27 410

原创 java 中static final用法

final用法1、final用在类上,表明当前类它不能被继承,没有子类。 2、final用在方法上,表明当前方法不能被override,不能被重写。 3、final用在变量上,表明当前变量是一个终态的变量,是一个常量,这个变量的值一但被赋值后就不能被改变了。 (一般final用作全局变量的时候和static连用 即final static) 对于fin

2016-05-11 20:58:10 507

转载 编译执行和解释执行的区别

A、解释程序 所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后

2016-05-06 18:34:20 883

原创 Android 学习(1)——AndroidStudio安装以及Helloworld

AndroidStudio安装下载AndroidStudio http://www.android-studio.org/index.php/component/content/category/88-download安装就是一路next 但是我建议在选择sdk安装路径的时候不要选到C盘user那个路径,后面就会发现所有下载的sdk以及google的usb driver都在这个文件夹下,C盘

2016-05-04 17:55:49 2934

原创 CS 50 第11节

main 函数中局部变量在高地址 由main调用的子函数的局部变量在低地址heap 低地址 | | | stack 高地址stack中保存着局部变量 函数的返回地址 传入函数的形参当一个程序结束之后,自主申请的堆上的内存会自动归还给系统关于C上的文件操作;int num= 20;FILE *fp = fopen("test.txt","w");if(

2016-05-03 21:30:05 516

原创 VIM学习 (3)

这一节主要介绍VIM 在文本编辑上的一些指令1. VIM中文字编写的思路:a. 首先直接写内心中想要书写的内容,不必拘泥于格式,想到什么就写什么 b. 变换到命令模式,修改格式2. VIM文字复制粘贴命令集锦复制的命令是y,即yank(提起) ,常用的命令如下:y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用;yy 复制整行(nyy或者yny ,复制n行,n为数字);

2016-04-24 23:07:32 427

原创 VIM学习(2)

关于光标的移动光标的快速移动有以下命令: 首先是最简单的上下左右,其实可以直接使用键盘上的方向键来实现,但是推荐在VIM中使用以下命令 命令h :向左移动命令l :向右移动命令j: 向上移动命令k : 向下移动以下是组合命令: - 20l: 向右移动20个字符 - 12j : 向上移动12行回行首行尾^ : 回行首 相当于我们常用的home$ 回行尾 相当于我们常用的endc

2016-04-23 23:07:13 514

原创 VIM学习(1)

VIM有三种模式,分别为:- 命令模式-插入模式-可视模式本节介绍三种模式的转换主体图如下 命令i: 在当前光标之前插入命令a: 在当前光标之后插入命令I: 在当前光标所在行的行首插入命令A: 在当前光标所在行的行末插入命令o: 在当前光标所在行后新插入一行命令O: 在当前光标所在行前新插入一行命令s: 立即删除掉当前光标所在位置的字符,并进入 插入模式,光标位置停留在该处命令S: 立

2016-04-23 22:02:14 455

SingleMediaScanner.java

android媒体库刷新 参考链接

2016-12-12

CMAKE_OEPNCV PROJECT

使用cmake构建基于OpenCV的工程,在windows基于visual studio 2013编译通过,相关链接http://blog.csdn.net/gh_home/article/details/52539581

2016-09-19

android端视频编解码

代码中有三个文件,其中VideoEncode是件图像数组编码为视频文件 VideoDecode将视频文件解码为图像数组并且可以保存为YUV格式文件 VideoEncodeDecode是将一个视频读入后解码之后再将解码后的数据重新编码为视频文件

2016-08-07

OpenCV3.1 使用GPU及OpenCL加速的教程

OpenCV3.1 使用GPU及OpenCL加速的教程 新接口,使用UMat时的注意事项

2016-05-28

相机坐标系的解释

关于世界坐标系 相机坐标系 成像平面的一个很好的解释 同时也是对相机成像模型的一个解释

2015-12-03

关于相机模型的一个很好的讲义

这篇讲义是中佛罗里达大学的课程讲义,关于相机模型,讲的很不错,在看这篇讲义的同时,建议看multiple view geometry on computer vision这本书的第6.1节 即153-158页

2015-12-02

Camera Modle

这篇文章对于齐次坐标讲的非常好,对于针孔相机模型也讲的不错

2015-12-02

关于K-D树的总结

很好的总结K-d数的一个PPT讲义,建议了解K-D树算法的可以先参考一下这个讲义

2015-11-30

k-means算法的matlab实现

基于matlab的k-means算法实现 直接可以运行

2015-11-30

关于SVD的理解

关于SVD自己总结的文档,参考了很多很好的博客,SVD在工程中应用很广泛

2014-09-29

空空如也

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

TA关注的人

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