python动图自动识别,自动识别图像中的模式

首先是一些简单的术语,以防万一:

分类器学习输入到输出的映射。通过给分类器提供输入/输出对来训练分类器,例如颜色信息之类的特征向量和“捷克国旗”之类的标签。实际上,标签是用标量表示的。在您的示例中,您遇到了一个多类问题,这意味着可能有两个以上的标签(显然,因为有两个以上的国旗)。训练一个多类分类器比普通的二元分类器要复杂一些,所以你可能需要搜索“多类分类器”或“一对多分类器”之类的术语来研究适合你的最佳方法。

问题:

我认为用一个简单的分类器,比如k近邻,用颜色直方图作为特征向量,可以很容易地解决你的问题。特别是,我将使用HSV特征向量,而不是RGB特征向量。在文献中,仅使用这种简单的分类器系统就得到了一些很好的结果,例如:SVMs for Histogram-Based Image Classification。在这篇论文中,作者使用了一种特殊的分类器,称为支持向量机(SVM)和HSV特征向量。HSV特征向量还回避了图像缩放和旋转的问题,例如1024x768与640x480的标志,或者图像中旋转45度的标志。

训练算法的伪代码如下所示:# training simple kNN -- just compute feature vectors, collect labels

X = [] # tuple (input example, label)

for training_image in data:

x = get_hsv_vector(training_image)

y = get_label(training_image)

X.append((x,y))

# classification -- pick k closest feature vectors

K = 3 # the 'k' in kNN -- how many similar featvecs to use

d = [] # (distance, label) tuples for scoring

x_test = get_hsv_vector(test_image) # feature vector to be classified

for x_train in X:

d.append((distance(x_test[0], x_train), x_test[1])

# sort distances, d, by closeness and pick top K labels for scoring

d.sort()

output = get_majority_vote([x[1] for x in d[:K]])

kNN分类器在几个python包中都有,有很好的文档。它应该很容易转换成HSV色彩空间以及。如果没有达到预期的效果,可以尝试改进特征向量或分类器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值