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.
y ∈ ℝᴺ → x ∈ ℝᵈ, d ≪ N).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.
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.
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) | |
|---|---|---|
| > 0 | cola alargada a la derecha | datos concentrados en la media, colas pesadas |
| = 0 | simétrica | como la normal |
| < 0 | cola alargada a la izquierda | datos 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.
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?
f = [f₁, f₂, f₃, …]. Conserva la información local; desventaja: la dimensión crece rápido.μ_μ, σ²_μ, μ_σ², σ²_σ², …maxₖ σ²ₖ.| Enfoque | Captura |
|---|---|
| Global | Tendencia general |
| Local | Cambios y estructura |
| Local + pooling | Estructura 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.
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, …]
| Ventajas | Desventajas |
|---|---|
| Simple; robusto al ruido | Pierde información espacial/temporal |
| Invariante a permutaciones / traslaciones | Sensible al número de bins |
| Dimensión controlable; funciona con pocos datos | No captura relaciones entre valores vecinos |
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).
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:
A partir de la matriz normalizada se calculan estadísticos que forman el vector de características:
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.
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.
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)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 (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.
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 ΔΔ.
En audio se analizan datos en una dimensión: amplitud vs. tiempo. Tres categorías: temporales, espectrales (frecuencia) y tiempo–frecuencia.
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.
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}:
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:
Y[n] = X[n] − α·X[n-1]. Amplifica las frecuencias altas que se atenúan en el habla.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.
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 = 80Temporales:
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.
Estructurado según el Tema 2 del programa del profesor.