Automatyka przemysłowa w Tyson z wizją komputerową, AWS Panorama i Amazon SageMaker

Węzeł źródłowy: 1575225

Jest to pierwszy z dwuczęściowej serii blogów o tym, jak Tyson Foods, Inc. wykorzystuje Amazon SageMaker i AWS Panorama do automatyzacji procesów przemysłowych w swoich zakładach pakowania mięsa, wykorzystując zalety aplikacji sztucznej inteligencji na krawędzi. W części pierwszej omawiamy aplikację inwentaryzacyjną dla linii pakujących. W części drugiej omawiamy wizyjne rozwiązanie do wykrywania anomalii na obrzeżach sieci w celu predykcyjnej konserwacji sprzętu przemysłowego.

Jako jeden z największych przetwórców i sprzedawców drobiu, wołowiny i wieprzowiny na świecie, Tyson Foods, Inc., znana jest z wprowadzania innowacyjnych rozwiązań do swoich zakładów produkcyjnych i pakujących. W lutym 2020 Tyson ogłosił swój plan wprowadzenia Computer Vision (CV) do swoich fabryk kurczaków i uruchomiła pilotaż z AWS, aby pionierem w zakresie zarządzania zapasami. Tyson współpracował m.in Laboratorium rozwiązań Amazon ML stworzyć najnowocześniejsze rozwiązanie CV do liczenia tacek z kurczakiem, które zapewnia wgląd w czasie rzeczywistym w poziomy zapasów w opakowaniach. W tym poście przedstawiamy przegląd architektury AWS i kompletny przewodnik po rozwiązaniu, aby zademonstrować kluczowe komponenty potoku liczenia tacek skonfigurowanego w zakładzie Tysona. Skoncentrujemy się na gromadzeniu i etykietowaniu danych, szkoleniu i wdrażaniu modeli CV na brzegu sieci Amazon Sage Maker, Apache MXNet Gluon, Panorama AWS.

Doskonałość operacyjna jest kluczowym priorytetem w Tyson Foods. Tyson stosuje surowe środki zapewnienia jakości (QA) na swoich liniach pakujących, zapewniając, że tylko te zapakowane produkty, które przejdą protokoły kontroli jakości, są wysyłane do klientów. Aby sprostać wymaganiom klientów i wyprzedzić wszelkie problemy produkcyjne, Tyson ściśle monitoruje liczbę tacek z kurczakiem. Jednak obecne ręczne techniki liczenia tacek z kurczakiem, które przejdą kontrolę jakości, nie są dokładne i nie dają jasnego obrazu poziomów nad/poniżej produkcji. Alternatywne strategie, takie jak monitorowanie godzinowej całkowitej masy produkcji na regał, nie zapewniają natychmiastowej informacji zwrotnej dla pracowników zakładu. Przy zdolności przetwarzania kurczaków na poziomie 45,000,000 XNUMX XNUMX sztuk tygodniowo dokładność i wydajność produkcji mają kluczowe znaczenie dla działalności firmy Tyson. CV można skutecznie wykorzystać w takich scenariuszach do dokładnego oszacowania ilości przetwarzanych kurczaków w czasie rzeczywistym, umożliwiając pracownikom identyfikację potencjalnych wąskich gardeł w pakowaniu i liniach produkcyjnych w miarę ich występowania. Umożliwia to wdrożenie działań naprawczych i poprawia efektywność produkcji.

Przesyłanie strumieniowe i przetwarzanie lokalnych strumieni wideo w chmurze dla aplikacji CV wymaga dużej przepustowości sieci i zapewnienia odpowiedniej infrastruktury. Może to być zadanie nieopłacalne. AWS Panorama usuwa te wymagania i umożliwia Tysonowi przetwarzanie strumieni wideo na krawędzi urządzenia AWS Panorama Appliance. Zmniejsza opóźnienia do/z chmury i koszty przepustowości, zapewniając jednocześnie łatwy w obsłudze interfejs do zarządzania urządzeniami i aplikacjami na brzegu sieci.

Wykrywanie obiektów jest jednym z najczęściej używanych algorytmów CV, które mogą lokalizować położenie obiektów na obrazach i filmach. Technologia ta jest obecnie wykorzystywana w różnych rzeczywistych zastosowaniach, takich jak między innymi wykrywanie pieszych w pojazdach autonomicznych, wykrywanie guzów na skanach medycznych, systemy liczenia osób w celu monitorowania ruchu pieszego w przestrzeniach handlowych. W przypadkach użycia zarządzania zapasami, takich jak liczenie tacek z mięsem dla Tysona, kluczowe znaczenie ma również ograniczenie odpadów poprzez utworzenie pętli sprzężenia zwrotnego z procesami produkcyjnymi, oszczędnościami kosztów i terminową dostawą przesyłek do klientów.

W poniższych sekcjach tego wpisu na blogu opisano, w jaki sposób wykorzystujemy filmy transmitowane na żywo z jednego z zakładów Tyson Foods do trenowania modelu wykrywania obiektów za pomocą Amazon SageMaker. Następnie wdrażamy go na krawędzi za pomocą urządzenia AWS Panorama.

Panorama AWS

AWS Panorama to urządzenie do uczenia maszynowego (ML), które umożliwia organizacjom przesyłanie CV do kamer lokalnych w celu lokalnego prognozowania z dużą dokładnością i niskim opóźnieniem. AWS Panorama Appliance to urządzenie sprzętowe, które umożliwia uruchamianie aplikacji wykorzystujących ML do zbierania danych ze strumieni wideo, generowania wideo z nakładkami tekstowymi i graficznymi oraz interakcji z innymi usługami AWS. Urządzenie może równolegle uruchamiać wiele modeli CV dla wielu strumieni wideo i wyświetlać wyniki w czasie rzeczywistym. Przeznaczony jest do użytku w obiektach komercyjnych i przemysłowych.

Urządzenie AWS Panorama Appliance umożliwia uruchamianie niezależnych aplikacji CV na brzegu sieci bez wysyłania obrazów do chmury AWS. Możesz także użyć AWS SDK na AWS Panorama Appliance, aby zintegrować się z innymi usługami AWS i używać ich do śledzenia danych z aplikacji w czasie. Do tworzenia i wdrażania aplikacji służy AWS Panorama Application CLI. CLI to narzędzie wiersza poleceń, które generuje domyślne foldery aplikacji i pliki konfiguracyjne, buduje kontenery za pomocą platformy Docker i przesyła zasoby.

AWS Panorama obsługuje modele zbudowane z Apache MX Net, DarkNet, GluonCV, Keras, ONNX, PyTorch, TensorFlow, TensorFlow Lite. Odnosić się do to wpis na blogu, aby dowiedzieć się więcej o tworzeniu aplikacji w AWS Panorama. Podczas procesu wdrożenia AWS Panorama dba o skompilowanie modelu specyficznego dla platformy brzegowej Kompilacja Amazon SageMaker Neo. Wyniki wnioskowania można kierować do usług AWS, takich jak Amazon S3, Amazon CloudWatch lub integrować z lokalnymi aplikacjami biznesowymi. Dzienniki wdrożenia są przechowywane w Amazon CloudWatch.

Aby śledzić wszelkie zmiany w logice skryptu wnioskowania lub wyuczonym modelu, można utworzyć nową wersję aplikacji. Wersje aplikacji to niezmienne migawki konfiguracji aplikacji. AWS Panorama zapisuje poprzednie wersje Twoich aplikacji, dzięki czemu możesz wycofać aktualizacje, które się nie powiodły, lub uruchamiać różne wersje na różnych urządzeniach.

Aby uzyskać więcej informacji, zapoznaj się z Strona Panoramy AWS. Aby dowiedzieć się więcej o budowaniu przykładowych aplikacji, zobacz Próbki Panoramy AWS.

Podejście

Pracownik zakładu w sposób ciągły napełnia zapakowane tacki z kurczakiem do plastikowych pojemników i układa je w stosy, jak pokazano na poprzednim rysunku. Chcemy mieć możliwość wykrywania i liczenia całkowitej liczby tacek we wszystkich pojemnikach ułożonych pionowo.

Przeszkolony model wykrywania obiektów może przewidywać obwiednie wszystkich tac umieszczonych w koszu w każdej klatce wideo. Można to wykorzystać do pomiaru liczby tac w pojemniku w danej instancji. Wiemy również, że w dowolnym momencie tylko jeden pojemnik jest napełniany zapakowanymi tacami; liczba tacek stale oscyluje od wysokiej (podczas napełniania) do niskiej (gdy nowy pojemnik zasłania widok napełnionego pojemnika).

Mając tę ​​wiedzę, przyjmujemy następującą strategię liczenia całkowitej liczby tacek z kurczakiem:

  1. Utrzymuj dwa różne liczniki – lokalny i globalny. Licznik globalny utrzymuje całkowitą liczbę tac umieszczonych w koszach, a licznik lokalny przechowuje maksymalną liczbę tacek umieszczonych w nowym pojemniku.
  2. Aktualizuj licznik lokalny w miarę umieszczania nowych tac w pojemniku.
  3. Wykryj nowe zdarzenie kosza na następujące sposoby:
    1. Liczba tacek w danej ramce spada do zera. (Lub)
    2. Strumień numerów tac w ostatnim n klatki spadają w sposób ciągły.
  4. Po wykryciu nowego zdarzenia bin dodaj wartość licznika lokalnego do licznika globalnego.
  5. Zresetuj licznik lokalny do zera.

Przetestowaliśmy ten algorytm na kilku godzinach materiału wideo i uzyskaliśmy spójne wyniki.

Szkolenie modelu wykrywania obiektów za pomocą Amazon SageMaker

Tworzenie zestawu danych:

Przechwytywanie nowych obrazów do zadań etykietowania

Przechwytywanie nowych obrazów do zadań etykietowania

Pobraliśmy próbki obrazów z linii pakującej za pomocą AWS Panorama Appliance. Skrypt do przetwarzania obrazów i ich zapisywania został spakowany jako aplikacja i wdrożony na AWS Panorama. Aplikacja zbiera klatki wideo z kamery zainstalowanej w lokalu w pobliżu strefy pakowania i zapisuje je co 60 sekund do Amazon S3 wiaderko; zapobiega to przechwytywaniu podobnych obrazów w sekwencji wideo, które są oddalone od siebie o kilka sekund. Maskujemy również sąsiednie obszary obrazu, które nie są istotne dla przypadku użycia.

Oznaczyliśmy tace z kurczaka za pomocą ramek ograniczających Amazon SageMaker Ground Truth's przesyłanie strumieniowe zadania etykietowania. Skonfigurowaliśmy również publikowane powiadomienie o zdarzeniu Amazon S3 zdarzenia utworzone przez obiekty do Usługa prostego powiadomienia Amazon (SNS), który działa jako źródło danych wejściowych dla zadania etykietowania. Kiedy skrypt aplikacji AWS Panorama zapisuje obraz do zasobnika S3, w temacie SNS publikowane jest powiadomienie o zdarzeniu, które następnie wysyła ten obraz do zadania etykietowania. Ponieważ adnotatorzy oznaczają każdy przychodzący obraz, Ground Truth zapisuje etykiety w pliku manifestu, który zawiera ścieżkę S3 obrazu, a także współrzędne ramek ograniczających tacę z kurczakiem.

Wykonujemy kilka rozszerzeń danych (na przykład: losowy szum, losowy kontrast i jasność, przetasowanie kanałów) na oznaczonych obrazach, aby model był odporny na zmiany w prawdziwym życiu. Oryginalne i rozszerzone obrazy zostały połączone w celu utworzenia jednolitego zestawu danych.

Trening modelowy:

Po zakończeniu zadania etykietowania ręcznie uruchamiamy AWS Lambda funkcjonować. Ta funkcja Lambda łączy obrazy i odpowiadające im etykiety z manifestu wyjściowego w pliku plik LST. Nasze pliki szkoleniowe i testowe zawierały obrazy zebrane z różnych linii pakujących, aby zapobiec wyciekowi danych podczas oceny. Następnie funkcja Lambda uruchamia zadanie szkoleniowe Amazon SageMaker.

Używamy pliki Tryb SageMakera, co pozwala na korzystanie z własnych algorytmów szkoleniowych i bezpośrednie trenowanie modeli, pozostając w przyjaznych dla użytkownika ramach Amazon SageMaker. Szkolimy modele takie jak SSD, Yolo-v3 (dla opóźnienia wnioskowania w czasie rzeczywistym) z różnymi kombinacjami sieci szkieletowych od GluonCV Model Zoo do wykrywania obiektów w trybie skryptowym. Sieci neuronowe mają tendencję do nadmiernego dopasowania danych treningowych, co prowadzi do słabych wyników poza próbą. GluonCV zapewnia normalizację obrazu i ulepszenia obrazu, takie jak losowe odwracanie i przycinanie obrazu, aby pomóc zredukować nadmierne dopasowanie podczas treningu. The modelowy kod szkoleniowy jest konteneryzowany i używa obrazu Dockera w naszym rejestrze elastycznych kontenerów AWS. Zadanie szkoleniowe pobiera folder obrazu S3 i ścieżki plików LST jako dane wejściowe i zapisuje najlepszy artefakt modelu (.parametry i .json) do S3 po zakończeniu.

Potok oceny modelu

Potok oceny modelu

Dwa najlepsze modele oparte na naszym zestawie testowym to SSD-resnet50 i Yolov3-darketnet53, z wynikiem mAP 0.91 każdy. Przeprowadziliśmy również testy w świecie rzeczywistym, wdrażając aplikację do wnioskowania na urządzeniu AWS Panorama wraz z przeszkolonym modelem. Skrypt wnioskowania zapisuje prognozy i klatki wideo w zasobniku Amazon S3. Stworzyliśmy kolejne zadanie SageMaker Ground Truth do opisywania podstawowych faktów, a następnie przeprowadziliśmy dodatkową ilościową ocenę modelu. Podstawowa prawda i przewidywane etykiety ramek ograniczających na obrazach zostały zapisane w S3 do oceny jakościowej. Modele były w stanie uogólniać dane z rzeczywistego świata i zapewniały spójną wydajność podobną do tej w naszym zestawie testowym.

Możesz znaleźć pełne, kompleksowe przykłady tworzenia niestandardowych zadań szkoleniowych, szkolenia najnowocześniejszych modeli wykrywania obiektów, wdrażania optymalizacji hiperparametrowej (HPO) i wdrażania modeli w Amazon SageMaker na stronie Repozytorium GitHub AWS Labs.

Wdrażanie aplikacji do liczenia tacek mięsnych

Architektura produkcji

Architektura produkcji

Przed wdrożeniem pakujemy wszystkie nasze zasoby — model, skrypt wnioskowania, konfigurację kamery i zmiennych globalnych do jednego kontenera, jak wspomniano w ten wpis na blogu. Nasz potok ciągłej integracji i ciągłego wdrażania (CI/CD) aktualizuje wszelkie zmiany w skrypcie wnioskowania jako nową wersję aplikacji. Po opublikowaniu nowej wersji aplikacji wdrażamy ją programowo przy użyciu boto3 SDK w Pythonie.

Po wdrożeniu aplikacji AWS Panorama najpierw tworzy zadanie AWS SageMaker Neo Compilation w celu skompilowania modelu dla urządzenia AWS Panorama. Skrypt aplikacji wnioskowania importuje skompilowany model na urządzenie i przeprowadza wykrywanie tacki z kurczakiem w każdej klatce. Oprócz SageMaker Neo-Compilation, włączyliśmy kwantyzację po treningu, dodając a os.environ['TVM_TENSORRT_USE_FP16'] = '1' flaga w skrypcie. Zmniejsza to wagę modelu z pływaka 32 do pływaka 16, zmniejszając rozmiar modelu o połowę i poprawiając opóźnienie bez pogorszenia wydajności. Wyniki wnioskowania są przechwytywane w Monitor AWS SiteWise poprzez komunikaty MQTT z urządzenia AWS Panorama poprzez Rdzeń AWS IoT. Wyniki są następnie przesyłane do Amazon S3 i wizualizowane w Amazon QuickSight Pulpity nawigacyjne. Kierownicy zakładów i pracownicy mogą bezpośrednio przeglądać te pulpity nawigacyjne, aby zrozumieć przepustowość każdej linii pakującej w czasie rzeczywistym.

Wnioski

Łącząc usługi AWS Cloud, takie jak Amazon SageMaker, Amazon S3 i usługi brzegowe, takie jak AWS Panorama, Tyson Foods Inc. wprowadza sztuczną inteligencję do automatyzacji procesów przemysłowych wymagających dużej liczby ludzi, takich jak liczenie zapasów w swoich zakładach produkcyjnych. Możliwości wnioskowania o krawędzi w czasie rzeczywistym umożliwiają firmie Tyson identyfikowanie nadmiernej/niedostatecznej produkcji i dynamiczne dostosowywanie przepływu produkcji w celu maksymalizacji wydajności. Co więcej, posiadając urządzenie AWS Panorama na krawędzi, Tyson jest w stanie zaoszczędzić na kosztach związanych z kosztowną przepustowością sieci do przesyłania plików wideo do chmury i może teraz przetwarzać wszystkie swoje zasoby wideo/obrazów lokalnie w swojej sieci.

Ten wpis na blogu zawiera przegląd aplikacji typu end-end edge oraz architektury referencyjne do tworzenia aplikacji CV za pomocą AWS Panorama. Omówiliśmy 3 różne aspekty tworzenia brzegowej aplikacji CV.

  1. Dane: Gromadzenie, przetwarzanie i etykietowanie danych przy użyciu AWS Panorama i Amazon SageMaker Ground Truth.
  2. Model: Szkolenie i ocena modeli przy użyciu Amazon SageMaker i AWS Lambda
  3. Pakiet aplikacji: Łączenie przeszkolonego modelu, skryptów i plików konfiguracyjnych dla AWS Panorama.

Oczekujcie na drugą część tej serii o tym, jak Tyson wykorzystuje AWS Panorama do konserwacji predykcyjnej maszyn przemysłowych w oparciu o CV.

Kliknij tutaj aby rozpocząć swoją przygodę z AWS Panorama. Aby dowiedzieć się więcej o współpracy z ML Solutions Lab, zobacz Laboratorium rozwiązań do uczenia maszynowego Amazon Amazon.


O autorach

Divya Bhargawi jest naukowcem zajmującym się danymi w Laboratorium rozwiązań Amazon ML gdzie pracuje z klientami z różnych branż i stosuje kreatywne rozwiązywanie problemów w celu generowania wartości dla klientów dzięki najnowocześniejszym rozwiązaniom ML/AI.

Dilipa Subramaniama jest starszym programistą w zespole nowych technologii w Tyson Foods. Pasjonuje się tworzeniem rozproszonych aplikacji na dużą skalę w celu rozwiązywania problemów biznesowych i upraszczania procesów, wykorzystując swoją wiedzę z zakresu tworzenia oprogramowania, uczenia maszynowego i Big Data.

Źródło: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Znak czasu:

Więcej z Blog dotyczący uczenia maszynowego AWS