scieee Science in your language
[es] (orig)

Técnicas de aceleración para el reconocimiento de piezas de ajedrez

Abstract

La digitalización automática de partidas de ajedrez mediante visión artificial es un reto tecnológico significativo. Es imprescindible tanto para los organizadores de torneos como para jugadores amateurs o profesionales de cara a retransmitir en línea o analizar las partidas mediante motores de ajedrez. En este trabajo primero hemos entrenado y comparado diversas redes neuronales convolucionales para la clasificación de piezas de ajedrez. Posteriormente, hemos acelerado sobre una Nvidia Jetson Nano la detección del tablero y la inferencia de estos modelos, necesarios para una completa digitalización. Conseguimos así un framework funcional que digitaliza automáticamente la configuración de un tablero de ajedrez sobre un sistema empotrado en menos de 5 segundos, con una precisión del 92 % al clasificar las piezas y un 95 % al detectar el tablero.

Read accessible full text

Técnicas de aceleración para el reconocimiento de piezas de ajedrez

Author: Mallasén Quintana, David
Year: 2020
Source: https://docta.ucm.es/bitstreams/eaca2ef1-b72f-49aa-9eb4-dd97488c0773/download
T´ecnicas de acele aci´on pa a el econocimien o de
piezas de ajed ez
Accele a ion echniques o chess piece
ecogni ion
TRABAJO DE FIN DE GRADO DEL GRADO EN
INGENIER´
IA INFORM´
ATICA
Cu so 2019/2020
UNIVERSIDAD COMPLUTENSE DE MADRID
FACULTAD DE INFORM´
ATICA
Di ec o : Albe o An onio del Ba io Ga c´ıa
Codi ec o : Manuel P ie o Ma ´ıas
Da id Mallas´en Quin ana
Mad id, 20 de junio de 2020
Resumen
La digi alizaci´on au om´a ica de pa idas de ajed ez median e isi´on a i icial es
un e o ecnol´ogico signi ica i o. Es imp escindible an o pa a los o ganizado es de
o neos como pa a jugado es ama eu s o p o esionales de ca a a e ansmi i en l´ınea
o analiza las pa idas median e mo o es de ajed ez. En es e abajo p ime o hemos
en enado y compa ado di e sas edes neu onales con olucionales pa a la clasi ica-
ci´on de piezas de ajed ez. Pos e io men e, hemos acele ado sob e una N idia Je son
Nano la de ecci´on del able o y la in e encia de es os modelos, necesa ios pa a una
comple a digi alizaci´on. Conseguimos as´ı un amewo k uncional que digi aliza au-
om´a icamen e la con igu aci´on de un able o de ajed ez sob e un sis ema empo ado
en menos de 5 segundos, con una p ecisi´on del 92 % al clasi ica las piezas y un 95 %
al de ec a el able o.
Palab as cla e
Acele aci´on de edes neu onales, N idia Je son Nano, ONNX, Tenso RT, Aje-
d ez, FEN, Visi´on a i icial, Redes neu onales con olucionales, Deep lea ning, Py -
hon.
Abs ac
Au oma ic digi iza ion o chess games by means o compu e ision is a signi ican
echnological challenge. I is essen ial bo h o ou namen o ganize s and ama eu
o p o essional playe s in o de o b oadcas online o analyze games using chess
engines. In his wo k, we ha e i s ained and compa ed di e en con olu ional
neu al ne wo ks o chess piece classi ica ion. Subsequen ly, we ha e accele a ed on
a N idia Je son Nano he de ec ion o he boa d and he in e ence o hese models,
equi ed o a comple e digi iza ion. Thus achie ing a unc ional amewo k ha
au oma ically digi izes he con igu a ion o a chessboa d on an embedded sys em in
less han 5 seconds, wi h an accu acy o 92 % when classi ying he pieces and 95 %
when de ec ing he boa d.
Keywo ds
Neu al ne wo k accele a ion, N idia Je son Nano, ONNX, Tenso RT, Chess,
FEN, Compu e ision, Con olu ional neu al ne wo ks, Deep lea ning, Py hon.
Ag adecimien os
En p ime luga , g acias a Albe o y Manuel po pensa en m´ı pa a es e abajo
y po odo su in e ´es e innume ables co ecciones e ideas du an e odo es e iempo.
Desde las p ime as euniones con un able o de ajed ez delan e, has a las sesiones
i uales de los ´ul imos meses.
G acias ambi´en a odos los dem´as p o eso es que du an e es os a˜nos hab´eis
hecho que descub a mi ocaci´on y que quie a con e i es a pasi´on en mi p o esi´on.
Que ´ıa ag adece ambi´en odo el apoyo desde siemp e po pa e de mi amilia.
En es e caso especialmen e el incon o mismo de mi mad e, que me empuj´o e hizo
que no haya es udiado “solo” ma em´a icas.
No que ´ıa ol ida me de odos mis amigos, es ´eis m´as ce ca o m´as lejos, de
odos aquellos con los que he compa ido echo e inquie udes, compa˜ne os de clase
y pe sonas en gene al con las que me he c uzado es os a˜nos. Sin oso os no se ´ıa ni
la mi ad de eliz de lo que soy aho a.
Es e abajo ha sido inanciado po la Uni´on Eu opea (FEDER), el Gobie no de
Espa˜na y la Comunidad de Mad id a a ´es de los p oyec os RTI2018-093684-B-I00
y S2018/TCS-4423.
´
Indice gene al
´
Indice de igu as III
´
Indice de ablas IV
´
Indice de algo i mos V
1. In oducci´on 1
1.1. An eceden es ............................... 1
1.2. Obje i os y plan de abajo . . . . . . . . . . . . . . . . . . . . . . . 2
2. De ecci´on del able o 5
2.1. Desc ipci´on de las i e aciones . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. De ecci´on de l´ıneas ec as . . . . . . . . . . . . . . . . . . . . 7
2.1.2. B´usqueda de pun os de la cuad ´ıcula . . . . . . . . . . . . . . 8
2.1.3. Iden i icaci´on de la posici´on del able o . . . . . . . . . . . . . 10
2.1.4. Fin de la i e aci´on . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Ob enci´on de las casillas indi iduales . . . . . . . . . . . . . . . . . . 13
2.2.1. Nue om´e odo........................... 14
3. Clasi icaci´on de las piezas 17
3.1. No aci´onFEN............................... 17
3.2. Da ase e ique ado de piezas . . . . . . . . . . . . . . . . . . . . . . . 17
3.3. En enamien o de los modelos . . . . . . . . . . . . . . . . . . . . . . 18
3.4. In e encia ................................. 20
3.4.1. In e encia en able os consecu i os . . . . . . . . . . . . . . . 21
4. Acele aci´on 25
4.1. Pla a o mas de in e encia . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. Op imizado es: ONNXRun ime y Tenso RT . . . . . . . . . . . . . . 26
4.3. De ecci´on del able o . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3.1. P ime an´alisis: Op imizaci´on median e ONNX . . . . . . . . 29
4.3.2. Segundo an´alisis: Reducci´on del sob ecos e de NumPy . . . . . 29
4.3.3. Te ce an´alisis: Reducci´on del sob ecos e de Ben ley-O mann 30
4.4. Clasi icaci´on de las piezas . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4.1. Elecci´on del modelo . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4.2. Op imizaci´on de la in e encia . . . . . . . . . . . . . . . . . . 34
i
5. Resul ados 37
5.1. De ecci´on del able o . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2. Clasi icaci´on de las piezas . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3. Digi alizaci´on o al . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6. Conclusiones y abajo u u o 44
7. In oduc ion (English) 46
7.1. Rela edwo k ............................... 46
7.2. Objec i es and wo k plan . . . . . . . . . . . . . . . . . . . . . . . . 47
8. Conclusions and u u e wo k 49
Re e encias 51
ii

´
Indice de igu as
Figu a 1.1. Ejemplo de o o omada po la c´ama a. . . . . . . . . . . . . . 3
Figu a 1.2. Esquema de la si uaci´on de la c´ama a y del ha dwa e que
ealiza ´a el c´ompu o en el uso inal. . . . . . . . . . . . . . . . . . . . 4
Figu a 2.1. Ejemplo de las im´agenes ob enidas despu´es de cada i e aci´on. 6
Figu a 2.2. Ejemplo de dos e apas en la p ime a ase de de ecci´on de l´ıneas. 7
Figu a 2.3. Ejemplo de las e apas inales de ase de de ecci´on de l´ıneas. . . 8
Figu a 2.4. Ejemplo de pun os que s´ı o man pa e de la cuad ´ıcula. . . . 10
Figu a 2.5. Ejemplo de las e apas de ase de iden i icaci´on del able o. . . 12
Figu a 2.6. Ejemplo del inal de la p ime a i e aci´on. . . . . . . . . . . . . 13
Figu a 2.7. Esquinas de ec adas en la imagen o iginal. . . . . . . . . . . . 14
Figu a 2.8. Reco e de las casillas. . . . . . . . . . . . . . . . . . . . . . . 16
Figu a3.1. No aci´onFEN. .......................... 18
Figu a 3.2. Ejemplo de ec o de p obabilidades pa a una casilla del able o. 20
Figu a 3.3. Esquema de los da os empleados en la in e encia de la con i-
gu aci´ondel able o. ........................... 22
Figu a 4.1. Ejecuci´on sob e un n´ucleo CUDA de 32 bi s de dos ope aciones
delmismo ipoenFP16.......................... 26
Figu a 4.2. Flujo de abajo pa a la acele aci´on de la in e encia. . . . . . . 27
Figu a 4.3. Imagen de p ueba pa a la clasi icaci´on de las piezas. . . . . . . 32
Figu a 5.1. P ecisi´on ob enida po cada modelo en unci´on del iempo. . . 40
iii
´
Indice de ablas
Tabla 4.1. Modelos iniciales ejecu ando la in e encia median e Ke as. . . . 32
Tabla 4.2. Modelos m´as sencillos ejecu ando la in e encia median e Ke as. 33
Tabla 4.3. Modelos ejecu ando la in e encia median e ONNXRun ime. . . 34
Tabla 4.4. Modelos ejecu ando la in e encia median e Tenso RT. . . . . . 35
Tabla 4.5. Modelos ejecu ando la in e encia median e Tenso RT en un
ba ch de64im´agenes............................ 36
Tabla 5.1. Tiempo medio po imagen pa a cada una de las e siones de la
de ecci´ondel able o............................ 37
Tabla 5.2. Valo Top-1 y p ecisi´on as in oduci conocimien o del domi-
nio pa a cada uno de los modelos. . . . . . . . . . . . . . . . . . . . . 38
Tabla 5.3. Mejo es iempos po able o y p ecisiones ob enidas pa a cada
modelo sob e la Je son Nano, jun o con el op imizado u ilizado. . . . 39
Tabla 5.4. Resumen de iempos o ales sob e la Je son Nano po able o
de p ueba pa a cada uno de los modelos que o man el en e de Pa e o. 41
Tabla 5.5. Resumen de iempos o ales pa a cada uno de los modelos que
o man el en e de Pa e o sob e la Je son Nano cuando la comp o-
baci´on de la posici´on del able o de uel e cie o. . . . . . . . . . . . . 43
i
´
Indice de algo i mos
Algo i mo 2.1. Desc ipci´on de una i e aci´on. . . . . . . . . . . . . . . . . . 5
Algo i mo 2.2. De ecci´on de l´ıneas ec as (SLID)................ 7
Algo i mo 2.3. B´usqueda de pun os de la cuad ´ıcula (LAPS). ........ 9
Algo i mo 2.4. Iden i icaci´on de la posici´on del able o (CPS)......... 11
Algo i mo 3.1. C´alculo de la con igu aci´on del able o a pa i de los ec-
o es de p obabilidades de cada casilla. . . . . . . . . . . . . . . . . . . 23
Algo i mo 3.2. In e encia del ipo de pieza a pa i de su mo imien o. . . . 24
Algo i mo 5.1. Comp obaci´on de la posici´on del able o. . . . . . . . . . . . 42
Cap´ı ulo 1
In oducci´on
El econocimien o de piezas y able os de ajed ez es un p oblema de isi´on a -
i icial que a´un no se ha esuel o de mane a e icien e. Sin emba go, su soluci´on es
c ucial pa a muchos jugado es expe imen ados que desean compe i con a mo o es
de ajed ez y p og amas especializados, pe o que ambi´en p e ie en oma decisiones
usando un able o de ajed ez ´ısico. Adem´as, es impo an e pa a los o ganizado es
de o neos de ajed ez que desean digi aliza el juego pa a la e ansmisi´on en l´ınea
o pa a los jugado es a icionados que desean compa i sus pa idas con amigos. Po
lo gene al, es as a eas de digi alizaci´on son ealizadas po humanos o con la ayuda
de able os de ajed ez y piezas especializadas.
Pa a consegui digi aliza una pa ida de o ma au om´a ica, es necesa io se
capaz de econoce an o el able o de ajed ez como pos e io men e las posiciones
de las piezas. En el escena io de las pa idas en i o, adem´as de la p ecisi´on es
c ´ı ico minimiza el iempo necesa io pa a ealiza dicho econocimien o, ya que las
jugadas pueden sucede se muy elozmen e. Es e es el caso de las modalidades de
juego conocidas como “Bli z” y “Bulle ”, en las que cada jugado iene en e 1 y
5 minu os pa a juga oda la pa ida. Tambi´en ocu e es o mismo en las pa idas
cl´asicas cuando queda poco iempo.
1.1. An eceden es
Una soluci´on ha dwa e pa a la digi alizaci´on au om´a ica de las pa idas son los
able os especializados que de ec an las piezas ´ısicamen e. Ejemplos ecien es que se
usan ac ualmen e en g andes o neos los podemos encon a en [Squ]o[DGTa]. Sin
emba go, es os able os son cos osos y di ´ıcilmen e desplegables en muchos ´ambi os.
A modo de ejemplo, un se de able o y piezas de DGT (ma ca usada en o neos
o iciales) cues a desde unos 500ehas a m´as de 1000e[DGTb].
O as al e na i as son las p opo cionadas po obo s que mue en las piezas de
un able o, como pueden se [Ma +11] o m´as ecien emen e [CW19]. Es os obo s se
basan en posiciona una c´ama a ceni al sob e el able o y de ec a los di e enciales
en e un mo imien o y el siguien e. Un incon enien e de es o es que se necesi a pa i
de un es ado inicial conocido, no se pod ´ıa digi aliza de es a o ma un able o con
una con igu aci´on de piezas gen´e ica. Adem´as, hab ´ıa que ene en cuen a los allos,
po que se pod ´ıan encadena en cada nue a jugada.
Las soluciones que o ece la isi´on a i icial son una al e na i a a ene en cuen a,
ya que p opo cionan sis emas m´as ba a os y cada ez m´as p ecisos, adem´as de se
un e o ecnol´ogico impo an e. Como compa aci´on, la pla a o ma que u iliza emos
1
2.2b como a ias de las l´ıneas de la cuad ´ıcula del able o se de ec an de o ma
discon inua como segmen os di e en es. La unci´on que decide si dos segmen os se
deben uni o no es ´a desc i a en [CLW17]. A la ho a de es udia la colinealidad, iene
en cuen a ambi´en la longi ud de los segmen os en compa aci´on con el ama˜no de la
imagen. Es o se debe a que segmen os muy co os ce ca de un segmen o muy la go
en ealidad pueden o ma pa e de la misma ec a, aunque el ´angulo que o men
en e ellos sea ela i amen e g ande. Con o me c ece la longi ud, es a es icci´on
sob e el ´angulo se uel e m´as es ic a.
Finalmen e, los conjun os de segmen os colineales ob enidos se usionan en una
´unica ec a. Pa a ello, p ime o se con ie en los segmen os en pun os, eniendo en
cuen a que a mayo longi ud m´as n´ume o de pun os, y pos e io men e se busca la
ec a que mejo se ajus e a ellos (Figu a 2.3a). Es o ´ul imo se consigue a pa i de un
M-es imado pa a modelos ap oximadamen e lineales [Wie96] que encuen a dicha
ec a i e a i amen e median e el algo i mo de m´ınimos cuad ados. Es a ap oxima-
ci´on busca sol en a algunos de los p oblemas que p esen an los algo i mos que se
basan en el es udio de los cen oides de inidos po los segmen os. De es a o ma, el
m´e odo se ajus a a la in uici´on de que la ec a de mejo ajus e se debe ap oxima
lo m´aximo posible a los segmen os m´as la gos del conjun o.
(a) L´ıneas ob enidas a pa i de los pun-
os o mados po los segmen os.
(b) Resul ado inal de la ase de de ec-
ci´on de l´ıneas.
Figu a 2.3: Ejemplo de las e apas inales de ase de de ecci´on de l´ıneas.
2.1.2. B´usqueda de pun os de la cuad ´ıcula
A pa i de las l´ıneas de ec adas en el paso an e io , se ob ienen odos los pun os
de in e secci´on de las mismas. De es os, se selecciona el subconjun o de pun os
que enga una al a p obabilidad de o ma pa e de la cuad ´ıcula o mada po las
casillas del able o de ajed ez. Pa a consegui lo hay dos ´ıas que se complemen an:
un p ime de ec o geom´e ico que se enca ga de il a posi i amen e los casos m´as
sencillos y una ed neu onal que e mina de disc imina los pun os m´as complicados
(Algo i mo 2.3).
8

Algo i mo 2.3: B´usqueda de pun os de la cuad ´ıcula (LAPS).
En ada: Imagen que con iene un able o.
L´ıneas de ec adas po SLID.
Salida: Conjun o de pun os que o man pa e de la cuad ´ıcula del able o.
1pun os cuad icula ←[ ];
2pa a cada pun o ∈in e secciones(lineas)hace
3ma iz ←p ep ocesa ( ecindad(imagen,pun o));
4es pun o cuad icula ←de ec o geome ico(ma iz);
5si es pun o cuad icula en onces
6pun os cuad icula.inse a (pun o)
7en o o caso
8es pun o cuad icula ← ed neu onal(ma iz);
9si es pun o cuad icula en onces
10 pun os cuad icula.inse a (pun o)
11 in
12 // Si no pe enece a la cuad ´ıcula, pasamos al siguien e
13 in
14 in
15 de ol e pun os cuad icula
Pa a iden i ica odas las in e secciones de las l´ıneas ob enidas en el m´odulo an-
e io , se u iliza el algo i mo de ba ido de Ben ley-O mann [BO79]. Las ecindades
de es os pun os en la imagen se ´an lo que se es udie pa a comp oba si e ec i amen e
se a an de pun os con una al a p obabilidad de o ma pa e de las in e secciones
del able o. Pa iendo de una peque˜na ma iz de p´ıxeles cen ada en cada uno de los
pun os, se p ep ocesa pa a man ene solo la in o maci´on ele an e y, como hemos
comen ado an e io men e, p ime o se aplica un de ec o geom´e ico pa a ma ca
´apidamen e como posi i os las si uaciones m´as comunes.
Es e de ec o geom´e ico busca con o nos y comp ueba si el en o no del pun o
es ´a o mado po cua o omboides. En caso a i ma i o, es amos an e un pun o que
muy posiblemen e o me pa e de la cuad ´ıcula del able o que buscamos. Es o se
debe a que los cua o omboides se co esponde ´an con las cua o casillas que o man
pa e de cada in e secci´on (Figu a 2.4a).
En caso de que no se de ec e es e pa ´on en los al ededo es del pun o, el siguien e
paso es in en a dis ingui si es o se debe, po ejemplo, a que una de las piezas es ´a
ocul ando pa cialmen e la in e secci´on (Figu a 2.4b). Pa a ello se u iliza una ed
neu onal con olucional en enada sob e un conjun o de casos muy di e sos. As´ı
se ob ienen las p obabilidades de que el pun o pe enezca al conjun o con el que
segui emos abajando en el siguien e m´odulo. Solo en caso de que el esul ado sea
posi i o con una p obabilidad muy al a, se da el pun o como ´alido y se u iliza ´a
pa a iden i ica el able o.
9
(a) Bas a el de ec o geom´e ico. (b) Es necesa ia la ed neu onal.
Figu a 2.4: Ejemplo de pun os que s´ı o man pa e de la cuad ´ıcula.
2.1.3. Iden i icaci´on de la posici´on del able o
El paso inal de cada i e aci´on es iden i ica el able o a pa i de los pun os y
las l´ıneas encon adas an e io men e. Pa a ello, el algo i mo analiza los conjun os
de cua o ec as que o men un cuad il´a e o pa a decidi cu´al de ellos es el que
se co esponde con el able o que es amos buscando (Algo i mo 2.4). N´o ese que,
como los pun os que hemos encon ado son los que o man las in e secciones de la
cuad ´ıcula, en ealidad no es amos encuad ando el able o comple o, sino el espacio
6×6 o mado po las casillas cen ales. Es o no se ´a un p oblema po que al inal
de la i e aci´on se oma un ma gen del ancho de una casilla, eniendo en cuen a la
pe spec i a, al ededo de es e ma co. De es a o ma, en ´ul ima ins ancia, se ´a es e
ma gen el que se co esponda con los bo des eales del able o ( e Figu a 2.6a).
El algo i mo oma la decisi´on de qu´e cuad il´a e o es mejo en base a una unci´on
de cos e que iene su m´aximo cuando las cua o l´ıneas o man pe ec amen e el ma co
de un able o de ajed ez, con la limi aci´on al espacio 6 ×6 que hemos comen ado
an e io men e. Es a unci´on polysco e [CLW17] es ´a de inida como, dado un ma co
F:
P(F) = L4
A2
F
W3(k)W5(l).
Donde Les el n´ume o de pun os den o del ma co, AFes el ´a ea del ma co F,kes
la dis ancia media de los pun os den o del ma co a su bo de m´as ce cano, les la
dis ancia del cen oide del g upo de pun os den o del ma co al cen oide del ma co
yWes la unci´on de peso siguien e 1:
Wj(x) = 1
1 + j
px
L
.
In ui i amen e, pa a maximiza P(F) hay que maximiza Ly minimiza AF,kyl.
Pa a e i a la comp obaci´on de las n
4posibles o mas de elegi cua o ec as,
se op imiza el algo i mo pa a solo e isa algunas de las combinaciones. Es a op i-
mizaci´on empieza encon ando el mayo cl´us e de pun os de la cuad ´ıcula median e
el algo i mo DBSCAN [Es +96] y desca a el es o, ya que es e debe ´ıa ep esen a
1Exis e una e a a en [CLW17] con i mada po los au o es. La ´o mula es ´a co egida en la
implemen aci´on y el denominado es e ec i amen e Len luga de AF.
10
Algo i mo 2.4: Iden i icaci´on de la posici´on del able o (CPS).
En ada: L´ıneas de ec adas po SLID.
Pun os de la cuad ´ıcula de uel os po LAPS.
Salida: Coo denadas en la imagen de las cua o esquinas de la cuad ´ıcula.
1// Ob ene las l´ıneas que bo dean al mayo cl´us e de pun os de la
cuad ´ıcula.
2clus e s ←DBSCAN(pun os cuad icula);
3clus e able o ←max(clus e s);
4lineas candida as ←es a ce ca bo de(lineas,clus e able o);
5// Escoge el pa de l´ıneas e icales y ho izon ales que se ajus e
m´as al bo de del able o
6lineas e icales ←es e ical(lineas candida as);
7lineas ho izon ales ←es ho izon al(lineas candida as);
8 alo max ← −∞;
9pa a cada 1, 2∈lineas e icales,h1, h2∈lineas ho izon ales hace
10 alo ←polysco e( 1, 2, h1, h2);
11 si alo >max alo en onces
12 max alo ← alo ;
13 mejo ma co ←[ 1, 2, h1, h2];
14 in
15 in
16 de ol e in e secciones(mejo ma co)
11
al able o que buscamos. A con inuaci´on, de odas las l´ıneas que se han ob enido en
el p ime paso, solo se ienen en cuen a las que es ´en ce ca de alguno de los pun os
an e io es, que adem´as no pasen ce ca del cen oide del cl´us e y, ayud´andose de la
unci´on de polysco e, comp ueba que ambi´en es ´en en las ecindades del bo de del
able o.
Finalmen e, se di iden las ec as an e io es en ho izon ales y e icales, eniendo
en cuen a la pe spec i a. De es a mane a, bas a con oma pa es de es as ec as
e icales y ho izon ales pa a elegi el ma co que maximiza la unci´on de polysco e
(Figu a 2.5a). Las cua o ec as ob enidas de e mina ´an el espacio cen al del able o
y, a pa i de es o, se pod ´a deduci su posici´on exac a (Figu a 2.5b).
(a) Pa es de l´ıneas ho izon ales y e i-
cales que se conside an.
(b) Espacio cen al del able o iden i ica-
do jun o con los pun os de la cuad ´ıcula
de ec ados.
Figu a 2.5: Ejemplo de las e apas de ase de iden i icaci´on del able o.
2.1.4. Fin de la i e aci´on
Pa a pasa del cuad ado 6 ×6 al able o comple o, se o ma un bo de que, en
´ul ima ins ancia, con e ge ´a a sus l´ımi es eales. Es o se consigue a˜nadiendo un
ma gen a una dis ancia ija. Es a dis ancia se ´a la co espondien e a una casilla
cuando el able o ocupe la o alidad de la imagen en la ´ul ima i e aci´on. Como en
i e aciones in e medias el able o ocupa solo un subconjun o del o al, es e bo de
siemp e se ´a mayo o igual que el necesa io, con eniendo al able o eal (Figu a
2.6a).
Veamos c´omo ob ene es a imagen inal de la i e aci´on. Es o se i ´a an o como
inicio de la siguien e i e aci´on, si la hubie a, como imagen eco ada del able o
despu´es de ans o ma lo eniendo en cuen a la pe spec i a.
La imagen inal de cada i e aci´on se ´a un cuad ado de 1200 p´ıxeles de lado.
As´ı, el obje i o es que los pun os de ec ados que con ienen al able o (los pun os
e des en la Figu a 2.6a) sean los nue os ex emos de la imagen pa a la siguien e
12
i e aci´on. Pa a consegui es o, se calcula la ma iz de la p oyecci´on pe spec i a que
lle a los cua o pun os que hemos ob enido a los pun os (0,0), (1200,0), (0,1200)
y (1200,1200). A pa i de es a ma iz, se ans o ma ´a la imagen inicial, eco ada
po los cua o pun os, en el cuad ado que buscamos (Figu a 2.6b).
(a) Cuad ado 6 ×6 cen al del able o
( ojo) y ma gen que omamos ( e de).
(b) Imagen despu´es de aplica la
ans o maci´on en pe spec i a.
Figu a 2.6: Ejemplo del inal de la p ime a i e aci´on.
2.2. Ob enci´on de las casillas indi iduales
Una ez conocida la posici´on del able o en la imagen o iginal, enemos que
sepa a la en las casillas indi iduales de ca a a clasi ica las pa a ob ene el esul ado
inal. La p ime a ap oximaci´on consis e simplemen e en di idi la imagen de la
´ul ima i e aci´on de la de ecci´on del able o en un 8 ×8. Sin emba go, es o p esen a
un p oblema impo an e que a a emos de esol e median e un nue o m´e odo.
Como se puede obse a en la Figu a 2.1, con o me las i e aciones se ajus an
al able o, las piezas que es ´an en los bo des se en eco adas pa cialmen e. Es e
p oblema es a´un m´as g a e en el caso de la ila supe io de la imagen, en la que solo
se puede e la base de las piezas seg´un el ´angulo con el que se haga la o o. Sal o
que la imagen se ome desde un plano ceni al lo su icien emen e alejado del able o,
lo no mal es que cada pieza in ada el espacio ocupado po sus casillas ecinas.
Adem´as, po es o ´ul imo, la pa e in e io de cada casilla es la m´as p opensa
a con ene in o maci´on de casillas ecinas. Po es e mo i o, debe ´ıamos ija nos en
m´as pa es de la imagen adem´as de en los l´ımi es o mados po la p opia casilla
exclusi amen e.
13

Figu a 2.7: Esquinas de ec adas en la imagen o iginal.
2.2.1. Nue o m´e odo
Como nues o obje i o es oma una o o desde un la e al del able o, ya que es
mucho m´as sencillo que ene que posiciona una c´ama a a cie a al u a po encima,
buscamos dise˜na o o m´e odo que se adap e mejo a es as ci cuns ancias. Pa a ello,
nos basamos en la idea u ilizada en [Din16] pa a ene en cuen a que las piezas is as
en pe spec i a son m´as al as que el la e al de una casilla.
El p oblema de es e m´e odo es que pa a pode ene en cuen a la o alidad de las
piezas, no nos bas a con la imagen inal del able o eco ado. Es deci , las casillas
indi iduales hay que pasa a ob ene las de la imagen o iginal. El esul ado de las
i e aciones al de ec a el able o no nos p opo ciona las coo denadas de es e en la
o o inicial, as´ı que enemos que in e i las ans o maciones pe spec i as que se
ealizan al pasa de una i e aci´on a la siguien e. Como ejemplo, en la Figu a 2.1
end ´ıamos que hace la ans o maci´on (d) →(c) →(b) →(a).
Pa a consegui es o, nos amos gua dando los cua o pun os de las esquinas
ob enidos al inaliza cada i e aci´on. De es a o ma, pod emos calcula las ma ices
de las ans o maciones en el o den con a io y bas a ´a con in e i cada una de las
ma ices ob enidas y mul iplica las pa a ob ene la unci´on que buscamos. A pa i
de es o ya end emos la ans o maci´on que nos pe mi i ´a calcula las coo denadas
en la o o inicial de un pun o en la imagen inal eco ada. Di idiendo el esul ado
de la ´ul ima i e aci´on en la cuad ´ıcula 8 ×8 del able o, ob end emos las esquinas
de cada una de las casillas (Figu a 2.7).
Una ez conocidas las coo denadas de las cua o esquinas de una casilla, enemos
que calcula el ec ´angulo po el que eco a emos. P ime o calculamos la al u a de
la imagen como la di e encia en e una esquina supe io y una in e io mul iplicado
po un ac o de 1,75. El hecho de oma una mayo al u a m´as hace que podamos
e mejo la pa e de a iba de las piezas, que al in y al cabo es la que mejo las
di e encia, sin llega a in oduci en el ec ´angulo m´as que la base de la posible pieza
de la casilla supe io (Figu as 2.8b y2.8a). As´ı, ampliamos el conocimien o de la
14
zona de la pieza que mejo las di e encia e in oducimos el meno uido posible.
En caso de sali nos de la imagen po a iba, ajus amos la al u a al m´aximo. Como
es amos asumiendo que las o os se oman desde un la e al del able o y no desde
una esquina, podemos oma la base del ec ´angulo como el ancho de las dos esquinas
in e io es (Figu a 2.8).
Como se puede obse a en la Figu a 2.8c, hay que ajus a el ac o po el que
mul iplicamos la al u a eniendo en cuen a ambi´en que los peones son m´as bajos y
se pod ´ıan solapa los unos con los o os. O a opci´on se ´ıa ajus a la al u a seg´un
es emos en la pa e in e io o supe io de la imagen (Figu as 2.8d y2.8c). A´un as´ı,
con la su icien e a iedad de casos en el da ase , nues a ed neu onal con olucional
que e emos en la secci´on 3.3 debe ´ıa se capaz de ap ende en qu´e zona de la imagen
ija se pa a di e encia las piezas m´as al as de las m´as bajas.
Veamos una posible gene alizaci´on de es e m´e odo en caso de que e ambi´en
admi i o os hechas desde las esquinas (en las que el able o se e ´ıa como un
ombo). Pod ´ıamos oma una combinaci´on lineal de las al u as de las esquinas de
cada casilla de o ma que se man u iese lo comen ado en el p´a a o an e io cuando
el bo de in e io de la imagen uese pa alelo al bo de in e io del able o. Una opci´on
sencilla que cumpli ´ıa es o es oma la media de las al u as de las esquinas in e io es
pa a si ua la base del ec ´angulo y ajus a el ac o po el que mul iplicamos la
al u a en unci´on de la di e encia en e el ancho y el al o de la casilla.
Nues a idea inicial e a ob ene una g an can idad de o os omadas a pa idas
eales en un club de ajed ez, pe o desg aciadamen e po las ci cuns ancias ac uales
no hemos podido cons ui un da ase de piezas ob enidas de es a o ma. Po lo
an o, como e emos en la secci´on 3.2, nos queda emos con la p ime a ap oximaci´on
que hemos is o al inicio de es a secci´on pa a eco a las casillas, ya que es la o ma
con la que se han ob enido los da ase que hemos podido u iliza . Plan eamos en el
cap´ı ulo 6, como abajo u u o, segui es e es udio pa a inco po a el m´e odo que
hemos p opues o.
15
(a) Dama neg a. (b) Rey blanco.
(c) Pe´on neg o. (d) To e blanca.
Figu a 2.8: Reco e de las casillas median e la p ime a ap oximaci´on ( e de) y con
el nue o m´e odo (ama illo). En las dos p ime as igu as, las m´as al as, emos como
con el ec ´angulo ama illo se llega a pode di e encia la pa e supe io de las piezas.
En las dos igu as in e io es, las piezas m´as bajas, emos la di e encia que puede
habe en e que es ´en si uadas en la pa e in e io o supe io del able o.
16
Cap´ı ulo 3
Clasi icaci´on de las piezas
Una ez de ec ada la posici´on del able o en la imagen o iginal, el siguien e paso
es clasi ica cada una de sus casillas. Cada casilla puede es a ac´ıa o puede es a
ocupada po una pieza de uno de los jugado es, po lo que end emos que decidi a
cu´al de las 13 clases an e io es co esponde cada una de las 64 casillas del able o.
Ac ualmen e, la mane a m´as u ilizada y los mejo es algo i mos pa a ealiza
la clasi icaci´on de una imagen en una se ie de ca ego ´ıas son median e el uso de
edes neu onales con olucionales [RW17]. Adem´as, es as edes se pueden acele a
eno memen e como e emos en el cap´ı ulo 4.
3.1. No aci´on FEN
El esul ado inal de la clasi icaci´on se ´a una cadena de ca ac e es que codi ica ´a
las posiciones de las piezas en el able o median e la no aci´on de Fo sy h-Edwa ds
(FEN) [Edw94]. Como solo end emos una ins an ´anea de la pa ida, ´unicamen e
pod emos sabe la posici´on de las piezas, no el jugado al que le oca mo e o si hay
posibilidad de en oque po ejemplo ( ac o es que s´ı que se ienen en cuen a en la
no aci´on FEN comple a). As´ı, la cadena se ´a una se ie de ocho bloques de ca ac e es
al anum´e icos ep esen ando cada ila del able o sepa adas po el ca ´ac e /.
Las ilas se esc iben de izquie da a de echa y de a iba a abajo desde la pe spec-
i a de las blancas. Los ca ac e es se co esponden con las iniciales de los nomb es
de las piezas en ingl´es (a excepci´on del caballo, que se ep esen a con una n), en
may´usculas si la pieza es blanca y en min´usculas si es neg a. Las casillas en blanco se
ab e ian con un n´ume o del 1 al 8 indicando el n´ume o de casillas ac´ıas con iguas.
La posici´on inicial de una pa ida se co esponde po an o con la siguien e
cadena: nbqkbn /pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR. En la Figu a 3.1
podemos e un ejemplo de una posici´on m´as a anzada de la pa ida.
3.2. Da ase e ique ado de piezas
Ob ene un da ase e ique ado de im´agenes de able os o de piezas de ajed ez
no es a ea sencilla, ya que no exis e ninguno disponible de o ma p´ublica que sea
comple o o a iado [Din16] [CLW17]. Usualmen e, en es os casos, cada au o se
c ea su peque˜na mues a de piezas con las que pode pone a p ueba su idea. Sin
emba go, pa a en ena un modelo de deep lea ning son necesa ias una g an can idad
17
Sabiendo es o, podemos deduci en unci´on de la casilla inicial y la inal qu´e
piezas son compa ibles con el mo imien o ealizado. De es a mane a pod emos a ina
m´as la pieza que se encuen e en la casilla inal del mo imien o (Algo i mo 3.2).
En las p uebas y esul ados que mos amos en los cap´ı ulos 4y5deshabili amos
es e algo i mo, ya que equie e in o maci´on que no end emos al oma una ´unica
ins an ´anea de un able o. Es o se ´a ´u il y se pod ´a amplia como comen a emos en
el cap´ı ulo 6de ca a a digi aliza pa idas comple as.
Algo i mo 3.2: In e encia del ipo de pieza a pa i de su mo imien o.
En ada: Cadena FEN de la imagen an e io .
Vec o es de p obabilidades de la imagen ac ual.
Salida: Conjun o de piezas compa ibles con el mo imien o ealizado.
1casillas ←casillas cambiadas(FEN an e io , ec o es p obs);
2(casilla ini,casilla in,accion)←mo in e ido(FEN an e io , ec o es p obs,
3casillas);
4piezas posibles ←piezas compa ibles(casilla ini,casilla in,accion);
5de ol e piezas posibles
24

Cap´ı ulo 4
Acele aci´on
El paso inal y la pa e m´as impo an e de nues o abajo es la acele aci´on
de odo el amewo k que hemos cons uido. Desde la de ecci´on inicial del able o
has a la clasi icaci´on de las piezas pa a ob ene la digi alizaci´on comple a. Exis en
mul i ud de ´ecnicas pa a hace m´as e icien e la ejecuci´on de un p og ama, espec´ı ica-
men e pa a la ejecuci´on e icien e de edes neu onales p o undas [Sze+17] [Kim+19]
[MDB20]. En es e cap´ı ulo e emos las que hemos u ilizado noso os y c´omo las
hemos adap ado a es e caso conc e o.
4.1. Pla a o mas de in e encia
En base al uso inal de nues o p og ama, decidimos que lo m´as ap opiado se ´ıa
su ejecuci´on en local en un sis ema empo ado con ha dwa e espec´ı ico pa a la
acele aci´on. Exis en di e sos sis emas que cumplen es as ca ac e ´ıs icas y se adap an
al c´alculo de la in e encia de modelos de deep lea ning. T es de ellos se ´ıan el In el
Neu al Compu e S ick 2 [In ], los sis emas Co al de Google [Goo] o la amilia Je son
de N idia [N ia].
Los Neu al Compu e S ick 2 de In el pe mi en a˜nadi median e una conexi´on
USB una unidad de p ocesamien o de isi´on (Vision P ocessing Uni o VPU), es o
es, un acele ado ha dwa e de bajo consumo dedicado al c´alculo de algo i mos de
isi´on a i icial, como pueden se las edes neu onales con olucionales. Los sis emas
Co al de Google es ´an compues os o bien po una unidad USB o bien po una placa
dedicada, pe mi iendo dispone en ambos casos de una unidad de p ocesamien o
enso ial (Tenso P ocessing Uni o TPU) pa a la acele aci´on de edes neu onales. La
di e encia undamen al de una TPU con espec o a un GPU es el olumen de c´alculo
que pueden alcanza , es ando las TPU op imizadas pa a ama˜nos de ba ch m´as
g andes. Adem´as, es ´an pensadas ´ın eg amen e pa a el c´ompu o u ilizando p ecisi´on
educida, de o ma simila a los n´ucleos enso iales que p opo cionan las GPU de
N idia m´as ecien es.
En nues o caso amos a u iliza la N idia Je son Nano [N ib], el disposi i o m´as
peque˜no de la amilia Je son. Es ´a compues o po una placa dedicada con dos modos
de consumo, 5 o 10 W. Unos alo es muy educidos en compa aci´on con su po encia
de c´ompu o, ya que puede llega a los 472 GFLOPs en FP16. Sus especi icaciones
´ecnicas p incipales son las siguien es:
Una GPU con a qui ec u a NVIDIA Maxwell de 128 n´ucleos CUDA.
Una CPU ARM de cua o n´ucleos Co ex-A57 a 1,43 GHz.
25
4 GB de memo ia RAM LPDDR4 a 25,6 GB/s.
Conec i idad Gigabi E he ne y conexi´on HDMI y DisplayPo .
Es as ca ac e ´ıs icas nos o ecen, adem´as de una GPU dedicada de N idia con
el po encial de Tenso RT pa a la in e encia (como e emos en la secci´on 4.2), una
CPU capaz de ealiza el c´ompu o secuencial necesa io pa a de ec a los able os.
Del mismo modo, hemos op ado po usa es a pla a o ma ya que, al inclui una GPU,
pe mi e acele a ambi´en las ases de de ecci´on del able o. Es e ipo de a qui ec u a
se iene usando con ´exi o desde hace m´as de una d´ecada en las a eas elacionadas
con el p ocesamien o de im´agenes [Se +07] [Ten+08].
Es e sis ema o ma pa e de la amilia Teg a X1 “E is a”, con una disminuci´on de
la ecuencia de la CPU y disponiendo solamen e de la mi ad de n´ucleos CUDA que
los modelos u ilizados en la N idia Shield TV [N id] o la Nin endo Swi ch [Nin]. Es a
amilia ue la p ime a de N idia que se dise˜n´o pensando en disposi i os po ´a iles,
adem´as de se la p ime a a qui ec u a que incluy´o cie o sopo e pa a ope aciones
en pun o lo an e de 16 bi s. En algunas si uaciones, como en el caso de que se a e
de la misma ope aci´on, dos ope aciones en FP16 se pueden empaque a jun as a
ejecuci´on sob e un ´unico n´ucleo CUDA de 32 bi s (Figu a 4.1) [HS]. Es o ´ul imo lo
u iliza emos de ca a a la acele aci´on de la in e encia de nues as edes neu onales.
Figu a 4.1: Ejecuci´on sob e un n´ucleo CUDA de 32 bi s de dos ope aciones del
mismo ipo en FP16.
4.2. Op imizado es: ONNXRun ime y Tenso RT
Como hemos comen ado en la secci´on 3.3, an o la de inici´on de nues a ed
neu onal como su en enamien o los hemos ealizado u ilizando la lib e ´ıa Ke as so-
b e Tenso Flow. Ve emos aho a que la in e encia empleando es as lib e ´ıas se puede
acele a eno memen e sob e o as pla a o mas. En es a secci´on es udia emos las dos
que hemos u ilizado: el o ma o de ep esen aci´on de modelos ONNX (Open Neu-
al Ne wo k Exchange) [ONN] y su op imizado ONNXRun ime [Mic] y Tenso RT
[N ie], la lib e ´ıa de N idia pa a la op imizaci´on de la in e encia sob e sus a je as
g ´a icas (Figu a 4.2).
26
Figu a 4.2: Flujo de abajo pa a la acele aci´on de la in e encia.
ONNX es un o ma o lib e de ep esen aci´on de modelos de ap endizaje au-
om´a ico que de ine un conjun o de ope ado es y un o ma o de a chi o no malizado.
De es a o ma se ob iene una ep esen aci´on es ´anda que pe mi e la in e conexi´on
en e una g an a iedad de lib e ´ıas de IA, he amien as, mo o es de ejecuci´on y
compilado es. Posibili a el desa ollo de los modelos median e lib e ´ıas como Ke as,
Ca e, MATLAB, PyTo ch o Tenso Flow y su pos e io despliegue en en o nos de
ejecuci´on dise˜nados pa a acele a la in e encia sob e un ha dwa e espec´ı ico.
ONNXRun ime es un mo o de in e encia de al o endimien o que pe mi e op-
imiza la ejecuci´on de modelos de machine lea ning ap o echando de o ma m´as
e icien e las capacidades de cada ha dwa e. El modelo ONNX lo con ie e a una
ep esen aci´on in e na en memo ia p incipal y le aplica una se ie ans o maciones,
como po ejemplo la di isi´on del modelo en una se ie de pa es pa a que cada una se
ejecu e sob e un en o no de ejecuci´on o acele ado di e en e (CPU, nG aph, CUDA,
Tenso RT...).
ONNX ambi´en nos si e como ep esen aci´on in e media a pa i de Ke as pa a
u iliza op imizado es sob e ha dwa e m´as espec´ı icos, como puede se Tenso RT
pa a las a je as g ´a icas de N idia. U iliza Tenso RT de o ma di ec a en ez de
indi ec amen e a pa i de ONNXRun ime nos pe mi e aplica m´as y mejo es op imi-
zaciones adap adas espec´ı icamen e al ha dwa e inal. Es o se debe a que el paso del
modelo en o ma o ONNX a Tenso RT se ealiza sob e es e ha dwa e, disponiendo
de odos los pa ´ame os del sis ema de ini i o. Sin emba go, es as ans o maciones
se ´an a cos a de una disminuci´on muy le e en la p ecisi´on ob enida.
Las op imizaciones que ealiza Tenso RT de ca a a educi el iempo necesa io
pa a la in e encia son las siguien es:
Disminui el ama˜no en memo ia de los pesos pa a maximiza el ancho de
banda, a expensas de educi m´ınimamen e la p ecisi´on del modelo. De es a
27
o ma, se puede pasa de n´ume os en coma lo an e de 32 bi s a 16 bi s o
incluso a en e os de 8 bi s median e ans o maciones y ajus es adicionales.
Fusiona capas del modelo pa a op imiza el uso de la memo ia de la GPU y el
ancho de banda. Donde sea posible, ans o ma en un ´unico nodo una po ci´on
m´as compleja del modelo inicial.
Adap a los algo i mos y da os usados en la ejecuci´on de las capas del modelo
a la GPU obje i o.
Redis ibui los da os pa a minimiza la can idad de huecos en memo ia.
Pa aleliza la ejecuci´on de o ma que se u ilice de o ma e icien e oda la GPU.
4.3. De ecci´on del able o
Como ya hemos is o en el cap´ı ulo 2, la ase de de ecci´on del able o se compone
de dis in os m´odulos que se ejecu an de o ma i e a i a has a ob ene la posici´on
inal. Pa a en ende mejo el cos e compu acional de odo ese p oceso, analizamos
a ias ejecuciones del c´odigo con la he amien a de an´alisis de endimien o (p o ile )
que p opo ciona Py hon po de ec o.
Los p ime os pasos as decidi nos po basa la de ecci´on del able o en es e
m´e odo han sido:
Adap a el c´odigo a las e siones ac uales del lenguaje y de las lib e ´ıas u ili-
zadas, sob e odo el paso de Py hon 2 a Py hon 3, OpenCV 2 a 4 y Tenso Flow
1 a 2.
Re ac o iza el p oyec o pa a que enga mayo cla idad y pode inclui lo m´as
acilmen e en nues o amewo k.
Adecua odo el c´odigo a la gu´ıa de es ilo de Py hon PEP8 [RWC01].
Una ez ob enido un ma co uncional, pasamos a hace un p ime an´alisis del
endimien o del c´odigo u ilizando el p o ile de Py hon. Es a he amien a nos p o-
po ciona una se ie de es ad´ıs icas y nos desc ibe cu´an as eces y du an e cu´an o
iempo se ha ejecu ado cada unci´on del c´odigo. En pa icula , po cada unci´on nos
indica el n´ume o eces que se ha llamado y el iempo o al y po llamada que ha
a dado, dis inguiendo en e inclui o no el iempo que hayan empleado sus sub un-
ciones en ejecu a se. Es o nos pe mi i ´a dedica es ue zo a op imiza las zonas del
c´odigo que nos ayan a p opo ciona una mayo disminuci´on del iempo.
Las ejecuciones pa a analiza el endimien o de la de ecci´on de able o las ealiza-
mos sob e nues a pla a o ma inal, la N idia Je son Nano. Las im´agenes de p ueba
son el conjun o de 10 o os que u ilizan los au o es de [CLW17] pa a ob ene sus
28
esul ados. Es as son im´agenes de si uaciones muy a iadas, que con ienen o os ob-
je os que o man l´ıneas ec as adicionales adem´as del able o y que ienen somb as,
dis o siones y uido.
Los iempos mos ados aqu´ı son desde an es de lee las im´agenes de en ada
has a despu´es de esc ibi la imagen de ec ada de cada able o ( e Figu a 2.1). En
pa icula , es e no incluye la ob enci´on de las casillas indi iduales. Pa a un an´alisis
comple o de los iempos inales e el cap´ı ulo 5.
4.3.1. P ime an´alisis: Op imizaci´on median e ONNX
En la ejecuci´on del c´odigo en es a ase ob enemos que se a da una media de
16,01 segundos en p ocesa cada uno de los 10 able os de p ueba. Es e iempo lo
ob enemos u ilizando la lib e ´ıa imei y ejecu ando 5 eces el conjun o comple o de
able os. Los siguien es da os desg anados ienen dados po el p o ile , que conlle a
un lige o sob ecos e, po lo que los exp esamos como po cen ajes del iempo o al
pa a abs ae nos de es a di e encia.
Inicialmen e, el 38,1 % del iempo se emplea en la ase de iden i icaci´on de la
posici´on del able o (CPS) 2.1.3, el 37,4 % en la ase de b´usqueda de pun os de la
cuad ´ıcula (LAPS) 2.1.2 y el 18 % en la ase de de ecci´on de l´ıneas ec as (SLID)
2.1.1. De aqu´ı, obse amos que m´as de es cua as pa es del iempo de b´usqueda
de pun os de la cuad ´ıcula se emplea en la in e encia de la ed neu onal, desa ollada
po [CLW17], u ilizada pa a e mina de decidi los pun os que no il a el de ec o
geom´e ico ( ´ease el Algo i mo 2.3). Po lo an o, un buen pun o de pa ida pa a
op imiza el c´odigo se ´ıa acele a es a ed neu onal.
Pa a ello, p ime o ecupe amos del p oyec o o iginal la es uc u a del modelo
y los pesos en enados pa a de ec a los pun os que o man pa e de la cuad ´ıcula
del able o. Pos e io men e, ans o mamos el modelo a o ma o ONNX pa a pode
educi el iempo necesa io pa a su ejecuci´on median e ONNXRun ime, como hemos
is o en la secci´on 4.2. De es a mane a, haciendo unos cambios m´ınimos en el c´odigo,
pod emos ap o echa un modelo p e iamen e en enado op imiz´andolo de o ma casi
anspa en e.
T as op imiza es a pa e del p og ama, hacemos una nue a p ueba de endi-
mien o y comp obamos que aho a se a da una media de 10,33 segundos en p ocesa
cada uno de los 10 able os de p ueba. As´ı, cen ´andonos en mejo a las unciones
en las que se in ie e una mayo can idad de iempo, conseguimos un speedup de
1,55.
4.3.2. Segundo an´alisis: Reducci´on del sob ecos e de NumPy
Una ez op imizada la ejecuci´on de la ed neu onal en la ase LAPS as el p ime
an´alisis, ol emos a e alua el endimien o del c´odigo pa a e po d´onde podemos
segui mejo ando. En es e segundo an´alisis, ap oximadamen e el 41,4 % del iempo
29

se emplea en la iden i icaci´on de la posici´on del able o, el 28,6 % en la de ecci´on de
l´ıneas ec as y el 21,8 % en la b´usqueda de pun os de la cuad ´ıcula ( eco demos que
es o an es ocupaba el 37,4 % del iempo).
Llegado a es e pun o, nos so p ende que casi la e ce a pa e del iempo o al se
emplea en el c´alculo de un p oduc o ec o ial u ilizando la lib e ´ıa NumPy [Oli06].
Es a ope aci´on o ma pa e de una peque˜na unci´on u ilizada an o po la iden i i-
caci´on de la posici´on del able o como po la de ecci´on de l´ıneas ec as. El c´alculo
es simplemen e
k(y−x)×(x−z)k,
donde obse amos que x, y yzson ec o es de dos componen es. Sabiendo es o,
podemos ans o ma el mismo c´alculo a o a o ma equi alen e y mucho m´as sencilla
sin necesidad de hace llamadas a la lib e ´ıa NumPy. Las llamadas a lib e ´ıas, al
in oduci peque˜nos sob ecos es po su amplio espec o de posibles usos, acaban
siendo menos e icien es.
El c´alculo an e io puede simpli ica se como
|(y1−x1)(x2−z2)−(y2−x2)(x1−z1)|,
donde hemos deno ado x= (x1, x2), y = (y1, y2) y z= (z1, z2). Es a ope aci´on
puede hace se di ec amen e sin necesidad de u iliza lib e ´ıas ex e nas. Tambi´en
hemos e i ado el c´alculo de la no ma del ec o esul an e del p oduc o ec o ial
in oduciendo simplemen e un alo absolu o.
Hay que no a que es a ope aci´on acaba ealiz´andose m´as de 25000 eces po
able o de ec ado. Po lo an o, in en amos e si se puede educi su uso de alguna
mane a. Reo denando la o ma de calcula si una l´ınea es ´a ce ca del bo de de la
cuad ´ıcula ( ´ease el Algo i mo 2.4), e i amos llamadas a es a ope aci´on cuyos esul-
ados a eces no e an necesa ios. As´ı, conseguimos educi casi un 20 % el n´ume o
de in ocaciones a es a unci´on.
T as es os cambios hacemos una nue a p ueba de endimien o y comp obamos
que aho a se a da una media de 5,55 segundos en p ocesa cada uno de los 10
able os de p ueba, consiguiendo un speedup de 1,86 sob e la op imizaci´on an e io .
4.3.3. Te ce an´alisis: Reducci´on del sob ecos e de Ben ley-
O mann
Despu´es de obse a c´omo las llamadas a lib e ´ıas pueden supone un cos e
compu acional mayo de lo necesa io si no es ´an jus i icadas, ol emos a analiza el
c´odigo po si hubiese alguna o a si uaci´on simila . En el e ce an´alisis, ap oxima-
damen e el 40,2 % del iempo se emplea en la b´usqueda de pun os de la cuad ´ıcula,
el 32,3 % en la iden i icaci´on de la posici´on del able o y el 20,6 % en la de ecci´on de
l´ıneas ec as.
Aqu´ı, des aca el hecho de que una unci´on dedicada al c´alculo de las in e sec-
ciones de un conjun o de l´ıneas median e el algo i mo de Ben ley-O mann ocupa
30
casi el 39 % del iempo o al. Vimos al p incipio del Algo i mo 2.3 que es e m´e odo
de ba ido se emplea pa a ob ene odos los pun os candida os a o ma pa e de la
cuad ´ıcula del able o. Sin emba go, aqu´ı emos que adem´as de pa a ese caso, am-
bi´en se es ´a u ilizando pa a calcula la in e secci´on de cada pa de l´ıneas e icales
y ho izon ales candida as a se el ma co de la cuad ´ıcula 6 ×6 del able o ( un-
ci´on polysco e del Algo i mo 2.4). Es e segundo uso supone el 56,5 % del iempo
empleado en es e c´alculo.
El algo i mo de Ben ley-O mann pe mi e calcula las in e secciones de un con-
jun o de l´ıneas de o ma m´as e icien e, O((n+k) log n), que la i ial, O(n2), donde
nes el n´ume o de l´ıneas y kel n´ume o de in e secciones. Pa a consegui es o se
a˜nade un sob ecos e que no compensa pa a conjun os peque˜nos de l´ıneas, en nues-
o segundo caso son solo 4 l´ıneas.
Sol en amos es a si uaci´on calculando di ec amen e las 6 posibles in e secciones
de 2 l´ıneas de en e el conjun o de 4. Es o consis e b´asicamen e en el c´alculo de
de e minan es de o den 2 y ope aciones elemen ales, que en nues o caso, al se un
conjun o peque˜no, no supone ninguna ine iciencia p ´ac ica. De es a o ma educimos
el iempo en p ocesa cada uno de los 10 able os de p ueba a una media de 4,22
segundos po able o, consiguiendo un speedup de 1,32 sob e la op imizaci´on an e io .
4.4. Clasi icaci´on de las piezas
En las secciones 3.3 y3.4 hemos de allado el p oceso de clasi icaci´on de las piezas
del able o u ilizando una ed neu onal p o unda cons uida median e Ke as. Una
ez es ablecido el p oceso a a ´es del cual podemos comple a la digi alizaci´on del
able o, es amos en si uaci´on de escoge qu´e modelo u iliza emos pa a la in e encia
y c´omo acele a emos su ejecuci´on.
E ec ua emos las p uebas sob e 5 im´agenes con able os de ajed ez que con ienen
piezas de dis in o ipo al u ilizado en el conjun o de da os de en enamien o. De
es a o ma, pod emos comp oba lo obus o que es cada modelo an e cambios en
el ipo de las piezas. Cada able o iene en e 21 y 32 piezas en posiciones di e sas
ex a´ıdas de pa idas eales. A di e encia del esquema que mos amos inicialmen e
en las Figu as 1.1 y1.2, las o os pa a es as p uebas las hemos omado desde un
plano ceni al. Adap ´andonos as´ı a las si uaciones que hemos comen ado en la secci´on
2.2 al ob ene las casillas indi iduales del able o (Figu a 4.3). Como p opond emos
en el cap´ı ulo 6, en el caso de dispone de un da ase con el que eco a las casillas
u ilizando el m´e odo is o en el apa ado 2.2.1, s´ı que pasa ´ıamos a oma las o os
desde un la e al.
Los alo es pa a la p ecisi´on los oma emos como el po cen aje de casillas p edi-
chas co ec amen e po nues o p og ama. Es o no coincide exac amen e con lo que
se ´ıa el alo Top-1 del modelo, ya que adem´as enemos en cuen a el conocimien o
sob e el dominio que hemos de allado en la secci´on 3.4.
31
Figu a 4.3: Una de las im´agenes de p ueba pa a la clasi icaci´on de las piezas. Tomada
en el XXXVII To neo de Ajed ez Pueblo Nue o 60’+30”.
4.4.1. Elecci´on del modelo
Adelan ´abamos en la secci´on 3.3 los modelos que hemos escogido pa a la cla-
si icaci´on. Una ez en enados sob e el da ase de piezas de ajed ez, enemos que
hace una compa aci´on en e las p ecisiones ob enidas y el iempo necesa io pa a la
in e encia. Pa a ello, en una p ime a ap oximaci´on ejecu amos la in e encia sob e la
Je son Nano u ilizando los modelos ob enidos di ec amen e de Ke as y ob enemos
los esul ados de la Tabla 4.1.
Xcep ion DenseNe 201 NASNe Mobile MobileNe V2
Tes 1 95 % 18,73s 94 % 28,95s 94 % 11,81s 98 % 5,85s
Tes 2 94 % 18,73s 95 % 28,98s 92 % 12,01s 89 % 5,81s
Tes 3 95 % 18,73s 94 % 28,88s 91 % 11,73s 92 % 5,88s
Tes 4 91 % 18,72s 91 % 28,96s 91 % 11,68s 91 % 5,85s
Tes 5 97 % 18,72s 88 % 29,03s 98 % 11,89s 92 % 5,90s
Media 94 % 18,73s 92 % 28,96s 93 % 11,82s 92 % 5,86s
Tabla 4.1: P ecisi´on y iempo ob enido sob e la Je son Nano pa a cada uno de los
modelos iniciales ejecu ando la in e encia median e Ke as.
De es os p ime os esul ados podemos conclui que los cua o modelos son lo
su icien emen e complejos como pa a ap ende las ca ac e ´ıs icas que p opo ciona
la imagen de una casilla, ya que p opo cionan alo es simila es de p ecisi´on. De ellos,
el m´as ´apido es el que iene un meno n´ume o de pa ´ame os, es deci , MobileNe V2.
32
Compa ando, MobileNe V2 iene unos 3,6 millones de pa ´ame os en e a los 5,4
millones de NasNe Mobile, los 20,3 millones de DenseNe 201 o los 23 millones de
Xcep ion.
Viendo es os esul ados nos p egun amos si con modelos m´as sencillos, cuya
in e encia debe ´ıa se m´as ´apida, pod ´ıamos ob ene una p ecisi´on simila . As´ı,
decidimos en ena ambi´en una ed AlexNe y o a SqueezeNe - 1.1. Adem´as de
es as dos edes, la p opia MobileNe V2 con iene un pa ´ame o αque con ola el
ancho de la ed. Con α= 1, el n´ume o de il os en cada capa es el alo po de ec o
que p opo cionan los au o es del modelo. Con α > 1 se aumen a y con 0 < α < 1
se disminuye p opo cionalmen e el n´ume o de il os en cada capa. As´ı, incluimos
en las p uebas la p opia ed MobileNe V2 con α= 0,5 y α= 0,35, alo es pa a los
cuales Ke as p opo ciona pesos sob e ImageNe pa a inicializa el en enamien o.
MobileNe V2 MobileNe V2 AlexNe SqueezeNe - 1.1
α= 0,5α= 0,35
Tes 1 95 % 3,10s 89 % 3,02s 81 % −97 % 1,27s
Tes 2 91 % 3,17s 75 % 3,05s 61 % −86 % 1,28s
Tes 3 94 % 3,09s 83 % 3,02s 81 % −92 % 1,28s
Tes 4 88 % 3,08s 83 % 3,02s 75 % −84 % 1,29s
Tes 5 91 % 3,12s 89 % 3,04s 73 % −94 % 1,28s
Media 92 % 3,11s 84 % 3,03s 74 % −91 % 1,28s
Tabla 4.2: P ecisi´on y iempo ob enido sob e la Je son Nano pa a cada uno de los
modelos m´as sencillos ejecu ando la in e encia median e Ke as.
En la Tabla 4.2 podemos obse a los esul ados de es a segunda ba e ´ıa de p ue-
bas. Comp obamos que MobileNe V2 man iene la p ecisi´on con α= 0,5, educiendo
el iempo empleado en la in e encia a casi la mi ad que con α= 1. El o o modelo
que consigue una p ecisi´on supe ando el 90 % es SqueezeNe - 1.1, que adem´as es el
m´as ´apido de odos los candida os al ejecu a se di ec amen e median e Ke as sob e
la Je son Nano. La p ecisi´on de MobileNe V2 con α= 0,35 es no ablemen e in e io
a la a ian e con α= 0,5 sin consegui apenas mejo as en el iempo.
El modelo que peo es esul ados ob iene es AlexNe . En es e caso, al igual que con
SqueezeNe - 1.1, hemos ealizado la implemen aci´on a pa i de cada capa bas´ando-
nos en o os modelos que no es ´an incluidos o icialmen e en la lib e ´ıa de Ke as. Sin
emba go, al con a io que con el es o de modelos, no hay disponibles pesos sob e
ImageNe pa a la implemen aci´on que hemos ealizado de AlexNe . Es os han sido
los mejo es esul ados que hemos ob enido as a ios en enamien os. Es e hecho
ha podido se un ac o a la ho a de explica po qu´e la p ecisi´on es in e io al es o
cuando en eo ´ıa es e modelo se compo a como SqueezeNe - 1.1 sob e ImageNe .
Adem´as, ha sido demasiado pesado en memo ia pa a ejecu a se de es a mane a sob e
la Je son Nano (los esul ados de la Tabla 4.2 son los ob enidos en nues o PC, de
ah´ı que no incluyamos alo es pa a los iempos). Pod emos hace un mejo an´alisis
33
an o, educimos el n´ume o de modelos a conside a de 8 a 4 y, dependiendo de
nues as necesidades, pod ´ıamos op a po una de las siguien es edes: SqueezeNe -
1.1, MobileNe V2 (α= 0,5), NASNe Mobile o Xcep ion. N´o ese que la ejecuci´on
de NASNe Mobile es sob e ONNXRun ime.
Figu a 5.1: P ecisi´on ob enida po cada modelo en unci´on del iempo necesa io pa a
la in e encia de un able o sob e la Je son Nano median e Tenso RT en un ba ch
de 64 im´agenes, sal o NASNe Mobile, cuyo mejo iempo es sob e ONNXRun ime.
Omi imos AlexNe po ob ene una p ecisi´on mucho meno .
5.3. Digi alizaci´on o al
La comple a digi alizaci´on de un able o de ajed ez comp ende desde que el sis-
ema de ec a que hay una nue a imagen a p ocesa has a que e mina de p ocesa la
y p oduce una cadena en no aci´on FEN. En las secciones an e io es hemos es udia-
do en de alle los esul ados que hemos ob enido pa a la de ecci´on del able o en la
imagen inicial y la clasi icaci´on de las piezas una ez sepa adas las casillas indi i-
duales. Adem´as de es as dos acciones, que suponen la p ac ica o alidad del iempo
de ejecuci´on, exis en o as es ope aciones que hay que comple a pa a e mina
odo el p oceso.
En p ime luga , una ez de ec ado el able o de ajed ez debemos sepa a las
casillas indi iduales (secci´on 2.2). Es o supone unos 80 milisegundos sob e la Je son
Nano. Adem´as, despu´es de ob ene los ec o es de p obabilidades de la ed que es-
40

emos u ilizando, hay que in e i cu´al es la con igu aci´on de piezas (secci´on 3.4) y
inalmen e ans o ma es a in o maci´on a la no aci´on FEN (secci´on 3.1). La suma
del iempo necesa io pa a ejecu a es as dos ope aciones es in e io a los 10 milise-
gundos. Po an o, adicionalmen e a los iempos de los p ocesos que hemos es udiado
en p o undidad, debemos a˜nadi algo menos de 100 milisegundos pa a comple a la
digi alizaci´on.
Resumimos odos los iempos que hemos ob enido en la Tabla 5.4. Aqu´ı podemos
e de o ma m´as cla a que exis e una a iable impo an e a la ho a de desplega el
sis ema, qu´e ed u iliza pa a la clasi icaci´on de las piezas. Es o depende ´a del uso
inal del p og ama y, como e emos en el cap´ı ulo de conclusiones y abajo u u o,
de las necesidades y mejo as que se puedan implemen a .
Tes 1 Tes 2 Tes 3 Tes 4 Tes 5
De ecci´on able o 4,21s 3,30s 4,28s 3,69s 3,35s
Sepa a casillas
indi iduales 0,08s
Ob ene ec o es
de p obabilidades
SqueezeNe - 1.1 0,46s
MobileNe V2 (α= 0,5) 0,60s
NASNe Mobile 3,42s
Xcep ion 5,61s
In e i piezas +
No aci´on FEN 0,01s
To al
SqueezeNe - 1.1 4,76s 3,85s 4,83s 4,24s 3,90s
MobileNe V2 (α= 0,5) 4,90s 3,99s 4,97s 4,28s 4,04s
NASNe Mobile 7,72s 6,81s 7,79s 7,20s 6,86s
Xcep ion 9,91s 9,00s 9,98s 9,39s 9,05s
Tabla 5.4: Resumen de iempos o ales sob e la Je son Nano po able o de p ueba
pa a cada uno de los modelos que o man el en e de Pa e o.
Al es udia los iempos que emplea nues o p og ama en ejecu a cada una de
es as ases obse amos que, si op amos po las edes m´as peque˜nas pa a la clasi ica-
ci´on de las piezas, la inmensa mayo ´ıa del iempo anscu e en la ase de de ecci´on
del able o. En si uaciones en las que sepamos que el able o y la c´ama a an a es a
inm´o iles, podemos ap o echa pa a no ecalcula su posici´on cada ez. As´ı, simple-
men e enemos que man ene las coo denadas de las esquinas que hemos calculado
an e io men e, comp oba que el able o sigue en el mismo si io y pasa a sepa a
las casillas di ec amen e.
Siguiendo la idea in oducida en el apa ado 2.1.2, hemos implemen ado un al-
go i mo que nos pe mi e comp oba de una o ma ´apida si el able o sigue en la
misma posici´on. Pa a ello, u ilizamos el de ec o geom´e ico y la ed neu onal is os
al busca los pun os de la cuad ´ıcula. Si las 49 esquinas del cuad ado cen al 6 ×6
41
del able o siguen en su si io, pod emos a i ma que la in o maci´on que en´ıamos
sigue siendo co ec a. Al con a las esquinas que s´ı o man pa e de la cuad ´ıcula
end emos que oma un ma gen de ole ancia, ya que hay pun os que pueden es a
ocluidos po alguna pieza. De o ma expe imen al hemos comp obado que ace ando
20 de los 49 pun os que comp obamos es su icien e pa a a i ma que el able o sigue
en el mismo si io (Algo i mo 5.1).
Algo i mo 5.1: Comp obaci´on de la posici´on del able o.
En ada: Imagen que con iene un able o.
Esquinas candida as a segui o mando pa e del cuad ado
cen al 6 ×6 del able o.
Salida: Si el able o sigue en la misma posici´on.
1esquinas co ec as ←0;
2pa a cada pun o ∈esquinas hace
3ma iz ←p ep ocesa ( ecindad(imagen,pun o));
4es pun o cuad icula ←de ec o geome ico(ma iz);
5si es pun o cuad icula en onces
6esquinas co ec as ←esquinas co ec as + 1;
7en o o caso
8es pun o cuad icula ← ed neu onal(ma iz);
9si es pun o cuad icula en onces
10 esquinas co ec as ←esquinas co ec as + 1;
11 in
12 // Si no pe enece a la cuad ´ıcula, pasamos a la siguien e
13 in
14 in
15 de ol e esquinas co ec as ≥ ole ancia (= 20)
La ejecuci´on de es e algo i mo sob e la Je son Nano a da unos 150 milisegun-
dos po able o. Luego en caso de de ol e un esul ado posi i o conseguimos una
educci´on eno me en el iempo o al. En la Tabla 5.5 esumimos los iempos cuando
es a comp obaci´on de uel e cie o.
Como podemos obse a , es a p edicci´on educi ´ıa el iempo o al necesa io pa a
digi aliza nue as posiciones a menos de un segundo. Adem´as, con es e iempo se
pod ´ıa a˜nadi un mues eo pe i´odico de im´agenes pa a cap u a posibles jugadas
in e medias. Se pod ´ıan e i a de es a o ma los casos en los que haya, po ejemplo,
una mano apando pa e del able o.
Es e peque˜no sob ecos e que hab ´ıa que a˜nadi en caso de que la comp obaci´on
de uel a also se e al amen e compensado. En la Tabla 5.4 hemos is o que el a-
ble o que se de ec a m´as ´apido a da 3,30 segundos, luego con que la comp obaci´on
de ol ie a cie o en 1 de cada 14 ocasiones, se e ´ıan amo izadas es as llamadas.
42
Table o inm´o il
Comp obaci´on
able o 0,15s
Sepa a casillas
indi iduales 0,08s
Ob ene ec o es
de p obabilidades
SqueezeNe - 1.1 0,46s
MobileNe V2 (α= 0,5) 0,60s
NASNe Mobile 3,42s
Xcep ion 5,61s
In e i piezas +
No aci´on FEN 0,01s
To al
SqueezeNe - 1.1 0,70s
MobileNe V2 (α= 0,5) 0,84s
NASNe Mobile 3,66s
Xcep ion 5,85s
Tabla 5.5: Resumen de iempos o ales pa a cada uno de los modelos que o man
el en e de Pa e o sob e la Je son Nano cuando la comp obaci´on de la posici´on del
able o de uel e cie o.
43
Cap´ı ulo 6
Conclusiones y abajo u u o
La isi´on a i icial es un campo que es ´a omando una g an ele ancia en muchas
si uaciones. El acceso de la sociedad a disposi i os capaces de in e ac ua con el
mundo que les odea ha supues o la au oma izaci´on de a eas muy di e sas, bien
sea median e c´alculos en sis emas empo ados o u ilizando el pode de c´ompu o de
po en es se ido es alojados en la nube. En el ´ambi o del ajed ez, uno de los p ime os
juegos pa a los que se desa oll´o un algo i mo de in eligencia a i icial, ambi´en se
puede aplica es e campo a la au oma izaci´on de la digi alizaci´on de las pa idas. En
es e abajo hemos explo ado una de las opciones que mejo es esul ados p opo ciona
en la ac ualidad y hemos c eado un p og ama que es capaz de segui el i mo de una
pa ida de ajed ez sob e un sis ema empo ado.
Como hemos podido obse a en los esul ados inales (Tabla 5.4), el iempo
o al u ilizando an o SqueezeNe - 1.1 como MobileNe V2(α= 0,5) se man iene
po debajo de los 5 segundos pa a odos los able os de p ueba sob e la Je son
Nano. Es o es alcanzando una p ecisi´on de 91 y 92 % espec i amen e a la ho a
de clasi ica las piezas. M´as a´un, si el able o pe manece inm´o il, es os iempos se
educen has a los 0,70 y 0,84 segundos espec i amen e.
El iempo que nos ma camos como obje i o inicialmen e ue on 5 segundos po
jugada. Po lo an o, despu´es de pa i de un iempo o al que ondaba en e los
25 y 45 segundos po able o, du aci´on que no hac´ıa ac ible su uso p ´ac ico, he-
mos podido alcanza una me a que pe mi i ´ıa su despliegue en si uaciones eales.
Todo ello ealizando los c´alculos ´ın eg amen e en un sis ema empo ado sin nece-
sidad de conec i idad con ninguna ed. El c´odigo comple o del p og ama que he-
mos desa ollado se encuen a de o ma p´ublica en nues o eposi o io de Gi Hub:
h ps://gi hub.com/da idmallasen/Li eChess2FEN.
En enando las dis in as edes neu onales con olucionales pa a la clasi icaci´on de
las piezas nos hemos encon ado con una ba e a a la ho a de mejo a la p ecisi´on.
Los modelos m´as sencillos han sido capaces de ap ende p ´ac icamen e oda la in-
o maci´on disponible en el da ase que hemos podido ecopila , y el hecho de oma
modelos m´as complejos no ha p opo cionado casi bene icio (Tabla 4.1). Teniendo en
cuen a es o, conside amos que pa e de es e p oblema se soluciona ´ıa in oduciendo
m´as in o maci´on en el da ase , po ejemplo median e el nue o m´e odo de sepa aci´on
de casillas que hemos p opues o (apa ado 2.2.1). As´ı e i a ´ıamos los casos en los
que solo se e la base de la pieza, si uaci´on en la que ni siquie a un humano es capaz
de dis ingui la.
En el caso de que mejo ando el da ase se ob u ie an esul ados m´as p ecisos
con un modelo que equie a un mayo es ue zo de c´ompu o, la disponibilidad de
44
n´ucleos enso iales pa a el c´alculo de ope aciones en FP16 se ´ıa una mejo a c ´ı ica.
Una e oluci´on de la Je son Nano, que iene el mismo ac o de o ma, es la Je son
Xa ie NX [N ic]. Ac ualmen e, es e m´odulo onda los 400$, unas 4 eces m´as que
la Je son Nano, aunque p e isiblemen e con la ecien e salida de la a qui ec u a
Ampe e hab ´a una educci´on de p ecios o nue os modelos con p ecio in e io .
La Je son Xa ie NX iene una GPU con una a qui ec u a Vol a que apo a 384
n´ucleos CUDA, 48 n´ucleos enso iales y 2 n´ucleos NVDLA (NVidia Deep Lea ning
Accele a o ), en e a los 128 n´ucleos CUDA de la Je son Nano que hemos empleado
noso os. Adem´as, dispone de una CPU hexa-co e y 8 GB de RAM, an e los cua o
n´ucleos y 4 GB de nues a pla a o ma. Todo ello hace que sea capaz de alcanza 6
TFLOPS en FP16, unas 12 eces m´as de lo que disponemos ac ualmen e. Adem´as,
a di e encia de la Je son Nano, pe mi e la ejecuci´on de ope aciones en en e os de
8 bi s, a una az´on de 21 TOPS. Es o ´ul imo se pod ´ıa ap o echa ans o man-
do los modelos y calib ando los angos de los pesos median e las capacidades que
p opo ciona Tenso RT.
El hecho de dispone de m´as n´ucleos de CPU ha ´ıa ac ible la pa alelizaci´on de
algunas secciones del c´odigo de la de ecci´on del able o. Po ejemplo, se pod ´ıan
calcula pa alelamen e en di e en es p ocesos las dis in as m´asca as CLAHE en los
pasos has a la ob enci´on de los segmen os, como hemos is o en el Algo i mo 2.2.
Es o ha supues o una mejo a de un 10 % en el iempo o al sob e una CPU In el Co e
i7-4770K con 4 n´ucleos con hype h eading, u ilizando la clase P ocessPoolExecu o
de Py hon. Sin emba go, al hace la p ueba sob e la Je son Nano los iempos se han
man enido cons an es.
En el apa ado 3.4.1 hemos in oducido un algo i mo que pe mi e in e i las
piezas que se mue en en un able o a pa i de dos im´agenes consecu i as. En el caso
de conoce con ce eza la con igu aci´on inicial de las piezas, po ejemplo digi alizando
una pa ida desde el comienzo, pod emos conoce de o ma p ecisa el n´ume o y ipo
de piezas que hay en cada momen o sob e el able o. Es a in o maci´on se pod ´ıa
inclui en el Algo i mo 3.1 pa a a ina m´as la unci´on alcanzado max.
En ocasiones, sob e odo en pa idas in an iles, alguno de los jugado es ealiza un
mo imien o ilegal. Teniendo la ce eza del ipo de pieza que ealiza el mo imien o,
po ejemplo po im´agenes de las acciones an e io es, se pod ´ıa ad e i de es as
si uaciones. Es o se i ´ıa an o como in o maci´on adicional pa a el usua io, como
pa a co egi malas p edicciones que pod ´ıan da se a a´ız de es as jugadas il´ıci as.
Adem´as, en odos los casos en los que sabemos que una pieza ha pe maneci-
do quie a, podemos u iliza los ec o es de p obabilidades que hemos ob enido en
im´agenes an e io es pa a aumen a nues o conocimien o. Po ejemplo, pod ´ıamos
oma la media de es as p obabilidades en las o os en las que no se ha mo ido. De
es a mane a mejo a ´ıamos la in e encia en si uaciones en las que an es hab´ıa una
pieza ocluyendo pa e de la casilla que es amos conside ando.
45

Cap´ı ulo 7
In oduc ion (English)
The ecogni ion o chess pieces and chessboa ds is a compu e ision p oblem
ha has no ye been sol ed e icien ly. Howe e , i s solu ion is c ucial o many
expe ienced playe s who wan o compe e agains chess engines and specialized p o-
g ams, bu who also p e e o make decisions using a physical chessboa d. I is also
impo an o chess ou namen o ganize s who wan o b oadcas he games online
o o ama eu playe s who wan o sha e hei games wi h iends. These digi izing
asks a e usually pe o med by humans o wi h he help o specialized chessboa ds
and pieces.
In o de o digi ize a game au oma ically, i is necessa y o be able o ecogni-
ze bo h he chessboa d and a e wa ds he layou o he pieces. In li e games, in
addi ion o p ecision, i is c i ical o minimize he ime equi ed o pe o m such
ecogni ion, since he mo es can happen e y quickly. This is he case o he game
modes known as “Bli z” and “Bulle ”, in which each playe has be ween 1 and 5
minu es o play he en i e game. This is also ue in classic games when he e is
li le ime le .
7.1. Rela ed wo k
Specialized boa ds ha physically de ec he pieces a e a ha dwa e solu ion o
au oma ic chess digi iza ion. Recen examples cu en ly used in majo ou namen s
can be ound in [Squ] o [DGTa]. Howe e , hese boa ds a e expensi e and di icul
o deploy in many a eas. As an example, a se o DGT chessboa d and pieces (b and
used in o icial ou namen s) cos s be ween e500 and e1000 [DGTb].
O he al e na i es a e hose p o ided by obo s ha mo e he pieces on a boa d,
such as [Ma +11] o mo e ecen ly [CW19]. These obo s a e based on posi ioning a
zeni h came a o e he boa d and de ec ing he di e en ials be ween one mo emen
and he nex . A d awback o his is ha i is necessa y o s a om a known ini ial
layou . A boa d wi h a gene ic layou could no be digi ized his way. In addi ion,
e o s should be aken in o accoun , because hey could add up in each new play.
The solu ions o e ed by compu e ision a e an al e na i e o conside , since
hey p o ide cheape and inc easingly accu a e sys ems, as well as being a majo
echnological challenge. Fo compa ison, he pla o m we will be using o in e ence,
an N idia Je son Nano, cos s a ound e110 [N ib] and does no jus s ick o one
unc ion, i could be eused o ano he ask.
These compu e ision p ocedu es a e based on combining and adap ing ans-
46
o ma ions and de ec o s al eady known and used in o he ields, such as he Ha is
co ne de ec o and he Hough ans o m [EA10]. Many o he me hods o en assu-
me big simpli ica ions, such as de e mining he exac posi ion o he came a, using
boa ds speci ically designed wi h ma ke s o aid in co ne de ec ion, o di ec ly h-
ough use in e ac ion [Din16]. Howe e , some gene ic solu ions ha o e come hese
es ic ions al eady exis .
Fo example, he e a e me hods ha allow us o classi y occu ences o a ious
objec s in a bi a y places using con olu ional neu al ne wo ks (CNNs) [Gao+17],
bu hey do no ha e he p ecision equi ed o ob ain hei exac posi ion. The
au ho s o [Ben+16] desc ibe a me hod o objec de ec ion ha also uses CNNs
ained h ough weak supe ision. Tha is, i is enough o ha e labeled images o
he objec s in o de o ain he ne wo k, wi hou he need o also p o ide he exac
posi ion o he objec in each aining image. The p oblem wi h his app oach is
ha i akes many i e a ions o p ecisely loca e an objec , which does no make i
e y p ac ical in si ua ions ha equi e eal- ime esponses.
The au ho s o [CLW17] p opose a me hod o chessboa d de ec ion ha is obus
agains ligh condi ions and he angle om which he images a e aken. In addi ion,
i wo ks wi h mos s yles o boa ds and i o e comes many o he weaknesses ha
we ha e been discussing. I is an i e a i e p ocess in which he posi ion o he
boa d is e ined in se e al phases. The au ho s ge 99,5 % accu acy in de ec ing he
in e sec ions o he cen e boa d g id and ind he ull posi ion o he chessboa d
accu a ely 95 % o he ime.
Rega ding piece classi ica ion once he boa d has been loca ed, in [Din16] a
me hod is p oposed ha uses a suppo ec o machine (SVM). This is ained
on he ea u es ex ac ed by SIFT [Low04], hus achie ing 85 % accu acy when
classi ying he pieces. In [CLW17] au ho s claim o achie e 95 % accu acy classi ying
chess pieces using a con olu ional neu al ne wo k (CNN), which hey enhance by
clus e ing simila pieces, aking in o accoun hei heigh and a ea, and using a
game engine o ob ain he p obabili y o pa icula layou s. The code o hese
enhancemen s has no been eleased, so we we e unable o analyze his pa icula
app oach.
7.2. Objec i es and wo k plan
The p ocessing o each ame is s ill oo slow in o de o hos li e b oadcas s.
The e o e, accele a ing his compu a ion is a e y impo an challenge. Ou inal
objec i e is o build a unc ional amewo k ha is capable o execu ing he en i-
e p ocess o digi izing a chess game pho o in eal- ime, making all he necessa y
calcula ions on specialized ha dwa e.
To accomplish his, we ha e made a se ies o changes o a me hod al eady im-
plemen ed ha de ec s he chessboa d. We ha e e ac o ed he code and modi ied
some modules o include new possibili ies (see o example sec ion 2.2.1 o boa d
47
posi ion checking in sec ion 5.3). In addi ion, we ha e op imized he code based on
pe o mance analysis ools and we ha e accele a ed i s execu ion on ou ha dwa e
(sec ion 4.3). To comple e he amewo k, we ha e buil a con olu ional neu al ne -
wo k o classi y he ob ained pieces and we ha e d as ically educed he necessa y
in e ence ime in he inal sys em (sec ion 4.4).
We ha e ca ied his ou ha ing in mind i s use in ama eu games o in ou na-
men s, aking he pho os om he side o he boa d each ime a playe p esses he
clock (Figu e 1.1). Howe e , some imes playe s o ge o p ess he clock. In hese
cases, pe iodic sampling based on he p ocessing speed o an image would be neces-
sa y o y o cap u e all he mo es. We show a schema ic o he came a posi ion in
Figu e 1.2.
48
Cap´ı ulo 8
Conclusions and u u e wo k
Compu e ision is a ield ha is acqui ing g ea ele ance in many si ua ions.
Uni e sal access o de ices capable o in e ac ing wi h he wo ld a ound hem has
mean he au oma ion o e y di e se asks, ei he h ough embedded sys ems o
using he compu ing powe o se e s hos ed in he cloud. In chess, one o he i s
games o which an a i icial in elligence algo i hm was de eloped, compu e ision
can also be applied o au oma e he digi iza ion o games. In his wo k we ha e
explo ed one o he op ions ha cu en ly p o ide he bes esul s and we ha e
c ea ed a p og am ha can keep up wi h a chess game on an embedded sys em.
As we ha e seen in he inal esul s (Table 5.4), he o al ime using bo h
SqueezeNe - 1.1 and MobileNe V2(α= 0.5) emains below 5 seconds o all es
boa ds on he Je son Nano. Achie ing an accu acy o 91 and 92 % espec i ely
when classi ying he chess pieces. Fu he mo e, i he boa d emains s a ic, hese
imes a e educed o 0.70 and 0.84 seconds espec i ely.
Ini ially, he ime we se as ou goal was 5 seconds pe boa d. The e o e, s a ing
om a o al ime be ween 25 and 45 seconds, a cos ha did no make i s p ac ical
use easible, we ha e been able o each a a ge ha would allow i s deploymen in
p ac ical scena ios. Mo eo e , he calcula ions a e pe o med en i ely on an embed-
ded sys em wi hou he need o connec i i y o any ne wo k. The comple e sou ce
code o he amewo k ha we ha e de eloped is publicly a ailable in ou Gi Hub
eposi o y: h ps://gi hub.com/da idmallasen/Li eChess2FEN.
Whils aining he di e en con olu ional neu al ne wo ks, we ha e ound a
ba ie when i comes o imp o ing p ecision o piece classi ica ion. The simples
models ha e been able o lea n p ac ically all he in o ma ion a ailable in he da ase
ha we ha e been able o collec , and aining mo e complex models has p o ided
almos no bene i (Table 4.1). Wi h his in mind, we belie e ha pa o his p oblem
would be sol ed by in oducing mo e in o ma ion in o he da ase , o example by
means o he new me hod o squa e sepa a ion ha we ha e p oposed (sec ion
2.2.1). This way we would a oid he cases in which only he base o he piece is
seen, a si ua ion in which no e en a human is able o dis inguish i .
I mo e accu a e esul s we e ob ained by imp o ing he da ase wi h a model
ha equi es a g ea e compu a ional e o , he a ailabili y o enso co es o cal-
cula ing ope a ions in FP16 would be a c i ical imp o emen . An e olu ion o he
Je son Nano, which has he same o m ac o , is he Je son Xa ie NX [N ic]. Cu-
en ly, his module cos s a ound $400, abou 4 imes mo e han he Je son Nano,
al hough wi h he ecen elease o he Ampe e a chi ec u e, a educ ion in p ices
o new models o a lowe p ice a e expec ed.
49