[헬로티]
LMI Technologies사의 Gocator 시리즈는 3D 검사, 특히 실시간 인 라인 검사에 최적화된 스마트 3D 센서이다.
Gocator Firmware는 스캔, 컨트롤러, 영상 처리 소프트웨어까지 모 든 역할을 수행하여 PC나 주변장치 없이 센서 하나만으로 모든 측정 및 검사가 가능한 All-in-One 스마트 3D 센서이다.
그림. Profile 측정 툴
Gocator 센서에 내장된 영상처리 소프트웨어인 Gocator built-in Tool은 약 200가지 이상의 3D 측정 도구를 제공한다. 이 내장형 도구 들은 아래 그림과 같이 Profile 측정 툴과 Surface 측정 툴 두 그룹으로 구분된다.
Profile 측정 툴은 레이저 프로파일 데이터에서 라인, 곡선, 엣지 등의 형상(feature)을 정의하고, 측정하고, 비교하는 등 정확한 의사결정을 위 해 필요한 측정 값들을 계산한다. 이 과정에서 다양한 filter와 최대/최소 threshold 값 등을 유연하게 적용할 수 있다.
Surface 측정 툴은 3D height map 데이터에서 높이, 평면, 체적 등의 형상(feature)을 정의하고, 측정하고, 비교하는 등의 기능을 제공한다. 이 과정은 대상물의 surface 전체 또는 정의된 일부 ROI 영역에서 수행이 가능하다.
1. Surface Blob 측정 툴
인라인 제조검사에서 대상물의 표면 불량 검출은 가장 일반적인 머신비전 검사 애플리케이션일 것이다. 전반적인 검사 프로세스 과정을 진행하는데 있어서 엔지니어는 보통 먼저 2D 기반의 블롭(blob) 처리를 통해 임의의 영역들을 백그라운드로부터 분리하게 된다. 2D 기반의 블롭(blob) 추출은 특정 밝기의 threshold 값을 기준으로 분리를 하기 때문에 형상 기반의 블롭 처리를 할 수 없다.
반면 3D 기반의 Surface Blob 측정 툴은 dent(패임)나 bump(돌출)와 같은 형상들을 분리하거나 또는 평평하지 않은 표면에서도 블롭 추출이 가능하다. 아래의 검은색 대상물 측정 예시는 이런 장단점을 잘 보여준다. 이 물체는 기울어진 표면 위의 여러 위치에 dent(패임)가 있다.
그림3. (좌)대상물의 3D 스캔 height map 데이터, (우)대상물의 3D surface 블롭 처리 화면
그림에서 볼 수 있듯이 문제는 콘트라스트(명암 대비)가 낮아 dent(패임) 부분의 유용한 엣지를 찾을 수 없으므로 블롭 처리가 어렵다. 이때 Surface Blob 측정 툴을 사용하면 3D 형상을 기준으로 블롭 분할이 가능하다. 즉, 평평한 surface 기준으로 볼록 튀어나오거나 움푹 패인 형상을 정의하고 추출하는 것이 손쉽게 가능하다. Surface 표면이 균일하지 않은 경우 사용자는 기준이 되는 reference region 또는 plane을 다양한 방법으로 유연하게 정의할 수 있다.
2. Surface Section 측정 툴
Surface Section 측정 툴은 3D height map 데이터에서 필요한 영역의 Section(절단면)을 정의하고 그 단면의 profile을 추출하는 기능이다. 그리고 추출된 profile은 모든 profile 측정 툴을 적용해 필요한 측정이나 비교 판정을 수행할 수 있다. Section(절단면)은 데이터 전체 영역에서 필요한 어떤 X/Y축으로도 정의할 수 있고 그 추출된 profile은 Z축에 평행하게 된다.
Surface Section 측정 툴은 아래와 같이 몇 가지 장점이 있다. 첫째, 앵커링(Anchoring)기능을 활용하면 대상물의 전체 영역 중, 구멍(hole)의 중앙이나 엣지의 각도 등, 식별하기 쉬운 feature에 앵커링함 으로써 그 feature를 기준으로 자유롭게 이동(-shift) 시킬 수 있다.
둘째, 초기 스캔 데이터 외에도 다양한 종류의 surface를 입력 데이터로 사용할 수 있다. 예를 들어, (Surface Extend 또는 Stitch 툴을 이용해 만든) combined surface나 (Surface Transformation 툴을 이용해 만든) transformed surface 그리고 (Surface Filter 또는 Surface Vibration Correction 툴을 이용해 만든) filtered/corrected surface에도 적용이 가능하다. 이와 같이 원본 스캔 데이터 뿐만 아니라 다른 툴에서 가공된 데이터 또한 사용할 수 있는 기능은 매우 유용하다. 셋째, 추출된 profile의 글로벌 X/Y축 값을 계산할 수 있어서 여러 개의 스캔 데이터를 하나로 합성(stitch)할 수 있게 해준다.
그림. (좌)2D View, (우)3D View
이와 같이 Surface Section 측정 툴의 가장 큰 장점은 인라인에서 안정적으로 반복적인 측정이 가능하게 해준다는 점이다. 만약 생산 라인 에서 부품과 부품 간에 미세한 이동이나 회전이 있을 경우 간단한 앵커링(Anchoring) 기능을 활용해 효과적으로 이를 보상함으로써 정밀한 측정을 보장해 준다.
3. Surface Segmentation 측정 툴
Surface Segmentation 측정 툴은 3D surface 데이터 상에서 원하는 개별 대상물을 구분해 주는(segmentation) 기능이다. 이는 2D비전 기술의 블롭 분석(Blob Analysis)과 같은 것으로서 3D 형상 데이터에서 ‘블롭’은 높이 값을 가지므로 이를 이용해 간편하게 개별적인 대상물을 구분할 수 있다. 이 측정 툴을 적용할 수 있는 어플리케이션은 박스 안에 든 병의 개수 카운팅이나 핀 커넥터 상의 핀의 개수 확인 등을 예로 들 수 있다.
이 측정 툴은 Height, Area, Aspect 등의 Min/Max 임계값을 적용함으로써 블롭을 구분하는데, 사용자는 측정 관련 파라미터를 설정함으로써 part count, min/max height, width, length 등의 글로벌 정보를 파악할 수 있다. 그리고 제공된 SDK를 사용하면 구분된 형상들의 3D 측정 데이터를 활용할 수 있다.
그림. (좌)Surface Segmentation 2D View, (우)Surface Segmentation 3D View
이 측정 툴은 ‘Part Detection’ 기능과 함께 적용하면 더 유용할 수 있다. 예를 들면, 여러 개의 부품들을 싣고 이동하는 트레이를 찾는데 Part Detection 기능을 적용하고, 그 뒤에 트레이 위의 개별 부품들을 구분하고 분석하는데 Surface Segmentation 측정 툴을 활용하는 것이다. Surface Segmentation 툴은 노이즈의 효과를 최소화할 수 있는 몇 가지 파라미터가 포함되어 있다.
Background 필터는 배경을 제거해 주고 Part Edge 필터는 대상물이 겹치는 경계 부분을 정리해 주는데 이는 Segmentation 작업의 정확성과 신뢰성을 높여준다.
4. Surface Mask 측정 툴
일부 애플리케이션에서는 3D surface 데이터에서 특정 모양의 region을 따로 분리해 내야하는 어려움이 있다. Surface Mask 측정 툴은 이런 문제를 손쉽게 해결해주는데 그 작동 방식을 다음 그림과 같은 플랜지 연결 부품을 예로 들어 설명하겠다.
이 애플리케이션의 목표는 원형의 플랜지(그림에서 오렌지색 원형 부분)의 표면 평탄도를 측정하는 것인데, 이는 두 가지 내장 툴을 적용함 으로써 간단하게 해결할 수 있다. 먼저 browser 기반의 사용자 환경에서 Gocator가 스캔한 3D 데이터를 열어 Surface Mask 툴을 실행합니다 (드래그 앤 드롭 방식). 이때 플랜지의 모양에 맞게 Circular Mask를 선택한다.
아래 그림과 같이 Mask 툴은 선택된 영역에서 원형의 플랜지 부분만 따로 분리해낸다. 다음으로 Surface Flatness 툴을 적용하면 플랜지 부분의 평탄도를 측정할 수 있다. 이때 Surface Mask 툴의 output 값을 Surface Flat ness 툴의 input 값으로 설정한다. 그리고 대상물이 포함되도록 ROI를 설정한다.
Surface Mask 측정 툴의 가장 큰 장점은 ROI를 설정해서 간편하게 원하는 형태의 Mask를 추출할 수 있고 그 결과를 다른 측정 툴에 바로 적용할 수 있다는 점이다. 그리고 최대 16개까지 ROI 영역을 동시에 설정할 수 있는데 각각의 영역은 서로 다른 크기, 위치, 형태로 개별적으로 정의할 수 있을 뿐만 아니라 영역이 중복되게 설정함으로써 새로운 형태의 영역을 만들 수도 있다.