ArcGIS Image Server를 사용하여 원격 탐사 영상을 분류하기 위해 통계 또는 머신 러닝 분류 방법을 사용할 수 있습니다. 딥러닝은 모델에 설명된 피처 식별 및 패턴 인식을 위한 비선형 처리의 다중 레이어를 사용하는 머신 러닝 유형입니다. 딥러닝 모델은 객체 감지 및 이미지 구별을 위해 ArcGIS Image Server와 통합될 수 있습니다. ArcGIS Pro에서 분류 학습 샘플 관리자 도구를 사용하여 관심 피처 또는 객체의 학습 샘플을 생성한 다음 딥러닝 객체에 레이블 지정 도구를 사용하여 레이블을 지정하고 딥러닝 프레임워크에서 사용할 수 있는 형식으로 변환합니다. 해당 학습 샘플은 딥러닝 모델 학습 래스터 분석 도구 또는 ArcGIS API for Python을 사용하여 모델을 학습하는 데 사용됩니다. 학습된 모델은 모델 정의 파일(및 선택 사항으로 Python 래스터 함수 스크립트 파일)과 함께 래스터 분석 추론 도구를 실행하는 데 사용되는 딥러닝 패키지(.dlpk) 항목으로 압축되어 공유됩니다. 추론 도구는 특정 피처를 추출하거나 이미지의 픽셀을 분류합니다. .dlpk 항목은 래스터 분석 도구에 대한 입력으로 여러 번 사용할 수 있으므로 모델을 교육한 후 다양한 위치와 시간대에 걸쳐 여러 이미지를 평가할 수 있습니다.
ArcGIS Pro에서 딥러닝 객체에 레이블 지정 도구를 사용하여 학습 샘플을 만들고 ArcGIS REST API에서 딥러닝을 위한 학습 데이터 내보내기 래스터 분석 도구를 사용하거나 ArcGIS API for Python에서 데이터 과학자를 위한 데이터를 준비합니다. | |
딥러닝 모델 학습 래스터 분석 도구를 사용하여 딥러닝을 학습합니다. 또한 ArcGIS REST API를 사용하여 딥러닝 프레임워크로 모델을 학습할 수 있습니다. 모델 정의 파일과 학습된 딥러닝 모델 또는 Python 스크립트로 구성된 결과 딥러닝 패키지(*.dlpk)는 .dlpk 항목으로 포털에 공유됩니다. | |
데이터 과학자는 모델 정의 파일과 학습된 모델 또는 Python 스크립트로 구성된 딥러닝 패키지를 전달하고 ArcGIS Image Server 래스터 분석 환경으로 돌아갑니다. 포털에 .dlpk 항목이 있으면 딥러닝을 사용하여 객체 감지 도구, 딥러닝을 사용하여 픽셀 분류 도구, 딥러닝을 사용하여 객체 분류 도구를 실행하여 결과를 생성할 수 있습니다. |
피처 및 기능
딥러닝 래스터 분석 도구가 있으면 향상된 머신 러닝 분류 기술을 사용할 수 있습니다.
- 이미지 분류 및 객체 감지를 위해 컨볼루션 뉴럴 네트워크를 사용합니다.
- 딥러닝 모델을 사용하여 이미지 픽셀을 분류하거나 비행기, 나무, 차량, 수역, 건물, 유정 패드 등 객체를 감지하거나 분류합니다.
- PyTorch, Keras, TensorFlow를 포함한 외부 딥러닝 모델 프레임워크를 통합합니다.
- 모델 추론 중에 래스터 컬렉션을 처리하여 시간에 따른 변화를 감지하거나 다른 관심 영역의 객체를 감지합니다.
- 추가 분석 또는 워크플로에 사용될 감지된 객체를 표시하는 폴리곤 피처 클래스를 생성합니다.
- 딥러닝 추론 도구는 분산 처리를 위해 CPU를 사용할 수 있거나, 사용 가능한 경우 각 서버 노드에서 강력한 GPU를 사용할 수 있습니다.
- 서버 노드당 여러 GPU를 사용하여 ArcGIS에 미리 정의된 모델 구성인 TensorFlow Object Detection API 및 DeepLab, Keras MaskRCNN, PyTorch fastai Single Shot Detector 등으로 딥러닝 추론 작업을 실행할 수 있습니다.
- 입력 래스터에 이미지 공간 변환을 위한 적절한 맵 공간이 있는 경우 딥러닝을 위한 학습 데이터 내보내기 도구로 학습 이미지 칩을 이미지 공간에 내보낼 수 있습니다.
딥러닝 시작하기
학습 샘플의 생성 및 내보내기는 관련 분야의 이해도가 높은 이미지 분석가가 이미지 분류 워크플로에 대한 강력한 지식을 필요로 하기 때문에 ArcGIS에서 수행됩니다. 딥러닝 모델은 딥러닝 모델 학습 래스터 분석 도구 또는 ArcGIS API for Python arcgis.learn을 사용하여 ArcGIS에서 학습할 수 있습니다. 또는 서드 파티 딥러닝 API를 사용하여 ArcGIS 외부에서 딥러닝 모델을 학습할 수 있습니다. 모델을 학습하면 .dlpk 항목이 ArcGIS Enterprise portal에 추가되어 모델 추론 작업에 사용할 수 있습니다. 래스터 분석 도구를 실행하여 객체를 감지 및 분류하거나 Map Viewer Classic, ArcGIS API for Python, ArcGIS REST API, ArcGIS Pro를 사용하여 픽셀을 분류합니다. 전체 딥러닝 워크플로는 딥러닝 모델 및 ArcGIS 이미지 분류 경험이 있는 분석가가 완료할 수 있습니다.
별도의 딥러닝 설치 응용프로그램도 제공되며 이 응용프로그램을 통해 ArcGIS Image Server 기본 arcgispro-py3 환경에 적절한 딥러닝 프레임워크 API(TensorFlow, Keras, PyTorch, 기타 필요한 모든 Python 라이브러리)를 설치할 수 있습니다. 해당 API는 ArcGIS Image Server에서 딥러닝 작업을 실행하기 위한 필수 구성 요소입니다.
래스터 분석을 위한 ArcGIS Enterprise 구성 및 배포에 대한 도움말은 도움말 문서를 참조하세요. 서버 노드당 여러 GPU를 사용하도록 Raster Analysis 서버를 구성하는 추가 단계를 참고하세요.
- 교육 샘플을 생성하고 내보냅니다.
- ArcGIS Pro에서 딥러닝 객체에 레이블 지정 도구를 사용하여 분류 스키마를 선택하거나 생성합니다.
- 관심 있는 클래스 범주 또는 피처에 대한 교육 사이트 샘플을 생성합니다. 교육 샘플 파일을 저장합니다.
- 딥러닝을 위한 교육 데이터 내보내기 래스터 분석 도구를 실행하여 원본 이미지와 교육 샘플을 딥러닝 교육 데이터로 변환합니다. 원본 이미지는 이미지 서비스일 수 있습니다. 이 도구의 결과물은 결과 이미지 칩, 레이블, 메타데이터 파일이 저장되는 데이터 저장소 문자열입니다. 도구의 추가 결과물은 데이터 과학자가 만들 템플릿 .emd 파일입니다.
- 딥러닝 모델을 교육합니다.
- 위의 1단계에서 생성된 이미지 칩을 사용하여 딥러닝 모델 학습 래스터 분석 도구로 모델을 학습합니다. 또는 사용자가 ArcGIS API for Python arcgis.learn 또는 서드 파티 딥러닝 프레임워크 API를 사용하여 딥러닝 모델을 학습할 수 있습니다.
- 딥러닝 모델 학습 래스터 분석 도구를 사용하여 딥러닝 모델을 학습한 경우 포털에 발행된 딥러닝 모델 패키지 항목이 결과가 됩니다. 딥러닝 모델 패키지(.dlpk)는 다음 단계에서 바로 사용할 수 있습니다.
- 서드 파티 딥러닝 프레임워크 API를 사용하여 모델을 학습한 경우 사용자가 딥러닝 프레임워크의 이름, 모델 구성, 기타 선택적 등록정보, 모델 추론을 위한 사용자 설정 Python 래스터 함수(선택 사항)로 .emd 파일을 업데이트해야 합니다. .emd 파일의 필수 및 선택적 매개변수에 대한 자세한 내용은 아래의 Esri 모델 정의 파일 섹션을 참고하세요.
- Map Viewer Classic, ArcGIS API for Python, ArcGIS REST API 또는 ArcGIS Pro에서 추론 래스터 분석 도구를 실행합니다.
- 딥러닝을 사용하여 객체 감지, 딥러닝을 사용하여 픽셀 분류, 딥러닝을 사용하여 객체 분류 래스터 분석 도구를 사용하여 영상을 처리합니다. 학습된 모델이 사용자 설정 Python 래스터 함수를 민감도 세밀 조정을 위한 신뢰 임계값 또는 패딩과 같은 추가 변수와 통합한 경우 이러한 변수는 사용자 입력을 위해 ArcGIS Pro 또는 Map Viewer Classic 래스터 분석 도구의 대화 상자에 나타납니다. 문자열 또는 숫자와 같은 데이터 유형은 Python 래스터 함수에 지정됩니다.
비고:
추론 로직이 프레임워크 Python API에 빌트인되어 있고 계산에 필요하기 때문에 추론 도구를 실행하려면 Raster Analysis 서비스 머신에 딥러닝 모델 프레임워크를 설치해야 합니다.
- 딥러닝을 사용하여 객체 감지, 딥러닝을 사용하여 픽셀 분류, 딥러닝을 사용하여 객체 분류 래스터 분석 도구를 사용하여 영상을 처리합니다. 학습된 모델이 사용자 설정 Python 래스터 함수를 민감도 세밀 조정을 위한 신뢰 임계값 또는 패딩과 같은 추가 변수와 통합한 경우 이러한 변수는 사용자 입력을 위해 ArcGIS Pro 또는 Map Viewer Classic 래스터 분석 도구의 대화 상자에 나타납니다. 문자열 또는 숫자와 같은 데이터 유형은 Python 래스터 함수에 지정됩니다.
Esri 모델 정의 파일
.emd 파일은 교육된 딥러닝 모델을 설명하는 JSON 파일입니다. 여기에는 추론 도구를 실행하는 데 필요한 모델 정의 매개변수가 포함되어 있으며, 모델을 교육한 데이터 과학자가 수정해야 합니다. 아래 테이블에 설명된 대로 필수 및 선택적 매개변수가 파일에 있습니다.
모델 정의 파일 매개변수 | 설명 |
---|---|
프레임워크 | 모델 교육에 사용된 딥러닝 프레임워크의 이름입니다. 다음과 같은 딥러닝 프레임워크가 지원됩니다.
|
ModelConfiguration | 모델 구성의 이름입니다. 모델 구성은 모델 입력 및 결과, 추론 논리, 모델 입력 및 출력에 대한 가정을 정의합니다. 표준 입력 및 결과 구성과 추론 논리를 정의하는 기존의 오픈 소스 딥러닝 워크플로가 있습니다. ArcGIS는 미리 정의된 다음 구성을 지원합니다. TensorFlow
Keras
미리 정의된 구성 중 하나를 사용한 경우 .emd 파일에 구성의 이름을 입력합니다. 사용자 설정 구성을 사용하여 딥러닝 모델을 학습한 경우에는 .emd 파일 또는 사용자 설정 Python 파일의 입력과 결과를 전체적으로 설명해야 합니다. |
ModelFile | 교육된 딥러닝 모델 파일의 경로입니다. 많은 모델 프레임워크 파일 형식은 프로토콜 버퍼를 기반으로 하므로 교육된 딥러닝 모델은 .pb 파일이지만 다른 파일 형식도 지원됩니다. |
ModelType | 모델 유형입니다. 다음 중 하나의 유형일 수 있습니다.
|
InferenceFunction (선택) | 추론 함수의 경로입니다. 추론 함수는 교육된 모델 데이터 파일을 파악하고 추론 논리를 제공합니다. ArcGIS 딥러닝 래스터 분석 도구에서 지원되는 6가지의 추론 함수가 있습니다.
|
ImageHeight (선택) | 분류 또는 처리 중인 이미지의 행 개수입니다. |
ImageWidth (선택) | 분류 또는 처리 중인 이미지의 열 개수입니다. |
ExtractBands (선택) | 입력 이미지에서 추출할 밴드 색인 또는 밴드 이름입니다. |
클래스 (선택) | 결과 클래스 범주 또는 객체에 대한 정보입니다. |
다음은 표준 모델 구성을 사용하는 모델 정의 파일(.emd)의 예시입니다.
{
"Framework": "TensorFlow",
"ModelConfiguration": "ObjectDetectionAPI",
"ModelFile":"tree_detection.pb",
"ModelType":"ObjectionDetection",
"ImageHeight":850,
"ImageWidth":850,
"ExtractBands":[0,1,2],
"Classes" : [
{
"Value": 0,
"Name": "Tree",
"Color": [0, 255, 0]
}
]
}
딥러닝 패키지(.dlpk) 항목
딥러닝 래스터 분석 도구는 입력으로 딥러닝 모델 패키지(.dlpk)가 필요합니다. 딥러닝 모델 패키지는 Esri 모델 정의 JSON 파일(.emd), 딥러닝 이진 모델 파일, 사용할 Python 래스터 함수(선택 사항)로 구성됩니다.
ArcGIS Pro에서 직접 딥러닝 패키지를 공유할 수 있습니다. 또는 모든 컴포넌트가 준비되면 파일을 .zip 파일로 압축하고 .zip 파일을 .dlpk 항목으로 포털에 업로드할 수 있습니다. 자세한 내용은 항목으로 파일 추가를 참조하세요. 또한 항목을 추가할 때 .dlpk 항목 유형이 자동으로 감지되도록 .zip 파일 확장자를 .dlpk로 변경할 수 있습니다.
비고:
딥러닝 모델 패키지에 포함된 모든 파일은 루트 폴더 수준에 압축해야 합니다.