Node aplikasi - AWS Panorama

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Node aplikasi

Node adalah model, kode, aliran kamera, output, dan parameter. Sebuah node memiliki antarmuka, yang mendefinisikan input dan output. Antarmuka dapat didefinisikan dalam paket di akun Anda, paket yang disediakan oleh AWS Panorama, atau tipe bawaan.

Pada contoh berikut,code_nodedanmodel_nodelihat contoh kode dan model paket disertakan dengan aplikasi sampel.camera_nodemenggunakan paket yang disediakan oleh AWS Panorama untuk membuat placeholder untuk streaming kamera yang Anda tentukan selama penerapan.

contoh graph.json — Node
"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." } } ]

Tepi

Tepi memetakan output dari satu node ke input yang lain. Pada contoh berikut, tepi pertama memetakan output dari node aliran kamera ke input dari node kode aplikasi. Namavideo_indanvideo_outdidefinisikan dalam antarmuka paket node.

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

Pada kode aplikasi Anda, gunakaninputsdanoutputsatribut untuk mendapatkan gambar dari aliran input, dan mengirim gambar ke aliran output.

contoh application.py - masukan Video dan output
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)

Simpul Abstrak

Dalam manifes aplikasi, node abstrak mengacu pada paket yang didefinisikan oleh AWS Panorama, yang dapat Anda gunakan sebagai placeholder dalam manifes aplikasi Anda. AWS Panorama menyediakan dua tipe node abstrak.

  • Aliran kamera— Pilih aliran kamera yang digunakan aplikasi selama penyebaran.

    Nama paketpanorama::abstract_rtsp_media_source

    Nama antarmukartsp_v1_interface

  • Output HDMI— Menunjukkan bahwa aplikasi output video.

    Nama paketpanorama::hdmi_data_sink

    Nama antarmukahdmi0

Contoh berikut menunjukkan satu set dasar paket, node, dan tepi untuk aplikasi yang memproses aliran kamera dan output video ke layar. Node kamera, yang menggunakan antarmuka dariabstract_rtsp_media_sourcepaket di AWS Panorama, dapat menerima beberapa aliran kamera sebagai masukan. Output node, yang referensihdmi_data_sink, memberikan akses kode aplikasi ke buffer video yang output dari port HDMI alat.

contoh graph.json — Abstrak node
{ "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" } ] } }