Azure VideoIndexer. Integración con un Digital Assets Management (DAM)

6 May 2024| Tags: IA, DAM, Video, Object Detector

Introducción

Recientemente hemos trabajado en una integración del servicio de “Azure Video Indexer” que analiza audio y vídeos aplicándoles IA con “Image Relay” un Digital Assets management (DAM) desplegado como Sofware as a Service (SaaS).

La idea era que el gestor DAM use la IA de videoindexer para analizar y clasificar automáticamente los vídeos que los usuarios van subiendo y se puedan realizar desde el DAM búsquedas sobre las personas, objetos, conversaciones, etc que aparecen en ellos.

Vamos a contar como se ha llevado a cabo.

VideoIndexer

Video Indexer de Azure AI es un servicio en la nube que utiliza inteligencia artificial (IA) para analizar y comprender el contenido de videos.

Extrae información clave de los videos, como:

  • Objetos: Reconoce los objetos que aparecen y les hace un seguimiento a lo largo del vídeo.
  • Personas: Identifica a las personas que aparecen en el video. Identifica a personas famosas pero también se puede entrenar un modelo propio con fotos de las personas que queramos reconocer. También puede realizar un seguimiento dentro del video de las personas detectadas y la ropa que llevan.
  • Escenas: Divide el video en escenas con base en cambios en el contenido.
  • Texto de imágenes, mediante reconocimiento óptico de caracteres (OCR), en señales de tráfico y productos en archivos multimedia para crear conclusiones, de etiquetas, etc.

Y del audio es capaz de extraer:

  • Sentimientos: Analiza el sentimiento del audio del video.
  • Transcripciones: Genera un texto con lo que se dice en el video.
  • Traducciones: Traduce el audio del video a diferentes idiomas.
  • Efectos de Audio

Vide Indexer tiene un portal dónde se suben los vídeos y se les aplica la IA. El portal muestra cada vídeo con todos los resultados detectados:

  • Personas
  • Objetos
  • Etiquetas
  • Palabras claves en el texto
  • Entidades
  • Emociones

Se pueden localizar cada uno de los resultados detectados en su timeline para poder visualizarlos directamente dentro del vídeo.

Este portal tiene un buscador para encontrar los vídeos que contengan ciertas personas, etiquetas, texto en la transcripción, marcas, etc. de cuyos resultados podemos ir creando material nuevo a partir de las escenas que necesitemos.

Para explotar su API REST existe un portal del desarrollador dónde se pueden crear las API KEYS para acceder a ellas.

Digital Assets Management: Image Relay

La gestión de assets digitales (DAM) es un tipo de software que centraliza el almacenamiento de todos los assets digitales de una empresa. Actúa como una “fuente única de verdad” donde los equipos pueden encontrar cualquier asset multimedia creado para la marca.

Beneficios del DAM:

  • Almacenamiento y organización centralizados
  • Distribución eficiente de assets
  • Mejora de la colaboración y los flujos de trabajo
  • Coherencia y control de la marca
  • Ahorro de tiempo y costes
  • Gestión de derechos y permisos

Características de una plataforma DAM:

Búsqueda y exploración de contenido Descarga y carga de archivos Adición de metadatos complejos

Image Relay es un DAM en formato SaaS de los mas usados del mercado.

Image Relay tiene integración con un montón de productos de terceros: Adobe, Eventbrite, Zapier, etc. pero no directamnte con ningún software de IA que le permita realizar la clasificación de vídeos que buscamos.

Lo que vamos a usar para la integración son sus API REST.

Integración:

A cada Asset en Image Relay se le pueden añadir metadatos (tags). Estos metadatos se pueden usar para clasificarlos y facilitar su búsqueda.

Como hemos dicho vamos a integrar IA de VideoIndexer con Image Relay para que los vídeos que se suban a Image Relay se analicen automáticamente con VideoIndexer y se añadan los resultados como metadatos al Asset.

Arquitectura Integracion

Usamos una pieza de software intermedia que es Azure Logic Apps para orquestar la integración.

Azure Logic Apps es un servicio de integración de Azure que permite automatizar procesos empresariales creando flujos de trabajo (workflows) que conectan aplicaciones y servicios en la nube y locales.

Cuando un vídeo se suba o actualize en Image Relay saltará un webhook que lanza un workflow en Logic Apps, que a su vez manda el vídeo a indexar a Video Indexer. De forma asíncona, cuando Video Indexer termine de analizar ese vídeo lanzará otro workflow de Logic Apps que actualiza los metadatos del Asset en Image Relay con los resultados de la indexación.

Como se puede ver en el diagrama las tres piezas para la integración son:

Image Relay:

  • WebHooks para mandar a indexar vídeos a Videoindexer
  • API de actualizar Metadatos cuando se recibe el resultado de la indexación

Logic Apps:

  • WorkFlow para mandar a indexar el video a Videoindexer (se ejecután cuando ocurre el evento en ImageRelay)
  • WorkFlow para recibir el resultado de la indexación y mandarlo a ImageRelay

Vídeo Indexer:

  • APIS de indexación
  • Visualización de los resultados en el portal de Video Indexer

WebHook en Image Relay

Para que Image Relay mande un evento cuando se suba un vídeo hay que crear un WebHook en la configuración de la cuenta de Image Relay.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
curl --request POST \
     --url https://api.imagerelay.com/api/v2/webhooks \
     --header 'Authorization: Bearer *******' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "resource": "file",
  "action": "created",
  "url": "http://indexar-logic-apps.azurewebsites.net/api/relay",
}'

Este comando crea un WebHook con la url del workflow de indexación creado previamente en logic apps (http://indexar-logic-apps.azurewebsites.net/api/relay) para que cuando se creee un vídeo en Image Relay mande a esa url la información de dicho vídeo: el identificador del vídeo en Image Relay (asset_id), tipo de vídeo, duración, etc.

Logic Apps WorkFlow: Indexar

El workflow de indexar realiza dos pasos:

  1. Crea un “quick-link” en image relay que permite acceder durante un tiempo limitado al vídeo recién subido.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
curl --request POST \
     --url https://api.imagerelay.com/api/v2/quick_links \
     --header 'Authorization: Bearer ***********' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "purpose": "integración",
  "asset_id": 147381790
}

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "id": 23278771,
  "uid": "10cc4d68bf4241d8a28d12eee59c59a7",
  "purpose": "probando",
  "created_at": "2023-10-18T09:58:48.000Z",
  "processing": false,
  "asset_id": 147381790,
  "user_id": 208440,
  "original_file_id": 147381790,
  "url": "https://links.imagerelay.com/cdn/2159/ql/77777777/video1.mp4"
}
  1. Manda el vídeo a indexar a Video Indexer.
1
2
3
4
5
6
7
8
curl -v -X POST "https://api.videoindexer.ai/westeurope/Accounts/8888888888/Videos? \
name=VideoindexerTaniwa&privacy=Private&priority=Low&language=ar-AE& \
videoUrl=https://links.imagerelay.com/cdn/2159/ql/77777777/video1.mp4& \
indexingPreset=Default& \
streamingPreset=Default&sendSuccessEmail=false&useManagedIdentityToDownloadVideo=false& \
accessToken=********& \
callbackUrl=http://metadatos-logic-apps.azurewebsites.net/api/relay" 
-H "Cache-Control: no-cache" -H "Ocp-Apim-Subscription-Key: ********" -d {}

El resultado de la indexación por parte de videoindexer se recibirá en el callbackUrl que se ha pasado en el POST anterior.

http://metadatos-logic-apps.azurewebsites.net/api/relay

Logic Apps WorkFlow: Actualizar Metadatos

El workflow de actualizar metadatos recibe el resultado de la indexación de videoindexer y actualiza los metadatos (tags) del Asset en Image Relay.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
curl --request POST \
     --url https://api.imagerelay.com/api/v2/files/23278771/tags \
     --header 'Authorization: Bearer **********' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "tags": {
    "add_ids": [
      "12922",
      "27464"
    ],
    "remove_ids": [
      "48612",
      "47648"
    ]
  }
}
'

Conclusiones

La integración de Video Indexer con Image Relay ha sido sencilla y rápida de implementar. Ahora los vídeos que se suben a Image Relay se analizan automáticamente y se pueden buscar por las personas, objetos, escenas, etc que aparecen en ellos.

SO WHAT DO YOU THINK ?

Contact us and tell us your needs
+34 644 237 135

Contact hola@taniwa.es