模糊与精确

盖阴阳者,万物之终始,死生之本,逆之则灾害生,从之则苛疾不起,故能取法以和调。—《黄帝内经》

我在读研时做过一些图像处理的研究,其中一个课题就是目标跟踪,要求在视频的某一帧上圈出一个目标,然后随着视频的录放,始终跟住这个目标。

我一开始是这么做的,

  • 分析目标的特征,选择尽可能多的特征点
  • 建立一个关于目标的尽可能精确的目标模型
  • 基于这一套我认为非常完美的模型和阈值,进行目标跟踪

然而,结果不尽如人意。目标跟丢了。

难道是特性点不够?我增加了更多的特征点,建立了更加精确的模型,但是效果不明显,有时甚至更差。

先抛开这个问题,我们看看中医是怎么说的。

中医中说:阴平阳密,命曰平人。是指人体内的阴阳达到平衡状态的时候,这个人就是一个健康的人。怎样叫阴阳平衡状态?阴在内,阳之守也,阳在外,阴之使也。于是我画了这样一张图,图中红色代表阳气:

假如此时是春天,一个健康人的阴阳平衡状态是这样的。那么随着天气变热,到了夏天,这个人还是保持这样一种状态,那就要生病了。

到了冬天天气变冷,人体内的阴阳也要跟随的调整。并不是特定的某一种状态就是阴阳平衡,而是适合当前环境的平衡。阴阳平衡是动态的平衡。

这就是上文所说的“盖阴阳者,。。。之则灾害生,之则苛疾不起。。。”

我们没必须把所有的事件都强加上阴阳属性。这里的阴阳,我理解为是事物发展变化的规律。

根据阴阳理论,事物是在不断发展变化的。既然事物是注定要变化了,那么一开始做的再精确的模型,也会有不适用的时候。所以我们要做的,不是一开始就做好万全的准备,只要满足当时的需求就可以了。投入更多的精力在发现规律,顺应变化,随着变化不断地调整自身。

我当时做这个课题时,并不懂这些中医理论。师兄们教了我这样的方法:

  • 精心选取特征点
  • 建立满足当前跟踪需求的合适的对象模型
  • 开始跟踪
  • 根据跟踪结果建立新的模型
  • 新模型与旧模型融合,调整阈值
  • 继续跟踪

跟踪效果确实有了明显改善。

我没有做过软件工程,但我们可以从这个例子推演到软件工程。

在软件开发过程中,精确似乎是理所当然的。我们的程序是精心设计的,程序的运行过程是由我们控制的。我们很难想象,如果执行我们的程序时我们却不知道它究竟发生了什么,也难以接受,执行了我们的程序,却无法预测它的执行结果。

我们这样精心地设计我们的程序,可我们的程序注定是要改变的。不管是程序本身的运行状态,还是程序运行所依赖的环境,或者我们对程序的期望,都有可能发生改变。

幸运的是,事物的发展变化是有规律的,虽然我们不能预见到它会变成怎样,但我们可以预测到它可能会怎样变化。

所以,与其在一开始把软件设计到尽善尽美,不如好好研究一下这个软件有可能在哪些方面发生变化,以及如何更好地响应这些变化。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-24 01:17:01

模糊与精确的相关文章

【转】IOS 学习之 NSPredicate 模糊、精确、查询

转自:http://blog.csdn.net/lianbaixue/article/details/10579117 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字

【转】 iOS 学习之 NSPredicate 模糊、精确、查询

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): 1 NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; (1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number > 100" (2)范围运算符:IN.BETWEEN例:@"numb

一只猿:使用flask来做一个小应用

上周 @萍姐 问我如何抓取天猫上面店铺的评分,看了下挺简单的,于是花了点时间写了个Python脚本,加上web.py做成一个web服务,使用起来还不错,今天来看的时候发现当时为了方便直接用web.py开发有点简陋,自己也好久没用flask写过东西了,打算用flask再写一遍,顺便复习下旧的知识,如果你是flask初学者,可以参考这个例子. 提示:博主默认你已经具备了Python的基础知识,已经能够很顺畅的编写一些Python脚本,否则接下来你会比较难看懂. 旧版 这里先给出旧版本的一些使用截图,

地瓜君的excel小课堂——行函数与列函数

大家用Excel处理数据的时候经常会用到一些查找引用函数,今天地瓜君就来和大家一起学习一下查找引用函数中的行函数与列函数啦. 导航:1.row函数 2.rows函数 3.column函数 4.columns函数 我们重点介绍这4个函数里最常见也是非常实用的函数row函数,其他3个函数不是最常用所以就稍微简单的介绍下啦 一.row函数(返回一个引用的行号) 语法:=row(reference) 说明:如果省略reference(参数),则默认返回row函数所在单元格的行号. 参数reference

概率--学习朴素贝叶斯分布

概率是一种基于事件发生可能性来描述未来趋势的数学工具.其本质就是通过过去已经发生的事情来推断未来事件,并且将这种推断放在一系列的公理化的数学空间当中进行考虑.例如,抛一枚均质硬币,正面向上的可能性多大?概率值是一个0-1之间的数字,用来衡量一个事件发生可能性的大小.概率值越接近于1,事件发生的可能性越大,概率值越接近于0,事件越不可能发生.天气预报员通常会使用像"明天80%的可能性会下雨"这样的术语来对降雨进行预测,这里70%或者0.7就是下雨的概率.在现实生活中,要么下雨,要么不下雨

Jeecg高级查询器

一.背景       对于用户来讲查询功能按易用性分三个层次: 1. 最简单查询操作是一个输入框,全文检索,如百度,后台实现技术使用搜索引擎,需要设计和建立索引,技术较为复杂,适用于文档和信息数据库检索,但是结果很难精确控制. 2. 其次是定义字段查询,很多企业信息系统大多用的是这种查询,针对模块特定字段的查询有针对性.使用门坎低,适用于企业内部信息管理系统模块定制. 3. 最后一种是专门针对数据模型灵活的查询编辑器,使用难度最高,但是查询结果可以灵活和精确的控制,适用于有一定IT知识并对数据相

【深度好文!】滑动操作的维度研究

提示:这篇文章讲解的比较深奥,需要静心阅读,泛读者慎看! 前言 在iOS交互模型的最底层,有一个“空间”的概念(具体可见ios空间模型), 而空间最基本的属性就是三个维度.滑动依存于屏幕这个二维环境,也可以从维度这个角度去思考.最常见的滑动例如ios里删除短信息的操作,这里的滑动是最 基础的,可以理解成一维的.被赋予了唯一功能的操作.但如果认为滑动就是这么简单,那可能忽略了滑动可以为设计带来的千变万化. 当滑动被赋予功能,并与界面(信息或控件)结合时,具有很强的可塑性,并可有效提升操作的易用性.

ElasticSearch 入门介绍

tags: 第三方 lucene [toc] 1. what Elastic Search(ES)是什么 全文检索和lucene 全文检索 优点:高效,准确,分词全文检索允许用户输入一些关键字,从数据层中查找到所需要的信息 全文检索和数据库"LIKE"语句相比,远比数据库的开销小,因为检索过程全部从通过检索文件完成,因此效率非常高. 在全文检索领域,用户输入的搜索信息叫做关键字,而全文检索系统把海量信息按照这些关 键字进行结构化处理,把文章打散成段落.文字,最后,按关键字对文章的数据进

学习笔记--Servlet技术

------------------------------------------------------------------------------------------------------------------------------------- //Servlet概述 一个servlet就是一个java类,并提供基于请求-响应模式的web服务. //创建Servlet 新建继承HttpServlet的类,覆盖init(), destroy(), service(HttpSe