- 博客(35)
- 资源 (9)
- 收藏
- 关注
原创 C++标准模板库Stand Template Library(STL)简介与STL string类
参考《21天学通C++》第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类。虽然前面对于vector、deque、list等进行过学习和总结,但并没有一个宏观上的把握,现在通过上一篇和这一篇博文,将对C++模板以及基于C++模板的STL关联起来,形成一个总体的把握,对于掌握C++中模板(template)这一强有力的工具会十分有帮助。本
2015-07-31 15:21:31 1529
原创 C++ 宏和模板简介
参考《21天学通C++》第14章节,对C++中的宏和模板进行了学习,总结起来其主要内容如下:(1) 预处理器简介(2) 关键字#define与宏(3) 模板简介(4) 如何编写函数模板和模板类(5) 宏和模板之间的区别(6) 使用static_assert进行编译阶段检查**************************************************
2015-07-30 11:44:55 3096
原创 数据结构(三):非线性逻辑结构-树
经过数据结构(二)系列文章,已经把线性结构中最常用的数据结构进行了介绍,包括顺序存储结构中顺序表、顺序队列和顺序栈,链式存储结构中的链表、链栈和链队列。线性结构是数据结构中最为常见也最简单的逻辑结构。下面将进入非线性逻辑的数据结构部分,还记得下面的一副数据结构的分类图吧,对于非线性逻辑,主要介绍树和图。本文主要先针对树进行复习和总结,后续的博文将逐渐深入到图等更为复杂的非线性逻辑数据结构。
2015-07-29 13:12:29 2529
原创 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
上一篇博文中主要总结线性表中的链式存储结构实现,比如单向链表、循环链表,还通过对比链表和顺序表的多项式的存储表示,说明链表的优点。可以参看上篇博文http://blog.csdn.net/lg1259156776/article/details/47018813下面先对没有介绍的链表中的双链表进行介绍,并通过稀疏矩阵的三元组的链式结构来深入理解较为复杂的链表存储结构。最后对三次博文所讲述的内容
2015-07-27 00:23:40 3443
原创 图像相似度测量与模板匹配总结
摘要本文主要总结了进行目标跟踪、检测中经常使用到的图像相似度测量和模板匹配方法,并给出了具体的基于OpenCV的代码实现。引言模板匹配是一种在源图像中寻找与图像patch最相似的技术,常常用来进行目标的识别、跟踪与检测。其中最相似肯定是基于某种相似度准则来讲的,也就是需要进行相似度的测量。另外,寻找就需要在图像上进行逐行、逐列的patch窗口扫描,当然也不一定需要逐行逐列的扫描,当几个
2015-07-24 12:21:16 41905 3
原创 C/C++文件操作经验总结
最近在做一个从groundtruth_rect.txt中读取按行存储的矩形元素(x, y, w, h),文本存储的格式如下:310,102,39,50308,100,39,50306,99,39,50306,98,38,49304,97,38,49303,96,37,48一般处理这种带格式的存储数据,我最喜欢的就是C语言中的格式化的输出和输入fprintf和
2015-07-24 10:36:18 2291
原创 C++的标准模板库STL中实现的数据结构之链表std::list的分析与使用
摘要本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和具体的应用实现(STL),本文是系列总结的第二篇,主要针对线性表中的链表 STL std::list进行分析和总结。引言由于前段时间对台大的机器学习基石和技法课程进行了学习,发现在具体的实现中常常涉及到各种类型的数据结构,比如线性表、二叉树、图等,在使用这些数据结
2015-07-23 15:36:08 9718
原创 数据结构(二):链表、链队列
上一篇博文中主要总结线性表的顺序存储结构实现,比如顺序表、顺序队列和顺序栈。具体可以参考上篇博文http://blog.csdn.net/lg1259156776/article/details/46993591下面要进行学习和总结的是线性表的链式存储结构实现,比如链表和链队列。顺序存储结构的优缺点优点是逻辑相邻,物理相邻,可随机存取任一元素,存储空间使用紧凑;缺点是插入、删除
2015-07-23 11:32:18 3091
原创 C++类型转换运算符 static_cast,dynamic_cast,reinterpret_cast,const_cast
类型转换是一种让程序员能够暂时或永久性改变编译器对对象的解释机制。可改变对象解释方式的运算符称为类型转换运算符。为何需要进行类型转换通常为了实现使用不同环境的个人和厂商编写的模块能够相互调用和协作,程序员需要让编译器按照所需的方式解释数据,并成功编译和执行。一个非常经典的例子是:目前很多C++程序依然在使用很多年前用C编写的库,而针对这些C语言编译器编写的库必须依赖整形来保存布尔值,因此对
2015-07-22 15:55:45 1550
原创 C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用
一、摘要本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解,即联系数据结构的理论分析和具体的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动态数组)STL vector进行分析和总结。二、引言由于前段时间对台大的机器学习基石和技法课程进行了学习,发现在具体的实现中常常涉及到各种类型的数据结构,比如线性表、二叉树、图等
2015-07-22 12:36:53 3580
原创 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)
还记得数据结构这个经典的分类图吧:pic1今天主要关注一下线性表。什么是线性表线性表的划分是从数据的逻辑结构上进行的。线性指的是在数据的逻辑结构上是线性的。即在数据元素的非空有限集中(1) 存在唯一的一个被称作“第一个”的数据元素,(2) 存在唯一的一个被称作“最后一个”的数据元素,(3) 除第一个外,集合中的每个数据元素均只有一个前继元素,(4)除最后一个外,集合中的每个
2015-07-21 22:46:50 7501
原创 如何模拟高斯分布的随机数发生器?
在一些算法中,经常会用到随机数,最常用的随机数有两种,一是服从均匀分布的随机数,二是服从高斯分布(正态分布)的随机数。在标准C中并没有产生高斯分布的随机数发生器,只有服从均匀分布的随机数发生器rand(),那么如何通过rand()来模拟出高斯分布特征的伪随机数呢?这就是本文的话题。实验原理:高斯分布的随机数在概率上服从高斯分布,如果通过rand()产生某个区间的随机数,通过高斯分布的概
2015-07-21 09:55:23 12178 1
原创 数据结构(一):数据结构的基本概念和算法的时间和空间复杂度
数据结构讨论的范畴计算机技术的两大支柱:1是数据结构,2是算法。在某种程度上讲,程序设计等同于数据结构+算法。程序设计是为计算机设计一组指令集,算法是解决问题的策略,数据结构是模型。问题包括:数值计算,解方程,非数值计算的问题:计算机对弈,棋盘,棋子如何表示(模型),规则策略(算法)我们讨论的是:实体的数学模型(非数值计算)及其上的操作如何在计算机上表示和实现。
2015-07-20 22:38:32 14363
原创 Adaptive Compressive Tracking via Online Vector Boosting Feature Selection(ACT算法解读)
从2012年张凯华在CVPR上的一篇Compressive Tracking (CT,压缩跟踪)论文开始,CT算法就引起了广泛关注。其主要的特色就是采用了压缩感知的原理,通过稀疏随机投影矩阵将高维度的Harr-like特征压缩到低维度(2-3的稀疏度),然后通过朴素贝叶斯分类器进行分类。最吸引人的就是采用了压缩感知的原理,一个潜在的方向就是通过压缩感知将高维度的特征转变为低维度,同时能够最大限度的保留原始特征的信息,这样就有可能大限度的节省计算量。但是CT算法的主要缺点是随机初始化Harr-like特征值的
2015-07-17 11:13:05 2111
翻译 Traking-Learning-Detection TLD经典论文部分翻译
摘要本文研究视频流中未知目标的长期跟踪问题。在第一帧,通过选定位置和大小定义跟踪目标。在接下来的每一帧中,跟踪任务是确定目标的位置和大小或者说明目标不存在。我们提出了一种新颖的跟踪框架(TLD),明确地将长期跟踪任务分解为跟踪、学习和检测。跟踪器完成目标在图像帧间地跟踪。检测器集中到当前为止所有到已经观测到的外观,并在必要时纠正跟踪器。学习阶段估计检测器的误差并更新,避免将来的误差。我们研究怎
2015-07-17 09:23:55 11956
原创 机器学习之径向基神经网络(RBF NN)
本文基于台大机器学习技法系列课程进行的笔记总结。主要内容如下图所示:首先介绍一下径向基函数网络的Hypothesis和网络的结构,然后介绍径向基神经网络学习算法,以及利用K-means进行的学习,最后通过一个实例加深对RBF神经网络认识和理解。RBF神经网络的Hypothesis和网络结构我们从基于Gaussian kernel的support vector mac
2015-07-17 00:47:05 25551
原创 K-means算法
K-means算法输入input:data X输出output:data(X,S)解释:输入没有标签的数据data X,经过训练,给每一个数据添上一个标签S{s1,s2,...,sk},对应的聚类中心为U{u1,u2,...,uk}。效果:将输入数据分为k类,并得到其相应类别的中心点。===============================================
2015-07-16 19:23:04 2868
原创 机器学习之深度学习
本文基于台大机器学习技法系列课程进行的笔记总结。一、主要内容topic 1 深度神经网络结构从类神经网络结构中我们已经发现了神经网络中的每一层实际上都是对前一层进行的特征转换,也就是特征抽取。一般的隐藏层(hidden layer)较少的类神经网络结构我们称之为shallow,而当隐藏层数比较多的类神经网络结构我们称之为deep。如下图所示:从两者的对比中可以明显
2015-07-16 11:39:50 1806
原创 Tracking-Learning-Detection (TLD算法总结)
一、TLD算法简介TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生ZdenekKalal在2012年7月提出的一种新的单目标长时间跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块
2015-07-15 20:22:54 6329
原创 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结。包括从静态的融合方法blending(已经有了一堆的g,通过uniform:voting/average、non-uniform:linear/non-linear和condition的融合形式来获取更好地性能),learning(没有一堆的g set,而是通过online lear
2015-07-15 13:25:00 3238
原创 迭代是人,递归是神(迭代与递归的总结:比较)
在计算机编程实现中有常常两种方法:一曰迭代(iterate);二曰递归(recursion)。从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。从直观上讲,递归是将大问题化为相同结
2015-07-12 13:55:30 23842 4
原创 机器学习技法总结(六)Decision Tree Hypothesis
这里先再次提出我们利用aggregation获取更好性能的Hypothesis G所涉及的方法:blending,就是在得到g_set之后进行融合;learning呢?就是在线online的获取g并融合。下面就是关于整个aggregation所涉及到的方法总结:pic1其中Bagging、AdaBoost我们都已经探讨,它们分别是基于uniform(voting / average)和no
2015-07-11 14:38:34 2271
原创 机器学习技法实现(一):AdaBoost- Decision Stump (AdaBoost - 决策树的基于Matlab的实现)
经过前面对AdaBoost的总结,下面要基于Matlab实现AdaBoost-Stump进行二维平面数据点的分类的实验。一. 实验原理参看 http://blog.csdn.net/lg1259156776/article/details/46831191二. 实验方法生成一个可以利用sine线进行分割的数据点样本,然后通过AdaBoost - decision stump
2015-07-10 22:08:56 11704
原创 Matlab使用新发现1(小技巧:shell 命令、工程工作目录设置相关)
最近在调试一个基于Matlab的程序,在偶然间发现了几个比较有趣的技巧,给大家分享一下(很可能是太菜鸟了,没有涉及这方面,大方之家请勿见笑,对您有所帮助请点赞!)1. Matlab语言是一种解释型语言(interpreter)就像我在总结软件架构数据流时的一种:Interpreter / virtual machine (解释器/虚拟机),具体架构可以参看以下博文:http://blog.
2015-07-10 19:07:03 2611
原创 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树
上一讲主要利用不同模型计算出来的g,采用aggregation来实现更好的g。如果还没有做出来g,我们可以采用bootstrap的方法来做出一系列的“diversity”的data出来,然后训练出一系列的g,比如PLA来说,虽然模型一样,就是直线对二维平面的分割,模型都为直线,那么我们利用bootstrap来做出不同的数据,然后计算出不同的g,然后融合后就可以得到很好的效果。或者也可以通过调整PL
2015-07-10 15:16:09 6529
原创 机器学习技法总结(四)(aggregation,vote,bootstrap...)
研究的动机是:我们采用了不同的模型得到T个不同的g,那么我们是不是可以通过这些不同的g的融合得到更加出色的G呢?因此,便有了以上四种不同的方法;1)(select)直接选择最好的一个作为融合的结果;2)(uniform)所有的g公平vote;3)(non-uniform)相当于你比较相信某个结果,就赋予它较高的vote权重,这种类似于二次回归问题,就是说,先对不同模型进行优化得到不同的g,然后再次
2015-07-09 20:37:26 3602
原创 机器学习技法总结(一):支持向量机(linear support vector machine,dual support vector machine)
第一阶段技法:large margin (the relationship between large marin and regularization), hard-SVM,soft-SVM,dual problem(解对偶问题),kernel trick,kernel logistic regression。具有large margin的那条直线具有更好的抗干扰能力,鲁棒性好。而影响margin大小的其实就是在fat边界上的那些数据,这些数据叫做support vector(candidate)。所以
2015-07-08 20:38:33 2186 1
原创 机器学习总结一
前段时间在网上看到了coursera公开课台大机器学习基石课程,比较全面而且清晰地将机器学习所需的基本知识、理论基础给与了讲解。foundation中有几个比较重要的概念和思想,先进行一下回顾,然后开启对后续技法课程的学习和总结。1. VC dimension(VC维,非常重要的概念)能够shutter 二分类问题的上限。也是衡量模型复杂度的工具(类似自由度的概念)。之所以这个概念比较重要
2015-07-08 17:27:49 1456 1
原创 软件架构的数据流总结(三)
14. Interpreter / virtual machine (解释器/虚拟机)典型样例:Java 虚拟机,Rule-based systems,脚本语言(JavaScript)原理:Program or Script加载到解释器,创立Program和环境的链接。解释器从程序中读取指令并处理,从而影响Environment。问题:比直接执行要慢许多;需要定制debugge
2015-07-08 13:07:07 2491
原创 软件架构的数据流总结(二)
8. Blackboard(有点像老师叫学生上黑板写东西,而不是学生随意上黑板写)Blackboard是Knowledge Sources的通用数据结构,能够代表问题空间的所有状态,当需要分离的数据结构时,Blackboard可以分开为多个面板(panels)。Knowledge Sources 是解决问题方法的元件,它们之间没有链接。Scheduler(调度器)决定哪个知识源
2015-07-08 11:13:58 1869
原创 软件架构的数据流总结(一)
1. Model-View-Controller(MVC框架)This architecture is used in simpleGUI applications,不管是MFC,还是Matlab,亦或是android,基本上关于界面的开发,都是基于这种软件框架。看来还有web应用程序亦是如此。事件驱动模型。MVC组件创建的步骤:1) 构建模型(model),然后通过引用包含到
2015-07-07 15:14:21 4736
原创 软件架构的控制流总结
在进行程序开发时,要从总体上对软件架构进行规划,软件架构(software architecture)包括两个aspects,control flow and data flow。这里先对typical software architecture control flow进行summarize,后续的文章将继续对data flow进行梳理和总结。这里要感谢dossier-andreas,把soft
2015-07-07 12:22:39 2421
原创 并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)
最近在进行DSP软件优化时,查阅文献,看到了几种并行机制,下面予以总结:关键词一:指令流水关键词二:多进程关键词三:多线程关键词四:多核(多处理器、超线程结构、多核结构、多核超线程架构)在体系架构中,Pipe and Filter(管道过滤器架构),如下图所示,所有的Filter并行执行,Pump 或者Producer是data sources,可以是静态的文本文件,也
2015-07-06 10:29:50 2321
原创 初窥深度学习
最近上完了计算神经科学的课程,算是神经网络学习的入门吧!课程要求主要论述了前馈型中的感知器、Adaline、BP神经网络(sigmoid激发函数)、径向基函数神经网络(局部学习,gaussian函数,正则化Green函数)等和反馈型中的Hopfiled(DHNN)神经网络。总是再听陆教授讲到deep learning,说到了深度学习的强大,什么谷歌大脑,百度大脑之类的。作为初步,对深度学习进行一下
2015-07-05 23:00:39 1707 3
原创 神经网络总结(初稿)
神经网络是由大量处理单元(神经元)相互连接而成的网络,ANN(Artificial Neural Network)是生物神经系统的一种抽象、简化和模拟。神经网络的信息处理是通过神经元的相互作用来实现的,知识与信息的存储表现在网络元件互连的分布式结构与联系,神经网络的学习与识别就是神经元连接权系数的动态演化过程。实践中常用的基本神经网络模型有:感知器(perceptron)神经网络、线性神经(Ada
2015-07-05 22:52:46 5856
动态平衡二叉树demo
2015-08-04
adaboost 演示demo(基于Matlab,学习算法包括决策树、神经网络、线性回归、在线贝叶斯分类器等)
2015-07-11
压缩感知Hello-world+正交匹配追踪法(OMP)+最小二乘法辨识(系统辨识--Matlab)
2015-03-18
图像压缩算法Matlab集合
2015-03-18
VS2010多文档图像处理所有基础程序
2015-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人