순서도 및 DCOLL Template 작성 방법
순서도에서 레시피 실행
- 실행 방법 및 화면 구성은 Recipe 개발 참고해주세요
- 레시피 개발 메뉴에서 Tutorial_1_1_Recipe를 선택하여 불러옵니다

- 이미지를 바꿔서 실행하고자 하는 경우 공용변수에 있는 gs_semimage1~20를 더블클릭하여 이미지를 선택합니다
- 레퍼런스 이미지의 경우 gs_templateimage1~20 이용합니다

- 결과를 저장할 경로를 수정합니다
- 결과파일의 저장경로는 공용변수의 gs_resultimageurl, gs_resultdataurl에 입력하고 Local PC에 저장됩니다

- 실행 또는 디버그/계속을 눌러서 실행합니다

레시피 수정하기
- 새로운 이미지를 테스트하기 위해서 이미지를 교체합니다

- 실행 또는 디버그/계속 을 눌러서 실행합니다
- IntensityThreshold 모듈 아래 이미지가 사라진것을 확인할 수 있습니다

- 이미지가 전체적으로 밝기가 낮아져서 발생하는 문제로 Intensity Threshold값을 조절하여 해결하거나 해당 모듈 (로직)을 수정하여 해결할 수 있습니다
- 입력값으로 연결된 GaussianLowpassFilter 아래 이미지를 더블클릭하여 이미지 창에서 밝기 값을 확인합니다

- IntensityThreshold 모듈을 선택하여 오른쪽 창에서 Threshold 값을 해당 숫자보다 낮은 80에 맞춰서 적용을 누르고 다시 디버그/계속을 눌러서 테스트합니다

- 패턴이 분할이 되었지만 구멍이 많이 뚫려있는 듯한 결과가 나왔습니다

- 노이즈를 제거하기 위해 GaussianLowpassFilter의 파라미터를 수정합니다

- 노이즈가 사라진것을 확인할 수 있습니다

- 안쪽 구멍을 메우기 위해서 새로운 모듈을 추가합니다
- 왼쪽 하단에 모듈 창에서 "HoleFilling"를 찾아서 드래그 또는 더블클릭하여 순서도 화면에 추가합니다

- IntensityThresholding 모듈의 아래 output를 클릭하여 HoleFilling의 input로 연결하고 HoleFilling의 output를 클릭하여 아래 CustomFunction3에 연결합니다

- 연결을 하고 다시 디버그/계속을 눌러서 테스트하면 메꿔진 것을 확인할 수 있습니다

DColl.csv 파일
Dcoll Template 개요
- 처리된 결과는 기본적으로 Dcoll.csv 이름으로 남고, 이 파일의 결과가 상위서버로 올라가는 구조로 되어 있습니다
- CD variable 또는 SMF Column을 변경할 때 수정하며, 결과확인시에도 사용합니다
- 파일을 생성하는 모듈은 주로 DcollTemplate으로 가장 마지막에 위치합니다

Dcoll Template 코드 확인
- 파일의 코드를 보기 위해서 모듈을 선택하고 (Ctrl+U) 또는 우클릭해서 사용자정의로 이동을 클릭합니다

- 모듈은 주로 결과이미지와 결과데이터를 입력받도록 되어있고 mp번호별로 결과를 처리하거나 defectid를 생성하여 결과를 남길수도 있습니다

- 변수의 값을 디버그 중 직접 실행하여 확인할 수 있습니다
- 먼저 중단점(F9)을 설정하고 디버그/계속을 눌러서 진행합니다

- 해당 중단점에 색이 변하면 resultData를 복사하여 직접실행창에 붙여넣고 엔터를 누르면 결과를 확인 할 수 있습니다



Dcoll Variable 변경
- Variable을 추가할 경우 직접 코드를 변경해야하는 경우가 있습니다
- dcolldata는 리스트로 되어 있고, 첫 줄에 있는 컬럼명을 따라서 값을 입력해주시면 됩니다
- DCOLL Template을 DM(Datas)와 IDBS 2종류가 있습니다

- DM은 SMF를, IDBS는 IDBS라고 TYPE 컬럼에 입력하여 줍니다.
📜 DMDCollTemplate 코드 보기
dcoll_data.append(['ID', 'TYPE', 'NAME', 'VALUE', 'DESCRIPTION'])
dcoll_data.append([defect_id, 'IMG', 'PATH', result_image_file_uri, 'Result Image'])
dcoll_data.append([defect_id, 'SMF', 'DEFECTID', defect_id, 'DefectID'])
#### TODO : Change Following Items
#### MEASURE -> MESURE : Due to Typo in the SMF File.
dcoll_data.append([defect_id, 'SMF', 'MESURE1', float(result_data[0]), 'Measure1'])
dcoll_data.append([defect_id, 'SMF', 'MESURE2', float(result_data[1]), 'Measure2'])
dcoll_data.append([defect_id, 'SMF', 'MESURE3', float(result_data[2]), 'Measure3'])
dcoll_data.append([defect_id, 'SMF', 'MESURE4', float(result_data[3]), 'Measure4'])
dcoll_data.append([defect_id, 'SMF', 'MESURE5', float(result_data[4]), 'Measure5'])
📜 iDBSDCollTemplate 코드 보기
dcollData.append(['ID','TYPE','NAME','VALUE','DESCRIPTION'])
#### image Data
dcollData.append([id, 'IMG', 'PATH', imageFilePath, 'Result Image'])
#### Defect ID
dcollData.append([id, 'IDBS', 'DEFECTID', id, 'DefectID'])
#### iDBS Data
dcollData.append([id, 'IDBS', 'CD1', float(resultData[0]), 'CD1'])
dcollData.append([id, 'IDBS', 'CD2', float(resultData[1]), 'CD2'])
- 기존 코드에서 'MESURE10' 에 '12.00'를 입력합니다

- 실행이후에 csv파일을 확인하면 추가됨을 알 수 있습니다. inline 처리이후에는 DM(Datas)에서도 확인 가능합니다
기존 레시피 변경
-
"Hole Filling" 모듈 및 파라미터 변경사항을 등록시 기존레시피 버전에 추가하거나 신규로 등록이 가능합니다

-
기존에 있던 레시피에 버전을 올리려면 "기존 레시피 버전 추가"를 선택

-
버전 확인 및 필요 시 첨부파일 등록가능

-
이전 버전과 다른점을 확인하고 설명을 추가

-
Inline(운영)에 반영하려면 레시피 기본 설정을 바꿔야 합니다
