Cognex Label Import/Export 플러그인
CLIP(Cognex Label Import/Export Plug-in)은 VisionPro Deep Learning 도구로 라벨, 마스크, 그리고 이미지(내보내기만 지원)를 불러오거나 외부로 내보내는 기능을 제공하는 VisionPro Deep Learning 플러그인입니다.
CLIP 기본 정보
VisionPro Deep Learning에서 라벨, 마스크, 이미지들은 뷰(ROI 설정된 뷰)를 기준으로 내보내거나 불러올 수 있습니다. 따라서, VisionPro Deep Learning에 있는 각 뷰의 ROI가 정의된 후에 라벨 또는 마스크를 불러올 수 있습니다. 라벨 또는 마스크가 정의된 ROI에 맞지 않는다면 이들을 불러올 수 없습니다.
VisionPro Deep Learning 뷰 브라우저에 보이는 각 이미지 파일명(파일 유형 제외)과 불러올 라벨 파일명 또는 마스크 파일명은 반드시 서로 정확하게 일치해야 합니다. 예를 들어, 뷰 브라우저상에서 보이는 파일명이 "name.png"인 특정 뷰의 라벨을 불러오려면, 라벨 파일명은 반드시 "name.png," "name.vrlf"(Red Analyze) 또는 "name.vglf"(Green Classify)중 하나이어야 합니다.
불러오기/내보내기 포맷
|
이미지 파일 유형 |
유형 |
임포트 |
내보내기 |
|
Image |
- |
- |
png |
|
라벨 |
내부 |
.vrlf (Red 분석), .vglf (Green 분류) |
|
|
외부 |
png (Red 분석만 지원) |
- |
|
|
JSON |
.json |
- |
|
|
마스크 |
내부 |
.vmf |
|
|
외부 |
png |
- |
|
|
JSON |
.json |
- |
|
-
.vrlf: VisionPro Deep Learning Red 분석 라벨 포맷
-
.vflf: VisionPro Deep Learning Green 분류 라벨 포맷
-
.vmf: VisionPro Deep Learning 마스크 포맷
-
JSON: JSON 파일 포맷(JSON 파일 포맷에 관한 자세한 내용은 이후 섹션을 참고하십시오.)
CLIP 설치하기
-
VisionPro Deep Learning를 실행합니다.
-
플러그인 > 플러그인 관리로 이동합니다.
-
추가 버튼을 클릭합니다.
-
CLIP.VPlugin.dll을 선택하고 열기를 클릭합니다.
-
플러그인 관리자를 닫습니다.
-
워크스페이스를 생성 또는 불러온 다음, 이 워크스페이스에 있는 스트림에 도구를 생성하거나 스트림으로 도구를 불러옵니다.
Note: 워크스페이스, 스트림, 도구에 관한 자세한 내용은 워크스페이스, 스트림, 도구 항목을 확인하십시오. -
도구로 이미지들을 불러온 다음, ROI를 설정하여 뷰를 정의합니다.
-
도구를 선택하고 플러그인 메뉴를 클릭합니다. 선택한 도구에 따라서 불러오기와 내보내기 메뉴가 존재합니다.
라벨 불러오기
| Red 분석 | Green 분류 | Blue 위치 | Blue 읽기 | |
|
내부 라벨 불러오기 (VisionPro Deep Learning 내부 라벨 파일 포맷으로 된 라벨 파일들) |
O |
O |
X |
X |
|
외부 라벨 불러오기: png 파일 (라벨로서 기능하는 이미지 파일) |
O |
X |
X |
X |
|
외부 라벨 불러오기: JSON 파일 (라벨 정보를 담은 JSON 파일) |
O |
O |
X |
X |
내부 라벨 불러오기
-
VisionPro Deep Learning 내부 라벨 포맷으로 된 라벨 파일을 준비합니다.
-
Red 분석 라벨 포맷: .vrlf
-
Green 분류 라벨 포맷: .vglf
Note: VisionPro Deep Learning 도구에서 VisionPro Deep Learning 내부 라벨 파일을 얻으려면, 아래에 있는 라벨 내보내기 항목을 확인하십시오. -
워크스페이스를 열고 Red 분석 또는 Green 분류 도구를 스트림에서 선택하십시오.
-
플러그인 > 라벨 불러오기로 이동합니다.
-
내부 라벨 이미지를 선택하고 파일 선택을 클릭합니다.
-
내부 라벨 파일들 위치를 찾아서 열기를 선택합니다.
외부 라벨 불러오기: png 파일(Red 분석)
-
png 포맷 라벨 이미지 파일을 준비합니다. 예를 들어, 라벨은 배경 영역(양호 영역)이 흰색이고 결함 영역이 검은색인 이미지 파일입니다.
-
라벨 이미지 파일을 열고 배경 영역 픽셀 값을 얻으십시오. 위 예시에서 이 픽셀 값은 255(화소 강도)입니다.
Note: 배경 픽셀 값은 불러올 모든 라벨 이미지에서 반드시 동일해야 합니다. -
워크스페이스를 열고, 스트림에서 Red 분석 도구를 선택하고, 플러그인 > 라벨 불러오기를 선택합니다.
-
외부 라벨 이미지를 선택합니다.
-
단계 2에서 얻은 배경 픽셀 값을 입력합니다.
-
파일 선택을 클릭하여 png 파일 위치를 찾고 열기를 선택합니다.
-
적용을 선택합니다.
외부 라벨 불러오기: JSON 파일(들)
-
이미지 파일명들과 이들의 라벨들 정보가 담긴 JSON 파일을 준비합니다.
Note: 이미지 파일명은 대소문자 포함하여 반드시 VisionPro Deep Learning 워크스페이스로 불러온 이미지 파일명과 일치해야 합니다.Green 분류 사용 시 JSON 파일은 반드시 모든 뷰들의 라벨 정보를 포함해야 합니다. JSON 파일은 반드시 다음 규칙들을 따라야 합니다.
-
키 값들인 "classes"와 "images"는 반드시 파일에 존재해야 합니다.
-
"classes"의 자식으로서 {index (string type), class name (string type)} 쌍은 반드시 존재해야 합니다.
-
키 값인 "images" 반드시 각 이미지 파일명을 자식으로 가져야하고, 각 이미지 파일명은 "class"를 자식으로 가져야 합니다.
복사Green Classify JSON 라벨 예시{
"classes": {
"0": "OK",
"1": "NG"
}
"images": {
"CAM1-NG.png": {
"class": [
1
]
},
"CAM2-NG.png": {
"class": [
1
]
}
}
} -
-
키 값인 "Labels"은 반드시 파일에 존재해야 합니다. 그리고 각 라벨 정보는 반드시 키 값의 자식으로 존재해야 합니다.
-
라벨 정보는 반드시 "StrokeThickness" "Shape" "Points" 값을 가져야 합니다.
-
"Class"는 반드시 양의 정수(unsigned long type)이어야 하며 문자열 또는 다른 형식은 지원하지 않습니다.
-
Class를 0으로 할당하면 "Good"으로 분류되며, 1로 할당하면 "Bad"로 분류됩니다.
-
-
"StrokeThickness"는 결함 영역 외곽선의 두께입니다.
-
"Shape”은 결함 영역의 모양입니다. 문자열 형식을 가지며 다음 형식 중 하나이어야 합니다: "rectangle," "ellipse," "line," "polyLine," "polygon"
-
"Points"는 결함 영역 모양을 구성하는 좌표들의 집합입니다. 그 값은 "Shape"이 결정합니다.
-
"rectangle": 좌측 상단 좌표(x0, y0)와 우측 하단 좌표(x1, y1)
-
"ellipse": 좌측 상단 좌표(x0, y0)와 우측 하단 좌표(x1, y1)
-
"line": 시작 좌표(x0, y0)와 끝 좌표(x1, y1)
-
"polyLine": 폴리라인을 구성하는 좌표 (x0, y0), (x1, y1), ..., (xN, yN)
-
"polygon": 폴리곤(다각형)을 구성하는 좌표 (x0, y0), (x1, y1), ..., (xN, yN)
-
-
워크스페이스를 열고, 스트림에서 Red 분석 또는 Green 분류 도구를 선택하고, 플러그인 > 라벨 불러오기를 선택합니다.
-
JSON을 선택하고 파일 선택을 클릭합니다.
-
JSON 파일을 찾아 열기를 선택합니다.
-
적용을 선택합니다.
Red 분석 사용 시 JSON 파일 1개는 반드시 뷰 1개의 라벨 정보를 포함해야 합니다. 따라서, 전체 뷰 개수에 해당하는 JSON 파일들을 준비해야 합니다. 파일 확장자를 제외한 각 JSON 파일명은 VisionPro Deep Learning 이미지 디스플레이 영역에 있는 각 뷰 파일명과 반드시 정확하게 일치해야 합니다. JSON 파일은 반드시 다음 규칙들을 따라야 합니다.
{ "Labels": [ { "Class": 1, "Shape": "ellipse", "StrokeThickness": 5.0, "Points": [ "104.972811914788,310.801663378971", "132.045318045539,338.438180054112" ] }, { "Class": 1, "Shape": "ellipse", "StrokeThickness": 5.0, "Points": [ "301.248481362731,141.034489517388", "323.808903138356,168.106995648139" ] } ] }
라벨 내보내기
| Red 분석 | Green 분류 | Blue 위치 | Blue 읽기 | |
|
라벨 내보내기 (라벨은 VisionPro Deep Learning 내부 라벨 포맷으로 내보냄) |
O |
O |
X |
X |
-
워크스페이스를 열고, 스트림에서 Red 분석 또는 Green 분류 도구를 선택하고, 플러그인 > 이미지 내보내기를 선택합니다.
-
라벨 체크박스를 활성화하고 찾기를 선택하여 라벨 파일을 저장할 위치를 찾습니다.
-
내보내기를 선택합니다.
-
라벨 파일들은 SELECTED_PATH/WORKSPACE_NAME/STREAM_NAME/TOOL_NAME/Labels 경로에 저장됩니다.
마스크 불러오기
| Red 분석 | Green 분류 | Blue 위치 | Blue 읽기 | |
|
외부 마스크 불러오기 (마스크로서 기능하는 이미지 파일) |
O |
O |
O |
O |
|
내부 마스크 불러오기 (VisionPro Deep Learning 내부 마스크 파일 포맷으로 된 마스크 파일들) |
O |
O |
O |
O |
|
JSON 마스크 불러오기 (마스크 정보를 담은 JSON 파일) |
O |
O |
O |
O |
내부 마스크 불러오기
-
VisionPro Deep Learning 내부 마스크 포맷으로 된 마스크 파일을 준비합니다.
-
VisionPro Deep Learning 마스크 포맷: .vmf
Note: VisionPro Deep Learning 도구에서 VisionPro Deep Learning 내부 마스크 파일을 얻으려면, 아래에 있는 마스크 내보내기 항목을 확인하십시오. -
-
워크스페이스를 열고, 스트림에서 도구를 선택하고, 플러그인 > 마스크 불러오기를 선택합니다.
-
내부 마스크 이미지를 선택하고 파일 선택을 클릭합니다.
-
내부 마스크 파일들 위치를 찾아서 열기를 선택합니다.
-
적용을 선택합니다.
외부 마스크 불러오기: png 파일
-
png 포맷 마스크 이미지 파일을 준비합니다. 예를 들어, 마스크는 마스킹 영역이 검은색이고 그 외 영역(배경 영역)이 흰색인 이미지 파일입니다.
-
마스크 이미지 파일을 열고 배경 영역 픽셀 값을 얻으십시오. 위 예시에서 이 픽셀 값은 255(화소 강도)입니다.
Note: 배경 픽셀 값은 불러올 모든 마스크 이미지에서 반드시 동일해야 합니다. -
워크스페이스를 열고, 스트림에서 도구를 선택하고, 플러그인 > 마스크 불러오기를 선택합니다.
-
외부 마스크 이미지를 선택합니다.
-
단계 2에서 얻은 배경 픽셀 값을 입력합니다.
-
파일 선택을 클릭하여 png 파일 위치를 찾고 열기를 선택합니다.
-
적용을 선택합니다.
외부 마스크 불러오기: JSON 파일(들)
-
이미지 파일명들과 이들의 마스크 정보가 담긴 JSON 파일을 준비합니다.
Note: 이미지 파일명은 대소문자 포함하여 반드시 VisionPro Deep Learning 워크스페이스로 불러온 이미지 파일명과 일치해야 합니다.모든 도구 종류에서, JSON 파일 1개는 반드시 뷰 1개의 라벨 정보를 포함해야 합니다. 따라서, 전체 뷰 개수에 해당하는 JSON 파일들을 준비해야 합니다. 파일 확장자를 제외한 각 JSON 파일명은 VisionPro Deep Learning 이미지 디스플레이 영역에 있는 각 뷰 파일명과 반드시 정확하게 일치해야 합니다. JSON 파일은 반드시 다음 규칙들을 따라야 합니다.
-
키 값인 "Masks"는 파일에 반드시 존재해야 합니다. 또 각 마스크 정보는 반드시 키 값의 자손으로 존재해야 합니다.
-
마스크 정보는 반드시 "StrokeThickness" "Shape" "Points" 값을 가져야 합니다.
-
"StrokeThickness"는 마스크 외곽선의 두께입니다.
-
"Shape”은 마스크의 모양입니다. 문자열 형식을 가지며 다음 형식 중 하나이어야 합니다: "rectangle," "ellipse," "line," "polyLine," "polygon"
-
"Points"는 마스크 모양을 구성하는 좌표들의 집합입니다. 그 값은 "Shape"이 결정합니다.
-
"rectangle": 좌측 상단 좌표(x0, y0)와 우측 하단 좌표(x1, y1)
-
"ellipse": 좌측 상단 좌표(x0, y0)와 우측 하단 좌표(x1, y1)
-
"line": 시작 좌표(x0, y0)와 끝 좌표(x1, y1)
-
"polyLine": 폴리라인을 구성하는 좌표 (x0, y0), (x1, y1), ..., (xN, yN)
-
"polygon": 폴리곤(다각형)을 구성하는 좌표 (x0, y0), (x1, y1), ..., (xN, yN)
-
복사Green Classify JSON 마스크 예시{
"Masks": [
{
"Shape": "polygon",
"StrokeThickness": 1.0,
"Points": [
"183,121",
"182,122",
"180,122",
"179,123",
"177,123",
"176,124",
"174,124",
"173,125",
]
},
{
"Shape": "polygon",
"StrokeThickness": 1.0,
"Points": [
"262,135",
"260,137",
"260,138",
"259,139",
"259,142",
"260,143",
"260,144",
"261,144",
"262,145",
"264,145",
"265,144",
"266,144",
"266,143",
"267,142",
"267,139",
"266,138",
"266,137",
"264,135"
]
}
]
} -
-
워크스페이스를 열고, 스트림에서 도구를 선택하고, 플러그인 > 마스크 불러오기를 선택합니다.
-
JSON을 선택하고 파일 선택을 클릭합니다.
-
JSON 파일을 찾아 열기를 선택합니다.
-
적용을 선택합니다.
마스크 내보내기
| Red 분석 | Green 분류 | Blue 위치 | Blue 읽기 | |
| 마스크 내보내기(VisionPro Deep Learning 내부 마스크 파일 포맷으로 된 마스크 파일들) | O | O | O | O |
-
워크스페이스를 열고, 스트림에서 도구를 선택하고, 플러그인 > 이미지 내보내기를 선택합니다.
-
마스크 체크박스를 활성화하고 찾기를 클릭하여 저장할 마스크 파일 위치를 선택합니다.
-
내보내기를 선택합니다.
-
마스크 파일들은 SELECTED_PATH/WORKSPACE_NAME/STREAM_NAME/TOOL_NAME/Masks 경로에 저장됩니다.
이미지 내보내기
| Red 분석 | Green 분류 | Blue 위치 | Blue 읽기 | |
| 이미지 내보내기(png 파일 형식의 이미지 파일들) | O | O | O | O |
-
워크스페이스를 열고, 스트림에서 도구를 선택하고, 플러그인 > 이미지 내보내기를 선택합니다.
-
이미지 체크박스를 활성화하고 찾기를 클릭해 이미지 파일을 저장할 위치를 선택합니다.
-
내보내기를 선택합니다.
-
이미지 파일들은 SELECTED_PATH/WORKSPACE_NAME/STREAM_NAME/TOOL_NAME/Images 경로에 저장됩니다.