Создание набора данных изображений для классификации изображений - PullRequest
0 голосов
/ 12 октября 2019

Я хочу создать классификатор изображений с помощью библиотек Pandas и Scikit-Learn, но я хочу иметь свои собственные данные изображений? С тех пор я использовал столбцы панд для объектов и результатов, но как я могу добавить изображения в столбец панд (обработать их), чтобы я мог использовать их в классификации?

Могу ли я просто добавить свои изображения в панды, обработать их и использовать в классификаторе, или мне нужно сделать что-то другое?

У меня есть файл .py, сохраненный в той же папке, где у меня есть изображения .jpg, но я не знаю, как читатьих.

import pandas as pd
from sklearn.metrics import accuracy_score
from sklearn.ensemble import RandomForestClassifier

images = ['...list of my images...']
results = ['drvo','drvo','cvet','drvo','drvo','cvet','cvet'] 

df = pd.DataFrame({'Slike':images,
                   'Rezultat':results})

print(df)

features = df.iloc[:,:-1]
results = df.iloc[:,-1]

clf = RandomForestClassifier(n_estimators=100, random_state=0)
model = clf.fit(features, results)

prediction_result =  model.predict(features)
print(prediction_result)

accuracy_test = accuracy_score(results, prediction_result)
print(accuracy_test)

1 Ответ

0 голосов
/ 12 октября 2019

Я не думаю, что только склеарн и панды могут читать изображения. Я бы посоветовал использовать массивы для представления изображений. Есть библиотеки, такие как scikit-image и pillow, которые вы можете использовать.

pip install scikit-image

Проверьте установку с помощью:

>>> import skimage
>>> skimage.__version__

Затем вы можете получить изображение в виде 3Dмассив numpy с:

skimage.io.imread(fname)

Первые два измерения - это координаты x и y (где [0,0] в верхнем левом углу), а третье измерение имеет значенияцветные каналы. Для изображения RGB для каждого [x, y] будет 3 значения, соответствующих красным, зеленым и синим каналам. Для получения дополнительной информации см. skimage docs .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...