Menerapkan aplikasi sampel AWS Panorama - AWS Panorama

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

Menerapkan aplikasi sampel AWS Panorama

Setelah Andamenyiapkan AWS Panorama Appliance atau perangkat yang kompatibeldan meningkatkan perangkat lunaknya, menyebarkan aplikasi sampel. Di bagian berikut, Anda mengimpor contoh aplikasi dengan AWS Panorama Application CLI dan menerapkannya dengan konsol AWS Panorama.

Aplikasi sampel menggunakan model pembelajaran mesin untuk mengklasifikasikan objek dalam bingkai video dari kamera jaringan. Ini menggunakan AWS Panorama Application SDK untuk memuat model, mendapatkan gambar, dan menjalankan model. Aplikasi kemudian melapisi hasil di atas video asli dan mengeluarkannya ke tampilan yang terhubung.

Dalam pengaturan ritel, menganalisis pola lalu lintas pejalan kaki memungkinkan Anda memprediksi tingkat lalu lintas. Dengan menggabungkan analisis dengan data lain, Anda dapat merencanakan peningkatan kebutuhan staf di sekitar hari libur dan acara lainnya, mengukur efektivitas iklan dan promosi penjualan, atau mengoptimalkan penempatan tampilan dan manajemen inventaris.

Prasyarat

Untuk mengikuti prosedur dalam tutorial ini, Anda memerlukan terminal atau shell baris perintah untuk menjalankan perintah. Dalam daftar kode, perintah didahului dengan simbol prompt ($) dan nama direktori saat ini, bila perlu.

~/panorama-project$ this is a command this is output

Untuk perintah panjang, kita menggunakan karakter escape (\) untuk membagi perintah melalui beberapa baris.

Di Linux dan macOS, gunakan shell dan manajer paket pilihan Anda. Di Windows 10, Anda dapat menginstal Windows Subsystem for Linux untuk mendapatkan Ubuntu dan Bash versi terintegrasi Windows. Untuk bantuan menyiapkan lingkungan pengembangan di Windows, lihatMenyiapkan lingkungan pengembangan di Windows.

Anda menggunakan Python untuk mengembangkan aplikasi AWS Panorama dan menginstal alat dengan pip, manajer paket Python. Jika Anda belum memiliki Python,instal versi terbaru. Jika Anda memiliki Python 3 tetapi tidak pip, instal pip dengan manajer paket sistem operasi Anda, atau instal versi baru Python, yang dilengkapi dengan pip.

Dalam tutorial ini, Anda menggunakan Docker untuk membangun wadah yang menjalankan kode aplikasi Anda. Instal Docker dari situs web Docker: Dapatkan Docker

Tutorial ini menggunakan AWS Panorama Application CLI untuk mengimpor contoh aplikasi, membangun paket, dan mengunggah artefak. CLI Aplikasi AWS Panorama menggunakanAWS Command Line Interface(AWS CLI) untuk memanggil operasi API layanan. Jika Anda sudah memilikiAWS CLI, tingkatkan ke versi terbaru. Untuk menginstal CLI Aplikasi AWS Panorama danAWS CLI, gunakanpip.

$ pip3 install --upgrade awscli panoramacli

Unduh contoh aplikasi, dan ekstrak ke ruang kerja Anda.

Impor aplikasi

Untuk mengimpor contoh aplikasi untuk digunakan di akun Anda, gunakan AWS Panorama Application CLI. Folder dan manifes aplikasi berisi referensi ke nomor akun placeholder. Untuk memperbaruinya dengan nomor akun Anda, jalankanpanorama-cli import-applicationperintah.

aws-panorama-sample$ panorama-cli import-application

KlasterSAMPLE_CODEpaket, dipackagesdirektori, berisi kode aplikasi dan konfigurasi, termasuk Dockerfile yang menggunakan gambar dasar aplikasi,panorama-application. Untuk membangun wadah aplikasi yang berjalan pada alat, gunakanpanorama-cli build-containerperintah.

aws-panorama-sample$ ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account') aws-panorama-sample$ panorama-cli build-container --container-asset-name code_asset --package-path packages/${ACCOUNT_ID}-SAMPLE_CODE-1.0

Langkah terakhir dengan AWS Panorama Application CLI adalah mendaftarkan kode aplikasi dan node model, dan mengunggah aset ke titik akses Amazon S3 yang disediakan oleh layanan. Aset termasuk gambar kontainer kode, model, dan file deskriptor untuk masing-masing. Untuk mendaftarkan node dan mengunggah aset, jalankanpanorama-cli package-applicationperintah.

aws-panorama-sample$ panorama-cli package-application Uploading package model Registered model with patch version bc9c58bd6f83743f26aa347dc86bfc3dd2451b18f964a6de2cc4570cb6f891f9 Uploading package code Registered code with patch version 11fd7001cb31ea63df6aaed297d600a5ecf641a987044a0c273c78ceb3d5d806

Deploy aplikasi

Gunakan konsol AWS Panorama untuk menerapkan aplikasi ke perangkat Anda.

Untuk men-deploy aplikasi
  1. Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy.

  2. PilihTerapkan.

  3. Tempelkan isi dari manifes aplikasi,graphs/aws-panorama-sample/graph.json, ke dalam editor teks. Pilih Selanjutnya.

  4. Untuk Application name (Nama aplikasi), masukkan aws-panorama-sample.

  5. PilihLanjut ke.

  6. PilihMulai deployment.

  7. PilihSelanjutnyatanpa memilih peran.

  8. PilihPilih perangkat, dan kemudian pilih alat Anda. Pilih Selanjutnya.

  9. PadaPilihlangkah, pilihLihat, dan tambahkan aliran kamera Anda sebagai sumber data. Pilih Selanjutnya.

  10. PadaKonfigurasilangkah, pilihSelanjutnya.

  11. PilihDeploy, dan kemudian pilihSelesai.

  12. Dalam daftar aplikasi yang dikerahkan, pilihaws-panorama-sample.

Segarkan halaman ini untuk pembaruan, atau gunakan skrip berikut untuk memantau penyebaran dari baris perintah.

contoh monitor-deployment.sh
while true; do aws panorama list-application-instances --query 'ApplicationInstances[?Name==`aws-panorama-sample`]' sleep 10 done
[ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has been scheduled.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] [ { "Name": "aws-panorama-sample", "ApplicationInstanceId": "applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "DefaultRuntimeContextDeviceName": "my-appliance", "Status": "DEPLOYMENT_PENDING", "HealthStatus": "NOT_AVAILABLE", "StatusDescription": "Deployment Workflow has completed data validation.", "CreatedTime": 1630010747.443, "Arn": "arn:aws:panorama:us-west-2:123456789012:applicationInstance/applicationInstance-x264exmpl33gq5pchc2ekoi6uu", "Tags": {} } ] ...

Jika aplikasi tidak mulai berjalan, periksaaplikasi dan perangkat logdi Amazon CloudWatch Log.

Lihat Output

Saat penyebaran selesai, aplikasi mulai memproses aliran video dan mengirim log ke CloudWatch.

Untuk melihat log CloudWatch Beberapa catatan
  1. BukaLog halaman grup dari CloudWatch Konsol log.

  2. Temukan log aplikasi dan alat AWS Panorama dalam grup berikut:

    • Log perangkat/aws/panorama/devices/device-id

    • Log aplikasi/aws/panorama/devices/device-id/applications/instance-id

2022-08-26 17:43:39 INFO INITIALIZING APPLICATION 2022-08-26 17:43:39 INFO ## ENVIRONMENT VARIABLES {'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'TERM': 'xterm', 'container': 'podman'...} 2022-08-26 17:43:39 INFO Configuring parameters. 2022-08-26 17:43:39 INFO Configuring AWS SDK for Python. 2022-08-26 17:43:39 INFO Initialization complete. 2022-08-26 17:43:39 INFO PROCESSING STREAMS 2022-08-26 17:46:19 INFO epoch length: 160.183 s (0.936 FPS) 2022-08-26 17:46:19 INFO avg inference time: 805.597 ms 2022-08-26 17:46:19 INFO max inference time: 120023.984 ms 2022-08-26 17:46:19 INFO avg frame processing time: 1065.129 ms 2022-08-26 17:46:19 INFO max frame processing time: 149813.972 ms 2022-08-26 17:46:29 INFO epoch length: 10.562 s (14.202 FPS) 2022-08-26 17:46:29 INFO avg inference time: 7.185 ms 2022-08-26 17:46:29 INFO max inference time: 15.693 ms 2022-08-26 17:46:29 INFO avg frame processing time: 66.561 ms 2022-08-26 17:46:29 INFO max frame processing time: 123.774 ms

Untuk melihat output video aplikasi, sambungkan alat ke monitor dengan kabel HDMI. Secara default, aplikasi menunjukkan hasil klasifikasi yang memiliki kepercayaan lebih dari 20%.

contoh squeezenet_classes.json
["tench", "goldfish", "great white shark", "tiger shark", "hammerhead", "electric ray", "stingray", "cock", "hen", "ostrich", "brambling", "goldfinch", "house finch", "junco", "indigo bunting", "robin", "bulbul", "jay", "magpie", "chickadee", "water ouzel", "kite", "bald eagle", "vulture", "great grey owl", "European fire salamander", "common newt", "eft", "spotted salamander", "axolotl", "bullfrog", "tree frog", ...

Model sampel memiliki 1000 kelas termasuk banyak hewan, makanan, dan benda-benda umum. Coba arahkan kamera Anda ke keyboard atau cangkir kopi.

Mug kopi dengan teks deteksi.

Untuk mempermudah, aplikasi sampel menggunakan model klasifikasi ringan. Model output array tunggal dengan probabilitas untuk masing-masing kelas. Aplikasi dunia nyata lebih sering menggunakan model deteksi objek yang memiliki output multidimensi. Untuk contoh aplikasi dengan model yang lebih kompleks, lihatContoh aplikasi, skrip, dan templat.

Aktifkan SDK for Python

Aplikasi sampelAWS SDK for Python (Boto)mengirim metrik ke Amazon CloudWatch. Untuk mengaktifkan fungsionalitas ini, buat peran yang memberikan izin aplikasi untuk mengirim metrik, dan men-deploy ulang aplikasi dengan peran yang dilampirkan.

Aplikasi sampel termasukAWS CloudFormationtemplate yang menciptakan peran dengan izin yang dibutuhkan. Untuk membuat peran, gunakanaws cloudformation deployperintah.

$ aws cloudformation deploy --template-file aws-panorama-sample.yml --stack-name aws-panorama-sample-runtime --capabilities CAPABILITY_NAMED_IAM

Untuk men-deploy aplikasi
  1. Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy.

  2. Pilih aplikasi.

  3. Pilih Ganti.

  4. Selesaikan langkah-langkah untuk men-deploy aplikasi. DiTentukan peran IAMPilih peran yang Anda buat. Namanya dimulai denganaws-panorama-sample-runtime.

  5. Saat penyebaran selesai, bukaCloudWatchkonsoldan melihat metrik diAWSPanoramaApplicationnamespace Setiap 150 frame, aplikasi mencatat dan mengunggah metrik untuk pemrosesan bingkai dan waktu inferensi.

Bersihkan

Jika Anda selesai bekerja dengan aplikasi sampel, Anda dapat menggunakan konsol AWS Panorama untuk menghapusnya dari alat.

Untuk menghapus aplikasi dari alat
  1. Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy.

  2. Pilih aplikasi.

  3. PilihHapus dari perangkat.

Langkah selanjutnya

Jika Anda mengalami kesalahan saat men-deploy atau menjalankan aplikasi sampel, lihatPemecahan Masalah.

Untuk mempelajari lebih lanjut tentang fitur dan implementasi aplikasi contoh, lanjutkantopik selanjutnya.