目标检测之hough forest---霍夫森林(Hough Forest)目标检测算法

 Hough Forest目标检测一种比较时兴的目标检测算法,Juergen Gall在2009的CVPR上提出。

Hough Forest听上去像hough变换+Random Forest的结合体,其实,不完全是这样的。它更像是decision forest和regression forest的结合体再加上generalized hough transform:森林中每棵树即不是分类树也不是回归树,而是其中的每个节点可能为分类节点或者回归节点。分类节点最小化class-label uncertainty,而回归节点最小化offset uncertainty。然后输出2D的Hough Image(当然可以扩展到3D,4D),在这上面找到局部极值就是目标的参数(position, scale, aspect ration)。

与传统的目标检测器不同,训练样本是P={I,c,d}, I是目标的一个局部图像块(patch),c是它的类标签,d是它到目标中心的偏移(offset)矢量(2D);随机树生长的目的是使节点样本的类别和offset不纯度最小化,分别对应决策节点和回归节点。节点上的分裂准则采用了像素值比较的方法。最后叶子节点记录一些统计量:CL表示正样本比例,DL样本偏移的集合。另外,训练的时候作者也采用类似级联的方式,forest=5trees+5trees+5trees,即第一次5棵树生长完成后,一些分类比较困难的样本再用来训练下一批树。

检测阶段,从图像上提取patch,pass down through every tree in the forest,然后给2D hough image上位置为x的点投票。对图像进行dense sampling,最后输出hough image。

以下是我读论文时的一些标注。

http://www.pamitc.org/cvpr13/program.php

http://blog.csdn.net/gxf1027/article/details/8308655

时间: 2025-01-01 12:07:04

目标检测之hough forest---霍夫森林(Hough Forest)目标检测算法的相关文章

20、【opencv入门】霍夫变换:霍夫线变换,霍夫圆变换合辑

一.引言 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在.在许多应用场合中需要快速准确地检测出直线或者圆.其中一种非常有效的解决问题的方法是霍夫(Hough)变换,其为图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.最基本的霍夫变换是从黑白图像中检测直线(线段). 二.霍夫变换概述 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状

学习 opencv---(13)opencv霍夫变换:霍夫线变换,霍夫圆变换

在本篇文章中,我们将一起学习opencv中霍夫变换相关的知识点,以及了解opencv中实现霍夫变换的HoughLines,HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircles函数的使用方法. 先尝鲜一下其中一个示例程序的运行截图: 一.引言 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在.在许多应用场合中需要快速准确的检测出直线或者圆.其中一种非常有效的解决问题的方法是霍夫(Hough)变换,其为图像处理中从图像识别几何形状的基

贪心算法-霍夫曼编码

霍夫曼编码是一种无损数据压缩算法.在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度.期望值降低,从而达到无损压缩数据的目的.例如,在英文中,e的出现机率最高,而z的出现概率则最低.当利用霍夫曼编码对一篇英文进行压缩时,e极有可能用一个比特来表示,而z则可能花去25个比特(不是26).用普通的表示方法时,每个

霍夫线变换,霍夫圆变换

在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在.在许多应用场合中需要快速准确地检测出直线或者圆.其中一种非常有效的解决问题的方法是霍夫(Hough)变换,其为图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.最基本的霍夫变换是从黑白图像中检测直线(线段). 1.霍夫变换 ⑴霍夫变换概述 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形

opencv —— HoughLines、HoughLinesP 霍夫线变换(标准霍夫线变换、多尺度霍夫线变换、累积概率霍夫线变换)

霍夫线变换的原理 一条直线在图像二维空间可由两个变量表示,有以下两种情况: ① 在笛卡尔坐标系中:可由参数斜率和截距(k,b)表示. ② 在极坐标系中:可由参数极经和极角(r,θ)表示. 对于霍夫线变换,我们将采用第二种方式极坐标系来表示直线,因此直线的表达式可为: 化简便可得到: 对于(x0,y0),我们可以将通过这一点的所有直线统一定义为: 这就意味着每一对  代表一条通过点  的直线. 对于一个给定点   ,我们可以在直角坐标系中,绘出所有通过它的直线(θ 为 x 轴,r 为 y 轴).最

霍夫直线检测进行复杂环境的树干提取

霍夫直线检测进行复杂环境的树干提取 霍夫直线检测是常用的直线检测算法,原理比较简单. 我叙述一下我对霍夫直线检测算法的理解:将像素点在图像中的二维坐标,通过坐标变换转化为极坐标,然后通过比较每个点在极坐标下的角度值,如果角度值相同,则判定为同直线. 该算法有几个可调参数: C++: void HoughLinesP(InputArray image, OutputArray lines, double rho, double theta, int threshold, double minLin

霍夫直线检测算法进行树干提取

霍夫直线检测算法进行树干提取 霍夫直线检测是常用的直线检测算法,原理比较简单. 我叙述一下我对霍夫直线检测算法的理解:将像素点在图像中的二维坐标,通过坐标变换转化为极坐标,然后通过比较每个点在极坐标下的角度值,如果角度值相同,则判定为同直线. 该算法有几个可调参数: C++: void HoughLinesP(InputArray image, OutputArray lines, double rho, double theta, int threshold, double minLineLe

霍夫圆检测 opencv

进行霍夫圆变换中有一个API:HoughCircles(). 第五个参数为double类型的minDist(),为霍夫变换检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离.这个参数如果设置太小,多个相邻的圆可能被错误的检测成了一个重合的圆.反之,如果设置太大,某些圆就不能检测出来. 第七个参数,它越小,就越可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就更加接近完美的圆形了. 1 #include<opencv2/opencv.hpp> 2 3 usin

opencv 检测图像线条 霍夫线检测

1 # Writer : [email protected] 2 3 # Data : 2020.3.21 4 5 import cv2 as cv 6 7 import numpy as np 8 9 img = cv.imread('../paojie.jpg') 10 11 gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) 12 13 # 50,150 为二值化时的阈值 apertureSize为Sobel滤波器的大小 14 15 edges = cv.C