Commit 062664e7 authored by narugo1992's avatar narugo1992
Browse files

dev(narugo): unify the _create_resize function

parent 6a947642
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -6,6 +6,9 @@ particularly for image processing tasks. It includes constants for standard imag
normalization values and utilities for creating image transforms from transformers
processors.
"""
from PIL import Image

from ..pillow import PillowResize

try:
    import transformers
@@ -111,3 +114,12 @@ def create_transforms_from_transformers(processor):
            pass
    else:
        raise NotProcessorTypeError(f'Unknown transformers processor - {processor!r}.')


def _create_resize(size, resample=Image.BICUBIC):
    if "shortest_edge" in size:
        return PillowResize(size["shortest_edge"], interpolation=resample)
    elif "height" in size and "width" in size:
        return PillowResize((size["height"], size["width"]), interpolation=resample)
    else:
        raise ValueError(f'Unknown size configuration - {size!r}.')  # pragma: no cover
+3 −8
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ library integration.
from PIL import Image

from .base import OPENAI_CLIP_MEAN, OPENAI_CLIP_STD, _DEFAULT, register_creators_for_transformers, _check_transformers, \
    NotProcessorTypeError
from ..pillow import PillowConvertRGB, PillowResize, PillowCenterCrop, PillowToTensor, PillowNormalize, PillowCompose, \
    NotProcessorTypeError, _create_resize
from ..pillow import PillowConvertRGB, PillowCenterCrop, PillowToTensor, PillowNormalize, PillowCompose, \
    PillowRescale

_DEFAULT_SIZE = {"shortest_edge": 224}
@@ -76,12 +76,7 @@ def create_bit_transforms(

    # Resize
    if do_resize:
        if "shortest_edge" in size:
            transform_list.append(PillowResize(size["shortest_edge"], interpolation=resample))
        elif "height" in size and "width" in size:
            transform_list.append(PillowResize((size["height"], size["width"]), interpolation=resample))
        else:
            raise ValueError(f'Unknown size configuration - {size!r}.')  # pragma: no cover
        transform_list.append(_create_resize(size, resample=resample))

    # Center crop
    if do_center_crop:
+3 −3
Original line number Diff line number Diff line
@@ -9,8 +9,8 @@ all implemented using Pillow-based operations.
from PIL import Image

from .base import OPENAI_CLIP_STD, OPENAI_CLIP_MEAN, _DEFAULT, _check_transformers, NotProcessorTypeError, \
    register_creators_for_transformers
from ..pillow import PillowConvertRGB, PillowRescale, PillowNormalize, PillowToTensor, PillowResize, PillowCompose
    register_creators_for_transformers, _create_resize
from ..pillow import PillowConvertRGB, PillowRescale, PillowNormalize, PillowToTensor, PillowCompose

_DEFAULT_SIZE = {"height": 384, "width": 384}

@@ -67,7 +67,7 @@ def create_blip_transforms(

    # Resize if needed
    if do_resize:
        transform_list.append(PillowResize((size["height"], size["width"]), interpolation=resample))
        transform_list.append(_create_resize(size, resample=resample))

    # Convert PIL to tensor (which automatically scales to [0,1])
    transform_list.append(PillowToTensor())
+3 −6
Original line number Diff line number Diff line
@@ -8,8 +8,8 @@ The module integrates with the Hugging Face transformers library and provides co
from PIL import Image

from .base import _check_transformers, NotProcessorTypeError, register_creators_for_transformers, OPENAI_CLIP_MEAN, \
    OPENAI_CLIP_STD, _DEFAULT
from ..pillow import PillowResize, PillowCenterCrop, PillowToTensor, PillowNormalize, PillowCompose, PillowRescale, \
    OPENAI_CLIP_STD, _DEFAULT, _create_resize
from ..pillow import PillowCenterCrop, PillowToTensor, PillowNormalize, PillowCompose, PillowRescale, \
    PillowConvertRGB

_DEFAULT_SIZE = {"shortest_edge": 224}
@@ -69,10 +69,7 @@ def create_clip_transforms(
        transform_list.append(PillowConvertRGB())

    if do_resize:
        if "shortest_edge" in size:
            transform_list.append(PillowResize(size["shortest_edge"], interpolation=resample))
        elif "height" in size and "width" in size:
            transform_list.append(PillowResize((size["height"], size["width"]), interpolation=resample))
        transform_list.append(_create_resize(size, resample=resample))

    if do_center_crop:
        transform_list.append(PillowCenterCrop((crop_size["height"], crop_size["width"])))
+3 −3
Original line number Diff line number Diff line
@@ -7,8 +7,8 @@ resizing, rescaling, normalization, and RGB conversion.
from PIL import Image

from .base import IMAGENET_STANDARD_MEAN, IMAGENET_STANDARD_STD, _DEFAULT, _check_transformers, NotProcessorTypeError, \
    register_creators_for_transformers
from ..pillow import PillowCompose, PillowNormalize, PillowRescale, PillowToTensor, PillowResize, PillowConvertRGB
    register_creators_for_transformers, _create_resize
from ..pillow import PillowCompose, PillowNormalize, PillowRescale, PillowToTensor, PillowConvertRGB

_DEFAULT_SIZE = {"height": 224, "width": 224}

@@ -70,7 +70,7 @@ def create_siglip_transforms(

    # Resize
    if do_resize:
        transforms_list.append(PillowResize((size["height"], size["width"]), interpolation=resample))
        transforms_list.append(_create_resize(size, resample=resample))

    # Convert to tensor (implicitly rescales to 0-1)
    transforms_list.append(PillowToTensor())
Loading