nœuds d'application - AWS Panorama

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

nœuds d'application

Les nœuds sont des modèles, du code, des flux de caméras, des sorties et des paramètres. Un nœud possède une interface qui définit ses entrées et ses sorties. L'interface peut être définie dans un package de votre compte, dans un package fourni par AWS Panorama ou dans un type intégré.

Dans l'exemple suivant,code_nodeetmodel_nodeReportez-vous à l'exemple de code et de modèles inclus dans l'exemple d'application.camera_nodeutilise un package fourni par AWS Panorama pour créer un espace réservé pour un flux de caméra que vous spécifiez pendant le déploiement.

Exemple graph.json — Nœuds
"nodes": [ { "name": "code_node", "interface": "123456789012::SAMPLE_CODE.interface" }, { "name": "model_node", "interface": "123456789012::SQUEEZENET_PYTORCH_V1.interface" }, { "name": "camera_node", "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface", "overridable": true, "overrideMandatory": true, "decorator": { "title": "IP camera", "description": "Choose a camera stream." } } ]

Edges

Les bords mappent la sortie d'un nœud à l'entrée d'un autre. Dans l'exemple suivant, le premier Edge mappe la sortie d'un nœud de flux de caméra à l'entrée d'un nœud de code d'application. Les nomsvideo_inetvideo_outsont définis dans les interfaces des paquetages de nœuds.

Exemple graph.json — bords
"edges": [ { "producer": "camera_node.video_out", "consumer": "code_node.video_in" }, { "producer": "code_node.video_out", "consumer": "output_node.video_in" },

Dans votre code d'application, vous utilisez leinputsetoutputspour obtenir des images du flux d'entrée et envoyer des images au flux de sortie.

Exemple application.py — Entrée et sortie vidéo
def process_streams(self): """Processes one frame of video from one or more video streams.""" frame_start = time.time() self.frame_num += 1 logger.debug(self.frame_num) # Loop through attached video streams streams = self.inputs.video_in.get() for stream in streams: self.process_media(stream) ... self.outputs.video_out.put(streams)

Noeuds ab

Dans un manifeste d'application, un nœud abstrait fait référence à un package défini par AWS Panorama, que vous pouvez utiliser comme espace réservé dans votre manifeste d'application. AWS Panorama offre deux types de nœuds abstraits.

  • flux de caméra: choisissez le flux de caméra utilisé par l'application pendant le déploiement.

    Nom du packagepanorama::abstract_rtsp_media_source

    Nom d'interfacertsp_v1_interface

  • Sortie HDMI— Indique que l'application produit une vidéo.

    Nom du packagepanorama::hdmi_data_sink

    Nom d'interfacehdmi0

L'exemple suivant illustre un ensemble de packages, de nœuds et de tronçons de base pour une application qui traite les flux de caméra et qui produit des vidéos sur un écran. Le nœud de la caméra, qui utilise l'interface duabstract_rtsp_media_sourcedans AWS Panorama, peut accepter plusieurs flux de caméras en entrée. Le nœud de sortie, qui fait référencehdmi_data_sink, donne accès au code de l'application à une mémoire tampon vidéo sortie par le port HDMI de la solution matérielle-logicielle.

Exemple graph.json — Noeuds abstraits
{ "nodeGraph": { "envelopeVersion": "2021-01-01", "packages": [ { "name": "123456789012::SAMPLE_CODE", "version": "1.0" }, { "name": "123456789012::SQUEEZENET_PYTORCH_V1", "version": "1.0" }, { "name": "panorama::abstract_rtsp_media_source", "version": "1.0" }, { "name": "panorama::hdmi_data_sink", "version": "1.0" } ], "nodes": [ { "name": "camera_node", "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface", "overridable": true, "decorator": { "title": "IP camera", "description": "Choose a camera stream." } }, { "name": "output_node", "interface": "panorama::hdmi_data_sink.hdmi0" } ], "edges": [ { "producer": "camera_node.video_out", "consumer": "code_node.video_in" }, { "producer": "code_node.video_out", "consumer": "output_node.video_in" } ] } }