Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

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)に変換されます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう