고급 : 큰 이미지에서 작은 결함 감지

현재 최신 버전 (2.6.2)에 대한 매뉴얼을 보고 계십니다. 다른 버전에 액세스하려면 페이지 오른쪽 상단 모서리에 있는 '버전 전환' 버튼을 클릭하세요.

■ 현재 사용하고 있는 제품의 버전이 확실하지 않은 경우에는 언제든지 당사 기술 지원팀에 문의하시기 바랍니다.

결함 크기가 작고 이미지 크기가 큰 경우를 다루기 위해, 이 섹션에서는 Mech-DLK 샘플 프로젝트(노트북 케이스 데이터)를 제공합니다. 사용자는 이를 통해 결함 세그먼테이션 모듈로 모델을 훈련할 수 있습니다. 전반적인 프로세스는 데이터 획득, 데이터 처리, 데이터 레이블링, 이미지 크기 처리, 모델 훈련, 모델 검증, 모델 내보내기의 7단계로 구성됩니다.

또한, 사용자가 직접 준비한 데이터를 사용할 수도 있습니다. 레이블링 과정을 제외하면 전체 프로세스는 동일합니다.
동영상 튜토리얼 : 큰 이미지에서 작은 결함 감지

준비 작업

  1. 새 프로젝트 생성 및 '결함 세그먼테이션' 모듈 추가 : 홈 화면에서 새로운 프로젝트 버튼을 클릭한 후, 프로젝트 경로를 선택하고 이름을 입력하여 새 프로젝트를 생성합니다. 그런 다음 화면 오른쪽 상단에 있는 + 아이콘을 클릭하여 결함 세그먼테이션 모듈을 선택합니다.

    example projects add new module
  2. 이미지 데이터 가져오기 : 다운로드한 데이터 파일의 압축을 풉니다. 왼쪽 상단의 가져오기/내보내기 버튼을 클릭하고 폴더 가져오기를 선택하여 폴더를 선택합니다.

    example projects import images
  3. 이미지의 결함 특징 및 위치 분석 : 가져온 모든 이미지의 결함 특징과 위치를 분석합니다. 노트북 케이스의 밝은 부분은 결함으로 간주되어 이 프로젝트에서 검출 대상으로 사용됩니다. 결함은 작고 위치가 고정되어 있지 않으며, 주변 영역과의 차이도 뚜렷합니다. 따라서 본 프로젝트에서는 ROI 도구와 마스크 도구를 사용할 수 없습니다.

    example projects defect1

데이터 레이블링

  1. 클래스 생성하기 : 이 프로젝트는 단일 유형의 결함만을 대상으로 하므로, 하나의 클래스만 생성하면 됩니다.

    example projects create class
  2. 이미지 레이블링 : 대상 결함이 매우 작기 때문에 브러쉬 도구를 사용하는 것이 적합하며, 브러쉬 크기는 최소값 2로 설정하는 것을 권장합니다. 레이블은 결함의 형태를 가능한 정밀하게 따라 그려야 합니다. 이 프로젝트에는 이미지가 많으므로, 우선 10장의 이미지에 레이블을 지정한 후 훈련을 시작합니다.

    Ctrl 키를 누른 채 마우스 휠을 위로 굴리면, 이미지가 확대되어 더 정밀한 레이블링이 가능합니다.
  3. 훈련 세트와 검증 세트 비율 조정 : 10장의 이미지에 레이블을 지정한 후, 이를 '훈련 세트’에 포함시킵니다. 모델이 결함 이미지와 정상 이미지를 구분할 수 있도록, 결함이 없는 이미지 중 하나를 OK 이미지로 훈련 세트에 포함하는 것도 가능합니다. 그다음, 데이터를 훈련 세트와 검증 세트로 나눕니다. 일반적으로 전체 데이터의 80%는 훈령용으로, 20%는 검증용으로 사용하는 것이 좋습니다. 소프트웨어는 레이블이 지정되어 훈련 세트로 이동된 이미지를 자동으로 학습용/검증용으로 분할합니다.

    example projects add training set1

이미지 크기 조정

  1. 이미지 확대 : 이 프로젝트의 원본 이미지는 크고, 결함은 매우 작기 때문에 입력된 이미지의 크기 파라미터를 조정하여 이미지를 확대하는 것이 좋습니다.
    훈련 탭에서 미리보기 버튼을 클릭하면 미리보기 창이 열리며, 레이블링한 결함이 명확하게 보이도록 합당한 이미지 크기를 선택할 수 있습니다.

    example projects zoom review1
  2. 그리드 커팅 도구 사용 : 그리드 커팅 도구를 사용하면 이미지를 작게 분할해 레이블링된 결함의 비율을 높이고, 모델이 결함을 더 쉽게 인식할 수 있습니다.
    레이블링 툴 바에서 그리드 커팅 도구 버튼을 클릭하여 도구를 실행합니다. 레이블링 영역 상단에서 행과 열 개수를 설정한 후 [응용] 버튼을 클릭하면, 이미지가 동일한 크기의 작은 이미지들로 분할됩니다. 예를 들어, 행과 열을 각각 3으로 설정하면 아래 그림과 같은 효과가 나타납니다.

    example projects tools introduction grid cut
    그리드 커팅 도구를 사용하기 전에 먼저 데이터를 레이블링하세요.
  3. 입력 이미지 크기 미리보기 및 조정 : 응용 버튼을 클릭하면, 이미지 크기는 신경망에 입력될 잘린 이미지의 크기를 의미합니다. 훈련에 입력된 잘린 이미지의 효과를 확인하려면 미리보기 창을 다시 연 후, 창 상단에서 행과 열 수를 선택하면, 크기가 조정된 이미지 효과를 확인할 수 있습니다.
    이 샘플 프로젝트에서는 하나의 이미지를 동일한 크기의 9개 작은 이미지로 분할합니다. 분할된 각 이미지에서 레이블링 영역과 결함 영역이 명확히 확인되면, 현재 입력 이미지 크기가 요구 사항을 충족하는 것으로 판단할 수 있습니다.

    example projects tools introduction grid cut view
  4. '가장장리 확장' 사용 (선택 사항) : 그리드 커팅 도구 사용 후, 레이블링 영역은 여러 그리드로 분할됩니다. 가장자리 확장 기능의 슬라이더를 드래그하여 각 그리드의 가장자리를 확장해 전체 레이블링 영역에 맞게 조정할 수 있습니다. 가장자리 확장 설정은 전체 이미지에 일괄 적용됩니다.

    example projects tools introduction grid cut edge expansion
  5. '그리드 선택 도구' 사용 : 이미지를 여러 개의 작은 이미지로 분할하면 모델 훈련에 사용되는 이미지 수가 증가하여, 훈련 속도가 느려집니다. 훈련 시간을 단축하려면, 레이블링 툴바에서 tools introduction grid cut icon 버튼을 마우스 오른쪽 버튼으로 클릭한 뒤, 그리드 선택 도구를 선택합니다. 이후 이미지 레이블링 영역에서 훈련에 사용할 이미지를 선택합니다. 선택한 분할 이미지는 아래 그림과 같이 표시됩니다.

    example projects tools introduction grid cut select
기본 설정에서는 결함이 있는 작은 이미지가 자동으로 훈련에 포함되고, OK 이미지의 모든 작은 이미지도 훈련에 참여합니다.

모델 훈련

  1. 데이터 증강 파라미터 구성 : 이상적인 훈련 데이터는 실제 생산 과정에서 발생할 수 있는 다양한 조건을 반영해야 합니다.
    예를 들어, 본 프로젝트의 이미지 데이터는 현장의 다양한 조명 조건을 반영해야 합니다. 그러나 데이터 수집 시 모든 조명 시나리오를 포괄하기는 어렵기 때문에, 모델의 일반화 성능을 높이기 위해 밝기 범위를 확장하는 것이 필요합니다. 이 프로젝트에서는 일부 결함의 색상이 노트북 케이스의 색상과 유사하여, 모델이 결함을 효과적으로 인식하도록 휘도명암비 파라미터를 조정하여야 합니다.
    일부 결함은 분할된 소형 이미지의 가장자리 근처에 위치하거나 주변 영역과 색상이 유사하기 때문에, 회전크기 조정 파라미터의 사용은 권장되지 않습니다. 훈련 탭에서 훈련 파라미터 설정 우측에 위치한 start training 버튼을 클릭하여 데이터 증강 탭을 열고, 데이터 증강 파라미터를 구성합니다.

    파라미터에 대한 자세한 내용은 모델 훈련을 참조하세요.

    example projects data augmentation
  2. 훈련 파라미터 구성 : 일반적으로 평가 간격, 학습률, GPU ID 등의 파라미터는 기본 설정을 사용하는 것이 좋습니다.

    • 모델 유형 : 이 섹션에서 다룬 샘플 프로젝트의 경우, 스크래치 면적이 작고 윤곽이 모호하여 인식 난이도가 높습니다. 따라서 고정확도 모델 사용을 권장합니다.

    • Epochs : 처음으로 훈련을 시작할 경우, 모델을 충분히 학습시키기 위해 500개 이상의 에포크를 설정하는 것이 좋습니다.

      '입력된 이미지의 크기’는 이전 단계에서 이미 설정되었으므로 이 시점에서 다시 설정할 필요가 없습니다. 나머지파라미터는 기본값으로 유지합니다. 확인을 클릭하여 설정을 저장합니다.

      • 입력 이미지 크기가 요구 사항을 충족한다는 전제하에, 더 작은 크기로 설정하면 모델 훈련 및 추론 속도를 향상시킬 수 있습니다.

      • 이미지 크기가 클수록 결함 및 검증 영역의 윤곽 매칭이 용이해지고 모델 정확도도 높아지지만, 훈련 epoch 수와 소요 시간은 증가합니다.

  3. 훈련 시작 : 파라미터 조정이 완료되면, 훈련 탭에서 훈련 버튼을 클릭하여 모델 훈련을 시작합니다.

    example projects training chart1
  4. 훈련 정보를 통해 훈련 상태 확인 : 훈련 탭 아래의 훈련 정보 패널에서 실시간으로 모델 훈련 정보를 확인할 수 있습니다.

    example projects view training info1
  5. 훈련 차트를 통해 훈련 상태 확인 : 훈련 탭에서 훈련 차트훈련 센터 버튼을 클릭하면, 모델 훈련 과정 중 정확도 곡선과 손실 곡선의 변화 및 훈련 상태를 실시간으로 확인할 수 있습니다. 훈련이 완료되면, 최고 정확도 와 테스트 세트 검증 결과를 통해 모델 훈련 효과를 평가합니다. 정확도 곡선이 전반적으로 상승하고, 손실 곡선이 전반적으로 하락하는 추세를 보이면 현재 훈련이 정상적으로 진행되고 있음을 의미합니다.

  6. 훈련 중단하기 (선택 사항)

    • 실제 상황에 따라 훈련 조기 종료 : 모델 정확도가 요구 수준에 도달한 경우, 시간을 절약하기 위해 훈련을 조기에 종료할 수 있습니다. 또한, 훈련이 완료될 때까지 기다린 후 최고 정확도 및 기타 훈련 파라미터를 확인하여 모델 성능을 대략적으로 평가할 수 있습니다.

    • 모델 훈련 이상 시 훈련 중단 : 모델 훈련에 이상이 발생하면 훈련을 중단하고, 문제를 해결한 후 재시작할 수 있습니다.

모델 검증

  1. 모델 검증 : 훈련이 완료되었거나 수동으로 중단된 후, 검증 탭에서 검증 버튼을 클릭하여 모델을 검증할 수 있습니다.

  2. 모델 성능 저하 시 문제 해결 후 훈련 재시작 : 예를 들어, 훈련·검증 후 미검/과검률이 높아 모델 성능이 최적 수준에 도달하지 못한 경우, 아래 조치를 취할 수 있습니다.
    과검이 많은 경우에는 면적 필터 등의 필터링 규칙을 조정하고, 미검이 많은 경우에는 레이블 데이터를 추가합니다. 이러한 조정을 마친 후 모델을 다시 훈련하고 검증합니다.

    example projects validation result

    테스트 세트에서 미검 또는 과검이 발생한 이미지는, 레이블을 지정한 후 훈련 세트로 이동시켜 다음 라운드의 모델 훈련에 포함시킵니다. 훈련 세트에서 과검 또는 미검이 발생하지 않는다면, 모델이 초기 단계에서 일반화 능력을 어느 정도 습득했음을 의미합니다.

    테스트 세트의 모든 미검·과검 이미지를 전부 다시 레이블링하여 훈련 세트로 포함시킬 필요는 없습니다. 일부 이미지만 추가 레이블링해 훈련 세트에 포함한 후, 모델을 재훈련 및 검증하세요. 나머지 이미지는 참고용으로 사용하여 검증 결과를 관찰함으로써 모델 반복 효과를 점검할 수 있습니다.
  3. 모델 내보내기 : 내보내기 버튼을 클릭합니다. 팝업 창에서 내보낸 모델을 저장할 디렉토리를 선택하고 내보내기를 클릭합니다.

example projects model files1

내보낸 모델은 Mech-Vision 및 Mech-DLK SDK에서 사용할 수 있습니다. 자세한 내용은 여기를 클릭하여 확인하세요.

이 페이지가 도움이 되었습니까?

다음 방법을 통해 피드백을 보내주실 수 있습니다:

저희는 귀하의 개인정보를 소중히 다룹니다.

당사 웹사이트는 최상의 사용자 경험을 제공하기 위해 쿠키를 사용하고 있습니다. "모두 수락"을 클릭하시면 쿠키 사용에 동의하시는 것이며, "모두 거부"를 클릭하시면 이 웹사이트 방문 시 귀하의 정보가 추적되거나 기억되지 않도록 단일 쿠키만 사용됩니다.