Activez l'analyse des caméras d'IA accélérée par GPU sur OCI
L'architecture accepte les événements de caméras intelligentes, les flux traditionnels de caméras IP RTSP, les événements mobiles ou périphériques, les images téléchargées et les courts clips vidéo. Il sépare la gestion des flux gourmands en CPU de l'inférence de GPU, utilise Oracle Cloud Infrastructure Queue comme tampon de travail durable et applique des décisions basées sur des stratégies avant de fournir des alertes aux systèmes opérationnels.
La solution va au-delà de la simple détection d'objets. Il évalue si un événement visuel est attendu, suspect, urgent ou opérationnel en utilisant un contexte tel que le rôle, la zone, l'heure, la confiance, la stratégie du locataire, la propriété de l'appareil et les modèles d'événement historiques. Les cadres sélectionnés, les métadonnées de détection, les résultats de règle et le statut de transmission en aval sont conservés pour l'audit et la réexécution.
- Les charges de travail d'appareil photo, d'image ou d'élément sont volumineuses
- Le coût et l'utilisation des GPU nécessitent un contrôle délibéré
- La détection brute seule est insuffisante
- Les clients ont besoin de traçabilité, de réexécution, de contrôles colocatifs ou d'une intégration aux systèmes opérationnels existants
Avant de commencer
L'architecture de référence est modulaire. Vous pouvez adopter n'importe lequel des blocs d'ingestion, d'inférence, de décision ou d'opération requis.
- Définissez les sources vidéo et la topologie, y compris la caméra intelligente AI, la caméra IP traditionnelle, le périphérique mobile ou périphérique, les médias téléchargés ou une combinaison. Pour les caméras IP traditionnelles, planifiez un VPN, un tunnel TLS ou un connecteur de caméra sortante vers la couche de traitement côté OCI.
- Confirmez les cas d'utilisation, les classes d'objet, la latence cible, la fraîcheur des alertes attendue, les exigences de conservation, les besoins de révision humaine et les cibles d'intégration en aval.
- Validez la capacité de la région OCI, la disponibilité des formes de GPU, les quotas, les limites de service et la bande passante réseau avant de vous engager dans les objectifs de niveau de service de production.
- Sélectionnez et évaluez les modèles d'inférence pour le cas d'utilisation client. L'architecture publiée utilise la détection de type RT-DETR et la classification contextuelle de type CLIP comme exemples. L'évaluation et la sélection des modèles restent spécifiques au client.
- Etablissez des stratégies d'identité de locataire, de site, de caméra, d'utilisateur et d'appareil. Planification de l'enregistrement des périphériques, de l'émission et de la rotation des certificats, du protocole TLS mutuel (mTLS), de la gestion des clés et de la validation des microprogrammes signés lorsque le matériel le prend en charge.
- Commencez avec une hypothèse de dimensionnement de base d'environ 50 flux de caméra, 720p flux, échantillonnés à 1-5 images par seconde (FPS) pour l'inférence ; redimensionnement en fonction du nombre de caméras, de la résolution, du FPS, du modèle et des exigences de latence.
Architecture
Le tableau ci-dessous répertorie les couches d'architecture clés, les services OCI utilisés pour les implémenter et l'objectif de chaque couche.
| Couche d'architecture | Services OCI | Objectif |
|---|---|---|
| Entrée et capture | OCI Load Balancer, OCI API Gateway, OCI Object Storage | Acceptez les flux de caméra, les clips et les lots d'images récupérables. |
| Traitement de flux | Instances de conteneur OCI | Gérer les sessions RTSP, décoder les sessions H.264/H.265, les exemples de trames, le travail en mémoire tampon et les sessions de reconnexion. |
| Découplage | Oracle Cloud Infrastructure Queue | Absorbe le trafic et permet aux consommateurs de GPU de fonctionner à un rythme contrôlé. |
| Inférence GPU | Pools d'instances de GPU OCI Compute | Exécutez la détection des objets, la classification, le traitement par lots et la corrélation temporelle avec les modèles sélectionnés par le client. |
| Décision et opérations | OCI Functions, OCI Notifications, OCI Connector Hub, OCI Object Storage, OCI Logging, OCI Monitoring, OCI Vault, OCI Identity and Access Management | Appliquer la stratégie, notifier les systèmes en aval, conserver les preuves, gérer les secrets et surveiller la plate-forme. |
Le diagramme suivant illustre cette architecture de référence (tous les services ne sont pas représentés).
container-stream-processing-architecture-oracle.zip#GUID-A16027C3-0928-49C9-BA9D-BD5C6052E1A0
Cette architecture comprend les composants suivants :
- Passerelle d'API OCI
Oracle Cloud Infrastructure API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau, et que vous pouvez exposer au réseau Internet public si nécessaire. Les adresses prennent en charge la validation d'API, la transformation des demandes et des réponses, la spécification CORS, l'authentification et l'autorisation, ainsi que l'autorisation des demandes.
- Calcul OCI
Avec Oracle Cloud Infrastructure Compute, vous pouvez provisionner et gérer des hôtes de calcul dans le cloud. Vous pouvez lancer des instances de calcul avec des formes qui répondent à vos besoins en ressources pour l'UC, la mémoire, la bande passante réseau et le stockage. Après avoir créé une instance de calcul, vous pouvez y accéder en toute sécurité, la redémarrer, attacher et détacher des volumes, et y mettre fin lorsque vous n'en avez plus besoin.
- OCI Connector Hub
Oracle Cloud Infrastructure Connector Hub est une plate-forme de bus de message qui orchestre le déplacement de données entre les services OCI. Vous pouvez utiliser des connecteurs pour déplacer des données d'un service source vers un service cible. Les connecteurs vous permettent également d'indiquer éventuellement une tâche (telle qu'une fonction) à exécuter sur les données avant qu'elles ne soient fournies au service cible.
Vous pouvez utiliser OCI Connector Hub pour créer rapidement une structure d'agrégation de journalisation pour les systèmes SIEM (Security Information and Event Management).
- Fonctions OCI
Oracle Cloud Infrastructure Functions est une plate-forme FaaS (Fonctions en tant que service) entièrement gérée, colocative, hautement évolutive et à la demande. Il est optimisé par le moteur open source du projet Fn. OCI Functions vous permet de déployer votre code, l'appeler directement ou le déclencher en réponse à des événements. OCI Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.
- OCI Identity and Access Management
Oracle Cloud Infrastructure Identity and Access Management (IAM) fournit un contrôle d'accès utilisateur pour OCI et Oracle Cloud Applications. L'API IAM et l'interface utilisateur vous permettent de gérer les domaines d'identité et les ressources qu'ils contiennent. Chaque domaine d'identité OCI IAM représente une solution autonome de gestion des identités et des accès ou une population d'utilisateurs différente.
- Pool d'instances
Un pool d'instances est un groupe d'instances d'une région qui sont créées à partir de la même configuration d'instance et gérées en tant que groupe.
- OCI Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications en conteneur vers le cloud. Vous indiquez les ressources de calcul dont vos applications ont besoin, et OKE les provisionne sur OCI dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, la mise à l'échelle et la gestion des applications en conteneur dans les clusters d'hôtes.
- Equilibreur de charge
Oracle Cloud Infrastructure Load Balancer fournit une distribution automatisée du trafic d'un point d'entrée unique à plusieurs serveurs.
- Journalisation OCIOracle Cloud Infrastructure Logging est un service hautement évolutif et entièrement géré qui permet d'accéder aux types de journaux suivants à partir de vos ressources dans le cloud :
- Journaux d'audit : journaux liés aux événements produits par OCI Audit.
- Journaux de service : journaux publiés par des services individuels tels que OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancer, OCI Object Storage et les journaux de flux VCN.
- Journaux personnalisés : journaux contenant des informations de diagnostic issues d'applications personnalisées, d'autres fournisseurs cloud ou d'un environnement sur Site.
- Surveillance OCI
Oracle Cloud Infrastructure Monitoring surveille activement et passivement vos ressources cloud et utilise des alarmes pour vous avertir lorsque les mesures répondent à des déclencheurs spécifiés.
- Notifications OCI
OCI Notifications diffuse des messages vers des composants distribués à l'aide d'un modèle de publication-abonnement à faible latence, qui fournit des messages sécurisés, durables et hautement fiables pour les applications hébergées sur OCI.
- OCI Object Storage
OCI Object Storage fournit un accès à des quantités importantes de informations structurées et non, de tout type de contenu, y compris les sauvegardes de base de donnée, les données analytiques et le contenu enrichi tel que des images et des vidéos. Vous pouvez stocker des données en toute sécurité directement à partir des applications ou de la plate-forme cloud. Vous pouvez redimensionner le stockage sans dégradation des performances ni de la fiabilité de services.
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 le stockage "à froid" que vous conservez pour de longues périodes et auquel il est rarement accessible.
- File d'attente OCI
Oracle Cloud Infrastructure Queue fournit un système évolutif pour traiter les messages tout en gérant des tâches de gestion complexes telles que le traitement, le suivi et l'isolement des clients garantis au moins une fois. Ce service centralisé gère également l'état de tri et de traitement des messages, ce qui permet aux processus client sans état de décharger le suivi des curseurs.
- Région OCI
Une région OCI est une zone géographique précise qui contient des centres de données, hébergeant des domaines de disponibilité. Les régions sont indépendantes les une des autres et peuvent les séparer d'un pays ou d'un continent à l'autre, et les grandes distances peuvent les séparer.
- OCI Registry
Oracle Cloud Infrastructure Registry est un service géré par Oracle qui vous permet de simplifier votre workflow de développement à production. Registry facilite le stockage, le partage et la gestion d'artefacts de développement tels que les images Docker.
- Location
Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lorsque vous souscrivez à OCI. Vous pouvez créer, organiser et administrer vos ressources sur OCI dans votre location. Une location est synonyme d'entreprise ou d'organisation. Habituellement, une entreprise aura une seule location et reflétera sa structure organisationnelle au sein de cette location. Une location unique est généralement associée à un seul abonnement, et un seul abonnement n'a généralement qu'une seule location.
- OCI Vault
Oracle Cloud Infrastructure Vault vous permet de créer et de gérer de manière centralisée les clés de cryptage qui protègent vos données et les informations d'identification de clé secrète que vous utilisez pour sécuriser l'accès à vos ressources dans le cloud. La gestion des clés par défaut est celle des clés gérées par Oracle. Vous pouvez également utiliser des clés gérées par le client qui utilisent OCI Vault. OCI Vault offre un riche ensemble d'API REST permettant de gérer les coffres et les clés.
- Réseau et sous-réseau cloud virtuel OCI
Un réseau cloud virtuel est un réseau personnalisable défini par logiciel que vous configurez dans une région OCI. Comme les Réseaux de centre de données traditionnels, les Réseaux cloud virtuels vous donnent un contrôle sur l'environnement réseau. Un VCN peut comporter plusieurs blocs de routage interdomaine sans classe (CIDR) qui ne se chevauchent pas et que vous pouvez modifier une fois le VCN créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Carte d'interface réseau virtuelle
Les serveurs des data centers OCI disposent de cartes d'interface réseau (NIC) physiques. Lorsque vous créez une instance sur l'un de ces serveurs, elle communique à l'aide de cartes d'interface réseau virtuelles de service Networking (VNIC) associées aux carte d'interface réseau physiques. Une carte d'interface réseau virtuelle (VNIC) permet à une instance de se connecter à un VCN et détermine la façon dont l'instance se connecte aux adresses à l'intérieur et à l'extérieur du VCN. Chaque carte d'interface réseau virtuelle réside dans un sous-réseau d'un réseau cloud virtuel.
Recommandations
Déployez la solution dans une conception de réseau cloud virtuel (VCN) propre au client qui sépare l'entrée publique des services de traitement privés. L'architecture de référence recommande des sous-réseaux privés, des groupes de sécurité réseau, des passerelles de service, des adresses privées, OCI Identity and Access Management avec moins de privilèges, des compartiments, des groupes dynamiques et des clés secrètes gérées par OCI Vault lorsque les exigences de sécurité client appellent des chemins de communication de service isolés.
-
VCN : placez les pools d'instances de GPU OCI Compute, les processeurs de flux OCI Container Instances, les consommateurs Oracle Cloud Infrastructure Queue, les services de règles et les services opérationnels dans les sous-réseaux privés. Affichez uniquement l'entrée requise via OCI Load Balancer ou OCI API Gateway. Utilisez OCI Object Storage et d'autres accès au service OCI via des passerelles de service ou des adresses privées, le cas échéant.
-
Sécurité : utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de failles de sécurité et pour surveiller les opérateurs et les utilisateurs à la recherche d'activités à risque. Lorsqu'une mauvaise configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des actions correctives et vous 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 de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone d'accès ne doivent pas être accessibles à partir du réseau Internet public et elles doivent être cryptées à l'aide de clés gérées par un client.
-
Groupes de sécurité réseau : utilisez des groupes de sécurité réseau pour définir un ensemble de règles entrantes et sortantes qui s'appliquent à des cartes d'interface réseau virtuelles spécifiques. Utilisez des groupes de sécurité réseau au lieu de listes de sécurité car ils séparent l'architecture de sous-réseau VCN des exigences de sécurité de votre application.
-
OCI Identity and Access Management et clés secrètes : appliquez des stratégies OCI Identity and Access Management de moindre privilège, des limites de compartiment et des groupes dynamiques. Stockez les informations d'identification et les certificats dans OCI Vault. Chiffrez les données traitées des médias stockés et des événements structurés, et utilisez des URL d'accès OCI Object Storage de courte durée pour la lecture au lieu d'exposer les chemins de médias bruts.
Remarques
-
Performances : faites évoluer le traitement du flux d'UC séparément de l'inférence de GPU. Oracle Cloud Infrastructure Queue dissocie les rafales de la consommation de GPU, tandis que la profondeur de file d'attente, le décalage des consommateurs, la latence d'inférence, le débit et l'utilisation de GPU fournissent ensemble des signaux de mise à l'échelle plus stables qu'une seule mesure. Une cible pratique de départ est l'utilisation moyenne d'environ 70 % du GPU pour maintenir la marge de manœuvre pour la variabilité.
-
Sécurité : utilisez des sous-réseaux privés, des groupes de sécurité réseau, des passerelles de service ou des adresses privées, OCI Identity and Access Management, OCI Vault, le cryptage, les certificats de périphérique, le protocole TLS mutuel et les contrôles d'accès tenant compte des locataires. Traitez les classifications contextuelles comme des signaux opérationnels plutôt que comme des assertions d'identité. Conserver la révision humaine pour les workflows sensibles, ainsi que la version du modèle d'audit, la version de règle, le score de confiance, l'horodatage et le résultat de l'opérateur.
-
Disponibilité : conservez les processeurs de flux et les processeurs de modèle sans état lorsque cela est possible, en conservant les références de cadre, l'historique temporel et les données de réexécution dans les services gérés par OCI. Surveillez les signaux d'activité de la caméra, la profondeur de la file d'attente, le décalage des consommateurs, la capacité des GPU, les téléchargements OCI Object Storage et la distribution des notifications. Créez des runbooks pour les événements hors ligne de caméra, les files d'attente à traiter, l'indisponibilité de GPU, les alertes en double, les échecs de stockage et les échecs de notification. Inclure les ID d'événement idempotent, les nouvelles tentatives et la gestion des lettres mortes.
-
Coût : préférez les téléchargements déclenchés par des événements aux téléchargements cloud continus haute résolution. Les caméras intelligentes peuvent conserver des séquences continues localement et télécharger des métadonnées d'événement, des miniatures ou des clips courts ; le traitement OCI peut échantillonner des cadres et conserver des clips haute résolution uniquement autour d'événements confirmés. Réduisez la bande passante et le stockage avec l'échantillonnage de trames, la compression H.265, les trames configurables par seconde (FPS), les seuils de mouvement ou de personne, les filtres de zone, les clips courts et les stratégies de cycle de vie OCI Object Storage. Les niveaux de rétention illustrés sont de 7 jours pour les clips standard, de 30 jours pour les événements de sécurité hautement prioritaires et de 90 jours pour les workflows réglementés ou d'enquête.
Déployer l'architecture
Commencez par un petit ensemble représentatif de caméras et réglez les seuils de modèle, d'échantillonnage, de file d'attente, de stratégie et d'alerte par rapport aux caractéristiques de charge de travail mesurées.
Pour déployer l'architecture :
- Etablir des bases : créez des réseaux cloud virtuels et des sous-réseaux, des compartiments, des groupes de sécurité réseau, des stratégies et des groupes dynamiques OCI Identity and Access Management, des clés secrètes OCI Vault, des buckets OCI Object Storage, OCI Logging, OCI Monitoring et des stratégies de cycle de vie.
- Configurer l'inclusion : déployez l'équilibreur de charge OCI ou OCI API Gateway, ainsi que le pont de caméra sécurisé ou le service de fournisseur. Enregistrez les flux de caméra, les sources de média téléchargées ou les émetteurs mobiles ou périphériques.
- Déployer le traitement de flux : déployez des processeurs de flux en conteneur pour mettre fin aux sessions RTSP, décoder des médias, des exemples de trames, mettre en mémoire tampon localement en fonction des besoins et publier des éléments de travail d'inférence vers Oracle Cloud Infrastructure Queue.
- Déployer l'inférence de GPU : déployez des processeurs GPU sans conservation de statut dans les pools d'instances Compute. Configurer des modèles de détection et de classification, des batches, des seuils de confiance, des métadonnées de modèle et des consommateurs de file d'attente.
- Configurer les décisions et les intégrations : externaliser les règles au format JSON, YAML ou un service de stratégie. Appliquez les stratégies de rôle, de zone, d'heure, de confiance, d'historique des événements et de locataire avant d'envoyer des événements validés à OCI Notifications, à des webhooks, à des API, à OCI Connector Hub ou à des plates-formes de gestion de service.
- Opérer et régler : créez des alarmes pour la profondeur de file d'attente, la latence d'inférence, l'utilisation des GPU, l'état de la caméra, les échecs de téléchargement et le statut de distribution. Utilisez ces signaux pour redimensionner les couches de CPU et de GPU indépendamment ; testez la gestion des échecs, la réexécution, la conservation et la suppression des alertes.
En savoir plus
- Analyses des caméras d'IA accélérées par GPU sur OCI (Blog)
- Présentation d'Oracle Cloud Infrastructure Queue
- Présentation d'OCI Streaming
- Formes OCI Compute
- Redimensionnement automatique d'OCI Compute pour les pools d'instances
- Oracle Cloud Infrastructure Vision (documentation produit)
- Analyse vidéo de flux OCI Vision
- Présentation d'OCI Connector Hub
- Documentation Oracle Cloud Infrastructure
- Cadre des meilleures pratiques pour Oracle Cloud Infrastructure
- Estimateur de coût Oracle Cloud
