본문으로 건너뛰기

순서도 및 DCOLL Template 작성 방법

순서도에서 레시피 실행

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

레시피 불러오기

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

이미지 불러오기

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

결과경로 입력하기

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

레시피 실행

레시피 수정하기

  • 새로운 이미지를 테스트하기 위해서 이미지를 교체합니다

이미지 교체하기

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

다른샘플 실행화면

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

이미지 327x462


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

다른샘플 실행화면

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

이미지 487x467


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

노이즈제거 설정

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

노이즈제거 결과화면

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

모듈 추가화면

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

모듈 연결화면

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

모듈 결과화면

DColl.csv 파일

Dcoll Template 개요

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

Dcoll모듈 위치

Dcoll Template 코드 확인

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

Dcoll모듈 코드이동

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

dcoll모듈 입력

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

중단점 사용법

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

중단점

직접실행창 사용법

직접실행창 사용결과

Dcoll Variable 변경

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

Dcoll Template 종류

  • 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'를 입력합니다

Dcoll Variable 추가

  • 실행이후에 csv파일을 확인하면 추가됨을 알 수 있습니다. inline 처리이후에는 DM(Datas)에서도 확인 가능합니다

기존 레시피 변경

  • "Hole Filling" 모듈 및 파라미터 변경사항을 등록시 기존레시피 버전에 추가하거나 신규로 등록이 가능합니다 기준레시피 등록

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

  • 버전 확인 및 필요 시 첨부파일 등록가능 기준레시피 변경

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

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