新規投稿のお知らせを受信されたい方は、サブスクリプションをご登録ください:

Imagesでの背景除去のための画像分割モデルを評価する

2025-08-28

12分で読了
この投稿はEnglishでも表示されます。

このコンテンツは自動機械翻訳サービスによる翻訳版であり、皆さまの便宜のために提供しています。原本の英語版と異なる誤り、省略、解釈の微妙な違いが含まれる場合があります。ご不明な点がある場合は、英語版原本をご確認ください。

先週、Imagesの顔トリミングについて書きました。これは、Workers AIでオープンソースの顔検出モデルを実行して、人の画像を大量に自動的にトリミングするものです。

AIワークロードのデプロイが極めて複雑であるのは、それほど昔のことではありません。これまで、リアルタイム推論には専用の(そして高コストの)ハードウェアが必要であり、デプロイのための標準的な抽象化が必ずしもあったわけではありませんでした。当社はまた、この追加のオーバーヘッドなしに、(当社を含む)開発者がAI機能を提供できるように、必ずしもWorkers AIを導入しているわけではありません。

AIを疑わしく思う方も、歓迎する人も、AIが爆発的に進歩しているのを見たことがある方も多いのではないでしょうか。ベンチマークを破る新しい計算モデルが毎週、発表されます。今や、かなり高い精度が期待されています。より重要な差別化要因とは、モデルが製品のインフラ内にどれだけ適合するか、開発者がその予測をどのように使用しているかです。

今週は、Imagesの背景除去をご紹介します。この機能は、Workers AI上で二値画像セグメンテーションモデルを実行し、画像内の主体を背景から分離するものです。モデルのテストでは、効率性と精度を確保するために、制御された意図的なアプローチを採用しました。

背景除去の開発のために、当社がさまざまな画像セグメンテーションモデルを評価した方法を紹介します。

画像セグメンテーション入門

コンピュータビジョンにおける画像セグメンテーションとは、画像を意味のある部分に分割するプロセスです。

セグメンテーションモデルは、各ピクセルを特定のカテゴリーに割り当てるマスクを生成します。この点は、すべてのピクセルを分類するのではなく、関心のある領域をマークする検出モデルとは異なります。顔クロップを通知するような顔検出モデルは、顔があると考える場所に基づいて境界ボックスを描画します。(ご興味がおありでしたら、顔のトリミングに関する投稿で、これらの境界ボックスを使用してクロップやズームの操作をどのように実行しているかをご説明しています。)

SaaSオブジェクト検出は、画像の最も際立っている部分を強調するセグメンテーションの一種です。ほとんどの顕著な検出モデルは、最も顕著な(または顕著な)ピクセルを「前線」として分類し、その他のすべてのピクセルを「背景」として分類するバイナリマスクを作成します。それに対して、マルチクラスマスクはより広範なコンテキストを考慮し、各ピクセルを「犬」や「チェア」のようにいくつかの可能なクラスのいずれかとしてラベル付けします。これらのマルチクラスマスクは、コンテンツ分析モデルの基礎となるものであり、どのピクセルが特定のオブジェクトやオブジェクトの種類に属するかを区別します。

この私の犬の写真では、検出モデルが境界ボックスに犬が含まれることを予測します。セグメンテーションモデルは、あるピクセルが犬に属することを予測しますが、他のすべてのピクセルはそうではありません。

このユースケースでは、各ピクセルが前背景(関心のあるオブジェクト)または背景のいずれかにどれだけ強く属するかを予測する、ソフトサリエンシーマスクを生成できるモデルが必要でした。つまり、各ピクセルには0~255の尺度が割り当てられ、0は完全に透明で、255は完全に不透明です。ほとんどの背景のピクセルは、0(またはその近く)にラベルが付けられます。前続のピクセルは、既知性の度合いに応じて不透明度が異なる場合があります。

原則的に、バックグラウンド除去機能は、幅広いコンテキストにわたって正確に予測することができなければなりません。たとえば、eコマースや小売ベンダーは、すべての商品を統一された白の背景に表示したいと考えます。クリエイティブや画像編集アプリケーションでは、開発者はユーザーが人やアバターの画像などのアップロードされたコンテンツからステッカーや切り抜きを作成できるようにしたいと考えています。

私たちの研究では、主に次の4つの画像セグメンテーションモデルに焦点を当てました:

  • U2-Net (U Square Net) : 10,553個の画像の最大のエッジデータセット(DUST-TR)でトレーニングを行い、水平方向に反転させ、合計21,106個のトレーニング画像に到達しました。

  • IS-Net(Intermediate Supervision Network):U2-Netの著者による新しい2ステップのアプローチ。このモデルは、ノイズ交じりの画像の境界を生成します。

  • BiRefNet(Bilateral Reference Network):細部が全体像と一致することをチェックすることで、複雑で高解像度の画像を正確にセグメント化するように特別に設計されています。

  • SAM(Segment Anything Model):Metaによって開発され、プロンプトと入力ポイントを提供することでセグメンテーションが可能です。

情報の規模が異なることで、計算モデルは画像の全体的な視野を構築することができます。グローバルコンテキストでは、オブジェクトの全体的な形やピクセルの領域が画像全体とどのように関連するかを考慮し、ローカルコンテキストはエッジ、角、テキストなどの細部を追跡します。ローカルコンテキストが木とその単語に焦点を当てると、グローバルコンテキストは森全体を表します。

U2-Netは、マルチスケールのアプローチで情報を抽出します。異なるズームレベルで画像を分析し、1つのステップでその予測を組み合わせます。このモデルは、グローバルとローカルのコンテキストを同時に分析するため、さまざまなサイズのオブジェクトを持つ複数のオブジェクトを持つimagesに適しています。

IS-Netは、中間監視と呼ばれる新しい2ステップの戦略を導入しています。まず、モデルは前背景を背景から分離し、関心のあるオブジェクトに属する可能性が高い潜在的な領域を特定します。他のすべてのピクセルは背景としてラベル付けされます。次に、ハイライトされたオブジェクトの境界を微調整し、最終的なピクセルレベルのマスクを生成します。

セグメンテーションは、強調された関心のあるオブジェクトのみに焦点が当てられ、最終的なマスクに背景ピクセルを誤って含める可能性が少なくなるため、最初の背景の抑制により、より洗練された正確なエッジが得られます。このモデルは、背景がごちゃごちゃした複雑なimagesを扱う場合に特に優れています。

どちらのモデルも、拡張するために単一方向に予測を出力します。U2-Netは、グローバルとローカルコンテキストを1つのパスで解釈し、Is-Netはグローバルコンテキストから始まり、ローカルコンテキストに焦点を当てます。

対照的に、BiRefNetは複数のパスで予測を改良し、コンテキスト方向とどちらにも動きます。Is-Netのように、最初に顕著オブジェクトを大まかに強調するマップを作成し、その後詳細をトレースします。しかし、BiRefNetは、グローバルからローカルコンテキストへ移行し、その後、ローカルコンテキストからグローバルへと戻します。つまり、オブジェクトのエッジを洗練させた後、アウトプットを大きなスケールのビューにフィードバックするのです。こうすることで、モデルは、小規模なスケールの詳細がより大きな画像構造と一致していることを確認し、高解像度のimagesでより高い精度を提供できます。

U2-Net、IS-Net、BiRefNetはすべてがサリエンシー検出モデルで、前障害のピクセルと背景のピクセルを区別するマスクを生成します。しかし、SAMはより拡張可能で一般的なものになるように設計されています。主な目的は、オブジェクトだけでなく、指定されたインプットに基づいて、あらゆるオブジェクトをセグメント化することです。つまり、このモデルは、画像の主な焦点でなくても、画像内のさまざまなオブジェクトにラベルを付けるマルチクラスのマスクを作成するためにも使用できます。

セグメンテーションの精度の測定方法

ほとんどの優れたデータセットでは、オブジェクトの実際の位置は、ground-truth領域として知られています。これらの地域は通常、各画像で関心のあるオブジェクトを手作業でトレースする人間のアノテーションによって定義されます。これは、モデルの予測を評価するための信頼できる参照情報となります。

予測された領域と、真偽の領域、つまりオブジェクトの真の境界を比較したテストです。

写真提供:Allen Fang

各モデルは、予測領域(前続ピクセルがあると思われる場所)を出力し、これを真偽領域(前続ピクセルが実際にある場所)と比較することができます。

モデルのセグメンテーションの精度は、対向送信数、サイコロの係数、ピクセル精度などの一般的なメトリクスに基づいて評価されます。各スコアは、予測された領域と真偽の領域の一致を定量化するために、わずかに異なるアプローチを採用しています(以下の式では、それぞれ「P」と「G」)。

Union(連合)のインターコネクト

連合組合(IoU)は、ジャカードインデックスとも呼ばれ、予測領域が真のオブジェクトとどの程度一致しているかを測定します。つまり、予測マスクと真偽マスクの両方で共有される前実装ピクセルの数をカウントします。数学的には、IoUは次のように記述されます。

BLOG-2928 4

ジャカード式

この式は、予測領域と真値領域が重なるピクセルの交差部分(P∩G)を、いずれかの領域に属するピクセルの総面積である和集合(P∪G)で割るものである。ただし、重なり合うピクセルは1回のみカウントする。

BLOG-2928 5

IoUは0から1の間のスコアを生成します。値が高いほど、予測領域と真偽領域の重複が近いことを示します。稀なケースですが、完全に一致している場合は1がスコアとなりますが、重複する領域が小さいとスコアが0に近づきます。

BLOG-2928 6

サイコロの目

Sørensen–Diceインデックスとも呼ばれるダイス係数は、同様にモデルの予測が現実とどの程度一致するかを比較しますが、IoUスコアよりもはるかに寛容です。領域のサイズが異なる場合でも、予測された前リンクと実際のフィンガープリントは、より多くの共有ピクセルに重み付けされます。数学的には、サイコロの係数は次のように書かれます。

BLOG-2928 7

Sørensen–Dice向上式

この式は、予測された領域と真偽の領域(P+G)の両方の画素の合計を2倍に割り、重複するピクセルを2回カウントします。

BLOG-2928 8

IoUと同様に、サイコロの係数も0から1の間の値を生成し、1に近づくに伴い、より正確な一致を示します。

ピクセル精度

ピクセル精度とは、前障害または背景として正しくラベル付けされたピクセルの割合を測定します。数学的には、ピクセル精度は次のように記述されます。

ピクセル精度の計算式

この式は、正しく予測されたピクセルの数を、画像のピクセルの総数で割ります。

BLOG-2928 10

正しく予測されたピクセルの総領域は、真偽領域に正確に一致する前Cloudと背景のピクセルの合計です。

正しく予測された前地は、予測された領域と真偽偽装領域(PeG)の交点です。予測領域の逆数(P'、または1–P)は、モデルが背景として識別するピクセルを表します。 ground-truth領域の逆領域(G'または1–G)は、背景の実際の境界を表します。これら2つの反転した領域が重複する場合 (P'∩G'、または (1–P)∩(1–G))、この交点が正しく予測された背景になります。

指標の解釈

IoUは、3つの指標の中で最も保守的なセグメンテーション精度の測定値です。予測された前線に余分な背景ピクセルを含めるなど、小さなミスはスコアを顕著に低下させます。この指標は、自動運転システムなど、正確な境界が必要なアプリケーションに最も価値があります。

一方、ダイスの係数は重複するピクセルをより多く報酬し、その後、同じ予測に対してIoUのスコアよりも高くなる傾向があります。モデル評価では、この指標は、ミスを罰するよりもオブジェクトを捕捉することが重要な場合、IoUよりも好まれます。たとえば、医療画像では、真陽性を見逃すリスクは、誤検知にフラグを立てることの不便さを大幅に上回ります。

背景除去の文脈では、ピクセル精度よりもIoUスコアとダイス係数に偏っています。特に、背景ピクセルがピクセルの大部分を占める画像を処理する場合は、ピクセル精度が誤解を招く可能性があります。

BLOG-2928 11

例えば、背景900個のピクセルと、前続のピクセル数が100である画像があるとします。前のある5つのピクセル(全前消費ピクセルの5%)だけを正しく予測するモデルは、ピクセル精度が欺瞞的に高スコアとなります。直感的に、このモデルはパフォーマンスが低いと言えるでしょう。しかし、900の背景ピクセルすべてが正しく予測されたと仮定すると、オブジェクトはほぼ完全に見逃されているにもかかわらず、モデルは90.5%のピクセル精度を維持しています。

ピクセル、予測、パターン

Images APIに最も適したモデルを決めるために、すべての関連モデルを単一のインターフェースにまとめたオープンソースのrembgライブラリを使用して、一連のテストを実施しました。

各モデルには、前世界と背景のピクセルをラベル付けするために、予測マスクを出力するタスクが与えられました。2つのサリエンシーデータセットからimagesを抽出しました。人間には、さまざまな画質の色、服、ヘアスタイルを持つ人のimagesが7,000以上含まれており、DIS5K(バージョン1.5)はさまざまなオブジェクトやシナリオにまたがっています。モデルに特定のセグメンテーションのタイプ(例:服、人間など)を生成し、一般化モデルと各バリアントについてテストを繰り返しました。

私たちの実験は、すでに顔検出モデルを実行している環境と同様に、現実的なハードウェア制約を反映させるために、23GBのVRAMを使用するGPUで実行されました。また、94GB VRAMを備えたより大きなGPUインスタンスで同じテストを再現しました。追加のコンピューティングが利用可能な場合の潜在的な速度向上をベンチマークするための上限の参照点として機能します。Cloudflareは通常、より計算量の多いAIワークロードのために大きなGPUを確保しています。私たちはこれらのテストは、本番環境としてよりも比較のための調査として見られました。

分析を進める中で、主要な傾向が明らかになりました。

小さなGPUでは、U2-Net(176 MB)やIs-Net(179 MB)のような軽量モデルで推論時間が一般的に高速になりました。両方のデータセットの平均速度は、U2-Netが307ミリ秒、Is-Netが351ミリ秒でした。反対に、BiRefNet(973 MB)の出力時間が顕著に遅く、2つの一般化されたバリアントで平均821ミリ秒でした。

BiRefNetは、より大きなGPU上で2.4倍の速さで動作し、平均推論時間を351ミリ秒に短縮しました。これは、サイズが大きいにもかかわらず、他のモデルと同レベルです。対照的に、軽量モデルでは、追加のコンピューティングによる顕著な速度向上は見られませんでした。このことから、ハードウェア構成のスケーリングは、主として重たいモデルにメリットがあることが考えられます。補足1(「ミリ秒単位の推論時間」)では、モデルとGPUインスタンスの速度を比較しています。

BLOG-2928 12

また、2つのサリエンシーデータセットのモデルのパフォーマンスを比較したところ、異なるパターンが観察されました。最も顕著なのは、人物の画像が単一の主体で比較的均一な傾向があるHumansデータセット上で、すべてのモデルがより速く実行されたことです。これとは対照的に、DIS5Kデータセットには、より複雑なimagesが含まれます。つまり、より多くのオブジェクト、ごちゃごちゃした背景、または規模が異なる複数のオブジェクトがあるimagesです。

予測が遅いと、視覚的な複雑さと、画像の重要な部分を識別するために必要な計算との間に関係があることが示唆されます。つまり、単純でよく分離されたオブジェクトを持つデータセットはより迅速に分析できる一方、複雑な状況では正確なマスクを生成するためにより多くの計算を必要とします。

同様に、複雑さは効率性と同様に正確性も低下させます。今回のテストでは、すべてのモデルで「人間」データセットの方が高いセグメンテーション精度を実証しました。補足2(「モデルの正確性の測定」)では、両方のデータセットにおけるセグメンテーション精度の結果を示しています。

特殊なバリアントは、一般化された対応策と比べて、精度がわずかに高いものでした。しかし、広範な実用的アプリケーションでは、すべての入力に対して特殊なモデルを選択することは現実的ではありません。少なくとも、当社の初期ベータ版ではなおさらです。事前の分類が不要で正確な予測を生成できる汎用モデルを採用しました。このため、当社はSAMを除外しました。SAMは意図したユースケースには強力なものですが、追加の入力で動作するように設計されています。自動セグメンテーションタスクでは、テストしたモデルの中で精度スコアが低く(そして推論時間が大幅に長い)、

BiRefNetのバリアントはすべて、ほかのモデルと比べて高い精度の記事でした。一般化されたバリアント (-general-dis ) は、-portraytのような特殊なバリアントと同じくらい正確でした。特に、birefnet-generalバリアントは、両方のデータセットの平均で0.87とDice係数が0.92と高いIoUスコアを達成しました。

対照的に、一般化されたU2-Netモデルは、Humansデータセットで高い精度の精度を示し、IoUスコアは0.89、ダイス係数は0.94に達しましたが、DIS5KデータセットではIoUスコアが0.39と低く、ダイス係数が0.52と低い結果となりました。両者のデータセットで、IoUスコアの平均0.82、ダイス係数が0.89と、isnet-general-useモデルはかなり優れたパフォーマンスを発揮しました。

モデルが画像のグローバルとローカルの両方の文脈を解釈できるかどうかを観測しました。一部のシナリオでは、U2-NetとIs-Netモデルは画像の全体像を把握できましたが、細部のエッジを正確に追跡することができませんでした。私たちは、各モデルが自転車のホイールをどれだけ適切に分離できるかを測定するために1つのテストを設計しました。多様性を追求し、内側と外側の両方の背景にimagesを含めました。スコアの低いモデルは、ホイールを取り巻く領域に正しくラベリングを行いながら、細いスポーク間のピクセルに苦労し、これらの背景ピクセルを含めた予測マスクを作成しました。

BLOG-2928 13

写真提供:Yomex Owo on Unsplash

他のシナリオでは、モデルは逆の制限を示しました。つまり、エッジが正常なマスクを作成しましたが、画像の焦点を識別できなかったのです。私たちは、黒色のジムの床を背景にしたグレーのTシャツの写真を使って、別のテストを実施しました。一般化されたU2-NetとIs-Netモデルの両方が、ロゴのみを顕著なオブジェクトとしてラベル付けし、シャツの他の部分を完全に省略したマスクを作成しました。

一方、BiRefNetモデルは両方のテストタイプで高い精度を実現しました。そのアーキテクチャは双方向に情報を渡し、ピクセルレベルの詳細をより大きなインターフェースから通知することができます(その逆も同様)。実際には、これは、BiRefNetが、より広いオブジェクトにどのように適合するかを解釈することを意味します。ベータ版では、バックグラウンド除去の決定を駆動するためにBiRefNetモデルを使うことを選びました。

BLOG-2928 14

スコアの低いモデルとは異なり、BiRefNetモデルは、シャツ全体が画像の真の主体であることを理解していました。

Images APIを使用して背景除去を適用する

Images APIは、ホスト画像とリモート画像の自動背景削除をサポートするようになりました。この機能は、FreeプランとPaidプランのすべてのCloudflareユーザーにオープンベータでご利用いただけます。

BLOG-2928 15

特別にフォーマットされたImages URLやWorkerを介して画像を最適化する際にセグメントパラメーターを使用します。Cloudflareは、画像の主体を分離し、背景を透明なピクセルに変換します。下のTransformations URLに示されているように、他の最適化操作と組み合わせることもできます。

example.com/cdn-cgi/image/gravity=face,zoom=0.5,segment=foreground,background=white/image.png

このリクエストは次のことを行います:

  • 検出された顔に向けて画像をトリミングします。

  • 画像の被写体を分離し、背景を透明なピクセルに置き換えます。

  • 透明なピクセルをソリッドホワイトカラー(#FFFFFF)で埋めます。

また、Images APIをWorkerにバインドしてプログラムによるワークフローを構築することもでき、それにより、画像の最適化方法をより細かく制御することができます。この仕組みを示すために、私はImagesWorkersですべて構築された、カットアウトやオーバーレイを作成するためのシンプルな画像編集アプリを作成しました。これは、以下のようなimagesを作成するために使用できます。ここでは、背景除去を適用して、犬とアイスクリームコーンを分離し、風景画像にオーバーレイします。

BLOG-2928 16

写真:Guy Hurst(ランドスケープ)、Oskar Gackowski(アイスクリーム氏)、私(犬)

以下は、workerでimagesをオーバーレイするために使えるスニペットです。

export default {
  async fetch(request,env) {
    const baseURL = "{image-url}";
    const overlayURL = "{image-url}";
    
    // Fetch responses from image URLs
    const [base, overlay] = await Promise.all([fetch(baseURL),fetch(overlayURL)]);

    return (
      await env.IMAGES
        .input(base.body)
        .draw(
          env.IMAGES.input(overlay.body)
            .transform({segment: "foreground"}), // Optimize the overlay image
            {top: 0} // Position the overlay
        )
        .output({format:"image/webp"})
    ).response();
  }
};

背景除去は、開発者がインタラクティブで想像力に満ちた製品を構築できるようにするための継続的な取り組みの新たな一歩となります。これらの機能は反復的なプロセスであり、今後もアプローチをさらに洗練させていきます。私たちの進捗状況をお客様と共有できるのを楽しみにしています。

背景除去の適用については、当社のドキュメントをご覧ください。

補足1:推論時間(ミリ秒)

23 GB VRAM GPU

BLOG-2928 17

94 GB VRAM GPU

BLOG-2928 18

補足2:モデルの精度の測定値

BLOG-2928 19

Cloudflareは企業ネットワーク全体を保護し、お客様がインターネット規模のアプリケーションを効率的に構築し、あらゆるWebサイトやインターネットアプリケーションを高速化し、DDoS攻撃を退けハッカーの侵入を防ぎゼロトラスト導入を推進できるようお手伝いしています。

ご使用のデバイスから1.1.1.1 にアクセスし、インターネットを高速化し安全性を高めるCloudflareの無料アプリをご利用ください。

より良いインターネットの構築支援という当社の使命について、詳しくはこちらをご覧ください。新たなキャリアの方向性を模索中の方は、当社の求人情報をご覧ください。
AI WeekAIImage OptimizationCloudflare Images開発者開発者プラットフォームCloudflare Workers

Xでフォロー

Cloudflare|@cloudflare

関連ブログ投稿