Eseguire il recupero video usando la vettorializzazione (versione 4.0 preview)
Le API di recupero video di Intelligenza artificiale di Azure fanno parte di Visione artificiale di Azure e consentono agli sviluppatori di creare un indice, aggiungere documenti (video e immagini) e cercare con il linguaggio naturale. Gli sviluppatori possono definire schemi di metadati per ogni indice e inserire metadati al servizio per facilitare il recupero. Gli sviluppatori possono anche specificare quali funzionalità estrarre dall'indice (visione, riconoscimento vocale) e filtrare la ricerca in base alle funzionalità.
Prerequisiti
- Sottoscrizione di Azure: creare un account gratuito.
- Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Visione usando il portale. Per questa anteprima, è necessario creare la risorsa in una delle aree seguenti: Australia orientale, Svizzera settentrionale, Svezia centrale o Stati Uniti orientali.
- Una risorsa Archiviazione di Azure - Crearne una
Requisiti di input
Formati supportati
File format | Descrizione |
---|---|
asf |
ASF (Advanced/Active Streaming Format) |
avi |
AVI (Audio Video Interleaved) |
flv |
DASH (Flash Video) |
matroskamm , webm |
Matroska/ WebM |
mov ,mp4 ,m4a ,3gp ,,3g2 mj2 |
QuickTime/MOV |
Codec video supportati
Codec | Formato |
---|---|
h264 |
H.264 / AVC / MPEG-4 AVC / MPEG-4 parte 10 |
h265 |
H.265/HEVC |
libvpx-vp9 |
libvpx VP9 (codec vp9) |
mpeg4 |
MPEG-4 parte 2 |
Codec audio supportati
Codec | Formato |
---|---|
aac |
AAC (codifica audio avanzata) |
mp3 |
MP3 (mpeg audio layer 3) |
pcm |
PCM (non compresso) |
vorbis |
Vorbis |
wmav2 |
Windows Media Audio 2 |
Chiamare le API di recupero video
Per usare le API recupero video in un modello tipico, seguire questa procedura:
- Creare un indice usando PUT - Creare un indice.
- Aggiungere documenti video all'indice usando PUT - CreateIngestion.
- Attendere il completamento dell'inserimento, controllando con GET - ListIngestions.
- Cercare una parola chiave o una frase usando POST - SearchByText.
Usare le API di recupero video per la ricerca basata su metadati
Le API recupero video consentono a un utente di aggiungere metadati ai file video. I metadati sono informazioni aggiuntive associate ai file video, ad esempio "ID Fotocamera", "Timestamp" o "Posizione" che possono essere usate per organizzare, filtrare e cercare video specifici. In questo esempio viene illustrato come creare un indice, aggiungere file video con metadati associati ed eseguire ricerche usando funzionalità diverse.
Passaggio 1: Creare un indice
Per iniziare, è necessario creare un indice per archiviare e organizzare i file video e i relativi metadati. L'esempio seguente illustra come creare un indice denominato "my-video-index" usando l'API Crea indice .
curl.exe -v -X PUT "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'metadataSchema': {
'fields': [
{
'name': 'cameraId',
'searchable': false,
'filterable': true,
'type': 'string'
},
{
'name': 'timestamp',
'searchable': false,
'filterable': true,
'type': 'datetime'
}
]
},
'features': [
{
'name': 'vision',
'domain': 'surveillance'
},
{
'name': 'speech'
}
]
}"
Risposta:
HTTP/1.1 201 Created
Content-Length: 530
Content-Type: application/json; charset=utf-8
request-id: cb036529-d1cf-4b44-a1ef-0a4e9fc62885
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 202
Date: Thu, 06 Jul 2023 18:05:05 GMT
Connection: close
{
"name": "my-video-index",
"metadataSchema": {
"language": "en",
"fields": [
{
"name": "cameraid",
"searchable": false,
"filterable": true,
"type": "string"
},
{
"name": "timestamp",
"searchable": false,
"filterable": true,
"type": "datetime"
}
]
},
"userData": {},
"features": [
{
"name": "vision",
"modelVersion": "2023-05-31",
"domain": "surveillance"
},
{
"name": "speech",
"modelVersion": "2023-06-30",
"domain": "generic"
}
],
"eTag": "\"7966244a79384cca9880d67a4daa9eb1\"",
"createdDateTime": "2023-07-06T18:05:06.7582534Z",
"lastModifiedDateTime": "2023-07-06T18:05:06.7582534Z"
}
Passaggio 2: Aggiungere file video all'indice
Successivamente, è possibile aggiungere file video all'indice con i metadati associati. L'esempio seguente illustra come aggiungere due file video all'indice usando GLI URL di firma di accesso condiviso con l'API Di inserimento crea.
curl.exe -v -X PUT "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index/ingestions/my-ingestion?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'videos': [
{
'mode': 'add',
'documentId': '02a504c9cd28296a8b74394ed7488045',
'documentUrl': 'https://example.blob.core.windows.net/videos/02a504c9cd28296a8b74394ed7488045.mp4?sas_token_here',
'metadata': {
'cameraId': 'camera1',
'timestamp': '2023-06-30 17:40:33'
}
},
{
'mode': 'add',
'documentId': '043ad56daad86cdaa6e493aa11ebdab3',
'documentUrl': '[https://example.blob.core.windows.net/videos/043ad56daad86cdaa6e493aa11ebdab3.mp4?sas_token_here',
'metadata': {
'cameraId': 'camera2'
}
}
]
}"
Risposta:
HTTP/1.1 202 Accepted
Content-Length: 152
Content-Type: application/json; charset=utf-8
request-id: ee5e48df-13f8-4a87-a337-026947144321
operation-location: http://api.example.com.trafficmanager.net/retrieval/indexes/my-test-index/ingestions/my-ingestion
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 709
Date: Thu, 06 Jul 2023 18:15:34 GMT
Connection: close
{
"name": "my-ingestion",
"state": "Running",
"createdDateTime": "2023-07-06T18:15:33.8105687Z",
"lastModifiedDateTime": "2023-07-06T18:15:34.3418564Z"
}
Passaggio 3: Attendere il completamento dell'inserimento
Dopo aver aggiunto file video all'indice, viene avviato il processo di inserimento. L'operazione potrebbe richiedere del tempo a seconda delle dimensioni e del numero di file. Per assicurarsi che l'inserimento sia completato prima di eseguire ricerche, è possibile usare l'API Recupera inserimento per controllare lo stato. Attendere che la chiamata venga restituita "state" = "Completed"
prima di procedere al passaggio successivo.
curl.exe -v -X GET "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index/ingestions?api-version=2023-05-01-preview&$top=20" -H "ocp-apim-subscription-key: <YOUR_SUBSCRIPTION_KEY>"
Risposta:
HTTP/1.1 200 OK
Content-Length: 164
Content-Type: application/json; charset=utf-8
request-id: 4907feaf-88f1-4009-a1a5-ad366f04ee31
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 12
Date: Thu, 06 Jul 2023 18:17:47 GMT
Connection: close
{
"value": [
{
"name": "my-ingestion",
"state": "Completed",
"createdDateTime": "2023-07-06T18:15:33.8105687Z",
"lastModifiedDateTime": "2023-07-06T18:15:34.3418564Z"
}
]
}
Passaggio 4: Eseguire ricerche con i metadati
Dopo aver aggiunto i file video all'indice, è possibile cercare video specifici usando i metadati. Questo esempio illustra due tipi di ricerche: una che usa la funzionalità "visione" e un'altra usando la funzionalità "riconoscimento vocale".
Cercare con la funzionalità "visione"
Per eseguire una ricerca usando la funzionalità "visione", usare l'API Cerca per testo con il vision
filtro, specificando il testo della query e gli altri filtri desiderati.
curl.exe -v -X POST "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index:queryByText?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'queryText': 'a man with black hoodie',
'filters': {
'stringFilters': [
{
'fieldName': 'cameraId',
'values': [
'camera1'
]
}
],
'featureFilters': ['vision']
}
}"
Risposta:
HTTP/1.1 200 OK
Content-Length: 3289
Content-Type: application/json; charset=utf-8
request-id: 4c2477df-d89d-4a98-b433-611083324a3f
api-supported-versions: 2023-05-01-preview
x-envoy-upstream-service-time: 233
Date: Thu, 06 Jul 2023 18:42:08 GMT
Connection: close
{
"value": [
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:01:58",
"end": "00:02:09",
"best": "00:02:03",
"relevance": 0.23974405229091644
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:02:27",
"end": "00:02:29",
"best": "00:02:27",
"relevance": 0.23762696981430054
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:00:26",
"end": "00:00:27",
"best": "00:00:26",
"relevance": 0.23250913619995117
},
]
}
Cercare con la funzionalità "riconoscimento vocale"
Per eseguire una ricerca usando la funzionalità di riconoscimento vocale, usare l'API Cerca per testo con il speech
filtro, specificando il testo della query ed eventuali altri filtri desiderati.
curl.exe -v -X POST "https://<YOUR_ENDPOINT_URL>com/computervision/retrieval/indexes/my-video-index:queryByText?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'queryText': 'leave the area',
'dedup': false,
'filters': {
'stringFilters': [
{
'fieldName': 'cameraId',
'values': [
'camera1'
]
}
],
'featureFilters': ['speech']
}
}"
Risposta:
HTTP/1.1 200 OK
Content-Length: 49001
Content-Type: application/json; charset=utf-8
request-id: b54577bb-1f46-44d8-9a91-c9326df3ac23
api-supported-versions: 2023-05-01-preview
x-envoy-upstream-service-time: 148
Date: Thu, 06 Jul 2023 18:43:07 GMT
Connection: close
{
"value": [
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:07.8400000",
"end": "00:07:08.4400000",
"best": "00:07:07.8400000",
"relevance": 0.8597901463508606
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:02.0400000",
"end": "00:07:03.0400000",
"best": "00:07:02.0400000",
"relevance": 0.8506758213043213
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:10.4400000",
"end": "00:07:11.5200000",
"best": "00:07:10.4400000",
"relevance": 0.8474636673927307
}
]
}
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per