[OpenCV4.5.0] 画像をランダムフォレストで学習して判定したい3 ~ 判定

学習データを coffee.pkl に保存します。

clf = RandomForestClassifier()
clf.fit(x_train, y_train)

joblib.dump(clf, 'coffee.pkl')

学習データの画像とは別に判定したいターゲット画像を用意します。

fire_11.jpg

black_11.jpg

georgia_11.jpg

学習データを作ったように同じようリサイズ、リシェイプして判定(predict)します。

import cv2
import joblib

def predict_coffee(filename):
	clf = joblib.load("coffee.pkl")

	path = "img/target/"
	img = cv2.imread(path + filename)
	img = cv2.resize(img, (48, 64))
	img = img.reshape((-1, 9216))
	res = clf.predict(img)

	if res[0] == 0:
		print(filename + " = BLACK無糖")
	elif res[0] == 1:
		print(filename + " = FIRE微糖")
	else:
		print(filename + " = Georgia blend")
	

predict_coffee("black_11.jpg")
predict_coffee("fire_11.jpg")
predict_coffee("georgia_11.jpg")

$ python3 app.py
black_11.jpg = BLACK無糖
fire_11.jpg = FIRE微糖
georgia_11.jpg = Georgia blend

やば。。。。
blackに関しては、”Black”の文字ないのに判定できちゃうんだ。。。

ちょっと人生頑張ってみるわ。。