0

我正在尝试通过机器学习识别棋盘上存在的所有棋子。目前我正在预测单个棋子。我想从磁盘加载训练有素的模型,循环通过棋盘,得到正在玩的方形作物和模型将预测该广场上的棋子。我想这样做- https://www.youtube.com/watch?v=jcFvrCsoY_w

这是我当前用于预测单件的代码。帮助我循环播放板并像上面的视频一样播放方形裁剪。

import cv2
import time
import os
import glob
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tensorflow.keras.models import load_model
model = load_model('/home/tejas/Videos/chess/model_50x50.hd5')
label_map = list('KQRBNP_kqrbnp')

def predict(img, model, img_size=(50,50), plot=False):
    img = cv2.resize(img, img_size) 
    img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY )

    if plot:
        plt.imshow(img, cmap='gray')


    img = img.reshape(1, *img_size, 1) / 255
    pred = model.predict(img)
    return label_map[np.argmax(pred)]
path = '/media/tejas/creator/chess/train_data/black/r/r_90_1579252980.226565.jpg'
name_map = {
    'K':'White King',
    'Q':'White Queen',
    'R':'White Rook',
    'B':'White Bishop',
    'N':'White Knight',1y0
    'P':'White Pawn',
    '_':'Empty Square',
    'k':'Black King',
    'q':'Black Queen',
    'r':'Black Rook',
    'b':'Black Bishop',
    'n':'Black Knight',
    'p':'Black Pawn',
}

img = cv2.imread(path)
pred = predict(img, model, plot=True)
print('The image is a', name_map[pred])

谢谢 !!!

4

0 回答 0