VisionPro Deep Learning 툴체인
각 Cognex Deep Learning 도구는 고유의 산출물이 있으며, 이 산출물을 다른 도구의 입력으로 이용할 수 있습니다. 이러한 도구의 연쇄를 툴체인이라고 합니다. 아래 그림에서 Blue 위치 도구는 세 개의 feature(H, B, T)로 구성된 노드 모델을 갖고 있으며, 이는 위치 정보를 제공합니다(이는 기존의 비전 응용 프로그램에서 패턴 도구를 이용해 fixture을 생성하는 것과 유사합니다).
Red 분석 도구가 Blue 위치 도구의 결과물을 이용해 뷰의 방향을 정하고 뷰를 생성하고, Blue 위치 도구의 노드 모델 결과물에 기초해 이미지의 동일한 영역에서 검출 분석을 할 수 있습니다. 마지막으로, Green 분류 도구를 이용해, Green 분류 도구에 설정된 분류 기준에 따라 Red 분석 도구의 결과를 분류합니다.
VisionPro Deep Learning 툴체인 생성
-
툴체인을 생성하려면, 도구를 추가한 후 도구 아이콘에서 추가 아이콘을 누릅니다.
-
이렇게 하여, 하나의 도구가 선행 도구에 연결된 도구의 연쇄를 만들 수 있습니다.
다운스트림 도구의 ROI 정의
도구가 연쇄된 경우, 다운스트림 도구에 선행하는 도구는 다운스트림 도구의 관심 영역(ROI) 도구 모음 옵션을 결정합니다.
Blue 위치 도구의 후속 ROI 옵션
Blue 위치 도구가 선행 도구인 경우, 다운스트림 도구가 fixture에 적용할 수 있는 변환을 제공하며, 해당 도구의 관심 영역(ROI)이 이미지 내에 위치하게 됩니다.
다음은 하위 도구의 관심 영역(ROI)을 지정하기 위한 옵션입니다.
- 하나 이상의 feature
- 일치 대상
- 노드 모델
- 레이아웃 모델
Feature에 의한 ROI
Blue 위치 도구에서 정의된 개별 feature를 이용해 하위 도구의 관심 영역을 제공할 수도 있습니다. 각 feature는 자유도(DOF) 5인 변환(X 변형, Y 변형, 회전, X 크기, Y 크기)을 제공합니다.
feature는 ROI의 크기도 결정합니다. ROI의 백분율은 feature의 폭 및 높이에 기초하게 됩니다.
-
feature를 선택합니다.
-
대상 옆에 있는 아래 화살포를 누르면, 해당 도구에 의해 정의된 feature의 목록에 대한 드롭다운 메뉴가 표시될 것이고, 여기에서 '일치 Only'를 누르면 모델의 일부분인 feature만 반환됩니다.
Note: 자물쇠 아이콘을 눌러 이를 비활성화하면, 어떤 feature를 이용할지 feature 또는 일치 필터에 대한 식을 생성할 수 있습니다. feature[], match[]를 이용해 feature[id='featurename'], match[name='modelname']과 같이 지정 필터를 구성할 수 있습니다. 빈 필터(기본 설정)는 모든 feature에 일치합니다. -
하나 이상의 feature를 선택하거나 '일치 Only'를 선택하십시오.
-
대상 필드는 뷰를 생성하는 데 이용할 필터를 표시합니다. 이제 ROI를 조정해 검사하고자 하는 영역에 맞출 수 있습니다.
매치에 의한 ROI
매칭 옵션을 이용하면 이전의 Blue 위치 도구가 매칭되는 노드 또는 레이아웃 모델을 생성한 경우에만 ROI가 생성되도록 지정할 수 있습니다.
Node(노드) 또는 Layout Model(레이아웃 모델)에 의한 ROI
노드 모델 또는 레이아웃 모델이 구성되었으면, Blue 위치 도구의 후속 모델은 노드 모델 또는 레이아웃 모델을 이용해 관심 영역(ROI)의 방향을 조정할 수 있습니다.
노드 모델은 자유도(DOF) 5인 변환(X 변형, Y 변형, 회전, X 크기, Y 크기)을 제공합니다. 노드 모델은 ROI의 크기도 결정합니다. ROI의 백분율은 노드 모델의 폭 및 높이에 기초하게 됩니다.
모델의 다양한 Region(영역)을 다운스트림 도구의 뷰로 제공하는 레이아웃 모델을 이용할 수도 있습니다.
전문가 모드에서는 크기 설정을 이용할 수 있으며, 이는 ROI가 모델의 참조 프레임에 일치하도록 크기를 조정합니다. 기본적으로, ROI는 크기를 조정하지 않으며, 원래 이미지의 픽셀 크기를 이용합니다. 나아가 일치 대상만이 적용되도록 지정할 수도 있습니다.
자물쇠 아이콘을 눌러 이를 비활성화하면, 어떤 feature를 이용할지 feature 또는 일치 필터에 대한 식을 생성할 수 있습니다. feature[], match[]를 이용해 feature[id='featurename'], match[name='modelname']과 같이 지정 필터를 구성할 수 있습니다. 빈 필터(기본 설정)는 모든 feature에 일치합니다.
Green 분류 도구의 후속 도구에서의 ROI 옵션
Green 분류 도구가 선행 도구였으면, 후속 도구에서 특정 태그에 해당하는 뷰만을 표시하도록 필터를 적용할 수 있습니다. 그러면, Green 도구의 뒤에 쓰이는 도구의 ROI는 사용자의 검사에 필요한 영역에 맞도록 크기가 조정될 수 있습니다.
예를 들어, 태그 '5'로 분류된 이미지를 바탕으로 추가 분석을 하고자 한다면, 몇 가지 식을 필터 필드에 넣을 수 있습니다.
- best_tag='5' and score > threshold
- tag![5]/score > threshold
이러한 식을 필터로 사용하면, '5'로 태그 지정되고, 점수가 임계치 매개변수 설정을 넘는 뷰만이 반환될 것입니다. 이는 필터 syntax의 정의에 따라, Green 분류 도구의 경우 임계치 매개변수 이상의 최대 점수를 갖는 뷰만이 "검출"된 것으로 간주되기 때문입니다.
Red 분석 도구의 후속 도구의 ROI 옵션
Red 분석 도구가 선행 도구일 때, 다운스트림 도구를 설정하기 위한 여러 옵션이 존재합니다.
-
이미지의 ROI를 조정함으로써 ROI를 수동으로 구성할 수 있습니다. 기본 ROI 도구 모음이 아래 표시되어 있습니다. 도구 모음의 옵션 중 어떤 것도 선택하지 않으면, ROI의 크기와 위치를 수동으로 구성하여 뷰를 생성할 수 있습니다.
- 선행 도구가 발견한 각 결함에 대해 개별 ROI를 생성하게 할 수 있습니다.
-
선행 도구가 결함을 발견하지 못했다면 ROI를 생성하지 않게 할 수 있습니다.
- ROI 내의 결함에 마스크를 적용할 수 있습니다.
- 선행 도구의 마스크를 다시 이용할 수 있습니다.
아래 예에서는 영역을 개별 ROI로 추출 옵션을 선택했습니다. 이 옵션에서는, 발견된 결함이 이미지에서 개별 영역으로 추출되며, 이는 뷰로 변환됩니다.
옵션을 결합하고 ROI 안에 마스크를 추가하여, 배경을 제외하고 결함만 노출시킬 수도 있습니다.
결함 외부 영역에 관심이 있다면, 마스크를 반전하여 결함이 아니라 배경에 집중할 수도 있습니다.
다운스트림 도구의 마스크 정의
Cognex Deep Learning 도구들이 툴체인으로 연결되면, 선행 도구에서 생성한 마스크가 다음 도구에서도 이용됩니다. 이 시나리오에서, 마스크가 도구 1에서 생성되었고, 도구 2가 도구 1에 연결되어 있다면, 도구 2는 도구 1의 마스크를 이어받습니다. 도구 2 편집 중 추가적인 마스크를 도구 2에 추가하면, 도구 2는 두 마스크를 모두 이용합니다. 도구 1의 마스크를 도구 2에서 이용할 수 있게 편집하려면, 도구 1이 활성화되어 있는 동안에 마스크 편집을 선택해야 합니다.
도구 체인 튜토리얼: 나사를 로컬라이즈하고 검사하기
나사 같은 원통형 개체는 검사 중 회전해야 합니다. 회전축에 따른 특정한 한 줄만 보는 것이 아니라, 다수 이미지를 통해 전체 개체를 보면, 다양한 카메라 각도와 조명 조건에서 표면과 결함을 볼 수 있는 장점이 있습니다. 예를 들어, 중심선에 있을 때 가장 잘 보이는 결함도 있겠지만, 옆으로 살짝 비켜나야 가장 잘 보이는 결함도 있을 것입니다.
Red 분석 도구가 물체의 정확한 위치나 방향에 의존하지 않기 때문에 본질적으로 열린 루프에서 작동할 수 있습니다. 즉, 회전하는 개체의 일련의 이미지(동영상)를 취해서 이를 직접 Red 분석 도구에 제공할 수 있는 것입니다. 하지만, 이 특정한 이미지 Set에서는, 전체 이미지에서 나사가 회전하고 있어, 먼저 Blue Locate 도구를 이용해 나사를 로컬라이즈하고 잘라낸 후 Red 분석 도구에 투입하는 것이 바람직합니다.
이 튜토리얼 목적은 다음과 같습니다:
-
Blue 위치 도구를 이용해 모호한 feature를 로컬라이즈하고 추적하기.
-
나사의 pose를 찾기 위한 기하적 모델 생성.
-
Red 분석 도구로 나사를 처리하기 위한 세분화 구성.
-
검출 결과를 개선하기 위한 트레이닝 패스 매개변수 실행.
- 나사 튜토리얼에 이미지를 추가합니다.
- 트레이닝 모드에서, 워크스페이스를 추가하거나 연 후, 데이터베이스 메뉴에서 ('이미지 추가'를 선택해)이미지를 추가할 수도 있고, GUI의 디스플레이 영역에 있는 이미지 추가를 통해 이미지를 추가할 수도 있으며, Windows 탐색기에서 뷰 브라우저로 직접 이미지를 끌어올 수도 있습니다.
- Blue 위치 도구를 추가합니다.
- ROI를 조정해 이미지를 나누고, 가위 아이콘을 눌러 새로운 ROI에 기초해 이미지를 프로세싱합니다.
- Feature 크기 매개변수를 80으로 설정합니다.
- 3개 이상의 이미지에서 2개 이상의 feature(예: 나사의 양쪽 끝)를 정의합니다.
- 두뇌 아이콘을 눌러 도구를 트레이닝합니다. 결과를 검토하고, feature가 정확하게 발견되지 않은 이미지에 수동으로 라벨을 지정합니다.
- 새 이미지에 수동으로 라벨을 지정해야 했다면, 시스템을 다시 트레이닝하고 결과를 검토합니다.
- 두 가지 feature가 있는 이미지를 마우스 우클릭하고 "나사"라는 이름의 모델을 생성합니다.
- 이미지를 다시 프로세싱하고 모델이 정확하게 발견되었는지 확인합니다.
- Red 분석 도구를 추가하고, 이를 비지도 모드로 둡니다.
- "나사" 모델을 선택함으로써 Red 분석 도구에 쓰일 이미지를 세분화합니다.
- ROI 크기를 700 x 250으로 변경합니다.
- 원형 대칭 체크박스를 비활성화하고 마우스를 이용해 ROI를 나사 위로 이동합니다.
- 적용을 눌러, 모든 이미지를 세분화하고 데이터베이스의 이미지들이 정확하게 세분화되었는지 확인합니다.
- 결함이 보이지 않는 모든 이미지는 정상으로 라벨 지정하고, 결함이 보이는 경우 불량으로 지정합니다.
- 도구를 트레이닝하고 결과를 검증합니다.
- 결과가 만족스럽지 않다면, 트레이닝 패스 매개변수를 증가시켜 반복 트레이닝 횟수를 늘리고 다시 트레이닝합니다.
도구 체인 튜토리얼: 방향을 로컬라이즈하고 시계 다이얼 검사
시계 다이얼 및 기타 인쇄된 부품은 고품질이 필요합니다. 그러므로, 패드 인쇄(또는 탬포그래피)가 이용되는 경우가 많은데, 이는 검사에 어려움을 가져옵니다. 다수의 패드를 이용하는 경우, 정렬이 완벽하지 않은 경우가 많습니다. 적용된 잉크 양이 변하여 선의 굵기가 변동합니다. 이 모든 것이 눈에 거슬리지는 않으며, 이는 수락해야 합니다. 하지만 잉크가 없거나, 흘림, 기판의 문제 등 진짜 결함은 검출되어야 합니다.
이 튜토리얼의 이미지는 무작위한 방향의 시계 다이얼을 보여줍니다. 먼저 Blue 위치 도구를 이용해 다이얼의 중심과 방향을 결정해야 합니다. 결과로 얻어진, 잘리고 방향이 변경된 이미지는 Red 분석 도구로 분석할 수 있습니다. 다이얼에는 아래의 프레젠테이션 그리드를 볼 수 있도록 구멍도 있어, 마스크를 이용해 Red 분석 도구가 이 영역을 검사하지 못하게 해야 합니다.
이 튜토리얼 목적은 다음과 같습니다:
- Blue 위치 도구를 이용해 다이얼의 로컬라이즈 및 방향 수정.
- 검사 수행을 위해 Red 분석 도구 추가.
- 검사할 영역과 하지 않을 영역을 통제하기 위한 마스크 추가.
- 다이얼 튜토리얼에 이미지를 추가합니다.
- Blue 위치 도구를 추가합니다.
- Blue 위치 도구의 ROI를 조정하여 시계 다이얼을 포함하도록 이미지를 세분화합니다.
- Feature 크기 매개변수를 100으로 설정합니다.
- 3개 이상의 이미지에서 2개 이상의 feature(예: 중심과 "B" 아래의 구멍)를 선택해 라벨을 지정합니다.
- 트레이닝 단계에서 회전 변화 매개변수를 [0,360]으로 변경함으로써 회전을 추가해 다이얼 방향의 변동성을 보상합니다.
- 시스템을 트레이닝하고 결과를 검토합니다.
- Feature가 정확하게 발견되지 않은 이미지에 수동으로 라벨을 지정합니다.
- 새 이미지에 수동으로 라벨을 지정해야 했다면, 시스템을 다시 트레이닝하고 결과를 검토합니다.
- 이미지 중 하나에서, 라벨 지정된 feature 2개를 선택하고, 뷰를 마우스 우클릭하여, 메뉴에서 모델 생성을 선택한 후, "다이얼"이라는 이름의 모델을 생성합니다.
- 이미지를 다시 프로세싱하고 모델이 정확하게 발견되었는지 확인합니다.
- Red 분석 도구를 추가하고 ROI 설정이 "다이얼" 모델을 이용하도록 구성한 후, ROI 크기를 1850 x 1850으로 설정합니다.
- 모든 이미지를 세분화하고 데이터베이스의 이미지들이 정확하게 세분화되었는지 확인합니다.
- 모든 이미지에 정상 라벨을 지정하고, 디스플레이 필터를 이용해 파일 이름에 "불량"이 포함된 이미지에 불량 라벨을 지정합니다.
- 배경, 표면의 작은 원, 반달 모양 형태를 감추기 위해 마스크를 생성합니다.
- 이미지 디스플레이 영역에서 마우스 우클릭하고 메뉴에서 마스크 편집을 선택합니다.
원 도구를 선택하고 다이얼의 중심에서부터 경계까지 바깥쪽으로 원을 그립니다.

원 마스크를 그대로 두고, 반전 버튼을 눌러 마스크가 원의 바깥을 덮게 합니다.

원 도구를 선택하고 원 마스크를 이미지 내의 원형 feature 각각에 적용합니다.

자동 선택 도구를 선택하고, 키를 누른 채로, 지팡이를 형태 위로 끌어 채웁니다.

모든 마스크가 자리했으면, 적용 버튼을 누릅니다. 마스크 적용 대화 상자가 열려서, 해당 마스크를 모든 이미지에 적용할 수 있습니다.

종료 버튼을 눌러, 마스크 편집 단계를 종료합니다. 이제 마스크가 모든 이미지에 적용되었을 것입니다.

- 도구를 트레이닝하고 결과를 검토하여, 도구가 결함을 정확하게 마킹했는지 검증합니다. 트레이닝에 관련된 매개변수 중 어떤 것이라도 조정해야 하거나, 이미지에 라벨을 다시 지정해야 한다면, 도구를 다시 트레이닝하고 결과를 다시 평가해야 합니다.