iker原创。转载请标明出处:http://blog.csdn.net/ikerpeng/article/details/39050619

Realtime and Robust Hand Tracking from Depth中的Cost Function 学习

首先,我们应该知道,输入的数据是什么:3D 点云数据。

3D点云给我的感觉应该是这种

输出的是:拟合好的手模型(48球体模型)。

而这里的的3D 点云数据用p表示,每个球体用Sx 表示。

Ci 第i个球体的中心;D表示深度图( 区分还有一个D(.))。我们来看以下的Cost Function。

这个公式的理解。

简单说就是差异评估。终于是要对它最小化。

先看第一项:它的定义是这种:

这里的D代表的就是distance,也就是计算点云点p和球体的中心c的距离再减去半径。也就是点云点到球体表面的距离。当中p取了一个子集sub(p)=256个点云。

这个是为了减少计算的复杂度,同一时候也基本保证了精度。

这里的计算量是:256个点分别的和这48个球体的中心计算距离(事实上是计算和点云点p近期的一些球体Sx(p))。找到取得距离最小的值的那个手型的參数就是这个方程的解。可是单纯的这样是有问题的,比如: 到一个点云点距离都非常小的球体可能在以这个点为球心的周围的不论什么位置,因此我们要进行修正。引入第二项:

这一项的目的是为了使球体可以在点云的里面。当中,j(c)代表的是球体在深度图上面的投影点。

假设j(c)处的深度D(j(c))和该球体的中心的z坐标非常接近的话。那么球体的中心就在深度的前面。就增加它们的差值的绝对值这个惩处因子。假设在j(c)处的深度没有话表明球体中心在深度图轮廓的外面。增加j(c)到深度图轮廓的距离作为惩处项。(备注:这里我理解的不是非常深刻,j(c)到深度图轮廓的距离不知道怎样来算)

最后,还须要对球与球之间的关系做一个限制。也就是说。球与球之间理想的状况是相切,而太远太近都不是非常好,所以要增加惩处因子。

上图中左边两个球就是不怎么合适的,右边两个就是基本满足要求的。因此引入第三个修正项:

公式的意义很的明显了。

再来看总体上增加了一个量化因子 ,原因是为了第一项和第二项有等同的作用。一个简单的量化处理。

问题:

1. 3D的点云数据原来有多少,这里用它来拟合是不是说手的检測已经得到了?

http://blog.csdn.net/opensource07/article/details/7804246 这是一个点云的生成的资料

2. 48球手型的初始化是怎样进行的?(手指的跟踪实现吗?)

3. 第二修正项的理解?

本小节完。

手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth(三)Cost Function的更多相关文章

  1. ‘Skimming-Perusal’ Tracking: A Framework for Real-Time and Robust Long-term Tracking

    ‘Skimming-Perusal’ Tracking: A Framework for Real-Time and Robust Long-term Tracking 2019-09-05 21:1 ...

  2. 学习OpenCV——hand tracking手势跟踪

    这几日,岛上风云突变,我这个倒霉孩子终究木有躲过感冒的魔掌,中枪鸟~~~ 这几天只写了个简单的手势跟踪的代码. 原理是:背景差分+肤色检测. 背景差分:取前30帧图像取平均值,计算前30帧之差的和,再 ...

  3. Faster RCNN论文学习

    Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...

  4. 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)

    基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) zouxy09@qq.com http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无 ...

  5. zz2019年主动学习有哪些进展?答案在这三篇论文里

    2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练 ...

  6. Fast RCNN论文学习

    Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...

  7. 《Explaining and harnessing adversarial examples》 论文学习报告

    <Explaining and harnessing adversarial examples> 论文学习报告 组员:裴建新   赖妍菱    周子玉 2020-03-27 1 背景 Sz ...

  8. 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集

    A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...

  9. Apache Calcite 论文学习笔记

    特别声明:本文来源于掘金,"预留"发表的[Apache Calcite 论文学习笔记](https://juejin.im/post/5d2ed6a96fb9a07eea32a6f ...

随机推荐

  1. 【C++ Primer每日刷】之三 标准库 string 类型

    标准库 string 类型 string 类型支持长度可变的字符串.C++ 标准库将负责管理与存储字符相关的内存,以及提供各种实用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与 ...

  2. Visual C++ 经常使用快捷键

    大写和小写 Ctrl+Shift+U: 所有变为大写 Ctrl+U: 所有变为小写 凝视 Ctrl+K+Crtr+C: 凝视选定内容  Ctrl+K+Crtr+U: 取消选定凝视内容 折叠 折叠代码: ...

  3. UVa 170 - Clock Patience

    题目:Clock Patience游戏,将52张扑克牌,按时钟依次分成13组(中心一组),每组4张全都背面向上, 从中间组最上面一张牌開始.翻过来设为当前值,然后取当前值相应组中最上面的背过去的牌翻过 ...

  4. XTU1202:逆序数

    题目描写叙述 有n张卡片,分别标有数字1~n. 有一天Silence把他们按某种序列排好.然后从第一张開始取出一张,再拿一张放到最后面.再取出一张,再拿出一张放到最后面...知道n张卡片所有取走. 把 ...

  5. 多线程编程TSL相关的技术文档

    线程本地存储 (TLS) https://msdn.microsoft.com/zh-cn/library/6yh4a9k1(v=vs.80).aspx Using Thread Local Stor ...

  6. Create a Visual C++ Wizard for Visual Studio 2005

    from:http://www.codeguru.com/cpp/v-s/devstudio_macros/customappwizards/article.php/c12775/Create-a-V ...

  7. Android::开机自启动C程序【转】

    本文转载自:http://blog.csdn.net/Kaiwii/article/details/7681736 之前一篇博文介绍了shell脚本文件的开机启动,地址是http://blog.chi ...

  8. hdoj--1272--小希的迷宫(并查集)

    小希的迷宫 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. 【BZOJ 2453】 维护队列

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2453 [算法] 带修改的莫队算法 当块的大小为N^(2/3)时,时间复杂度为 : O ...

  10. Java悲观锁和乐观锁

    悲观的并发策略——Synchronized互斥锁 互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进 ...