Python - 图像识别分类器
Python - Image recognition classifier
我想评估一个事件是否正在我的屏幕上发生,每次它发生时,一个特定的 box/image 会出现在具有非常相似结构的屏幕区域中。
我从该屏幕区域收集了一堆 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'])
来适应 scikit 学习分类器
我以前从未尝试过图像识别,在此先感谢您的帮助!
如果是 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)
顺便说一下,对于图像,性能最好的算法是卷积神经网络。
我想评估一个事件是否正在我的屏幕上发生,每次它发生时,一个特定的 box/image 会出现在具有非常相似结构的屏幕区域中。
我从该屏幕区域收集了一堆 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'])
我以前从未尝试过图像识别,在此先感谢您的帮助!
如果是 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)
顺便说一下,对于图像,性能最好的算法是卷积神经网络。