机器学习-SVM特征融合技术
在我的期末论文中,我试图通过结合颜色和深度信息来构建 3D 人脸识别系统。我所做的第一步是使用迭代最近点算法将数据头重新对齐到给定的模型头。对于检测步骤,我正在考虑使用 libsvm。但我不明白如何将深度和颜色信息组合到一个特征向量?它们是相关信息(每个点由颜色(RGB)、深度信息和扫描质量组成)..您建议做什么?像权重之类的东西?
编辑: 昨晚我读了一篇关于 SURF/SIFT 功能的文章,我想使用它们!可以吗?这个概念如下:从彩色图像和深度图像(范围图像)中提取这些特征,使用每个特征作为支持向量机的单个特征向量?
for my final thesis i am trying to build up an 3d face recognition system by combining color and depth information. the first step i did, is to realign the data-head to an given model-head using the iterative closest point algorithm. for the detection step i was thinking about using the libsvm. but i dont understand how to combine the depth and the color information to one feature vector? they are dependent information (each point consist of color (RGB), depth information and also scan quality).. what do you suggest to do? something like weighting?
edit:
last night i read an article about SURF/SIFT features i would like to use them! could it work? the concept would be the following: extracting this features out of the color image and the depth image (range image), using each feature as a single feature vector for the svm?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
连接确实是可能的。然而,当您从事 3D 人脸识别工作时,您应该有一些关于如何进行的策略。使用“直接”方法很难识别面部的旋转和平移。
您应该决定是否尝试对整个面部或子特征进行检测。您可以尝试通过查找一些核心特征(眼睛、鼻子等)来检测旋转。
另外,请记住,SVM 本质上是二元的(即它们在两个类之间分开)。根据您的具体应用程序,您很可能必须采用一些多类别策略(一对多或一对多)。
我建议做一些文献研究,看看其他人如何解决这个问题(谷歌搜索将是一个好的开始)。
Concatenation is indeed a possibility. However, as you are working on 3d face recognition you should have some strategy as to how you go about it. Rotation and translation of faces will be hard to recognize using a "straightforward" approach.
You should decide whether you attempt to perform a detection of the face as a whole, or of sub-features. You could attempt to detect rotation by finding some core features (eyes, nose, etc).
Also, remember that SVMs are inherently binary (i.e. they separate between two classes). Depending on your exact application you will very likely have to employ some multi-class strategy (One-against-all or One-against-many).
I would recommend doing some literature research to see how others have attacked the problem (a google search will be a good start).
听起来很简单,但您可以简单地将两个向量连接成一个。许多研究人员都这样做。
It sounds simple, but you can simply concatenate the two vectors into one. Many researchers do this.
您得出的结论是一个重要的开放性问题。是的,有一些方法可以处理它,正如 Eamorr 在这里提到的。例如,您可以连接并执行 PCA(或某种非线性降维方法)。但考虑到 PCA 在特征数量上花费 O(n^3) 时间,很难捍卫这样做的实用性。对于可能具有数千个特征的视觉数据来说,仅此一点可能是不合理的。
What you arrived at is an important open problem. Yes, there are some ways to handle it, as mentioned here by Eamorr. For example you can concatenate and do PCA (or some non linear dimensionality reduction method). But it is kind of hard to defend the practicality of doing so, considering that PCA takes O(n^3) time in the number of features. This alone might be unreasonable for data in vision that may have thousands of features.
正如其他人所提到的,最简单的方法是将两组功能简单地组合成一组。
SVM 的特征是最大边缘超平面的法线,其中其组件指定特征的权重/重要性,使得绝对值越高对决策函数的影响越大。因此,SVM 为每个特征单独分配权重。
为了使其发挥作用,显然您必须将所有属性标准化为具有相同的比例(例如将所有特征转换为 [-1,1] 或 [0,1] 范围内)
As mentioned by others, the easiest approach is to simply combine the two sets of features into one.
SVM is characterized by the normal to the maximum-margin hyperplane, where its components specify the weights/importance of the features, such that higher absolute values have a larger impact on the decision function. Thus SVM assigns weights to each feature all on its own.
In order for this to work, obviously you would have to normalize all the attributes to have the same scale (say transform all features to be in the range [-1,1] or [0,1])