Detectron2 Transforms

fvcore/transforms/transform.py 

detectron2/data/transforms/transform.py + PIL

提供底层实现。

__all__ = [
    "RandomBrightness",
    "RandomContrast",
    "RandomCrop",
    "RandomExtent",
    "RandomFlip",
    "RandomSaturation",
    "RandomLighting",
    "Resize",
    "ResizeShortestEdge",
    "TransformGen",
    "apply_transform_gens",
]

from detectron2.config import get_cfg
from detectron2.data import detection_utils
from detectron2.data import transforms as T
from PIL import Image

# ****************************
# Pillow 基本图像转换用法
>>> img = Image.open("image.jpg")
>>> img.show()
>>> img.size
(500, 363)

# 截取图像data坐标之间的区域,并输出为size尺寸
>>> ret = img.transform(size=(50,50), method=Image.EXTENT, data=(0,0,200,200), fill=0)
>>> ret.size
(50, 50)

# ****************************


# ****************************
cfg = get_cfg()
is_train = True
build_transform_gen 
# build_transform_gen 会预先指定需要进行的变换,加入的是T里面的变换
transform_gen = detection_utils.build_transform_gen(cfg, is_train)
image = np.random.rand(200, 300)
# apply_transform_gens 会根据需要的变换,调用get_transform获取相应转换类,apply_image进行变换;同时转换也要传给bbox使用
image, transforms = T.apply_transform_gens(transform_gen, image)
image_shape = image.shape[:2]  # h, w
assert image_shape == (800, 1200)
annotation = {"bbox": [179, 97, 62, 40, -56]}
# boxes.shape = (1, 5) x_center, y_center, width, height, angle
boxes = np.array([annotation["bbox"]], dtype=np.float64)
# 转换也要传给bbox使用
transformed_bbox = transforms.apply_rotated_box(boxes)[0]
# ****************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值