Clasificación de pinturas

El objetivo de este proyecto es el intentar clasificar pinturas según movimientos artisticos de acuerdo a los patrones encontrados en la distribución de colores en cada cuadro de forma cuantitativa.

¿Cómo transformamos las pinturas en números?

De cada cuadro estudiado se lograron extraer 24 características de como se distribuye su color, a partir de archivos jpg. Para poder explicar algunas de las características estudiadas de las pinturas mostraremos un ejemplo utilizando las siguientes 4 fotografías.

Cada pixel que compone una foto nos puede entregar una información numerica, la fotografía digital funciona de esa forma. El modelo mas utilizado de color se basa en darle a cada pixel tres valores numericos para formar un color. Lo primero que se realiza con cada una de estas fotografías es dividir la información en 3 canales de color RGB, (Rojo, Verde y Azul según sus siglas en inglés). Las tres imagenes mostradas a continuación muestran las tres imagenes extraídas del cuadro impresionista mostrado anteriormente. En el modelo de colores RGB utilizado para cada uno de los tres colores hay una intensidad de 0 a 255, osea 256 colores, lo cual resulta en la posibilidad de 16.777.216 de colores distintos donde Rojo = 0, Verde = 0 y Azul = 0 equivale a Negro, y Rojo = 255, Verde = 255, y Azul = 255 equivale a blanco. Para entender mas este modelo pueden revisar la siguiente página web. Ahora que entendemos como darle valores numericos a las fotografías veamos que variables podemos extraer.

Variables extraidas y su interpretacion

De cada cuadro obtuvimos 24 variables

  • Promedio del Canal Rojo
  • Promedio del Canal Verde
  • Promedio del Canal Azul
  • Valor Mínimo del Canal Rojo
  • Valor Mínimo del Canal Azul
  • Valor Mínimo del Canal Verde
  • Valor Máximo del Canal Rojo
  • Valor Máximo del Canal Azul
  • Valor Máximo del Canal Verde
  • Desviación Estandard del Canal Rojo
  • Desviación Estandard del Canal Verde
  • Desviación Estandard del Canal Azul
  • Asimetría del Canal Rojo
  • Asimetría del Canal Verde
  • Asemetría del Canal Azul
  • Media Cuadrática del Canal Rojo
  • Media Cuadrática del Canal Verde
  • Media Cuadrática del Canal Azul
  • Autocorrelación espacial de Moran del canal Rojo
  • Autocorrelación espacial de Moran del canal Verde
  • Autocorrelación espacial de Moran del canal Azul
  • Autocorrelación espacial de Geary del canal Rojo
  • Autocorrelación espacial de Geary del canal Verde
  • Autocorrelación espacial de Geary del canal Azul

Promedio, Mínima, Máxima y Desviación estandard

Estos valores son muy intuitivos, el promedio nos da el valor promedio para cada canal de la suma de los valores de todos los pixeles, esto es podemos calcular el color pormmedio de cada fotografía. Si vemos la tabla siguiente para cada valor podemos interpretar lo siguiente

MeanR MeanG MeanB MinR MinG MinB MaxR MaxG MaxB sdR sdG sdB Nombre
128.2290 128.2251 128.2506 0 0 0 255 255 255 126.20229 126.20558 126.18321 Ajedrez
0.0000 0.0000 0.0000 0 0 0 0 0 0 0.00000 0.00000 0.00000 Black
185.2732 163.6673 119.0000 25 15 0 255 255 255 28.84902 51.95150 78.26132 Impresionismo
180.0629 138.8707 117.9093 0 0 0 255 255 255 74.09276 76.43448 79.46238 Pop Art

Podemos volver a esta página web e ingresar los valores promedios de cada canal para cada uno de los ejemplos. En el ejemplo 1, tenemos que los valores promedio son (redondeando), de 128 para cada canal. Esto logicamente nos da un color gris cxomo color promedio, lo cual tiene sentido si consideramos que esa foto es mitad negra y mitad gris. Iremos a dos ejemplos mas interesantes, la foto de impresionismo y la de pop art. Para la primera tenemos valores promedio de 185, 164 y 119, que dan como resultado un color café claro. Usando la misma logica pueden jugar con las otras pinturas.

Los valores mínimos y máximos no requieren de mucha explicación, en el caso de la desviación estandard de color, tiene que ver con que tanto varía el color en la pintura, donde el valor mínimo es de 0 para la pintura totalmente negra, ya que no varia su color, y el máximo es el de los cuadrados blanco y negros, ya que sus colores son mas extremos, esto no toma en cuenta que tan variable es localmente una foto, ya que uno podría argumentar que el cuadro impresionista y el de pop art son mas variables en color. Esto esta capturado en las Autocorrelaciones espaciales, caso que veremos mas adelante.

Asimetría y Media Cuadrática

SkewR SkewG SkewB rmsR rmsG rmsB Nombre
-0.0122906 -0.0122659 -0.0123385 179.9162 179.9157 179.9182 Ajedrez
NaN NaN NaN 0.0000 0.0000 0.0000 Black
-0.5155021 0.2376538 0.3123549 187.5064 171.7152 142.4287 Impresionismo
-1.0202992 -0.5277882 -0.0389484 194.7116 158.5164 142.1864 Pop Art

asimetria

Autocorrelacion espacial de Moran y Geary

La Autocorrelación espacial de Moran y Geary son valores que nos dicen que tan parecidos en color son los pixeles vecinos a un pixel. Nos da dos cosas, variabilidad y detalle, si la autocorrelacion es alta tenemos bajo detalle y variabilidad, si es baja tenemos mucho detalle y variación.

MoranR MoranG MoranB GearyR GearyG GearyB Nombre
0.9977189 0.9977148 0.9977302 0.0058809 0.0058814 0.0058658 Ajedrez
NaN NaN NaN NaN NaN NaN Black
0.8718990 0.9604467 0.9810233 0.1417496 0.0452247 0.0213254 Impresionismo
0.7603031 0.7263401 0.7792262 0.2706475 0.3091560 0.2489508 Pop Art

Si tenemos un solo color en todo el cuadro la autocorrelación de Moran es 1, si cada pixel estuviera rodeado de colores muy distintos la autocorrelacion de Morán sería 0, en el caso de Geary es alreves, 0 es alta autocorrelacion y 1 baja. El color negro entero por temas matemáticos no se puede calcular, pero evidentemente de los otros los cuadrados alternados blanco y negro, tienen muchos pixeles vecinos del mismo color y hay poco detalle, es por eso que tienen una alta autocorrelacion. Por otro lado, la foto Pop Art tiene pixeles negros rodeado de pixeles de otros colores lo que baja su autocorrelacion. Estas variables corrigen en parte los que esperariamos de la desviación estandard.

Estudio con 80 pinturas de 8 movimientos

Para este trabajo se estudiaron 8 movimientos (Cubismo, Expresionismo, Hiperrealismo, Impresionismo, Naturalismo, Neoclasicismo, Pop art y Surrealismo), con 10 pinturas por movimiento.

PCA

## Importance of components:
##                           PC1    PC2    PC3     PC4     PC5     PC6
## Standard deviation     2.7994 2.2154 1.8561 1.42283 1.22928 1.04295
## Proportion of Variance 0.3265 0.2045 0.1435 0.08435 0.06296 0.04532
## Cumulative Proportion  0.3265 0.5310 0.6746 0.75892 0.82188 0.86720
##                            PC7     PC8     PC9    PC10    PC11    PC12
## Standard deviation     0.97873 0.82029 0.58430 0.52956 0.49325 0.45977
## Proportion of Variance 0.03991 0.02804 0.01423 0.01168 0.01014 0.00881
## Cumulative Proportion  0.90712 0.93515 0.94938 0.96106 0.97120 0.98001
##                           PC13    PC14    PC15    PC16    PC17    PC18
## Standard deviation     0.41446 0.32342 0.26032 0.25240 0.19297 0.15103
## Proportion of Variance 0.00716 0.00436 0.00282 0.00265 0.00155 0.00095
## Cumulative Proportion  0.98717 0.99152 0.99435 0.99700 0.99855 0.99950
##                           PC19    PC20    PC21    PC22    PC23    PC24
## Standard deviation     0.08461 0.05749 0.02488 0.02186 0.01465 0.01086
## Proportion of Variance 0.00030 0.00014 0.00003 0.00002 0.00001 0.00000
## Cumulative Proportion  0.99980 0.99994 0.99997 0.99999 1.00000 1.00000

Dendrograms

Que hace que cada movimiento sea cada movimiento

## Random Forest 
## 
## 64 samples
## 24 predictors
##  8 classes: 'Cubismo', 'Expresionismo', 'Hiperrealismo', 'Impresionismo', 'Naturalismo', 'Neoclasicismo', 'Pop art', 'Surrealismo' 
## 
## No pre-processing
## Resampling: 
## Summary of sample sizes: 63, 63, 63, 63, 63, 63, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy  Kappa    
##    2    0.328125  0.2321429
##   13    0.328125  0.2321429
##   24    0.343750  0.2500000
## 
## Accuracy was used to select the optimal model using  the largest value.
## The final value used for the model was mtry = 24.
## Random Forest 
## 
## 80 samples
## 24 predictors
##  8 classes: 'Cubismo', 'Expresionismo', 'Hiperrealismo', 'Impresionismo', 'Naturalismo', 'Neoclasicismo', 'Pop art', 'Surrealismo' 
## 
## No pre-processing
## Resampling: 
## Summary of sample sizes: 79, 79, 79, 79, 79, 79, ... 
## Resampling results across tuning parameters:
## 
##   mtry  Accuracy  Kappa    
##    2    0.3625    0.2714286
##   13    0.3875    0.3000000
##   24    0.3750    0.2857143
## 
## Accuracy was used to select the optimal model using  the largest value.
## The final value used for the model was mtry = 13.
## Confusion Matrix and Statistics
## 
##                Reference
## Prediction      Cubismo Expresionismo Hiperrealismo Impresionismo
##   Cubismo             0             0             0             1
##   Expresionismo       1             0             0             0
##   Hiperrealismo       0             0             1             0
##   Impresionismo       1             0             1             1
##   Naturalismo         0             0             0             0
##   Neoclasicismo       0             2             0             0
##   Pop art             0             0             0             0
##   Surrealismo         0             0             0             0
##                Reference
## Prediction      Naturalismo Neoclasicismo Pop art Surrealismo
##   Cubismo                 2             1       0           0
##   Expresionismo           0             0       0           0
##   Hiperrealismo           0             0       0           1
##   Impresionismo           0             0       0           0
##   Naturalismo             0             0       0           0
##   Neoclasicismo           0             1       0           0
##   Pop art                 0             0       2           0
##   Surrealismo             0             0       0           1
## 
## Overall Statistics
##                                          
##                Accuracy : 0.375          
##                  95% CI : (0.152, 0.6457)
##     No Information Rate : 0.125          
##     P-Value [Acc > NIR] : 0.009977       
##                                          
##                   Kappa : 0.2857         
##  Mcnemar's Test P-Value : NA             
## 
## Statistics by Class:
## 
##                      Class: Cubismo Class: Expresionismo
## Sensitivity                  0.0000               0.0000
## Specificity                  0.7143               0.9286
## Pos Pred Value               0.0000               0.0000
## Neg Pred Value               0.8333               0.8667
## Prevalence                   0.1250               0.1250
## Detection Rate               0.0000               0.0000
## Detection Prevalence         0.2500               0.0625
## Balanced Accuracy            0.3571               0.4643
##                      Class: Hiperrealismo Class: Impresionismo
## Sensitivity                        0.5000               0.5000
## Specificity                        0.9286               0.8571
## Pos Pred Value                     0.5000               0.3333
## Neg Pred Value                     0.9286               0.9231
## Prevalence                         0.1250               0.1250
## Detection Rate                     0.0625               0.0625
## Detection Prevalence               0.1250               0.1875
## Balanced Accuracy                  0.7143               0.6786
##                      Class: Naturalismo Class: Neoclasicismo
## Sensitivity                       0.000               0.5000
## Specificity                       1.000               0.8571
## Pos Pred Value                      NaN               0.3333
## Neg Pred Value                    0.875               0.9231
## Prevalence                        0.125               0.1250
## Detection Rate                    0.000               0.0625
## Detection Prevalence              0.000               0.1875
## Balanced Accuracy                 0.500               0.6786
##                      Class: Pop art Class: Surrealismo
## Sensitivity                   1.000             0.5000
## Specificity                   1.000             1.0000
## Pos Pred Value                1.000             1.0000
## Neg Pred Value                1.000             0.9333
## Prevalence                    0.125             0.1250
## Detection Rate                0.125             0.0625
## Detection Prevalence          0.125             0.0625
## Balanced Accuracy             1.000             0.7500

Nuevas clasificaciones

library(fpc)
pk2 <- pamk(ldf[,-25],krange=2:10,criterion="asw",critout=TRUE, scaling=TRUE, usepam = TRUE)
## 2  clusters  0.2263068 
## 3  clusters  0.2085531 
## 4  clusters  0.1769826 
## 5  clusters  0.1890533 
## 6  clusters  0.1031722 
## 7  clusters  0.09815698 
## 8  clusters  0.1147691 
## 9  clusters  0.1669603 
## 10  clusters  0.1594384
plot(pam(ldf[,-25], pk2$nc, stand=TRUE))

library(randomForest)
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
myrf<- randomForest(ldf[,-25])
myrf
## 
## Call:
##  randomForest(x = ldf[, -25]) 
##                Type of random forest: unsupervised
##                      Number of trees: 500
## No. of variables tried at each split: 4
varImpPlot(myrf)

importance(myrf)
##        MeanDecreaseGini
## MeanR         1.7632273
## MeanG         1.7259664
## MeanB         1.6984958
## MinR          0.4486170
## MinG          0.4055508
## MinB          0.1643087
## MaxR          0.2131270
## MaxG          0.6538547
## MaxB          0.7799999
## sdR           1.9022221
## sdG           1.9853133
## sdB           1.9409972
## SkewR         1.9063694
## SkewG         1.8025050
## SkewB         1.8408851
## rmsR          1.8154781
## rmsG          1.6585568
## rmsB          1.7009114
## MoranR        1.7096445
## MoranG        1.6167188
## MoranB        1.4979323
## GearyR        1.6296984
## GearyG        1.5657326
## GearyB        1.6452835