我想评估一下是否在我的屏幕上发生了一个事件,每当它发生时,一个特定的盒子/图像会显示在一个结构非常相似的屏幕区域中。
我从该屏幕区域收集了一堆84x94 .png
RGB
张图片,我想建立一个分类器来告诉我事件是否正在发生。
因此,我的想法是创建一个包含2列的pd.DataFrame
(df
),df['np_array']
将每张图片包含为np.array
,df['is_category']
包含布尔值告诉该图像是否表明事件正在发生。
结构如下(使用!=大小):
我已将图像调整为10x10进行训练并转换为灰度
df = pd.DataFrame(
{'np_array': [np.random.random((10, 10,2)) for x in range(0,10)],
'is_category': [bool(random.getrandbits(1)) for x in range(0,10)]
})
我的问题是我不能通过clf.fit(df['np_array'],df['is_category'])
我之前从未尝试过图像识别,非常感谢任何帮助!
答案 0 :(得分:1)
如果它是10x10灰度图像,您可以将其展平:
import numpy as np
from sklearn import ensemble
# generate random 2d arrays
image_data = np.random.rand(10,10, 100)
# generate random labels
labels = np.random.randint(0,2, 100)
X = image_data.reshape(100, -1)
# then use any scikit-learn classification model
clf = ensemble.RandomForestClassifier()
clf.fit(X, y)
顺便说一句,对于图像,性能最佳的算法是卷积神经网络。