首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libsvm .多类分类的训练数据格式

libsvm .多类分类的训练数据格式
EN

Stack Overflow用户
提问于 2014-07-31 10:47:06
回答 1查看 1.1K关注 0票数 1

我做了禁止交通标志在OpenCV的检测。现在,我想认出他们。例如,我需要区分速度限制20公里/小时和速度限制30公里/小时当我发现他们。

为了节省时间,我决定使用德国交通标志识别(GTSRB)基准的预先计算的特征进行分类训练。在GTSRB中有12种不同的禁止交通标志类,其余为类。对于每个训练图像,HOG、HAAR和Hue直方图特征被计算并存储在不同的文件夹中。我正在使用预先计算的HOG特征,它对每个训练图像的向量维数为1568。

对于LIBSVM格式的训练数据矩阵的编制有两种思路。我不确定应该使用哪种格式来进行多类分类。我已经编写了C++程序,将不同文件中的特性转换为LIBSVM格式。

问题1:下列哪一种方法是正确的识别禁止性交通标志?

问题2,:我需要实时地看到被识别的信号。然而,libsvm中的例子只显示了精度水平。libsvm是正确的选择,还是应该在运行我的交通标志检测程序时在OpenCV中创建培训数据矩阵?

IDEA 1:将+1标签分配给所有禁止类,-1分配给其他类

代码语言:javascript
复制
 +1 1:0.32 2:0.27 3: 0.01 ... 1568:0.04 //class 1 - speed limit 20
 .                                      //features of training images
 .                                      
 .                                     
 +1 1:0.44 2:0.12 3: 0.23 ... 1568:0.03 //class 2 - speed limit 30
 .                                      //features of training images
 .                       
 .               
 +1 1:0.32 2:0.27 3: 0.01 ... 1568:0.04 //class 12 - speed limit 80
 .                                      //features of training images
 . 
 .
 -1 1:0.32 2:0.27 3: 0.01 ... 1568:0.04 //other classes
 .                                     //features of training images
 . 
 .

理念2:为每个参展性类分配12个不同的标签,为所有其他类分配-1。

代码语言:javascript
复制
 +1 1:0.32 2:0.27 3: 0.01 ... 1568:0.04 //class 1 - speed limit 20
 .                                      //features of training images
 .                                      
 .                                     
 +2 1:0.44 2:0.12 3: 0.23 ... 1568:0.03 //class 2 - speed limit 30
 .                                      //features of training images
 .                       
 .               
 +12 1:0.32 2:0.27 3: 0.01 ... 1568:0.04 //class 12 - speed limit 80
 .                                       //features of training images
 . 
 .
 -1  1:0.65 2:0.72 3: 0.12 ... 1568:0.12 //all other classes 
 .                                       //features of training images
 . 
 .

提前谢谢你,

EN

回答 1

Stack Overflow用户

发布于 2014-07-31 11:21:03

如果Q1有效的话,您应该更喜欢主意1。原因是它所涉及的培训要少得多。如果有N类,对于多类分类,LIBSVM内部训练N(N1)/2分类器。

因此,如果N=2 (idea 1) LIBSVM训练一个分类器。但如果N=13 (idea 2),LIBSVM会训练出78个分类器。这并不意味着它会慢78倍,尽管,它变得复杂。

Q2不能回答这个问题,因为它取决于您没有提到的内容,而且这在某种程度上是一个意见问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25056948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档