화인스텍 로고

지식정보

제품사용 매뉴얼

EURESYS_LIBRARY_Deep Learning Studio 사용 방법

2022-10-26

1. 기초 용어 설명

 

기초 용어

 

ROI(Region Of Interest)

이미지에서 학습할 영역을 표시하는 기능입니다.

ROI로 지정하여 학습할 경우, 검사 이미지도 ROI 크기와 동일해야 합니다.

 

Mask

이미지에서 학습에 사용하지 않는 영역을 표시하는 기능입니다.

 

Labeling

이미지에서 검출하고 싶은 부분을 표시하는 기능입니다.

 

데이터 세트(Dataset)

Train: 학습에 사용되는 훈련용 이미지

Validation: 학습 중 모델의 검증에 사용되는 이미지(과적합 방지)

Test: 학습 후 모델의 성능을 평가하기 위해서만 사용되는 이미지

 

데이터 증강(Data augmentation)

원래 데이터 집합의 이미지에 랜덤 변환을 생성하여, 훈련 데이터 세트에 없는 기하학적, 밝기, 노이즈 차이에 대해 강인(robust)하게 만듭니다.

 

과적합

모델이 학습 데이터를 과하게 학습하여, 학습 데이터 내에서는 분류를 잘 하지만 새로운 데이터 내에서는 성능이 떨어지는 상황을 의미 합니다.

학습 이미지 수가 부족하여 iteration을 과하게 높일 경우 발생할 수 있습니다.

반복(iteration)

Training dataset의 모든 이미지를 한 번 진행하는 것을 의미합니다.

기본 값은 50이며, 반복 횟수가 많을수록 더 좋은 결과를 얻을 수 있으나 과적합(overfitting)에 주의해야 합니다.

 

Patch Size

Neural network에서 처리하는 패치의 크기입니다.

학습하는 데이터의 양을 늘리기 위해 한 장의 이미지를 조각 내는데, 이 조각의 단위를 패치(patch)라고 합니다.

Batch Size

학습에 사용되는 이미지의 묶음 단위를 의미합니다.

배치 크기가 크면 GPU에서 단일 반복 처리 속도가 증가하지만 더 많은 메모리가 필요합니다.

기본적으로 배치 크기는 사용 가능한 메모리에 대해 최적으로 결정됩니다.

AUC-ROC Curve

ROC(Receiver Operating Characteristic): 분류 모델의 성능을 보여주는 그래프

AUC(Area Under the Curve): ROC 곡선 아래의 영역을 의미하며, 이 값이 높다는 것은 클래스를 구별하는 모델의 성능이 훌륭하다는 것을 의미

TPR(True Positive Rate): 맞게 예측한 비율

FPR(False Positive Rate): 잘못 예측한 비율

AUC-ROC 해석 방법

ROC Curve가 좌상단에 가까워질수록 그룹을 더 잘 구별할 수 있는 모델이라고 해석할 수 있습니다.

 

2. UI 설명

 

UI 설명 - 프로젝트 선택 화면

Deep Learning Studio를 실행하면 프로젝트 파일을 불러오는 창이 표시됩니다.

기준 프로젝트 파일의 불러오려면 "Open" 버튼을 클릭합니다.

신규 프로젝트를 생성하려면 "New" 버튼을 클릭합니다.

"Open" 버튼을 클릭하면 오른쪽 그림과 같이 프로젝트 파일 선택 화면이 표시됩니다.

불러올 프로젝트 파일을 선택합니다.

"New" 버튼을 클릭하면 오른쪽 그림과 같이 프로젝트 생성 화면이 표시됩니다.

애플리케이션에 적합한 알고리즘을 선택하여 프로젝트를 생성합니다.

UI 설명 - Dataset and annotations

라벨 및 라벨에 따른 이미지를 관리하는 탭입니다.

해당 탭에서 ROI, Masking , Segmentation, Object 설정을 수행합니다.

UI 설명 - Dataset split

데이터 세트의 이미지를 비율에 따라 Training / Validation / Test로 나눕니다

다수의 Split을 생성하면 Tools 탭에서 특정 Split을 선택하여 학습할 수 있습니다.

UI 설명 - Data augmentation

설정한 조건에 따라 데이터를 랜덤하게 증강합니다.

"Add, Remove" 버튼을 클릭하여 다수의 augmentation 조건을 관리할 수 있습니다. 이 목록은 추 후 학습할 때 사용됩니다.

오른쪽 그롬과 같이 Lower / Upper/ Random 버튼을 클릭하여 조건이 적용될 때 예상 이미지를 미리 볼 수 있습니다.

이미지가 실제 발생 가능한 경우로만 설정하는 것이 좋습니다.

UI 설명 - Tools

모델을 학습하기 위한 툴을 관리하는 메뉴입니다.

"Add, Import, Export, Remove" 버튼을 클릭하여 생성, 제거, 불러오기, 내보내기가 가능합니다.

Dataset split 항목에서 이전 단계에서 생성된 split 항목을 선택할 수 있습니다.

Data augmentation 항목에서, 이전단계에서 생성한 augumentation 항목을 선택할 수 있습니다.

"Train" 버튼을 클릭하여 학습을 진행합니다. 다수의 Toold을 추가하여 순차적 학습이 가능합니다.

UI 설명 - Validation and results

학습된 모델을 평가하는 메뉴입니다.

알고리즘에 따라 표시되는 화면이 다릅니다.

UI 설명 - Inference tests

학습된 모델을 선택하고 검사할 이미지를 불러와 테스트하는 메뉴 입니다.

알고리즘에 따라 표시되는 화면이 다릅니다.

3. NVIDIA GPU 환경 설정

 

지원되는 GPU 환경

Open eVision Deep Learing은 NVDIA GPU만 지원합니다.

지원되는 GPU

geForce GTX 900 series, GTX 1000 series, Titan serires, RTX 2000 series

Quadro M series, P series, RTX series

Telsa K40, K80, M series, P series, V100, T4

NVIDIA CUDA 리소스를 다운로드 합니다.

NVIDIA CUDA® Toolkit version v11.1

NVIDIA CUDA® Deep Neural Network library (cuDNN) v8.1

 

지원되는 GPU 환경 설정 절차

NVIDIA CUDA® Toolkit v11.1을 기본 경로로 설치합니다.

기본 경로: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1

 

다운로드한 NVIDIA CUDA® Deep Neural Network library (cuDNN) v8.1의 압축을 해제합니다.

 

압축 해제 후 각 폴더(bin, include, lib)의 파일을 아래 경로에 복사합니다.

bin\cudnn64_11.dll > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin

include\cudnn.h > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include

lib\x64\cudnn.lib > C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\lib\x64

 

Deep Learning Studio 실행 후 프로그램 상단에 아래와 같이 GPU가 표시되는지 확인합니다.

4. EasyClassify

 

EasyClassify

"New" 버튼을 클릭하여 EasyClassify 프로젝트를 생성합니다.

프로젝트의 이름과 경로를 선택 한 후 "OK" 버튼을 클릭합니다.

EasyClassify - Dataset and annotations

"Add label" 버튼을 클릭하여 라벨을 추가합니다

"라벨 별로 가중치 (Weight)를 설정할 수 있으며, 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다.

"Add Images" 버튼을 클릭하여 이미지를 추가하고, 이미지에 라벨을 지정할 수 있습니다.

EasyClassify - Dataset Split

"New" 버튼을 dataset split 항목을 생성합니다.

이름과 Training / Validation / Test 의 비율을 설정하고 "OK" 버튼을 클릭합니다.

EasyClassify - Data augmentation

"Add" 버튼을 클릭하여 Augmentation 항목을 추가 합니다.

예상 가능한 이미지 조건을 설정합니다.

EasyClassify - Tools - Classifier properties1

"Add" 버튼을 클릭하여 Tools 항목을 추가합니다.

Capacity: 학습할 수 있는 정보의 양을 의미합니다.

Small: 메모리가 훨씬 작고 추론 속도가 빠릅니다.

Large: 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다.

Use pretrained model

사전 훈련된 모델을 사용하면 적은 데이터 세트로 정확도를 높일 수 있습니다.

Compute the heatmap

예측에 가장 많이 기여한 이미지의 픽셀을 나타냅니다. 활성화 시 분류 시간이 약간 증가합니다.

EasyClassify - Tools - Classifier properties2

Width, Height

속도를 위해 이미지에서 분류할 내용이 사라지지 않는 가장 작은 해상도를 사용하는 것이 좋습니다.

최소 해상도는 128x128이며, 분류기는 256x256 ~ 512x512 사이의 해상도에 최적화되어 있습니다.

 

Image type

색상이 중요하지 않은 경우 흑백 이미지를 사용합니다. 흑백 이미지를 사용하면 훈련 및 분류에 약간 더 빠릅니다.

 

Enable histogram equalization

모든 이미지의 히스토그램이 정규화됩니다.

 

Enable automatic image reformat

이미지의 크기를 자동으로 조정하고, 위에서 정의한 분류 기준 해상도와 이미지 유형으로 변환합니다.

EasyClassify - Tools - Dataset split

이전 단계에서 설정한 Dataset split 항목을 선택합니다.

또는 "New random Split" 버튼을 클릭하여 새로 생성합니다.

EasyClassify - Tools - Training settings

 

Number of iterations

기본 값은 50이며, 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다.

 

Batch size

학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다.

 

Data augmentation

이전 단계에서 설정한 Data augmentation 항목을 선택합니다.

 

Deterministic training

해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 있습니다.

EasyClassify - Validation and results

Tool

이전 단계에서 학습한 분류기를 선택합니다.

Metrics

가중치 오류 및 정확도와 True labels에 표시된 이미지를 확인 할 수 있습니다.

EasyClassify - Inference tests

"Add Image , Add folder" 버튼을 클릭하여 이미지를 추가합니다.

Tool

이전 단계에서 학습한 분류기를 선택합니다

버튼을 클릭하여 검사를 수행합니다.

Results 탭에서 처리 시간과 예측 결과를 확인 할 수 있습니다.

5. EasySegment

 

EasySegment

"New" 버튼을 클릭하여 EasSegment Supervised 프로젝트를 생성합니다.

프로젝트의 이름과 경로를 설정한 후 "OK"버튼을 클릭합니다.

EasySegment - Dataset and Annotations

"Add label" 버튼을 클릭하여 라벨을 추가합니다.

Background는 OK를 , Defect는 결함이 있는 라벨을 의미합니다.

라벨 별로 가중치 (Weight)를 설정할 수 있으며 , 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다.

"Add Images" 버튼을 클릭하여 이미지를 추가하고 , 이미지에 라벨을 지정할 수 있습니다.

EasySegment - Dataset and annotations - Labeling

라벨링이 필요한 이미지를 선택합니다

"Segmentation" 버튼을 클릭하면 툴 바가 표시됩니다

"Segmentation"을 체크하고 라벨을 선택한 다음, 도형을 선택하여 라벨을 지정합니다.

EasySegment - Dataset Split

"New" 버튼을 dataset split 항목을 생성합니다.

이름과 Training / Validation / Test의 비율을 설정하고 "OK" 버튼을 클릭합니다.

EasySegment - Data augmentation

"Add" 버튼을 클릭하여 Augmentation 항목을 추가합니다.

예상 가능한 이미지 조건을 설정합니다.

EasySegment - Tools - Supervised segmenter properties1

"Add" 버튼을 클릭하여 Tools 항목을 추가합니다.

Capacity : 학습할 수 있는 정보의 양을 의미합니다.

Small : 메모리가 훨씬 작고 추론 속도가 빠릅니다.

Large : 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다.

Sampling density

패치 추출 간격을 의미합니다. 1은 겹치는 부분이 없는 것을 의미하고, 2는 절반이 겹치는 것을 의미합니다.

이미지 처리 시간은 sampling density의 제곱 만큼 느려집니다.

EasySegment - Tools - Supervised segmenter properties2

 

Path size

기본적으로 패치 크기는 학습 데이터 세트의 이미지 크기에 따라 자동으로 결정됩니다.

 

Scale

Down-scaling 수치를 입력합니다. 1보다 작은 수치는 처리 속도가 빨라집니다.

EasySegment - Tools - Dataset Split

이전 단계에서 설정한 Dataset split 항목을 선택합니다.

또는 "New random split" 버튼을 클릭하여 새로 생성합니다.

EasySegment - Tools - Training settings

Number of iterations

기본 값은 50이며, 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다.

Batch size

학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다.

Data augmentation

이전 단계에서 설정한 Data augmentation 항목을 선택합니다.

Deterministic training

해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 있습니다.

EasySegment - Validation and results - Pixel based metrics1

 

Tool

이전 단계에서 학습한 분류기를 선택합니다.

Weighted error

가중 오차는 각 라벨에 대한 오차의 가중 평균을 의미하며, 딥 러닝 네트워크를 최적화하는데 사용되는 지표입니다.

Classification threshold

분류 임계값을 조정하여 이미지에서 감지된 결함 객체(defective blob)를 필터링할 수 있습니다.

EasySegment - Validation and results - Pixel based metrics2

Weighted intersection over Union(IoU)

실제 불량 영역을 모델이 얼마나 정확하게 검출하고 있는지 확인하는데 사용되는 지표입니다.

Weighted pixel accuracy

해당 라벨에 대해 올바르게 예측된 픽셀 수와 해당 라벨에 대한 정답 픽셀 수 간의 비율을 의미합니다.

EasySegment - Validation and results - Blob metrics

Recall

실제 값이 불량(positive)인 것들 중, 예측 값이 불량(positive)인 것들의 비율을 의미합니다.

Precision

예측 값이 불량(positive)인 것들 중, 실제 값이 불량(positive)인 것들의 비율을 의미합니다.

F1-Score

Recall과 Precision의 조화 평균(harmonic mean)으로 계산되며 공식은 다음과 같습니다.

EasySegment - Validation and results - Image metrics

 

Image detection accuracy

이미지 검출의 정확도를 의미합니다.

 

Foreground(결함 있는, Positive) image detection rate

결함이 있는 이미지에서 결함이 있는 이미지를 찾은 비율을 의미합니다.

Background(결함 없는, Negative) image detection rate

결함이 없는 이미지에서 결함이 없는 이미지를 찾은 비율을 의미합니다.

EasySegment - Inference test

"Add Image , Add folder" 버튼을 클릭하여 이미지를 추가합니다.

 

Tool

이전 단계에서 학습한 분류기를 선택합니다.

버튼을 클릭하여 검사를 수행합니다.

Results 탭에서 처리 시간과 예측 결과를 확인할 수 있습니다.

6. EasyLocate

 

EasyLocate

"New" 버튼을 클릭하여 EasyLocate 프로젝트를 생성합니다.

프로젝트의 이름과 경로를 설정한 후 "OK" 버튼을 클릭합니다.

EasyLocate - Dataset and annotations

"Add label" 버튼을 클릭하여 라벨을 추가합니다.

Object 별로 라벨을 생성합니다.

라벨 별로 가중치 (Weight)를 설정할 수 있으며 , 특정 라벨의 가중치가 높을 경우 해당 라벨의 검출력을 높입니다.

"Add Image" 버튼을 클릭하여 이미지를 추가하고, 이미지에 라벨을 지정할 수 있습니다.

EasyLocate - Dataset and annotations - Objects

Object 지정이 필요한 이미지를 선택합니다.

Objects 버튼을 클릭하면 툴바가 표시 됩니다.

Object labeling을 체크하고 라벨을 선택한 다음, "Add Objects"를 클릭하여 Object를 지정합니다.

EasyLocate - Dataset split

"New" 버튼을 Dataset split 항목을 생성합니다.

이름과 Training / Validation / Test 비율을 설정하고 "OK" 버튼을 클릭합니다.

EasyLocate - Dataset augmentation

"Add" 버튼을 클릭하여 Augmentation 항목을 추가합니다.

예상 가능한 이미지 조건을 설정합니다.

EasyLocate - Tools - EasyLocate properties

"Add"버튼을 클릭하여 Tools 항목을 추가합니다.

Capacity: 학습할 수 있는 정보의 양을 의미합니다.

Small: 메모리가 훨씬 작고 추론 속도가 빠릅니다.

Large: 복잡한 데이터 세트를 처리할 수 있으며 노이즈가 많은 데이터 세트에도 적합합니다.

 

Width, Height

이미지는 500,000픽셀 미만(약 707x707 pixels)이어야 합니다.

Width, Height는 적어도 128pixles이어야 합니다.

지정된 크기로 자동 조정되며, 크기가 작을수록 빨라집니다.

EasyLocate - Tools - Advanced parameters

Maximum number of object

이미지에서 찾을 객체의 최대 개수를 정의합니다. 개수가 적을수록 처리 속도가 약간 증가할 수 있습니다.

Same label maximum overlap

동일한 라벨에서 최대 겹침 비율을 정의합니다.

Absolute maximum overlap

라벨에 관계 없이 객체 간의 최대 겹침을 정의합니다.

EasyLocate - Tools - Dataset split

이전 단계에서 설정한 Dataset split 항목을 선택합니다.

또는 "New random split" 버튼을 클릭하여 새로 생성합니다.

EasyLocate - Tools - Training settings

 

Number of iterations

기본값은 50이며 , 학습을 위해 필요 시 수치를 증가합니다. 단, 과적합에 주의합니다.

Batch size

학습에 사용되는 이미지의 묶음 단위를 의미합니다. Optimize 사용을 권장합니다.

Data augmentation

이전 단계에서 설정한 Data augmentation 항목을 선택합니다.

Deterministic training

해당 옵션은 결정론적 알고리즘을 사용하기 때문에 학습이 느려질 수 도 있습니다.

EasyLocate - Validation and results - Objects metrics

Average precision(AP)

Detection threshold를 변경하여 얻은 여러 Recall에 대한 Precision의 평균이며, 1에 가까울수록 좋습니다.

Recall

실제 값이 불량(positive)인 것들 중, 예측 값이 불량(positive)인 것들의 비율을 의미합니다.

Precision

예측 값이 불량(positive)인 것들 중, 실제 값이 불량(positive)인 것들의 비율을 의미합니다.

F1-Score

Recall과 Precision의 조화 평균(harmonic mean)으로 계산되며 공식은 다음과 같습니다.

EasyLocate - Inference tests

"Add Image, Add folder" 버튼을 클릭하여 이미지를 추가합니다.

Tool

이전 단계에서 학습한 분류기를 선택합니다.

버튼을 클릭하여 검사를 수행합니다.

Result 탭에서 처리 시간과 예측 결과를 확인 할 수 있습니다.

첨부파일