¿Qué es una función hash perceptual?



los Las Cumbres de Transform Technology comienzan el 13 de octubre con Low-Code / Sin Code: Habilitación de la agilidad empresarial. ¡Únete ahora!


Déjalos Boletín de OSS Enterprise acompañarlo en su viaje de código abierto! Registrate aquí.

Cuando los programadores necesitan crear un reemplazo más corto para un archivo o bloque de datos más grande, a menudo recurren a las funciones hash. Estos programadores analizan un bloque de datos y generan un número corto que se puede utilizar como sustituto o abreviatura de la colección más grande de bytes, a veces en un índice y a veces en un cálculo más complicado.


Las funciones de hash perceptual están diseñadas para lograr el mismo resultado con imágenes o sonidos similares. Su objetivo es imitar la percepción humana centrándose en los tipos de características (colores y frecuencias) que impulsan la visión y el oído humanos.

Muchas funciones hash no perceptivas populares son muy sensibles a los cambios más pequeños. Simplemente invirtiendo un bit, por ejemplo cambiando el componente azul en un píxel de 200 a 199 unidades, se puede cambiar la mitad de los bits en las funciones hash. Las funciones de hash perceptual están diseñadas para devolver respuestas a imágenes o sonidos que un humano podría percibir como similares. Dicho esto, los pequeños cambios en los medios no afectarán la salida.

Las funciones hash simplifican la búsqueda y la indexación en bases de datos y otros almacenes de datos. Las tablas hash, una estructura de datos popular conocida por sus respuestas rápidas, se basan en una buena función hash como índice para encontrar rápidamente el bloque de datos más grande. Por ejemplo, los algoritmos de reconocimiento facial utilizan una función hash perceptual para organizar las fotos de las personas en la imagen. Los algoritmos utilizan las distancias relativas entre los rasgos faciales, como ojos, nariz y boca, para construir un vector corto de números que puede organizar una colección de imágenes.


Algunos algoritmos dependen de funciones hash para marcar cambios. A menudo denominados «sumas de comprobación», estos enfoques comenzaron como una forma rápida de buscar datos extraviados. Tanto el remitente como el receptor pueden sumar todos los bytes de los datos y luego comparar la respuesta. Si ambos coinciden, el algoritmo puede asumir que no se cometieron errores, una suposición que no está garantizada. Si los errores cometidos en la transmisión ocurrieron de cierta manera, digamos agregando tres a un byte y restando tres de otro al mismo tiempo, los errores se cancelarían entre sí y el algoritmo de suma de verificación no detectaría el error.

Todas las funciones hash son propensas a «colisiones» cuando dos bloques de datos diferentes generan el mismo valor hash. Esto sucede más a menudo con las funciones hash que devuelven respuestas más cortas, ya que el número de posibles bloques de datos es mucho, mucho mayor que el número de posibles respuestas.

Algunas características, como el algoritmo de hash seguro estándar del gobierno de EE. UU. (SHA256), están diseñadas para que sea prácticamente imposible encontrar una colisión. Fueron desarrollados con los mismos principios que las rutinas de cifrado fuerte para evitar la ingeniería inversa. Muchos algoritmos criptográficos se basan en funciones hash seguras como SHA256 como bloque de construcción, y algunos se refieren a ellos coloquialmente como la «cinta» de la criptografía.

Las funciones de hash de percepción no pueden ser tan resistentes. Están diseñados para que datos similares produzcan un valor hash similar, lo que facilita la búsqueda de una colisión. Esto los hace propensos a la falsificación y la mala dirección. Dado un archivo, es relativamente fácil construir un segundo archivo que se ve y se ve muy diferente, pero produce el mismo hash perceptual.

¿Cómo funcionan las funciones hash perceptivas?

Las funciones de hash de percepción siguen siendo un área activa de investigación y no existen estándares definitivos o incluso dominantes. Estas funciones tienden a dividir un archivo de imagen o sonido en bloques relativamente grandes y luego convertir formas o sonidos similares al mismo valor. El patrón aproximado y la distribución de los valores en estos bloques pueden verse como una versión de muy baja resolución y, a menudo, son iguales o muy similares para imágenes o sonidos que están muy juntos.

Por ejemplo, una función básica para el sonido puede dividir el archivo en secciones de un segundo y luego analizar la presencia o ausencia de frecuencias en cada sección. Si hay sonidos de baja frecuencia, p. Ej. B. entre 100 Hz y 300 Hz, la función puede asignar un 1 a esta sección. También podría probar otras frecuencias comunes, como el rango común para la voz humana. Algunas funciones automáticas de detección de música popular pueden hacer un buen trabajo con una función simple como esta, ya que puede detectar el ritmo del bajo y los momentos en que alguien está cantando.

El tamaño de los bloques y las frecuencias probadas se pueden ajustar para la aplicación. Una función hash para identificar las llamadas de los pájaros podría activarse con frecuencias más altas. Los bloques más cortos proporcionan más precisión, algo que puede no ser deseable si el objetivo es simplemente agrupar sonidos similares.

Las funciones de imagen utilizan técnicas similares con colores y bloques. Debido a esto, muchas funciones de percepción a menudo coinciden con formas. Una imagen de una persona con los brazos a los lados y las piernas separadas puede coincidir con una foto de la Torre Eiffel, ya que ambas tienen la misma forma.

Varias opciones comunes para comparar imágenes son ahash, dhash y phash. El ahash calcula el color promedio de cada bloque después de dividir la imagen en una cuadrícula de 8 × 8 de 64 bloques. La función phash está disponible como código abierto.

¿Qué pueden hacer?

Los hashes de percepción pueden admitir una colección diversa de aplicaciones:

  • Infracción de derechos de autor: valores hash similares pueden reconocer y hacer coincidir imágenes, sonidos o videos, incluso si se han modificado recortando o reduciendo la escala.
  • Etiquetado de video: los hash de percepción facial pueden ayudar a indexar un video para identificar cuándo ciertas personas son visibles.
  • Errores ortográficos: las funciones hash de percepción textual pueden clasificar las palabras de acuerdo con su sonido, lo que permite reconocer y corregir las palabras mal escritas.
  • Seguridad: los hashes de percepción pueden encontrar e identificar personas o animales en videos o imágenes fijas que siguen sus movimientos.
  • Cumplimiento: algunos algoritmos pueden detectar qué están usando las personas, qué es útil para las obras de construcción y los hospitales. Por ejemplo, un algoritmo puede identificar a las personas que pueden no estar usando el equipo de protección personal requerido legalmente.

Cómo los usan los jugadores heredados

Algunas bases de datos, como MySQL, Oracle y Microsoft, utilizan el algoritmo Soundex para permitir «búsquedas difusas» de palabras que suenan similares aunque estén escritas de manera diferente. La respuesta del algoritmo consta de una letra seguida de varios dígitos. Por ejemplo, tanto «SURE» como «SHORE» conducen al mismo resultado: «S600».

Algunas de las empresas en la nube también ofrecen algoritmos de reconocimiento facial que son fáciles de integrar con su base de datos. Azure de Microsoft, por ejemplo, ofrece Face, una herramienta que busca y agrupa caras similares en una colección de imágenes. La API de la empresa encuentra y devuelve los atributos de un rostro, como el color del cabello o la presencia de vello facial. También trata de hacer una estimación de la edad y las emociones básicas de la persona (enfado, desprecio, felicidad, etc.).

Amazon Rekognition puede reconocer rostros en imágenes, así como otros atributos útiles como el texto. Funciona tanto con imágenes fijas como con videos, lo que lo hace útil para muchas tareas, como: B. Encontrar todas las escenas con un actor en particular. Rekognition también mantiene una base de datos de celebridades y las identifica en sus imágenes.

La API de Cloud Vision de Google reconoce y categoriza muchas partes de una imagen, como texto o puntos de referencia. La herramienta no ofrece reconocimiento facial directo, pero la API encuentra y mide la posición de elementos como el punto medio entre los ojos y los límites de las cejas. Celebrity Recognition es actualmente un producto beta limitado.

Cómo los advenedizos los usan

Apple anunció recientemente que usaría funciones de hash perceptivas llamadas NeuralHash para rastrear los iPhones de los clientes en busca de imágenes potencialmente ilegales de abuso sexual infantil. Los resultados del algoritmo de hash perceptual se compararían con los valores de imágenes conocidas encontradas en otros estudios. El proceso sería automático, pero cualquier coincidencia podría desencadenar una investigación.

Varias empresas, como Clearview.ai o Facebook, crean bases de datos llenas de hashes perceptuales de imágenes escaneadas. En general, no ponen estas bases de datos a disposición de otros desarrolladores.

El tema es un área de exploración activa. Algunas versiones de código abierto incluyen pHash, Blockhash y OpenCV.

¿Hay algo que las funciones hash perceptivas no puedan?

Aunque las funciones hash perceptivas suelen ser bastante precisas, tienden a producir coincidencias falsas. El software de reconocimiento facial de Apple que se utiliza para desbloquear un iPhone a veces puede confundir a los padres con los niños, lo que permite que los niños desbloqueen los teléfonos de sus padres.

En general, la capacidad de una función hash para reducir un conjunto de datos a menudo grande o complejo a un número reducido también es la causa de esta debilidad. Las colisiones no se pueden evitar porque a menudo hay un número dramáticamente menor de respuestas posibles y un número mucho, mucho mayor de entradas. Si bien algunas funciones hash criptográficamente seguras pueden hacer que estas colisiones sean difíciles de encontrar, aún existen.

Del mismo modo, la fuerza de las funciones de hash perceptual también es una debilidad importante. Si la función se aproxima bien a la percepción humana, también será más fácil para los humanos encontrar e incluso crear colisiones. Hay varios ataques que pueden aprovechar este aspecto. Por ejemplo, varios proyectos experimentales iniciales (aquí y aquí) ofrecen software para encontrar e incluso crear colisiones.

VentureBeat

La misión de VentureBeat es ser un mercado digital para que los responsables de la toma de decisiones tecnológicas obtengan conocimientos sobre tecnologías y transacciones transformadoras. Nuestro sitio web proporciona información esencial sobre tecnologías y estrategias de datos para ayudarlo a administrar su organización. Lo invitamos a convertirse en miembro de nuestra comunidad para obtener acceso:

  • información actualizada sobre los temas de su interés
  • nuestros boletines
  • contenido de liderazgo intelectual cerrado y acceso con descuento a nuestros valiosos eventos, como Transformar 2021: Aprende más
  • Funciones de red y más

conviértete en miembro


Deja una respuesta

Tu dirección de correo electrónico no será publicada.