AWS Türkçe Blog

Görüntü işleme, AWS Panorama ve Amazon SageMaker ile Tyson’da endüstriyel otomasyon

Orijinal makale: Link (Divya Bhargavi ve Dilip Subramaniam)

Bu yazı, Tyson Foods, Inc.’in yapay zeka uygulamalarının faydalarını en uç noktaya getirerek et paketleme tesislerinde endüstriyel süreçleri otomatikleştirmek için makine öğrenimini nasıl kullandığına dair iki bölümlük bir blog serisinin ilkidir. Birinci bölümde, Amazon SageMaker ve AWS Panorama kullanılarak oluşturulan paketleme hatları için bir envanter sayımı uygulamasını ele alıyoruz. İkinci bölümde, endüstriyel ekipmanın öngörücü bakımı için uçta vizyon tabanlı bir anormallik algılama çözümünü tartışıyoruz.

Dünyadaki en büyük tavuk, sığır eti ve domuz eti işlemcileri ve pazarlamacılarından biri olan Tyson Foods, Inc., üretim ve paketleme tesislerine yenilikçi çözümler getirmesiyle ünlüdür. Şubat 2020‘de Tyson, Görüntü işlemeyi (Computer Vision – CV) tavuk fabrikalarına getirme planını açıkladı ve envanter yönetimi konusundaki çabalara öncülük etmek için AWS ile bir pilot başlattı. Tyson, paketlenmiş envanter seviyelerine gerçek zamanlı bilgiler sağlayan son teknoloji ürünü bir tavuk tepsisi sayma CV çözümü oluşturmak için Amazon ML Solutions Lab ile işbirliği yaptı. Bu yazıda, Tyson’ın fabrikasında kurulmuş olan tepsi sayma boru hattındaki temel bileşenleri göstermek için AWS mimarisine genel bir bakış ve çözümün eksiksiz bir incelemesini sağlıyoruz. Amazon SageMaker, Apache MXNet Gluon ve AWS Panorama‘yı kullanarak CV modellerinin veri toplama, etiketleme, eğitim ve dağıtımına odaklanacağız.

Tyson Foods’da operasyonel mükemmellik önemli bir önceliktir. Tyson, paketleme hatlarında sıkı kalite güvencesi (Quality Assurance – QA) önlemleri uygulayarak, yalnızca kalite kontrol protokollerini geçen paketlenmiş ürünlerin müşterilerine gönderilmesini sağlar. Tyson, müşteri talebini karşılamak ve herhangi bir üretim sorununun önüne geçmek için paketlenmiş tavuk tepsisi sayılarını yakından izler. Bununla birlikte, kalite güvencesinden geçen tavuk tepsilerini saymak için mevcut manuel teknikler doğru değildir ve üretim seviyelerinin üstü/altında net bir resim sunmamaktadır. Raf başına üretimin saatlik toplam ağırlığının izlenmesi gibi alternatif stratejiler tesis çalışanlarına anında geri bildirim sağlamaz. Haftada 45.000.000 tavuk işleme kapasitesi ile üretim doğruluğu ve verimliliği Tyson’ın işi açısından kritik öneme sahiptir. CV, gerçek zamanlı olarak işlenen tavuk miktarını doğru bir şekilde tahmin etmek için bu tür senaryolarda etkili bir şekilde kullanılabilir ve çalışanların paketleme ve üretim hatlarındaki potansiyel darboğazları ortaya çıktıklarında tespit etmelerini sağlar. Bu, düzeltici önlemlerin uygulanmasını sağlar ve üretim verimliliğini artırır.

CV uygulamaları için bulutta şirket içi video akışlarının aktarılması ve işlenmesi, yüksek ağ bant genişliği ve ilgili altyapının sağlanması gerekir. Bu maliyet engelleyici bir görev olabilir. AWS Panorama bu gereksinimleri ortadan kaldırır ve Tyson’ın AWS Panorama Cihazı’nın uçta video akışlarını işlemesini sağlar. Uç cihazların ve uygulamaların yönetilmesi için kullanımı kolay bir arayüz sağlarken, buluta giden veya buluttan gelen gecikme süresini ve bant genişliği maliyetlerini azaltır.

Nesne algılama, görüntülerdeki ve videolardaki nesnelerin konumunu yerelleştirebilen en sık kullanılan CV algoritmalarından biridir. Bu teknoloji halihazırda otonom araçlarda yaya tespiti, tıbbi taramalarda tümörleri tespit etme, perakende alanlarındaki ziyaretçi trafiğini izlemek için insan sayma sistemleri gibi çeşitli gerçek yaşam uygulamalarında kullanılmaktadır. Tyson için et tepsisi sayımı gibi envanter yönetimi kullanım durumları için üretim süreçleri, maliyet tasarrufu ve müşteri gönderilerinin zamanında teslimatı ile geri bildirim döngüsü oluşturarak atıkları azaltmak da çok önemlidir.

Bu yazının aşağıdaki bölümlerinde Amazon SageMaker’ı kullanarak nesne algılama modelini eğitmek için Tyson Foods tesislerinden birinden canlı yayın videolarını nasıl kullandığımız açıklanmaktadır. Daha sonra AWS Panorama cihazıyla uçlara dağıtırız.

AWS Panorama

AWS Panorama, kuruluşların yüksek doğruluk ve düşük gecikme süresiyle yerel olarak tahminler yapmak için şirket içi kameralara CV’yi getirmesine olanak tanıyan bir makine öğrenimi (Machine Learning – ML) cihazıdır. AWS Panorama Cihazı, video akışlarından veri toplamak için ML kullanan uygulamaları çalıştırmanıza, metin ve grafik bindirmelerle video çıkışı yapmanıza ve diğer AWS hizmetleriyle etkileşim kurmanıza olanak tanıyan bir donanım cihazıdır. Cihaz birden fazla CV modelini birden fazla video akışına paralel olarak çalıştırabilir ve sonuçları gerçek zamanlı olarak çıkarabilir. Ticari ve endüstriyel ortamlarda kullanılmak üzere tasarlanmıştır.

AWS Panorama Cihazı, AWS Bulutuna görüntü göndermeden bağımsız CV uygulamalarını uçta çalıştırmanıza olanak tanır. AWS Panorama Cihazı üzerindeki AWS SDK’sını diğer AWS hizmetleriyle entegre etmek için kullanabilir ve bunları zaman içinde uygulamadan gelen verileri izlemek için kullanabilirsiniz. Uygulama oluşturmak ve dağıtmak için AWS Panorama Application CLI kullanırsınız. CLI, varsayılan uygulama klasörleri ve yapılandırma dosyaları oluşturan, Docker ile kapsayıcıları oluşturan ve varlıkları yükleyen bir komut satırı aracıdır.

AWS Panorama Apache MXNet, DarkNet, GluonCV, Keras, ONNX, PyTorch, TensorFlow ve TensorFlow Lite ile oluşturulmuş modelleri destekler. AWS Panorama’da uygulama oluşturma hakkında daha fazla bilgi edinmek için bu blog gönderisine bakabilirsiniz. Dağıtım işlemi sırasında AWS Panorama, modeli Amazon SageMaker Neo compilation ile uç platformuna özgü derleme işlemiyle ilgilenir. Çıkarsama (Inference) sonuçları Amazon S3, Amazon CloudWatch gibi AWS hizmetlerine yönlendirilebilir veya şirket içi iş kolu uygulamalarıyla entegre edilebilir. Dağıtım günlükleri Amazon CloudWatch’ta saklanır.

Çıkarsama komut dizisi mantığını veya eğitimli modeldeki herhangi bir değişikliği izlemek için uygulamanın yeni bir sürümünü oluşturabilirsiniz. Uygulama sürümleri bir uygulamanın yapılandırmasının değişmez anlık görüntüleridir. AWS Panorama uygulamalarınızın önceki sürümlerini kaydeder, böylece başarılı olmayan güncellemeleri geri alabilir veya farklı cihazlarda farklı sürümler çalıştırabilirsiniz.

Daha fazla bilgi için AWS Panorama sayfasına bakın. Örnek uygulamalar oluşturma hakkında daha fazla bilgi edinmek için AWS Panorama Örneklerine bakın.

Yaklaşım

Bir tesis çalışanı sürekli olarak paketlenmiş tavuk tepsilerini önceki şekilde gösterildiği gibi plastik kutulara doldurur ve zamanla onları istifler. Dikey olarak istiflenmiş tüm kutudaki toplam tepsi sayısını tespit etmek ve saymak istiyoruz.

Eğitimli bir nesne algılama modeli, her video karesinde bir kutuya yerleştirilen tüm tepsilerin sınırlayıcı kutularını (bounding box) tahmin edebilir. Bu, belirli bir örnekteki bir kutudaki tepsi sayılarını ölçmek için kullanılabilir. Ayrıca zamanın herhangi bir noktasında sadece bir kutunun paketlenmiş tepsilerle doldurulduğunu biliyoruz; tepsi sayımları sürekli olarak yüksekten (dolum sırasında) düşüğe salınır (yeni bir kutu, doldurulmuş kutunun görünümünü engellediğinde).

Bu bilgiyle tavuk tepsilerinin toplam sayısını saymak için aşağıdaki stratejiyi benimsemekteyiz:

  1. Yerel ve küresel olmak üzere iki farklı sayaç barındırın. Genel sayaç toplam tepsileri muhafaza eder ve yerel sayaç yeni bir kutuya yerleştirilen tepsilerin maksimum sayısını depolar.
  2. Yeni tepsiler depoya yerleştirildiği zaman yerel sayacı güncelleyin.
  3. Yeni bir kutu olayını aşağıdaki yollarla algılayın:
    1. Belirli bir karedeki tepsi sayısı sıfıra gider. (veya)
    2. Son n karelerdeki tepsi numaralarının akışı sürekli olarak düşer.
  4. Yeni kutu olayı algılandıktan sonra, yerel sayaç değerini genel sayaca ekleyin.
  5. Yerel sayacı sıfırlayın.

Bu algoritmayı birkaç saatlik videoda test ettik ve tutarlı sonuçlar aldık.

Amazon SageMaker ile nesne algılama modelini eğitmek

Veri kümesi oluşturma:

Etiketleme işleri için yeni görüntüler yakalama

AWS Panorama Cihazı kullanarak ambalaj hattından görüntü örnekleri topladık. Görüntüleri işlemek ve kaydetmek için kullanılan komut dizisi bir uygulama olarak paketlendi ve AWS Panorama’da dağıtıldı. Uygulama, paketleme bölgesinin yakınında kurulmuş şirket içi bir kameradan video karelerini toplar ve bunları 60 saniye aralıklarla Amazon S3 klasörüne kaydeder; bu, video dizisinde birkaç saniye arayla benzer görüntülerin yakalanmasını önler. Ayrıca görüntüdeki kullanım durumuyla ilgili olmayan bitişik bölgeleri de maskeliyoruz.

Amazon SageMaker Ground Truth‘un akış etiketleme işini kullanarak tavuk tepsilerini sınırlayıcı kutularla etiketledik. Ayrıca nesnenin oluşturduğu etkinlikleri etiketleme işinin giriş kaynağı olarak işlev gören bir Amazon Simple Notification System (SNS) konusuna yayınlayan bir Amazon S3 Olay bildirimi de oluşturduk. AWS Panorama uygulama komut dizisi görüntüyü bir S3 klasörüne kaydettiğinde, SNS konusuna bir olay bildirimi yayımlanır ve bu görüntüyü etiketleme işine gönderir. Annotator’lar gelen her görüntüyü etiketledikçe Ground Truth etiketleri görüntünün S3 yolunu ve tavuk tepsisi sınırlayıcı kutuların koordinatlarını içeren bir manifest dosyasına kaydeder.

Modelin gerçek hayatta varyasyonlara dayanıklı olmasını sağlamak için etiketli görüntüler üzerinde çeşitli veri artırmaları (örneğin: rastgele gürültü, rastgele kontrast ve parlaklık, kanal karıştırma) gerçekleştiriyoruz. Orijinal ve artırılmış görüntüler tümleşik bir veri kümesi oluşturmak için birleştirildi.

Model Eğitimi:

Etiketleme işi tamamlandıktan sonra manuel olarak bir AWS Lambda işlevini tetikleriz. Bu Lambda işlevi, görüntüleri ve bunların karşılık gelen etiketlerini çıktı bildiriminden bir LST dosyasına toplar. Eğitim ve test dosyalarımızda değerlendirmede herhangi bir veri sızıntısını önlemek için farklı paketleme hatlarından toplanan görüntüler vardı. Lambda işlevi daha sonra Amazon SageMaker eğitim işini tetikler.

Amazon SageMaker’ın kullanıcı dostu sınırları içinde kalırken kendi eğitim algoritmalarınızı getirmenize ve modelleri doğrudan eğitmenize olanak tanıyan SageMaker Komut Dizisi Modunu kullanıyoruz. Komut dizisi modunda nesne algılama için GluonCV Model Zoo‘dan çeşitli omurga ağ kombinasyonlarıyla SSD’nin Yolo-v3 (gerçek zamanlı çıkarsama gecikmesi için) gibi modelleri eğitiyoruz. Sinir ağları, eğitim verilerini aşırı uyarlama eğilimindedir ve bu da yetersiz numune dışı sonuçlara yol açar. GluonCV antrenman sırasında aşırı uyumu azaltmaya yardımcı olmak için görüntü normalleştirme ve rastgele görüntü çevirme ve kırpma gibi görüntü takviyesi sağlar. Model eğitim kodu konteynerize edilmiştir ve AWS Elastic Container Registry’mizdeki Docker görüntüsünü kullanır. Eğitim işi S3 görüntü klasörünü ve LST dosya yollarını girdi olarak alır ve tamamlandıktan sonra en iyi model yapay olgusunu (.params ve .json) S3’ye kaydeder.

Model Değerlendirme Veri Hattı

Test setimize dayanan ilk 2 model her biri 0,91 mAP puanı ile SSD-resnet50 ve Yolov3-darketnet53’dir. Ayrıca eğitimli modelle birlikte AWS Panorama cihazında bir çıkarsama uygulaması dağıtarak gerçek dünya testlerini gerçekleştirdik. Çıkarsama komut dizisi, tahminleri ve video karelerini bir Amazon S3 klasörüne kaydeder. Kesin referansı (ground truth) açıklamak için başka bir SageMaker Ground Truth işi oluşturduk ve daha sonra ek nicel model değerlendirmesi gerçekleştirdik. Görüntülerdeki kesin referans ve öngörülen sınırlayıcı kutu etiketleri, nitel değerlendirme için S3’ye kaydedildi. Modeller gerçek dünya verileri üzerinde genelleme yapabildiler ve test setimizde buna benzer tutarlı bir performans elde ettiler.

AWS Labs GitHub deposunda Amazon SageMaker’da özel eğitim işleri oluşturma, son teknoloji nesne algılama modellerini eğitme, Hyperparameter Optimizasyonu (HPO) uygulama ve model dağıtımı gibi eksiksiz, uçtan uca örnekleri bulabilirsiniz.

Et tepsisi sayım uygulamasının dağıtımı

Üretim Mimarisi

Dağıtımdan önce tüm varlıklarımızı (model, çıkarım komut dizisi, kamera ve küresel değişken yapılandırma) bu yazıda belirtildiği gibi tek bir konteynerde paketleriz. Sürekli entegrasyon ve sürekli dağıtım (CI/CD) işlem hattımız, çıkarsama komut dizisindeki herhangi bir değişikliği yeni bir uygulama sürümü olarak günceller. Yeni uygulama sürümü yayınlandıktan sonra Python’da boto3 SDK kullanarak programlı olarak dağıtırız.

Uygulama dağıtımı üzerine, AWS Panorama ilk olarak AWS Panorama cihazının modelini derlemek için bir AWS SageMaker Neo Compilation işi oluşturur. Çıkarsama uygulaması komut dizisi, derlenmiş modeli cihaza içe aktarır ve her karede tavuk tepsisi algılamasını gerçekleştirir. SageMaker Neo-Compilation’a ek olarak, komut dizisine bir os.environ ['TVM_TENSORRT_USE_FP16'] = '1' işareti ekleyerek eğitim sonrası nicelemeyi etkinleştirdik. Bu, model ağırlıklarının boyutunu float 32’den 16’ya düşürür, model boyutunu yarı yarıya indirir ve performansta düşme olmadan gecikme süresini iyileştirir. Çıkarsama sonuçları AWS SiteWise Monitor‘da AWS IoT Core aracılığıyla AWS Panorama cihazından gelen MQTT mesajları aracılığıyla yakalanır. Sonuçlar daha sonra Amazon S3’ye itilir ve Amazon QuickSight Panolarında görselleştirilir. Tesis yöneticileri ve çalışanları her paketleme hattının verimliliğini gerçek zamanlı olarak anlamak için bu panoları doğrudan görüntüleyebilir.

Sonuç

Amazon SageMaker, Amazon S3 gibi AWS Cloud hizmetlerini ve AWS Panorama gibi uç hizmeti bir araya getirerek Tyson Foods Inc., üretim tesislerinde envanter sayımı gibi yoğun insan işgücü endüstriyel işlemleri otomatikleştirmek için yapay zekayı aşılıyor. Gerçek zamanlı uç çıkarsama özellikleri, Tyson’ın üzeri/altında üretim tanımlamasını ve verimliliği en üst düzeye çıkarmak için üretim akışını dinamik olarak ayarlamasını sağlar. Ayrıca uçta AWS Panorama cihazına sahip olarak Tyson aynı zamanda video dosyalarını buluta aktarmak için pahalı ağ bant genişliği ile ilişkili maliyetlerden tasarruf edebiliyor ve artık tüm video/görüntü varlıklarını ağlarında yerel olarak işleyebiliyor.

Bu yazı AWS Panorama ile bir CV uygulaması geliştirmek için bir baştan sona uç uygulamasına genel bakış ve referans mimarileri sunar. Bir uç CV uygulaması oluşturmanın 3 farklı yönünü tartıştık.

  1. Veri: AWS Panorama ve Amazon SageMaker Ground Truth kullanılarak veri toplama, işleme ve etiketleme.
  2. Model: Amazon SageMaker ve AWS Lambda kullanılarak model eğitimi ve değerlendirme
  3. Uygulama Paketi: AWS Panorama için eğitimli model, komut dizileri ve yapılandırma dosyalarını paketleme.

Tyson’ın endüstriyel makinelerin CV bazlı öngörücü bakımı için AWS Panorama’yı nasıl kullandığına dair bu serinin ikinci bölümü için bizi takip etmeye devam edin.

AWS Panorama ile yolculuğunuza başlamak için buraya tıklayın. ML Solutions Lab ile işbirliği hakkında daha fazla bilgi edinmek için Amazon Machine Learning Solutions Lab bölümüne bakın.