Skip to content

그래프 모듈 리스트

본 장에서는 인디아이 앱의 각 그래프 클래스의 모든 모듈에 대해 상세히 설명합니다. 그래프 모듈별 설명은 인디아이 앱의 모듈 도움말을 통해서도 확인할 수 있습니다. 인디아이 Docs 에서는 웹 페이지 검색 기능으로 사용하고자 하는 모듈에 대한 설명을 빠르게 찾아 활용하시길 바랍니다.

Refinement


  • Crop : 이미지에서 관심 영역만을 잘라냅니다. 이미지 크기가 바뀌므로 이후 로봇 좌표계와의 연동은 되지 않습니다.
  • ROI : 이미지의 관심 영역을 지정합니다. 이후 대부분의 알고리즘들은 이 영역 안에서 동작합니다.
    • CENTER X, CENTER Y : 관심 영역의 중심 위치
    • SIZE W, SIZE H : 관심 영역의 가로, 세로 크기
    • TOUCH : 화면을 터치하여 관심 영역 이동
  • ROIFromMask : 현재 인식 영역 주변을 이미지 관심 영역으로 지정합니다. 이후 대부분의 알고리즘들은 이 영역 안에서 동작합니다.
  • Resize : 이미지 크기를 (WIDTH, HEIGHT) 로 조정합니다. 이미지 크기가 조정된 경우 로봇 좌표계와의 연동에는 문제가 생기니 주의하십시오.
  • Sharpen : 이미지를 선명하게 보정합니다.
    • GAMMA : 보정 정도 (1에 가까울수록 선명해짐, 0에 가까울수록 원본에 가까움)
    • SIGMA : 각 픽셀이 보정 과정에서 영향을 받을 범위 (넓게 설정할수록 느르지만 더욱 선명해짐)
  • Smooth : 이미지의 노이즈를 제거하고 부드럽게 합니다.
    • SIGMA : 각 픽셀이 보정 과정에서 영향을 받을 범위 (넓게 설정할수록 느르지만 더욱 부드러워짐)

Detection


  • Background : 기록된 배경 이미지와 다른 부분을 물체로 인식합니다.
    • RECORD : 현재 이미지 기록
    • DETECT NUM : 최대 감지 수
    • DETECT SIZE : 설정 값보다 픽셀 수가 많아야 감지
    • SIZE CLOSE : 설정 값 만큼의 구멍은 무시하고 채워져있는 것으로 간주
    • SIZE OPEN : 설정 값 만큼의 노이즈는 무시하고 없는 것으로 간주
    • THRESHOLD : 설정 값 만큼의 색상 값이 기록된 이미지와 달라야 물체로 인식
  • DetectMarker : 제공된 마커의 3차원 위치를 인식합니다.
    • TYPE
      • maker : 툴 마커 인식
      • sheet : 캘리브레이션 시트 인식
  • DetectObject : 학습된 딥러닝 모델을 통해 한 가지 물체에 대해 인식합니다. 새로운 물체 학습은 고색센터로 문의바랍니다.
    • CONFIDENCE CUT : 감지 신뢰도의 하한선 (설정 값보다 신뢰도가 높은 감지 결과만 유효한 것으로 간주)
    • DETECTION NMS CUT : 설정 값보다 많이 겹치는 감지 결과는 신뢰도가 높은 것 하나만을 선택
    • REVERSE CHANNEL : 해당 옵션 선택 시 RGB 채널을 뒤집어 감지
    • RPN NMS CUT : 감지 시도할 영역의 겹침 정도의 상한선 (작을수록 서로 겹치는 다양한 영역에 대해 감지 시도)
    • SOYNET : 감지 및 로딩 속도를 가속시키는 딥러닝 솔루션 (모델 변환 시 시간이 걸리지만 한 번 변환 후에는 감지와 로딩 시간 대폭 감소)
    • MODEL : 대상 물체에 대해 학습된 모델 (고객 지원을 통해 공급)
  • MaskHSV : 특정 색조/채도/명도 영역을 물체로 인식합니다.
    • HUE, SATURATION, VALUE : 감지할 색조, 채도, 명도 값
      • HUE (색조) : 0~360의 값으로 큰 값일수록 빨강-노랑-파랑-보라 순서로 변화
      • SATURATION (채도) : 0~100의 값으로 색의 진함을 표현
      • VALUE (명도) : 0~100의 값으로 색의 밝기를 표현
    • DETECT NUM : 최대 감지 수
    • DETECT SIZE : 설정 값보다 픽셀 수가 많아야 감지
    • RANGE H, S, V : 감지할 색상 범위 (목표 색상 값의 위/아래로 해당 값 이내이면 물체로 감지)
    • SIZE CLOSE : 설정 값 만큼의 구멍은 무시하고 채워져있는 것으로 간주
    • SIZE OPEN : 설정 값 만큼의 노이즈는 무시하고 없는 것으로 간주
    • TOUCH : 화면을 터치하여 기준 HSV 값을 현재 터치한 영역의 값으로 설정
  • MaskRGB : 특정 색상 영역을 물체로 인식합니다.
    • BLUE, GREEN, RED : 감지할 색상 값
    • DETECT NUM : 최대 감지 수
    • DETECT SIZE : 설정 값보다 픽셀 수가 많아야 감지
    • RANGE B, G, R : 감지할 색상 범위 (목표 색상 값의 위/아래로 해당 값 이내이면 물체로 감지)
    • SIZE CLOSE : 설정 값 만큼의 구멍은 무시하고 채워져있는 것으로 간주
    • SIZE OPEN : 설정 값 만큼의 노이즈는 무시하고 없는 것으로 간주
    • TOUCH : 화면을 터치하여 기준 RGB 값을 현재 터치한 영역의 값으로 설정
  • MatchFeature : 특징점을 기반으로 물체를 감지합니다.
    • COUNT KPT : 하나의 물체를 감지하는데 사용할 특징점 수 (작을수록 감지가 쉽지만 정확도 감소)
    • DETECT NUM : 최대 감지 수
    • ERROR CUT : 유효한 감지로 간주할 에러의 상한선 (물체 감지가 안될 시 값 증가 필요하지만 정확도 다소 감소)
    • MATCH THRESH : 같은 특징점으로 간주하는 특징값 차이의 상한선 (클수록 더 많은 특징점을 찾지만 정확도 감소)
    • RANSAC NUM : 물체 찾기를 시도할 횟수 (클수록 감지 정확도는 증가하지만 속도 하락)
    • TEMPLATE : 감지할 대상 선택 (대상 물체의 이미지는 사전 저장 필요)
  • MatchRPT : Rotation Projection Transformation (RPT) 은 회전에 강건한 템플릿 인식 방법입니다. 각도와 상관없이 물체 감지가 가능하지만 정사각형에 가까운 템플릿을 필요로합니다. 정사각형이 아닐 경우, 짧은 변을 기준으로 템플릿을 잘라 적용합니다.
    • ANGLE BINS : 각도 추정의 정확도 (36인 경우, 360도를 36개로 나누어 추정하므로 10도 내외의 정확도 확보 가능)
    • CONCORDANCE CUT : RPT 일치율의 하한선 (클수록 일치율이 높은 결과만 감지)
    • DETECT NUM : 최대 감지 수
    • REF SIZE : 견본 이미지를 축소/확대할 크기 (작게 축소할수록 속도가 상승하지만 정확도 감소)
    • TEMPLATE : 감지할 대상 선택 (대상 물체의 이미지는 사전 저장 필요)
  • MatchTemplate : 고전적인 템플릿 매칭을 통해 물체를 인식합니다. 견본 이미지와 각도가 크게 다른 물체는 감지할 수 없습니다.
    • CONCORDANCE CUT : 견본 이미지와 일치율의 하한선 (클수록 일치율이 높은 결과만 감지)
    • DETECT NUM : 최대 감지 수
    • REF SIZE : 견본 이미지를 축소/확대할 크기 (작게 축소할수록 속도가 상승하지만 정확도 감소)
    • TEMPLATE : 감지할 대상 선택 (대상 물체의 이미지는 사전 저장 필요)
  • OCR : 영상에서 글자를 감지합니다.
    • REGISTER : 현재 보이는 텍스트의 이름 등록
      • Gripper, If 등의 모듈을 뒤에 사용할 경우, 구분을 위해 이름 필요 (영문 텍스트만 등록 가능)
    • LANGUAGE : 선택된 언어의 텍스트 감지
  • ScanCode : 바코드와 QR 코드를 스캔합니다.
    • REGISTER : 감지된 코드에 대한 이름 등록
      • Gripper, If 등의 모듈을 뒤에 사용할 경우, 구분을 위해 이름 필요
    • NAME : 입력된 값이 해당 코드의 이름으로 지정 (공란일 경우, 인식된 코드의 텍스트 자체가 이름으로 지정)

Logic


  • Batch : 인식된 모든 물체에 대해 브랜치(아래쪽)의 파이프라인을 적용한 뒤, 다음 노드(오른쪽)로 진행합니다.
    • DROP FAIL : 해당 옵션을 활성화한 경우, 브랜치 파이프라인에서 검사에 탈락한 물체를 삭제
  • Get : Post 모듈에서 저장된 변수들을 불러옵니다.
    • KEY : 불러올 데이터의 이름 선택
  • GoTo : 그래프 상에 추가되어 있는 Join 노드로 이동합니다.
    • GO TO : 이동할 Join 노드의 이름 선택
  • If : 조건에 따라 다른 방향으로 진행합니다. 조건문이 참일 경우 Y 브랜치, 거짓일 경우 N 브랜치로 진행합니다.
    • KEY : 기준이 될 변수의 이름
      • target : 목표로 지정된 이름
      • name : 현재 물체에 지정된 이름
      • passed : 지금까지 검사에서 정상으로 판정되었는 지 표출
    • METHOD : 비교 방법, 동일(==), 다름(!=), 이상(>=), 이하(<=), 보다 큼(>), 보다 작음(<)
    • VALUE : 비교 기준 값
  • Join : GoTo 모듈에서 이동해 올 지점을 표시합니다.
    • NAME : 노드의 이름 입력
  • Post : 현재까지의 연산 결과를 저장합니다.
    • KEY : 저장할 변수의 이름 입력
    • VARIABLE : 어떤 값을 저장할 지 표출 (all 을 선택하여 전체 변수 저장하거나 특정 변수만 지정해 저장 가능, 리스트에는 앞쪽의 모듈들이 전달해주는 변수들만 표시)
  • Select : 인식된 물체 중 하나를 선택합니다. Detection 클래스의 모듈 이후에는 반드시 추가되어야 합니다.
    • KEY : 선택 기준, 인식점수 (score), 크기 (size), 카메라 기준 위치 (X,Y,Z-camera)
    • METHOD : 선택 방법 (기준 값이 가장 큰 물체 혹은 가장 작은 물체 선택 가능)
    • ON RETRIEVE : 해당 옵션을 활성화한 경우, 실행 명령은 여기서 끝나고 Conty 의 retrieve 명령이 해당 노드에서 시작 (한 번 선택된 물체는 지워지고 다음 명령에서는 다음 물체가 순차적으로 진행)
  • SubGraph : 저장된 그래프 중 하나를 불러와 실행합니다.
    • NAME : 불러올 그래프의 이름 (저장된 그래프 중 선택)
  • Switch : 여러 선택지로 갈라질 수 있는 경우, 파이프라인의 분기를 나타냅니다.
    • 선택지의 개수만큼 여러 개의 Switch 모듈을 아래쪽으로 이어붙인 후, 맨 위의 Switch 모듈에서 KEY 변수를 통해 기준 선택
    • Switch 마다 VALUE 지정, VALUE 에 따라 해당되는 Switch 의 오른쪽에 연결된 파이프라인 실행

Info


  • Label : 현재 인식된 물체에 이름을 부여합니다. Gripper, If 등의 모듈을 뒤에 사용할 경우, 구분을 위해 이름이 필요합니다.
    • NAME : 입력된 텍스트로 이름 지정
  • Pass : 현재 인식된 물체의 pass (검사 성공) 여부를 강제 지정합니다.
    • STATE : 선택된 상태가 강제 지정
  • Target : 인식 대상 물체를 지정합니다. Conty 에서 인식 대상을 지정하는 것과 동일한 명령이며, 이 모듈이 추가된 경우 Conty 에서 지정된 대상을 무시하고 모듈에서 지정한 대상을 인식합니다. 따라서 테스트용으로 이 모듈을 사용하더라도, Conty 와 연동하는 시점에서는 이 모듈을 삭제하십시오.
    • TARGET : 대상 선택

Segmentation


  • DilateMask : 인식된 영역을 주변으로 확장합니다.
    • SIZE DILATE : 해당 값을 조절해 인식된 영역을 확장
  • ErodeMask : 인식된 영역을 축소시킵니다.
    • SIZE ERODE : 해당 값을 조절해 인식된 영역을 축소
  • Fill : 인식된 영역 안쪽에 빈 영역이 많을 경우, 인식된 영역을 채웁니다. 안쪽으로 굴곡진 영역도 채워넣습니다.
  • GrabCut : 영역 분할 알고리즘입니다. 1초 정도 추가 시간이 소요되지만, 현재 인식된 영역을 중심으로 물체 영역을 보다 정확하게 분리해냅니다.
    • ITERATION : 알고리즘을 적용할 횟수 (여러 번 적용할수록 정확도는 증가하지만 속도는 하락)
    • RESIZE : 해당 비율로 축소해서 알고리즘 적용 (축소를 많이 할수록 속도는 상승하지만 정확도 감소)
    • SIZE CLOSE : 설정 값 만큼의 구멍은 무시하고 채워져있는 것으로 간주
    • SIZE DILATE : 현재 인식된 영역 주변으로 알고리즘을 적용할 범위 (너무 넓게 잡을 경우 다른 물체들의 영향 받음, 너무 좁을 경우 대상 물체를 다 포함하지 못할 수 있음)
  • MaskFromROI : 주어진 관심 영역 (roi_rect) 을 마스크로 그립니다.
  • Polygon : polygon 이라는 포인트 리스트를 입력 받아 마스크로 그립니다. 각 포인트는 (x,y) 값 쌍입니다.
  • RefineEdge : 이미지에서 경계선 (밝기가 급격히 변하는 부분) 을 감지해 영역을 보정합니다.
    • CANNY MAX : Canny 알고리즘의 파라미터, 설정 값보다 변화폭이 큰 경계선은 무조건 검출
    • CANNY MIN : Canny 알고리즘의 파라미터, 설정 값보다 변화폭이 작은 경계선은 무조건 무시
    • SIZE DILATE : 현재 인식된 영역 주변으로 알고리즘을 적용할 범위 (너무 넓게 잡을 경우 다른 물체들의 영향 받음, 너무 좁을 경우 대상 물체를 다 포함하지 못할 수 있음)
    • SIZE ERODE : 현재 인식된 영역 안쪽으로 알고리즘을 적용할 범위 (현재 실제 물체보다 넓게 인식되어 있는 경우, 이 값을 크게 잡아서 보다 안쪽까지 체크 필요)
  • WaterShed : 기본적인 영역분할 알고리즘입니다.
    • SIZE DILATE : 현재 인식된 영역 주변으로 알고리즘을 적용할 범위 (너무 넓게 잡을 경우 다른 물체들의 영향 받음, 너무 좁을 경우 대상 물체를 다 포함하지 못할 수 있음)
    • SIZE ERODE : 현재 인식된 영역 안쪽으로 알고리즘을 적용할 범위 (현재 실제 물체보다 넓게 인식되어 있는 경우, 이 값을 크게 잡아서 보다 안쪽까지 체크 필요)

Inspection


  • CheckHSV : 인식 영역의 색조, 채도, 명도 값으로 색상을 검사합니다.
    • HUE, SATURATION, VALUE : 감지할 색조, 채도, 명도 값
      • HUE (색조) : 0~360의 값으로 큰 값일수록 빨강-노랑-파랑-보라 순서로 변화
      • SATURATION (채도) : 0~100의 값으로 색의 진함을 표현
      • VALUE (명도) : 0~100의 값으로 색의 밝기를 표현
    • MODE : 색상 값을 추출하는 방식, average (영역 내부 평균), center (영역 중심점의 값을 기준으로 검사)
    • RANGE H, S, V : 허용 오차 (기준 색상 값의 위/아래로 범위 이내에 들 경우, 정상으로 표시)
    • TOUCH : 화면을 터치하여 기준 HSV 값을 현재 터치한 영역의 값으로 설정
  • CheckRGB : 인식 영역의 RGB 값으로 색상을 검사합니다.
    • BLUE, GREEN, RED : 검사 기준 색상 값
    • MODE : 색상 값을 추출하는 방식, average (영역 내부 평균), center (영역 중심점의 값을 기준으로 검사)
    • RANGE B, G, R : 허용 오차 (기준 색상 값의 위/아래로 범위 이내에 들 경우, 정상으로 표시)
    • TOUCH : 화면을 터치하여 기준 RGB 값을 현재 터치한 영역의 값으로 설정
  • Circularity : 인식 영역의 진원도를 확인합니다.
    • CUT : 설정 값보다 진원도가 높을 경우, 정상으로 표시
  • CompareText : OCR, ScanCode 등에서 인식된 텍스트를 비교 검사합니다.
    • REGISTER : 현재 인식된 텍스트를 저장
    • METHOD : 비교 방법, 동일(==), 다름(!=), 이상(>=), 이하(<=), 보다 큼(>), 보다 작음(<)
    • VALUE : 비교 기준, 저장된 텍스트 중에서 선택 가능
  • FitShape : 인식된 영역이 특정 도형이 맞는지 확인합니다.
    • ASPECT CUT : 원 혹은 정각형이 아닐 경우 종횡비의 상한선
    • BURR LIMIT : 면적 대비 틀린 픽셀 비율의 상한선
    • SHAPE : 기준 도형 선택 (현재 타원만 지원)
  • SqrtArea : 인식된 영역의 넓이를 검사합니다. 넓이 값의 제곱근을 기준으로 검사합니다. 인식된 영역이 REF SIZE 를 기준으로 RANGE 이내의 범위에 들 경우, 정상으로 판단합니다.
    • RECORE : 현재 마스크 넓이의 제곱근 값을 기록

Orientation


  • DirectTo : 대상 물체 내부나 주변에서 기준점을 찾아 방향을 정렬합니다. 브랜치에 기준점을 탐색할 알고리즘 파이프라인을 추가해 기준점을 찾으십시오.
    • ALIGN OBJECT AXIS : 기준점 방향으로 정렬할 물체의 축, X 축 (붉은색), Y 축 (초록색)
    • CROP MASK : 해당 옵션을 활성화한 경우, 현재 인식 영역 주변만을 잘라내어 기준점으로 탐색 (불필요한 연산 속도 개선)
  • MatchEdge : 이미지 상의 경계선들을 기준으로 입력 이미지와 견본 이미지가 일치하게 되는 위치와 각도를 찾습니다. 템플릿을 사용한 감지 (MatchFeature, MatchRPT, MatchTemplate) 가 반드시 선행되어야 합니다. 물체 각도의 초기값을 angle_object 라는 변수로 입력해줄 수도 있습니다. MatchFeature, MatchRPT 의 경우 초기값을 기본 생성해 전달해줍니다.
    • CANNY MAX : Canny 알고리즘의 파라미터, 설정 값보다 변화폭이 큰 경계선은 무조건 검출
    • CANNY MIN : Canny 알고리즘의 파라미터, 설정 값보다 변화폭이 작은 경계선은 무조건 무시
    • GAIN ROT : 물체 각도를 보정해나가는 속도 (너무 클 경우 정답 각도를 놓치고 지나갈 수 있으니 주의 필요)
    • GAIN XY : 물체 위치를 보정해나가는 속도 (너무 클 경우 정답 위치를 놓지고 지나갈 수 있으니 주의 필요)
    • ITER NUM : 추정을 반복할 횟수 (반복을 여러 번 할수록 정확하지만 소요 시간 증가)
  • PCA : 주성분 분석 (Principal Component Analysis) 을 사용하여 감지된 영역의 긴 축을 기준으로 물체 각도를 추정합니다.
    • ALIGN OBJECT AXIS : 긴 축에 일치시킬 물체의 축, X 축 (붉은색), Y 축 (초록색) 중 선택하여 감지 영역의 긴 방향으로 정렬
    • ALIGN CAM AXIS : 정렬된 축이 향할 방향, 상하좌우, 사전 값 (Prior) 중 선택 가능
    • DIRECTED OBJECT : 삼각형과 같이 방향이 있는 물체의 경우 사용, 정렬되는 축이 뾰족한 쪽을 향함
  • Rotate : 대상 물체의 X 축 (붉은색) 방향을 결정합니다.
    • ANGLE : 각도 입력
    • REFERENCE : 각도의 기준, 이전에 계산된 각도 기준 회전 (relative), 절대값으로 지정 (absolute) 중 선택 가능

Pose


  • FitPlane : 감지된 물체의 3차원 위치를 작업 평면에 맞춰 계산합니다.
    • FLOOR OFFSET : 작업 평면으로부터 위 방향으로의 오프셋 (mm 단위)
  • Silhouette2D : 감지된 영역과 3D 모델의 실루엣을 비교해 정확한 물체 자세를 찾습니다. 물체의 name 과 동일한 이름의 CAD 파일이 CAD LIST 에 추가되어야 합니다. 물체의 Z 방향이 직업 평면에 수직이 되게 놓여있다는 전제가 적용됩니다.
    • AVAILABLE CADS : 사용 가능한 3D 모델 목록, 모델 선택 후 ADD TO LIST 버튼으로 모델 등록 (새로운 3D 모델은 우측 상단의 DB 버튼을 눌러 웹을 통해 업로드)
    • CAD LIST : 현재 모듈에 등록된 모델의 목록 표시
    • FLOOR OFFSET : 작업 평면으로부터 위쪽으로의 오프셋 (mm 단위)
    • IOU CUT : 성공으로 파단하는 실루엣 일치도의 하한선 (설정 값보다 낮은 정도로 일치할 경우 자세 추정 실패)
    • ROT RANGE : 물체가 회전할 수 있는 각도 범위 (사전에 주어진 각도 위/아래 범위 내에서 정확한 자세 탐색)
    • TRACK ITER : 자세 추정의 해상도 (클수록 정확하지만 느림)
    • TRACK SCALES : 자세 추정 반복 횟수 (한 번의 주정 결과를 기반으로 범위를 좁히고, 좁혀진 범위에서 다시 추정 수행)

Data


  • Load : 디스크에 저장된 연산 결과를 불러옵니다.
    • FILENAME : 불러올 파일 선택
    • IMAGE ONLY : 해당 옵션을 활성화한 경우, 이미지만 불러 옴
  • LoadImage : 디스크에 저장된 연산 결과를 불러옵니다.
    • FILENAME : 불러올 이미지 선택
  • Save : 디스크에 연산 결과를 저장합니다.
    • CONDITION : 데이터 저장 조건, 항상, 혹은 검사 통과/실패 선택 가능
    • FILENAME : 저장할 이름 입력
    • MAX COUNT : 저장되는 데이터 최대 개수
    • SUFFIX : 데이터 여러 개 저장 시 뒤에 붙일 구분자, 증가하는 자연수, 혹은 날짜와 시간 선택 가능
  • SaveImage : 디스크에 현재 이미지를 저장합니다. 저장된 이미지는 템플릿을 사용한 감지 알고리즘 등에서 TEMPLATE 으로 사용됩니다.
    • FILENAME : 저장할 이름 입력

Workspace


  • CheckWorkspace : 워크스페이스 안에 들어가 있는지를 확인합니다.
  • SetWorkspace : 저장된 작업 공간을 불러옵니다.
    • WORKSPACE : 불러올 작업 공간 선택

Action