Rapid-Object-Detection-using-a-Boosted-cascade-of-simple-features

简介

文章是2001年发表的,是一篇很经典的Object Detection的文章,而文章的亮点就在于使用了”Integral Image“计算Haar-like特征,从而加速了计算;此外,文章提出利用级联的方式分类,将很多非脸特征在前面剔除了,减少了大量的计算。文章采用Adaboost训练弱分类器组成强分类器,使得分类精度也很不错,而最大的两点就是其速度在当时也是非常快的。

Haar-like Features

文章使用的haar特征是下面四种,也就是白色区域的像素值与黑色区域像素值之差。其中,C图和D图先分别把黑色、白色区域像素值相加,然后相减。文章提到,使用24*24的滑窗,得到的特征数量超过180,000。

Integral Image

其实理解起来很简单,就是计算某个矩形区域内的像素值的和,比如下面这个图,我们要计算D区域的像素值的和,那我们就可以用s4(表示4点之前的所有像素和,后面一样)-s2-s3+s1计算得到,这样又什么好处呢?减少重复计算。比如算上图中的C类型的特征时,本来要算10点的求和值,但是由于有四个点时重用点,所以只需要算8点。可以利用动态规划全部算完,空间换时间的算法。

Adaboost 算法

”三个臭皮匠顶个诸葛亮“,我理解的Adaboost算法有两个很重要的点,是样本的权重,另一个是分类器的权重,Adaboost算法做的就是先给每个样本分配一个平均权重(样本概率分布),然后根据每个特征训练专门识别这个特征的分类器,这些分类器都是若分类器,但是对某一特征的分类能力很强,但是训练过程中肯定也会出现分错的样本,这时候我们就把分错的样本的权重增加,把分对的分类器的权重增加,进行迭代,前者是为了更好的训练错误率大的样本,后者是为了提高分类器的准确率。然后把弱分类器根据权重线性相加,组合起来就是一个强分类器,我们最终根据强分类器的计算结果来进行分类。

算法流程

本文应用

Attentional Cascade

我理解的就是在最前面放一些能够明显区别非脸特征的分类器,这样如果不是脸部特征,后面的计算就可以不用计算了,直接下一个window。

Learning Results

前两张图是通过adaboost得到的分类器中权重最大的两个特征,按照我的理解,这两个特征在原图中的反映就是人的眼部的亮度和脸部的亮度不同,以及人的两眼之间的亮度与中间鼻梁部分的亮度不同。

链接:论文原文

[论文理解] Rapid-Object-Detection-using-a-Boosted-cascade-of-simple-features的更多相关文章

  1. Rapid Object Detection using a Boosted Cascade of Simple Features 部分翻译

    Rapid ObjectDetection using a Boosted Cascade of Simple Features 使用简单特征级联分类器的快速目标检测 注:部分翻译不准处以红色字体给出 ...

  2. Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻译 及 matlab实现(见文末链接)

    ACCEPTED CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001 Rapid Object Detection using a B ...

  3. 读论文系列:Object Detection CVPR2016 YOLO

    CVPR2016: You Only Look Once:Unified, Real-Time Object Detection 转载请注明作者:梦里茶 YOLO,You Only Look Once ...

  4. 读论文系列:Object Detection NIPS2015 Faster RCNN

    转载请注明作者:梦里茶 Faster RCNN在Fast RCNN上更进一步,将Region Proposal也用神经网络来做,如果说Fast RCNN的最大贡献是ROI pooling layer和 ...

  5. 读论文系列:Object Detection ICCV2015 Fast RCNN

    Fast RCNN是对RCNN的性能优化版本,在VGG16上,Fast R-CNN训练速度是RCNN的9倍, 测试速度是RCNN213倍:训练速度是SPP-net的3倍,测试速度是SPP-net的3倍 ...

  6. 读论文系列:Object Detection SPP-net

    本文为您解读SPP-net: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Motivat ...

  7. 读论文系列:Object Detection ECCV2016 SSD

    转载请注明作者:梦里茶 Single Shot MultiBox Detector Introduction 一句话概括:SSD就是关于类别的多尺度RPN网络 基本思路: 基础网络后接多层featur ...

  8. Object Detection: Face Detection using Haar Cascades

    目录   利用基于Haar特征的级联分类器实现人脸检测:官方教程 目标 学习基于Haar特征的级联分类器(Cascade Callifiers)实现人脸检测: 扩展到人眼检测: 基础知识 Paul V ...

  9. 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection

    论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...

  10. 『计算机视觉』R-FCN:Object Detection via Region-based Fully Convolutional Networks

    一.网络介绍 参考文章:R-FCN详解 论文地址:Object Detection via Region-based Fully Convolutional Networks R-FCN是Faster ...

随机推荐

  1. POJ 3255 Roadblocks (次短路)

    题意:给定一个图,求一条1-n的次短路. 析:次短路就是最短路再长一点呗,我们可以和求最短路一样,再多维护一个数组,来记录次短路. 代码如下: #pragma comment(linker, &quo ...

  2. ZOJ 1586 QS Network Kruskal求最小生成树

    QS Network Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the ...

  3. 求斐波那契数列第n位的几种实现方式及性能对比(c#语言)

    在每一种编程语言里,斐波那契数列的计算方式都是一个经典的话题.它可能有很多种计算方式,例如:递归.迭代.数学公式.哪种算法最容易理解,哪种算法是性能最好的呢? 这里给大家分享一下我对它的研究和总结:下 ...

  4. MATLAB实现回归分析

    下面是一道例题

  5. Python学习笔记(正则表达式)

    \b - 表示以什么开头或结尾 \d - 匹配数字 \w - 匹配字母或数字或下划线或汉字(我试验下了,发现3.x版本可以匹配汉字,但2.x版本不可以) \s - 匹配任意的空白符 ^ - 匹配字符串 ...

  6. windows 10 删除库后自动恢复的解决方法

    目录 什么是windows 库? 手动删除不行吗? 如何正确的"删除"? title: windows 10 删除库后自动恢复的解决方法 date: 2019-06-09 15:4 ...

  7. 理解SPI

    SPI 全称为 Service Provider Interface,是一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在运行时, ...

  8. C 语言实例 - 输出九九乘法口诀表

    C 语言实例 - 输出九九乘法口诀表 使用嵌套 for 循环输出九九乘法口诀表. 实例 #include<stdio.h> int main(){ //外层循环变量,控制行 ; //内层循 ...

  9. null is not an object (evaluating 'Picker._init')

    安装完react-native-picker后,init出现报错,其实是原生配置还没完全生效,重启项目就可以了

  10. CF 1215解题报告

    T1 偶数输出n/2 奇数输出(n-1)/2即可 T2 判断是不是回文 不是直接输出子串 是回文继续判断 如果他前(len+1)/2内没有相同 输出-1 其他的 交换不同字符,输出子串 T3 贪心+二 ...