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时刻。不简单。顺便说一句,解决这个问题。这是可能的,你需要做更多的研究。这些是从谷歌搜索返回的:和