- 博客(24)
- 收藏
- 关注

原创 Deep Alignment Network: A convolutional neural network for robust face alignment
论文分析论文提出了一种类似级联的神经网络结构。这一点上很遗憾,我在一个月之前也想到了这种模式。因为对于实时 Landmark 的跟踪,其实可以利用上一帧的预测结果来预测下一帧 Landmark 的位置。但现代大部分的 CNN 结构没办法办到。在与朋友的讨论中可以仿照RNN来建立时间线上的联系,解决在实时跟踪中的效率及时间稳定性。当时想动手设计并实现一个这样的网络,后来因为公司原因并没有动手,想
2017-09-26 16:21:29
5349
4

原创 3000Fps 论文实现 部分解析--Wt的回归
在通过随机森林抽取Local Binary Features后,对于每一个landmark都会有一个稀疏的向量来表示这个特征。然后根据论文,我们将回归得到一个
2017-07-17 11:20:04
582
1

原创 C++ 右值引用的初步理解
在C++11中,添加了右值引用是对于经常使用Stl的人来说非常有意义的事情。初步理解为 Move语义对于性能的提升。std::string("abc") //“abc为临时变量,这里将调用move语义 将abc移动到容器中。std::vector> v;std::vector vv;vv.pushback(1);...//dosomethingv.pushback(st
2017-03-28 11:37:41
1697
原创 今年努力完成的两个程序
一直以来有很多有意思的、感兴趣的东西想写。有时候写着就半途而废了。 今年希望把目前的这两个想法坚持下去并开源:神经网络框架,基于C++ Eigen 3.3.4 实现。后续可能加上CUDA 及 CUDNN基于蒙特卡洛的Ray Tracking。后续加上CUDA,及任意obj的渲染坚持下去就完美了!
2018-02-07 16:55:42
340
原创 C++ 模板编程 CRTP 奇异递归模板模式
今天来聊聊 C++ Eigen 中的一个技巧——奇异递归模板模式(curiously recurring template pattern),简写为CRTP。 这篇博客也是我边看、边查、边理解的一个过程。如有错误,希望大神留言指正。原来已经稍微接扫了几眼这个技术,在我粗浅的认识中,他在编译期通过模板,实现了大家用的比较多的运行时多态。我们来看看这个代码:class Base{pu
2018-02-06 22:58:44
1382
2
原创 CNN for Face Alignment 深度神经网络的初次尝试
在Face Alignment中,传统方法其实能够取得不错的效果。包括AAM,ASM,CLM还有之前说的基于全局显式回归的ESR,3000FPS等。但是!传统算法在大姿态、极端表情上基本无能为力。在我的理解中,他们都是对于训练集的某些特征进行降维后记忆回归的结果(理解有错请指出)。嘻嘻,而且不去接触神经网络都要Out了!背景 基于由俭入奢的原则,论文方面我们选取了CNN在人脸对齐方向比较前期的一篇
2017-09-22 18:10:51
3263
1
原创 决策树Decision tree
在读论文《Face Alignment at 3000 FPS via Regressing Local Binary Features》时,接触到核心的 RandomForest 。由于随机森林由各个独立采样的 DecisionTree 决策树组成。故记录一些Decision Tree的相关内容,方便以后查阅。
2017-07-13 10:20:34
346
转载 Markdown示例
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-07-13 10:16:54
439
原创 C++类成员反射实现
引出问题:给定一个我们自己定义的类A,如何便捷的输出其所有的成员变量类型及值。日常编程中有这样的需求,一个是为了调试,二个是为了在不同模块运行时得到类的属性用于显示及修改。但C++未提供原生的反射机制,所以有了以下思考。核心的需求为:对于一个类型A,我们可以拥有其所有的类型信息。例如:class A{ int INT; float FLT;}/*MAIN*/A a;a.IN
2017-06-14 14:47:46
3355
原创 D2D D3D12 渲染视频帧思路及实现
写在之前耗时2个月,写完公司的音视频处理系统。对于整个音视频处理有了基本的了解。个人感觉最坑的地方有三:编解码音视频录制的同步视频预览渲染(视频帧的渲染)由于在以后要支持同时多路1080P录制及预览,所以对于性能的要求也是非常高的。虽然目前实现是分两步走,先录制再处理,但如果能做到一步到位就非常好了。有空再去优化整个项目。渲染选择API对于视频的渲染来说,已经去世的雷博给了一个DEMO。其中
2017-05-31 19:51:01
7268
11
原创 几何图元的表达
顶点定义 当我们用顶点去定义几何图元时,我们可能用两个顶点去表达一条线,或者三个顶点去表达一个三角形。那么D3D是如何去理解我们给定的N个点的信息呢? Primitive Topology 一个顶点的集合被称为vertex buffer,他仅仅储存了一个顶点列表在一个连续的内存空间中。当我们需要D3D去组合这个几何图元时,我们需要告诉他顶点的几何拓扑信息。利用void ID3D12Graphi
2017-04-10 10:46:37
1784
原创 初始化DEMO相关
Describe and Create the Swap Chain 创建并初始化交换链中第一步是填充一个DXGI_SWAP_CHAIN_DESC结构体。他描述了我们要创建的交换链。typedef struct DXGI_SWAP_CHAIN_DESC{ DXGI_MODE_DESC BufferDesc; DXGI_SAMPLE_DESC SampleDesc; DXG
2017-04-07 14:34:46
388
原创 Direct3D初始化
在DirectX Math中,向量的核心数据类型为 XMVECTOR,使用了SIMD指令集加速。 下面引用百度对SIMD的介绍: Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。SSE2指令集: SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展 2
2017-04-05 11:24:55
867
原创 Direct变换
Objectives 1、理解如何用矩阵去表达线性(linear)和仿射(affine)变换。 2、学习坐标系变换,如缩放、旋转。 3、发现几个变换矩阵可以通过矩阵乘法转换成一个变换网络。 4、发现如何转换坐标系从一个坐标系到另外一个。怎么去用矩阵描述这样的坐标系变换。 5、熟悉DirectXMath库提供的函数来构造变换矩阵。线性变换考虑一个函数对于τ(v)\tau(\textbf{v}
2017-04-01 18:57:13
513
原创 矩阵学习笔记
先给出一些定义: 矩阵的行列式 对于一个方阵(n*n的矩阵)A,有行列式运算记为 det A。 行列式可以看做有向面积或体积的慨念在一般的欧几里得空间中的推广。 我们这里提出行列式的目的是有为了有一种明确的数学运算工具去找到矩阵的逆。 一个方阵有逆矩阵的条件是,当且仅当其行列式不等于0 (后面再来补充)矩阵的代数余子式(Matrix Minors) 给定一个n阶方阵(n*n Matri
2017-03-31 21:42:48
2542
原创 XMVECTOR学习笔记
在DirectX Math中,向量的核心数据类型为 XMVECTOR,使用了SIMD指令集加速。 下面引用百度对SIMD的介绍: Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。SSE2指令集: SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展 2
2017-03-31 21:41:13
2299
原创 C++11 std::unique_ptr AND std::function 初步理解
在obs的源代码分析时看到了这样一句代码:std::unique_ptrprof_release(static_cast(&ProfilerFree),ProfilerFree);起初并不能理解这里的含义。unique_ptr是c++11中引入的智能指针,但只能允许一个指针拥有对象的所有权。此处,将此指针用作Deleter传入了一个删除器declty
2017-03-28 11:27:05
1472
原创 [机器学习] 第二课笔记
局部加权线性回归对于给定的样本,对于取点X,取X附近的样本进行预测。但对于样本xi,对于样本X越近,对参数取值影响越大。所以给定出 权值wi:
2017-03-26 11:20:37
438
原创 [机器学习] 第一课01笔记
线性回归给定一个预测函数参数θ 既我们现在需要算法最终确定的值(目前理解)那么我们如何选择参数的值?为了让h(x)逼近给定的样本y,定义一个cost function(成本函数):
2017-03-13 11:27:50
564
原创 GAME OF LIFE
最优解:class Solution {private: int dis[8][2] = {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};public: void gameOfLife(vector<vector<int>>& board) { //把0,1转化为四种状态的一种 for(
2015-12-28 15:37:54
382
原创 HZYZ源码分析笔记
流程1、写好的c/c++代码。 2、将写好的c/c++代码整个共享入LINUX系统下。 (Oracle VM VirtualBox共享固定目录。 mount(挂载命令) mount -t vboxsf share(挂载文件夹) /mnt/share/ ) 3、在LINUX系统下通过gcc编译为arm的运行包。 (进入makefile文件目录
2015-06-30 11:34:37
1962
原创 STL 基本容器学习笔记
容器的共通操作初始化·以某个数组元素为初值,完成初始化int src[] = {1,2,3,4,5,6,7};vector<int> c(src,sizeof(src)/sizeof(src[0]));·以另一个容器的元素为初值,完成初始化vector<char> a_vector;//...vector<char> b(a_vector);·以标准输入装置完成初始化vector<int> a
2015-06-21 23:47:35
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人