StatelessSampleDistortedBoundingBox

공개 최종 클래스 StatelessSampleDistortedBoundingBox

결정론적으로 이미지에 대해 무작위로 왜곡된 경계 상자를 생성합니다.

경계 상자 주석은 이미지 인식이나 객체 위치 파악 작업에서 실측 라벨과 함께 제공되는 경우가 많습니다. 이러한 시스템을 훈련하는 일반적인 기술은 콘텐츠를 보존하면서 이미지를 무작위로 왜곡하는 것, 즉 데이터 증대 입니다. 이 Op는 동일한 '시드'가 주어지면 'image_size', 'bounding_boxes' 및 일련의 제약 조건이 주어지면 객체, 즉 경계 상자의 무작위로 왜곡된 위치를 결정론적으로 출력합니다.

이 작업의 출력은 원본 이미지를 자르는 데 사용할 수 있는 단일 경계 상자입니다. 출력은 'begin', 'size', 'bboxes'라는 3개의 텐서로 반환됩니다. 처음 2개의 텐서는 'tf.slice'에 직접 입력되어 이미지를자를 수 있습니다. 후자는 경계 상자의 모양을 시각화하기 위해 `tf.image.draw_bounding_boxes`에 제공될 수 있습니다.

경계 상자는 `[y_min, x_min, y_max, x_max]`로 제공되고 반환됩니다. 경계 상자 좌표는 기본 이미지의 너비와 높이를 기준으로 `[0.0, 1.0]`의 부동 소수점입니다.

이 작업의 출력은 동일한 `seed`가 주어지면 동일함을 보장하며 함수가 호출된 횟수 및 전역 시드 설정(예: `tf.random.set_seed`)과 무관합니다.

사용 예:

>>> 이미지 = np.array([[[1], [2], [3]], [[4], [5], [6]], [[7], [8], [9] ]]) >>> bbox = tf.constant( ... [0.0, 0.0, 1.0, 1.0], dtype=tf.float32, 모양=[1, 1, 4]) >>> 시드 = (1, 2 ) >>> # 단일 왜곡된 경계 상자를 생성합니다. >>> bbox_begin, bbox_size, bbox_draw = ( ... tf.image.stateless_sample_distorted_bounding_box( ... tf.shape(image),bounding_boxes=bbox, seed=seed)) >>> # 경계 상자를 사용하여 이미지를 왜곡합니다. . >>> tf.slice(이미지, bbox_begin, bbox_size) >>> # 이미지 요약에 경계 상자를 그립니다. >>> 색상 = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) >>> tf.image.draw_bounding_boxes( ... tf.expand_dims(tf.cast(이미지, tf .float32),0), bbox_draw, 색상)

경계 상자 정보를 사용할 수 없는 경우 `use_image_if_no_bounding_boxes = true`를 설정하면 전체 이미지를 덮는 단일 암시적 경계 상자가 있다고 가정합니다. `use_image_if_no_bounding_boxes`가 false이고 경계 상자가 제공되지 않으면 오류가 발생합니다.

중첩 클래스

수업 StatelessSampleDistortedBoundingBox.Options StatelessSampleDistortedBoundingBox 의 선택적 속성

공개 방법

정적 StatelessSampleDistortedBoundingBox.Options
AreaRange (List<Float> AreaRange)
정적 StatelessSampleDistortedBoundingBox.Options
AspectRatioRange (List<Float> AspectRatioRange)
출력 <플로트>
B박스 ()
왜곡된 경계 상자를 포함하는 '[1, 1, 4]' 모양의 3D입니다.
출력 <T>
시작하다 ()
`[offset_height, offset_width, 0]`을 포함하는 1-D.
static <T는 숫자 확장, U는 숫자 확장> StatelessSampleDistortedBoundingBox <T>
생성 ( 범위 범위, 피연산자 <T> imageSize, 피연산자 <Float> 경계 상자, 피연산자 <Float> minObjectCovered, 피연산자 <U> 시드, 옵션... 옵션)
새로운 StatelessSampleDistortedBoundingBox 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
정적 StatelessSampleDistortedBoundingBox.Options
maxAttempts (긴 maxAttempts)
출력 <T>
사이즈 ()
`[target_height, target_width, -1]`을 포함하는 1-D.
정적 StatelessSampleDistortedBoundingBox.Options
useImageIfNoBoundingBoxes (부울 useImageIfNoBoundingBoxes)

상속된 메서드

공개 방법

public static StatelessSampleDistortedBoundingBox.OptionsareaRange (List<Float>areaRange )

매개변수
지역 범위 이미지의 잘린 영역에는 이 범위 내에서 제공된 이미지의 일부가 포함되어야 합니다.

공개 정적 StatelessSampleDistortedBoundingBox.Options AspectRatioRange (List<Float> AspectRatioRange)

매개변수
양상비율범위 이미지의 잘린 영역은 이 범위 내에서 가로/세로 비율 = 너비/높이를 가져야 합니다.

공개 출력 <Float> bboxes ()

왜곡된 경계 상자를 포함하는 '[1, 1, 4]' 모양의 3D입니다. `tf.image.draw_bounding_boxes`에 입력으로 제공합니다.

공개 출력 <T> 시작 ()

`[offset_height, offset_width, 0]`을 포함하는 1-D. `tf.slice`에 입력으로 제공합니다.

공개 정적 StatelessSampleDistortedBoundingBox <T> 생성 ( 범위 범위, 피연산자 <T> imageSize, 피연산자 <Float> 경계 상자, 피연산자 <Float> minObjectCovered, 피연산자 <U> 시드, 옵션... 옵션)

새로운 StatelessSampleDistortedBoundingBox 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
이미지 크기 `[높이, 너비, 채널]`을 포함하는 1-D.
경계 상자 이미지와 연관된 N개의 경계 상자를 설명하는 '[batch, N, 4]' 모양의 3D입니다.
minObjectCovered 이미지의 잘린 영역에는 제공된 경계 상자 중 최소한 이 부분이 포함되어야 합니다. 이 매개변수의 값은 음수가 아니어야 합니다. 0인 경우 잘린 영역은 제공된 경계 상자와 겹칠 필요가 없습니다.
씨앗 '[2]' 모양의 1D. 난수 생성기의 시드입니다. dtype `int32` 또는 `int64`가 있어야 합니다. (XLA를 사용하는 경우 `int32`만 허용됩니다.)
옵션 선택적 속성 값을 전달합니다.
보고
  • StatelessSampleDistortedBoundingBox의 새 인스턴스

공개 정적 StatelessSampleDistortedBoundingBox.Options maxAttempts (Long maxAttempts)

매개변수
최대 시도 횟수 지정된 제약 조건에 따라 이미지의 잘린 영역을 생성하려는 시도 횟수입니다. 'max_attempts' 실패 후 전체 이미지를 반환합니다.

공개 출력 <T> 크기 ()

`[target_height, target_width, -1]`을 포함하는 1-D. `tf.slice`에 입력으로 제공합니다.

공개 정적 StatelessSampleDistortedBoundingBox.Options useImageIfNoBoundingBoxes (부울 useImageIfNoBoundingBoxes)

매개변수
useImageIfNoBoundingBoxes 경계 상자가 제공되지 않은 경우 동작을 제어합니다. true인 경우 전체 입력을 포괄하는 암시적 경계 상자를 가정합니다. 거짓이면 오류를 발생시킵니다.