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

가장자리 기준 자동 회전

이미지의 주요 직선 가장자리가 수직 및/또는 수평이 되도록 자동으로 회전합니다.

이미지의 주된 직선 가장자리(예: 문서, 패키지, 패널 또는 선반의 측면)가 세로축, 가로축, 또는 둘 중 더 가까운 쪽에 가장 잘 맞도록 회전 각도를 찾아 이미지의 기울기를 자동으로 보정한 다음, 전체 해상도 이미지를 그 각도만큼 자동으로 확장된 캔버스에 회전하여 아무것도 잘리지 않도록 합니다.

이 블록의 작동 방식

이 블록은 이미지의 주된 그라디언트 방향에서 회전 각도를 추정한 다음, 그 회전을 이미지에 적용합니다. 이 블록은:

  1. 이미지를 그레이스케일로 변환합니다(컬러 이미지는 다음으로 변환됨 BGR2GRAY)

  2. 작업용 복사본의 가장 긴 변이 최대 internal_resolution 픽셀이 되도록 축소합니다(기본값 1000, 속도 향상용; 검출된 각도는 크기 불변이며 나중에 전체 해상도 원본에 적용됨)

  3. 평평하거나 저텍스처 이미지(픽셀 표준편차가 매우 낮음)를 확인하고, 발견되면 처리를 건너뛰고 angle = 0.0

  4. CLAHE로 로컬 대비를 향상하고 가우시안 블러를 약하게 적용해 노이즈 민감도를 줄여, 후보 각도 점수 계산에만 사용되는 float32 이미지를 만듭니다.

  5. Sobel 그라디언트를 한 번 계산하고 그라디언트 방향의 크기 가중 히스토그램을 만듭니다(180도를 기준으로 모듈로): 주된 선들의 그라디언트는 선 자체에 수직으로 향하므로, 세로선은 히스토그램을 0도 주변에, 가로선은 90도 주변에 집중시킵니다

  6. 구분이 잘 안 되는 히스토그램(명확한 지배 방향이 없음)을 제외하고 이미지를 변경 없이 반환합니다

  7. 주변 방향들에 대해 두 배 각도 가중 원형 평균을 사용해 히스토그램의 지배 모드를 세부적으로 보정하여 1도 미만 정밀도를 얻고, 보정을 (-90, 90] 도 단위로 세로/가로 또는 (-45, 45] 도 단위로 either

  8. 최종 각도의 절대값이 skip_below_degrees보다 작으면, 이미지 변경 없이 angle = 0.0 을 반환합니다(이미 충분히 곧은 이미지에 대한 불필요한 재인코딩/리샘플링을 방지). 마찬가지로, 최종 각도의 절대값이 max_correction_degrees보다 크면, 이미지 변경 없이 angle = 0.0 - 허용 가능한 기울기 범위를 벗어나는 보정은 보통 검색이 관심 있는 선이 아니라 다른 지배 구조(예: 긴 물체 실루엣)에 맞춰졌음을 의미합니다

  9. 그렇지 않으면 전체 해상도 원본 이미지를 중심을 기준으로 최종 각도만큼 회전하고, 회전된 전체 이미지가 보존되도록 출력 캔버스를 자동으로 확장합니다( roboflow_core/image_preprocessing@v1의 회전 작업과 동일하게 캔버스 확장 동작을 맞춤)

이 블록은 기울기 보정된 이미지(확장된 캔버스 포함)와 적용된 회전 각도를 도 단위로 모두 출력합니다. 각도는 OpenCV의 규칙을 따릅니다: 양수 각도는 반시계 방향 회전입니다.

일반적인 사용 사례

  • 문서 및 라벨 스캔: OCR 또는 후속 검출 전에 촬영된 문서, 라벨 또는 포장재를 바로잡아 텍스트 및 바코드 판독 정확도를 향상

  • 고정 카메라 검사: 고정 위치 산업용 카메라의 장착으로 인한 작은 기울기를 보정하여 후속 측정 블록(예: 크기 또는 거리 측정)이 축 정렬된 이미지에서 동작하도록 합니다

  • 컨베이어 및 선반 정렬: 가장자리가 세로 또는 가로여야 하는 컨베이어, 선반 또는 패널 이미지의 정렬을 맞춰, 후속 선/에지 기반 분석의 신뢰성을 높입니다

  • 검출 모델용 전처리: 회전에 민감한 객체 검출 또는 분류 모델을 실행하기 전에 입력 이미지를 바로잡습니다

다른 블록에 연결하기

이 블록은 이미지를 받아 기울기 보정된 이미지와 적용된 각도를 생성합니다:

  • 검출 또는 분류 모델 이전에 추론 전에 이미지를 바로잡아, 기울어진 원본 이미지에서도 더 신뢰할 수 있는 모델 출력을 가능하게 합니다

  • 측정 블록 이전 (예: 거리 또는 크기 측정) 축 정렬된 장면을 가정하는

  • 다운스트림 좌표 매핑과 함께 - 각도 출력(원본 이미지의 크기와 함께)은 적용된 변환을 완전히 결정하므로, 회전된 이미지에서 수행된 검출은 build_auto_rotate_matrix

유형 식별자

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

속성

이름

유형

설명

참조

name

str

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

target_orientation

str

이미지의 주된 직선이 어떤 가장자리 방향에 맞춰져야 하는지입니다. 'vertical'은 주된 선이 세로가 되도록 하는 회전을 찾고, 'horizontal'은 주된 선이 가로가 되도록 하는 회전을 찾으며, 'either'는 둘 중 더 가까운 쪽에 맞춥니다(검색은 가장 가까운 직각을 중심으로 +/-45도 범위로 제한됨)..

skip_below_degrees

float

검출된 보정 각도의 절대값이 이 임계값(도 단위)보다 작으면, 블록은 입력 이미지를 변경 없이 반환합니다(동일 통과) with angle = 0.0불필요한 재인코딩/리샘플링을 방지합니다..

max_correction_degrees

float

찾아낸 최적 보정 각도가 이 상한을 초과하면(절대 도 단위), 블록은 입력 이미지를 변경 없이 반환합니다(동일 통과) with angle = 0.0. 이는 이미지의 허용 가능한 기울기 범위가 알려져 있을 때(예: 부품이 축에서 최대 약 40도 정도만 벗어나 촬영되는 경우) 설정하며, 이미지의 다른 지배 구조(예: 관심 있는 선 대신 긴 물체 실루엣)가 지나치고 잘못된 회전을 유발하지 못하게 합니다. 기본값 90.0은 이 상한을 비활성화합니다..

internal_resolution

정수

회전 각도 검색은 가장 긴 변이 최대 이 픽셀 수가 되도록 축소된 작업용 복사본에서 실행되며, 전체 해상도 이미지는 최종 회전에만 사용됩니다. 낮은 값은 검색을 더 빠르게 만들지만 매우 얇은 선을 흐리게 할 수 있고, 높은 값은 검색 시간 증가를 대가로 미세한 선의 디테일을 보존합니다..

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

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 가장자리에 따라 자동 회전 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 이미지 (이미지): 기울기를 보정할 입력 이미지(컬러 또는 그레이스케일). 컬러 이미지는 각도 검출을 위해 자동으로 그레이스케일로 변환되며, 검출된 회전 각도는 전체 해상도 원본 이미지에 적용됩니다. 출력에는 회전된 이미지(자동으로 확장된 캔버스 포함)와 적용된 각도 도 단위의 각도..

    • target_orientation (string): 이미지의 주된 직선이 어떤 가장자리 방향에 맞춰져야 하는지입니다. 'vertical'은 주된 선이 세로가 되도록 하는 회전을 찾고, 'horizontal'은 주된 선이 가로가 되도록 하는 회전을 찾으며, 'either'는 둘 중 더 가까운 쪽에 맞춥니다(검색은 가장 가까운 직각을 중심으로 +/-45도 범위로 제한됨)..

    • skip_below_degrees (float): 검출된 보정 각도의 절대값이 이 임계값(도 단위)보다 작으면, 블록은 입력 이미지를 변경 없이 반환합니다(동일 통과) with angle = 0.0불필요한 재인코딩/리샘플링을 방지합니다..

    • max_correction_degrees (float): 찾아낸 최적 보정 각도가 이 상한을 초과하면(절대 도 단위), 블록은 입력 이미지를 변경 없이 반환합니다(동일 통과) with angle = 0.0. 이는 이미지의 허용 가능한 기울기 범위가 알려져 있을 때(예: 부품이 축에서 최대 약 40도 정도만 벗어나 촬영되는 경우) 설정하며, 이미지의 다른 지배 구조(예: 관심 있는 선 대신 긴 물체 실루엣)가 지나치고 잘못된 회전을 유발하지 못하게 합니다. 기본값 90.0은 이 상한을 비활성화합니다..

    • internal_resolution (정수): 회전 각도 검색은 가장 긴 변이 최대 이 픽셀 수가 되도록 축소된 작업용 복사본에서 실행되며, 전체 해상도 이미지는 최종 회전에만 사용됩니다. 낮은 값은 검색을 더 빠르게 만들지만 매우 얇은 선을 흐리게 할 수 있고, 높은 값은 검색 시간 증가를 대가로 미세한 선의 디테일을 보존합니다..

  • 출력

    • 이미지 (이미지): 워크플로의 이미지입니다.

    • 각도 (float): 실수 값입니다.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?