Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

미디어 변환 fluent API

미디어 입력의 transform()은 MediaSetInputTransform을 반환합니다. 이미지 크기를 바꾸거나 문서 페이지를 잘라내는 연산을 연결한 뒤 미디어 출력에 쓰거나, OCR처럼 표/문자열을 반환하는 연산으로 결과를 읽을 수 있습니다. 아래 DataFrame 예제는 Spark 변환입니다.

schema별 작업

transform

media_input.transform(deduplicate_by_path=True)의 기본값은 경로별로 가장 최근 항목만 포함하는 것입니다. 같은 경로의 모든 항목이 필요하면 False를 지정합니다. 반환 객체에서 다음 연산을 연결합니다.

아래는 PDF 집합 전체의 OCR 결과를 표로 쓰는 완전한 예제입니다.

from transforms.api import Output, transform
from transforms.mediasets import MediaSetInput


@transform.spark.using(
    pdfs=MediaSetInput("/Example Project/Inputs/pdfs"),
    output=Output("/Example Project/Outputs/ocr_results"),
)
def compute(pdfs, output):
    result = pdfs.transform().ocr()
    output.write_dataframe(result, column_typeclasses={
        "media_reference": [{"kind": "reference", "name": "media_reference"}]
    })

미디어 출력의 write

미디어를 생성하는 변환 객체는 media_output.write()에 전달합니다.

인자기본값계약
media_transform필수입력에 적용한 MediaSetInputTransform
output_pathprefix_path원래 경로와 선택적 페이지 번호를 받아 출력 경로 문자열을 반환하는 함수. 기본은 transformed 접두사
suppress_errorsFalse집합 전체 처리에서 오류를 잡을지 여부
return_dataframeFalse집합 전체 쓰기 결과를 DataFrame으로 반환할지 여부

output_path의 형식은 Callable[[str, Optional[int]], str]입니다. 한 입력에서 여러 미디어 항목을 만들면 결과를 구분할 값이 경로에 자동으로 붙습니다. 여러 crop을 적용하는 경우에는 x/y offset과 width/height 같은 자르기 매개변수가 구분 값에 포함됩니다.

처리 범위반환
단일 항목결과 미디어 참조 문자열 str
집합 전체, return_dataframe=FalseNone
집합 전체, return_dataframe=Truemedia_item_rid, path, media_reference 열의 DataFrame

집합 전체에서 return_dataframe=True이면 미디어 변환이 지연 평가됩니다. 반환 DataFrame을 출력에 쓰는 등 실제 action이 있어야 계산합니다.

suppress_errors=False이면 오류가 빌드를 실패시킵니다. True이고 return_dataframe도 True이면 오류 메시지가 반환 DataFrame의 media_reference 열에 들어갈 수 있습니다. 모든 문자열이 유효한 미디어 참조라고 가정하지 않습니다. 단일 항목 변환에는 이 집합용 오류 억제 옵션을 적용하지 않습니다.

영상의 장면 이미지를 TAR로 쓰기

장면 프레임 추출은 입력 영상마다 프레임 이미지들을 TAR로 만듭니다. 출력은 해당 결과를 받을 수 있는 multimodal 미디어 집합입니다. 사용자 경로 함수는 영상의 전체 원래 경로에 .tar를 붙여 구분합니다.

from transforms.api import transform
from transforms.mediasets import MediaSetInput, MediaSetOutput


def archive_path(input_path, page=None):
    return f"{input_path}.tar"


@transform.spark.using(
    videos=MediaSetInput("/Example Project/Inputs/videos"),
    archives=MediaSetOutput("/Example Project/Outputs/scene_archives"),
)
def compute(videos, archives):
    operation = videos.transform().extract_scene_frames(scene_sensitivity="LESS_SENSITIVE")
    archives.write(operation, output_path=archive_path)

변환한 이미지와 참조 표 함께 쓰기

from transforms.api import Output, transform
from transforms.mediasets import MediaSetInput, MediaSetOutput


@transform.spark.using(
    images=MediaSetInput("/Example Project/Inputs/images"),
    resized=MediaSetOutput("/Example Project/Outputs/resized_images"),
    references=Output("/Example Project/Outputs/resized_references"),
)
def compute(images, resized, references):
    result = resized.write(images.transform().resize(), return_dataframe=True)
    references.write_dataframe(result, column_typeclasses={
        "media_reference": [{"kind": "reference", "name": "media_reference"}]
    })

개별 항목은 images.transform().resize(media_item_rid=rid)처럼 실제 RID를 지정하며 write의 반환값은 해당 결과의 미디어 참조 문자열입니다.

공통 반환형과 오류 정책

이미지/음성/문서 자체를 변환하는 메서드는 MediaSetInputTransform을 반환하여 다음 연산이나 미디어 write에 연결합니다. 텍스트, 임베딩과 메타데이터를 추출하는 메서드는 단일 항목에서 문자열 또는 문자열 목록, 집합 전체에서 DataFrame을 반환합니다. 단일 항목의 문자열을 DataFrame writer에 직접 전달하지 않습니다.

추출 메서드의 suppress_errors는 대체로 기본 True인 반면, 미디어 출력 write()는 기본 False입니다. 각 메서드의 표에 있는 기본값과 집합 전체에만 적용하는 조건을 따릅니다.