총 4 건
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 탭에서 처리 시간과 예측 결과를 확인 할 수 있습니다.
2022.10.261. 이미지 이미지 구조와 각 용어의 설명 Pointer : 메모리상에 존재하는 이미지 버퍼의 시작 주소. Width : 이미지의 가로 크기. Height : 이미지의 세로 크기. Padding Data : 4byte 정렬을 맞추기 위한 데이터. Buffer Pitch : 패딩(Padding) 데이터를 포함한 전체 가로 크기. 2. Open eVision 이미지 컨테이너 ElmageBW8 8bit grayscale image, 각 픽셀이 1byte로 구성. ElmageBW16 16bit grarscale image, 각 픽셀이 2byte로 구성. ElmageC24 24bit color image, 각 픽셀이 3byte로 구성. ElmageC24A 32bit color image, 각 픽셀이 4byte로 구성. 단, Alpha 정보는 Open eVision에서 사용되지 않습니다. 3. SetImagePtr 함수 이미지 버퍼를 Open eVision 이미지로 연동하기 위해 아래의 함수를 사용합니다. width : 이미지의 가로 크기(픽셀 단위). height : 이미지의 세로 크기(픽셀 단위). imagePointer : 4byte 정렬된 버퍼의 시작 주소. bitsPerRow : 패딩 데이터가 포함된, 행의 전체 비트 수. 이 값이 0 또는 없다면, 4byte(32bit) 배수에 맞춰 가능한 가장 작은 값이 계산 됨. 4. 주의 사항 기본적으로, Open eVision은 이미지 버퍼가 4byte(32bit) 정렬이 되어있다고 가정합니다. 이는이미지의 모든 행의 시작 주소가 4의 배수임을 의미합니다. 또한, 이미지의 가로 크기가 4의 배수라면 문제가 없지만, 4의 배수가 아니라면 이미지 정렬에 문제가 생깁니다. 이미지가 4의 배수가 아니라면, bitsPerRow 인자에 값을 넣어야 합니다. 이미지 버퍼의 버퍼 피치를 취득하여 bit로 변환하여 인자를 넘깁니다. 즉, 8bit 기준으로 buffer pitch * 8 을 인자로 넘겨야 하며, 이 값은 32배수여야 합니다. 만약, SDK에서 버퍼 피치를 얻을 수 없고, 이미지 정렬에 문제가 생긴다면 카메라의 가로 크기를 4의 배수로 맞춰야 합니다. 5. 코드 예시 4의 배수인 경우 4의 배수가 아닌 경우 ※ 카메라 버퍼 연동의 경우 Euresys Multicam SDK 예시 타 카메라/보드 SDK 사용 시 이미지 버퍼의 피치를 확인할 수 있어야 합니다.
2022.10.26Sentinel Driver 재설치 방법 Open eVision 설치 경로의 Licensing Redistributables 폴더를 오픈 합니다. 기본 설치 경로 : C:\Program Files (x86)\Euresys\Open eVision 2.12 Open eVision 설치 과정에서 "Complete" 로 설치해야 Sentinel Dirver가 설치 됩니다. Sentinel Protection Installer 7.6.0.exe를 우 클릭하여 관리자 권한으로 실행 합니다. 설치가 완료 된 후 PC를 재부팅 하고 Dongle USB를 재연결합니다.
2022.10.261. Emergency License 활성화 방법 Open eVision Library는 1PC 기준 1회당 8일, 총 3회 24일까지 임시 License를 활성화 하여 사용 가능합니다. LicenseManager를 실행합니다. Licenses on PC Platforms를 클릭합니다. 상단의 "Troubleshooting" 버튼을 클릭합니다. 먼저 Remaining emergency activation(s) 로 현재 임시 활성화 가능한 남은 횟수를 확인하여 사용 가능한지 확인합니다. 남은 횟수가 남아 있다면 또는 "Activate Emergency Licese"를 클릭합니다. 해당 창이 발생하면 "예" 버튼을 클릭합니다. 성공할 경우 해당 창이 발생합니다. Remaining emergency activation(s) 횟수가 2회로 줄어든 것을 확인 할 수 있습니다.
2022.10.26