데이터 · 2024

반도체 계측 이미지 AI 분석 데스크톱 프로그램

설계 레이아웃에서 계측 이미지를 생성하고, 촬영된 계측 이미지의 이상 여부를 판정하는 작업 환경

설계 레이아웃에서 계측 이미지를 생성하는 작업과 촬영된 이미지의 이상 여부를 판정하는 작업을, 데이터 준비부터 학습과 결과 확인까지 한 프로그램 안에서 처리하도록 만들었습니다.

고객
비공개 고객
기간
2024. 3. – 2024. 4.
분야
데이터
설계 레이아웃에서 잘라낸 영역과 생성된 계측 이미지를 나란히 보여 주는 화면

개요

  • 반도체 계측 이미지를 다루는 두 가지 AI 작업을 한 프로그램에 담음
  • 첫째, 설계 레이아웃에서 계측 이미지를 생성하는 작업
  • 둘째, 촬영된 계측 이미지의 정상·이상 여부를 판정하는 작업
  • 작업마다 추론 → 데이터 준비 → 학습으로 화면을 나눠, 모델을 쓰는 쪽과 다듬는 쪽이 같은 프로그램을 사용
  • 분석 모델을 직접 다루지 않는 담당자도 경로 선택과 버튼만으로 작업 수행 가능

과제

  • 분석 모델이 명령줄 스크립트 형태라, 인자 이름과 출력 형식을 아는 사람만 실행 가능
  • 계측 장비가 남기는 측정 정보 파일과 이미지 폴더가 현장에 따라 세 가지 구조로 갈림
  • 폴더 깊이와 번호 규칙이 달라, 이미지 목록을 한 가지 방식으로만 읽을 수 없음
  • 학습에 쓸 정상·이상 라벨은 사람이 이미지를 보고 직접 붙여야 함
  • 분석 모델이 계속 바뀌는 중이어서, 모델이 교체돼도 화면은 그대로 쓸 수 있어야 함

해결 방법

  • 두 가지 작업을 상위 탭으로, 추론·데이터 준비·학습·탐색을 하위 탭으로 배치
  • 분석 스크립트를 정해진 인자 규격으로 호출하고, 그 콘솔 출력을 화면 로그에 그대로 표시
  • 진행 단계를 출력하는 작업은 그 값을 읽어 진행 막대에 반영
  • 결과 표의 행을 고르면 해당 이미지를 옆 화면에 띄워, 점수와 사진을 함께 확인
  • 경로를 고르지 않고 실행하면 비어 있는 항목을 짚어 안내
  • 작업 중 생긴 오류는 내용을 그대로 띄워, 어디서 멈췄는지 확인 가능

시스템 구조

레이아웃에서 계측 이미지 생성

  • 레이아웃 열기 → 잘라낼 영역 지정 → 전처리 선택 → 생성 → 저장
  • 잘라낼 영역은 폭·높이 입력이나 화면 드래그로 지정
  • 윤곽선 추출, 회색조, 좌우·상하 반전을 켜고 끄며 입력 이미지를 즉시 확인
  • 윤곽선 추출은 두 단계 기준값을 조절해 검출 정도를 조정
설계 레이아웃에서 잘라낸 영역과 생성된 계측 이미지
레이아웃에서 계측 이미지 생성

계측 이미지 이상 판정

  • 이미지 폴더와 측정 정보 파일 지정 → 판정 → 이미지별 점수와 결과를 표로 확인
  • 표에서 고른 이미지를 옆 화면에서 확대·이동하며 확인
  • 판정 결과는 쉼표로 구분한 표 파일로 남아, 다른 도구에서도 열람 가능
이미지별 점수와 판정 결과 표
이상 판정 결과 확인

학습 데이터 준비와 학습

  • 원본 이미지에 왜곡을 입혀 학습용 데이터 생성 → 원본과 결과를 나란히 비교
  • 학습 옵션을 화면에서 편집한 뒤 학습 시작 → 로그를 실시간으로 확인
  • 앞서 만든 결과 파일을 이어받아 학습을 다시 시작하는 경로도 지정 가능
원본 이미지와 왜곡을 입힌 이미지 비교
학습용 왜곡 데이터 생성
학습 옵션 편집기와 진행 로그
학습 옵션 편집과 진행 로그

구현

흩어진 폴더 구조 읽기

  • 측정 정보 파일과 이미지가 놓이는 세 가지 구조를 모두 읽어, 하나의 목록으로 표시
  • 하위 폴더까지 훑어 이미지를 모으고, 원래의 폴더 구조를 그대로 트리에 표시
  • 정리를 마친 데이터를 내보낼 때도 세 가지 구조 중 하나를 골라 저장

두 이미지 맞춰 자르기

  • 레이아웃과 계측 이미지를 겹쳐 놓고 각각 크기·투명도를 조절해 눈으로 정렬
  • 겹친 상태에서 두 이미지를 따로 움직일 수 있어, 배율이 다른 이미지도 짝 맞춤 가능
  • 정렬한 뒤 같은 영역을 잘라, 레이아웃·계측·겹친 이미지 세 장으로 저장
레이아웃 위에 계측 이미지를 겹쳐 맞추는 화면
두 이미지 정렬 후 같은 영역 잘라내기

라벨 붙이기와 비교

  • 목록에서 바로 라벨을 고르고, 전체·정상·이상·미지정 개수를 항상 화면에 표시
  • 라벨 파일을 불러오면 지금 열지 않은 이미지의 라벨까지 기억 → 나중에 그 폴더를 열면 그대로 반영
  • 탐색 화면을 둘로 나눠 서로 다른 이미지를 비교하고, 확대·이동을 양쪽에 동시 적용
  • 이미지 틀 밖에서 마우스를 놓아도 끌기가 풀리지 않던 문제를 표시 방식까지 손봐 해결
  • 이미지마다 밝기 분포, 보고 있는 영역의 좌표, 크기와 용량을 함께 표시
폴더 트리와 이미지 목록에서 라벨을 고르는 화면
학습 데이터 라벨링

결과

  • 모델을 만든 사람이 아니어도 경로를 고르고 버튼을 눌러 분석 수행 가능
  • 판정 결과와 해당 이미지를 한 화면에서 확인 → 표만 보고 판단하지 않아도 됨
  • 라벨 작업, 학습 데이터 생성, 학습, 결과 확인이 한 프로그램 안에서 이어짐
  • 분석 스크립트를 교체해도 화면은 그대로 사용 → 모델이 바뀌어도 사용 방법 유지
  • 현장마다 다른 폴더 구조를 같은 방법으로 읽고, 원하는 구조로 다시 정리 가능
  • 사용한 공개 소프트웨어 라이선스를 프로그램 안에서 열람 가능

사용 기술

  • Python
  • wxPython
  • VisPy
  • OpenCV
  • NumPy
  • Pillow

화면

해결이 필요한 문제가 있으신가요?

소프트웨어 개발부터 장비 연동과 엔지니어링까지, 프로젝트의 요구사항에 적합한 해결 방안을 함께 검토합니다.

프로젝트 문의하기