Azure Sphere'da görüntü sınıflandırma modeli tasarlama

Tamamlandı

Bu modülde, Azure Sphere için küçük bir ekli uç görüntü sınıflandırma uygulaması tasarlaacaksınız. Örnek, bir akışı işlemek veya bir sahne içindeki bölgeleri bulmak yerine uygulamada derlenmiş tek bir görüntüyü değerlendirir. Arm'in CMSIS-NN çekirdeklerini kullanarak Azure Sphere MT3620 Cortex-M4F gerçek zamanlı çekirdeklerden birinde derleme zamanı 32x32 RGB giriş görüntüsü için yerel tam görüntü sınıflandırması çalıştıracaksınız. Mikrodenetleyici, belirli bir işlem için bir çözüm oluşturmak üzere tasarlanmış kompakt bir tümleşik devre katıştırılmış sistemidir. Mikrodenetleyiciler genellikle tek bir yonga üzerinde işlemci, bellek ve giriş/çıkış (G/Ç) çevre birimleri içerir.

Azure Sphere, internete bağlı cihazlar için yerleşik iletişim ve güvenlik özelliklerine sahip güvenli, üst düzey bir uygulama platformudur. Güvenli, bağlı, çapraz mikrodenetleyici birimi (MCU), özel bir üst düzey Linux tabanlı işletim sistemi (OS) ve sürekli, yenilenebilir güvenlik sağlayan bulut tabanlı bir güvenlik hizmetinden oluşur.

Azure Sphere MCU, gerçek zamanlı işleme özelliklerini üst düzey bir işletim sistemi çalıştırma özelliğiyle tümleştirir. Azure Sphere MCU, işletim sistemi ve uygulama platformuyla birlikte, uzaktan güncelleştirilebilen, denetlenebilen, izlenebilen ve korunabilen güvenli, bağlı ekli cihazların oluşturulmasını sağlar. Üst düzey bir uygulama İnternet ve bulut hizmetlerini kullanabilirken RTApp gerçek zamanlı çekirdek üzerinde yerel olarak çalışır ve yalnızca üst düzey bir uygulamayla iletişim kurabilir. Bu örnek için çıkarım, bulut çalışma zamanı yerine ekli cihazda çalışır.

Bu modülde Azure Sphere MT3620 panosu kullanılır. Uygulama, çalışma sırasında yeni görüntüleri karşıya yüklemez. Bunun yerine örnek, derleme zamanında C verisi olarak bir 32x32 RGB görüntüsü içerir. RTApp çalıştırıldığında, tüm görüntüyü CIFAR-10 sınıflarından birinde sınıflandırır.

Örnek tarafından kullanılan sinir ağı, 10 sınıfta 60.000 32x32 renkli görüntü içeren CIFAR-10 veri kümesini temel alan Caffe tarafından eğitilmiş bir modeldir. Model mimarisi, ReLU ve maksimum havuzlama aşamalarına sahip üç evrişim katmanından oluşur; bunu sınıf puanlarını üreten tam bağlantılı bir çıkış katmanı izler.

Uçtan uca bir makine öğrenmesi–mikrodenetleyici iş akışı için, eğitilmiş bir kayan noktalı model genellikle nicemlenir ve gömülü C kodunun derleyebileceği kaynak dosyalarına aktarılır. Niceleme, düşük bit genişlikli tamsayı veya sabit nokta değerleriyle ağırlıklar ve etkinleştirmeler gibi tensorları temsil ederek bellek kullanımı ve işlem maliyetini azaltır. Bu modül modeli eğitmiyor, nicelemez veya dışarı aktarmaz. Bu adımlar zaten tamamlandı ve CMSIS-NN çıkarımı için C başlık dosyalarında önceden nicemlenmiş Q7 model verilerini ve görüntü verilerini kullanırsınız.

Kullanacağınız bileşenler şunlardır:

  • Azure Sphere MT3620 Panosu: MT3620, Azure Sphere sertifikalı ilk MCU'dur. Azure Sphere sertifikalı MCU'lar güvenli, bağlı çapraz mikrodenetleyicilerin yeni bir sınıfıdır.

  • CIFAR-10 veri kümesi: 10 sınıfta 60.000 32x32 renkli görüntüden oluşur. Başvuru belgeleri CIFAR'dır.

  • Sinir ağı: Üç evrişim katmanı, ReLU ve maksimum havuzlama aşamaları ile tam bağlantılı bir çıkış katmanına sahip, Caffe ile eğitilmiş bir CIFAR-10 evrişimli sinir ağı kullanıyoruz.

  • CMSIS-NN Kitaplığı: Performansı en üst düzeye çıkarmak ve Cortex-M işlemci çekirdeklerindeki sinir ağlarının bellek ayak izini en aza indirmek için geliştirilmiş verimli sinir ağı çekirdekleri koleksiyonu. Geçerli CMSIS-NN belgelerinde kitaplık kavramları ve desteklenen çekirdekler açıklanmaktadır. Bu örnek, eski CMSIS_5 NN Q7 API'lerini ve adlı arm_softmax_q7işlevler gibi veri türlerini kullanır, bu nedenle bu belirli Q7 işlev imzalarını denetlerken CMSIS_5 NN belgelerini kullanın. Referans ARM'dir.

  • Merhaba Dünya Real-Time Uygulaması: Bu, uyarladığınız örnek uygulamadır. Visual Studio Code kullanarak bir Azure Sphere cihazında gerçek zamanlı uyumlu çekirdekler için örnek bir uygulama oluşturmayı gösterir.

Özetlemek gerekirse, mevcut Merhaba Dünya Real-Time Application projesini değiştireceksiniz. Bu modülde örnek depoyu kopyalayacak, yapılandırmayı ayarlayacak ve kaynak kodu güncelleştireceksiniz. CMSIS-NN kitaplığını ekleyecek ve proje tarafından kullanılan Q7 çıkarım işlevlerini çağıracaksınız. Geliştirme sırasında RTApp'i derleyip yerel test için Azure Sphere cihaza dışarıdan yükleyip sınıflandırma çıkışını bir terminal öykünücüsunda görüntüleyebilirsiniz. Azure Sphere katalog, ürün ve cihaz grubu iş akışları aracılığıyla bulut dağıtımı, bu yerel çıkarım örneğinin çalışma zamanı yolu değil, ayrı bir üretim güncelleştirme işlemidir.