Utiliser OCI Vision pour extraire des données d’images et de documents numérisés

La vision d'Oracle Cloud Infrastructure (OCI) est l'un des nombreux services d'intelligence artificielle disponibles sur Oracle Cloud Infrastructure.

OCI Vision vous permet d’appliquer l’apprentissage automatique et l’intelligence artificielle sans avoir besoin d’expertise en science des données. Il comporte des modèles pré-train qui vous permettent d'effectuer rapidement des OCR, une classification d'images et une détection d'objets, une classification de documents, une détection d'anomalie, etc.

Vous pouvez régler les modèles pré-équipés avec des données personnalisées à l'aide de l'apprentissage par transfert. Vous pouvez utiliser des jeux de données étiquetés existants pour le réglage ou, si vos données ne sont pas déjà étiquetées, vous pouvez utiliser le service Oracle Data Labeling pour simplifier la tâche.

Architecture

Cette architecture illustre la relation entre les différents composants d'un système typique dont OCI Vision est au cœur.

Dans ce système, un utilisateur final télécharge une photo ou une image d'un document commercial à l'aide d'une application Web. L'application stocke le fichier dans Object Storage. Oracle Events détecte le nouveau fichier et déclenche une fonction sans serveur qui génère un appel d'API REST au service Vision. Vision extrait le fichier d'Object Storage et analyse l'image. Les résultats sont stockés dans une base de données dans laquelle les applications peuvent les utiliser.

Le diagramme suivant illustre cette architecture de référence.

Description de l'image architecture-ai-vision.png
Description de l'illustration architecture-ai-vision.png

architecture-ai-vision-oracle.zip

L'architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes d'autres régions et de grandes distances peuvent les séparer (entre les pays voire les continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance de pannes. Les domaines de disponibilité ne partagent pas d'infrastructure telle que l'alimentation ou le refroidissement ou le réseau interne du domaine de disponibilité. Par conséquent, il est improbable qu'un problème affecte les autres domaines de disponibilité de la région.

  • Domaines de pannes

    Un domaine de panne est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes dotés d'une alimentation et d'un matériel indépendants. Lorsque vous distribuez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physique, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable et défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux cloud virtuels traditionnels, vous bénéficiez d'un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Compartiment

    Les compartiments sont des partitions logiques inter-région dans une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources dans un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions qu'elles peuvent effectuer.

  • Load Balancer

    Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un seul point d'entrée vers plusieurs serveurs dans le back-end.

    L'équilibreur de charge permet d'accéder à différentes applications.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés en entrée et en sortie du sous-réseau.

  • Stockage d'objet

    Object Storage fournit un accès rapide à de grandes quantités de données structurées et non structurées de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi, comme des images et des vidéos. Vous pouvez stocker des données en toute sécurité, puis les extraire directement à partir d'Internet ou de la plate-forme cloud. Vous pouvez faire évoluer le stockage de manière transparente sans subir de dégradation des performances ou de la fiabilité du service. Utilisez le stockage standard pour le stockage à chaud auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour un stockage "à froid" que vous conservez pendant de longues périodes et rarement ou rarement accès.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect permet de créer facilement une connexion privée dédiée entre votre centre de données et Oracle Cloud Infrastructure. FastConnect fournit des options de bande passante plus élevée et une expérience de réseau plus fiable par rapport aux connexions Internet.

  • Vision d’Oracle Infrastructure Cloud

    OCI Vision est utilisé pour extraire des informations des PDF et des images. Vision prend en charge OCR, la compréhension des documents, la classification des tables, la détection des objets et la classification des images

  • Application

    L'application dans cette architecture permet aux utilisateurs de télécharger des images et d'utiliser les métadonnées des images pour améliorer la recherche et le contexte.

Recommandations

Vos besoins peuvent être différents de ceux de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.

  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR compris dans l'espace d'adresse IP privée standard.

    Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) auquel vous souhaitez configurer des connexions privées.

    Une fois que vous avez créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.

    Utilisez des sous-réseaux régionaux.

  • Sécurité

    Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure de manière proactive. Cloud Guard utilise des recettes de détection que vous pouvez définir pour examiner vos ressources afin de détecter les failles de sécurité et pour surveiller les opérateurs et les utilisateurs pour les activités risquées. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité basées sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être chiffrées à l'aide de clés gérées par le client. Lors de la création et de la mise à jour de ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.

  • Cloud Guard

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à y être exécutées. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonction Liste gérée pour appliquer certaines configurations aux détecteurs.

  • Security Zones

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à y être exécutées. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonction Liste gérée pour appliquer certaines configurations aux détecteurs.

  • Bande passante d'équilibreur de charge

    Lors de la création de l'équilibreur de charge, vous pouvez soit sélectionner une forme prédéfinie qui fournit une bande passante fixe, soit indiquer une forme flexible personnalisée dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner automatiquement la bande passante en fonction des modèles de trafic. Avec l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.

  • Oracle Functions

    Cette architecture utilise une fonction pour appeler l'API REST OCI Vision avec une image spécifique, puis pour stocker les métadonnées renvoyées par Vision. La fonction peut être créée à l'aide du kit SDK Java ou Python.

  • Evénements

    Dans cette architecture, le service Oracle Cloud Infrastructure Events est configuré pour écouter les modifications apportées à la création d'Object Storage. Le service est appelé une fois l'objet téléchargé vers Object Storage et appelle la fonction pour traitement.

Remarques

Tenez compte des points suivants lors du déploiement de cette architecture.

  • Performances

    Pour des raisons de performances et d'évolutivité, nous utilisons Functions pour appeler l'API REST Vision. Une autre solution consiste à utiliser l'API Vision REST directement à partir de l'application. Dans ce cas, les appels d'API REST sont exécutés en arrière-plan.

  • Accès

    OCI Vision prend en charge l’accès via la console OCI, le client SDK Java et Python et l’interface de ligne de commande OCI. Lors du test, il est recommandé d'utiliser l'outil CLI ou la console.

  • Disponibilité

    Dans cet exemple, la base de données n'est pas hautement disponible. Pour les applications critiques, envisagez d'exécuter MySQL Database Service en mode HA avec 3 répliques.

  • Intégration

    Lorsque vous numérisez des documents commerciaux tels que des reçus et des formulaires d'application au format PDF, envisagez d'utiliser Oracle Integration Cloud pour extraire des fichiers PDF à partir de systèmes tels que des courriels, puis d'appeler Vision AI et de transférer le contenu vers le système de destination, comme des systèmes ERP ou CRM.