写在开头:

研究了一下午的meanshift 原理,终于弄得有点头绪了。望参考,如有不对之处,请留言,谢谢!!

meanshift 是什么玩意, 它能干啥就不在这里废话了。

这张图熟悉的不能再熟悉的了,作为一下,喜欢用自己代码实现一些算法的大笨狗,我需要知道,

(1)这些点(小黑点)是怎么计算得到的?

(2)他们的计算过程是怎么实现的?

对于第二个问题,我想好多人都已经解释的很明白了,这里不再说了。

针对第一个问题,我查了好多资料,学到了一点自己的见解:

a. 针对meanshift 的计算过程, 有人脸box(就是需要跟踪的区域),还有就是原图(就是输入图像,这个图像中包含了人脸)

刚开始box标记在人脸上(第一帧,完全正确!),接下来的一帧 --- 新的一帧中(人脸移动了,但是box还在原处),现在就要移动box跟踪人脸,

也就是在新的一帧中找人脸(如果直接检测就完全不需要跟踪啦。跟踪的目的就是减少检测的次数,因为检测太费劲!)

那么就需要找出这一帧(新的一帧)中哪个区域与人脸(第一帧的box)比较相似了!!!

至此有了一个大的概念,在新的一帧中差找与人脸最相似的区域,并将box移动过去。

又会有两个问题:

(1)相似不相似怎么计算?

(2)相似不相似怎么表现呢?

对于第一个问题:

有个叫什么皮尔逊相关性计算的公式,这里就不在细说。大概的意思是这样的,判断两个图像的相似性,可以通过计算两个图像直方图分布来计算。

计算box图像与图像块1的相关性,可以得到一个[0,1]之间的数。

这样得到一个相关性图(概率图),每一个像素的值都是[0,1]的小数。这也没法看啊!!!怎么办???

劳动人民的智慧还是不错滴,将[0,1]映射到[0,255]就产生一张灰度图了。相关性越高的地方,在灰度图中就越亮。也就是第一张图中的各种点。我感觉这个灰度图就是反向投影图!!!不再解释,被其他博客的人坑了好长时间!

下面将计算第一个点是如何迈出它的第一步的:

似不似算出来的移动有点大,有点大,不用怕,第二次迭代的时候就修正过来啦!!!

貌似,我这种只是一种可见的方式,肯定还会有其他的移动方式,比如计算质心什么玩意的。对不对,大笨狗始终是大笨狗。

opencv官方文档中的meanshift迭代过程:

(by 终结大笨狗,如有问题,请留言指出)

meanshift 的跟踪原理解析相关推荐

  1. spring配置文件中非bean标签的原理解析

    2019独角兽企业重金招聘Python工程师标准>>> 在spring配置文件中,我们经常见到context:property-placeholder/context:compone ...

  2. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  3. Android代码入侵原理解析(一)

    Original 2017-05-06 付超红 滴滴安全应急响应中心 2017年初,在滴滴安全沙龙上,滴滴出行安全专家--付超红,针对App的攻与防进行了分享.会后大家对这个议题反响热烈,纷纷求详情求 ...

  4. Android 插件化原理解析——Hook机制之AMSPMS

    在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...

  5. 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @OData.publish工作原理解析

    Jerry的前一篇文章 揭开SAP Fiori编程模型规范里注解的神秘面纱 - @ObjectModel.readOnly工作原理解析,给大家分享了@ObjectModel.readOnly这个注解对 ...

  6. easy excel date 类型解析报错_ptarchiver原理解析

    pt-archiver原理解析 作为MySQL DBA,可以说应该没有不知道pt-archiver了,作为pt-toolkit套件中的重要成员,往往能够轻松帮助DBA解决数据归档的问题.例如线上一个流 ...

  7. 秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  8. Merkle Tree(默克尔树)原理解析

    Merkle Tree(默克尔树)原理解析 一.Merkle Tree 1.1 Merkle Tree的特点 二.Hash list 三.Merkle tree VS Hash list 四.Merk ...

  9. 【卡尔曼滤波介绍与原理解析】

    [卡尔曼滤波介绍与原理解析] 学习参考外文链接:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/. 参考链接:https:// ...

最新文章

  1. linux怎么进入root文件,linux下安装ROOT过程
  2. Redis事务和watch
  3. QualityCenter的备份
  4. jdk12 switch_玩JDK 12的Switch表达式
  5. Mina、Netty、Twisted一起学(五):整合protobuf
  6. MySQL运维系列 之 如何监控大事务
  7. Restful、SOAP、RPC、SOA、微服务之间的区别
  8. AngularJS+Jersey下载excel
  9. flutter 图解_Flutter 54: 图解基本生命周期
  10. Java并发编程之线程池中的Future
  11. 9.python-匿名函数(lambda)
  12. 左右伸缩_OPPO概念机将至!横向卷轴+左右伸缩,你期待吗
  13. 微软ASP.NET官方网站MVC教程实际操作中的部分问题
  14. 自由的意义--读《希腊的回声》
  15. 软件架构师的修炼之道
  16. 转 利用java反射实现两个具有相同属性bean赋值
  17. 【电力负荷预测】基于matlab EEMD+IWOA+LSSVM电力负荷预测【含Matlab源码 1810期】
  18. 流程和企业成熟度模型(PEMM)
  19. 计算机硬盘密码,电脑常识之--如何给移动硬盘[硬盘]加密码
  20. 基于HTML5移动app开发教程一

热门文章

  1. 股份有限公司章程范本
  2. 第四章 常见 Android 文件格式(二)(classes.dex)
  3. hive实训项目之电商数据分析
  4. Windows 技术篇-本地组策略编辑器添加模板方法,设置chrome浏览器本地组策略演示
  5. 八大排序算法之快速排序(下篇)(快排的优化+非递归快排的实现)
  6. 计算机毕业设计Java盘山县智慧项目管理系统(源码+系统+mysql数据库+lw文档)
  7. echarts字体设置
  8. 云南大学计算机科学与技术学科排名,2017中国大学计算机科学与技术学科排行榜...
  9. python for beginners_《Python for Beginners》学习笔记(5)
  10. Vmware vCenter Server Appliance (VCSA6.0)安装