기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
튜토리얼: Lite를 사용하여 TensorFlow 카메라의 이미지에 대한 샘플 이미지 분류 추론 수행
이 자습서에서는 TensorFlow Lite 이미지 분류 추론 구성 요소를 사용하여 Greengrass 코어 장치의 로컬 카메라 이미지에 대한 샘플 이미지 분류 추론을 수행하는 방법을 보여줍니다. 이 구성 요소에는 다음과 같은 구성 요소 종속성이 포함됩니다.
-
TensorFlow 라이트 이미지 분류 모델 스토어 컴포넌트
-
TensorFlow 라이트 런타임 컴포넌트
참고
이 가이드에서는 라즈베리 파이
Greengrass 기기에서의 기계 학습에 대한 자세한 내용은 을 참조하십시오. 기계 학습 추론 수행
주제
사전 조건
이 자습서를 완료하려면 먼저 자습서: Lite를 사용하여 TensorFlow 샘플 이미지 분류 추론 수행 완료해야 합니다.
또한 다음 항목이 필요합니다.
-
카메라 인터페이스가 있는 Linux Greengrass 코어 디바이스. 이 가이드에서는 지원되는 다음 장치 중 하나의 카메라 모듈에 액세스합니다.
Greengrass 코어 장치 설정에 대한 자세한 내용은 을 참조하십시오. 자습서: AWS IoT Greengrass V2 시작하기
코어 디바이스는 다음 요구 사항을 충족해야 합니다.
-
Amazon Linux 2 또는 우분투 18.04를 실행하는 Greengrass 코어 디바이스의 경우 GNU C 라이브러리
(glibc) 버전 2.27 이상이 디바이스에 설치되어 있습니다. -
라즈베리 파이와 같은 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
-
라즈베리파이 OS Bullseye를 실행하는 라즈베리파이 디바이스는 다음 요구사항을 충족해야 합니다.
-
NumPy 1.22.4 이상이 디바이스에 설치되었습니다. Raspberry Pi OS Bullseye에는 이전 버전이 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 업그레이드할 수 있습니다. NumPy NumPy
pip3 install --upgrade numpy
-
기기에서 레거시 카메라 스택이 활성화되었습니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되고 호환되지 않는 새로운 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.
레거시 카메라 스택을 활성화하려면
-
다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.
sudo raspi-config
-
인터페이스 옵션을 선택합니다.
-
레거시 카메라를 선택하여 레거시 카메라 스택을 활성화합니다.
-
Raspberry Pi를 재부팅합니다.
-
-
-
-
라즈베리 파이 또는 엔비디아 젯슨 나노 디바이스의 경우 라즈베리 파이 카메라 모듈 V2
- 8메가픽셀, 1080p. 카메라 설정 방법을 알아보려면 Raspberry Pi 설명서의 Connecting the camera 를 참조하십시오.
1단계: 디바이스의 카메라 모듈 구성
이 단계에서는 장치의 카메라 모듈을 설치하고 활성화합니다. 장치에서 다음 명령을 실행합니다.
2단계: 기본 알림 주제 구독 확인
에서 자습서: Lite를 사용하여 TensorFlow 샘플 이미지 분류 추론 수행 AWS IoT MQTT 클라이언트가 해당 주제에 대해 TensorFlow Lite 이미지 분류 구성 요소가 게시한 MQTT 메시지를 감시하도록 AWS IoT 콘솔에서 구성하도록 구성했습니다. ml/tflite/image-classification
AWS IoT콘솔에서 이 구독이 존재하는지 확인하십시오. 그렇지 않은 경우 Greengrass 코어 1단계: 기본 알림 주제 구독 디바이스에 구성 요소를 배포하기 전에 다음 단계에 따라 이 주제를 구독하십시오.
3단계: TensorFlow Lite 이미지 분류 구성 요소 구성을 수정하고 배포합니다.
이 단계에서는 TensorFlow Lite 이미지 분류 구성 요소를 구성하고 코어 장치에 배포합니다.
-
AWS IoT Greengrass콘솔
탐색 메뉴에서 구성 요소를 선택합니다. -
구성 요소 페이지의 퍼블릭 구성 요소 탭에서
aws.greengrass.TensorFlowLiteImageClassification
을(를) 선택합니다. -
aws.greengrass.TensorFlowLiteImageClassification 페이지에서 배포를 선택합니다.
-
배포에 추가에서 다음 중 하나를 선택합니다.
-
이 구성 요소를 대상 디바이스의 기존 배포에 병합하려면 기존 배포에 추가를 선택한 다음 수정하려는 배포를 선택합니다.
-
대상 디바이스에서 새 배포를 생성하려면 새 배포 생성을 선택합니다. 디바이스에 기존 배포가 있는 경우 이 단계를 선택하면 기존 배포가 대체됩니다.
-
-
대상 지정 페이지에서 다음 작업을 수행합니다.
-
배포 정보 아래에서 친숙한 배포 이름을 입력하거나 수정합니다.
-
배포 대상 아래에서 배포 대상을 선택하고 다음을 선택합니다. 기존 배포 수정 시 배포 대상을 변경할 수 없습니다.
-
-
구성 요소 선택 페이지의 공용 구성 요소에서
aws.greengrass.TensorFlowLiteImageClassification
구성 요소가 선택되었는지 확인하고 다음을 선택합니다. -
구성 요소 구성 페이지에서 다음을 수행하십시오.
-
추론 구성 요소를 선택하고 구성 요소 구성을 선택합니다.
-
구성 업데이트에서 병합할 구성 상자에 다음 구성 업데이트를 입력합니다.
{ "InferenceInterval": "60", "UseCamera": "true" }
이 구성 업데이트를 통해 구성 요소는 장치의 카메라 모듈에 액세스하여 카메라로 촬영한 이미지를 추론합니다. 추론 코드는 60초마다 실행됩니다.
-
확인을 선택하고 다음을 선택합니다.
-
-
고급 설정 구성 페이지에서 기본 구성 설정을 유지하고 다음을 선택합니다.
-
검토 페이지에서 [Deploy] 를 선택합니다.
-
deployment.json
파일을 생성하여 TensorFlow Lite 이미지 분류 구성 요소의 배포 구성을 정의합니다. 이 파일은 다음과 같아야 합니다.{ "targetArn":"
targetArn
", "components": { "aws.greengrass.TensorFlowLiteImageClassification": { "componentVersion":2.1.0
, "configurationUpdate": { "InferenceInterval": "60", "UseCamera": "true" } } } }-
targetArn
필드에서
을(를) 다음 형식으로 배포 대상으로 지정할 사물 또는 사물 그룹의 Amazon 리소스 이름(ARN)으로 바꿉니다.targetArn
-
사물:
arn:aws:iot:
region
:account-id
:thing/thingName
-
사물 그룹:
arn:aws:iot:
region
:account-id
:thinggroup/thingGroupName
-
-
이 자습서에서는 구성 요소 버전 2.1.0을 사용합니다.
aws.greengrass.TensorFlowLiteImageClassification
구성 요소 객체에서2.1.0을
다른 버전의 TensorFlow Lite 이미지 분류 구성 요소를 사용하도록 바꾸십시오.
이번 구성 업데이트를 통해 구성 요소는 장치의 카메라 모듈에 액세스하여 카메라로 촬영한 이미지를 추론합니다. 추론 코드는 60초마다 실행됩니다. 다음 값을 바꾸십시오.
-
-
다음 명령을 실행하여 TensorFlow Lite 이미지 분류 구성 요소를 기기에 배포합니다.
aws greengrassv2 create-deployment \ --cli-input-json file://
path/to/
deployment.json
배포를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 다음 단계에서는 구성 요소 로그를 확인하여 배포가 정상적으로 완료되었는지 확인하고 추론 결과를 확인합니다.
4단계: 추론 결과 보기
구성 요소를 배포한 후에는 Greengrass 코어 디바이스의 구성 요소 로그와 콘솔의 MQTT 클라이언트에서 추론 결과를 볼 수 있습니다. AWS IoT AWS IoT 구성 요소가 추론 결과를 게시하는 주제를 구독하려면 을 참조하십시오. 2단계: 기본 알림 주제 구독 확인
주제
-
AWS IoTMQTT 클라이언트 - 추론 구성 요소가 기본 알림 주제에 게시하는 결과를 보려면 다음 단계를 완료하십시오.
-
AWS IoT콘솔
탐색 메뉴에서 Test, MQTT 테스트 클라이언트를 선택합니다. -
구독에서 원하는 항목을 선택합니다.
ml/tflite/image-classification
-
-
구성 요소 로그 - 구성 요소 로그에서 추론 결과를 보려면 Greengrass 코어 장치에서 다음 명령을 실행합니다.
sudo tail -f
/logs/aws.greengrass.TensorFlowLiteImageClassification.log/greengrass/v2
구성 요소 로그나 MQTT 클라이언트에서 추론 결과를 볼 수 없는 경우 배포가 실패했거나 코어 디바이스에 도달하지 못한 것입니다. 이는 코어 기기가 인터넷에 연결되어 있지 않거나 구성 요소를 실행하는 데 필요한 권한이 없는 경우 발생할 수 있습니다. 코어 장치에서 다음 명령을 실행하여 AWS IoT Greengrass Core 소프트웨어 로그 파일을 확인합니다. 이 파일에는 Greengrass 코어 기기 배포 서비스의 로그가 포함되어 있습니다.
sudo tail -f
/logs/greengrass.log
/greengrass/v2
자세한 설명은 머신 러닝 추론 문제 해결 섹션을 참조하세요.
다음 단계
이 자습서에서는 카메라로 촬영한 이미지에 대한 샘플 이미지 분류를 수행하는 사용자 지정 구성 옵션과 함께 TensorFlow Lite 이미지 분류 구성 요소를 사용하는 방법을 보여줍니다.
공용 구성 요소의 구성을 사용자 지정하거나 사용자 지정 기계 학습 구성 요소를 만드는 방법에 대한 자세한 내용은 을 참조하십시오머신 러닝 구성 요소 사용자 지정.