所以我想能够识别图像中的模式(例如数字4),我一直在阅读有关不同的算法,我真的很想使用最近邻算法,看起来很简单,我也明白它基于这个教程: http://people.revoledu.com/kardi/tutorial/KNN/KNN_Numerical-example.html 问题是,虽然我理解如何使用它来填充缺失的数据集,但我不明白我怎样才能将它用作模式识别工具来瞄准图像形状识别。请问有人可以告诉我们该算法如何适用于模式识别?我已经看过使用OpenCV的教程,但是我不想使用这个库,因为我有能力自己进行预处理,而且我似乎很傻,我只是为了一个简单的最近邻居而实现这个库算法。使用最近邻算法进行图像模式识别
10
A
回答
9
你简单地(简单地?)必须为你的数据定义一个“距离”的度量。
假设你已经将小图像中的大图像分割出来,每个小图像对应于你想分类的文本字符。让我们假设我们正在处理数字单色图像,因此每个图像都被表示为(例如)0-255整数范围(亮度)中的值(像素)的矩形矩阵。它也被假设(NN是一个“监督分类算法”),你有很多已经很好分类的图像(你的训练集)。
给定一个新的小图像,您必须定义两幅图像之间的距离,以便选择最接近的训练集,并将其“标签”选作识别的文本字符。
一种天真的方法是取像素的差异(例如平方和)。但是这个距离度量对翻译(以及旋转和缩放)很敏感,我们通常不希望这样做。另一种方法是计算傅里叶变换的模数,这是平移不变的(但这还不够)。从这里开始你就可以开始 - 并且明白这个问题很困难,而且这种分类需要大量的工作来完成可接受的工作。
2
我使用了K-Nearest-Neighbour算法在摄像机的实时姿态识别中进行姿态识别。我会建议你使用Matlab来训练和测试数据集,因为它具有PRToolbox用于此目的,并且有很多帮助和示例。 最重要的是你正确地选择了能够强有力地表示每个类的功能。 一旦你有了特征(这将是一组值,如颜色,面积,位置......)和类,你需要样本来训练分类器(例如KNN)。与分类器一样重要的是如何选择培训样本。那么你将不得不测试分类器。
尝试使用不同的训练集,不同的特征,不同的分类器,因为KNN不适合您的数据类型。
我希望你觉得这个很有用。
1
相关问题
- 1. 最近邻算法
- 2. 使用Harris算法进行图像识别功能
- 3. 最近邻居算法
- 4. KD树 - 最近邻算法
- 5. k-最近邻算法
- 6. OpenCV - 最佳图像识别算法
- 7. android:使用opencv进行图像识别
- 8. 使用CIDetector进行图像识别iPhone
- 9. 使用PHP进行图像识别
- 10. 模式识别算法
- 11. 如何在Matlab中进行高效的k最近邻算法
- 12. 类似图像的任何好的最近邻居算法?
- 13. 图像识别模式识别
- 14. 图像模式识别
- 15. 使用Voronoi图进行最近邻搜索
- 16. 使用Python进行模式提取/识别/识别
- 17. 近邻和模式识别与哈斯克尔
- 18. 二维树最近邻算法澄清
- 19. k最近邻居算法k的值
- 20. 拉宾最近邻(最近点对)算法?
- 21. 图像插值 - 最近邻居(处理)
- 22. 最近邻图像采样为3D WPF
- 23. 使用Voronoi图的最近邻
- 24. 如何识别DOM节点邻近度
- 25. 如何使用weka从命令行计算最近的邻居?
- 26. 适合模式识别的算法
- 27. 如何测试图像识别算法?
- 28. 最近邻居启发式
- 29. 在图像处理中使用近似最近的邻居“放在地图上”
- 30. 最接近的匹配(识别)线图绘制方法或算法