Defect Detection

프로젝트 ②

Realtime Defect Detection 실시간 결함 검출

개요

   어떤 제품의 생산 공장에서 생산된 제품의 표면을 검사하다 보면 얇은 스크래치나 미세한 이물 등 사람 눈에는 보이지만 기기에서는 묻혀버리는 현상이 있습니다. 이러한 문제를 보완하고, 현장에서 바로 대응할 수 있는 검사 시스템을 만들어 보고자 이 프로젝트를 진행했습니다.

   이 프로젝트는 OpenCV 기반으로 제품 표면의 스크래치, 노이즈 등 다양한 결함을 검출하는 것을 목표로 진행하였습니다.

파이프라인

1
입력
- 실시간 영상 입력
2
검사 영역 설정
- 커스텀 ROI 적용
3
전처리
- Blur, Morphology 기반
   배경 및 노이즈 제거
6
결과
- 결함 발생 시 자동 기록
5
결함 판단
- 연속된 프레임 및
   상태머신 통한 결함 판단
4
결함 후보 추출
- 정상 패턴과 다른 영역
   결함 후보로 추출

사용 기술

언어 C++
라이브러리 OpenCV
이미지 처리 Edge Detection, Morphology, Color Space

처리 과정

ㆍ ROI 설정 및 전처리

ㆍ 밝기 기반 결함 추출

ㆍ 경계 검출(Canny Edge) 및 색상 분석(Lab Color Space)

ㆍ 마스크 통합 및 Morphology 후처리

ㆍ Contour 기반 후보 추출

ㆍ Marker 기반 Inspect 트리거 및 결과 도출

결과

촬영 과정 RAW   :
    

결함 탐지 결과   :
    

마스크   :
    

고찰

ㆍ 초기 알고리즘 구성
      - 단순 그레이 기반 처리 → 명도 차이가 적은 색상끼리 분리가 잘 되지 않음
      - 단순 Morphology 처리 구조 → 얇은 스크래치는 검출 안됨
      - 단일 이미지 기준으로 알고리즘 설계 → 실시간 영상 환경에서 결과 불안정

ㆍ 개선 과정
      - Lab Color Space로 변환 후 a, b 채널 기반 색상 처리 추가
      - Canny Edge Detection 및 dilation 추가
      - 연속 프레임의 상태 변화를 기반으로 프로세스 수정

ㆍ 느낀 점
      - 여러 기준을 결합한 알고리즘 방식이 더 안정적임을 확인 중요성 확인
      - 단일 이미지와는 달리 영상 처리에서는 프레임의 연속성과 일관성이
          중요하다는 것을 깨닫게 됨

      - 색상이 다르고. 미세한 스크래치의 경우 결함의 형태와 색상 특성에
          따라 다른 접근이 필요하다는 것을 배움