模板函数应该将声明与定义放在一起
看如下例题:
```
//tem.h
#ifndef _TEM_H
#define _TEM_H
template T add(T a, T b);
//{
//return a+b;
//}
#endif
//tem.cpp
include "tem.h"
template T add(T a, T b)
{
return a + b;
}
template int add(int, int);//实例化定义,必须放在模板定义的后面
//main.cpp
include
include "tem.h"
using namespace std;
int main()
{
继续阅读 »
关键点一: 同一个stringstream对象来多次处理数据,每次使用前,使用stream.str("");保证数据已清空。
例如:
std::stringstream ss;
string result;
ss << 1;
ss>>result;
//必须牢记使用stringstream两次输入,必须使用前清空
ss.clear();
ss.str("");
ss << 2;
又或者参看下面这段程序:
```
include
include
include
using namespace std;
///////////////////////////////////////////////////继续阅读 »
最近要写技术文档,里面包含大量的数学公式,本来想用markdown,但是
markdown不适合提交到公司,于是想着还是用自己学过的Latex吧。
于是在网上去搜使用Latex写技术文档/技术书籍的模板,还真找到了一篇,即《用 LaTeX 排版技术书籍》。本来他提示使用tex studio编译,但我使用tex studio编译后可以运行,却不能导出pdf,总是提示:
```tex
** WARNING ** Obsolete four arguments of "endchar" will be used for Type 1 "seac" operator.
** ERROR ** This font using the "s继续阅读 »
去年在美图公司实习的时候,研究了一段时间的SDM方法,写了一系列的博客,见《Supervised Descent Method and its Applications to Face Alignment》等,今年来到了杭州,进入了图片社交领域的佼佼者in实习,主要还是做人脸对齐。最近一段时间,一直在研究《Face Alignment at 3000 FPS via Regressing Local Binary Features》这篇文章,也为此搜集了很多资料,特整理在此,以供参考。
paper:
3000fps论文链接:
Face Alignment at 3000 FPS via Regressing Local继续阅读 »
论文《Extended Supervised Descent Method for Robust Face Alignment》对SDM方法做了扩展,使程序更鲁棒。
more
论文主要在三方面做了Improments,分别是:
Adaptive Feature Block
在初始的SDM方法中,我们使用fixed-size blocks去提取SIFT特征进而预测shape。但实际上,从直观上来看,the feature extraction block size与the value of shape increment有很大关系。当shape increment比较大时,我们应该提取较大块的SIFT特征,这样就可以获取更多有用继续阅读 »
训练阶段我们采用了分批处理,可以优化部分内存。
原先我们的代码使用一次性载入数据,然后开始若干次迭代,直至收敛。这样保存image与shape的数据矩阵Data就一直占用内存,但实际上,数据集的image与shape 的作用仅仅是计算$\Delta X$和$\Phi$,两变量的定义参考《 Supervised Descent Method and its Applications to Face Alignment》,其实也就是init shape与true shape的差值以及init shape的特征向量。计算完了,Data就没用了。于是我们设想分批处理,每次迭代载入一次数据,用完了就clear。这样就需要载入多次,可能时间上继续阅读 »