3571
Comentario:
|
14179
|
Los textos eliminados se marcan así. | Los textos añadidos se marcan así. |
Línea 10: | Línea 10: |
* Aumentar los conjuntos de datos con la versión espejada de las imágenes | * --(Aumentar los conjuntos de datos con la versión espejada de las imágenes)-- |
Línea 33: | Línea 33: |
== Datasets == === Imágenes de ejemplo === * En training1 el recorrido del robot es contrario al caso de training[23]. * Las imágenes de training3 son tomadas de noche ==== Training1 ==== [[attachment:training1_rgb_69.jpg|{{attachment:training1_rgb_69.jpg|rgb_69|width=200}}]] [[attachment:training1_rgb_71.jpg|{{attachment:training1_rgb_71.jpg|rgb_71|width=200}}]] [[attachment:training1_rgb_73.jpg|{{attachment:training1_rgb_73.jpg|rgb_73|width=200}}]] [[attachment:training1_rgb_75.jpg|{{attachment:training1_rgb_75.jpg|rgb_75|width=200}}]] ==== Training2 ==== [[attachment:training2_rgb_93.jpg|{{attachment:training2_rgb_93.jpg|rgb_93|width=200}}]] [[attachment:training2_rgb_95.jpg|{{attachment:training2_rgb_95.jpg|rgb_95|width=200}}]] [[attachment:training2_rgb_97.jpg|{{attachment:training2_rgb_97.jpg|rgb_97|width=200}}]] [[attachment:training2_rgb_99.jpg|{{attachment:training2_rgb_99.jpg|rgb_99|width=200}}]] ==== Training3 ==== [[attachment:training3_rgb_60.jpg|{{attachment:training3_rgb_60.jpg|rgb_60|width=200}}]] [[attachment:training3_rgb_62.jpg|{{attachment:training3_rgb_62.jpg|rgb_62|width=200}}]] [[attachment:training3_rgb_64.jpg|{{attachment:training3_rgb_64.jpg|rgb_64|width=200}}]] [[attachment:training3_rgb_66.jpg|{{attachment:training3_rgb_66.jpg|rgb_66|width=200}}]] |
|
Línea 37: | Línea 58: |
== Estructura de directorios == RobotVision2012/DS_..._DSIFT_.../ trainingX/ <<BR>> trainingX.log <<BR>> trainingX_lr/ <<BR>> trainingX_lr.log <<BR>> _PCA_/ <<BR>> subspace.dat <<BR>> subspace.log <<BR>> 80D/ <<BR>> trainingX/ <<BR>> trainingX.log <<BR>> trainingX_lr/ <<BR>> trainingX_lr.log <<BR>> _GMM_/ <<BR>> u64.gmm <<BR>> u64/ <<BR>> IFV.../ <<BR>> trainingX/ <<BR>> trainingX.log <<BR>> trainingX_lr/ <<BR>> trainingX_lr.log <<BR>> _SGD_tr12_te3_/ <<BR>> hinge_20_1e-4/ <<BR>> Corridor.lin <<BR>> hinge_20_1e-4.training3 <<BR>> hinge_20_1e-4.log <<BR>> |
|
Línea 41: | Línea 116: |
* Descriptores: SIFT sobre grilla regular (DSIFT de vlfeat), patchs 32x32, paso=8, L2-norm., D=128 | * Descriptores: SIFT sobre grilla regular (DSIFT de vlfeat), patchs 32x32, paso=8, L2-norm., D=128, 5 escalas, factor=0.707 |
Línea 55: | Línea 130: |
||1e-4|| 1462 || 1422 || 1466 |||| 1462 || 1400 || 1478 |||| 1462 || 1396 || 1476 || | ||1e-4|| '''1462''' || '''1422''' || '''1466''' |||| 1462 || 1400 || 1478 |||| 1462 || 1396 || 1476 || |
Línea 78: | Línea 153: |
== 3 mayo 2012 == === Experimento 1 === Se realiza una prueba con distintos valores de DSIFT_STEP (8 y 16) y aumento el conjunto de entrenamiento haciendo un flip left-right de las imágenes antes de calcular DSIFT. Flip=0, indica sin aumentar el conjunto; Flip=1 indica aumentando el conjunto de entrenamiento con las imágenes flipeadas. Al final de este experimento se muestra la configuración que resulta más apropiada. ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones * Using ''argmax'' for classification ==== Resultados ==== ===== Flip=0 ===== * DSIFT step=8 |||| |||||||||||||||| NGAUSS || || Tr. || Te. || 8 || 16 || 32 || 64 || 128 || 256 || 512 || 1024 || || 1,2 || 3 || -289 || 29 || 59 || 79 || 185 || 267 || 319 || 445 || || 2,3 || 1 || 935 || 1195 || 1141 || 1173 || 1183 || 1251 || 1225 || 1293 || || 3,1 || 2 || 1162 || 1374 || 1390 || 1456 || 1584 || 1658 || 1668 || 1632 || |||| Avg. || 603 || 866 || 863 || 903 || 984 || 1059 || 1071 || 1123 || * DSIFT step=16 |||| |||||||||||||||| NGAUSS || || Tr. || Te. || 8 || 16 || 32 || 64 || 128 || 256 || 512 || 1024 || || 1,2 || 3 || -161 || -9 || 19 || 25 || 225 || 191 || 299 || 371 || || 2,3 || 1 || 897 || 1129 || 1221 || 1143 || 1101 || 1095 || 1175 || 1179 || || 3,1 || 2 || 1160 || 1252 || 1392 || 1424 || 1412 || 1528 || 1552 || 1524 || |||| Avg. || 632 || 791 || 877 || 864 || 913 || 938 || 1009 || 1025 || ===== Flip=1 ===== * DSIFT step=8 |||| |||||||||||||||| NGAUSS || || Tr. || Te. || 8 || 16 || 32 || 64 || 128 || '''256''' || 512 || 1024 || || 1,2 || 3 || -357 || -105 || 45 || 59 || 185 || '''199''' || 233 || 411 || || 2,3 || 1 || 1569 || 1703 || 1787 || 1795 || 1887 || '''1949''' || 1995 || 1999 || || 3,1 || 2 || 1666 || 1880 || 2018 || 2076 || 2142 || '''2182''' || 2182 || 2190 || |||| Avg. || 959 || 1159 || 1283 || 1310 || 1405 || '''1443''' || 1470 || 1533 || * DSIFT step=16 |||| |||||||||||||||| NGAUSS || || Tr. || Te. || 8 || 16 || 32 || 64 || 128 || 256 || 512 || 1024 || || 1,2 || 3 || -211 || 11 || 31 || -15 || 233 || 149 || 263 || 373 || || 2,3 || 1 || 1447 || 1651 || 1693 || 1791 || 1857 || 1901 || 1945 || 1909 || || 3,1 || 2 || 1642 || 1744 || 1944 || 2032 || 2126 || 2128 || 2150 || 2140 || |||| Avg. || 959 || 1135 || 1223 || 1269 || 1405 || 1393 || 1453 || 1474 || [[attachment:results_3_de_mayo_2012.tar.gz]] * Configuración: 256 Gaussianas, DSIFT step=8, flip=1 == 4 mayo 2012 == === Experimento 1 === Se prueba oscureciendo las imágenes de entrenamiento del clasificador. El oscurecimiento se realiza multiplicando las intensidades de los pixeles de las imágenes por un factor menor a 1. Se probo con factores de 0.33 y 0.5. En este experimento no se actualizó el modelo .gmm con los nuevos descriptores con flip y oscurecidos. ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones, 256 Gaussianas, DSIFT step=8, flip=1 * Using ''argmax'' for classification ==== Resultados ==== |||| NGAUSS=256 |||||| srange || || Tr. || Te. || 1.0 || 0.33 || 0.5 || || 1,2 || 3 || 199 || 229 || 221 || || 2,3 || 1 || 1949 || 1949 || 1945 || || 3,1 || 2 || 2182 || 2180 || 2180 || |||| Avg. || 1443 || 1452 || 1449 || == 5 mayo 2012 == === Experimento 1 === Se prueba oscureciendo las imágenes de entrenamiento del clasificador. El oscurecimiento se realiza multiplicando las intensidades de los pixeles de las imágenes por un factor menor a 1. Se probo con factores de 0.33 y 0.5. En este experimento si se actualizó el modelo .gmm con los nuevos descriptores generados con flip y con oscurecimiento. ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones, 256 Gaussianas, DSIFT step=8, flip=1 * Using ''argmax'' for classification ==== Resultados ==== |||| NGAUSS=256 |||||| srange || || Tr. || Te. || 1.0 || 0.1 || 0.33 || 0.5 || || 1,2 || 3 || 199 || 187 || 195 || 171 || || 2,3 || 1 || 1949 || 1975 || 1945 || 1965 || || 3,1 || 2 || 2182 || 2154 || 2166 || 2180 || |||| Avg. || 1443 || 1439 || 1435 || 1439 || == 7 mayo 2012 == === Experimento 1 === Se prueba utilizando feature augmentation. En este experimento si se actualizó el modelo .gmm con los descriptores generados con flip de las imágenes. Con aug=1 o aug=0 se indica el uso o no de feature augmentation respectivamente. ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones, 64 Gaussianas, DSIFT step=8, flip=[0,1] * Using ''argmax'' for classification ==== Resultados ==== |||| NGAUSS=64 |||| flip=0 |||| flip=1 || || Tr. || Te. || aug=0|| aug=1 || aug=0|| aug=1 || || 1,2 || 3 || 77 || 87 || 257 || 33 || || 2,3 || 1 || 1173 || 1207 || 1801 || 1783 || || 3,1 || 2 || 1440 || 1528 || 2080 || 2014 || |||| Avg. || 897 || 941 || 1379 || 1277 || * Comparación usando en ambos casos imágenes de entrenamiento originales y flipeadas, pero en el primer caso entrenando el modelo .gmm solo en las imágenes originales (gmm_flip=0) y en el segundo caso utilizando las imágenes originales y las flipeadas (gmm_flip=1). No se usó feature augmentation. |||| NGAUSS=64 |||| flip=1 || || Tr. || Te. || gmm_flip=0 || gmm_flip=1 || || 1,2 || 3 || 59 || 257 || || 2,3 || 1 || 1795 || 1801 || || 3,1 || 2 || 2076 || 2080 || |||| Avg. || 1310 || 1379 || == 8 mayo 2012 == === Experimento 1 === Se prueba utilizando feature augmentation. En este experimento si se actualizó el modelo .gmm con los descriptores generados con flip de las imágenes. Con aug=1 o aug=0 se indica el uso o no de feature augmentation respectivamente. ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones, 128 Gaussianas, DSIFT step=8, flip=[0,1] * Using ''argmax'' for classification ==== Resultados ==== |||| NGAUSS=128 |||| flip=0 |||| flip=1 || || Tr. || Te. || aug=0 || aug=1 || aug=0|| aug=1 || || 1,2 || 3 || 191 || 115 || 195 || 39 || || 2,3 || 1 || 1189 || 1255 || 1887 || 1905 || || 3,1 || 2 || 1582 || 1618 || 2132 || 2098 || |||| Avg. || 987 || 996 || 1405 || 1347 || == 9 mayo 2012 == === Experimento 1 === Se prueba utilizando pirámides espaciales. Las configuraciones usadas son "sp1x1,lsf=0,gsf=0" (spyr=0), "sp1x1,sp1x3,lsf=0,gsf=0" (spyr=1) y "sp1x1,sp1x3,lsf=0.33,gsf=0.33" (spyr=2). ==== Configuración ==== * SGD LBD=1e-4, 20 iteraciones, 64 Gaussianas, DSIFT step=8, flip=[0,1] * Using ''argmax'' for classification ==== Resultados ==== |||| NGAUSS=64 |||||| flip=0 |||||| flip=1 || || Tr. || Te. || spyr=0 || spyr=1 || spyr=2 || spyr=0 || spyr=1 || spyr=2|| || 1,2 || 3 || 77 || -413 || -41 || 257 || -458 || 201 || || 2,3 || 1 || 1173 || 1123 || 1029 || 1801 || 1773 || 1791 || || 3,1 || 2 || 1440 || 1412 || 1358 || 2080 || 2078 || 2084 || |||| Avg. || 897 || 707 || 782 || 1379 || 1122 || 1359 || |
Robot Vision 2012
Experimentos realizados para la 4º edición de la competencia 'Robot Vision Challenge - ImageCLEF'.
Cosas que vamos a tener que probar
Aumentar los conjuntos de datos con la versión espejada de las imágenes
- Algún pre-procesamiento para estabilizar el "motion blur" y el "flickering"
- Debluring:
- Flickering: se puede probar trabajar en aglún espacio de color que sea robusto frente a cambios afines en la iluminación
- Descriptores de colores
J. van de Weijer, C. Schmid, J. Verbeek, D. Larlus, Learning Color Names for Real-World Applications, IEEE TIP, 2009.
http://lear.inrialpes.fr/people/vandeweijer/color_names.html
K. van de Sande, T. Gevers and C. Snoek, Evaluating Color Descriptors for Object and Scene Recognition, IEEE TPAMI, 2010
Datasets
Imágenes de ejemplo
- En training1 el recorrido del robot es contrario al caso de training[23].
- Las imágenes de training3 son tomadas de noche
Training1
Training2
Training3
Repositorio con los scripts para replicar los experimentos
hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/robot_vision_2012
Estructura de directorios
- RobotVision2012/DS_..._DSIFT_.../
trainingX/
trainingX.log
trainingX_lr/
trainingX_lr.log
_PCA_/
subspace.dat
subspace.log
80D/
trainingX/
trainingX.log
trainingX_lr/
trainingX_lr.log
_GMM_/
u64.gmm
u64/
IFV.../
trainingX/
trainingX.log
trainingX_lr/
trainingX_lr.log
_SGD_tr12_te3_/
hinge_20_1e-4/
Corridor.lin
hinge_20_1e-4.training3
hinge_20_1e-4.log
25 abril 2012
Experimento 1
Configuración
- Descriptores: SIFT sobre grilla regular (DSIFT de vlfeat), patchs 32x32, paso=8, L2-norm., D=128, 5 escalas, factor=0.707
- PCA: subespacio aprendido sobre training1+training2+training3, D=80
GMM: aprendido sobre training1+training2+training3, para N = 8, 16 y 32
- IFV: gradientes resp. medias y varianzas, alpha=0.5, pnorm=2.0
SGD: hinge loss, 20, 50 y 100 iteraciones, lambda = 1e-2, 1e-3 y 1e-4, training sobre training1 y testeando sobre training2. La clasificación se realizo con argmax.
Resultados
|
20 iteraciones |
50 iteraciones |
100 iteraciones |
||||||||
lambda\ngauss |
8 |
16 |
32 |
8 |
16 |
32 |
8 |
16 |
32 |
||
1e-3 |
1382 |
1334 |
1414 |
1376 |
1352 |
1426 |
1382 |
1356 |
1422 |
||
1e-4 |
1462 |
1422 |
1466 |
1462 |
1400 |
1478 |
1462 |
1396 |
1476 |
||
1e-5 |
1318 |
1402 |
1444 |
1358 |
1368 |
1394 |
1378 |
1384 |
1322 |
experimento_1_25_abril_2012.txt
26 abril 2012
Experimento 1
Configuración
- Igual que el experimento anterior, pero se agrego 64 gaussianas.
SGD: hinge loss, 20 iteraciones, lambda = 1e-4, training sobre training1 o training2 y testeando siempre sobre training3. La clasificación se realizo con argmax y con thr=-0.1.
Resultados
|
20 iteraciones, argmax, train1 |
20 iteraciones, thr=-0.1, train1 |
20 iteraciones, argmax, train2 |
20 iteraciones, thr=-0.1, train2 |
|||||||||||||||
l\ng |
8 |
16 |
32 |
64 |
8 |
16 |
32 |
64 |
8 |
16 |
32 |
64 |
8 |
16 |
32 |
64 |
|||
1e-4 |
-405 |
-153 |
-127 |
-161 |
194 |
362 |
355 |
399 |
-361 |
-87 |
1 |
35 |
226 |
421 |
471 |
553 |
experimento_1_train1_val3_argmax_26_abril_2012.txt experimento_1_train1_val3_-0.1_26_abril_2012.txt experimento_1_train2_val3_argmax_26_abril_2012.txt experimento_1_train2_val3_-0.1_26_abril_2012.txt
3 mayo 2012
Experimento 1
Se realiza una prueba con distintos valores de DSIFT_STEP (8 y 16) y aumento el conjunto de entrenamiento haciendo un flip left-right de las imágenes antes de calcular DSIFT. Flip=0, indica sin aumentar el conjunto; Flip=1 indica aumentando el conjunto de entrenamiento con las imágenes flipeadas. Al final de este experimento se muestra la configuración que resulta más apropiada.
Configuración
- SGD LBD=1e-4, 20 iteraciones
Using argmax for classification
Resultados
Flip=0
- DSIFT step=8
|
NGAUSS |
||||||||
Tr. |
Te. |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
1,2 |
3 |
-289 |
29 |
59 |
79 |
185 |
267 |
319 |
445 |
2,3 |
1 |
935 |
1195 |
1141 |
1173 |
1183 |
1251 |
1225 |
1293 |
3,1 |
2 |
1162 |
1374 |
1390 |
1456 |
1584 |
1658 |
1668 |
1632 |
Avg. |
603 |
866 |
863 |
903 |
984 |
1059 |
1071 |
1123 |
- DSIFT step=16
|
NGAUSS |
||||||||
Tr. |
Te. |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
1,2 |
3 |
-161 |
-9 |
19 |
25 |
225 |
191 |
299 |
371 |
2,3 |
1 |
897 |
1129 |
1221 |
1143 |
1101 |
1095 |
1175 |
1179 |
3,1 |
2 |
1160 |
1252 |
1392 |
1424 |
1412 |
1528 |
1552 |
1524 |
Avg. |
632 |
791 |
877 |
864 |
913 |
938 |
1009 |
1025 |
Flip=1
- DSIFT step=8
|
NGAUSS |
||||||||
Tr. |
Te. |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
1,2 |
3 |
-357 |
-105 |
45 |
59 |
185 |
199 |
233 |
411 |
2,3 |
1 |
1569 |
1703 |
1787 |
1795 |
1887 |
1949 |
1995 |
1999 |
3,1 |
2 |
1666 |
1880 |
2018 |
2076 |
2142 |
2182 |
2182 |
2190 |
Avg. |
959 |
1159 |
1283 |
1310 |
1405 |
1443 |
1470 |
1533 |
- DSIFT step=16
|
NGAUSS |
||||||||
Tr. |
Te. |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
1,2 |
3 |
-211 |
11 |
31 |
-15 |
233 |
149 |
263 |
373 |
2,3 |
1 |
1447 |
1651 |
1693 |
1791 |
1857 |
1901 |
1945 |
1909 |
3,1 |
2 |
1642 |
1744 |
1944 |
2032 |
2126 |
2128 |
2150 |
2140 |
Avg. |
959 |
1135 |
1223 |
1269 |
1405 |
1393 |
1453 |
1474 |
- Configuración: 256 Gaussianas, DSIFT step=8, flip=1
4 mayo 2012
Experimento 1
Se prueba oscureciendo las imágenes de entrenamiento del clasificador. El oscurecimiento se realiza multiplicando las intensidades de los pixeles de las imágenes por un factor menor a 1. Se probo con factores de 0.33 y 0.5. En este experimento no se actualizó el modelo .gmm con los nuevos descriptores con flip y oscurecidos.
Configuración
- SGD LBD=1e-4, 20 iteraciones, 256 Gaussianas, DSIFT step=8, flip=1
Using argmax for classification
Resultados
NGAUSS=256 |
srange |
|||
Tr. |
Te. |
1.0 |
0.33 |
0.5 |
1,2 |
3 |
199 |
229 |
221 |
2,3 |
1 |
1949 |
1949 |
1945 |
3,1 |
2 |
2182 |
2180 |
2180 |
Avg. |
1443 |
1452 |
1449 |
5 mayo 2012
Experimento 1
Se prueba oscureciendo las imágenes de entrenamiento del clasificador. El oscurecimiento se realiza multiplicando las intensidades de los pixeles de las imágenes por un factor menor a 1. Se probo con factores de 0.33 y 0.5. En este experimento si se actualizó el modelo .gmm con los nuevos descriptores generados con flip y con oscurecimiento.
Configuración
- SGD LBD=1e-4, 20 iteraciones, 256 Gaussianas, DSIFT step=8, flip=1
Using argmax for classification
Resultados
NGAUSS=256 |
srange |
||||
Tr. |
Te. |
1.0 |
0.1 |
0.33 |
0.5 |
1,2 |
3 |
199 |
187 |
195 |
171 |
2,3 |
1 |
1949 |
1975 |
1945 |
1965 |
3,1 |
2 |
2182 |
2154 |
2166 |
2180 |
Avg. |
1443 |
1439 |
1435 |
1439 |
7 mayo 2012
Experimento 1
Se prueba utilizando feature augmentation. En este experimento si se actualizó el modelo .gmm con los descriptores generados con flip de las imágenes. Con aug=1 o aug=0 se indica el uso o no de feature augmentation respectivamente.
Configuración
- SGD LBD=1e-4, 20 iteraciones, 64 Gaussianas, DSIFT step=8, flip=[0,1]
Using argmax for classification
Resultados
NGAUSS=64 |
flip=0 |
flip=1 |
|||
Tr. |
Te. |
aug=0 |
aug=1 |
aug=0 |
aug=1 |
1,2 |
3 |
77 |
87 |
257 |
33 |
2,3 |
1 |
1173 |
1207 |
1801 |
1783 |
3,1 |
2 |
1440 |
1528 |
2080 |
2014 |
Avg. |
897 |
941 |
1379 |
1277 |
- Comparación usando en ambos casos imágenes de entrenamiento originales y flipeadas, pero en el primer caso entrenando el modelo .gmm solo en las imágenes originales (gmm_flip=0) y en el segundo caso utilizando las imágenes originales y las flipeadas (gmm_flip=1). No se usó feature augmentation.
NGAUSS=64 |
flip=1 |
||
Tr. |
Te. |
gmm_flip=0 |
gmm_flip=1 |
1,2 |
3 |
59 |
257 |
2,3 |
1 |
1795 |
1801 |
3,1 |
2 |
2076 |
2080 |
Avg. |
1310 |
1379 |
8 mayo 2012
Experimento 1
Se prueba utilizando feature augmentation. En este experimento si se actualizó el modelo .gmm con los descriptores generados con flip de las imágenes. Con aug=1 o aug=0 se indica el uso o no de feature augmentation respectivamente.
Configuración
- SGD LBD=1e-4, 20 iteraciones, 128 Gaussianas, DSIFT step=8, flip=[0,1]
Using argmax for classification
Resultados
NGAUSS=128 |
flip=0 |
flip=1 |
|||
Tr. |
Te. |
aug=0 |
aug=1 |
aug=0 |
aug=1 |
1,2 |
3 |
191 |
115 |
195 |
39 |
2,3 |
1 |
1189 |
1255 |
1887 |
1905 |
3,1 |
2 |
1582 |
1618 |
2132 |
2098 |
Avg. |
987 |
996 |
1405 |
1347 |
9 mayo 2012
Experimento 1
Se prueba utilizando pirámides espaciales. Las configuraciones usadas son "sp1x1,lsf=0,gsf=0" (spyr=0), "sp1x1,sp1x3,lsf=0,gsf=0" (spyr=1) y "sp1x1,sp1x3,lsf=0.33,gsf=0.33" (spyr=2).
Configuración
- SGD LBD=1e-4, 20 iteraciones, 64 Gaussianas, DSIFT step=8, flip=[0,1]
Using argmax for classification
Resultados
NGAUSS=64 |
flip=0 |
flip=1 |
|||||
Tr. |
Te. |
spyr=0 |
spyr=1 |
spyr=2 |
spyr=0 |
spyr=1 |
spyr=2 |
1,2 |
3 |
77 |
-413 |
-41 |
257 |
-458 |
201 |
2,3 |
1 |
1173 |
1123 |
1029 |
1801 |
1773 |
1791 |
3,1 |
2 |
1440 |
1412 |
1358 |
2080 |
2078 |
2084 |
Avg. |
897 |
707 |
782 |
1379 |
1122 |
1359 |