Referencia ligera y eficiente frente al modelo propuesto V1
Se implementó una versión basada en la arquitectura original de MobileNetV2, preservando sus bloques residuales invertidos, cuellos de botella lineales y convoluciones separables en profundidad. La salida multiclase original fue reemplazada por una neurona con activación sigmoide para resolver la tarea de clasificación binaria. Este modelo permitió establecer una referencia ligera y eficiente para comparar los resultados obtenidos por el modelo V1.
26,112
Integrado con 1,942 credenciales INE reales (974 anverso, 968 reverso) y enriquecido con 25,138 imágenes externas, como otras identificaciones, para enseñarle al modelo a rechazar documentos que no son una INE.
77.34%
Train (20,197)11.31%
Test (2,955)11.33%
Validate (2,960)300 × 200 px RGB
RMSprop lr=1e-4
Binary Crossentropy
30
| Capa / Orden | Tipo de capa | Filtros / Neuronas | Kernel | Activación | Formato de salida |
|---|---|---|---|---|---|
| Entrada | Input Tensor | Canales RGB | — | — | 200 × 300 × 3 |
| conv2d | Conv2D | 32 filtros | (3,3) | — | 100 × 150 × 32 |
| batch_normalization | BatchNormalization | — | — | — | 100 × 150 × 32 |
| re_lu | ReLU | — | — | — | 100 × 150 × 32 |
| depthwise_conv2d | DepthwiseConv2D | depthwise | (3,3) | — | 100 × 150 × 32 |
| batch_normalization_1 | BatchNormalization | — | — | — | 100 × 150 × 32 |
| re_lu_1 | ReLU | — | — | — | 100 × 150 × 32 |
| conv2d_1 | Conv2D | 16 filtros | (1,1) | — | 100 × 150 × 16 |
| batch_normalization_2 | BatchNormalization | — | — | — | 100 × 150 × 16 |
| conv2d_2 | Conv2D | 96 filtros | (1,1) | — | 100 × 150 × 96 |
| batch_normalization_3 | BatchNormalization | — | — | — | 100 × 150 × 96 |
| re_lu_2 | ReLU | — | — | — | 100 × 150 × 96 |
| depthwise_conv2d_1 | DepthwiseConv2D | depthwise | (3,3) | — | 50 × 75 × 96 |
| batch_normalization_4 | BatchNormalization | — | — | — | 50 × 75 × 96 |
| re_lu_3 | ReLU | — | — | — | 50 × 75 × 96 |
| conv2d_3 | Conv2D | 24 filtros | (1,1) | — | 50 × 75 × 24 |
| batch_normalization_5 | BatchNormalization | — | — | — | 50 × 75 × 24 |
| conv2d_4 | Conv2D | 144 filtros | (1,1) | — | 50 × 75 × 144 |
| batch_normalization_6 | BatchNormalization | — | — | — | 50 × 75 × 144 |
| re_lu_4 | ReLU | — | — | — | 50 × 75 × 144 |
| depthwise_conv2d_2 | DepthwiseConv2D | depthwise | (3,3) | — | 50 × 75 × 144 |
| batch_normalization_7 | BatchNormalization | — | — | — | 50 × 75 × 144 |
| re_lu_5 | ReLU | — | — | — | 50 × 75 × 144 |
| conv2d_5 | Conv2D | 24 filtros | (1,1) | — | 50 × 75 × 24 |
| batch_normalization_8 | BatchNormalization | — | — | — | 50 × 75 × 24 |
| add | Add (conexión residual) | — | — | — | 50 × 75 × 24 |
| conv2d_6 | Conv2D | 144 filtros | (1,1) | — | 50 × 75 × 144 |
| batch_normalization_9 | BatchNormalization | — | — | — | 50 × 75 × 144 |
| re_lu_6 | ReLU | — | — | — | 50 × 75 × 144 |
| depthwise_conv2d_3 | DepthwiseConv2D | depthwise | (3,3) | — | 25 × 38 × 144 |
| batch_normalization_10 | BatchNormalization | — | — | — | 25 × 38 × 144 |
| re_lu_7 | ReLU | — | — | — | 25 × 38 × 144 |
| conv2d_7 | Conv2D | 32 filtros | (1,1) | — | 25 × 38 × 32 |
| batch_normalization_11 | BatchNormalization | — | — | — | 25 × 38 × 32 |
| conv2d_8 | Conv2D | 192 filtros | (1,1) | — | 25 × 38 × 192 |
| batch_normalization_12 | BatchNormalization | — | — | — | 25 × 38 × 192 |
| re_lu_8 | ReLU | — | — | — | 25 × 38 × 192 |
| depthwise_conv2d_4 | DepthwiseConv2D | depthwise | (3,3) | — | 25 × 38 × 192 |
| batch_normalization_13 | BatchNormalization | — | — | — | 25 × 38 × 192 |
| re_lu_9 | ReLU | — | — | — | 25 × 38 × 192 |
| conv2d_9 | Conv2D | 32 filtros | (1,1) | — | 25 × 38 × 32 |
| batch_normalization_14 | BatchNormalization | — | — | — | 25 × 38 × 32 |
| add_1 | Add (conexión residual) | — | — | — | 25 × 38 × 32 |
| conv2d_10 | Conv2D | 192 filtros | (1,1) | — | 25 × 38 × 192 |
| batch_normalization_15 | BatchNormalization | — | — | — | 25 × 38 × 192 |
| re_lu_10 | ReLU | — | — | — | 25 × 38 × 192 |
| depthwise_conv2d_5 | DepthwiseConv2D | depthwise | (3,3) | — | 25 × 38 × 192 |
| batch_normalization_16 | BatchNormalization | — | — | — | 25 × 38 × 192 |
| re_lu_11 | ReLU | — | — | — | 25 × 38 × 192 |
| conv2d_11 | Conv2D | 32 filtros | (1,1) | — | 25 × 38 × 32 |
| batch_normalization_17 | BatchNormalization | — | — | — | 25 × 38 × 32 |
| add_2 | Add (conexión residual) | — | — | — | 25 × 38 × 32 |
| conv2d_12 | Conv2D | 192 filtros | (1,1) | — | 25 × 38 × 192 |
| batch_normalization_18 | BatchNormalization | — | — | — | 25 × 38 × 192 |
| re_lu_12 | ReLU | — | — | — | 25 × 38 × 192 |
| depthwise_conv2d_6 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 192 |
| batch_normalization_19 | BatchNormalization | — | — | — | 13 × 19 × 192 |
| re_lu_13 | ReLU | — | — | — | 13 × 19 × 192 |
| conv2d_13 | Conv2D | 64 filtros | (1,1) | — | 13 × 19 × 64 |
| batch_normalization_20 | BatchNormalization | — | — | — | 13 × 19 × 64 |
| conv2d_14 | Conv2D | 384 filtros | (1,1) | — | 13 × 19 × 384 |
| batch_normalization_21 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_14 | ReLU | — | — | — | 13 × 19 × 384 |
| depthwise_conv2d_7 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 384 |
| batch_normalization_22 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_15 | ReLU | — | — | — | 13 × 19 × 384 |
| conv2d_15 | Conv2D | 64 filtros | (1,1) | — | 13 × 19 × 64 |
| batch_normalization_23 | BatchNormalization | — | — | — | 13 × 19 × 64 |
| add_3 | Add (conexión residual) | — | — | — | 13 × 19 × 64 |
| conv2d_16 | Conv2D | 384 filtros | (1,1) | — | 13 × 19 × 384 |
| batch_normalization_24 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_16 | ReLU | — | — | — | 13 × 19 × 384 |
| depthwise_conv2d_8 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 384 |
| batch_normalization_25 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_17 | ReLU | — | — | — | 13 × 19 × 384 |
| conv2d_17 | Conv2D | 64 filtros | (1,1) | — | 13 × 19 × 64 |
| batch_normalization_26 | BatchNormalization | — | — | — | 13 × 19 × 64 |
| add_4 | Add (conexión residual) | — | — | — | 13 × 19 × 64 |
| conv2d_18 | Conv2D | 384 filtros | (1,1) | — | 13 × 19 × 384 |
| batch_normalization_27 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_18 | ReLU | — | — | — | 13 × 19 × 384 |
| depthwise_conv2d_9 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 384 |
| batch_normalization_28 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_19 | ReLU | — | — | — | 13 × 19 × 384 |
| conv2d_19 | Conv2D | 64 filtros | (1,1) | — | 13 × 19 × 64 |
| batch_normalization_29 | BatchNormalization | — | — | — | 13 × 19 × 64 |
| add_5 | Add (conexión residual) | — | — | — | 13 × 19 × 64 |
| conv2d_20 | Conv2D | 384 filtros | (1,1) | — | 13 × 19 × 384 |
| batch_normalization_30 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_20 | ReLU | — | — | — | 13 × 19 × 384 |
| depthwise_conv2d_10 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 384 |
| batch_normalization_31 | BatchNormalization | — | — | — | 13 × 19 × 384 |
| re_lu_21 | ReLU | — | — | — | 13 × 19 × 384 |
| conv2d_21 | Conv2D | 96 filtros | (1,1) | — | 13 × 19 × 96 |
| batch_normalization_32 | BatchNormalization | — | — | — | 13 × 19 × 96 |
| conv2d_22 | Conv2D | 576 filtros | (1,1) | — | 13 × 19 × 576 |
| batch_normalization_33 | BatchNormalization | — | — | — | 13 × 19 × 576 |
| re_lu_22 | ReLU | — | — | — | 13 × 19 × 576 |
| depthwise_conv2d_11 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 576 |
| batch_normalization_34 | BatchNormalization | — | — | — | 13 × 19 × 576 |
| re_lu_23 | ReLU | — | — | — | 13 × 19 × 576 |
| conv2d_23 | Conv2D | 96 filtros | (1,1) | — | 13 × 19 × 96 |
| batch_normalization_35 | BatchNormalization | — | — | — | 13 × 19 × 96 |
| add_6 | Add (conexión residual) | — | — | — | 13 × 19 × 96 |
| conv2d_24 | Conv2D | 576 filtros | (1,1) | — | 13 × 19 × 576 |
| batch_normalization_36 | BatchNormalization | — | — | — | 13 × 19 × 576 |
| re_lu_24 | ReLU | — | — | — | 13 × 19 × 576 |
| depthwise_conv2d_12 | DepthwiseConv2D | depthwise | (3,3) | — | 13 × 19 × 576 |
| batch_normalization_37 | BatchNormalization | — | — | — | 13 × 19 × 576 |
| re_lu_25 | ReLU | — | — | — | 13 × 19 × 576 |
| conv2d_25 | Conv2D | 96 filtros | (1,1) | — | 13 × 19 × 96 |
| batch_normalization_38 | BatchNormalization | — | — | — | 13 × 19 × 96 |
| add_7 | Add (conexión residual) | — | — | — | 13 × 19 × 96 |
| conv2d_26 | Conv2D | 576 filtros | (1,1) | — | 13 × 19 × 576 |
| batch_normalization_39 | BatchNormalization | — | — | — | 13 × 19 × 576 |
| re_lu_26 | ReLU | — | — | — | 13 × 19 × 576 |
| depthwise_conv2d_13 | DepthwiseConv2D | depthwise | (3,3) | — | 7 × 10 × 576 |
| batch_normalization_40 | BatchNormalization | — | — | — | 7 × 10 × 576 |
| re_lu_27 | ReLU | — | — | — | 7 × 10 × 576 |
| conv2d_27 | Conv2D | 160 filtros | (1,1) | — | 7 × 10 × 160 |
| batch_normalization_41 | BatchNormalization | — | — | — | 7 × 10 × 160 |
| conv2d_28 | Conv2D | 960 filtros | (1,1) | — | 7 × 10 × 960 |
| batch_normalization_42 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_28 | ReLU | — | — | — | 7 × 10 × 960 |
| depthwise_conv2d_14 | DepthwiseConv2D | depthwise | (3,3) | — | 7 × 10 × 960 |
| batch_normalization_43 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_29 | ReLU | — | — | — | 7 × 10 × 960 |
| conv2d_29 | Conv2D | 160 filtros | (1,1) | — | 7 × 10 × 160 |
| batch_normalization_44 | BatchNormalization | — | — | — | 7 × 10 × 160 |
| add_8 | Add (conexión residual) | — | — | — | 7 × 10 × 160 |
| conv2d_30 | Conv2D | 960 filtros | (1,1) | — | 7 × 10 × 960 |
| batch_normalization_45 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_30 | ReLU | — | — | — | 7 × 10 × 960 |
| depthwise_conv2d_15 | DepthwiseConv2D | depthwise | (3,3) | — | 7 × 10 × 960 |
| batch_normalization_46 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_31 | ReLU | — | — | — | 7 × 10 × 960 |
| conv2d_31 | Conv2D | 160 filtros | (1,1) | — | 7 × 10 × 160 |
| batch_normalization_47 | BatchNormalization | — | — | — | 7 × 10 × 160 |
| add_9 | Add (conexión residual) | — | — | — | 7 × 10 × 160 |
| conv2d_32 | Conv2D | 960 filtros | (1,1) | — | 7 × 10 × 960 |
| batch_normalization_48 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_32 | ReLU | — | — | — | 7 × 10 × 960 |
| depthwise_conv2d_16 | DepthwiseConv2D | depthwise | (3,3) | — | 7 × 10 × 960 |
| batch_normalization_49 | BatchNormalization | — | — | — | 7 × 10 × 960 |
| re_lu_33 | ReLU | — | — | — | 7 × 10 × 960 |
| conv2d_33 | Conv2D | 320 filtros | (1,1) | — | 7 × 10 × 320 |
| batch_normalization_50 | BatchNormalization | — | — | — | 7 × 10 × 320 |
| conv2d_34 | Conv2D | 1280 filtros | (1,1) | — | 7 × 10 × 1280 |
| batch_normalization_51 | BatchNormalization | — | — | — | 7 × 10 × 1280 |
| re_lu_34 | ReLU | — | — | — | 7 × 10 × 1280 |
| global_average_pooling2d | GlobalAveragePooling2D | — | — | — | 1,280 elementos |
| Salida | Dense (Clasificador binario) | 1 neuronas | — | Sigmoide | 1 (Probabilidad de INE) |
Verificación de Identificaciones mediante Redes Neuronales
Pérdida
Precisión
137
14
3
2,820
V1 (MFHA_CDO, el modelo propuesto) contra tres arquitecturas de referencia entrenadas sobre el mismo dataset — MobileNetV2, SqueezeNet y EfficientNet-B0.
V1 · MFHA_CDO
V0.1 · MobileNetV2
V0.2 · SqueezeNet
V0.3 · EfficientNet-B0
Tras 30 épocas: 99.6% train · 99.9% val
Tras 30 épocas: 99.65% train · 99.2% val
Tras 30 épocas: 97.45% train · 95.9% val
Tras 30 épocas: 99.55% train · 99.8% val
Global 99.66%
2964/2974 aciertosBalanceada 99.20%INE 98.68% · 149/151Global 99.43%
2957/2974 aciertosBalanceada 95.31%INE 90.73% · 137/151Global 94.92%
2823/2974 aciertosBalanceada 50.00%INE 0.00% · 0/151Global 99.73%
2966/2974 aciertosBalanceada 97.66%INE 95.36% · 144/15120.47 MB
4.44 MB (4.6× más chico que V1)
1.43 MB (14.3× más chico que V1)
7.90 MB (2.6× más chico que V1)
Referencia (V1)
~4.6× más rápido que V1
~14.3× más rápido que V1
~2.6× más rápido que V1