基于人体部件检测子的行人检测

基于人体部件检测子的行人检测

edgelet feature

body parts

human detection

Jointly likelihood function


读“B.Wu, R. Nevatia. Detection of Multiple,Partially Occluded Humans in a Single Image by Bayesian Combination of Edgelet Part Detectors[C], ICCV,2005.” 笔记



论文主要贡献点

  • 提出一种能够很好刻画非刚体目标轮廓的特征算子,小边特征。
  • 该论文中方法将人体分为若干部件分别检测,能够处理人体的部分遮挡问题。
  • 在之前的人体部件检测方法中,对于部件检测的结果的combine方式往往都是针对于单个个体的,而没有考虑到整体的分布。因此该论文中对人体部件检测到的结果构建Joint Likelihood function,能够更好的降低误检率和虚警率。


小边特征

小边特征算子是由较短的线段或者曲线构成的,比如以下几种小边特征

edgelet.png

使用表示小边特征算子边缘点的位置和正交向量的集合,是小边的长度。假设小边特征算子的区域面积为,然后对于待提取特征的sub-window,在每一个像素点上计算由该像素点起始地区域与小边特征算子的相似度,作为该像素点对应于该特征算子的特征,也称为图像与小边特征在该像素点的亲和度(affinity)。

假设图像的边缘图像为,表示边缘点对应的正交向量集合。那么图像在点处和小边特征算子的亲和度为:

$$
S(p)=\frac{1}{l}\sum_{j=1}^lM(p+u_j)||.
$$

这样大小为的sub-window对应每一个小边特征算子都能提取到个特征,图像的边缘图像可以使用的Sobel算子得到。

由于这里的小边特征在文中使用时是用来构建弱分类器,因此为了速度,没必要计算的太准确,所以上式中正交向量的内积就可以近似得到。

将方向向量在量化为6个区间,计算两个方向向量所在区间间隔,按如下近似方向向量内积:

分别表示边缘图像和小边点对应的量化后的值,那么亲和度可如下计算:

文中使用的小边特征算子包括4-12个像素点,有线段,1/2圆周,1/4圆周,1/8圆周,以及这些小边与其对称小边组成的对称对。在的窗口中提取了维特征,虽然没有具体说选择的小边特征算子是什么。个人认为在使用小边特征时应该先构造一定量的小边特征算子,然后再提取小边特征。



部件检测子

文中将人体分成3个部件:Head-shoulder,Torso,Legs,然后加上整体Full-body构造了四个检测器。每个检测器都是使用nested cascade detector(参见嵌入级联检测器)。

人体部件的定义图示:

bodyparts.png


多人联合似然函数

首先定义状态变量,是真实的行人个数,表示第个行人的状态,而每个行人的状态使用位置和大小来刻画,即。这样所谓的状态变量记录的就是真实行人的位置和大小信息。

然后定义观测变量是检测到的行人个数,表示第个人检测到的状态,同样使用位置和大小刻画。

现在检测到观测变量,我们希望推导出真实的状态变量,可以使用最大化后验概率(MAP)计算。

是一个集合,我们希望的计算可以使用概率的乘法公式,可是中的个体并不能保证是相互独立的,所以不能直接对个体进行运算。

现在通过部件检测子,将行人个体拆分成部件,那么状态变量可以表示为,其中分别表示部件的类型,类似的观测变量可以直接定义为:,其中分别对应不同部件检测到的个数。

将人体拆分成部件之后可以去掉遮挡的部件,使剩下的部件尽可能的相互独立,然后就可以使用概率的乘法公式了。

假设

  1. 所有的行人行走在一个平面上
  2. 相机拍摄角度是俯视

根据假设,我们可以认为如果一个行人中心点的y坐标越小,其深度值越高,即离摄像头越远(这里图像的坐标是从左上角开始的)。

3Dassumption.png

于是通过目标区域的重叠程度可以判断是否发生重叠,发生重叠之后可以通过深度信息判定哪个部件被遮挡,进而将被遮挡的部件去除。去除了遮挡部件的状态变量可以表示为,其中表示部件中的第个部件,表示没被遮挡的部件的个数。

这样,公式(1)可以写成

那么每个部件下的条件概率该如何计算呢?以部件为例,表示真实的部件集合有现在检测到集合的概率。这相当于一个检测问题,包括正确检测和错误检测。错误检测包括误检和漏检,而正确检测又需要考虑和对应真实部件的匹配的概率问题。

其中分别表示正确检测(success detected)、误检(false alarm)、漏检(false negative),分别表示对应的部件集合。分别表示误检率和漏检率,则表示检测正确率,而表示匹配的概率,就是匹配的状态,假设服从高斯分布,而定义如下:

分别表示在验证集中误检样本个数,正确检测样本个数以及真实正样本的个数。是归一化因子,使,反映的是正确检测和错误检测的相对重要性。

现在还有一个问题,如何确定匹配对?

文中使用的是最小距离匹配,计算检测部件和真实部件的距离举着,然后寻找最小的距离,将对应的配对,此时应该有个距离最大阈值,超过这个距离被认为没找到匹配,于是在中找到所有的匹配点,也就确定了和对应的



行人检测方法主要过程

  1. 分别对各个部件训练检测子

    • 对训练集提取小边特征
    • 使用Real AdaBoost训练强分类器
    • 使用强分类器训练nested cascade detector
  2. 使用各个部件的验证集初始化参数
    • 匹配检测部件和真实部件
    • 统计正确检测集,误检集合漏检集
    • 由匹配对间的距离学习高斯分布
  3. 使用4种检测子扫描待检测图像,检测到四种部件的集合
  4. 检测的结果初始化为真实行人的状态,然后对这些行人拆分成部件(按部件的定义),根据坐标去除遮挡部件,获得
  5. 将部件检测子检测到的结果与初始化的状态进行匹配
  6. 循环 i=1 to m (m是检测到的行人个数)
    • 计算联合似然函数值 以及
    • 如果,则令
  7. 输出作为最终的检测结果


补充与分析

  • 目标遮挡: 如果检测到的一个部件的重合区域占了该部件的,则认为该部件被遮挡
  • 由于摄像头的视角是俯视的,所以如果一个行人被捕捉到,最起码其Head-Shoulder部件一定能被检测到,所以在搜索过程的初始化阶段,选择作为初始状态
  • 该算法可以认为是使用检测行人目标,然后通过使四个部件检测子的结果得到联合似然函数值最大去剔除其中错误检测的部分

时间: 2024-07-29 19:51:56

基于人体部件检测子的行人检测的相关文章

基于人体部件小边特征的多行人检测和跟踪算法

基于人体部件小边特征的多行人检测和跟踪算法 detection tracking edgelet feature multiple occluded human Bayesian combination 读"B. Wu, R. Nevatia. Detection and tracking of multiple, partially occluded humans by Bayesian combination of edgelet based part detectors[J],IJCV,7

行人检测2(行人检测的发展历史)

行人检测在计算机视觉领域的许多应用中起着至关重要的作用,例如视频监控.汽车驾驶员辅助系统.人体的运动捕捉系统等.图像的行人检测方法可以分成两大类:轮廓匹配和表观特征.表观特征又被定义成图像特征空间(也叫做描述算子),它可以分为整体法.局部法.特征点对法. 在整体法中,Papageorgiou和Poggio[1]提出了Haar小波(HWs)特征,并用SVM训练行人,其中包括了行人的正面和背面.Viola和Jones[2, 3]采用级联AdaBoost学习算法(即选择超过一定阈值的弱分类器组成强分类

行人检测3(行人检测最新论文简介)

序号 文章简介 论文 出处 0 2012年PAMI登的行人检测的综述性文章: pedestrian detection an evaluation of the state of the art 作者:Piotr Dollar 文中对比了很多最新的行人检测的算法.这篇论文简称为PAMI2012 pedestrian detection an evaluation of the state of the art   1 PAMI2012综述文章中,排名第一的算法: New Features and

行人检测

最近一直在看行人检测的论文,对目前的行人检测做大概的介绍. 行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡. 1.行人检测的现状(大概可以分为两类) (1).基于背景建模:利用背景建模方法,提取出前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人: 背景建模目前主要存在的问题:(背景建模的方法总结可以

行人检测(Pedestrian Detection)资源整理

一.论文 综述类的文章: [1] D. Geronimo, and A. M.Lopez. Vision-based Pedestrian Protection Systems for Intelligent Vehicles, BOOK, 2014. [2] P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the state of the art [J].IEEE Transactions

行人检测1(总结)

最近一直在看行人检测的论文,对目前的行人检测做大概的介绍. 行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,个人觉得主要还是在性能和速度方面还不能达到一个权衡. 1.行人检测的现状(大概可以分为两类) (1).基于背景建模:利用背景建模方法,提取出前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人: 背景建模目前主要存在的问题:(背景建模的方法总结可以

【OpenCV】基于HOG与SVM的行人检测学习

最近听了关于HOG与SVM的报告,比较深刻的学习了算法原理与实现方式.这里根据一些资料作下总结,方便日后拾起: A.方向梯度直方图(HOG,Histogram of Gradient) 将图像依次划分为检测窗口(window).块(block).胞元(cell)3个层次 大体流程: 逐像素计算方向梯度: 对cell中的像素根据梯度划分区间,给出统计直方图: 对于每个block中重叠的cell进行对比度归一化: 把所有直方图向量组成HOG特征向量. HOG特征向量: OpenCV对于HOG描述子(

基于HOG的简单行人检测计数

关于HOG的认识基本是参考Dalal的Histograms of Oriented Gradients for Human Detection这篇论文得来的,并且参照了网上的静止图像上的HOG行人检测代码改成了基础的视频上的行人检测. HOG特征提取的基本思想: 局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置. 数据集:INRIA 我自己也下载了INRIA数据集然后进行简单的训练,样本集数较少时正确率简直惨不忍睹,后来加入难例后正确率稍好一点,

基于虚拟数据的行人检测研究(Recognition in-the-Tail:Training Detectors for Unusual Pedestrians with Synthetic Imposters)

Paper Link : https://arxiv.org/pdf/1703.06283 Github: https://github.com/huangshiyu13/RPNplus 摘要:这篇paper探索了如何用虚拟数据或者叫做人工生成的数据对行人检测进行辅助的方式.通过Unity3D产生虚拟数据,然后用RPN进行训练,再在真是数据上进行finetue,能提高检测器的鲁棒性.