ftn-ai-lab / sc-2020-siit

Soft Computing - 2020 - Sotversko inženjerstvo i informacione tehnologije
MIT License
3 stars 4 forks source link

Rešavanje šahovskog problema na osnovu slike table #26

Closed phuskus closed 3 years ago

phuskus commented 3 years ago

Tim Stefan Stegić SW 61/2017

Asistenti Dragan Vidaković

Definicija problema Cilj projekta je da za datu validnu konfiguraciju šahovske table i stranu (crni ili beli) prepozna njeno stanje i ponudi optimalni niz poteza do pobede.

Ulazi:

  1. Slika šahovske table
  2. Strana (crni ili beli)

Izlaz:

  1. Niz optimalnih šahovskih poteza do pobede

Skup podataka Skup podataka ću generisati sam pomoću python chess biblioteke i on će se sastojati od slika figurica. Skup podataka ću dalje pripremiti transformisanjem svake slike na N različitih načina, igrajući se sa osvetljenjem, iskrivljenjem, bojama i slično, kako bih povećao raznovrsnost.

Metodologija Planiram da realizujem prepoznavanje table po uzoru na OCR:

  1. Slika u boji se transformiše u grayscale
  2. Grayscale slika se transformiše u binarnu (crno-belu) sliku
  3. Izdvajaju se regioni od interesa pomoću OpenCV biblioteke, tj. figure i šahovska polja
  4. Ovako pripremljen ulaz se postavlja na prethodno istreniranu neuronsku mrežu koja mapira svaki region (oblik) na određenu šahovsku figuru

Dakle, posao veštačke inteligencije je da prepozna koji oblik na slici je najverovatnije određena šahovska figura. Ako kombinujemo znanje o pozicijama figura, trenutnom potezu, tipovima figura i veličine šahovske ćelije na tabli možemo da enkodiramo stanje šahovske table u jednu strukturu podataka.

Ova struktura podataka se prosleđuje Stockfish-u (trenutno najbolji open-source chess engine) koji igra sam protiv sebe do kraja partije počevši od zadatog stanja dobijenog na gorenavedeni način.

Najzad, program ispisuje niz poteza u izlazni tekstualni fajl.

Evaluacija Skup podataka ću da podelim na trening, test i validacioni skup. Kako će fokus rada biti na samom prepoznavanju stanja šahovske table, neću evaluirati samo dobijanje niza poteza, već samo prvi deo rešenja. Rezultate ću evaluirati po kriterijumu preciznosti (accuracy) prepoznavanja figurice iz prosleđenog oblika.

vdragan1993 commented 3 years ago

Tema odobrena. Ostavite link ka GitHub repozitorijumu projekta. Srećan rad.

phuskus commented 3 years ago

https://github.com/phuskus/chess-solver