← Reconocimiento de Patrones

Clase 01

Ing. Rubén Omar Azuara Domínguez · 28 ago 2026 · Tema 2 — Extracción de características · características estadísticas, histograma, momentos geométricos (Hu), textura GLCM, HOG, SIFT/SURF y descriptores de audio (temporales, espectrales, MFCC + Δ/ΔΔ).

🔢 Numeración del profesor: cubre el contenido de sus diapositivas Clase 2, 3 y 4 (Extracción de características I, II, III) — no coincide 1:1 con "Clase 01" de este sitio.

📄 Extracción de características I (prof.) 📄 Extracción de características II (prof.) 📄 Extracción de características III (prof.)

En corto

🎯 Para el examen

¿Qué es la extracción de características?

Es el proceso que transforma un conjunto de datos crudos (imágenes, audio, series de tiempo…) en un vector de valores numéricos que describe de forma compacta la información relevante del patrón.

y ∈ ℝᴺ  →  x ∈ ℝᵈ ,   d ≪ N

En lugar de trabajar con los datos originales (alta dimensionalidad, ruidosos, redundantes), se representa cada muestra con un conjunto reducido de atributos que conserven la información discriminante necesaria para separar clases.

¿Por qué tener menos características?

En qué consiste: analizar la naturaleza del dato → identificar propiedades relevantes del patrón → calcular medidas cuantitativas que las describan → construir un vector de características comparable entre muestras.

Se busca: discriminabilidad (separar clases), compacidad (reducir dimensión), robustez (ruido, variación intra-clase) y bajo costo computacional.

Características estadísticas

Describen la distribución de los datos sin considerar explícitamente su estructura espacial o temporal.

Primer y segundo orden:

μ  = (1/N) Σ xᵢ                    (media)
σ² = (1/N) Σ (xᵢ − μ)²             (varianza)

Orden superior:

skewness       = (1/(N·σ³)) Σ (xᵢ − μ)³
excess kurtosis = (1/(N·σ⁴)) Σ (xᵢ − μ)⁴ − 3
Skewness (asimetría)Curtosis (exceso)
> 0cola alargada a la derechadatos concentrados en la media, colas pesadas
= 0simétricacomo la normal
< 0cola alargada a la izquierdadatos más dispersos, colas más ligeras

Dos señales con la misma media pueden tener varianzas muy distintas; dos señales con misma media y varianza pueden separarse por skewness / curtosis.

Características locales: ventanas

Lo anterior se aplica de forma global (tendencia general), pero también local (estructura espacial o temporal): la señal de tamaño N se divide en L ventanas.

¿Qué hacer con todas las ventanas?

  1. Concatenación directa: f = [f₁, f₂, f₃, …]. Conserva la información local; desventaja: la dimensión crece rápido.
  2. Estadísticas sobre estadísticas: para cada característica a lo largo de las ventanas se calcula μ_μ, σ²_μ, μ_σ², σ²_σ², …
  3. Pooling: ej. maxₖ σ²ₖ.
EnfoqueCaptura
GlobalTendencia general
LocalCambios y estructura
Local + poolingEstructura y robustez

Cuándo NO vale la pena usar ventanas locales: señales estacionarias, datos muy ruidosos, ventanas demasiado pequeñas, problemas donde la estructura local no es relevante.

Histograma

Describe cómo se distribuyen los valores de una señal o dato, sin importar su posición exacta. No se usa como gráfica sino como vector de características. Aplica a imágenes, audio y otras señales.

h = [146, 870, 1159, 1394, 1348, 1334, 1289, …]
VentajasDesventajas
Simple; robusto al ruidoPierde información espacial/temporal
Invariante a permutaciones / traslacionesSensible al número de bins
Dimensión controlable; funciona con pocos datosNo captura relaciones entre valores vecinos
Momentos geométricos (formas)

Las medidas geométricas simples son insuficientes para formas complejas o para garantizar invariancia a traslación, escala o rotación. Los momentos geométricos describen cómo se distribuyen espacialmente los píxeles de un objeto.

Momentos espaciales — para una imagen f(x,y) (binaria o en escala de grises):

M(p,q) = Σx Σy  x^p · y^q · f(x, y)        con p, q ≥ 0

Área (imagen binaria) = M(0,0)
Centroide (x̄, ȳ) = ( M(1,0)/M(0,0) ,  M(0,1)/M(0,0) )

Dependen de la posición del objeto.

Momentos centrales — para eliminar la traslación:

μ(p,q) = Σx Σy  (x − x_c)^p · (y − y_c)^q · f(x, y)

Invariantes a traslación; describen la forma alrededor de su centro; aún dependen de la escala.

Momentos normalizados — a partir de los centrales, dividiendo por una potencia del momento de orden cero:

η_ij = μ_ij / μ₀₀^((i+j)/2 + 1)        con i + j ≥ 2

Invariantes a traslación y escala; aún variantes a rotación.

Momentos de Hu — 7 momentos invariantes a rotación, escala y traslación, calculados a partir de los normalizados. Es común aplicarles una escala logarítmica (los valores crudos son minúsculos, del orden de 1e-3 a 1e-15).

Textura: GLCM (Gray Level Co-occurrence Matrix)

Si la forma describe la silueta del objeto, la textura describe la organización interna de los niveles de gris. La GLCM modela qué tan frecuentemente ciertos niveles de gris aparecen juntos.

Para una imagen cuantizada con N niveles de gris, la GLCM es una matriz N×N donde cada elemento

P(i, j | d, θ)

indica cuántas veces un píxel de valor i aparece junto a un píxel de valor j, separados por una distancia d en una dirección θ. Parámetros: niveles de gris N, distancia d, dirección θ.

Cómo se calcula:

  1. Definir distancia d y dirección θ (ej. d = 1, θ = 0° → de izquierda a derecha).
  2. Crear un arreglo N×N para la GLCM.
  3. Contar cuántas transiciones hay de un valor de intensidad a otro según d y θ.
  4. Hacerla simétrica respecto a la diagonal principal: sumar la matriz "oeste→este" con la "este→oeste".
  5. Normalizar: dividir cada celda entre el total de conteos.

A partir de la matriz normalizada se calculan estadísticos que forman el vector de características:

Ejercicios resueltos en clase (Hu y GLCM)

Guardados en Ejercicios de Hu y GLCM (PDF). Resumen de los que se pueden transcribir:

Ejemplo 1 — Momentos geométricos   Mpq = ΣΣ xp yq f(x,y). Imagen 5×5 con cuatro píxeles en 1 (x ∈ {2,3}, y ∈ {1,2}):

M00 = Σ f            = 1+1+1+1                 = 4
M10 = Σ x·f          = 2+3+2+3                 = 10
M01 = Σ y·f          = 1+1+2+2                 = 6
M11 = Σ x·y·f        = 2·1 + 3·1 + 2·2 + 3·2     = 15

M = [ M00  M10 ] = [ 4  10 ]
    [ M01  M11 ]   [ 6  15 ]

Ejemplo 2 — Momentos centrales   μpq = ΣΣ (x−x̄)p (y−ȳ)q f(x,y).

Centroide {x̄, ȳ} = { M10/M00 , M01/M00 } = { 10/4 , 6/4 } = { 2.5 , 1.5 }

μ00 = M00 = 4
μ10 = 0 ,  μ01 = 0            (siempre, por definición del centroide)
μ11 = ΣΣ (x−2.5)(y−1.5) f
     = (−0.5)(−0.5) + (0.5)(−0.5) + (−0.5)(0.5) + (0.5)(0.5)
     = 0.25 − 0.25 − 0.25 + 0.25 = 0
Relación:  μ11 = M11 − x̄·M01 = M11 − ȳ·M10

μ = [ μ00  μ10 ] = [ 4  0 ]
    [ μ01  μ11 ]   [ 0  0 ]

Ejemplo 4 — GLCM (imagen 4×4, niveles de gris 0–3), d = 1. GLCM θ = 0 (izquierda→derecha), sin normalizar — 12 pares en total:

       j=0  j=1  j=2  j=3
 i=0    2    2    1    0
 i=1    0    2    0    0
 i=2    0    0    3    1
 i=3    0    0    0    1

La versión simétrica y la dirección θ = 90° (arriba→abajo) están resueltas celda por celda en el PDF.

HOG — Histogram of Oriented Gradients

Descriptor de forma: codifica los gradientes de intensidad y sus orientaciones dentro de regiones localizadas de la imagen. Captura estructuras locales de bordes. Aplicación estrella: detección de personas y objetos; fue lo más sólido del estado del arte antes de las redes convolucionales.

HOG · A) Preprocesamiento
HOG · B) Cálculo de gradientes

El gradiente indica la dirección de mayor cambio de luminosidad → un borde. Se calcula en X e Y por convolución con filtros detectores de bordes:

Filtro eje X (Gx):  matriz 1×3   → detecta bordes verticales
Filtro eje Y (Gy):  matriz 3×1   → detecta bordes horizontales

Convolución (A * B): se refleja B sobre sí misma y se va
multiplicando y deslizando sobre A. Aplica en 2D, 3D, etc.

Magnitud:    M = √(Gx² + Gy²)        (nueva imagen de intensidades de cambio)
Orientación: θ = arctan(Gy / Gx)     (dirección del borde en cada píxel)
HOG · C) Histograma por celda
HOG · D) Normalización entre bloques
HOG · E) Vector de características final

Se concatenan todos los vectores de bloque normalizados → vector de 3 780 valores para la imagen estándar 64×128. Captura contornos externos y detalles internos del objeto. Es la entrada directa al clasificador; 3 780 es la dimensionalidad óptima validada experimentalmente para este tipo de subimágenes.

SIFT y SURF (puntos clave)

SIFT (Scale-Invariant Feature Transform) — describe características locales invariantes a escala, rotación, luminosidad y cambios moderados de perspectiva. Flujo: aplicar filtros gaussianos sucesivos (suavizar / emborronar) → Diferencia de Gaussianas (DoG) = restar imágenes suavizadas consecutivas para localizar puntos clave robustos → por cada punto clave, histograma de gradientes local → vector descriptor de 128 características por punto.

SURF (Speeded-Up Robust Features, ~2004) — evolución rápida de SIFT: robustez similar con mucho menos cómputo. Además del punto característico, identifica un radio / rango sobre el que ese punto aporta información. Usos de ambos: reconocimiento de objetos, seguimiento en video, reconocimiento facial, realidad aumentada.

Audio — en corto (sin fórmulas)

Un audio es un solo número (la amplitud) que cambia con el tiempo. Para clasificarlo no le pasamos la onda cruda al modelo, sino medidas que la resumen. Hay tres familias:

Delta (Δ) y Delta-Delta (ΔΔ) — la analogía del coche:

¿Para qué? El timbre por sí solo no distingue bien dos sonidos parecidos; cómo evoluciona en el tiempo sí. Por eso al vector se le añaden Δ y ΔΔ.

Descriptores de audio — categorías

En audio se analizan datos en una dimensión: amplitud vs. tiempo. Tres categorías: temporales, espectrales (frecuencia) y tiempo–frecuencia.

Audio · descriptores temporales

Se calculan directamente sobre la señal en el tiempo X[n]:

Energía   E   = Σ X[n]²                    (intensidad / potencia en la ventana)
RMS           = √( Σ X[n]² / N )           (raíz del promedio de amplitudes²)

ZCR (Zero Crossing Rate) — cuántas veces la señal cambia de signo. Con la función signo (1 si la muestra es positiva, 0 si es negativa) se evalúa |signo(x[i]) − signo(x[i-1])| entre muestras contiguas y se promedia. Ej.: |signo(0.5) − signo(0.3)| = 0 (sin cruce); |signo(-0.2) − signo(0.3)| = 2 (cruce). ZCR alto → sonido ruidoso; bajo → sonido armónico. Sirve para distinguir voz de ruido o de sonidos percusivos.

Autocorrelación — se toma la misma señal, se desplaza sobre sí misma (lag) y se multiplica y suma → mide periodicidad / similitud en el tiempo.

Audio · descriptores espectrales

Se calculan tras pasar al dominio de la frecuencia con la FFT:

X[k] = Σ x[n] · e^(-j·2πkn/N)          N = longitud de la señal

Supuesto clave: la FFT asume que la señal es estacionaria (sus propiedades no cambian en el tiempo) y que la ventana captura un ciclo periódico.

Centroide espectral   C = Σ f_k·|X[k]|  /  Σ |X[k]|     (centro de masa del espectro)
Ancho de banda        BW = √( Σ (f_k − C)²·|X[k]| / Σ |X[k]| )   (dispersión respecto a C)
Spectral roll-off     frecuencia bajo la cual se acumula el 85 % de la amplitud total
Spectral flux         SF = Σ ( X_t[k] − X_{t-1}[k] )²    (cambio entre ventanas consecutivas)
Spectral flatness     media geométrica / media aritmética del espectro  (≈1 → espectro plano)

Ejemplos numéricos de clase — frecuencias {100, 500, 1000, 2000} Hz con amplitudes {0.1, 0.5, 0.3, 0.1}:

Audio · MFCC (tiempo–frecuencia)

Coeficientes que representan la envolvente espectral con base en una escala perceptual adaptada al oído humano (≈15 Hz a 24–25 kHz).

Escala Mel — lineal en bajas frecuencias, logarítmica en altas:

Mel(f) = 2595 · log₁₀( 1 + f/700 )

8 pasos para construir los MFCC:

  1. Preénfasis — filtro paso-altas: Y[n] = X[n] − α·X[n-1]. Amplifica las frecuencias altas que se atenúan en el habla.
  2. Framing — segmentar en ventanas de 20–40 ms con 50 % de solapamiento.
  3. Ventana de Hamming — multiplica cada ventana: amplifica el centro, atenúa los extremos a cero. Motivo: la FFT asume señal periódica infinita; si se corta de golpe se generan discontinuidades en los bordes que meten ruido artificial. Hamming las elimina.
  4. FFT — sobre cada ventana suavizada → espectro de potencia.
  5. Banco de filtros Mel — 20 a 40 filtros triangulares solapados, espaciados en la escala Mel.
  6. Log de la energía — energía que pasa por cada filtro (espectro × filtro, sumado) y se le aplica logaritmo.
  7. DCT (Transformada Coseno Discreta) — sobre el log de las energías. Es discreto→discreto (no es transformada integral) y compacta la información en los primeros coeficientes.
  8. Truncamiento — quedarse solo con los primeros 12 o 13 coeficientes. ⚠️ Se descarta obligatoriamente el coeficiente 0 (solo representa la energía promedio total, no la envolvente). Se usan del 1 al 12 (o al 13).

Representación: matriz [coeficientes × ventanas de tiempo], se visualiza como mapa de calor. ⚠️ Irreversible: no se puede reconstruir el audio original — la DCT trunca coeficientes y se descarta la fase de la FFT; funciona solo como extractor de características.

Delta (Δ) = velocidad: diferencia entre el vector de la ventana actual y la anterior. Delta-Delta (ΔΔ) = aceleración: diferencia de los deltas consecutivos. Cada uno aporta 13 coeficientes por ventana.

Vector de características de audio final

Para meter un audio completo a un clasificador se resume la matriz de coeficientes con estadísticos a lo largo de las ventanas: media, desviación estándar, máximo y mínimo.

(13 MFCC × 4 estadísticos)        = 52
(2 temporales × 4 estadísticos)   =  8      (Energía, ZCR)
(5 espectrales × 4 estadísticos)  = 20      (Centroide, BW, Roll-off, Flux, Flatness)
                                   ----
Dimensión total del vector        = 80
Fórmulas y ejemplos numéricos (diapositivas Clase 4)

Temporales:

Energía  E = Σ x[n]²          RMS = √( (1/N) Σ x[n]² )
ZCR = (1/2N) Σ |sign(x[n]) − sign(x[n−1])|      (alto = ruidoso · bajo = armónico)
Autocorrelación  R(k) = Σ x[n]·x[n−k]

Ej. ventana [0.5, −0.3, 0.8, −0.2]:  E = (1/4)(0.25+0.09+0.64+0.04) = 0.255
Ej. ventana [0.5, 0.3, −0.2, −0.4, 0.1]:  2 cruces  →  ZCR = 4 / (2·5) = 0.4

Espectrales (sobre la FFT X(k) = Σ x[n] e^(−j2πkn/N)):

Centroide     C  = Σ fₖ|X[k]| / Σ|X[k]|                 Ej. → 760 Hz
Ancho de banda BW = √( Σ (fₖ − C)² |X[k]| / Σ|X[k]| )    Ej. → ≈ 498.4 Hz
Roll-off: menor R tal que Σ₀..ᴿ|X[k]| = α Σ₀..ᴷ|X[k]|   (α = 0.85 o 0.95)   Ej. → 1500 Hz
Flux     = Σ ( |Xₜ[k]| − |Xₜ₋₁[k]| )²                    Ej. → 0.27
Flatness = media geométrica / media aritmética           Ej. → ≈ 0.96 (espectro casi plano)

Escala Mel (bajas frecuencias ≈ lineal, altas ≈ logarítmica):

Mel(f) = 2595 · log₁₀(1 + f/700)          f = 700 · (10^(m/2595) − 1)

Etapas MFCC: 1) pre-énfasis y[n] = x[n] − α x[n−1], α ≈ 0.95 · 2) framing 20–40 ms, 50 % de solape · 3) ventana de Hamming w[n] = 0.54 − 0.46 cos(2πn/(N−1)) · 4) FFT y espectro de potencia · 5) banco de 20–40 filtros triangulares Mel, energíaᵢ = Σ P(k) Hᵢ[k] · 6) logaritmo · 7) DCT-II, quedarse con los primeros 12–13 → MFCC. Con Δ y ΔΔ: matriz #ventanas × 39.

Para investigar / siguiente

Estructurado según el Tema 2 del programa del profesor.