콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

Template Matching vTool#

Template Matching vTool을 사용하면 이미지에서 객체를 감지할 수 있습니다. 감지는 학습된 템플릿의 픽셀 회색조 값 정보를 기반으로 합니다.

흐린 가장자리나 명확하게 정의되지 않은 경계가 있는 객체를 감지하는 데 가장 적합합니다. Basler는 픽셀의 회색조 값 정보를 비교하는 데 많은 처리 시간과 Memory가 소요되므로 작은 객체에 사용하는 것을 권장합니다.

Template Matching vTool은 Image 입력 핀을 통해 이미지를 수신하고 output pins을 통해 찾은 일치 항목에 대한 정보를 출력합니다.

또한 Image Alignment vTool이 입력 이미지를 매칭 중에 사용된 기준 이미지와 정렬할 수 있도록 정렬 변환 데이터를 출력합니다. 이를 통해 Measurements vTools는 기준 이미지와 다른 위치에 있는 객체를 측정할 수 있습니다.

ROI Creator vTool을 사용하여 관심 영역을 지정하면 Template Matching vTool은 Roi 입력 핀을 통해 ROI 데이터를 수신합니다. 이 경우 매칭 모델의 default reference point가 관심 영역 내에 있는 경우에만 객체가 발견됩니다.

ROI(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 Basic vTool

Template Matching 버전#

Template Matching vTool은 두 가지 버전으로 제공됩니다. 다음 표는 버전 간의 차이점을 보여줍니다. 이 항목의 관련 섹션으로 바로 가려면 표 제목에 있는 버전을 클릭하십시오.

Starter Basic
템플릿을 어떻게 정의하십니까? 원하는 객체 주위로 직사각형을 맞춥니다. 펜 도구를 사용하여 원하는 객체의 외곽선을 추적합니다.
timeout을 지정할 수 있습니까? No Yes
reference point를 정의할 수 있습니까? No Yes
학습된 객체와 angles가 다른 객체를 감지할 수 있습니까? No Yes
Roi 입력 핀에 유효한 데이터 형식 RectangleF RectangleF, RectangleF Array, Region, Region Array
입력으로 지원되는 pixel formats는 무엇입니까? 8비트 모노 또는 컬러 이미지 8비트~16비트 모노 또는 컬러 이미지
라이선스 구매 pylon Software Suite에 포함됨 Basler 웹사이트 방문

작동 원리#

템플릿을 정의하고 입력 이미지에 적용하여 매칭에 대한 다음 정보를 수집할 수 있습니다.

  • 매칭 점수
  • 위치
  • 방향
  • 매칭 시각화가 포함된 영역

템플릿 정의#

템플릿 매칭의 첫 번째 단계는 애플리케이션에서 감지할 객체의 대표 이미지를 기반으로 모델을 학습하는 것입니다.

이 학습 이미지에서 원하는 영역을 표시하고 학습시킵니다. 애플리케이션은 이 모델을 사용하여 생산 환경에서 해당 객체를 감지합니다.

이미지에 완전히 보이는 객체만 감지할 수 있습니다. 즉, 템플릿 이미지에 표시된 영역이 검색 이미지 내에 완전히 포함되어야 합니다. 따라서 원하는 객체를 표시할 때 매우 정밀하게 수행하고 가능한 가장 작은 펜을 사용하십시오.

객체는 학습된 모델의 객체와 정확히 같은 크기여야 하며 카메라로부터 동일한 거리에 있어야 합니다.

템플릿 매칭은 모델과 검색 이미지의 회소값 정보를 직접 기반으로 합니다. 템플릿 매칭은 정규화된 상호 상관 알고리즘을 사용합니다.

정보

  • 템플릿으로 사용할 대표 이미지를 선택합니다.
  • 템플릿 이미지에서 대상 객체의 영역을 지정할 때, 해당 객체의 특징이 잘 나타나며 검색 이미지에도 일반적으로 존재하는 영역을 선택하십시오.

기준점 사용#

Template Matching Basic vTool을 사용하면 마크한 객체 내에 기준점을 표시할 수 있습니다. 기본적으로 기준점은 객체의 무게 중심에 위치합니다. 대부분의 애플리케이션에서 이 설정은 잘 작동합니다.

정보

Region of Interest를 사용하는 경우, 기본 기준점은 Region of Interest 내부에 위치해야 합니다.

필요한 경우 기준점을 다른 위치로 이동할 수 있습니다. 예를 들어 로봇 피킹 애플리케이션을 들 수 있습니다. 이러한 시나리오에서는 비전 시스템이 로봇의 그리퍼와 집어 올릴 객체의 형상을 고려하여 로봇의 그리핑 위치를 결정해야 합니다. 여기서는 이 두 가지 측면을 모두 수용할 수 있도록 그에 맞춰 기준점을 배치할 수 있습니다.

기준점을 표시하려면 먼저 티칭 이미지에서 템플릿 영역을 마크해야 합니다.

모델 설정#

티칭된 모델의 객체와 방향이 다른 객체를 감지하려면, 목표 각도를 정의하고 객체가 목표 각도에서 벗어날 수 있는 허용 오차 값을 추가할 수 있습니다. 이 기능은 vTool의 Basic 버전에서만 사용할 수 있습니다.

실행 설정#

  • Matches: 애플리케이션에서 발생할 수 있는 객체의 수가 제한된 경우, 가능한 매치 수를 정확히 이 숫자로 제한할 수 있습니다. 이를 통해 처리 속도와 안정성을 높일 수 있습니다.
  • Score: 모든 매치에 대해 스코어 값이 계산됩니다. 이 스코어는 모델의 영역과 검색 이미지에서 매치된 영역 간의 상관계수입니다.
    최적의 Score 설정을 찾으려면 중간 정도의 값으로 시작하여 일부 Test Images를 실행해 보십시오. Scores 핀의 출력 값을 관찰합니다. 매치를 안정적으로 찾으려면 항상 Score 옵션을 Scores 핀이 출력하는 스코어보다 낮은 값으로 설정하십시오. 이는 일부 공차를 허용하기 위해 권장되는 모범 사례입니다.
    Test Image에서 확인된 가장 낮은 스코어 출력 값의 50~80% 사이에서 스코어 값을 선택하십시오. 스코어가 너무 낮게 설정되면 원치 않는 매치도 감지될 수 있습니다. 이 경우 의도한 객체만 Test Images에서 발견될 때까지 스코어 값을 다시 조정하십시오.
    이미지에서 여러 매치가 발견되는 경우, 스코어의 내림차순으로 정렬됩니다.
  • Timeout: 시간 제약이 중요한 애플리케이션의 경우 타임아웃을 지정할 수 있습니다. 타임아웃은 처리 시간이 가변적이거나 예측할 수 없는 경우(예: 이미지에 티칭된 객체가 포함되지 않은 경우)에 도움이 됩니다. 타임아웃을 지정하면 지정된 시간이 지난 후 감지 프로세스가 중지되고 다음 이미지로 이동합니다.
    Basler는 원하는 제한 시간보다 약간 낮게 타임아웃을 설정할 것을 권장합니다. 이는 vTool이 감지 프로세스를 즉시 중지하지 않기 때문입니다. 따라서 타임아웃을 원하는 제한 시간의 70~80%로 설정하십시오.

출력 설정#

정렬 변환#

정렬 변환 데이터를 출력하려면 다음 두 가지 옵션 중에서 선택할 수 있습니다.

  • Single value: 첫 번째 매치에 대한 정렬 변환 데이터만 출력합니다. 이 경우 출력 핀 이름은 AlignmentTf입니다.
  • Array: 찾은 모든 매치에 대한 정렬 변환 데이터를 배열로 출력합니다. 이 경우 출력 핀 이름은 AlignmentTfs입니다.

정보

이 기능이 도입되기 전에 생성된 레시피도 계속 작동합니다. 이러한 레시피를 로드하면 정렬 변환 출력이 Single value로 설정됩니다. 필요한 경우 이를 변경할 수 있습니다.

위치 출력#

vTool의 Basic 버전에서는 매치된 객체 위치의 절대 좌표 또는 상대 좌표 중 어떤 것을 출력할지 선택할 수 있습니다.

  • Absolute는 좌표가 이미지 좌표계의 원점(0,0)을 기준으로 함을 의미합니다. 영역 픽셀의 좌표도 원점을 기준으로 합니다.
  • Relative는 좌표가 reference point에 상대적임을 의미합니다. 영역 픽셀의 좌표는 그에 따라 변환됩니다.

캘리브레이션 사용#

매치의 결과 위치를 미터 단위의 월드 좌표로 출력할 수도 있습니다. 이를 달성하려면 Calibration vTool의 Transformation 출력 핀을 Template Matching vTool의 Transformation 입력 핀에 연결하십시오.

Template Matching vTool을 설정할 때는 실제 처리와 동일한 캘리브레이션 구성을 사용해야 합니다.

정보

  • 2차원 이미지를 생성하는 3차원 월드 공간의 객체 표면은 공간의 동일한 평면상에 대략적으로라도 위치해야 합니다. 이 경우 월드에서의 객체 위치와 이미지의 모서리 차이로 인한 원근 왜곡 효과는 무시할 수 있습니다.
  • 광각 렌즈는 광학적 설정으로 인해 상당한 원근 왜곡을 유발합니다. 이러한 렌즈의 경우, 검사 대상 객체는 객체와 카메라 간의 거리에 비해 높이가 낮아야 합니다. 또는 객체 높이를 무시할 수 없는 경우, 템플릿 이미지에서 동일한 높이 레벨의 영역을 선택하십시오.
  • 캘리브레이션 설정 중에 캘리브레이션 플레이트의 표면을 이 평면에 배치하여 객체의 평면을 등록합니다.

문제 해결#

팁

발생할 수 있는 잠재적인 문제 목록은 다음과 같습니다.

  • 티칭 프로세스에 오랜 시간이 소요됨
  • vTool의 실행 시간이 매우 긺
  • Recipe 용량이 너무 큽니다.

이러한 문제가 발생하는 경우 다음과 같은 최적화 방법을 고려해 보세요.

  • 검색하려는 대상이 직사각형이나 원형처럼 대칭이거나, 특정 위치 범위 내에서만 나타날 것으로 예상되는 경우 감지 각도를 제한하십시오.
  • 검색하려는 대상의 윤곽이 뚜렷하다면 대신 Geometric Pattern Matching vTool 사용을 고려해 보세요. 이 알고리즘은 이미지의 일부분 대신 윤곽을 감지하므로 처리 속도가 빨라지고 memory가 절약됩니다.
  • 이미지 해상도가 매우 높은 경우 Image Transformer vTool을 사용하여 이미지의 해상도를 낮춘(downscaling) 다음 템플릿을 검색해 보세요.

일반적인 사용 사례#

  • Counting 개체: 이 경우 Scores output pin의 요소 수만 관련이 있습니다.
  • image coordinates에서 Locating 개체: 후속 처리를 위해 Positions_px 및 Angles_rad output pin을 사용합니다.
  • world coordinates에서 Locating 개체: 예를 들어 개체를 집어 올리도록 로봇에 개체의 위치를 전송하려면 Positions_m 및 Angles_rad output pin을 사용합니다.

Template Matching Starter#

다양한 방향의 개체를 감지하려면 Rotation 확인란을 활성화하세요. 이렇게 하면 Model Settings 영역의 옵션을 사용할 수 있습니다. 이를 통해 목표 각도와, 개체가 목표 각도에서 벗어날 수 있는 허용 오차를 정의할 수 있습니다. Increment 옵션을 사용하면 단계별로 감지가 수행되도록 지정할 수 있습니다. 더 큰 increment를 선택하면 처리가 빨라지므로 감지 속도가 빨라집니다.

이미지에서 감지할 개체 수를 지정하거나 무제한으로 개체를 검색할 수 있습니다. 매치 수를 예상되는 수로 제한하면 처리가 더 빠르고 안정적으로 이루어집니다.

score 값을 조정하여 개체가 학습된 개체와 얼마나 일치해야 하는지 지정할 수 있습니다.

Template Matching Starter는 원하는 개체가 있는 영역을 표시하기 위해 경계 상자(bounding box)를 사용합니다. 이미지를 로드하면 사각형이 자동으로 표시됩니다. 원하는 대상 개체 주변에 이를 배치하고 필요한 경우 크기를 조정합니다. 사각형의 핸들을 사용하거나 Rectangle Settings 영역에서 원하는 값을 수동으로 입력하여 이 작업을 수행할 수 있습니다.

vTool 설정하기#

Template Matching Starter vTool을 구성하려면:

Template Matching Starter vTool Settings

  1. vTool Settings 영역의 Recipe Management 창에서 Open Settings를 클릭하거나 vTool을 더블 클릭합니다.
    Template Matching Starter 대화 상자가 열립니다.
  2. 학습 이미지를 캡처하거나 엽니다.
    Single Shot 버튼을 사용하여 라이브 이미지를 획득하거나 Open Image 버튼을 클릭하여 기존 이미지를 열 수 있습니다.
  3. Rectangle Settings 영역에서 템플릿으로 사용할 개체에 맞게 사각형의 위치를 지정하고 크기를 조정합니다.
  4. 도구 모음에서 Teach 버튼을 클릭하여 매칭 모델을 학습시킵니다.
  5. 필요한 경우 Execution Settings 영역에서 Matches 설정을 조정하여 매치 수를 최대로 제한할 수 있습니다.
  6. 필요한 경우 target object만 찾을 수 있도록 Score 설정을 조정합니다.
  7. 단일 매치에 대한 정렬 변환 데이터를 출력할지, 아니면 찾은 모든 매치에 대해 출력할지 지정합니다.

pin data view에서 템플릿 매칭 결과를 확인할 수 있습니다. 여기에서 표시할 output을 선택할 수 있습니다.

Template Matching Basic#

다양한 방향의 개체를 감지하려면 Model Settings 영역의 옵션을 사용하세요. 이를 통해 목표 각도와, 개체가 목표 각도에서 벗어날 수 있는 허용 오차를 정의할 수 있습니다.

이미지에서 감지할 개체 수를 지정하거나 무제한으로 개체를 검색할 수 있습니다. 매치 수를 예상되는 수로 제한하면 처리가 더 빠르고 안정적으로 이루어집니다.

score 값을 조정하여 개체가 학습된 개체와 얼마나 일치해야 하는지 지정할 수 있습니다.

시간이 중요한 애플리케이션의 경우 timeout을 지정할 수 있습니다. timeout은 처리 시간이 다양하거나, 예를 들어 이미지에 학습된 개체가 포함되지 않아 처리 시간을 예측할 수 없는 경우에 유용합니다.

vTool 설정하기#

Template Matching Basic vTool을 구성하려면:

Template Matching Basic vTool Settings

  1. vTool Settings 영역의 Recipe Management 창에서 Open Settings를 클릭하거나 vTool을 더블 클릭합니다.
    Template Matching Basic 대화상자가 열립니다.
  2. 학습 이미지를 캡처하거나 엽니다.
    Single Shot 버튼을 사용하여 라이브 이미지를 획득하거나 Open Image 버튼을 클릭하여 기존 이미지를 열 수 있습니다.
  3. 펜을 사용하여 이미지에서 원하는 영역을 표시합니다.
    그린 영역을 수정하려면 지우개를 사용하거나 완전히 삭제할 수 있습니다.
  4. 도구 모음에서 Teach 버튼을 클릭하여 매칭 모델을 학습시킵니다.
  5. 필요한 경우 Show Reference Point를 클릭하여 기준점을 표시합니다.
    기준점은 템플릿 영역의 중앙에 표시되며 Set Reference Point Manually 버튼을 사용할 수 있게 됩니다. 이제 기준점을 원하는 위치로 드래그할 수 있습니다. Set Reference Point Manually를 다시 클릭하면 기준점이 기본 위치로 되돌아갑니다.
  6. 원하는 경우 Model Settings 영역에서 회전 각도와 공차를 정의합니다.
  7. 필요한 경우 Execution Settings 영역에서 Matches 설정을 조정하여 매치 수를 최대로 제한할 수 있습니다.
  8. 필요한 경우 target object만 찾을 수 있도록 Score 설정을 조정합니다.
  9. 타임아웃을 지정하려면 No timeout 체크 박스를 해제하고 입력 필드에 원하는 타임아웃을 입력합니다.
  10. 단일 매치에 대한 정렬 변환 데이터를 출력할지, 아니면 찾은 모든 매치에 대해 출력할지 지정합니다.

pin data view에서 템플릿 매칭 결과를 확인할 수 있습니다. 여기에서 표시할 output을 선택할 수 있습니다.

입력#

이미지#

Camera vTool 또는 이미지를 출력하는 vTool(예: Image Format Converter vTool)에서 직접 이미지를 허용합니다.

  • 데이터 형식: 이미지
  • 이미지 포맷: 8비트~16비트 모노 또는 컬러 이미지. 컬러 이미지는 내부적으로 모노 이미지로 변환됩니다. Starter 버전은 8비트 Pixel Format을 지원합니다.

ROI#

ROI Creator vTool 또는 영역이나 직사각형을 출력하는 기타 vTool에서 관심 영역을 수신합니다. 여러 직사각형이나 영역은 내부적으로 병합되어 단일 관심 영역을 형성합니다. Starter 버전은 RectangleF만 지원합니다.

  • Data type: RectangleF, RectangleF Array, Region, Region Array

변환#

Calibration vTool에서 변환 데이터를 허용합니다.

  • 데이터 형식: 변환 데이터

출력#

Scores#

일치 항목의 스코어를 내림차순으로 반환합니다.

  • 데이터 타입: Float Array

Positions_px#

이미지 좌표계(행/열)에서의 일치 항목 위치를 반환합니다.

  • Data type: PointF Array

Positions_m#

미터 단위의 월드 좌표계(x/y)에서의 일치 항목 위치를 반환합니다.

  • Data type: PointF Array

Angles_rad#

라디안 단위의 일치 항목 방향을 반환합니다.

  • 데이터 타입: Float Array

Regions#

찾은 각 일치 항목에 대한 영역을 반환합니다.

  • 데이터 타입: Region Array

AlignmentTf#

Image Alignment vTool이 입력 이미지의 개체를 매칭 중에 사용된 기준 개체와 정렬하는 데 사용하는 변환 데이터를 반환합니다. alignment transformation output이 Single value로 설정됩니다.

  • 데이터 형식: 변환 데이터

AlignmentTfs#

Image Alignment vTool이 입력 이미지의 개체를 매칭 중에 사용된 기준 개체와 정렬하는 데 사용하는 변환 데이터를 반환합니다. alignment transformation output이 Array로 설정됩니다.

  • Data type: Transformation Data Array

일반적인 선행 vTools#

Typical Successors#