TensorFlow Lite 객체 감지 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

TensorFlow Lite 객체 감지

TensorFlow Lite 객체 감지 구성 요소(aws.greengrass.TensorFlowLiteObjectDetection)에는 TensorFlow Lite를 사용하여 객체 감지 추론을 수행하기 위한 샘플 추론 코드와 사전 훈련된 샘플 Single Shot Detection(SSD) MobileNet 1.0 모델이 포함되어 있습니다. 이 구성 요소는 TensorFlow Lite 객체 감지 모델 저장소 변형과 TensorFlow Lite 런타임 구성 요소를 종속성으로 사용하여 TensorFlow Lite와 샘플 모델을 다운로드합니다.

사용자 지정 훈련된 TensorFlow Lite 모델과 함께 이 추론 구성 요소를 사용하려면 종속 모델 저장소 구성 요소의 사용자 지정 버전을 생성하면 됩니다. 자체 사용자 지정 추론 코드를 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 추론 구성 요소를 생성합니다.

버전

이 구성 요소에는 다음과 같은 버전이 있습니다.

  • 2.1.x

유형

구성 요소는 일반 구성 요소(aws.greengrass.generic)입니다. Greengrass nucleus는 구성 요소의 수명 주기 스크립트를 실행합니다.

자세한 내용은 구성 요소 유형 단원을 참조하십시오.

운영 체제

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.

  • Linux

  • Windows

요구 사항

이 코드 조각에는 다음과 같은 요구 사항이 있습니다.

  • Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 GNU C 라이브러리(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.

  • Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.

    • 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

      pip3 install --upgrade numpy
    • 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.

      레거시 카메라 스택을 활성화하려면
      1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

        sudo raspi-config
      2. 인터페이스 옵션을 선택합니다.

      3. 레거시 카메라를 선택하여 레거시 카메라 스택을 활성화합니다.

      4. Raspberry Pi를 재부팅합니다.

의존성

구성 요소를 배포하면 AWS IoT Greengrass에서 해당 종속성의 호환 버전도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 단원에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. AWS IoT Greengrass 콘솔에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 종속성 목록을 찾습니다.

2.1.11 and 2.1.12

다음 표에는 이 구성 요소의 버전 2.1.11 및 2.1.12에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.13.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.10

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.12.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.9

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.11.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.8

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.10.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.7

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.9.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.6

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.8.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.5

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.7.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.4

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.6.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.3

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.5.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.2

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.4.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.1

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.3.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드
2.1.0

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.

종속성 호환 버전 종속성 유형
Greengrass nucleus >=2.0.0 <2.2.0 소프트
TensorFlow Lite 이미지 분류 모델 저장소 >=2.1.0 <2.2.0 하드
TensorFlow Lite >=2.5.0 <2.6.0 하드

구성

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

accessControl

(선택 사항) 구성 요소가 기본 알림 주제에 메시지를 게시할 수 있도록 허용하는 권한 부여 정책이 있는 객체입니다.

기본값:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteObjectDetection:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/object-detection.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/object-detection" ] } } }
PublishResultsOnTopic

(선택 사항) 추론 결과를 게시하려는 주제입니다. 이 값을 수정하는 경우에는 사용자 지정 주제 이름과 일치하도록 accessControl 파라미터의 resources 값도 수정해야 합니다.

기본값: ml/tflite/object-detection

Accelerator

사용하려는 액셀러레이터입니다. 지원되는 값은 cpugpu입니다.

종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 사용자 지정 모델 구성 요소를 생성하여 퍼블릭 모델 구성 요소를 재정의합니다.

기본값: cpu

ImageDirectory

(선택 사항) 추론 구성 요소가 이미지를 읽는 디바이스의 폴더 경로입니다. 이 값은 읽기/쓰기 액세스 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.

기본값: /greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/

참고

UseCamera 값을 true로 설정하는 경우 이 구성 파라미터는 무시됩니다.

ImageName

(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 ImageDirectory에 지정된 폴더에서 이미지를 찾습니다. 기본적으로 구성 요소는 기본 이미지 디렉터리의 샘플 이미지를 사용합니다. AWS IoT Greengrass는 jpeg, jpg, png, npy 이미지 형식을 지원합니다.

기본값: objects.jpg

참고

UseCamera 값을 true로 설정하는 경우 이 구성 파라미터는 무시됩니다.

InferenceInterval

(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.

기본값: 3600

ModelResourceKey

(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.

기본값:

{ "model": "TensorFlowLite-SSD" }
UseCamera

(선택 사항) Greengrass 코어 디바이스에 연결된 카메라의 이미지를 사용할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 truefalse입니다.

이 값을 true로 설정하면 샘플 추론 코드가 디바이스의 카메라에 액세스하여 캡처된 이미지에서 로컬로 추론을 실행합니다. ImageNameImageDirectory 파라미터의 값은 무시됩니다. 이 구성 요소를 실행하는 사용자에게 카메라가 촬영한 이미지를 저장하는 위치에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.

기본값: false

참고

이 구성 요소의 레시피를 보면 기본 구성에는 UseCamera 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 구성 병합 업데이트에서 이 파라미터의 값을 수정할 수 있습니다.

UseCameratrue로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 구성 요소 구성 업데이트 섹션을 참조하세요.

참고

이 구성 요소의 레시피를 보면 기본 구성에는 UseCamera 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 구성 병합 업데이트에서 이 파라미터의 값을 수정할 수 있습니다.

UseCameratrue로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 구성 요소 구성 업데이트 섹션을 참조하세요.

로컬 로그 파일

이 구성 요소는 다음 로그 파일을 사용합니다.

Linux
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log
이 구성 요소의 로그를 보려면
  • 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. /greengrass/v2 또는 C:\greengrass\v2를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log -Tail 10 -Wait

Changelog

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

버전

변경

2.1.12

Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.

2.1.11

Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다.

2.1.10

Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다.

2.1.9

Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다.

2.1.8

Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다.

2.1.7

Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다.

2.1.6

Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.

2.1.5

Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.

2.1.4

Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.

2.1.3

Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.

2.1.2

Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.

2.1.1

버그 수정 및 개선 사항
  • 샘플 TensorFlow Lite 객체 감지 추론 결과에서 잘못된 경계 상자가 발생하는 이미지 크기 조정 문제를 해결합니다.

2.1.0

초기 버전