[TwinCAT 3 메뉴얼] TwinCAT Vision Object Detection

 TwinCAT Vision Object Detection

 

이 매뉴얼에서는 이미지에서 Object 검출하기 위한 TwinCAT Vision Functions 사용 방법을 제공합니다. 제공되는 두가 함수 모두 기본 함수 및 전문가 버전 함수를 제공하며 병렬 코드를 실행하기 위한 Job Task를 사용 할 수 있습니다.

l  Detect Blobs

l  Find Contours

해당 Functions 사용을 위해서는 (TF7100) TC3 Vision Base 기본 라이선스가 요구됩니다.



1.    Detect Blobs

2.    Find Contours

 

1.  Detect Blobs

이미지에서 Blob Binary Large Object의 줄임말로 같은 성질을 가지는 픽셀 Pixel) 들이 연결되어 있는 작은 집합이라고 할 수 있습니다.

TwinCAT Vision에서 제공하는 Detect blobs Functions 은 임계값 (Threshold), 윤곽 (Contour) 검색 방법을 적용하고 Contour를 필터링하기 위한 여러 옵션을 사용하여 Object를 검출할 수 있습니다.

 

   Blob 검출 방법 (필터링 방법)

이름

형식

초기 값

설명

bFilterByArea

BOOL

TRUE

영역(Area)에 의한 필터링 활성화

-      fMinArea <= area <= fMaxArea

-      fMinArea로 노이즈 필터링을 위해 활성화하는 것이 좋다

-      또는 F_VN_ContourArea을 통해 영역을 결정

bFilterByCircularity

BOOL

FALSE

원형(Circularity) 필터링 활성화

-      fMinCircularity <= circleity(4pi * area / perimeter^2) <= fMaxCircularity

-      또는 F_VN_ContourCircularity을 통해 원형도 결정

bFilterByConvexity

BOOL

FALSE

블록성(Convexity) 필터링 활성화

-      fMinConvexity <= convexity (area / hullArea) <= fMaxConvexity

bFilterByEccentricity

BOOL

FALSE

편심(Eccentricity) 필터링 활성화

-      fMinEccentricity <= eccentricity <= fMaxEccentricity

-      또는 F_VN_ContourEccentricity을 통해 편심 결정

bFilterByInertiaRatio

BOOL

FALSE

관성 비율(Inertia ratio)로 필터링 활성화

-      fMinInertiaRatio <= inertia ratio <= fMaxInertiaRatio


fMinArea

REAL

10

픽셀(pixel)단위의 최소 blob 영역

fMaxArea

REAL

100000000

픽셀(pixel)단위의 최대 blob 영역

fMinCircularity

REAL

0

최소 원형도

-      1.0: 이상적인 원

-      < 1: 덜 원형 (원형에 가깝지 않음)

-      0: 전혀 원형이 아님

fMaxCircularity

REAL

1

최대 원형도

fMinConvexity

REAL

0

최소 볼록성

-      1.0: 완전히 볼록함

-      < 1: 덜 볼록함

fMaxConvexity

REAL

1

최대 볼록성

fMinEccentricity

REAL

0

최소 편심

-      0.0: 원형

-      1.0: 선형

fMaxEccentricity

REAL

1

최대 편심

fMinInertiaRatio

REAL

0

최소 관성 비율

-      1.0: 동일한 너비 및 높이

-      0.0: 선형

fMaxInertiaRatio

REAL

1

최대 관성 비율

eThresholdType

ETcVnThresholdType

TCVN_TT_BINARY

내부적으로 적용된 임계값(Threshold) 방법의 유형

-      OTSU_XXX: USINT 이미지에 대해서만 지원됨.

fMinThreshold

REAL

30

시작할 임계값

-      fThresholdStep > 0이면 이 임계값만 사용됨

fMaxThreshold

REAL

225

종료되는 임계값

-      fThresholdStep > 0인경우 적용되고 그렇지 않으면 이 값이 사용되지 않는다.

fThresholdStep

REAL

0

1개의 단일 임계값을 사용해야 하는 경우 0으로 설정

-      단일 임계값은 여러 임계값보다 훨씬 빠른 결과

(F_VN_Threshold 사용과 같다)

fMinBlobDistance

REAL

5

두 개의 서로 다른 Blob의 중심점 사이의 최소 거리

-      fThresholdStep > 0인 경우에만 사용

-      distance < fMinBlobDistance인경우 Blob은 동일하게 처리됨

-      거리에 도달하지 않으면 eBlobCombination에 다라 선택.

nMinRepeatability

UDINT

2

동일한 윤곽선이 감지되어야 하는 최소 임계값 단계의 수(윤곽선을 찾아야 하는 빈도 수)

-      fThresholdStep > 0인 경우에만 사용

-      동일은 중심점 거리 < fMinBlobDistance를 의미

eBlobCombination

ETcVnBlobCombination

TCVN_BC_MEDIAN

_THRESHOLD

다중 임계값 Blob 윤곽 중에 어떤 것이 반환되어야 하는지 선택

 

       Detect Blobs Sample 결과 이미지



2.  Find Contours

   Contours란 동일한 색 또는 동일한 강도를 가지고 있는 영역의 경계선을 연결한 윤곽선(Contours)을 말합니다.

 TwinCAT Vision에서 제공되는 윤곽선 검출 함수(Find Contours) Object 구조를 판단하는데 가장 많이 사용되는 함수입니다.

 

    윤곽선 검색 방법

이름

설명

TCVN_CRM_EXTERNAL

외부 윤곽만 반환한다.


TCVN_CRM_LIST

윤곽 계층(Contour hierarchy) 구조를 고려하지 않고 발견된 모든 윤곽선을 반환한다.

TCVN_CRM_CONNECTED_COMPONENTS

2레벨의 계층(Hierarchy) 구조의 모든 윤곽선을 반환한다.

-      외부 윤곽선(Contours): Level 0

-      내부 윤곽선(Contours): Level 1 

TCVN_CRM_TREE

모든 윤곽과 전체 계층 구조를 반환한다.

e.g. Level1(빨간색), Level2(녹색), Level3(파란색), Level4(노란색)

TCVN_CRM_FLOODFILL

Floodfill 알고리즘을 사용하여 발견된 윤곽선을 반환한다.

-      DINT 이미지에서만 사용 가능.

 

   윤곽선 찾기 및 처리 순서

윤곽선 찾기 수(Find Contour)를 사용하기 위해서는 아래와 같은 순서로 처리합니다.


   결과 이미지



이상 자세한 내용은 네이버 카페(TwinCAT Vision Object Detection)의 첨부파일을 참고해주세요.


 

  문서의 무단전재  재배포를 금지합니다.

  문서는 Beckhoff Automation 한국 지사에서 교육을 목적으로 제작되었으며원문에 대한 잘못된 이해와 해석이 있을  있습니다정확한 내용은 Beckhoff Automation에서 배포하는 설명서인 Infosys (https://infosys.beckhoff.com/) 기준으로 하며 불일치하는 내용이 있을 경우 Infosys 내용을 우선시합니다.

  문서는 미완성본으로 추후 업데이트 내용이 있을  있습니다.


2021.12.10

작성자: Beckhoff Korea / Ivy Park

댓글

이 블로그의 인기 게시물

[IPC 메뉴얼] BECKHOFF PC 기본 설정 방법

트라이텍, EtherCAT과 DeviceNet [월간CONTROL 2013/11]

[쉽고 간단한 안내서] TwinCAT PLC HMI와 TwinCAT HMI