Open1

TorchvisionのResizeで長辺を指定してリサイズする

myelinmyelin

結論

torchvision.transforms.Resize(size, max_size=size+1)

内容

https://pytorch.org/vision/main/generated/torchvision.transforms.Resize.html

sizeを指定してリサイズを行うモジュールである。
画像のアスペクト比を維持する場合はint型でsizeを指定するが、その場合は画像の短辺(高さと幅の短い方)が指定されたsizeになり、長辺は(元画像の長辺/元画像の短辺)*sizeとなる。
画像の長辺を指定してリサイズする場合はmax_sizeオプションを使う。このオプションで上限を与えることで、リサイズ後の長辺がmax_sizeを超えないようにリサイズが行われる。

注意

  • sizeには目的の大きさを設定する
    • max_sizeに基づく調整が行われるのは「リサイズ後の長辺がmax_sizeより大きい」場合だけ。
    • sizeを適当な値に設定するとただ小さい画像が出力されてしまう。
    • torchvision 0.20のv2.Resizeだとsize=Noneが可能になる。
  • max_sizeは(目的の大きさ+1)を設定する
    • size=maxsizeだとエラーが出る。