Use the Results of Matching
매칭(Matching)을 수행한 후에는 일반적으로 얻어진 결과를 어떻게 활용할지 결정해야 한다. 매칭의 주요 목적은 이미지에서 찾고자 하는 객체의 위치와 방향을 정확히 찾아내는 것이다. 다양한 매칭 접근법들이 존재하며, 각 방법마다 반환하는 정보의 형태가 다를 수 있다. 이 장에서는 HALCON의 매칭 연산자들이 반환하는 결과를 이해하고 이를 후처리하는 방법에 대해 설명한다.
개별 Matching 접근법의 결과
매칭을 통해 얻는 결과는 사용된 매칭 접근법(Matching Approach)에 따라 달라진다. HALCON에서 제공하는 각 Matching 연산자는 객체 위치(Position), 방향(Orientation), 크기(Scale), 그리고 매칭 품질(Score)과 같은 정보를 제공한다. 결과는 주로 다음과 같은 형태로 제공된다.
Matching Approach | Translation(이동) | Rotation(회전) | Uniform Scale(균일 스케일링) | Anisotropic Scale(비균일 스케일링) | Projective Transformation(투영 변환) | 3D Pose(3D 포즈) |
---|---|---|---|---|---|---|
correlation-based matching | O | O | - | - | - | - |
shape-based matching | O | O | O | O | - | - |
local deformable matching | O | - | - | - | - | - |
perspective deformable matching | - | - | - | - | O | O |
descriptor-based matching | - | - | - | - | O | O |
각 접근법에 따라 반환되는 형태가 다르므로 결과를 활용할 때 선택한 접근법에서 제공되는 반환 형식을 반드시 숙지해야 한다.
변환(Transformations)에 대해
매칭의 결과는 주로 변환(Transformation)을 통해 후처리되는데, 매칭 결과를 활용하는 대표적인 방법은 다음과 같다:
- 객체 위치 및 방향 시각화: 매칭을 통해 찾아낸 객체의 위치와 방향을 이미지 위에 표시하여 사용자가 매칭 결과를 시각적으로 확인할 수 있도록 돕는다.
- 좌표계 변환(Transformations): 매칭 결과로 얻어진 위치 정보를 기반으로 이미지 변형(Translation, Rotation, Scaling 등)을 수행하여 후속 검사 또는 측정 작업에 사용한다.
- 품질 검사 및 측정 작업: 객체 위치 및 방향을 활용하여 제품 품질 검사, 치수 측정 등 정밀한 후속 이미지 처리를 수행할 수 있다.
HALCON에서 사용 가능한 변환 유형은 다음과 같다:
2D Affine Transformation (2D 아핀 변환)
- 객체를 이동(Translation), 회전(Rotation), 스케일링(Scaling)할 때 사용한다.
- 회전이나 스케일링 변환 시, 고정점(Fixed Point)을 기준으로 수행된다. 이 점은 변환 전후에도 동일한 위치에 남게 된다.
2D Projective Transformation (2D 투영 변환)
- 주로 투시 변형이 발생하는 경우에 사용하며, Perspective deformable 또는 Descriptor-based matching 결과에서 사용된다.
3D Affine Transformation (3D 아핀 변환)
- 캘리브레이션이 적용된 상태에서 얻은 3D 포즈를 후처리할 때 사용한다.
변환의 핵심 개념은 객체의 위치와 방향, 크기를 다른 이미지나 좌표계에 맞게 조정하는 것이다. 예를 들어, Shape-based matching의 경우 객체를 회전, 이동, 스케일링할 수 있다.
객체가 변형될 때는 중심점(Reference Point)이 고정된 채 변형이 이루어진다. 이 중심점은 초기 ROI를 설정할 때 결정되며, 모든 변환의 기준점으로 작동한다.
2D Projective Transformation에 관하여
2D Projective Transformation(2D 투영 변환)은 객체가 평면상에서 촬영 각도에 따라 투시(perspective) 왜곡이 발생했을 때 사용되는 변환이다. 주로 Perspective deformable matching이나 Descriptor-based matching에서 결과로 반환되는 Homography 매트릭스를 통해 표현된다. Homography는 서로 다른 두 평면 사이의 관계를 나타내는 3×3 행렬로, 객체의 원본 좌표를 이미지 내 투영된 좌표로 변환할 때 사용한다.
이 변환을 통해 얻은 결과는 투시 왜곡을 보정하여 실제 객체의 위치 및 모양을 정확하게 재구성하는 데 활용된다. 대표적으로 HALCON에서는 hom_mat2d_projective_trans_image
나 projective_trans_region
과 같은 연산자를 이용하여 이미지나 객체 영역에 투영 변환을 적용한다.
2D 위치 및 방향을 활용한 결과 표시 및 변환 수행
(일단 내가 제일 많이 쓰는 애들!)
2D 위치와 방향을 이용해 매칭 결과를 이미지에 시각화하거나 후처리를 수행할 수 있다. 주로 사용되는 연산자는 다음과 같다:
vector_angle_to_rigid
: 이동과 회전을 위한 변환 매트릭스 생성hom_mat2d_translate
,hom_mat2d_rotate
,hom_mat2d_scale
: 변환을 연속적으로 적용affine_trans_image
: 2D 아핀 변환을 이미지에 적용하여 결과를 출력한다.
2D Homography를 이용한 결과 표시 및 변환 수행
투영 변형(Projective 변환)이 필요한 경우, 특히 Perspective deformable 또는 Descriptor-based matching 결과에서 반환되는 2D 호모그래피(Homography)를 사용한다.
- 주요 연산자:
projective_trans_image
2D 호모그래피는 객체가 평면에서 투시 왜곡된 형태로 나타날 때 위치를 보정하거나 결과를 시각적으로 명확히 표현하는 데 사용된다.
3D Pose를 이용한 결과 표시 및 변환 수행
3D 포즈 정보는 캘리브레이션이 적용된 카메라 환경에서 객체의 정확한 3차원 위치 및 방향을 제공한다. HALCON은 이를 통해 현실적인 3D 시각화 또는 후처리를 가능하게 한다.
대표적으로 사용하는 연산자는 다음과 같다:
pose_to_hom_mat3d
: 포즈 정보를 3D 변환 매트릭스로 변환project_3d_point
등으로 3D 포인트를 이미지 좌표로 투영하여 결과를 시각화
Score에 관하여
매칭 과정에서 계산된 Score는 객체 위치의 신뢰도나 정확도를 나타내며, 최종적으로 어떤 결과가 신뢰할 수 있는지 판단하는 기준이 된다. Score 값은 0~1 사이이며, MinScore 등과 함께 설정하여 반환되는 후보의 수를 제한하거나, 최적의 결과만 선택하여 속도를 높일 수도 있다.
일반적으로 Score는 다음과 같은 경우 낮아질 수 있다:
- 객체가 부분적으로 가려졌을 때(occlusion)
- 배경과 객체가 혼재되었을 때(clutter)
- 조명의 변화나 디포커스(defocus)가 발생한 경우
따라서 Score를 통해 매칭의 신뢰성을 판단하고, 값이 낮은 경우는 매칭 결과를 신중히 검토할 필요가 있다.
ROI 정렬 및 정확성 향상을 위한 권장 사항
ROI를 정렬하고 변환할 때 다음 사항에 주의하면, 더욱 정확한 후속 검사가 가능하다:
Point of Reference 설정의 중요성
매칭 과정에서 설정된 모델의 참조점(Point of Reference)이 정확해야 후속 변환 및 위치 보정 작업이 정확해진다. 따라서 모델 생성 시 Reference Point를 객체 중심부나 측정에 가장 중요한 지점으로 설정해야 한다.ROI 형태 및 크기 설정
매칭의 정확성과 후속 검사의 효율성을 높이기 위해 ROI의 형태와 크기를 신중히 설정해야 한다. ROI는 객체와 관련 없는 노이즈(clutter)를 배제하고, 명확한 윤곽선을 중심으로 설정하는 것이 바람직하다.Interpolation 방식의 신중한 선택
ROI 변환 시 보간법(interpolation)을 신중히 선택하면 더욱 정확한 결과를 얻을 수 있다. 일반적으로 가장 가까운 이웃 보간(nearest neighbor) 방식이 빠르지만, 세부 측정이 중요한 경우 더 정밀한 보간 방식을 선택하는 것이 좋다.
이러한 방식으로 매칭 결과를 적극적으로 활용하면, 최종 애플리케이션에서 객체 인식의 정확성을 높이고, 추가적인 이미지 처리 과정에서 더욱 정밀하고 안정적인 결과를 얻을 수 있다.