隐式形状模型

本文译自PCL官网教程,原文链接如下
Implicit Shape Model

隐式形状模型
在这个教程中我们将学习如何使用在 pcl::ism::ImplicitShapeModel 类中实现的隐式形状模型算法.这个算法在Jan Knopp, Mukta Prasad, Geert Willems, Radu Timofte, and Luc Van Gool撰写的文章”Hough Transforms and 3D SURF for robust three dimensional(鲁棒三维中的霍夫变换和3D SURF(加速稳健特征?),这些名词实在难翻,懂就行,谁知道准确名词的告诉我一下.)”中阐述.这个算法是广义霍夫变换(generalized Hough transform)和BOF特征袋方法(the Bag of Features approach)的结合,目的如下:已有一些一直分类的不同物体的训练集点云,算法计算出一个特定的模型,这个模型接下来会被用于预测一个在给定点云中的物体的中心,给定点云不是训练集的一部分(译者注:也就是说先用一些训练集训练算法,然后用一个点云来测试,算法会找到这个点云中的某个物体的中心,应该是求出这个物体的中心点,运行后面的例程就知道了).

Theoretical Primer(理论基础)
(博主数学差,译错了的话…..你来打我啊嘻嘻)
这个算法由两部分(因为后面还有小step,所以step翻译成部分…你理解就好)组成,第一部分就是训练,第二部分就是在点云中识别不在训练集中的物体(你看后面给的例子,把两个猫的点云打开看一看,这个算法给出了测试点云中的猫的中心点,测试点云中的猫和训练集中的猫姿态不一样,大概明白意思了吧,其实我自己都还没怎么明白~~囧…).让我们来看看第一步是怎么训练的吧,第一步包含了六个步骤:
1.首先完成关键点查找.在点云库所给的实现中,这不过就是一个训练点云的简化.在这一步,所有点云都会通过体素栅格化(the voxel grid approach 我也不知道这翻译对不对,这个名词自己查去吧…)方法进行删简,留下来的就被视为关键点.(小本本拿出来记笔记,体素栅格化得出关键点)
2.对每一个关键点计算(原文estimate估计,估量,估算?)其特征(原文features,不止一个特征…略废话).在下面的例子中我们使用FPFH(Fast Point Features Histogram 快速点特征直方图)估计法.(小本本,第二步,快速点特征直方图法计算点特征)
3.所有的特征在k-means(K-means聚类算法,具体自己百度)算法的帮助下被归类(cluster)以构建一个视觉(或几何)关键词(visual (or geometric) words,这里翻译可能有错,不知道作者这里是用比喻的手法,还是这里这个可视化单词是一个术语)的字典(dictionary,可能是机器学习的一个术语?还不懂,查了下,是BOF视觉袋方法中的一个名词,可以查一下).(第三步,K-means算法构建字典,小本本记)
4.对每一个单独的实例(instance 我想这里说的可能是每个点的意思),计算出其朝向中心的方向–从关键点到所给的大量点云的中心.(四,计算各点到中心的方向)
5.对每一个视觉关键词,其统计权重用以下公式计算
Wst(ci,vj)= W s t ( c i , v j ) =

1nvw(ci)1nvot(vj)nvot(ci,vj)nftr(ci)ckCnvot(ck,vj)nftr(ck)(487) (487) 1 n v w ( c i ) 1 n v o t ( v j ) n v o t ( c i , v j ) n f t r ( c i ) ∑ c k ∈ C n v o t ( c k , v j ) n f t r ( c k )

这个公式我也不解释了,因为我也还没咋看懂,翻译了误导人.直接把原文贴在这里吧
The statistical weight Wst(ci,vj) W s t ( c i , v j ) weights all the votes cast by visual word vj v j for class ci c i .
Here nvot(vj) n v o t ( v j ) is the total number of votes from visual word vj v j ,
nvw(ci) n v w ( c i ) is the number of visual words that vote for class ci c i ,
nftr(ci) n f t r ( c i ) is the number of features from which ci c i was learned.
C C is the set of all classes.
6.对每一个关键点,其学习权重(the learned weight)按如下公式计算
这里写图片描述
Authors of the article define λij as the vote cast by a particular instance of visual word vj v j on a particular training shape of class ci c i ; that is, λij λ i j records the distance of the particular instance of visual word vj v j to the center of the training shape on which it was found. Here A A is the set of all features associated with word vjon a shape of class ci c i . The recommend value for σ σ is 10% of the shape size. Function f is simply a median. da(λij) d a ( λ i j ) is the Euclidean distance between voted and actual center.
(上面的等我看懂了这两个公式再来翻)
在训练处理完成之后获得了训练模型(权重,方向等等),就开始进行对象搜索(或者说识别),由以下4个步骤组成:
1.探测关键点
2.对点云的每个关键点进行特征计算
3.对每一个特征搜索构造好的字典中最近的视觉关键字(那就是一个簇)
4.对每一个特征
1)对从训练模型中每一个视觉关键字的每一个实例(which casts a vote for the class of interest),Add vote with the corresponding direction and vote power computed by the formula
5.之前的步骤给了我们一个指向期望中心的方向集和每一个票的权重.为了得到一个和中心想契合的点.这些投票需要被进行分析.为了达到这个目的,算法使用了非极大值抑制法(non-maxima suppression approach),用户只需相关对象的半径,剩下的就交给ISMVoteList::findStrongestPeaks()这个方法来完成吧.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值