Dela via


Översikt över Azure AI Video Indexer Bring Your Own (BYO) AI Model

Den här artikeln är en översikt över Azure AI Video Indexer Bring Your Own AI-modellen.

Introduktion

Du kan kombinera insikter från andra källor, inklusive modeller från tredje part, klassificering och identifiering, för att skapa en detaljerad analys av dina mediedata. Du kan använda en eller flera av de modeller som erbjuds av Microsoft, en extern anpassad modell eller en anpassad person-, varumärkes-, tal- eller språkmodell som erbjuds av Azure Video Indexer.

Funktionen är också tillgänglig för VI som aktiveras av Arc.

Anmärkning

DISCLAIMER: Microsofts uppförandekod för Azure OpenAI-tjänsten gäller för din användning av funktionen Bring Your Own Model, som innehåller Microsofts rätt att avbryta din åtkomst och användning av den här funktionen för inkompatibilitet.

Prissättning

Med Video Indexer BYO-modellen kan du lägga till anpassade insikter i videoinsiktsobjekt utan att medföra några extra kostnader utöver den angivna kostnaden för indexeringsprocessen. Kostnader relaterade till den externa miljön och modellen bör dock inte betraktas som en del av Video Indexer-faktureringspriset. Vi rekommenderar starkt att du granskar avsnittet med metodtips för att optimera den externa logiken och minska kostnaderna.

Allmänt arbetsflöde

  1. Videon laddas upp och indexeras med Azure AI Video Indexer.
  2. När indexeringsprocessen är klar skapas en händelse.
  3. Din anpassade kod lyssnar på händelsen och startar videons efterbearbetningsprocess.
    1. Hämta insikter som extraherats av Video Indexer.
    2. Hämta nyckelbild för en videodel.
    3. Skicka nyckelramen till den anpassade AI-modellen.
    4. Lappa de anpassade insikterna tillbaka till Video Indexer.
      Diagram över den allmänna bring your own workflow-processen.

Förutsättningar

Innan du kan börja använda BYO-modellfunktionen med Azure AI Video Indexer måste du:

  1. Träna eller ta med en extern AI-modell som tar emot videomaterial och ger en insikt.
  2. Skapa anpassad kod som:
    1. Lyssnar efter händelser från Event Hubs.
    2. Extraherar video id från händelserna.
    3. Hämtar relevanta tillgångar genom att anropa VI-API:er. I det här scenariot begär du Hämta videoindex och Hämta bildrutors SAS-URL:er.
    4. Skickar tillgångarna till den externa AI-modellen.
    5. Skapar ett JSON-objekt baserat på de insikter som hämtats från den anpassade AI-modellen.
    6. Begär patch-uppdatering av videoindex.

Schemat

Värdena för att fylla i anpassade data är följande:

Namn Beskrivning Krävs
Namn Namn på extern AI-modell sann
visningsnamn Namn på insiktsgrupp som ska visas i Video Indexer sann
visningstyp Definierar typen av gränssnittsrepresentation för den här specifika insiktsgruppen. Standardvärde: Kapslar
Möjliga typer:
Kapsel – endast text på en nivå
CapsuleAndTags -Two nivåer text bara mer kommer att läggas till i framtiden.
falskt
resultat Matris med objekt som representerar de insikter som identifierats av den externa AI-modellen sann
results.id Användardefinerat ID för resultatobjektet bör vara unikt inom resultatomfånget sann
resultat.typ Det här fältet representerar den typ av insikt som kategoriserades av den externa AI-modellen. Den används för att representera en allmän insiktskategori, vilket innebär att det kan finnas flera insikter av den här typen som identifieras i en viss ram. Exempel på insiktstyper är: basketball, crowd clapping, white shirt. sann
results.subType Det här fältet representerar den typ av insikt som kategoriserades av den externa AI-modellen. Den används för att representera en specifik insiktskategori, vilket innebär att det bara kan finnas en enda insikt av den här typen som identifieras i en specifik ram. Exempel på insiktstyper är: basketball #23, John clapping, Dana’s white shirt. falskt
results.metaData Mer data om insikten falskt
resultat.instans Array som representerar de tidsfönster då insikten upptäcktes. sann
resultat.instansers.förtroende Ange med konfidenspoängen som returneras från den externa modellen falskt
resultat.instans.start Starttid för instansen i videon. Format: hh.mm.ss.ff falskt
resultat.instans.slut Sluttid för sekvensen i videon. Format: hh.mm.ss.ff falskt
resultat.instans.justeraStart Används när det visas i användargränssnittet och ställs in med värdet från Start falskt
resultat.instans.justeringSlut Används när det visas i användargränssnittet och sätts med värdet från slutet falskt

Bildfrekvens

Azure AI Video Indexer stöder en FPS för videonivån Basic/Standard och fyra FPS för den avancerade nivån. Högre bildfrekvenser stöds inte. Du kan optimera indexeringen genom att:

  • Bearbeta endast specifika segment som är av intresse, till exempel bildrutor som innehåller ett identifierat ljud, ett objekt eller en person, eller
  • exempel på en lägre FPS, till exempel var 5:e sekund.

Val av ram

Du kan använda parametrarna hoppa över bildrutor och sidstorlek för tidsval. För att fastställa tidsintervallet kan formeln där värdet för att hoppa över bildrutor multipliceras med FPS och sidstorleksvärdet multipliceras med FPS användas.

URL:https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/FramesFilePaths[?urlsLifetimeSeconds][&pageSize][&skip][&accessToken]

Parametrar:

Namn Beskrivning Krävs
videoId ID för videon sann
urlsLifetimeSeconds Url:ernas livslängd, i sekunder sann
pageSize Maximalt antal bildrutor som ska returneras för varje anrop falskt
skippa Antal bildrutor att hoppa över falskt
accessToken Ska anges som parameter i URL-frågesträngen eller i auktoriseringshuvudet som ägartoken. Omfånget för åtkomsttoken ska vara Konto och behörigheten ska vara Läsare. sann

Svar:FrameFilePathsResult

Namn Beskrivning Krävs
resultat Lista över FrameUriData Falsk
Nästa sida Siddata (hoppa över, sidstorlek, ärKlar) Falsk

FrameFilePathData

Namn Beskrivning
Namn Namnet på ramfilen
frameIndex Index för ramen
StartTime Starttid för bildrutan i videon
EndTime Sluttid för bildrutan i videon
filePath Sas-URI för ramen i molnmiljön eller filsökvägen i gränsmiljöer

Exempeldata som skickas från anpassat program i schemaformat

"customInsights": [
    {
        "Name": "tattoo",  
        "displayName": "Tattoo’s model",
        "displayType": "CapsuleAndTag",
        "Results": [   
            {   
                "id": 1,   
                "Type": "Dragon",   
                "WikiDataId": "57F",   
                "SubType": "Leg tattoo",   
                "Metadata": "",   
                "Instances": [
                    {
                        "Confidence": 0.49,
                        "AdjustedStart": "0:00:32.72", 
                        "AdjustedEnd": "0:00:42.72",
                        "start": "0:00:32.72",
                        "end": "0:00:42.72",
                    }
                ]
            }
        ]
    }... 

Ta med dina egna modellprover