For the complete documentation index, see llms.txt. This page is also available as Markdown.

OCR 탐지 이어붙이기

탐지를 공간적으로 정렬하여 OCR 탐지 결과를 일관된 텍스트 문자열로 결합합니다.

v2

개별 OCR 감지 결과(단어, 문자 또는 텍스트 영역)를 공간적으로 정렬하고, 감지 결과를 줄로 묶은 뒤, 올바른 읽기 순서로 텍스트를 이어 붙여 일관된 텍스트 문자열로 결합합니다.

스티칭 알고리즘

이 블록은 OCR 감지 결과에서 텍스트를 재구성하기 위한 세 가지 알고리즘을 지원합니다:

허용 오차 기반(기본값)

고정 픽셀 허용 오차를 사용해 감지 결과를 줄로 묶습니다. 세로 방향으로(세로 텍스트의 경우 가로 방향으로) 허용 오차 거리 내에 있는 감지 결과는 같은 줄로 묶인 다음, 각 줄 내에서 위치 기준으로 정렬됩니다.

  • 적합한 경우: 글꼴 크기가 일정하고 가로/세로 텍스트가 잘 정렬된 경우

  • 매개변수: tolerance (줄 그룹화를 위한 픽셀 임계값)

Otsu 임계값 분할

정규화된 간격 거리에 Otsu 방법을 사용해 문자 간격과 단어 간격을 구분하는 최적 임계값을 자동으로 찾습니다. 간격은 국소 문자 너비로 정규화되므로 해상도에 영향을 받지 않습니다.

  • 적합한 경우: 글꼴 크기가 가변적이거나 단어 경계를 자동으로 감지해야 하는 경우

  • 매개변수: otsu_threshold_multiplier (임계값 민감도 조정)

  • 핵심 기능: 이봉 분포를 감지해 단일 단어와 여러 단어로 이루어진 텍스트를 구분합니다

정렬화(Collimate, 기울어진 텍스트)

그리디한 부모-자식 순회를 사용해 텍스트 흐름을 따라갑니다. 첫 번째 감지 결과에서 시작해 읽기 순서상 뒤따르는("follow"하는) 후속 감지 결과(유사한 정렬 + 올바른 방향)를 찾아, 버킷 분류가 아니라 순회를 통해 줄을 구성합니다.

  • 적합한 경우: 기울어지거나, 곡선 형태이거나, 축에 정렬되지 않은 텍스트

  • 매개변수: collimate_tolerance (정렬 허용 오차, 픽셀 단위)

  • 참고: 단어 경계를 감지하지 않습니다 - 다음을 사용하세요 delimiter 매개변수, 간격이 필요하면

읽기 방향

모든 알고리즘은 여러 읽기 방향을 지원합니다:

  • left_to_right: 표준 가로 방향(영어, 대부분의 언어)

  • right_to_left: 오른쪽에서 왼쪽(아랍어, 히브리어)

  • vertical_top_to_bottom: 세로 위에서 아래로(번체 중국어, 일본어)

  • vertical_bottom_to_top: 세로 아래에서 위로

  • auto: 바운딩 박스 크기를 기반으로 자동 감지

일반적인 사용 사례

  • 문서 OCR: 문자/단어 감지 결과로부터 문단과 줄을 재구성합니다

  • 다국어 지원: 서로 다른 읽기 방향과 문자 체계를 처리합니다

  • 기울어진 텍스트 처리: 기울어지거나 곡선 형태의 텍스트에는 collimate 알고리즘을 사용합니다

  • 단어 감지: Otsu 알고리즘을 사용해 단어 사이에 공백을 자동으로 삽입합니다

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/stitch_ocr_detections@v2 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

stitching_algorithm

str

단어/줄로 감지 결과를 그룹화하는 알고리즘입니다. 'tolerance': 줄 그룹화를 위해 고정 픽셀 허용 오차를 사용합니다(원래 알고리즘). 글꼴 크기와 줄 간격이 일정할 때 적합합니다. 'otsu': 정규화된 간격에 Otsu 방법을 적용해 단어 사이의 자연스러운 경계를 찾습니다. 해상도에 영향을 받지 않으며 이봉 간격 분포에서 잘 작동합니다. 'collimate': 그리디한 부모-자식 순회를 사용해 감지 결과를 그룹화합니다. 버킷 기반 접근 방식이 실패하는 기울어지거나 곡선 형태의 텍스트에 적합합니다..

reading_direction

str

텍스트 감지 결과를 읽고 정렬할 방향입니다. 'left_to_right': 표준 가로 읽기(영어, 대부분의 언어). 'right_to_left': 오른쪽에서 왼쪽 읽기(아랍어, 히브리어). 'vertical_top_to_bottom': 위에서 아래로 읽는 세로 방향(번체 중국어, 일본어). 'vertical_bottom_to_top': 아래에서 위로 읽는 세로 방향(드문 세로 형식). 'auto': 평균 바운딩 박스 크기(너비 > 높이 = 가로, 높이 >= 너비 = 세로)를 기반으로 읽기 방향을 자동 감지합니다. 감지 결과가 줄로 어떻게 그룹화되고 각 줄 안에서 어떻게 정렬되는지를 결정합니다..

tolerance

정수

감지 결과를 같은 줄로 그룹화하기 위한 픽셀 단위의 세로(세로 텍스트의 경우 가로) 거리 임계값입니다. 이 허용 오차 거리 내의 감지 결과는 같은 줄로 묶입니다. 값이 클수록 더 멀리 떨어진 감지 결과도 한 줄로 묶이며, 줄 간격이 가변적이거나 기울어진 텍스트에 유용합니다. 값이 작을수록 더 많은 줄이 생성되며, 촘촘하게 배치된 텍스트에 유용합니다. 0보다 커야 합니다..

delimiter

str

스티칭할 때 각 텍스트 요소(단어/문자) 사이에 삽입할 선택적 구분자 문자열입니다. 빈 문자열(기본값)은 구분자가 없음을 의미하며, 텍스트 요소가 그대로 이어 붙여집니다. 단어 사이에 공백을 넣거나, 요소 사이에 쉼표를 넣거나, 사용자 지정 구분 기호를 추가할 때 유용합니다. 예: 단어 사이에 공백을 추가하려면 ' ' (공백)을 사용하고, 쉼표를 추가하려면 ','를 사용합니다..

otsu_threshold_multiplier

float

'otsu' 스티칭 알고리즘을 사용할 때 Otsu로 계산된 임계값에 적용되는 배수입니다. 1.0보다 큰 값은 단어 경계를 덜 자주 만들고(더 보수적, 더 적은 분할), 1.0보다 작은 값은 단어 경계를 더 자주 만듭니다(더 공격적, 더 많은 분할). 기본값은 1.0이며(Otsu 임계값을 그대로 사용), 단어가 잘못 분할되면 1.3~1.5를, 단어가 잘못 병합되면 0.7~0.9를 시도해 보세요..

collimate_tolerance

정수

'collimate' 스티칭 알고리즘의 픽셀 허용 오차입니다. 감지 결과가 읽기 순서에서 다른 감지 결과를 따르는지 판단할 때 허용되는 세로(가로 텍스트의 경우) 또는 가로(세로 텍스트의 경우) 편차의 정도를 제어합니다. 값이 클수록 더 기울어진 텍스트를 처리할 수 있지만 별도의 줄을 잘못 병합할 수 있습니다. 기본값은 10픽셀입니다..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 OCR 감지 결과 스티칭 버전 v2 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 예측 (object_detection_prediction): OCR 모델의 OCR 감지 예측값입니다. 바운딩 박스와 텍스트 콘텐츠가 포함된 클래스 이름을 포함해야 합니다. 각 감지 결과는 함께 이어 붙여 일관된 텍스트가 될 단어, 문자 또는 텍스트 영역을 나타냅니다. 데이터 딕셔너리의 바운딩 박스(xyxy)와 클래스 이름을 사용하는 객체 감지 형식을 지원합니다..

    • tolerance (정수): 감지 결과를 같은 줄로 그룹화하기 위한 픽셀 단위의 세로(세로 텍스트의 경우 가로) 거리 임계값입니다. 이 허용 오차 거리 내의 감지 결과는 같은 줄로 묶입니다. 값이 클수록 더 멀리 떨어진 감지 결과도 한 줄로 묶이며, 줄 간격이 가변적이거나 기울어진 텍스트에 유용합니다. 값이 작을수록 더 많은 줄이 생성되며, 촘촘하게 배치된 텍스트에 유용합니다. 0보다 커야 합니다..

    • delimiter (string): 스티칭할 때 각 텍스트 요소(단어/문자) 사이에 삽입할 선택적 구분자 문자열입니다. 빈 문자열(기본값)은 구분자가 없음을 의미하며, 텍스트 요소가 그대로 이어 붙여집니다. 단어 사이에 공백을 넣거나, 요소 사이에 쉼표를 넣거나, 사용자 지정 구분 기호를 추가할 때 유용합니다. 예: 단어 사이에 공백을 추가하려면 ' ' (공백)을 사용하고, 쉼표를 추가하려면 ','를 사용합니다..

    • otsu_threshold_multiplier (float): 'otsu' 스티칭 알고리즘을 사용할 때 Otsu로 계산된 임계값에 적용되는 배수입니다. 1.0보다 큰 값은 단어 경계를 덜 자주 만들고(더 보수적, 더 적은 분할), 1.0보다 작은 값은 단어 경계를 더 자주 만듭니다(더 공격적, 더 많은 분할). 기본값은 1.0이며(Otsu 임계값을 그대로 사용), 단어가 잘못 분할되면 1.3~1.5를, 단어가 잘못 병합되면 0.7~0.9를 시도해 보세요..

    • collimate_tolerance (정수): 'collimate' 스티칭 알고리즘의 픽셀 허용 오차입니다. 감지 결과가 읽기 순서에서 다른 감지 결과를 따르는지 판단할 때 허용되는 세로(가로 텍스트의 경우) 또는 가로(세로 텍스트의 경우) 편차의 정도를 제어합니다. 값이 클수록 더 기울어진 텍스트를 처리할 수 있지만 별도의 줄을 잘못 병합할 수 있습니다. 기본값은 10픽셀입니다..

  • 출력

    • ocr_text (string): 문자열 값.

예시 JSON 정의

v1

개별 OCR 감지 결과(단어, 문자 또는 텍스트 영역)를 읽기 방향에 따라 공간적으로 정렬하고, 감지 결과를 줄로 묶고, 각 줄 내에서 정렬한 다음, 올바른 읽기 순서로 텍스트를 이어 붙여 OCR 모델 출력에서 읽을 수 있는 텍스트를 재구성합니다.

이 블록의 작동 방식

이 블록은 개별 OCR 감지 결과를 공간적으로 정렬하고, 올바른 읽기 순서로 텍스트를 이어 붙여 읽을 수 있는 텍스트를 재구성합니다. 이 블록은 다음을 수행합니다:

  1. 바운딩 박스와 텍스트 콘텐츠가 포함된 클래스 이름을 가진 개별 텍스트 감지를 포함하는 OCR 감지 예측값을 받습니다

  2. 읽기 방향에 따라 좌표를 준비합니다:

    • 세로 읽기 방향의 경우, 세로 줄 처리를 가능하게 하기 위해 x와 y 좌표를 서로 바꿉니다

    • 가로 읽기 방향의 경우, 좌표를 그대로 사용합니다

  3. 감지 결과를 줄로 그룹화합니다:

    • tolerance 매개변수를 사용해 세로 위치(세로 텍스트의 경우 가로 위치)를 기준으로 감지 결과를 그룹화합니다

    • 허용 오차 거리 내의 감지 결과는 같은 줄의 일부로 간주됩니다

    • 허용 오차 값이 클수록 더 멀리 떨어진 감지 결과도 한데 묶이며, 줄 간격이 가변적인 텍스트에 유용합니다

  4. 읽기 방향에 따라 줄을 정렬합니다:

    • left-to-right와 vertical top-to-bottom의 경우: 줄을 위에서 아래로 정렬합니다

    • right-to-left와 vertical bottom-to-top의 경우: 줄을 역순(아래에서 위로)으로 정렬합니다

  5. 각 줄 내의 감지 결과를 정렬합니다:

    • left-to-right와 vertical top-to-bottom의 경우: 감지 결과를 가로 위치 기준으로 정렬합니다(왼쪽에서 오른쪽, 세로의 경우 위에서 아래)

    • right-to-left와 vertical bottom-to-top의 경우: 감지 결과를 역순으로 정렬합니다(오른쪽에서 왼쪽, 세로의 경우 아래에서 위로)

  6. 읽기 순서로 텍스트를 이어 붙입니다:

    • 정렬된 순서대로 감지 결과에서 클래스 이름(텍스트 콘텐츠)을 추출합니다

    • 줄 사이에 줄 구분자(가로 텍스트의 경우 개행, 세로 텍스트의 경우 공백)를 추가합니다

    • 지정된 경우 각 텍스트 요소 사이에 선택적으로 구분자를 삽입합니다

    • 올바른 읽기 순서를 가진 하나의 일관된 텍스트 문자열을 생성합니다

  7. 자동 읽기 방향 감지를 처리합니다("auto"가 선택된 경우):

    • 감지 바운딩 박스의 평균 너비와 높이를 분석합니다

    • 평균 너비 > 평균 높이인 경우: 가로 텍스트(left-to-right)를 감지합니다

    • 평균 높이 >= 평균 너비인 경우: 세로 텍스트(top-to-bottom)를 감지합니다

  8. 이어 붙인 텍스트 문자열을 반환합니다:

    • 다음 아래에 단일 텍스트 문자열을 출력합니다 ocr_text

    • 텍스트는 읽기 방향에 따라 적절한 줄바꿈과 간격으로 형식이 지정됩니다

이 블록은 개별 OCR 감지 결과로부터 다중 줄 텍스트를 재구성하며, 서로 다른 언어와 문자 체계에 대해 올바른 읽기 순서를 유지합니다. 가로(left-to-right, right-to-left)와 세로(top-to-bottom, bottom-to-top) 텍스트 방향을 모두 처리하므로 다양한 언어와 형식의 텍스트를 처리하는 데 유용합니다.

일반적인 사용 사례

  • 텍스트 재구성: OCR 모델의 개별 단어 또는 문자 감지를 읽을 수 있는 텍스트 블록으로 변환합니다(예: 단어 감지로 문서를 재구성하고, 문자 감지를 단어로 결합하며, OCR 결과를 문단으로 이어 붙임). 이를 통해 텍스트 재구성 워크플로를 구현할 수 있습니다

  • 다중 줄 텍스트 처리: OCR 결과에서 적절한 줄바꿈과 서식을 유지한 채 다중 줄 텍스트를 재구성합니다(예: OCR 결과에서 문단 추출, 형식이 지정된 텍스트 재구성, 다중 줄 문서 처리). 이를 통해 다중 줄 텍스트 워크플로를 구현할 수 있습니다

  • 다국어 OCR: 서로 다른 언어와 문자 체계의 OCR 결과를 처리합니다(예: 아랍어 오른쪽에서 왼쪽 텍스트 처리, 세로 중국어/일본어 텍스트 처리, 여러 읽기 방향 지원). 이를 통해 다국어 OCR 워크플로를 구현할 수 있습니다

  • 문서 처리: 문서와 이미지에서 텍스트를 추출하고 재구성합니다(예: 스캔한 문서에서 텍스트 추출, 송장 텍스트 처리, 양식 텍스트 추출). 이를 통해 문서 처리 워크플로를 구현할 수 있습니다

  • 텍스트 추출 및 서식 지정: 이미지에서 텍스트를 추출해 후속 사용을 위해 서식을 지정합니다(예: 데이터베이스 저장용 텍스트 추출, API 응답용 텍스트 서식 지정, 분석용 텍스트 준비). 이를 통해 텍스트 추출 워크플로를 구현할 수 있습니다

  • OCR 결과 후처리: OCR 모델 출력을 후처리해 사용할 수 있는 텍스트 문자열을 생성합니다(예: OCR 출력 서식 지정, OCR 결과 정리, 후속 블록용 텍스트 준비). 이를 통해 OCR 후처리 워크플로를 구현할 수 있습니다

다른 블록에 연결하기

이 블록은 OCR 감지 예측값을 받아 이어 붙인 텍스트 문자열을 생성합니다:

  • OCR 모델 블록 뒤에 감지 결과를 읽을 수 있는 텍스트로 변환하기 위해(예: OCR 모델을 텍스트 문자열로, OCR 감지 결과를 서식 있는 텍스트로, OCR 결과를 텍스트 출력으로 변환) OCR-to-text 워크플로를 구현할 수 있습니다

  • 데이터 저장 블록 앞에서 추출한 텍스트를 저장하기 위해(예: 데이터베이스에 OCR 텍스트 저장, 추출 텍스트 저장, OCR 결과 기록) 텍스트 저장 워크플로를 구현할 수 있습니다

  • 알림 블록 앞에서 알림에 추출한 텍스트를 보내기 위해(예: 경고에 OCR 텍스트 포함, 메시지에 추출 텍스트 포함, OCR 결과로 알림) 텍스트 알림 워크플로를 구현할 수 있습니다

  • 텍스트 처리 블록 앞에 이어 붙인 텍스트를 처리하기 위해(예: NLP 모델로 텍스트 처리, 추출 텍스트 분석, 텍스트 변환 적용) 텍스트 처리 워크플로를 구현할 수 있습니다

  • API 출력 블록 앞에 API 응답에 텍스트를 제공하기 위해(예: API에서 OCR 텍스트 반환, 응답용 텍스트 서식 지정, 추출 텍스트 출력 제공) 텍스트 출력 워크플로를 구현할 수 있습니다

  • 워크플로 출력에서 최종 출력으로 이어 붙인 텍스트를 제공하기 위해(예: 텍스트 추출 워크플로, OCR 출력 워크플로, 문서 처리 워크플로) 텍스트 출력 워크플로를 구현할 수 있습니다

요구 사항

이 블록은 OCR 감지 예측값(객체 감지 형식)과 텍스트 콘텐츠가 포함된 바운딩 박스 및 클래스 이름이 필요합니다. The tolerance 매개변수는 0보다 커야 하며, 감지 결과를 줄로 그룹화하기 위한 세로(세로 텍스트의 경우 가로) 거리 임계값을 제어합니다. The reading_direction 매개변수는 다섯 가지 모드를 지원합니다: "left_to_right"(표준 가로), "right_to_left"(아랍어 스타일), "vertical_top_to_bottom"(세로), "vertical_bottom_to_top"(역세로), 그리고 "auto"(바운딩 박스 크기를 기반으로 자동 감지). The delimiter 매개변수는 선택 사항이며 각 텍스트 요소 사이에 구분자를 삽입합니다(기본값은 빈 문자열로, 구분자가 없음을 의미). 블록은 다음 아래에 단일 텍스트 문자열을 출력합니다 ocr_text 키.

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/stitch_ocr_detections@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

reading_direction

str

텍스트 감지 결과를 읽고 정렬할 방향입니다. 'left_to_right': 표준 가로 읽기(영어, 대부분의 언어). 'right_to_left': 오른쪽에서 왼쪽 읽기(아랍어, 히브리어). 'vertical_top_to_bottom': 위에서 아래로 읽는 세로 방향(번체 중국어, 일본어). 'vertical_bottom_to_top': 아래에서 위로 읽는 세로 방향(드문 세로 형식). 'auto': 평균 바운딩 박스 크기(너비 > 높이 = 가로, 높이 >= 너비 = 세로)를 기반으로 읽기 방향을 자동 감지합니다. 감지 결과가 줄로 어떻게 그룹화되고 각 줄 안에서 어떻게 정렬되는지를 결정합니다..

tolerance

정수

감지 결과를 같은 줄로 그룹화하기 위한 픽셀 단위의 세로(세로 텍스트의 경우 가로) 거리 임계값입니다. 이 허용 오차 거리 내의 감지 결과는 같은 줄로 묶입니다. 값이 클수록 더 멀리 떨어진 감지 결과도 한 줄로 묶이며, 줄 간격이 가변적이거나 기울어진 텍스트에 유용합니다. 값이 작을수록 더 많은 줄이 생성되며, 촘촘하게 배치된 텍스트에 유용합니다. 0보다 커야 합니다..

delimiter

str

스티칭할 때 각 텍스트 요소(단어/문자) 사이에 삽입할 선택적 구분자 문자열입니다. 빈 문자열(기본값)은 구분자가 없음을 의미하며, 텍스트 요소가 그대로 이어 붙여집니다. 단어 사이에 공백을 넣거나, 요소 사이에 쉼표를 넣거나, 사용자 지정 구분 기호를 추가할 때 유용합니다. 예: 단어 사이에 공백을 추가하려면 ' ' (공백)을 사용하고, 쉼표를 추가하려면 ','를 사용합니다..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 OCR 감지 결과 스티칭 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 예측 (object_detection_prediction): OCR 모델의 OCR 감지 예측값입니다. 바운딩 박스와 텍스트 콘텐츠가 포함된 클래스 이름을 포함해야 합니다. 각 감지 결과는 함께 이어 붙여 일관된 텍스트가 될 단어, 문자 또는 텍스트 영역을 나타냅니다. 데이터 딕셔너리의 바운딩 박스(xyxy)와 클래스 이름을 사용하는 객체 감지 형식을 지원합니다..

    • tolerance (정수): 감지 결과를 같은 줄로 그룹화하기 위한 픽셀 단위의 세로(세로 텍스트의 경우 가로) 거리 임계값입니다. 이 허용 오차 거리 내의 감지 결과는 같은 줄로 묶입니다. 값이 클수록 더 멀리 떨어진 감지 결과도 한 줄로 묶이며, 줄 간격이 가변적이거나 기울어진 텍스트에 유용합니다. 값이 작을수록 더 많은 줄이 생성되며, 촘촘하게 배치된 텍스트에 유용합니다. 0보다 커야 합니다..

    • delimiter (string): 스티칭할 때 각 텍스트 요소(단어/문자) 사이에 삽입할 선택적 구분자 문자열입니다. 빈 문자열(기본값)은 구분자가 없음을 의미하며, 텍스트 요소가 그대로 이어 붙여집니다. 단어 사이에 공백을 넣거나, 요소 사이에 쉼표를 넣거나, 사용자 지정 구분 기호를 추가할 때 유용합니다. 예: 단어 사이에 공백을 추가하려면 ' ' (공백)을 사용하고, 쉼표를 추가하려면 ','를 사용합니다..

  • 출력

    • ocr_text (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?