动态规划
来源:互联网 发布:structure软件 编辑:程序博客网 时间:2024/05/12 13:20
星型结构的动态规划
其中,
红色的点和蓝色的点之间的连线称之为:
动态规划问题:
注:下面
1阶段
这里从
2状态
第一个阶段S0的状态变量,即
3决策
状态变量
编程时,通常定义一个决策数组,用来跟踪状态的变化,用来寻找达到最优时的最优策略。
4策略
各决策阶段组成的序列就是策略。我们的目的是根据一个”评价函数+准则”,找到最优的策略。
5状态转移方程
其描述了上一个阶段的状态
6指标函数
即评价函数。即我们希望找到的5个landmarks满足,所有特征点的纹理匹配代价和形变代价最大。
纹理代价:
我们可以提取hog,sift,sparse_LBP,LBF等特征。在评价函数一般确认的情况下,纹理特征的描述和提取对于landmarks的定位很重要。学过模板匹配的都知道,当检测的区域的纹理特征和模板表示的特征相同时,可以达到最大的响应。
形变代价:
常用的代价是两个特征点之间的位移矢量的二次函数,则两个特征点之间的形变代价为:。
其中
在模型的学习过程中,我们只要约束二次函数的二次项的系数全负,我们就可以利用广义距离变换加速动态规划的求解。
辅助理解:
文献1中,公式(3)
其中
上述公式转换为公式(4):
其中
个人理解:当
同时公式(2)对于二次是一个抛物面,开口向下的抛物面。其正迎合了广义距离变换的求解。
评价函数:
我们希望评价函数值越大越好,对于纹理,越匹配,则
1.欧式距离的广义距离变换:
给定
这里,
和多元函数求解积分类似,由于公式(5)中的第一项不含有
先对
先对
说明:例如上式,先对将
2.任意二次形变函数的广义距离变换:
公式(3)中,我们针对某两个相邻的landmarks,如果从
其中
同理,我们也可以转换为一维广义距离变换:
即:
其实现过程中,只需要修改交叉点
在图1中的
算法复杂度的分析:
常规遍历算法的时间复杂度:
针对图1中
时间复杂度为:
广义距离变换的时间复杂度:
1.计算下包络(lower envelope或上包络)时间复杂度为:
2.填充值(查找表)时间复杂度为:
故总的时间复杂度为:
参考文献:
1、Face Detection, Pose Estimation, and Landmark Localization in the Wild
2、Distance Transforms of Sampled Functions(广义距离变换)
- 动态规划!!!动态规划!!!
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- 动态规划
- ORACLE window10下卸载
- 印象云笔记无法连接到服务器解决办法
- JAVA代理模式--动态代理
- InputStreamReader 和 OutputStreamWriter类用法简介,及演示。
- HBuilder webApp开发(十)在线差异化升级
- 动态规划
- 蛇形填数问题
- Linux下python调试
- UIView指定角为圆角
- Android Studio里的Gradle的初探索
- HDU 4373 Mysterious For(Lucas定理、中国剩余定理)
- tar 命令详解
- Irrlicht引擎学习笔记(15)--LightManager
- Sum of Two Integers