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

Pattern OCR vTool#

Pattern OCR vTool은 선택한 모델을 사용하여 이미지의 텍스트를 읽습니다. 예상되는 텍스트 레이아웃이나 패턴을 미리 알고 있는 유스케이스에 적합하도록 설계되었습니다.

일반적인 응용 분야에는 일련번호, 배치 코드 또는 고정된 구조를 가진 기타 텍스트가 포함됩니다. 이러한 시나리오에서는 관련 이미지 영역이 설계상 안정적이거나 전처리 단계에서 안정적으로 추출 및 정렬될 수 있습니다. 텍스트가 고정된 패턴을 따르지 않는 경우 대신 Free-Form OCR vTool을 사용하십시오.

Pattern OCR vTool은 Image 입력 핀을 통해 수신한 이미지의 텍스트를 읽고 모델이 설정한 패턴과 비교합니다. 결과는 Texts, BBoxes_px, Scores 출력 핀을 통해 출력됩니다.

검출 전에 ROI Creator vTool을 사용하여 관심 영역을 지정하는 경우, Pattern OCR vTool은 Roi 입력 핀을 통해 ROI 데이터를 수신합니다. 이 경우 관심 영역에 대해서만 검출이 수행됩니다. 부수적인 효과로 처리 속도가 빨라집니다.

Pattern OCR vTool을 실행하려면 pylon Supplementary Package for pylon AI 1.6.1 이상이 필요합니다.

Pattern OCR vTool 라이선스를 구매하려면 Basler 웹사이트를 방문하십시오.

Pattern OCR vTool

작동 원리#

포장재의 유통기한을 읽으려고 한다고 가정해 보겠습니다. 날짜는 항상 동일한 글꼴로 인쇄되며 동일한 날짜 형식을 사용합니다.

유통기한 및 기타 정보가 표시된 입력 이미지입니다:

배송 라벨이 표시된 입력 이미지

유통기한을 읽도록 학습된 모델을 로드하여 vTool을 구성합니다.

유통기한 OCR 판독용 번들

마법사의 첫 번째 페이지에서는 인식되지 않는 문자의 대체 문자로 사용할 대체 문자를 지정할 수 있습니다.

구성할 수 있는 모델별 매개변수도 확인할 수 있습니다. 이러한 매개변수는 선택한 모델에서 제공되므로 여기에 문서화되어 있지 않습니다. 모델별 매개변수에 대한 자세한 내용은 Features - All 창에서 해당 매개변수를 선택하고 Feature Documentation 창에서 설명을 확인하십시오.

Next를 클릭하여 문자 설정을 구성할 수 있는 마법사의 두 번째 페이지로 이동합니다.

Pattern OCR vTool 문자 설정 페이지

모델에는 미리 구성된 패턴이 포함될 수 있으며, 이를 유지할 수 있습니다. 패턴을 직접 정의하려면 샘플 이미지를 로드하십시오. 현재 이미지를 캡처하려면 Single Shot을 사용하고 .png 파일을 로드하려면 Open Image를 사용하십시오. Roi 입력이 연결된 경우 Single Shot은 해당 영역을 사용합니다. 회전된 ROI는 표시되기 전에 곧게 정렬됩니다. 문자 표시가 이미 있는 경우 다른 이미지를 캡처하거나 열 때 이를 유지할지 삭제할지 선택하십시오.

각 문자를 문자(L), 숫자(D) 또는 알 수 없음(U)으로 분류할 수 있습니다. 줄(1~10)과 해당 줄에서의 단어 위치(1~20)를 설정합니다. 이는 선택한 모든 문자에 적용됩니다. 선택한 문자 중 하나에서 단어 내의 문자 위치(1~20)를 설정합니다. Shift + 왼쪽 클릭으로 여러 문자 상자를 선택하거나 Ctrl+A로 모두 선택합니다. 줄, 단어 위치 및 문자 위치의 각 조합은 고유해야 합니다. 편집기는 중복 정의를 보고합니다.

패턴을 만드는 가장 쉬운 방법은 Auto-Recognize Pattern 버튼을 사용하는 것입니다.

Auto-Recognize Pattern Button

Auto-recognize는 패턴에 몇 개의 라인이 있는지 묻습니다. 1에서 20 사이의 값을 입력하십시오. 찾은 각 문자 주위에 상자를 배치하고 그에 따라 문자 정의를 업데이트합니다. 이미 마킹이 존재하는 경우, 교체하기 전에 확인하십시오. 문자를 찾지 못한 경우, 현재 패턴은 변경되지 않습니다. 오류가 발견되면 문자 상자를 선택하고 정의를 변경하십시오.

문자를 수동으로 정의하려면 Mark Character 버튼을 클릭하십시오.

Mark Character Button

이렇게 하면 이미지에 문자 상자가 추가됩니다. 원하는 위치로 드래그하고 필요에 따라 문자 정의를 편집하십시오.

Character Pattern 영역을 사용하여 정의가 올바른지 확인할 수 있습니다.

vTool을 구성한 후, 추론 프로세스를 시작하는 레시피를 실행합니다. vTool은 모델을 사용하여 이미지를 분석하고 존재하는 단어와 텍스트 세그먼트를 읽습니다. 분석이 완료되면 OCR 결과가 반환됩니다.

결과를 보여주는 핀 데이터 뷰입니다:

Pattern OCR Results

Image Formats#

모델에 따라 Image 입력 핀에서 컬러(BGR 8 Packed), 모노(Mono 8) 또는 컬러 및 모노 이미지 등 다양한 이미지 유형이 허용됩니다.

  • 모델이 컬러 이미지를 요구하는 경우, 컬러 Pixel Format은 내부적으로 BGR 8 Packed로 변환됩니다. 모노 이미지는 허용되지 않습니다.
  • 모델이 모노 이미지를 요구하는 경우, 모노 Pixel Format은 내부적으로 Mono 8로 변환됩니다. 컬러 이미지는 허용되지 않습니다.
  • 모델이 모노와 컬러 이미지를 모두 지원하는 경우, 모노 입력은 Mono 8로 변환되어 모노로 전송되고, 컬러 입력은 BGR 8 Packed로 변환되어 컬러로 전송됩니다. vTool은 컬러를 모노로 또는 모노를 컬러로 변환하지 않습니다.

입력 Pixel Format이 지원되지 않는 경우, 먼저 Image Format Converter vTool을 사용하여 이미지를 변환하십시오. 컬러 입력의 경우 BGR 8 Packed를, 모노 입력의 경우 Mono 8을 선택하십시오.

Output Data Mapping#

Texts, BBoxes_px 및 Scores 결과는 인덱스가 정렬된 배열로 출력됩니다. 출력의 동일한 위치에 있는 요소는 동일한 텍스트 세그먼트를 참조합니다. 추가 vTool 정렬은 적용되지 않습니다.

모델 출력 순서나 세분화가 다른 경우, 출력 핀은 모델 출력 순서를 유지합니다.

예:

세 개의 요소가 있는 출력 데이터 배열, 즉 인식된 텍스트 세그먼트

Texts: ["AB", "12045", "XZ"]

Scores: [0.98, 0.95, 0.93]

BBoxes_px: [b0, b1, b2]

여기서 인덱스 0은 요소/텍스트 세그먼트 1에, 인덱스 1은 요소/텍스트 세그먼트 2에, 인덱스 2는 요소/텍스트 세그먼트 3에 매핑됩니다.

vTool 설정하기#

Pattern OCR vTool을 구성하려면:

Pattern OCR vTool Settings

  1. vTool Settings 영역의 Recipe Management 창에서 Open Settings를 클릭하거나 vTool을 더블 클릭하십시오.
    Pattern OCR 대화 상자가 열립니다.

  2. Server Selection 영역에서 연결할 서버를 선택합니다.
    연결하려면 서버가 실행 중이어야 합니다.

    • 옵션 1: Triton Inference Server의 IP 주소와 포트를 수동으로 입력합니다.
    • 옵션 2: 드롭다운 목록에서 서버의 IP 주소/호스트 이름과 포트를 선택합니다.
  3. Connect를 클릭하여 연결을 설정합니다.
    그러면 vTool이 사용 가능한 모델을 로드합니다.

  4. 다음에서 모델 선택 영역에서 드롭다운 목록의 원하는 모델이 포함된 번들을 선택합니다.
    번들을 선택한 후, 드롭다운 목록 아래의 정보가 번들 세부 정보로 채워져 올바른 번들을 선택했는지 확인할 수 있습니다.
    모델 선택 영역

  5. 원하는 번들이 목록에 없는 경우 클릭하세요. 새 모델 배포 드롭다운 목록에서.
    새 모델 배포
    이것은 다음을 엽니다. pylon AI Agent 더 많은 모델을 배포할 수 있습니다.
    새 모델을 배포한 후 다음 버튼을 클릭해야 합니다. Refresh button.

  6. 대체 문자를 지정하거나 기본 문자를 그대로 유지하십시오.

  7. 모델별 파라미터를 지정합니다.

    정보

    이 영역에서 사용할 수 있는 파라미터는 선택한 모델에 따라 다릅니다. 일부 파라미터는 특정 모델을 선택한 경우에만 사용할 수 있습니다. 기본값은 모델에서 제공됩니다.

  8. 클릭 다음.
    이 Character Settings 페이지가 열립니다.
    Pattern OCR vTool 문자 설정 페이지

  9. Character Settings 페이지에서 모델에 미리 구성된 패턴이 포함되어 있는지 확인하십시오.
    모델에 미리 구성된 패턴이 포함되어 있지 않은 경우, Single Shot을 사용하여 샘플 이미지를 캡처하거나 Open Image를 사용하여 기존 이미지를 엽니다. Auto-Recognize Pattern을 사용하거나 문자를 수동으로 지정하여 패턴을 정의하십시오.
  10. Character Pattern 영역에서 패턴을 확인하십시오.
  11. Finish(을)를 클릭합니다.

Pattern OCR vTool의 결과는 pin data view에서 확인할 수 있습니다. 여기에서 표시할 출력을 선택할 수 있습니다.

입력#

이미지#

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

  • 데이터 형식: 이미지
  • 이미지 포맷: 모노 또는 컬러 이미지. 지원되는 Pixel Format은 모델에 따라 내부적으로 Mono 8 또는 BGR 8 Packed로 변환됩니다. 자세한 내용은 Image Formats를 참조하십시오.

ROI#

ROI Creator vTool 또는 사각형을 출력하는 기타 vTool에서 하나의 ROI를 수락합니다.

ROI가 이미지와 겹치지 않거나 이미지 내부 영역이 1×1 픽셀 이하인 경우, vTool은 추론 서버를 호출하지 않고 빈 Texts, Scores, BBoxes_px 배열을 반환합니다. 여기에는 아무것도 선택되지 않은 경우의 ROI Creator 기본값이 포함됩니다.

ROI가 회전된 경우 추론 전에 곧게 정렬됩니다. 사각형 내부 영역이 입력 이미지에서 잘려 나오고 축에 정렬되도록 회전됩니다. 이 반듯하게 정렬된 크롭 영역이 추론에 사용됩니다.

결과 바운딩 박스는 변환되어 원래 입력 이미지의 좌표계에서 축에 정렬된 사각형으로 반환됩니다. 위치, 너비, 높이는 크롭된 영역이 아니라 항상 입력 이미지를 기준으로 합니다.

  • Data type: RectangleF

출력#

Texts, BBoxes_px, Scores 결과는 인덱스가 정렬된 배열로 출력됩니다. 출력에서 동일한 위치에 있는 항목은 동일한 텍스트 세그먼트를 나타냅니다.

입력 이미지가 유효하지 않거나 처리에 실패한 경우, 활성화된 각 출력은 오류 이유와 함께 유효하지 않은 값을 반환합니다.

텍스트#

감지된 각 단어 또는 텍스트 세그먼트를 반환합니다. 인식되지 않은 텍스트는 대체 문자를 사용하여 반환됩니다.

  • 데이터 타입: String Array

BBoxes_px#

모든 텍스트 세그먼트에 대해 축에 정렬된 바운딩 박스를 반환합니다. 각 박스는 해당 세그먼트 내 문자 박스의 합집합이며, 중심 픽셀의 좌표, 너비 및 높이(x_center, y_center, width, height)로 정의됩니다. 세그먼트의 밑줄 문자(_)는 합집합에서 제외됩니다.

Roi 입력 핀이 연결된 경우를 포함하여 좌표는 원래 입력 이미지를 기준으로 합니다. ROI가 회전된 경우 박스는 축에 정렬된 사각형으로 해당 이미지에 다시 매핑됩니다. 바운딩 박스 출력은 다른 vTool의 Roi 입력 핀에 대한 입력으로 사용할 수 있습니다.

  • Data type: RectangleF Array

Scores#

인식된 각 텍스트 세그먼트에 대한 신뢰도 점수를 반환합니다. 값이 높을수록 신뢰도가 높음을 의미합니다. 세그먼트 점수는 해당 세그먼트 내 인식된 문자 점수의 산술 평균입니다. 문자 점수가 설정된 임계값보다 낮아 해당 문자가 설정된 ‘문자 대체’ 값으로 대체된 경우에도, 해당 문자 위치는 원래의 문자 점수를 그대로 유지한 채 이 평균에 포함됩니다.

0 이하의 점수는 다음과 같이 반환됩니다. 0.0.

  • 데이터 타입: Float Array

Payload#

평가를 위한 Inference Server의 성능과 관련된 추가 정보를 반환합니다. 이 출력 핀은 Debug Settings 파라미터 그룹의 Features - All 창에서 활성화한 경우에만 사용할 수 있습니다.

  • 데이터 타입: String