クロップモード
crop
クロップモードは、fit=crop を設定した場合に画像がどのように配置されるかを制御します。w と h パラメータが出力寸法を定義します。複数の値をカンマで組み合わせてフォールバックチェーンを形成できます — imgixは各値を順番に適用し、最初に一致した値で停止します。値が設定されない場合、またはマッチが見つからない場合のデフォルトは中央クロップです。
| 値 | 説明 |
|---|---|
top | 上端からクロップ |
bottom | 下端からクロップ |
left | 左端からクロップ |
right | 右端からクロップ |
faces | 顔を検出してクロップの中心に合わせる |
focalpoint | fp-x / fp-y 座標を中心にクロップ |
entropy | 最も情報密度の高いエリアにクロップ |
edges | 最もエッジが密集したエリアにクロップ |
auto | 最も重要な被写体を自動検出してクロップ(ほとんどのシナリオで推奨) |
<オブジェクトクラス> | COCOクラス名またはスーパーカテゴリ(例:car、vehicle、person) |
crop 値が設定されていない場合、imgixは画像の中心からクロップします。fit=crop は画像を出力寸法に合わせてスケールし、中央部分を保持します。他の crop 値の効果を比較するためのベースラインとして使用してください。
オブジェクト認識クロップ
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ソースで受け付けられますが、被写体検出はアニメーションコンテンツ向けに最適化されていません。