Otomatisasi industri di Tyson dengan visi komputer, AWS Panorama, dan Amazon SageMaker

Node Sumber: 1575225

Ini adalah yang pertama dari seri blog dua bagian tentang bagaimana Tyson Foods, Inc., memanfaatkan Amazon SageMaker dan AWS Panorama untuk mengotomatiskan proses industri di pabrik pengemasan daging mereka dengan menghadirkan manfaat aplikasi kecerdasan buatan secara maksimal. Pada bagian pertama, kita membahas aplikasi penghitungan inventaris untuk lini pengemasan. Di bagian kedua, kami membahas solusi deteksi anomali berbasis vision di edge untuk pemeliharaan prediktif peralatan industri.

Sebagai salah satu pengolah dan pemasar ayam, sapi, dan babi terbesar di dunia, Tyson Foods, Inc., dikenal karena menghadirkan solusi inovatif untuk pabrik produksi dan pengemasan mereka. Pada Februari 2020, Tyson mengumumkan rencananya untuk membawa Computer Vision (CV) ke pabrik ayamnya dan meluncurkan uji coba dengan AWS untuk memelopori upaya pengelolaan inventaris. Tyson berkolaborasi dengan Lab Solusi Amazon ML untuk membuat solusi CV penghitung baki ayam canggih yang memberikan wawasan waktu nyata ke tingkat inventaris yang dikemas. Dalam postingan ini, kami memberikan ikhtisar arsitektur AWS dan langkah-langkah lengkap solusi untuk mendemonstrasikan komponen utama dalam pipa penghitung baki yang disiapkan di pabrik Tyson. Kami akan fokus pada pengumpulan data dan pelabelan, pelatihan, dan penggunaan model CV di edge Amazon SageMaker, Gluon Apache MXNet, dan Panorama AWS.

Keunggulan operasional adalah prioritas utama di Tyson Foods. Tyson menerapkan langkah-langkah jaminan kualitas (QA) yang ketat dalam lini pengemasan mereka, memastikan bahwa hanya produk kemasan yang lulus protokol kontrol kualitas yang dikirimkan ke pelanggannya. Untuk memenuhi permintaan pelanggan dan untuk tetap terdepan dalam masalah produksi apa pun, Tyson memantau dengan cermat jumlah baki ayam yang dikemas. Namun, teknik manual saat ini untuk menghitung baki ayam yang lulus QA tidak akurat dan tidak memberikan gambaran yang jelas tentang tingkat produksi berlebih/kurang. Strategi alternatif seperti memantau berat total produksi per rak per jam tidak memberikan umpan balik langsung kepada karyawan pabrik. Dengan kapasitas pemrosesan ayam sebesar 45,000,000 ekor per minggu, akurasi dan efisiensi produksi sangat penting bagi bisnis Tyson. CV dapat digunakan secara efektif dalam skenario seperti itu untuk memperkirakan jumlah ayam yang diproses secara real-time secara akurat, memberdayakan karyawan untuk mengidentifikasi potensi hambatan dalam pengemasan dan lini produksi saat hal itu terjadi. Hal ini memungkinkan penerapan langkah-langkah korektif dan meningkatkan efisiensi produksi.

Streaming dan pemrosesan streaming video di tempat di cloud untuk aplikasi CV memerlukan bandwidth jaringan yang tinggi dan penyediaan infrastruktur yang relevan. Ini bisa menjadi tugas yang mahal. AWS Panorama menghapus persyaratan ini dan memungkinkan Tyson memproses streaming video di edge pada AWS Panorama Appliance. Ini mengurangi latensi ke/dari cloud dan biaya bandwidth, sambil menyediakan antarmuka yang mudah digunakan untuk mengelola perangkat dan aplikasi di edge.

Deteksi objek adalah salah satu algoritma CV yang paling umum digunakan yang dapat melokalisasi posisi objek dalam gambar dan video. Teknologi ini saat ini sedang digunakan dalam berbagai aplikasi kehidupan nyata seperti pejalan kaki di kendaraan otonom, mendeteksi tumor dalam pemindaian medis, sistem penghitungan orang untuk memantau langkah kaki di ruang ritel, dan lain-lain. Kasus penggunaan manajemen inventaris juga penting, seperti penghitungan baki daging untuk Tyson, untuk mengurangi pemborosan dengan membuat lingkaran umpan balik dengan proses produksi, penghematan biaya, dan pengiriman pengiriman pelanggan tepat waktu.

Bagian berikut dari postingan blog ini menguraikan cara kami menggunakan video streaming langsung dari salah satu pabrik Tyson Foods untuk melatih model deteksi objek menggunakan Amazon SageMaker. Kami kemudian menerapkannya di edge dengan perangkat AWS Panorama.

Panorama AWS

AWS Panorama adalah alat pembelajaran mesin (ML) yang memungkinkan organisasi membawa CV ke kamera lokal untuk membuat prediksi secara lokal dengan akurasi tinggi dan latensi rendah. AWS Panorama Appliance adalah perangkat perangkat keras yang memungkinkan Anda menjalankan aplikasi yang menggunakan ML untuk mengumpulkan data dari aliran video, menghasilkan video dengan overlay teks dan grafik, dan berinteraksi dengan layanan AWS lainnya. Alat dapat menjalankan beberapa model CV terhadap beberapa aliran video secara paralel dan menampilkan hasilnya secara real time. Ini dirancang untuk digunakan dalam pengaturan komersial dan industri.

AWS Panorama Appliance memungkinkan Anda menjalankan aplikasi CV mandiri di edge, tanpa mengirim gambar ke AWS Cloud. Anda juga dapat menggunakan AWS SDK di AWS Panorama Appliance untuk berintegrasi dengan layanan AWS lainnya dan menggunakannya untuk melacak data dari aplikasi dari waktu ke waktu. Untuk membangun dan menerapkan aplikasi, Anda menggunakan AWS Panorama Application CLI. CLI adalah alat baris perintah yang menghasilkan folder aplikasi default dan file konfigurasi, membangun wadah dengan Docker, dan mengunggah aset.

AWS Panorama mendukung model yang dibuat dengan Apache MX Net, jaring gelap, GluonCV, Keras, ONNX, PyTorch, TensorFlow, dan TensorFlow Lite. Mengacu pada ini posting blog untuk mempelajari lebih lanjut tentang membuat aplikasi di AWS Panorama. Selama proses penerapan, AWS Panorama menangani kompilasi model khusus untuk platform edge Kompilasi Amazon SageMaker Neo. Hasil inferensi dapat dialihkan ke layanan AWS seperti Amazon S3, Amazon CloudWatch atau terintegrasi dengan aplikasi lini bisnis lokal. Log penerapan disimpan di Amazon CloudWatch.

Untuk melacak setiap perubahan dalam logika skrip inferensi atau model terlatih, seseorang dapat membuat versi baru aplikasi. Versi aplikasi adalah snapshot tetap dari konfigurasi aplikasi. AWS Panorama menyimpan versi aplikasi Anda sebelumnya sehingga Anda dapat mengembalikan pembaruan yang tidak berhasil, atau menjalankan versi yang berbeda di perangkat yang berbeda.

Untuk informasi lebih lanjut, lihat halaman Panorama AWS. Untuk mempelajari lebih lanjut tentang membuat aplikasi sampel, lihat Sampel Panorama AWS.

Pendekatan

Seorang karyawan pabrik secara terus-menerus mengisi baki ayam yang dikemas ke dalam wadah plastik dan menumpuknya dari waktu ke waktu, seperti yang ditunjukkan pada gambar sebelumnya. Kami ingin dapat mendeteksi dan menghitung jumlah total baki di semua nampan yang ditumpuk secara vertikal.

Model deteksi objek yang terlatih dapat memprediksi kotak pembatas dari semua baki yang ditempatkan di tempat sampah di setiap bingkai video. Ini dapat digunakan untuk mengukur jumlah baki di tempat sampah pada contoh tertentu. Kami juga tahu bahwa pada suatu saat, hanya satu tempat sampah yang diisi dengan baki yang sudah dikemas; jumlah baki terus berosilasi dari tinggi (selama pengisian) ke rendah (saat nampan baru menghalangi tampilan nampan yang terisi).

Dengan pengetahuan ini, kami mengadopsi strategi berikut untuk menghitung jumlah nampan ayam:

  1. Pertahankan dua penghitung yang berbeda – lokal dan global. Penghitung global mempertahankan total baki yang disimpan dan penghitung lokal menyimpan jumlah maksimum baki yang ditempatkan di nampan baru.
  2. Perbarui penghitung lokal saat baki baru ditempatkan di tempat sampah.
  3. Deteksi kejadian bin baru dengan cara berikut:
    1. Jumlah baki dalam bingkai tertentu menjadi nol. (atau)
    2. Aliran nomor baki di bagian terakhir n frame turun terus menerus.
  4. Setelah acara bin baru terdeteksi, tambahkan nilai penghitung lokal ke penghitung global.
  5. Setel ulang penghitung lokal ke nol.

Kami menguji algoritme ini pada beberapa jam video dan mendapatkan hasil yang konsisten.

Melatih model deteksi objek dengan Amazon SageMaker

Pembuatan set data:

Menangkap gambar baru untuk pekerjaan pelabelan

Menangkap gambar baru untuk pekerjaan pelabelan

Kami mengumpulkan sampel gambar dari lini pengemasan menggunakan AWS Panorama Appliance. Skrip untuk memproses gambar dan menyimpannya dikemas sebagai aplikasi dan diterapkan di AWS Panorama. Aplikasi mengumpulkan bingkai video dari kamera lokal yang dipasang di dekat zona pengemasan dan menyimpannya dengan interval 60 detik ke Amazon S3 keranjang; ini mencegah pengambilan gambar serupa dalam urutan video yang berjarak beberapa detik. Kami juga menutupi wilayah yang berdekatan pada gambar yang tidak relevan untuk kasus penggunaan.

Kami memberi label nampan ayam dengan menggunakan kotak pembatas Amazon SageMaker Ground Truth's pekerjaan pelabelan streaming. Kami juga menyiapkan pemberitahuan Peristiwa Amazon S3 yang diterbitkan peristiwa yang dibuat objek ke Layanan Pemberitahuan Sederhana Amazon (SNS) topik, yang bertindak sebagai sumber input untuk tugas pelabelan. Saat skrip aplikasi AWS Panorama menyimpan gambar ke bucket S3, pemberitahuan peristiwa dipublikasikan ke topik SNS, yang kemudian mengirimkan gambar ini ke tugas pelabelan. Saat anotator memberi label pada setiap gambar yang masuk, Ground Truth menyimpan label ke dalam file manifes, yang berisi jalur S3 gambar serta koordinat kotak pembatas baki ayam.

Kami melakukan beberapa augmentasi data (misalnya: noise acak, kontras dan kecerahan acak, pengacakan saluran) pada gambar berlabel untuk membuat model tangguh terhadap variasi dalam kehidupan nyata. Gambar asli dan tambahan digabungkan untuk membentuk kumpulan data terpadu.

Pelatihan Model:

Setelah pekerjaan pelabelan selesai, kami memicu secara manual AWS Lambda fungsi. Fungsi Lambda ini menggabungkan gambar dan labelnya yang sesuai dari manifes keluaran menjadi file berkas LST. File pelatihan dan pengujian kami memiliki gambar yang dikumpulkan dari jalur pengemasan yang berbeda untuk mencegah kebocoran data dalam evaluasi. Fungsi Lambda kemudian memicu tugas pelatihan Amazon SageMaker.

Kami menggunakan Mode Skrip SageMaker, yang memungkinkan Anda membawa algoritme pelatihan Anda sendiri dan melatih model secara langsung sambil tetap berada dalam batasan ramah pengguna Amazon SageMaker. Kami melatih model seperti SSD, Yolo-v3 (untuk latensi inferensi real-time) dengan berbagai kombinasi jaringan backbone dari Kebun Binatang Model GluonCV untuk deteksi objek dalam mode skrip. Neural network memiliki kecenderungan untuk menyesuaikan data pelatihan, yang menyebabkan hasil out-of-sample yang buruk. GluonCV menyediakan normalisasi gambar dan augmentasi gambar, seperti pembalikan dan pemotongan gambar secara acak, untuk membantu mengurangi overfitting selama pelatihan. Itu kode pelatihan model dikemas dan menggunakan gambar Docker di AWS Elastic Container Registry kami. Tugas pelatihan menggunakan folder gambar S3 dan jalur file LST sebagai input dan menyimpan artefak model terbaik (.params dan .json) ke S3 setelah selesai.

Pipa Evaluasi Model

Pipa Evaluasi Model

Model 2 teratas berdasarkan set pengujian kami adalah SSD-resnet50 dan Yolov3-darketnet53, dengan skor mAP masing-masing 0.91. Kami juga melakukan pengujian dunia nyata dengan menerapkan aplikasi inferensi pada perangkat AWS Panorama bersama dengan model yang dilatih. Skrip inferensi menyimpan prediksi dan bingkai video ke bucket Amazon S3. Kami membuat tugas SageMaker Ground Truth lainnya untuk menganotasi kebenaran dasar dan kemudian melakukan evaluasi model kuantitatif tambahan. Kebenaran dasar dan prediksi label kotak pembatas pada gambar disimpan di S3 untuk evaluasi kualitatif. Model mampu menggeneralisasi data dunia nyata dan menghasilkan kinerja yang konsisten serupa dengan yang ada di set pengujian kami.

Anda dapat menemukan contoh lengkap dari ujung ke ujung untuk membuat tugas pelatihan khusus, melatih model deteksi objek canggih, menerapkan Pengoptimalan Hyperparameter (HPO), dan penerapan model di Amazon SageMaker di Repo GitHub AWS Labs.

Menyebarkan aplikasi penghitung baki daging

Arsitektur Produksi

Arsitektur Produksi

Sebelum penerapan, kami mengemas semua aset kami – model, skrip inferensi, kamera, dan konfigurasi variabel global ke dalam satu wadah seperti yang disebutkan di posting blog ini. Pipeline continuous integration and continuous deployment (CI/CD) kami memperbarui setiap perubahan dalam skrip inferensi sebagai versi aplikasi baru. Setelah versi aplikasi baru diterbitkan, kami menerapkannya secara terprogram menggunakan SDK boto3 dengan Python.

Setelah penerapan aplikasi, AWS Panorama terlebih dahulu membuat tugas Kompilasi AWS SageMaker Neo untuk mengompilasi model untuk perangkat AWS Panorama. Skrip aplikasi inferensi mengimpor model terkompilasi pada perangkat dan melakukan deteksi baki ayam di setiap bingkai. Selain SageMaker Neo-Compilation, kami mengaktifkan kuantisasi pasca-pelatihan dengan menambahkan a os.environ['TVM_TENSORRT_USE_FP16'] = '1' bendera dalam skrip. Hal ini mengurangi ukuran bobot model dari float 32 menjadi float 16, mengurangi setengah ukuran model dan meningkatkan latensi tanpa menurunkan performa. Hasil inferensi ditangkap di Pemantauan SiteWise AWS melalui pesan MQTT dari perangkat AWS Panorama via Inti AWS IoT. Hasilnya kemudian didorong ke Amazon S3 dan divisualisasikan Amazon QuickSight Dasbor. Manajer dan karyawan pabrik dapat langsung melihat dasbor ini untuk memahami throughput setiap lini pengemasan secara real-time.

Kesimpulan

Dengan menggabungkan layanan AWS Cloud seperti Amazon SageMaker, Amazon S3, dan layanan edge seperti AWS Panorama, Tyson Foods Inc., menanamkan kecerdasan buatan untuk mengotomatiskan proses industri intensif manusia seperti penghitungan inventaris di pabrik manufakturnya. Kemampuan inferensi edge real-time memungkinkan Tyson untuk mengidentifikasi kelebihan/kekurangan produksi dan secara dinamis menyesuaikan alur produksinya untuk memaksimalkan efisiensi. Selain itu, dengan memiliki perangkat AWS Panorama di edge, Tyson juga dapat menghemat biaya yang terkait dengan bandwidth jaringan yang mahal untuk mentransfer file video ke cloud dan kini dapat memproses semua aset video/gambar mereka secara lokal di jaringan mereka.

Posting blog ini memberi Anda ikhtisar aplikasi end-end edge dan arsitektur referensi untuk mengembangkan aplikasi CV dengan AWS Panorama. Kami membahas 3 aspek berbeda dalam membangun aplikasi CV edge.

  1. Data: Pengumpulan, pemrosesan, dan pelabelan data menggunakan AWS Panorama dan Amazon SageMaker Ground Truth.
  2. Model: Pelatihan model dan evaluasi menggunakan Amazon SageMaker dan AWS Lambda
  3. Paket Aplikasi: Membundel model terlatih, skrip, dan file konfigurasi untuk AWS Panorama.

Nantikan bagian kedua dari seri ini tentang bagaimana Tyson menggunakan AWS Panorama untuk pemeliharaan prediktif berbasis CV untuk mesin industri.

Klik di sini untuk memulai perjalanan Anda dengan AWS Panorama. Untuk mempelajari lebih lanjut tentang berkolaborasi dengan ML Solutions Lab, lihat Lab Solusi Pembelajaran Mesin Amazon.


Tentang Penulis

Divya Bhargavi adalah seorang ilmuwan data di Lab Solusi Amazon ML di mana dia bekerja dengan pelanggan di berbagai vertikal dan menerapkan pemecahan masalah secara kreatif untuk menghasilkan nilai bagi pelanggan dengan solusi ML/AI yang canggih.

Dilip Subramaniam adalah Pengembang Senior dengan tim Emerging Technologies di Tyson Foods. Dia bersemangat membangun aplikasi terdistribusi berskala besar untuk memecahkan masalah bisnis dan menyederhanakan proses menggunakan pengetahuannya dalam Pengembangan Perangkat Lunak, Pembelajaran Mesin, dan Data Besar.

Sumber: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Stempel Waktu:

Lebih dari Blog Pembelajaran Mesin AWS