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_node
danmodel_node
lihat contoh kode dan model paket disertakan dengan aplikasi sampel.camera_node
menggunakan 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_in
danvideo_out
didefinisikan 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, gunakaninputs
danoutputs
atribut 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 paket—
panorama::abstract_rtsp_media_source
Nama antarmuka—
rtsp_v1_interface
-
Output HDMI— Menunjukkan bahwa aplikasi output video.
Nama paket—
panorama::hdmi_data_sink
Nama antarmuka—
hdmi0
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_source
paket 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" }
] } }