Делать предсказания (классификация шахматных фигур) - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь определить все фигуры, присутствующие на шахматной доске, с помощью машинного обучения. В настоящее время я предсказываю одну фигуру. Я хочу загрузить обученную модель с диска, l oop через доску, получить игру квадратный урожай, и модель будет предсказывать кусок, который находится на этом квадрате. Я хочу сделать так: https://www.youtube.com/watch?v=jcFvrCsoY_w

Это мой текущий код для предсказания одного куска. Помогите мне набрать l oop через доску и начать играть в квадратный кроп, как показано выше видео.

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])

Спасибо !!!

...