Creare un identificativo oggetto in tempo reale utilizzando OCI Vision e Oracle Autonomous Database

Scopri come creare un modello di visione identificativa degli oggetti in tempo reale utilizzando Oracle Cloud Infrastructure (OCI) Vision, Oracle Functions, API Gateway e Oracle Autonomous Database (ADB). Questa architettura di riferimento descrive come integrare un modello addestrato a OCI Vision con un'applicazione Web front-end per eseguire l'identificazione degli oggetti in tempo reale con una fotocamera del telefono cellulare.

Architettura

OCI Vision è un servizio di intelligenza artificiale (AI) per eseguire analisi delle immagini basate su deep learning su larga scala. Con i modelli predefiniti disponibili, gli sviluppatori possono creare rapidamente il riconoscimento delle immagini nelle proprie applicazioni senza competenze di apprendimento automatico.

I modelli Vision utilizzano l'intelligenza artificiale per consentire ai computer di ricavare informazioni dalle immagini. Questa architettura utilizza uno script terraform per creare un'applicazione Web che utilizza il modello OCI Vision per eseguire l'identificazione degli oggetti in tempo reale utilizzando una fotocamera del telefono cellulare.

Questa architettura include un'applicazione Web opzionale che gli sviluppatori possono utilizzare per eseguire l'identificazione degli oggetti in tempo reale. Al termine dell'impostazione dell'applicazione Web, gli utenti possono aprire l'applicazione Web sui propri telefoni cellulari, attivare la fotocamera ed eseguire un'istantanea. L'app analizza le immagini e restituisce i dettagli delle immagini.

Viene inviata una richiesta alla funzione serverless per chiamare il servizio OCI Vision e il database (utilizzando python OCI SDK). Il servizio Vision restituisce quindi una lista di etichette con un punteggio di affidabilità e il database consente di salvare i dettagli nella lista delle etichette disponibili. Il servizio di funzione è utile in scenari in cui non è necessario che un servizio sia sempre attivo o in cui vi sono limitazioni allentate del tempo di risposta (perché il servizio di funzione richiede un tempo di riscaldamento). Il vantaggio, tuttavia, è che ti viene addebitato solo il tempo di calcolo in cui la funzione è attiva, quindi può essere molto conveniente.

È possibile utilizzare l'architettura così com'è con l'applicazione Web per eseguire test rapidi e tutte le risorse disponibili nel repository. Inoltre, potresti voler incorporare il modello di visione nel tuo tenant, modificare lo script per rimuovere l'architettura proposta frontend (il load balancer e i Web server) e utilizzare il gateway API per chiamare la funzione quando è necessaria dai tuoi servizi backend.

Il servizio Vision può essere utilizzato per la classificazione delle immagini, il rilevamento degli oggetti e l'analisi dei documenti. Il servizio Vision contiene modelli pre-addestrati per scopi generali, ma può anche essere utilizzato con il servizio di etichettatura dei dati per creare modelli personalizzati per dati specifici di cui si dispone. Lo script terraforme consente di creare un'architettura generale per utilizzare il servizio di visione.

Il seguente diagramma illustra questa architettura di riferimento.



aivision-tempo reale-deployment.zip

L'architettura dispone dei seguenti componenti:

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).

  • Domini di disponibilità

    I domini di disponibilità sono data center standalone indipendenti all'interno di un'area geografica. Le risorse fisiche in ciascun dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, che garantiscono la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio, l'alimentazione o il raffreddamento oppure la rete interna del dominio di disponibilità. Pertanto, è improbabile che l'eventuale guasto di un dominio di disponibilità influisca sugli altri domini di disponibilità dell'area.

  • Domini di errore

    Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando distribuisci le risorse su più domini di errore, le applicazioni possono tollerare guasti fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile definita dal software che si imposta in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono il controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che puoi modificare dopo aver creato la VCN. Puoi segmentare una VCN in subnet che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è costituita da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • Gateway Internet

    Il gateway Internet consente il traffico tra le subnet pubbliche in una rete VCN e la rete Internet pubblica.

  • Gateway NAT (Network Address Translation)

    Un gateway NAT consente alle risorse private in una VCN di accedere agli host su Internet senza esporre tali risorse alle connessioni Internet in entrata.

  • Load balancer

    Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un unico punto di accesso a più server nel backend.

  • Tabella di instradamento

    Le tabelle di instradamento virtuale contengono regole per instradare il traffico dalle subnet alle destinazioni esterne a una VCN, in genere tramite gateway.

  • Gateway API:

    Oracle API Gateway consente di pubblicare le API con endpoint privati accessibili dall'interno della rete e che, se necessario, possono essere esposti alla rete Internet pubblica. Gli endpoint supportano la convalida dell'API, la trasformazione delle richieste e delle risposte, CORS, l'autenticazione e l'autorizzazione, nonché la limitazione delle richieste.

  • Autonomous Database

    Oracle Cloud Infrastructure Autonomous Database è un ambiente di database completamente gestito e preconfigurato che è possibile utilizzare per l'elaborazione delle transazioni e i carichi di lavoro di data warehousing. Non è necessario configurare o gestire alcun componente hardware né installare programmi software. Oracle Cloud Infrastructure gestisce la creazione del database, nonché il backup, l'applicazione di patch, l'aggiornamento e l'ottimizzazione del database.

  • Funzioni

    Oracle Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, su richiesta, Functions-as-a-Service (FaaS). È alimentato dal motore open source Fn Project. Le funzioni consentono di distribuire il codice, chiamarlo direttamente o attivarlo in risposta agli eventi. Oracle Functions utilizza container Docker ospitati in Oracle Cloud Infrastructure Registry.

  • Storage degli oggetti

    Lo storage degli oggetti fornisce accesso rapido a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati quali immagini e video. Puoi memorizzare e recuperare i dati in tutta sicurezza direttamente da Internet o dall'interno della piattaforma cloud. È possibile scalare lo storage senza problemi senza compromettere le prestazioni o l'affidabilità del servizio. Utilizzare lo storage standard per lo storage "hot" a cui è necessario accedere in modo rapido, immediato e frequente. Utilizzare l'archiviazione per lo storage "freddo" che viene conservato per lunghi periodi di tempo e raramente accessibile.

  • Vault

    Oracle Cloud Infrastructure Vault consente di gestire centralmente le chiavi di cifratura che proteggono i dati e le credenziali segrete utilizzate per proteggere l'accesso alle risorse nel cloud.

  • Visione

    Oracle Cloud Infrastructure Vision è un servizio AI per eseguire analisi delle immagini basate sul deep-learning su larga scala. Grazie ai modelli predefiniti disponibili e pronti all'uso, gli sviluppatori possono facilmente creare applicazioni di riconoscimento delle immagini e riconoscimento del testo senza competenze di apprendimento automatico.

  • Etichettatura dei dati OCI

    Il servizio Etichettatura dei dati OCI è un servizio nativo OCI che consente ai clienti di creare e visualizzare data set, visualizzare record di dati (testo, immagini) e applicare etichette allo scopo di creare modelli AI/ML. Il servizio fornisce anche interfacce utente interattive progettate per agevolare il processo di etichettatura. Gli sviluppatori possono caricare immagini raw, aggiungere etichette ed evidenziare aree di immagini. Aggiungendo queste etichette alle immagini, i set di dati risultanti possono essere utilizzati per addestrare modelli personalizzati di classificazione delle immagini e rilevamento degli oggetti.

    Una volta etichettati i record, il data set può essere esportato come JSON delimitato da righe da utilizzare nello sviluppo di modelli AI/ML. È possibile accedere a OCI Data Labeling direttamente da altri servizi, come OCI Vision e OCI Language, nell'ambito di un flusso di lavoro di formazione su un modello personalizzato. I data scientist che preferiscono creare e formare i propri modelli di deep learning o elaborazione del linguaggio naturale possono utilizzare il set di dati etichettato tramite OCI Data Science.

Distribuzione

Il codice richiesto per distribuire questa architettura di riferimento è disponibile in GitHub. Puoi scaricare il codice da GitHub sul tuo computer, personalizzare il codice e distribuire l'architettura utilizzando l'interfaccia CLI Terraform.

  1. Vai a GitHub.
  2. Duplicare o scaricare il repository nel computer locale.
  3. Seguire le istruzioni riportate nel documento README.

Conferme

Autore: Carlos Giraldo

Collaboratore: Badr Tharwat