Random Fern

2024-02-14 20:50
文章标签 random fern

本文主要是介绍Random Fern,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘自http://blog.csdn.net/yang_xian521/article/details/7358078,最近看end to end scene text recognition,上面提到了随机蕨的内容,在网上搜索了一下,发现下面的介绍挺详实,在此分享一下:其实厥就是group的意思吧,和二叉树不同的是,厥不需要结构。ferns feature指组特征。具体应用的还需要进一步研究啊!!

之前看到的TLD代码中里机器学习的部分就是用的这个方法。不过TLD作者在论文中实现使用的是random forest,不过归到底,random forest和random ferns都是一种东西。

英文比较好的,推荐链接http://cvlab.epfl.ch/alumni/oezuysal/ferns.html,ferns方法的提出者在这里面介绍的已经很详细了。这个链接也是之前交流tld时一个网友提供的,感谢一下。

只想看中文的同志下面跟着我继续啃骨头吧,虽然我是明白了这个方法,但本人语言表述能力还有待加强啊,于是在网上搜到一篇母校的文章,以下基本摘抄自陈冰博士的paper。

ferns方法就是样本分类情况用ci,i = 1,2,。。。H表示,设fj,j = 1,2,。。。N为输入样本的二元特征集,则样本的所属类别为


式中,C表示类的随机变量,则有


设先验概率P(C)为均匀分布,(2)式分母部分与类别无关,则(1)简化为


这里的二元特征fj的值取决于样本中在分类器训练时随机生成的两像素位置dj1和dj2的灰度大小Idj1,Idj2比较的结果,即


由于fj的形式很简单,因此需要足够多的特征确保分类结果,但求解需要的储存量为H*2^N字节。为降低存储量,并保证fj之间具有足够的相关性,并假设不同组的二元特征之间相互独立,组内二元特征之间具有相关性,将这些组定义为ferns feature。则(3)式的条件概率近似为


(6)式的存储量只有M*2^S。

以上这些简单的公式都很好理解,我也很讨厌介绍东西的时候用很多公式,不过这些公式真的很简单,如果你看了这些还觉得理解的不深刻,去英文链接里看看那些图吧,会很轻松搞定的,最后还是惯例,附上ferns的代码,不过不是我写的啦,还是方法提出人的作品,老外真好,写的方法都敢拿出来和大家分享。http://cvlab.epfl.ch/software/ferns/index.php。比较遗憾的是,这个代码是在linux环境下编译的,不过肯定难不倒各位~

这篇关于Random Fern的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709556

相关文章

Numpy random.random()函数补充

np.random.random() np.random.random()的作用是生成指定形状的均匀分布的值为[0,1)的随机数 参数为size,也就是用于指定的形状大小 import numpy as npprint(np.random.random(size=(2, 2)))# [[0.19671797 0.85492315]# [0.99609539 0.66437246]]

Midjourney 随机风格 (Style Random),开启奇幻视觉之旅

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:       Midjourney 最近推出了 "Style Random"(随机风格),这项功能可以让我们使用独特的随机 sref 代码创建图像,从而每次都能获得不同的美感。通过对这些功能的探索和尝试,我发现了一些很棒的风格,我很高兴能与大家分享,这样可以节省大家的时间,不用自己动手测试。在本文中,我将展示十个M

【HDU】 4067 Random Maze 费用流

Random Maze Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1114    Accepted Submission(s): 387 Problem Description In the game “A C

python random和numpy random

numpy是python的一个数值计算库,可是有许多语法和python不兼容。 比如python的random.randint(low,high)使用方法是返回[low,high]之间的整数,官方文档: random.randint(a, b) Return a random integer N such that a <= N <= b. 注意是两边都是闭区间,但在numpy中,rand

取Random范围内的随机数

Random rand = new Random();        int m = rand.nextInt(); //int范围类的随机数        int n = rand.nextInt(100); //0-100范围内的随机数      包含0,不包含100.

NumPy(二):创建数组【生成固定范围的数组:arange、linspace】【生成0和1的数组:zeros()等】【从现有数组生成:array、asarray】【生成随机数组:np.random】

生成0和1的数组 np.ones()np.ones_like()从现有数组中生成 np.array – 深拷贝np.asarray – 浅拷贝 生成固定范围数组 np.linspace() nun – 生成等间隔的多少个 np.arange() step – 每间隔多少生成数据 np.logspace() 生成以10的N次幂的数据 生成随机数组 正态分布 里面需要关注的参数:均值:u

Redis的内存淘汰策略-allkeys-random

`allkeys-random` 策略简介 在 `allkeys-random` 策略下,当 Redis 的内存使用达到配置的上限(`maxmemory`)时,它会随机选择一个键进行删除,直到释放足够的内存。这个策略的核心特征是其简单性和低计算开销,因为它不需要跟踪每个键的使用频率或最近访问时间。 这种策略适用于以下场景: - 不关心具体删除哪个键的应用场景。 - 数据访问模式不固定,所有

基于Python的机器学习系列(14):随机森林(Random Forests)

简介         在上一节中,我们探讨了Bagging方法,并了解到通过构建多个树模型来减少方差是有效的。然而,Bagging方法中树与树之间仍然可能存在一定的相关性,降低了方差减少的效果。为了解决这个问题,我们引入了随机森林(Random Forests),这是一种基于Bagging的增强技术,通过在每个树的每个分割点上随机选择特征来进一步减少树之间的相关性。 1. Out of Bag

数据切分的艺术:使用PyTorch的torch.utils.data.random_split精粹指南

数据切分的艺术:使用PyTorch的torch.utils.data.random_split精粹指南 在机器学习项目中,合理地分割数据集至关重,它不仅关系到模型训练的有效性,还直接影响到模型的泛化能力。PyTorch提供了一个强大的工具torch.utils.data.random_split,它能够以随机的方式将数据集分割成若干个子集。本文将详细介绍如何使用这一工具进行数据集的随机分割。

Random类和String类

Random类: java.util.Random类 生成随机数: 上面的Math类的random()方法也可以产生随机数,其实Math类的random()方法底层就是用Random类实现的。 Random rand = new Random(); //创建一个Random对象 获取随机数的方法: int nextInt(); 返回下一个随机数 int nextInt(