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.
Bagian
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
Anda menggunakan Python untuk mengembangkan aplikasi AWS Panorama dan menginstal alat dengan pip, manajer paket Python. Jika Anda belum memiliki Python,instal versi terbaru
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.
-
Aplikasi sampel—aws-panorama-sample.zip
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-application
perintah.
aws-panorama-sample$ panorama-cli import-application
KlasterSAMPLE_CODE
paket, dipackages
direktori, 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-container
perintah.
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-application
perintah.
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
Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy
. -
PilihTerapkan.
-
Tempelkan isi dari manifes aplikasi,
graphs/aws-panorama-sample/graph.json
, ke dalam editor teks. Pilih Selanjutnya. -
Untuk Application name (Nama aplikasi), masukkan
aws-panorama-sample
. -
PilihLanjut ke.
-
PilihMulai deployment.
-
PilihSelanjutnyatanpa memilih peran.
-
PilihPilih perangkat, dan kemudian pilih alat Anda. Pilih Selanjutnya.
-
PadaPilihlangkah, pilihLihat, dan tambahkan aliran kamera Anda sebagai sumber data. Pilih Selanjutnya.
-
PadaKonfigurasilangkah, pilihSelanjutnya.
-
PilihDeploy, dan kemudian pilihSelesai.
-
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
-
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.
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 deploy
perintah.
$
aws cloudformation deploy --template-file aws-panorama-sample.yml --stack-name aws-panorama-sample-runtime --capabilities CAPABILITY_NAMED_IAM
Untuk men-deploy aplikasi
Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy
. Pilih aplikasi.
-
Pilih Ganti.
-
Selesaikan langkah-langkah untuk men-deploy aplikasi. DiTentukan peran IAMPilih peran yang Anda buat. Namanya dimulai dengan
aws-panorama-sample-runtime
. -
Saat penyebaran selesai, bukaCloudWatchkonsol
dan melihat metrik di AWSPanoramaApplication
namespace 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
Buka konsol AWS PanoramaHalaman aplikasi yang di-deploy
. Pilih aplikasi.
-
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.