Letterboxing
レターボックス化では、アスペクト比を保ったまま画像を目標サイズにリサイズし、パディングを追加することで、物体を歪ませずに視野全体を維持します。
レターボックス化は、画像のアスペクト比を保ちながらパディングを追加し、目標サイズに合わせる画像リサイズ手法です。画像を均一に拡大縮小した後、未使用領域を境界ピクセルで埋めることで、物体の縦横比と視野全体を維持します。コンピュータービジョンでは、異なる形状の画像を、共通の入力形状を受け付けるモデル向けに整えます。
AI以外では、レターボックス化は、横長映画を上下の黒帯とともに表示することも指します。
レターボックス化で画像の幾何形状を保つ仕組み#
アスペクト比とは、画像の幅と高さの比率です。データ前処理では、レターボックス化により、目標幅を元の幅で割った値と、目標高さを元の高さで割った値のうち、小さい方の倍率を選択します。両方の寸法にその倍率を適用するため、リサイズ後の画像は目標サイズ内に収まります。残りのピクセル領域はパディングになります。TensorFlowのリサイズとパディングの処理は、値が0の境界を使ってこの方法を実装します。
たとえば、1280 x 720の画像を640 x 640の目標サイズに合わせる場合、倍率は0.5です。画像内容は640 x 360になり、280行分のパディングが残ります。中央揃えの場合、上に140行、下に140行です。縦長の画像には左右に境界が追加されます。そのため、レターボックス化された画像には横方向または縦方向のパディングが生じることがあり、目標サイズを長方形にすることもできます。
Ultralytics YOLOは、検出、セグメンテーション、ポーズ推定の入力で幾何形状を維持するためにLetterBox変換を使用し、デフォルトでは値114のグレーのパディングを追加します。YOLO26の検出、セグメンテーション、ポーズ推定の予測では、最小矩形パディングを使うと、バッチの形状と推論バックエンドが対応している場合に、境界を互換性のあるストライドの倍数まで縮小できます。
レターボックス化と引き伸ばし・クロップの比較#
画像と目標サイズの形状が異なる場合、次の3つのリサイズ方法でそれぞれ異なる処理を行います。
- レターボックス化は縦横比と画像全体を維持し、入力領域の一部をパディングに割り当てます。
- 引き伸ばしでは、目標サイズを埋めるように幅と高さを個別にリサイズします。倍率が異なると、円は楕円になります。
- クロップでは、均一なリサイズと組み合わせて縦横比を維持した後、選択した領域の外側を削除します。画像の端にある物体が切り取られる場合があります。
これらの方法は、形状や位置が重要となる物体検出や、クロップによってクラスを判別するために見える情報が変化する画像分類に影響します。
パディングも入力領域を消費します。1280 x 720の例では、正方形画像のうち画像内容が占める割合は56.25%、パディングが占める割合は43.75%です。ダウンサンプリングにより画像内容内の細部は減りますが、境界ピクセルを追加しても物体の細部は増えません。小さな物体を含む高解像度画像では、タイル推論により画像を個別の領域に分けて処理し、物体の実効スケールを大きくできます。
Pythonでのレターボックス化の例#
pip install pillowでPillowをインストールします。ImageOps.pad処理は、画像をリサイズしてパディング付きキャンバスの中央に配置します。この例では、ビジョンのチュートリアル用に配布されているバスの写真を使用します。
from urllib.request import urlretrieve
from PIL import Image, ImageOps
urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
image = Image.open("bus.jpg")
image = image.convert("RGB")
# Preserve proportions and fill the unused area with gray.
letterboxed = ImageOps.pad(image, (640, 640), color=(114, 114, 114))
letterboxed.save("letterboxed_bus.png")
print(f"{image.size} -> {letterboxed.size}")出力寸法は幅と高さで表す(810, 1080) -> (640, 640)です。保存された画像には、480 x 640にリサイズされた写真全体が含まれ、左右にはそれぞれ80ピクセルの境界があります。
アノテーションと予測の座標変換#
レターボックス化では、ピクセルだけでなく座標系も変換されます。すべてのバウンディングボックスの座標は、左または上のパディング量に応じて拡大縮小し、オフセットを加える必要があります。同じ幾何変換は、ポーズ推定におけるキーポイントや、インスタンスセグメンテーションにおける物体の輪郭にも適用されます。学習時にアノテーションを変更しないと、ターゲットと、それが示す物体の位置がずれます。
推論後の座標のスケール変換では、パディングのオフセットを引き、その後リサイズ倍率で割ることで変換を元に戻します。パディングが0でない場合、位置が正しいボックスでもオフセットを無視すると位置がずれ、正解データとの積集合と和集合の比率が低下します。バスの例では、パディング後の座標(320, 320)の点は、xから80を引き、両方の座標を640 / 1080で割ると、元の座標(405, 540)に変換されます。










