Klasifikasi citra DLR - AWS IoT Greengrass

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

Klasifikasi citra DLR

Komponen klasifikasi citra DLR (aws.greengrass.DLRImageClassification) berisi contoh kode inferensi untuk melakukan inferensi klasifikasi gambar menggunakan Deep Learning Runtime dan model resnet-50. Komponen ini menggunakan varian Penyimpanan model klasifikasi gambar DLR dan komponen waktu aktif DLR sebagai dependensi untuk mengunduh DLR dan model sampel.

Untuk menggunakan komponen inferensi ini dengan model DLR yang terlatih khusus, buat versi kustom dari komponen penyimpanan model dependen. Untuk menggunakan kode inferensi kustom Anda sendiri, Anda dapat menggunakan resep komponen ini sebagai templat untuk membuat komponen inferensi kustom.

Versi

Komponen ini memiliki versi berikut:

  • 2.1.x

  • 2.0.x

Tipe

Inikomponen adalah komponen generik (aws.greengrass.generic). YangInti Greengrassmenjalankan skrip siklus hidup komponen.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

Komponen ini dapat diinstal pada perangkat inti yang menjalankan sistem operasi berikut:

  • Linux

  • Windows

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

  • Pada perangkat inti Greengrass yang menjalankan Amazon Linux 2 atau Ubuntu 18.04, Pustaka GNU C (glibc) versi 2.27 atau yang lebih baru diinstal pada perangkat.

  • Pada perangkat Armv7l, seperti Raspberry Pi, dependensi untuk OpenCV-Python diinstal pada perangkat. Jalankan perintah berikut untuk menginstal dependensi.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Perangkat Raspberry Pi yang menjalankan Raspberry Pi OS Bullseye harus memenuhi persyaratan berikut:

    • NumPy 1.22.4 atau yang lebih baru dipasang pada perangkat. Raspberry Pi OS Bullseye menyertakan versi sebelumnya NumPy, sehingga Anda dapat menjalankan perintah berikut untuk meningkatkan NumPy pada perangkat.

      pip3 install --upgrade numpy
    • Tumpukan kamera lama diaktifkan pada perangkat. Raspberry Pi OS Bullseye menyertakan tumpukan kamera baru yang diaktifkan secara default dan tidak kompatibel, jadi Anda harus mengaktifkan tumpukan kamera lama.

      Untuk mengaktifkan tumpukan kamera lama

      1. Jalankan perintah berikut untuk menjalankan alat konfigurasi Raspberry Pi.

        sudo raspi-config
      2. PilihOpsi Antarmuka.

      3. PilihKamera warisanuntuk mengaktifkan tumpukan kamera lama.

      4. Reboot Raspberry Pi.

Dependensi

Saat Anda men-deploy komponen, AWS IoT Greengrass juga men-deploy versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass tersebut. Pada halaman detail komponen, cari daftar Dependensi.

2.1.8

Tabel berikut mencantumkan dependensi untuk versi 2.1.8 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.8.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.7

Tabel berikut mencantumkan dependensi untuk versi 2.1.7 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.7.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.6

Tabel berikut mencantumkan dependensi untuk versi 2.1.6 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.6.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.4 - 2.1.5

Tabel berikut mencantumkan dependensi untuk versi 2.1.4 hingga 2.1.5 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.5.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.3

Tabel berikut mencantumkan dependensi untuk versi 2.1.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.4.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.2

Tabel berikut mencantumkan dependensi untuk versi 2.1.2 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.3.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.1.1

Tabel berikut mencantumkan dependensi untuk versi 2.1.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.2.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.1.0 Keras
DLR ~1.6.0 Keras
2.0.x

Tabel berikut mencantumkan dependensi untuk versi 2.0.x komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass ~2.0.0 Lunak
Penyimpanan model klasifikasi gambar DLR ~2.0.0 Keras
DLR ~1.3.0 Lunak

Konfigurasi

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.

2.1.x
accessControl

(Opsional) Objek yang berisi kebijakan otorisasi yang memungkinkan komponen untuk mempublikasikan pesan ke topik pemberitahuan default.

Default:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.DLRImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/dlr/image-classification" ] } } }
PublishResultsOnTopic

(Opsional) Topik di mana Anda ingin mempublikasikan hasil inferensi. Jika Anda mengubah nilai ini, maka Anda juga harus mengubah nilai resources di parameter accessControl agar cocok dengan nama topik kustom Anda.

Default: ml/dlr/image-classification

Accelerator

Akselerator yang ingin Anda gunakan. Nilai yang didukung adalah cpu dan gpu.

Model sampel dalam komponen model dependen hanya mendukung akselerasi CPU. Untuk menggunakan akselerasi GPU dengan model kustom yang berbeda, buat komponen model kustom untuk menimpa komponen model publik.

Default: cpu

ImageDirectory

(Opsional) Jalur folder pada perangkat di mana komponen inferensi membaca gambar. Anda dapat mengubah nilai ini ke lokasi mana pun di perangkat Anda yang memiliki akses baca/tulis.

Default: /greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/

catatan

Jika Anda menetapkan nilai UseCamera ke true, maka parameter konfigurasi ini diabaikan.

ImageName

(Opsional) Nama gambar yang digunakan oleh komponen inferensi sebagai masukan untuk membuat prediksi. Komponen mencari gambar dalam folder yang ditentukan dalam ImageDirectory. Secara default, komponen menggunakan gambar sampel dalam direktori gambar default. AWS IoT Greengrass mendukung format gambar berikut: jpeg, jpg, png, dan npy.

Default: cat.jpeg

catatan

Jika Anda menetapkan nilai UseCamera ke true, maka parameter konfigurasi ini diabaikan.

InferenceInterval

(Opsional) Waktu dalam detik antara setiap prediksi yang dibuat oleh kode inferensi. Kode inferensi sampel berjalan tanpa batas waktu dan mengulangi prediksinya pada interval waktu yang ditentukan. Misalnya, Anda dapat mengubahnya menjadi interval yang lebih pendek jika ingin menggunakan gambar yang diambil oleh kamera untuk prediksi real-time.

Default: 3600

ModelResourceKey

(Opsional) Model yang digunakan dalam komponen model publik dependen. Ubah parameter ini hanya jika Anda menimpa komponen model publik dengan komponen kustom.

Default:

{ "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification", "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification", "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification", "windows": "DLR-resnet50-win-cpu-ImageClassification" }
UseCamera

(Opsional) Nilai string yang menentukan apakah akan menggunakan gambar dari kamera yang terhubung ke perangkat inti Greengrass. Nilai yang didukung adalah true dan false.

Ketika Anda menetapkan nilai ini ke true, kode kesimpulan sampel akan mengakses kamera pada perangkat Anda dan menjalankan kesimpulan secara lokal pada gambar yang ditangkap. Nilai ImageName dan parameter ImageDirectory diabaikan. Pastikan bahwa pengguna yang menjalankan komponen ini memiliki akses baca/tulis ke lokasi di mana kamera menyimpan gambar yang diambil.

Default: false

catatan

Ketika Anda melihat resep komponen ini, parameter konfigurasi UseCamera tidak muncul dalam konfigurasi default. Namun, Anda dapat mengubah nilai parameter ini dalam pembaruan gabungan konfigurasi saat Anda men-deploy komponen.

Ketika Anda mengatur UseCamera ke true, Anda juga harus membuat symlink untuk mengaktifkan komponen inferensi untuk mengakses kamera Anda dari lingkungan virtual yang dibuat oleh komponen waktu aktif. Untuk informasi lebih lanjut tentang penggunaan kamera dengan komponen inferensi sampel, lihat Perbarui konfigurasi komponen.

2.0.x
MLRootPath

(Opsional) Jalur folder pada perangkat inti Linux di mana komponen inferensi membaca gambar dan menulis hasil inferensi. Anda dapat mengubah nilai ini ke lokasi mana pun di perangkat Anda yang padanya pengguna menjalankan komponen ini memiliki akses baca/tulis.

Default: /greengrass/v2/work/variant.DLR/greengrass_ml

Default: /greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

Accelerator

Akselerator yang ingin Anda gunakan. Nilai yang didukung adalah cpu dan gpu.

Model sampel dalam komponen model dependen hanya mendukung akselerasi CPU. Untuk menggunakan akselerasi GPU dengan model kustom yang berbeda, buat komponen model kustom untuk menimpa komponen model publik.

Default: cpu

ImageName

(Opsional) Nama gambar yang digunakan oleh komponen inferensi sebagai masukan untuk membuat prediksi. Komponen mencari gambar dalam folder yang ditentukan dalam ImageDirectory. Lokasi default adalah MLRootPath/images. AWS IoT Greengrass mendukung format gambar berikut: jpeg, jpg, png, dan npy.

Default: cat.jpeg

InferenceInterval

(Opsional) Waktu dalam detik antara setiap prediksi yang dibuat oleh kode inferensi. Kode inferensi sampel berjalan tanpa batas waktu dan mengulangi prediksinya pada interval waktu yang ditentukan. Misalnya, Anda dapat mengubahnya menjadi interval yang lebih pendek jika ingin menggunakan gambar yang diambil oleh kamera untuk prediksi real-time.

Default: 3600

ModelResourceKey

(Opsional) Model yang digunakan dalam komponen model publik dependen. Ubah parameter ini hanya jika Anda menimpa komponen model publik dengan komponen kustom.

Default:

armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification" x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"

File log lokal

Komponen ini menggunakan file log berikut.

Linux
/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log

Untuk melihat log komponen ini

  • Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti/greengrass/v2atauC:\greengrass\v2dengan jalur keAWS IoT Greengrassfolder akar.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log -Tail 10 -Wait

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

Versi

Perubahan

2.1.8

Versi yang diperbarui untuk rilis inti Greengrass versi 2.7.0.

2.1.7

Versi yang diperbarui untuk rilis inti Greengrass versi 2.6.0.

2.1.6

Versi yang diperbarui untuk rilis inti Greengrass versi 2.5.0.

2.1.5

Komponen dirilis di semuaWilayah AWS.

2.1.4

Versi yang diperbarui untuk rilis inti Greengrass versi 2.4.0.

Versi ini tidak tersedia di Europe (London) (eu-west-2).

2.1.3

Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0.

2.1.2

Versi yang diperbarui untuk rilis inti Greengrass versi 2.2.0.

2.1.1

Fitur baru
  • Gunakan Deep Learning Runtime v1.6.0.

  • Tambahkan dukungan untuk klasifikasi gambar sampel pada platform Armv8 (AArch64). Hal ini akan memperluas dukungan machine learning untuk perangkat inti Greengrass yang menjalankan NVIDIA Jetson, seperti Jetson Nano.

  • Aktifkan integrasi kamera untuk inferensi sampel. Gunakan parameter konfigurasi UseCamera yang baru untuk mengaktifkan kode kesimpulan sampel untuk mengakses kamera pada perangkat inti Greengrass Anda dan jalankan inferensi lokal pada gambar yang ditangkap.

  • Tambahkan dukungan untuk menerbitkan hasil inferensi ke AWS Cloud. Gunakan parameter konfigurasi PublishResultsOnTopic yang baru untuk menentukan topik di mana Anda ingin mempublikasikan hasil.

  • Tambahkan parameter konfigurasi ImageDirectory yang baru yang memungkinkan Anda untuk menentukan direktori kustom untuk gambar di mana Anda ingin melakukan inferensi.

Perbaikan bug dan peningkatan
  • Tulis hasil inferensi ke file log komponen dan bukan file inferensi terpisah.

  • Gunakan modul pencatatan perangkat lunak inti AWS IoT Greengrass untuk mencatat output komponen.

  • Gunakan AWS IoT Device SDK untuk membaca konfigurasi komponen dan menerapkan perubahan konfigurasi.

2.0.4

Versi awal.