如何辨别颜色名称

颜色一共有1600多万种,人类能够分辨的颜色大概有7000多种,但是精确地分辨出每一个颜色,挑战依然很大,目前市面上的颜色方案都分的很细,对于实际的应用场景来说其实用处不大。因为人们并不关心这个颜色的专业名称是什么,只关心它们属于哪个色系,叫什么。
目前还没有找到关于颜色识别很好的方案,这里开源一下自己的颜色解决方案,就当是抛砖引玉。希望有大牛能够指导一下颜色的问题要怎么解决,目前颜色的识别的准确率大约是80%左右,因为数据集中缺少灰色的数据,所以会把灰色识别为其他颜色。
我的解决方案如下:我有一份20万种颜色的数据集,里面的20万种颜色被分别命名为27种颜色,我将这些颜色的名称和数值送到knn中进行训练,然后输入新的数值进行预测。
代码如下:

import os
import sys
from sklearn.neighbors import KNeighborsClassifier
path3="color_name.txt"

file=open(path3)

list_color=[]
x=[]
y=[]
neigh = KNeighborsClassifier(n_neighbors=27)

for i in range(0,196600):
    color=[]
    line=file.readline()
    str1=line.split("]")[-1]
    if str1 not in list_color:
        list_color.append(str1)
        print str1
    str2=line.split(",")[0].split("[")[-1]
    str3=line.split(",")[1]
    str4=line.split("]")[0].split()[-1]
    color.append(int(str2))
    color.append(int(str3))
    color.append(int(str4))
    x.append(color)
    y.append(str1)


color_name=[]    

neigh.fit(x, y)
predict = neigh.predict([[50,20,20]])
print predict

你可能感兴趣的:(人工智能,颜色识别,opencv)