一 : 实时人脸检测(Real-TimeFaceDetection)
最近需要用到人脸检测,于是找了篇引用广泛的论文实现了一下:Robust Real-TimeFace Detection。实现的过程主要有三个步骤:人脸数据准备,算法实现,算法调试。 人脸数据集的准备:网上有很多免费的和付费的。比如这里有个网页介绍了一些常用的人脸数据库。我这里只是人脸检测(不是人脸识别),只要有人脸就可以了,所以我下载了几个数据集,然后把它们混在一起用(后面也因此产生了一些问题)。 算法大意很简单:可以把它看作是一个二分类的问题。给定一张图片后,程序会用一个矩形框扫描整张图片,然后每次判断当前矩形框是不是人脸。方法的核心在于扫描框的分类。这里采用了AdaBoost的学习方法。AdaBoost的思想是,把一些简单的弱分类器组合起来得到一个强大的分类器。学习过程中,每个弱分类器会根据数据学到一个权重,一般由它的分类误差来确定,误差越小,权重越大。数据也有权重,根据每次弱分类器的分类结果来定,比如当前分错的数据权重需要增加。 因为AdaBoost由很多弱分类器构成,理论上弱分类器越多,分类能力越强,但是计算量也更大。由于实时性的要求,这里采用了分层的思想:训练出多层的AdaBoost分类器,层次靠前的分类器包含的弱分类器数量少一些。这是一个树结构。每层的AdaBoost分类器会过滤掉非人脸数据,只有完全通过的数据才会判定为人脸。 大致步骤理解起来很容易,实现过程中也会遇到很多参数需要调节,下面就我遇到的一些问题做一些讨论: 训练过程中,我觉得数据和Feature的选择是很重要的。这里用的HaarFeature,很简单,同样分类能力也是受限的,比如人脸的姿态,光照影响。要提升分类能力,一方面可以在数据上做文章,可以建立更多类型的数据集,比如正面人脸集,侧面人脸集,各种不同光照下的数据集。这么做局限性很大。另一方面可以设计出更好的Feature,或者是学习出更好的Feature(FeatureLearning)。最后,这个算法实现的源代码在https://github.com/liguocn/MagicLib里的RealTimeFaceDetection.h/.cpp里面。下面贴上一个结果:二 : 用MRTG在IIS 6.0上实现入侵检测功能
MRTG(Multi Router Traffic Grapher)是一个跨平台的监控网络链路流量负载的工具软件,目前它可以运行在大多数Unix系统和Windows NT之上。它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给用户,以非常直观的形式显示流量负载。61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1