AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
konektor Deteksi Objek ML
Awas
Konektor ini telah pindah ke fase umur yang diperpanjang, dan AWS IoT Greengrass tidak akan merilis pembaruan yang menyediakan fitur, penyempurnaan pada fitur yang ada, patch keamanan, atau perbaikan bug. Untuk informasi selengkapnya, lihat AWS IoT Greengrass Version 1kebijakan pemeliharaan.
Konektor Deteksi Objek ML menyediakan layanan inferensi pembelajaran mesin (ML) yang berjalan pada AWS IoT Greengrass inti. Layanan inferensi lokal ini melakukan deteksi objek menggunakan model deteksi objek yang dikompilasi oleh kompiler pembelajaran mendalam SageMaker AI Neo. Dua jenis model pendeteksian objek didukung: Single Shot Multibox Detector (SSD) dan You Only Look Once (YOLO) v3. Untuk informasi lebih lanjut, lihat Persyaratan Model Deteksi Objek.
Fungsi Lambda yang ditentukan pengguna menggunakan Machine Learning AWS IoT Greengrass SDK untuk mengirimkan permintaan inferensi ke layanan inferensi lokal. Layanan ini melakukan inferensi lokal pada gambar input dan mengembalikan daftar prediksi untuk setiap objek yang terdeteksi dalam gambar. Setiap prediksi berisi kategori objek, skor kepercayaan prediksi, dan koordinat piksel yang menentukan kotak batas dalam sekitar objek yang diprediksi.
AWS IoT Greengrass menyediakan konektor Deteksi Objek MLuntuk berbagai platform:
Konektor |
Deskripsi dan ARN |
---|---|
Deteksi Objek ML Aarch64 JTX2 |
Layanan inferensi deteksi objek untuk NVIDIA TX2 Jetson. Mendukung akselerasi GPU. ARN: |
Deteksi Objek ML x86_64 |
Layanan inferensi deteksi objek untuk platform x86_64. ARN: |
Deteksi Objek ML ARMv7 |
Layanan inferensi deteksi objek untuk ARMv7 platform. ARN: |
Persyaratan
Konektor-konektor ini memiliki persyaratan sebagai berikut:
-
AWS IoT Greengrass Core Software v1.9.3 atau yang lebih baru.
-
Python
versi 3.7 atau 3.8 diinstal pada perangkat core dan ditambahkan ke variabel lingkungan PATH. catatan
Untuk menggunakan Python 3.8, jalankan perintah berikut untuk membuat link simbolik dari folder instalasi default Python 3.7 ke binari Python 3.8 yang diinstal.
sudo ln -s
path-to-python-3.8
/python3.8 /usr/bin/python3.7Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass.
-
Dependensi untuk runtime pembelajaran mendalam SageMaker AI Neo yang diinstal pada perangkat inti. Untuk informasi selengkapnya, lihat Menginstal dependensi runtime pembelajaran mendalam Neo pada inti AWS IoT Greengrass.
-
Sebuah sumber daya ML dalam grup Greengrass. Sumber daya ML harus mereferensikan bucket Amazon S3 yang berisi model deteksi objek. Untuk informasi lebih lanjut, lihat: Sumber model Amazon S3.
catatan
Model harus berupa Shot Multibox Detector or You Only Look Once v3 jenis model deteksi obyek. Itu harus dikompilasi menggunakan kompiler pembelajaran mendalam SageMaker AI Neo. Untuk informasi lebih lanjut, lihat Persyaratan Model Deteksi Objek.
-
Konektor Umpan balik ML ditambahkan ke grup Greengrass dan dikonfigurasi. Hal ini diperlukan hanya jika Anda ingin menggunakan konektor untuk mengunggah model data input dan menerbitkan prediksi untuk topik MQTT.
-
AWS IoT Greengrass Machine Learning SDK v1.1.0 diperlukan untuk berinteraksi dengan konektor ini.
Persyaratan model deteksi objek
Konektor Deteksi Objek ML mendukung Single Shot multibox Detector (SSD) dan You Only Look Once (YOLO) v3 jenis model deteksi objek. Anda dapat menggunakan komponen deteksi objek yang disediakan oleh GluonCV
Model deteksi objek Anda harus dilatih dengan gambar input 512 x 512. Model pra-terlatih dari GluonCV Model Zoo sudah memenuhi persyaratan ini.
Model deteksi objek yang terlatih harus dikompilasi dengan kompiler pembelajaran mendalam SageMaker AI Neo. Ketika mengkompilasi, pastikan perangkat keras target cocok dengan perangkat keras perangkat core Greengrass Anda. Untuk informasi selengkapnya, lihat SageMaker AI Neo di Panduan Pengembang Amazon SageMaker AI.
Model dikompilasi harus ditambahkan sebagai sumber daya ML (sumber daya model Amazon S3) ke grup Greengrass yang sama dengan konektor.
Parameter Konektor
Konektor-konektor ini menyediakan parameter berikut.
MLModelDestinationPath
-
Jalur absolut untuk bucket Amazon S3 yang berisi model Neo-compatible ML. Ini adalah jalur tujuan yang ditentukan untuk sumber daya model ML.
Nama tampilan di AWS IoT konsol: Jalur tujuan model
Wajib:
true
Jenis:
string
Pola yang valid:
.+
MLModelResourceId
-
ID dari sumber daya ML yang mereferensikan model sumber.
Nama tampilan di AWS IoT konsol: Sumber daya grup Greengrass
Wajib:
true
Jenis:
S3MachineLearningModelResource
Pola yang valid:
^[a-zA-Z0-9:_-]+$
LocalInferenceServiceName
-
Nama untuk layanan inferensi lokal. Fungsi Lambda yang ditentukan pengguna memanggil layanan dengan meneruskan nama ke fungsi Machine Learning
invoke_inference_service
SDK. AWS IoT Greengrass Sebagai contoh, lihat Contoh Penggunaan.Nama tampilan di AWS IoT konsol: Nama layanan inferensi lokal
Wajib:
true
Jenis:
string
Pola yang valid:
^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$
LocalInferenceServiceTimeoutSeconds
-
Waktu (dalam detik) sebelum permintaan inferensi dihentikan. Nilai minimum adalah 1. Nilai default adalah 10.
Nama tampilan di AWS IoT konsol: Timeout (second)
Wajib:
true
Jenis:
string
Pola yang valid:
^[1-9][0-9]*$
LocalInferenceServiceMemoryLimitKB
-
Jumlah memori (dalam KB) bahwa layanan memiliki akses ke. Nilai minimum adalah 1.
Nama tampilan di AWS IoT konsol: Batas memori
Wajib:
true
Jenis:
string
Pola yang valid:
^[1-9][0-9]*$
GPUAcceleration
-
CPU atau GPU (dipercepat) konteks komputasi. Properti ini hanya berlaku untuk JTX2 konektor ML Image Classification Aarch64.
Nama tampilan di AWS IoT konsol: Akselerasi GPU
Wajib:
true
Jenis:
string
Nilai yang valid:
CPU
orGPU
MLFeedbackConnectorConfigId
-
ID dari konfigurasi umpan balik untuk digunakan untuk mengunggah model data input. Ini harus sesuai dengan ID dari konfigurasi umpan balik yang ditetapkan untuk Konektor Umpan balik ML.
Parameter ini diperlukan hanya jika Anda ingin menggunakan konektor Umpan balik ML untuk mengunggah model data input dan menerbitkan prediksi untuk topik MQTT.
Nama tampilan di AWS IoT konsol: ID konfigurasi konektor Umpan Balik MS
Wajib:
false
Jenis:
string
Pola yang valid:
^$|^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$
Buat Contoh Konektor (AWS CLI)
Perintah CLI berikut membuat ConnectorDefinition
dengan versi awal yang berisi konektor Deteksi Objek ML. Contoh ini menciptakan sebuah instance dari ARMv7l konektor Deteksi Objek ML.
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyObjectDetectionConnector", "ConnectorArn": "arn:aws:greengrass:
region
::/connectors/ObjectDetectionARMv7/versions/1", "Parameters": { "MLModelDestinationPath": "/path-to-model", "MLModelResourceId": "my-ml-resource", "LocalInferenceServiceName": "objectDetection", "LocalInferenceServiceTimeoutSeconds": "10", "LocalInferenceServiceMemoryLimitKB": "500000", "MLFeedbackConnectorConfigId" : "object-detector-random-sampling" } } ] }'
catatan
Fungsi Lambda dalam konektor-konektor mempunyai siklus hidup yang berumur panjang ini.
Di AWS IoT Greengrass konsol, Anda dapat menambahkan konektor dari halaman Konektor grup. Untuk informasi selengkapnya, lihat Memulai dengan konektor Greengrass (konsol).
Data input
Konektor ini menerima file gambar sebagai input. Input file gambar harus dalam jpeg
atau png
format. Untuk informasi selengkapnya, lihat Contoh Penggunaan.
Konektor-konektor ini tidak menerima pesan MQTT sebagai data input.
Data output
Konektor ini kembali daftar diformat hasil prediksi untuk objek diidentifikasi dalam gambar input:
{ "prediction": [ [ 14, 0.9384938478469849, 0.37763649225234985, 0.5110225081443787, 0.6697432398796082, 0.8544386029243469 ], [ 14, 0.8859519958496094, 0, 0.43536216020584106, 0.3314110040664673, 0.9538808465003967 ], [ 12, 0.04128098487854004, 0.5976729989051819, 0.5747185945510864, 0.704264223575592, 0.857937216758728 ], ... ] }
Setiap prediksi dalam daftar terkandung dalam bucket kotak dan berisi enam nilai:
-
Nilai pertama merupakan kategori objek diprediksi untuk objek diidentifikasi. Kategori objek dan nilai yang sesuai ditentukan ketika melatih model machine learning deteksi objek Anda dalam Neo deep learning compiler.
-
Nilai kedua adalah skor kepercayaan untuk prediksi kategori objek. Ini merupakan probabilitas bahwa prediksi itu benar.
-
Empat nilai terakhir sesuai dengan dimensi piksel yang mewakili kotak batas dalam sekitar objek yang diprediksi dalam gambar.
Konektor ini tidak menerbitkan pesan MQTT sebagai data output.
Contoh Penggunaan
contoh fungsi Lambda berikut menggunakan AWS IoT Greengrass Machine Learning SDK untuk berinteraksi dengan konektor Deteksi Objek ML.
catatan
Anda dapat mengunduh SDK dari halaman unduh AWS IoT Greengrass Machine Learning SDK ini.
Contoh menginisialisasi klien SDK dan serentak menghubungi fungsi SDK invoke_inference_service
untuk memanggil layanan inferensi lokal. Ini melewati jenis algoritme, nama layanan, jenis citra, dan konten citra. Kemudian, contoh mengurai respon layanan untuk mendapatkan hasil probabilitas (prediksi).
import logging from threading import Timer import numpy as np import greengrass_machine_learning_sdk as ml # We assume the inference input image is provided as a local file # to this inference client Lambda function. with open('/test_img/test.jpg', 'rb') as f: content = bytearray(f.read()) client = ml.client('inference') def infer(): logging.info('invoking Greengrass ML Inference service') try: resp = client.invoke_inference_service( AlgoType='object-detection', ServiceName='objectDetection', ContentType='image/jpeg', Body=content ) except ml.GreengrassInferenceException as e: logging.info('inference exception {}("{}")'.format(e.__class__.__name__, e)) return except ml.GreengrassDependencyException as e: logging.info('dependency exception {}("{}")'.format(e.__class__.__name__, e)) return logging.info('resp: {}'.format(resp)) predictions = resp['Body'].read().decode("utf-8") logging.info('predictions: {}'.format(predictions)) predictions = eval(predictions) # Perform business logic that relies on the predictions. # Schedule the infer() function to run again in ten second. Timer(10, infer).start() return infer() def function_handler(event, context): return
invoke_inference_service
Fungsi dalam AWS IoT Greengrass Machine Learning SDK menerima argumen berikut.
Pendapat |
Deskripsi |
---|---|
|
Nama jenis algoritme yang digunakan untuk inferensi. Saat ini, hanya Wajib: Jenis: Nilai yang valid: |
|
Nama layanan inferensi lokal. Gunakan nama yang Anda tentukan untuk parameter Wajib: Jenis: |
|
Jenis mime dari gambar input. Wajib: Jenis: Nilai yang valid: |
|
Konten dari file citra input. Wajib: Jenis: |
Menginstal dependensi runtime pembelajaran mendalam Neo pada inti AWS IoT Greengrass
Konektor Deteksi Objek ML dibundel dengan SageMaker AI Neo deep learning runtime (DLR). Konektor menggunakan waktu aktif untuk melayani model ML. Untuk menggunakan konektor ini, Anda harus menginstal dependensi untuk DLR pada perangkat core Anda.
Sebelum Anda menginstal dependensi DLR, pastikan bahwa sistem perpustakaan yang diperlukan (dengan versi minimum yang ditentukan) ada pada perangkat.
Pencatatan dan pemecahan masalah
Bergantung pada pengaturan grup Anda, log peristiwa dan kesalahan ditulis ke CloudWatch Log, sistem file lokal, atau keduanya. Catatan dari konektor ini menggunakan prefix LocalInferenceServiceName
. Jika konektor berperilaku tidak terduga, periksa log konektor. Ini biasanya berisi informasi debugging yang berguna, seperti dependensi perpustakaan ML yang hilang atau penyebab kegagalan startup konektor.
Jika AWS IoT Greengrass grup dikonfigurasi untuk menulis log lokal, konektor akan menulis file log ke
. Untuk informasi lebih lanjut tentang Greengrass pencatatan, lihat Pemantauan dengan AWS IoT Greengrass log.greengrass-root
/ggc/var/log/user/region
/aws/
Gunakan informasi berikut untuk membantu memecahkan masalah dengan Deteksi Objek ML konektor.
Pustaka sistem yang diperlukan
Tab berikut mencantumkan perpustakaan sistem yang diperlukan untuk setiap konektor Deteksi Objek ML.
Masalah
Gejala | Solusi |
---|---|
Pada Raspberry Pi, pesan eror berikut dicatat dan Anda tidak menggunakan kamera: |
Jalankan perintah berikut untuk menonaktifkan driver:
Operasi ini bersifat fana. Tautan simbolis menghilang setelah Anda reboot. Konsultasikan manual distribusi OS Anda untuk mempelajari cara membuat tautan secara otomatis ketika reboot. |
Lisensi
Konektor Deteksi Objek ML termasuk perangkat lunak/lisensi pihak ketiga berikut:
-
AWS SDK for Python (Boto3)
/Lisensi 2.0 Apache -
botocore
/Apache License 2.0 -
dateutil
/PSF License -
docutils
/BSD License, Lisensi Publik Umum (GPL) GNU, Lisensi Dasar Perangkat Lunak Python, Domain Publik -
jmespath
/MIT License -
s3transfer
/Apache License 2.0 -
urllib3
/Lisensi MIT
-
Deep Learning waktu aktif
/Lisensi 2.0 Apache six
/MIT
Konektor ini dirilis di bawah Perjanjian Lisensi Perangkat lunak core Greengrass