图像识别中的K-最近邻

我目前正在研究项目或指导/指导我的研究。我必须确定三种不同的叶子,并且每种都使用100个样本(300只是为了具体),我的教授要求我暗示K-Nearest Neighbor算法使用上传的100个样本对系统中上传的图像进行分类。数据库作为参考。 我已经为系统上传了样本和图像处理,但我仍然需要应用KNN算法对它们进行分类,任何建议或分步教程? 是否需要研究编码算法,或者是否有现有的库可以在C#语言的图像分类中轻松应用KNN?并且每个叶子种类有足够的100个图像样本? 更多信息:来自martijin_himself的回复 是的,我说的是树叶。嗯,问题是,唯一要考虑的特征是树叶的形状。忽略其他功能,如颜色,大小等。我并不确切知道何时或如何提取这些“特征向量”,将它们放在何处以及如何将图像样本用作叶子的参考 关于系统的图像处理部分,图像经历二值化和斑点化的过程,使图像仅考虑其形状唯一的特征。因此,我在数据库中上传的所有样本都是如此。如果我缺乏答案所需的信息,我感到非常抱歉。请多多包涵。 提前致谢! :)     
已邀请:
如果我理解正确,您将拥有300个图像的训练集,每个类(或标签)100个。 首先,您必须定义特征向量,这是一组您认为在分类图像时很重要的图像特征或属性。如果你在谈论(树)叶子,一个特征可能是图像中的颜色值? 第二步是定义计算特征向量之间距离的距离函数。例如,具有大量红色的图像与具有大量绿色的图像具有更大的距离。您甚至可以权衡这些特征,以反映它们对距离贡献的重要性。 接下来,您可以选择k的值,并测试特征向量和距离函数组合执行的程度,以便根据训练集的已知标签对图像进行分类。这称为交叉验证。如果您的特征向量和距离函数表现不佳,您可能选择了不属于该类的属性(例如图像的大小)。 在c#中实现它时,您可以为每个图像或类似的东西创建一个FeatureVector类,并且可以实现IComparable(或类似)接口来计算某些已知样本的距离函数。然后,您可以简单地创建一个List并对其进行排序。这只是一个建议。     
结果,我将图像分成两个部分(顶部和底部)。但我有三个特征向量(叶子的面积,它的顶部区域,以及它的底部区域)。与数据库中的所有样本相同。 因此,考虑到我拥有的三个特征向量,我设法通过计算它们的距离/ s(eauclidean,w / c包含在K-NN算法中)将K-NN算法应用于我的研究,并根据用户对它们进行分类-K的定义值。因此,结果以百分比表示。 谢谢你的帮助^ _ ^     

要回复问题请先登录注册