Template Matching vTool#
흐린 가장자리나 명확하게 정의되지 않은 경계가 있는 객체를 감지하는 데 가장 적합합니다. 픽셀의 회색조 값 정보를 비교하는 데 많은 처리 시간과 Memory가 소모되므로, Basler에서는 작은 객체에 사용할 것을 권장합니다.
Template Matching vTool은 Image 입력 핀을 통해 이미지를 수신하고, output pins을 통해 발견된 일치 항목에 대한 정보를 출력합니다.
또한 매칭 중에 사용된 기준 이미지와 입력 이미지의 정렬을 Image Alignment vTool이 수행할 수 있도록 정렬 변환 데이터를 출력합니다. 이를 통해 Measurements vTools는 기준 이미지와 다른 위치에 있는 객체도 측정할 수 있습니다.
If you use the ROI Creator vTool to specify a region of interest, the Template Matching vTool accepts the ROI data via its Roi input pin. In that case, objects are found only if the default reference point of the matching model lies within the region of interest.
관심 영역을 사용하면 해당 특정 영역의 객체에 집중하거나, 잠재적인 오탐지 후보를 제거하거나, 처리 시간을 줄일 수 있습니다.
Template Matching vTool의 Regions 출력은 Roi 입력 핀이 있는 vTool의 Roi 입력으로도 사용할 수 있습니다. 자세한 내용은 ROI Creator vTool 항목을 참조하세요.
Calibration vTool에서 제공하는 변환 데이터를 사용하여 매칭 위치를 미터 단위의 월드 좌표로 출력할 수 있습니다(Positions_m 아웃핀을 사용할 수 있게 됨). 이렇게 하려면 매칭 전에 Calibration vTool을 사용하고 두 vTool의 Transformation 출력/입력 핀을 연결하십시오.
Template Matching vTool 라이선스를 구매하려면 Basler 웹사이트를 방문하십시오.

Template Matching 버전#
Template Matching vTool은 두 가지 버전으로 제공됩니다. 다음 표는 각 버전의 차이점을 보여줍니다. 표 제목에서 버전을 클릭하면 이 토픽의 관련 섹션으로 바로 이동할 수 있습니다.
| Starter | Basic | |
|---|---|---|
| 템플릿은 어떻게 정의합니까? | 원하는 객체 주위에 사각형을 맞춥니다. | 펜 툴을 사용하여 원하는 객체의 윤곽선을 따라 그립니다. |
| timeout을 지정할 수 있습니까? | 아니요 | 예 |
| reference point를 정의할 수 있습니까? | 아니요 | 예 |
| 학습된 객체와 다른 angles에 있는 객체도 감지할 수 있습니까? | 아니요 | 예 |
| Roi 입력 핀에 유효한 데이터 형식 | RectangleF | RectangleF, RectangleF Array, Region, Region Array |
| 입력으로 지원되는 pixel formats은 무엇입니까? | 8비트 모노 또는 컬러 이미지 | 8비트~16비트 모노 또는 컬러 이미지 |
| 라이선스 구매 | pylon Software Suite에 포함됨 | Basler 웹사이트 방문 |
작동 방식#
템플릿을 정의하고 입력 이미지에 적용하여 매칭에 대한 다음 정보를 수집할 수 있습니다.
- 매칭 점수
- 위치
- 방향
- 매칭 시각화가 포함된 영역
템플릿 정의#
Template Matching의 첫 번째 단계는 애플리케이션에서 감지할 객체의 대표 이미지를 기반으로 모델을 학습하는 것입니다.
이 학습 이미지에서 원하는 영역을 표시하고 학습시킵니다. 애플리케이션은 이 모델을 사용하여 생산 환경에서 해당 객체를 감지합니다.
이미지에서 완전히 보이는 객체만 감지할 수 있습니다. 즉, 템플릿 이미지에 표시된 영역이 검색 이미지 내에 온전히 포함되어야 합니다. 따라서 원하는 객체를 표시할 때 매우 정밀하게 수행하고 가능한 가장 작은 펜을 사용하십시오.
객체는 학습된 모델의 객체와 정확히 같은 크기여야 하며 카메라로부터 동일한 거리에 있어야 합니다.
Template Matching은 모델과 검색 이미지의 그레이 밸류 정보를 직접 기반으로 합니다. Template Matching은 정규화된 상호 상관 알고리즘을 사용합니다.
정보
- 대표 이미지를 템플릿으로 선택하십시오.
- 템플릿 이미지에서 원하는 객체의 영역을 표시할 때, 객체의 특징을 잘 나타내며 검색 이미지에 일반적으로 존재하는 영역을 선택하십시오.
기준점 사용#
Template Matching Basic vTool을 사용하면 마킹한 객체 내에 기준점을 표시할 수 있습니다. 기본적으로 기준점은 객체의 무게 중심에 배치되며, 대부분의 애플리케이션에서 이 설정이 잘 작동합니다.
정보
관심 영역(Region of Interest)을 사용하는 경우, 기본 기준점은 관심 영역 내에 위치해야 합니다.
필요한 경우 기준점을 다른 위치로 이동할 수 있습니다. 예를 들어 로봇 피킹 애플리케이션을 들 수 있습니다. 이러한 시나리오에서는 비전 시스템이 로봇의 그리퍼와 집어 올릴 객체의 형상을 고려하여 로봇의 그리핑 위치를 결정해야 합니다. 이 경우 두 가지 측면을 모두 수용할 수 있도록 이에 맞춰 기준점을 배치할 수 있습니다.
기준점을 표시하려면 먼저 티칭 이미지에서 템플릿 영역을 마킹해야 합니다.
모델 설정#
모델에서 티칭된 객체와 다른 방향에 있는 객체를 감지하려면, 목표 각도를 정의하고 객체가 목표 각도에서 벗어날 수 있는 허용 오차 값을 추가할 수 있습니다. 이는 vTool의 Basic 버전에서만 사용할 수 있습니다.
실행 설정#
- Matches: 애플리케이션에서 발생할 수 있는 객체의 수가 제한적인 경우, 가능한 매치 수를 정확히 이 숫자로 제한하는 것이 좋습니다. 이렇게 하면 처리 속도와 안정성이 향상됩니다.
- Score: 모든 매치에 대해 스코어 값이 계산됩니다. 이 스코어는 모델의 영역과 검색 이미지에서 매치된 영역 간의 상관계수입니다.
최적의 Score 설정을 찾으려면 적당한 값으로 시작하여 일부 Test Images를 실행해 보십시오. Scores 핀의 출력 값을 관찰합니다. 매치를 확실하게 찾으려면 항상 Score 옵션을 Scores 핀에서 출력되는 스코어보다 낮은 값으로 설정하십시오. 이는 약간의 오차를 허용하기 위해 권장되는 모범 사례입니다.
Test Images에서 확인된 가장 낮은 스코어 출력 값의 50~80% 사이에서 스코어 값을 선택하십시오. 스코어가 너무 낮게 설정되면 원하지 않는 매치도 함께 감지될 수 있습니다. 이 경우 Test Images에서 의도한 객체만 찾을 수 있을 때까지 스코어 값을 다시 조정하십시오.
이미지에 여러 매치가 있는 경우, 스코어의 내림차순으로 정렬됩니다. - Timeout: 시간 임계적 애플리케이션의 경우 타임아웃을 지정할 수 있습니다. 타임아웃은 예를 들어 이미지가 티칭된 객체를 포함하지 않아 처리 시간이 다양하거나 예상할 수 없는 경우에 도움이 됩니다. 타임아웃을 지정하면 지정된 타임아웃 후에 감지 프로세스가 중단되고 다음 이미지로 이동합니다.
바슬러(Basler)에서는 원하는 제한 시간보다 약간 낮게 타임아웃을 설정할 것을 권장합니다. 이는 vTool이 감지 프로세스를 즉시 중지하지 않기 때문입니다. 따라서 타임아웃을 원하는 제한 시간의 70~80%로 설정하십시오.
출력 설정#
정렬 변환#
정렬 변환 데이터를 출력하려면 다음 두 가지 옵션 중에서 선택할 수 있습니다.
- Single value: 첫 번째 매치에 대한 정렬 변환 데이터만 출력합니다. 이 경우 출력 핀 이름은 AlignmentTf입니다.
- Array: 발견된 모든 매치에 대한 정렬 변환 데이터를 배열로 출력합니다. 이 경우 출력 핀 이름은 AlignmentTfs입니다.
정보
이 기능이 도입되기 전에 생성된 레시피도 계속 작동합니다. 이러한 레시피를 로드하면 정렬 변환 출력이 Single value로 설정됩니다. 필요한 경우 이를 변경할 수 있습니다.
위치 출력#
vTool의 Basic 버전에서는 매치된 객체 위치의 절대 좌표를 출력할지 상대 좌표를 출력할지 선택할 수 있습니다.
- Absolute는 좌표가 이미지 좌표계의 원점(0,0)을 기준으로 함을 의미합니다. 영역 픽셀의 좌표도 원점을 기반으로 합니다.
- Relative는 좌표가 기준점(reference point)을 기준으로 함을 의미합니다. 영역 픽셀의 좌표가 그에 따라 변환됩니다.
캘리브레이션 사용#
매치의 결과 위치를 미터 단위의 실제 좌표(world coordinates)로 출력할 수도 있습니다. 이렇게 하려면 Calibration vTool의 Transformation 출력 핀을 Template Matching vTool의 Transformation 입력 핀에 연결합니다.
Template Matching vTool을 설정할 때 실제 처리와 동일한 캘리브레이션 구성을 사용해야 합니다.
정보
- 2차원 이미지를 생성하는 3차원 월드 공간의 객체 표면은 공간상에서 적어도 어느 정도는 동일한 평면에 있어야 합니다. 이 경우 월드 내 객체의 서로 다른 위치와 이미지의 모서리로 인한 원근 왜곡 효과는 무시할 수 있습니다.
- 광각 렌즈는 광학 설정으로 인해 상당한 원근 왜곡을 유발합니다. 이러한 렌즈의 경우 검사 대상 객체는 객체와 카메라 간의 거리에 비해 높이가 낮아야 합니다. 또는 객체 높이를 무시할 수 없는 경우 템플릿 이미지에서 동일한 높이 수준의 영역을 선택하십시오.
- 캘리브레이션 설정 중에 캘리브레이션 플레이트의 표면을 이 평면에 배치하여 객체의 평면을 등록합니다.
문제 해결#
팁
발생할 수 있는 잠재적 문제 목록은 다음과 같습니다.
- 티칭 프로세스에 오랜 시간이 걸림
- vTool의 실행 시간이 매우 김
- 레시피가 매우 큼
이러한 문제가 발생하는 경우 다음 최적화 방안을 고려해 보십시오.
- 검색하려는 객체가 직사각형이나 원형처럼 대칭이거나, 특정 위치 범위 내에서만 객체가 나타날 것으로 예상되는 경우 감지 각도를 제한하십시오.
- 검색하려는 객체의 가장자리가 명확한 경우 대신 Geometric Pattern Matching vTool을 사용하는 것을 고려해 보세요. 이 알고리즘은 이미지 파트 대신 가장자리를 감지하므로 처리가 빨라지고 Memory가 절약됩니다.
- 이미지 해상도가 매우 높은 경우 Image Transformer vTool을 사용하여 이미지의 Scaling을 낮춘 다음 템플릿을 검색해 보세요.
일반적인 사용 사례#
- Counting 객체: 이 경우 Scores 출력 pin의 요소 수만 관련이 있습니다.
- image coordinates에서 Locating 객체: 후속 처리를 위해 Positions_px 및 Angles_rad 출력 pin을 사용하십시오.
- world coordinates에서 Locating 객체: 객체의 위치를 전송하려면(예: 로봇이 객체를 집어 들 수 있도록) Positions_m 및 Angles_rad 출력 pin을 사용하십시오.
Template Matching Starter#
다양한 방향의 객체를 감지하려면 Rotation 확인란을 활성화하십시오. 이렇게 하면 Model Settings 영역의 옵션을 사용할 수 있게 됩니다. 이를 통해 목표 각도와 객체가 목표 각도에서 벗어날 수 있는 허용 오차를 정의할 수 있습니다. Increment 옵션을 사용하면 단계별로 감지가 수행되도록 지정할 수 있습니다. 더 큰 Increment를 선택하면 처리가 빨라지므로 감지 속도가 빨라집니다.
이미지에서 감지하려는 객체 수를 지정하거나 무제한으로 객체를 검색할 수 있습니다. 일치 항목 수를 예상되는 수로 제한하면 처리가 더 빠르고 안정적입니다.
score 값을 조정하여 객체가 학습된 객체와 얼마나 일치해야 하는지 지정할 수 있습니다.
Template Matching Starter는 원하는 객체가 있는 영역을 표시하기 위해 경계 상자를 사용합니다. 이미지를 로드하면 직사각형이 자동으로 표시됩니다. 이를 원하는 대상 객체 주위에 배치하고 필요한 경우 크기를 조정합니다. 직사각형의 핸들을 사용하거나 Rectangle Settings 영역에서 원하는 값을 수동으로 입력하여 이 작업을 수행할 수 있습니다.
vTool 구성#
Template Matching Starter vTool을 구성하려면:

- vTool Settings 영역의 Recipe Management 창에서 Open Settings를 클릭하거나 vTool을 더블 클릭합니다.
Template Matching Starter 대화 상자가 열립니다. - 티칭 이미지를 캡처하거나 엽니다.
Single Shot 버튼을 사용하여 라이브 이미지를 캡처하거나 Open Image 버튼을 클릭하여 기존 이미지를 열 수 있습니다. - Rectangle Settings 영역에서 템플릿으로 사용할 객체에 맞게 직사각형의 위치를 지정하고 크기를 조정합니다.
- 도구 모음에서 Teach 버튼을 클릭하여 매칭 모델을 학습(Teach)시킵니다.
- 원하는 경우 Execution Settings 영역의 Matches 설정을 조정하여 일치 항목 수를 최대값으로 제한합니다.
- 필요한 경우 대상 객체만 찾을 수 있도록 Score 설정을 조정합니다.
- 단일 일치 항목에 대한 정렬 변환 데이터를 출력할지, 아니면 발견된 모든 일치 항목에 대해 출력할지 지정합니다.
pin data view에서 템플릿 매칭 결과를 확인할 수 있습니다. 여기에서 표시할 출력을 선택할 수 있습니다.
Template Matching Basic#
다양한 방향의 객체를 감지하려면 Model Settings 영역의 옵션을 사용하십시오. 이를 통해 목표 각도와 객체가 목표 각도에서 벗어날 수 있는 허용 오차를 정의할 수 있습니다.
이미지에서 감지하려는 객체 수를 지정하거나 무제한으로 객체를 검색할 수 있습니다. 일치 항목 수를 예상되는 수로 제한하면 처리가 더 빠르고 안정적입니다.
score 값을 조정하여 객체가 학습된 객체와 얼마나 일치해야 하는지 지정할 수 있습니다.
시간이 중요한 응용 프로그램의 경우 시간 초과(timeout)를 지정할 수 있습니다. 시간 초과는 처리 시간이 다양하거나 예를 들어 이미지에 학습된 객체가 포함되지 않은 경우 등 예측할 수 없는 경우에 유용합니다.
vTool 구성#
Template Matching Basic vTool을 구성하려면:

- vTool Settings 영역의 Recipe Management 창에서 Open Settings를 클릭하거나 vTool을 더블 클릭합니다.
Template Matching Basic 대화 상자가 열립니다. - 티칭 이미지를 캡처하거나 엽니다.
Single Shot 버튼을 사용하여 라이브 이미지를 캡처하거나 Open Image 버튼을 클릭하여 기존 이미지를 열 수 있습니다. - 펜을 사용하여 이미지에서 원하는 영역을 표시합니다.
그림을 수정하려면 지우개를 사용하거나 완전히 삭제할 수 있습니다. - 도구 모음에서 Teach 버튼을 클릭하여 매칭 모델을 학습(Teach)시킵니다.
- 필요한 경우 Show Reference Point를 클릭하여 기준점을 표시합니다.
기준점은 템플릿 영역의 중앙에 표시되며 Set Reference Point Manually 버튼을 사용할 수 있게 됩니다. 이제 기준점을 원하는 위치로 드래그할 수 있습니다. Set Reference Point Manually를 다시 클릭하면 기준점이 기본 위치로 돌아갑니다. - 필요한 경우 Model Settings 영역에서 회전 각도와 공차를 정의합니다.
- 원하는 경우 Execution Settings 영역의 Matches 설정을 조정하여 일치 항목 수를 최대값으로 제한합니다.
- 필요한 경우 대상 객체만 찾을 수 있도록 Score 설정을 조정합니다.
- 시간 초과를 지정하려면 No timeout 확인란의 선택을 해제하고 입력 필드에 원하는 시간 초과 값을 입력합니다.
- 단일 일치 항목에 대한 정렬 변환 데이터를 출력할지, 아니면 발견된 모든 일치 항목에 대해 출력할지 지정합니다.
pin data view에서 템플릿 매칭 결과를 확인할 수 있습니다. 여기에서 표시할 출력을 선택할 수 있습니다.
Inputs#
Image#
Camera vTool 또는 이미지를 출력하는 vTool(예: Image Format Converter vTool)로부터 직접 이미지를 수신합니다.
- Data type: Image
- 이미지 포맷: 8비트~16비트 모노 또는 컬러 이미지. 컬러 이미지는 내부적으로 모노 이미지로 변환됩니다. Starter 버전은 8비트 Pixel Format을 지원합니다.
Roi#
ROI Creator vTool 또는 영역이나 사각형을 출력하는 다른 vTool에서 관심 영역을 수신합니다. 여러 개의 사각형이나 영역은 내부적으로 병합되어 하나의 관심 영역을 형성합니다. Starter 버전은 RectangleF만 지원합니다.
- 데이터 유형: RectangleF, RectangleF Array, Region, Region Array
변환(Transformation)#
Calibration vTool에서 변환 데이터를 허용합니다.
- 데이터 유형: Transformation Data
Outputs#
점수#
일치 항목의 점수를 내림차순으로 반환합니다.
- 데이터 유형: Float Array
Positions_px#
이미지 좌표(행/열)로 일치 항목의 위치를 반환합니다.
- 데이터 유형: PointF Array
Positions_m#
미터 단위(x/y)의 월드 좌표로 일치 항목의 위치를 반환합니다.
- 데이터 유형: PointF Array
Angles_rad#
라디안 단위로 일치 항목의 방향을 반환합니다.
- 데이터 유형: Float Array
Regions#
발견된 모든 일치 항목에 대한 영역을 반환합니다.
- Data type: Region Array
AlignmentTf#
Image Alignment vTool이(가) 입력 이미지의 개체를 매칭 중에 사용된 기준 개체와 정렬하는 데 사용하는 변환 데이터를 반환합니다. 정렬 변환 출력(alignment transformation output)이 Single value로 설정됩니다.
- 데이터 유형: Transformation Data
AlignmentTfs#
Image Alignment vTool이(가) 입력 이미지의 개체를 매칭 중에 사용된 기준 개체와 정렬하는 데 사용하는 변환 데이터를 반환합니다. 정렬 변환 출력(alignment transformation output)이 Array로 설정됩니다.
- 데이터 유형: Transformation Data Array