Java 基于SURF检测器的SVM分类器

Java 基于SURF检测器的SVM分类器,java,python,opencv,machine-learning,computer-vision,Java,Python,Opencv,Machine Learning,Computer Vision,我是一名大学生,显然我是机器学习的新手,所以请容忍我 我正在实现一个Java应用程序,它将识别和分类道路/交通标志,我的主要问题是使用SURF描述符创建和训练SVM 我读了很多书,遇到了很多不同的事情,当谈到SVM时,我变得更加困惑,但我会尝试澄清我所理解的 首先:我知道我必须有一个数据集,其中包括Pos图像(包含我的对象的图像)和Neg图像(不包含我的对象的图像)来训练SVM。由于Java中缺少文档,我尝试在python中查看它是如何完成的,并遇到了这段代码 import numpy as n

我是一名大学生,显然我是机器学习的新手,所以请容忍我

我正在实现一个
Java
应用程序,它将识别和分类
道路/交通标志
,我的主要问题是使用
SURF
描述符创建和训练
SVM

我读了很多书,遇到了很多不同的事情,当谈到
SVM
时,我变得更加困惑,但我会尝试澄清我所理解的

首先:我知道我必须有一个数据集,其中包括
Pos
图像(包含我的对象的图像)和
Neg
图像(不包含我的对象的图像)来训练
SVM
。由于
Java
中缺少文档,我尝试在
python
中查看它是如何完成的,并遇到了这段代码

import numpy as np
dataset = np.loadtxt('./datasetExample.csv', delimiter=",")
就这么简单,
CSV
在这里做什么?数据集的图像在哪里?我知道数据必须用数字表示,比如在
CSV
文件中,但它们来自何处以及与
SVM
有什么关系

第二:我发现在几乎所有的资源中,
SVM
都可以通过两种方法来训练
HOG描述符
BagOfWords
,但没有找到
SURF描述符
方法(实际上我不确定这是否可行……但我的博士说可以做到)

第三:由于我正在对交通标志进行分类,我需要有不止一个类别(例如,一个用于警告标志,一个用于监管标志等),每个类别当然都有子类别,如
限速标志中的
它包括不同类型的标志。我偶然发现smth叫做
多类SVM
,我真的不知道那是什么

目前,我使用此代码从给定图像中提取了
SURF描述符

   Mat objectImage = Highgui.imread(signObject, Highgui.CV_LOAD_IMAGE_COLOR);
   featureDetector.detect(objectImage, objectKeyPoints);
   descriptorExtractor.compute(objectImage, objectKeyPoints, objectDescriptors);
   datasetObjImage.add(objectImage);
   datasetKeyPoints.add(objectKeyPoints);
   datasetDescriptors.add(objectDescriptors);
我计划做的是遍历数据集的所有图像,提取它们的描述符特征来训练
SVM
,但我检查了它们,因为我发现数据集实际上根本不包含图像

因此,请允许我提供任何形式的帮助或描述性步骤,以实现这一目标,甚至是我可以查看的良好资源。
谢谢

John,欢迎来到计算机视觉,这里一切都不清楚,没有什么是容易的。您的帖子包含两个实际问题,它们与解析CSV有关,而没有任何标记。我知道你很沮丧。吸气,呼气。问。我是来帮忙的。没有简单的方法。感谢您的帮助,我需要一步一步地实施和培训
SVM
分类器,以便
Java中的
交通标志
,SVM需要一组稳定的功能。SURF每次生成随机长度的特征向量。你不能把两者结合起来。使用HOG或Hu时刻。不简单。顺便说一句,解决这个问题。这是可能的,你需要做更多的研究。这些是从谷歌搜索返回的:和