Ochrona ludzi przed niebezpiecznymi obszarami poprzez wirtualne granice dzięki wizji komputerowej

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

Ponieważ firmy przyjmują coraz więcej autonomicznych robotów i innego ciężkiego sprzętu w miejscu pracy, musimy zadbać o to, aby sprzęt mógł bezpiecznie działać wokół ludzkich członków zespołu. W tym poście pokażemy, jak zbudować wirtualną granicę za pomocą wizji komputerowej i Obiektyw AWS DeepLens . L WS, kamera wideo obsługująca głębokie uczenie AWS, zaprojektowana dla programistów do nauki uczenia maszynowego (ML). Korzystając z technik uczenia maszynowego przedstawionych w tym poście, możesz budować wirtualne granice dla obszarów o ograniczonym dostępie, które automatycznie wyłączają sprzęt lub emitują sygnał ostrzegawczy, gdy ludzie się zbliżają.

W tym projekcie nauczysz się niestandardowego modelu wykrywania obiektów za pomocą Amazon Sage Maker i wdrożyć model na urządzeniu AWS DeepLens. Wykrywanie obiektów to algorytm ML, który pobiera obraz jako dane wejściowe i identyfikuje obiekty oraz ich lokalizację na obrazie. Oprócz rozwiązań dotyczących wirtualnych granic, możesz zastosować techniki poznane w tym poście, gdy musisz wykryć, gdzie znajdują się określone obiekty na obrazie lub policzyć liczbę wystąpień żądanego obiektu na obrazie, na przykład liczenie przedmiotów w pojemniku lub na półce detalicznej.

Omówienie rozwiązania

Przewodnik obejmuje następujące kroki:

  1. Przygotuj zbiór danych do przesłania do algorytmu ML.
  2. Wytrenuj model za pomocą Amazon SageMaker.
  3. Model testowy z niestandardowymi strefami ograniczeń.
  4. Wdróż rozwiązanie w AWS DeepLens.

Omawiamy również inne rzeczywiste przypadki użycia, w których można zastosować to rozwiązanie.

Poniższy schemat ilustruje architekturę rozwiązania.

Wymagania wstępne

Aby ukończyć tę instrukcję, musisz mieć następujące wymagania wstępne:

Przygotuj zbiór danych do przesłania do algorytmu ML

W tym poście zastosowano algorytm ML zwany modelem wykrywania obiektów, aby zbudować rozwiązanie, które wykrywa, czy dana osoba znajduje się w niestandardowej strefie zamkniętej. Korzystasz z publicznie dostępnych Zbiór danych wykrywania pieszych dostępne w serwisie Kaggle, który zawiera ponad 2,000 zdjęć. Ten zestaw danych zawiera etykiety dla obiektów ludzkich i podobnych do ludzi (takich jak manekiny), dzięki czemu wyszkolony model może dokładniej odróżniać prawdziwych ludzi od kartonowych rekwizytów lub posągów.

Na przykład poniższe obrazy są przykładami wykrytego pracownika budowlanego i tego, czy znajduje się on w niestandardowej strefie ograniczeń (czerwony kontur).

Aby rozpocząć trenowanie modelu, najpierw utwórz wiadro S3 do przechowywania danych treningowych i wyników modelu. W przypadku projektów AWS DeepLens nazwy zasobników S3 muszą zaczynać się od prefiksu deeplens-. Dane te służą do trenowania modelu za pomocą SageMaker, w pełni zarządzanej usługi, która umożliwia szybkie tworzenie, trenowanie i wdrażanie modeli ML.

Wytrenuj model za pomocą Amazon SageMaker

Używasz notatników SageMaker Jupyter jako środowiska programistycznego do trenowania modelu. Jupyter Notebook to aplikacja internetowa typu open source, która umożliwia tworzenie i udostępnianie dokumentów zawierających aktywny kod, równania, wizualizacje i tekst narracyjny. W tym poście zapewniamy Train_Object_Detection_People_DeepLens.ipynb, pełny notatnik do naśladowania.

Aby utworzyć niestandardowy model wykrywania obiektów, należy użyć instancji zadania szkoleniowego obsługującej procesor graficzny (GPU). Procesory graficzne doskonale radzą sobie z równoległymi obliczeniami wymaganymi do uczenia sieci neuronowej. Chociaż sam notebook jest pojedynczą instancją ml.t2.medium, zadanie szkoleniowe w szczególności używa instancji ml.p2.xlarge. Aby uzyskać dostęp do instancji zadania szkoleniowego z obsługą GPU, musisz złożyć wniosek o podwyższenie limitu usług do Centrum pomocy AWS.

Po zwiększeniu limitu wykonaj następujące kroki, aby utworzyć instancję notatnika SageMaker:

  1. W konsoli SageMaker wybierz Instancje notebooków.
  2. Dodaj Utwórz instancję notesu.
  3. W razie zamówieenia projektu Nazwa instancji notatnikawprowadź nazwę instancji notatnika.
  4. W razie zamówieenia projektu Typ instancjiwybierz t2. medium.

Jest to najtańszy typ instancji obsługiwany przez instancje notebooków i wystarczy na ten samouczek.

  1. W razie zamówieenia projektu Rola IAMwybierz Utwórz nową rolę.

Upewnij się, że to AWS Zarządzanie tożsamością i dostępem Rola (IAM) ma dostęp do utworzonego wcześniej zasobnika S3 (prefix deeplens-).

  1. Dodaj Utwórz instancję notesu. Uruchomienie instancji notebooka może zająć kilka minut.
  1. Gdy stan na stronie instancji notesów zmieni się na InService, wybierz Otwórz Jupyter aby uruchomić nowo utworzoną instancję notatnika Jupyter.
  2. Dodaj Prześlij aby przesłać Train_Object_Detection_people_DeepLens.ipynb pobrany wcześniej plik.

  1. Otwórz notatnik i postępuj zgodnie z nim do końca.
  2. Jeśli zostaniesz zapytany o ustawienie jądra, wybierz conda_mxnet_p36.

Notatnik Jupyter zawiera kombinację komórek tekstu i kodu. Aby uruchomić fragment kodu, wybierz komórkę i naciśnij Shift + Enter. Gdy komórka jest uruchomiona, obok niej pojawia się gwiazdka. Gdy komórka jest kompletna, numer wyjściowy i nowa komórka wyjściowa pojawiają się poniżej oryginalnej komórki.

  1. Pobierz zestaw danych z publicznego zasobnika S3 do lokalnej instancji SageMaker i rozpakuj dane. Można to zrobić, postępując zgodnie z kodem w notatniku:
     !aws s3 cp s3://deeplens-public/samples/pedestriansafety/humandetection_data.zip . !rm -rf humandetection/ !unzip humandetection_data.zip -d humandetection 

  2. Przekonwertuj zbiór danych na format (RekordIO), które można wprowadzić do algorytmu SageMaker:
     !python $mxnet_path/tools/im2rec.py --pass-through --pack-label $DATA_PATH/train_mask.lst $DATA_PATH/ !python $mxnet_path/tools/im2rec.py --pass-through --pack-label $DATA_PATH/val_mask.lst $DATA_PATH/ 

  3. Przenieś pliki RecordIO z powrotem do Amazon S3.

Po przygotowaniu wszystkich danych możesz już trenować detektor obiektów.

Istnieje wiele różnych typów algorytmów wykrywania obiektów. W tym poście używasz rozszerzenia Algorytm wykrywania pojedynczego strzału MultiBox (SSD). Algorytm SSD zapewnia dobrą równowagę między szybkością a dokładnością, dzięki czemu idealnie nadaje się do pracy na urządzeniach brzegowych, takich jak AWS DeepLens.

W ramach zadania szkoleniowego masz wiele opcji dla hiperparametrów, które pomagają skonfigurować zachowanie szkoleniowe (takie jak liczba epok, szybkość uczenia się, typ optymalizatora i rozmiar mini-wsadu). Hiperparametry pozwalają dostroić szybkość treningu i dokładność modelu. Aby uzyskać więcej informacji na temat hiperparametrów, zobacz Algorytm wykrywania obiektów.

  1. Skonfiguruj swoje hiperparametry i kanały danych. Rozważ użycie następującej przykładowej definicji hiperparametrów:
     od_model = sagemaker.estimator.Estimator(training_image, role, train_instance_count=1, train_instance_type='ml.p2.xlarge', train_volume_size = 50, train_max_run = 360000, input_mode= 'File', output_path=s3_output_location, sagemaker_session=sess) od_model.set_hyperparameters(base_network='resnet-50', use_pretrained_model=1, num_classes=2, mini_batch_size=32, epochs=100, learning_rate=0.003, lr_scheduler_step='3,6', lr_scheduler_factor=0.1, optimizer='sgd', momentum=0.9, weight_decay=0.0005, overlap_threshold=0.5, nms_threshold=0.45, image_shape=300, num_training_samples=n_train_samples) 

Notebook ma kilka domyślnych hiperparametrów, które zostały wstępnie wybrane. Aby wykryć pieszych, trenujesz model przez 100 epok. Ten etap szkolenia powinien zająć około 2 godzin przy użyciu jednej instancji ml.p2.xlarge. Możesz eksperymentować z różnymi kombinacjami hiperparametrów lub trenować przez więcej epok w celu poprawy wydajności. Aby uzyskać informacje o najnowszych cenach, zobacz Cennik Amazon SageMaker.

  1. Możesz rozpocząć szkolenie za pomocą jednej linii kodu i monitorować dokładność w czasie na konsoli SageMaker:
    od_model.fit(inputs=data_channels, logs=True) 

Aby uzyskać więcej informacji o tym, jak działa szkolenie, zobacz UtwórzSzkolenie. Udostępnianie i pobieranie danych zajmuje trochę czasu, w zależności od rozmiaru danych. Dlatego może upłynąć kilka minut, zanim zaczniesz pobierać dzienniki danych dla zadań szkoleniowych.

Możesz monitorować postęp swojego zadania szkoleniowego za pomocą metryki średniej średniej precyzji (mAP), co pozwala monitorować jakość zdolności modelu do klasyfikowania obiektów i wykrywania prawidłowych ramek ograniczających. Dzienniki danych drukują również mAP na danych walidacyjnych, między innymi, dla każdego przebiegu zbioru danych, jeden raz na jedną epokę. Ta metryka jest wskaźnikiem jakości działania algorytmu przy dokładnym wykrywaniu klasy i dokładnej ramce ograniczającej ją otaczającej.

Po zakończeniu zadania można znaleźć wytrenowane pliki modelu w zasobniku S3 i folderze określonym wcześniej w s3_output_location:

s3_output_location = 's3://{}/{}/output'.format(BUCKET, PREFIX)

W tym poście pokazujemy wyniki dotyczące zestawu walidacyjnego po zakończeniu dziesiątej i setnej epoki. Pod koniec dziesiątej epoki widzimy mAP walidacji wynoszący w przybliżeniu 10, podczas gdy 100. epoka to w przybliżeniu 10.

Aby osiągnąć lepsze wyniki wykrywania, możesz spróbować dostroić hiperparametry, korzystając z funkcji wbudowanej w SageMaker dla automatyczne dostrajanie modelu i trenuj model dla większej liczby epok. Zwykle przerywasz trening, gdy widzisz malejący wzrost dokładności.

Model testowy z niestandardowymi strefami ograniczeń

Przed wdrożeniem wytrenowanego modelu w AWS DeepLens możesz przetestować go w chmurze, używając hostowanego punktu końcowego SageMaker. Punkt końcowy SageMaker to w pełni zarządzana usługa, która umożliwia wyciąganie wniosków w czasie rzeczywistym za pośrednictwem REST API. SageMaker umożliwia szybkie wdrażanie nowych punktów końcowych w celu przetestowania modeli, dzięki czemu nie musisz hostować modelu w lokalnej instancji, która była używana do trenowania modelu. Pozwala to na przewidywanie (lub wnioskowanie) z modelu na obrazach, których algorytm nie widział podczas uczenia.

Nie musisz hostować na tym samym typie instancji, którego używasz do szkolenia. Szkolenie to długotrwałe i wymagające dużej mocy obliczeniowej zadanie, które wymaga innego zestawu wymagań dotyczących mocy obliczeniowej i pamięci, niż hosting zazwyczaj nie. Możesz wybrać dowolny typ instancji, w której chcesz umieścić model. W tym przypadku do trenowania wybraliśmy instancję ml.p3.2xlarge, ale zdecydowaliśmy się hostować model na tańszej instancji procesora ml.m4.xlarge. Poniższy fragment kodu przedstawia nasze wdrożenie w punkcie końcowym.

object_detector = od_model.deploy(initial_instance_count = 1, instance_type = 'ml.m4.xlarge') 

Wykrywanie w niestandardowej strefie z ograniczeniami (region zainteresowania)

Format danych wyjściowych można przedstawić jako [class_index, trust_score, xmin, ymin, xmax, ymax]. Prognozy o niskim poziomie ufności często mają większe szanse na fałszywie dodatni lub fałszywie ujemny wynik, więc prawdopodobnie należy odrzucić prognozy o niskim poziomie ufności. Możesz użyć następującego kodu, aby wykryć, czy obwiednia osoby pokrywa się ze strefą zamkniętą.

def inRestrictedSection(ImShape = None, R1 = None, restricted_region = None, kclass = None, score = None, threshold = None): statement = 'Person Not Detected in Restricted Zone' if (kclass == 1) and (score > threshold): Im1 = np.zeros((ImShape[0],ImShape[1],3), np.int32) cv2.fillPoly(Im1, [R1], 255) Im2 = np.zeros((ImShape[0],ImShape[1],3), np.int32) if restricted_region is None: restricted_region = np.array([[0,ImShape[0]],[ImShape[1],ImShape[0]],[ImShape[1],0], [0,0]], np.int32) cv2.fillPoly(Im2, [restricted_region], 255) Im = Im1 * Im2 if np.sum(np.greater(Im, 0))>0: statement = 'Person Detected in Restricted Zone' else: statement = statement return statement 

Domyślnie cała klatka jest oceniana pod kątem obecności człowieka. Możesz jednak łatwo określić region zainteresowania, w którym obecność osoby jest uważana za obarczoną wysokim ryzykiem. Jeśli chcesz dodać niestandardową strefę ograniczeń, dodaj współrzędne wierzchołków regionu reprezentowanego przez [oś X, oś Y] i utwórz wielokąt. Współrzędne należy wprowadzić zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara. Zobacz poniższy kod:

restricted_region = None #restricted_region = np.array([[0,200],[100,200],[100,0], [10,10]], np.int32) 

Poniższy przykładowy kod przedstawia pieszych zidentyfikowanych w strefie zamkniętej:

file_name = 'humandetection/test_images/t1_image.jpg' img = cv2.imread(file_name) img =cv2.cvtColor(img,cv2.COLOR_BGR2RGB) thresh = 0.2 height = img.shape[0] width = img.shape[1] colors = dict() with open(file_name, 'rb') as image: f = image.read() b = bytearray(f) ne = open('n.txt','wb') ne.write(b) results = object_detector.predict(b, initial_args={'ContentType': 'image/jpeg'}) detections = json.loads(results) object_categories = ['no-person', 'person'] for det in detections['prediction']: (klass, score, x0, y0, x1, y1) = det if score < thresh: continue cls_id = int(klass) prob = score if cls_id not in colors: colors[cls_id] = (random.random(), random.random(), random.random()) xmin = int(x0 * width) ymin = int(y0 * height) xmax = int(x1 * width) ymax = int(y1 * height) R1 = np.array([[xmin,ymin],[xmax,ymin],[xmax,ymax], [xmin,ymax]], np.int32) cv2.polylines(img,[R1],True, (255,255,0), thickness = 5) cv2.polylines(img,[restricted_region],True, (255,0,0), thickness = 5) plt.imshow(img) print(inRestrictedSection(img.shape,R1 = R1, restricted_region= restricted_region, kclass = cls_id, score = prob, threshold=0.2)) 

Poniższe obrazy przedstawiają nasze wyniki.

Wdróż rozwiązanie w AWS DeepLens

Przekonwertuj model do wdrożenia na AWS DeepLens

Wdrażając model SSD wyszkolony przez SageMaker w AWS DeepLens, musisz najpierw uruchomić wdrożyć.py aby przekształcić artefakt modelu w model możliwy do wdrożenia:

!rm -rf incubator-mxnet !git clone -b v1.7.x https://github.com/apache/incubator-mxnet MODEL_PATH = od_model.model_data TARGET_PATH ='s3://'+BUCKET+'/'+PREFIX+'/patched/' !rm -rf tmp && mkdir tmp rm -rf tmp && mkdir tmp !aws s3 cp $MODEL_PATH tmp !tar -xzvf tmp/model.tar.gz -C tmp !mv tmp/model_algo_1-0000.params tmp/ssd_resnet50_300-0000.params !mv tmp/model_algo_1-symbol.json tmp/ssd_resnet50_300-symbol.json !python incubator-mxnet/example/ssd/deploy.py --network resnet50 --data-shape 300 --num-class 2 --prefix tmp/ssd_ !tar -cvzf ./patched_model.tar.gz -C tmp ./deploy_ssd_resnet50_300-0000.params ./deploy_ssd_resnet50_300-symbol.json ./hyperparams.json !aws s3 cp patched_model.tar.gz $TARGET_PATH

Zaimportuj swój model do AWS DeepLens

Aby uruchomić model na urządzeniu AWS DeepLens, musisz utworzyć projekt AWS DeepLens. Zacznij od zaimportowania swojego modelu do AWS DeepLens.

  1. Na konsoli AWS DeepLens, pod Zasobywybierz modele.
  2. Dodaj Importuj model.

  1. W razie zamówieenia projektu Źródło importu, Wybierz Model przeszkolony zewnętrznie.
  2. Wprowadź lokalizację Amazon S3 pliku model połatany który zapisałeś przed uruchomieniem deploy.py w powyższym kroku.
  3. W razie zamówieenia projektu Ramy modeluwybierz Sieć MX.
  4. Dodaj Importuj model.

Utwórz funkcję wnioskowania

Funkcja wnioskowania przekazuje każdą klatkę kamery do modelu, aby uzyskać prognozy i uruchamia dowolną niestandardową logikę biznesową na podstawie wyników wnioskowania. Używasz AWS Lambda aby utworzyć funkcję, którą wdrażasz w AWS DeepLens. Funkcja działa lokalnie na urządzeniu AWS DeepLens.

Najpierw musimy utworzyć funkcję Lambda, aby wdrożyć ją w AWS DeepLens.

  1. Pobierz wnioskowanie, funkcja Lambda.
  2. Na konsoli Lambda wybierz Funkcje.
  3. Dodaj Utwórz funkcję.
  4. Wybierz Autor od zera.
  5. W razie zamówieenia projektu Nazwa funkcji, Wpisz imię.
  6. W razie zamówieenia projektu Czas pracywybierz Python 3.7.
  7. W razie zamówieenia projektu Wybierz lub utwórz rolę wykonawcząwybierz Użyj istniejącej roli.
  8. Dodaj service-role / AWSDeepLensLambdaRole.
  9. Dodaj Utwórz funkcję.

  1. Na stronie szczegółów funkcji w pliku Akcje menu, wybierz Prześlij plik .zip.

  1. Prześlij plik wnioskowanie Lambda pobrany wcześniej plik.
  2. Dodaj Zapisz aby zapisać wprowadzony kod.
  3. Na Akcje menu, wybierz Opublikuj nową wersję.

Opublikowanie funkcji udostępnia ją na konsoli AWS DeepLens, dzięki czemu można ją dodać do własnego projektu.

  1. Wprowadź numer wersji i wybierz Publikować.

Zrozumienie funkcji wnioskowania

Ta sekcja przeprowadzi Cię przez kilka ważnych części funkcji wnioskowania. Najpierw należy zwrócić uwagę na dwa konkretne pliki:

  • etykiety.txt - Zawiera mapowanie danych wyjściowych z sieci neuronowej (liczby całkowite) na czytelne dla człowieka etykiety (ciąg)
  • lambda_funkcja.py - Zawiera kod wywoływanej funkcji, która generuje prognozy dla każdej klatki kamery i odsyła wyniki

W lambda_function.py najpierw ładujesz i optymalizujesz model. W porównaniu do maszyn wirtualnych w chmurze z GPU, AWS DeepLens ma mniejszą moc obliczeniową. AWS DeepLens używa optymalizatora modelu Intel OpenVino do optymalizacji modelu wyszkolonego w SageMaker do działania na jego sprzęcie. Poniższy kod optymalizuje Twój model do lokalnego działania:

client.publish(topic=iot_topic, payload='Optimizing model...') ret, model_path = mo.optimize('deploy_ssd_resnet50_300', INPUT_W, INPUT_H) # Load the model onto the GPU. client.publish(topic=iot_topic, payload='Loading model...') model = awscam.Model(model_path, {'GPU': 1}) 

Następnie uruchamiasz model klatka po klatce na obrazach z kamery. Zobacz poniższy kod:

while True: # Get a frame from the video stream ret, frame = awscam.getLastFrame() if not ret: raise Exception('Failed to get frame from the stream') # Resize frame to the same size as the training set. frame_resize = cv2.resize(frame, (INPUT_H, INPUT_W)) # Run the images through the inference engine and parse the results using # the parser API, note it is possible to get the output of doInference # and do the parsing manually, but since it is a ssd model, # a simple API is provided. parsed_inference_results = model.parseResult(model_type, model.doInference(frame_resize)) 

Na koniec wysyłasz wyniki przewidywania tekstu z powrotem do chmury. Przeglądanie wyników tekstowych w chmurze jest wygodnym sposobem upewnienia się, że model działa poprawnie. Każde urządzenie AWS DeepLens ma automatycznie utworzony dedykowany element iot_topic, aby otrzymywać wyniki wnioskowania. Zobacz poniższy kod:

# Send results to the cloud client.publish(topic=iot_topic, payload=json.dumps(cloud_output)) 

Utwórz niestandardowy projekt AWS DeepLens

Aby utworzyć nowy projekt AWS DeepLens, wykonaj następujące czynności:

  1. Na konsoli AWS DeepLens na Projekty wybierz stronę Utwórz projekt.
  2. W razie zamówieenia projektu Typ projektu, Wybierz Utwórz nowy pusty projekt.
  3. Dodaj Następna.

  1. Nazwij swój projekt yourname-pedestrian-detector-.
  2. Dodaj Dodaj model.
  3. Wybierz właśnie utworzony model.
  4. Dodaj Dodaj funkcję.
  5. Wyszukaj utworzoną wcześniej funkcję Lambda według nazwy.
  6. Dodaj Utwórz projekt.
  7. Na Projekty wybierz projekt, który chcesz wdrożyć.
  8. Wybrałem Wdróż w urządzeniu.
  9. W razie zamówieenia projektu Urządzenie docelowewybierz swoje urządzenie.
  10. Dodaj Review.
  11. Przejrzyj swoje ustawienia i wybierz Rozmieścić.

Wdrożenie może zająć do 10 minut, w zależności od szybkości sieci, z którą połączony jest AWS DeepLens. Po zakończeniu wdrażania na stronie powinien pojawić się zielony baner z komunikatem „Gratulacje, Twój model działa teraz lokalnie w AWS DeepLens!”

Aby zobaczyć wynikowy tekst, przewiń stronę szczegółów urządzenia do pliku Wynik projektu Sekcja. Postępuj zgodnie z instrukcjami w sekcji, aby skopiować temat i przejść do Rdzeń IoT AWS konsola do subskrybowania tematu. Powinieneś zobaczyć wyniki jak na poniższym zrzucie ekranu.

Aby uzyskać szczegółowe instrukcje dotyczące wyświetlania strumienia wideo lub wyjścia tekstowego, zobacz Przeglądanie wyników z AWS DeepLens.

Rzeczywiste przypadki użycia

Teraz, gdy masz już prognozy ze swojego modelu działające w AWS DeepLens, przekształćmy te prognozy w alerty i spostrzeżenia. Oto niektóre najczęstsze zastosowania takiego projektu:

  • Zrozumienie, ile osób w danym dniu weszło do strefy zamkniętej, aby place budowy mogły zidentyfikować miejsca, które wymagają więcej znaków bezpieczeństwa. Można to zrobić, zbierając wyniki i używając ich do utworzenia pulpitu nawigacyjnego za pomocą Amazon QuickSight. Aby uzyskać więcej informacji na temat tworzenia pulpitu nawigacyjnego za pomocą programu QuickSight, zobacz Zbuduj narzędzie do śledzenia pozycji ciała w domu za pomocą AWS DeepLens i GluonCV.
  • Zbieranie danych wyjściowych z AWS DeepLens i konfigurowanie Raspberry Pi tak, aby brzmiało ostrzeżenie, gdy ktoś wchodzi do strefy zamkniętej. Aby uzyskać więcej informacji na temat podłączania urządzenia AWS DeepLens do urządzenia Raspberry Pi, zobacz Tworzenie sortownika śmieci za pomocą AWS DeepLens.

Wnioski

W tym poście dowiedziałeś się, jak wytrenować model wykrywania obiektów i wdrożyć go w AWS DeepLens w celu wykrywania osób wchodzących do stref zamkniętych. Możesz użyć tego samouczka jako odniesienia do trenowania i wdrażania własnych niestandardowych projektów wykrywania obiektów w AWS DeepLens.

Aby uzyskać bardziej szczegółowy przewodnik po tym samouczku i innych samouczkach, przykładach i pomysłach na projekty z AWS DeepLens, zobacz Przepisy AWS DeepLens.


O autorach

Yash Shah jest analitykiem danych w Amazon ML Solutions Lab, gdzie pracuje nad szeregiem zastosowań uczenia maszynowego, od opieki zdrowotnej po produkcję i sprzedaż detaliczną. Ma formalne doświadczenie w zakresie czynników ludzkich i statystyki, a wcześniej był członkiem zespołu Amazon SCOT projektującego produkty, które mają pomagać sprzedawcom 3P w efektywnym zarządzaniu zapasami.

Phu Nguyena jest menedżerem produktu w AWS Panorama. Tworzy produkty, które dają programistom na każdym poziomie umiejętności łatwe i praktyczne wprowadzenie do uczenia maszynowego.

Źródło: https://aws.amazon.com/blogs/machine-learning/protecting-people-through-virtual-boundaries-computer-vision/

Znak czasu:

Więcej z Blog dotyczący uczenia maszynowego AWS