Imgix APIsレンダリング APIサイズクロップモード

クロップモード

crop

クロップモードは、fit=crop を設定した場合に画像がどのように配置されるかを制御します。w と h パラメータが出力寸法を定義します。複数の値をカンマで組み合わせてフォールバックチェーンを形成できます — imgixは各値を順番に適用し、最初に一致した値で停止します。値が設定されない場合、またはマッチが見つからない場合のデフォルトは中央クロップです。

値説明
top上端からクロップ
bottom下端からクロップ
left左端からクロップ
right右端からクロップ
faces顔を検出してクロップの中心に合わせる
focalpointfp-x / fp-y 座標を中心にクロップ
entropy最も情報密度の高いエリアにクロップ
edges最もエッジが密集したエリアにクロップ
auto最も重要な被写体を自動検出してクロップ(ほとんどのシナリオで推奨)
<オブジェクトクラス>COCOクラス名またはスーパーカテゴリ(例:car、vehicle、person)
crop 値が設定されていない場合、imgixは画像の中心からクロップします。fit=crop は画像を出力寸法に合わせてスケールし、中央部分を保持します。他の crop 値の効果を比較するためのベースラインとして使用してください。
https://static-c.imgix.net/woman.jpg?w=320&h=320&fit=crop&q=90
デフォルト

オブジェクト認識クロップ

crop=auto と crop=<オブジェクトクラス> は、上記の他のクロップ値とは動作が異なります。固定された戦略(エッジ、座標、画像全体のスコアリング)を使う代わりに、画像に対して被写体検出を実行し、検出結果にクロップの基準点を合わせます。

自動被写体検出(crop=auto)

crop=auto はほとんどのシナリオで推奨されるクロップモードです。手動での設定が不要で、画像内で最も視覚的に重要な被写体に合わせて自動的に調整されます。crop=auto は画像を分析し、最も視覚的に重要な被写体をクロップの基準点として自動的に選択します。検出対象は以下の通りです。

  • 人物
  • 乗り物 — 自転車、車、バイク、飛行機、バス、電車、トラック、ボート
  • 動物 — 鳥、猫、犬、馬、羊、牛、象、クマ、シマウマ、キリン

顔は他の被写体タイプよりも高い重み付けがされており、目立つ顔は同じフレーム内のより大きな乗り物よりも優先されます。複数の互換性のある被写体が検出された場合、imgixはできるだけ多くをフレームに収めようとした後、最もスコアの高い単一の被写体にフォールバックします。

crop=auto には fit=crop または fit=min が必要です。互換性のある fit 値なしで crop=auto を使用したURLは中央クロップになります。

オブジェクトクラス検出(crop=<オブジェクトクラス>)

80種類のCOCOオブジェクトクラス名のいずれかを crop 値として使用して、検出されたそのクラスのインスタンスにフォーカスできます — 例:crop=car、crop=dog、crop=person。カテゴリ別の全リストは以下の通りです。

カテゴリクラス
人物person
乗り物bicycle、car、motorcycle、airplane、bus、train、truck、boat
屋外traffic light、fire hydrant、stop sign、parking meter、bench
動物bird、cat、dog、horse、sheep、cow、elephant、bear、zebra、giraffe
身の回り品backpack、umbrella、handbag、tie、suitcase
スポーツfrisbee、skis、snowboard、sports ball、kite、baseball bat、baseball glove、skateboard、surfboard、tennis racket
キッチンbottle、wine glass、cup、fork、knife、spoon、bowl
食品banana、apple、sandwich、orange、broccoli、carrot、hot dog、pizza、donut、cake
家具chair、couch、potted plant、bed、dining table、toilet
電化製品tv、laptop、mouse、remote、keyboard、cell phone
家電microwave、oven、toaster、sink、refrigerator
屋内book、clock、vase、scissors、teddy bear、hair drier、toothbrush

以下の11のCOCOスーパーカテゴリも有効で、メンバークラスをすべてまとめます(上記の「人物」カテゴリには専用のスーパーカテゴリ値はありません — 直接 crop=person を使用してください)。

vehicle、animal、food、furniture、electronic、accessory、sports、kitchen、appliance、outdoor、indoor

例えば、crop=vehicle は検出器が識別した乗り物タイプにフォーカスします。

  • クラス名は大文字・小文字を区別しません。
  • 複数の単語からなるクラス名は + またはURLエンコードされたスペースを使用します — 例:crop=dining+table。
  • 名前付きクラスのクロップにはフレームに対する最小サイズの下限がありません。フレームの2%を占める車でも、それが検出された唯一の車であればクロップの基準点になります。
  • 一致する被写体が検出されない場合、(設定されていれば)フォールバックチェーンを通過し、最終的には中央クロップにデフォルトされます — エラーにはなりません。

オブジェクト認識値のフォールバックチェーン

auto と <オブジェクトクラス> の値は、他の crop 値と同様にカンマで連結できます。

  • crop=car,vehicle — 車を優先し、任意の乗り物にフォールバック
  • crop=car,auto — 一般的な被写体検出にフォールバック
  • crop=car,entropy — エントロピースコアリングにフォールバック

既知の制限事項

  • rot=90 のフォールバック: rot=90 を適用すると、crop=auto と crop=<クラス名> は中央クロップにフォールバックします。回転は検出が実行される前に画像のピクセルに適用され、検出モデルは正立画像でトレーニングされているためです。rot=180、rot=270、および or パラメータ(EXIFベースの向き)はすべて正常に機能します。可能な場合は向きの補正に or= を使用してください。なお、crop=faces も rot=90 の下で同様の動作をします。
  • 小さいソース: いずれかの辺が64px未満のソースは検出をスキップし、中央クロップにフォールバックします。
  • アニメーションソース: オブジェクト認識クロップモードはアニメーションGIFソースで受け付けられますが、被写体検出はアニメーションコンテンツ向けに最適化されていません。