ホーム

Topics

画像セグメンテーション

画像セグメンテーションとは
IBM Maximo Visual Inspectionについて
3Dボックスのデザイン・グラフィック

画像セグメンテーションは、デジタル画像をピクセルの個別のグループ(画像セグメント)に分割して、物体検出タスクや関連タスクに情報を提供するコンピューター・ビジョン技術です。画像セグメンテーションは、画像の複雑な視覚データを特定の形状のセグメントに解析することにより、より高速で高度な画像処理を可能にします。

画像セグメンテーション技術は、シンプルで直観的なヒューリスティック分析から最先端のディープラーニングの実装まで多岐にわたります。従来の画像セグメンテーション・アルゴリズムは、色や明るさなどの各ピクセルの高レベルの視覚的特徴を処理して、オブジェクトの境界と背景領域を識別します。注釈付きデータセットを活用した機械学習は、画像に含まれる特定の種類のオブジェクトと領域を正確に分類するためのモデルのトレーニングに使用されます。

コンピューター・ビジョンの手法として汎用性が高く実用的な画像セグメンテーションには、医用画像診断の補助から、ロボティクスや自動運転車での運動自動化、衛星画像内の対象オブジェクトの特定まで、幅広いAIユースケースがあります。

関連コンテンツ IBMニュースレターの購読
画像セグメンテーション vs. 物体検出 vs. 画像分類

画像セグメンテーションは、画像分類と物体検出の両方を進化させた技術であるうえ、コンピューター・ビジョンに特化した機能です。

画像分類は、クラス・ラベルを画像全体に適用します。たとえば、単純な画像分類モデルは、車両の画像を「車」または「トラック」として分類するようにトレーニングできます。従来の画像分類システムは、個々の画像特徴を個別に処理しないため、洗練度に限界があります。

オブジェクト検出は、画像分類とオブジェクト位置特定を組み合わせたもので、オブジェクトが位置する「バウンディング・ボックス」と呼ばれる長方形の領域を生成します。オブジェクト検出モデルは、単に車両画像に「車」や「トラック」というラベルを付けるのではなく、画像のどこに車やトラックがあるかを示すことができます。オブジェクト検出では、画像内の複数の要素を分類し、各要素の幅と高さを概算できますが、正確な境界や形状を識別することはできません。そのため、従来の物体検出モデルでは、バウンディング・ボックスが重なり合って密集したオブジェクトを描出する能力に限界があります。

画像セグメンテーションは、さまざまな技術を使用して視覚データをピクセル・レベルで処理し、個々のピクセルに特定のクラスまたはインスタンスに属するものとして注釈を付けます。「古典的」な画像セグメンテーション技術は、色や強度のような各ピクセルの固有の性質(「ヒューリスティック」と呼ばれる)を分析することによって注釈を決定しますが、ディープラーニング・モデルは複雑なニューラルネットワークを採用して高度なパターン認識を行います。この注釈の出力がセグメンテーション・マスクであり、画像内の特定のピクセルごとの境界と各クラスの形状(通常はさまざまなオブジェクト、特徴、または領域に対応)を表します。

大まかに言うと、画像セグメンテーションは、セマンティック・セグメンテーション、インスタンス・セグメンテーションパノプティック・セグメンテーションの3種類のタスクに使用されます。

セマンティック・クラス:「things」と「stuff」

画像セグメンテーション・タスクの各タイプの違いは、セマンティック・クラス(特定のピクセルが属すると判断される特定のカテゴリー)をどのように扱うかにあります。

コンピューター・ビジョンの用語では、2種類のセマンティック・クラスがあります。どちらの種類も、正確かつ効果的なセグメンテーションを実現するためのさまざまなテクニックに役立ちます。

thingsとは、「車」、「木」、「人」など、特徴的な形をしたオブジェクトのクラスです。通常、thingsには数えることができるインスタンスが明確に定義されています。インスタンス間のサイズの相違が比較的少なく、そのthing自体ではっきり分かれた構成要素があります。たとえば、すべての車には車輪が付いていますが、車輪は車ではありません。

stuff」とは、「空」や「水」、「草」のように、無定形でサイズが大きく変動するセマンティック・クラスを指します。通常、stuffには明確に定義された、数えることができる個々のインスタンスはありません。thingsと違って、stuffには明確な構成要素はありません。一枚の草の葉と一面の芝生はどちらも等しく「草」です。

一部のクラスは、特定の画像条件下ではthingsにもstuffにもなり得ます。たとえば、大規模な人々のグループは、複数の「人」(それぞれが明確な形をした数えられるthing)にも、あるいは単一で無定形の「群衆」としても解釈できます。

ほとんどの物体検出の取り組みは主にthingクラスに焦点を当てていますが、stuff(空、壁、床、地面など)が視覚的なコンテキストの大部分を占めていることを考慮することも重要です。stuffはthingを識別するための重要なデータポイントであり、その逆も同様です。道路上の金属物は大抵の場合が自動車です。ボートの後ろの青い背景はおそらく水であり、飛行機の後ろの青い背景はおそらく空でしょう。これはディープラーニング・モデルにとって特に重要になります。

セマンティックセグメンテーション

セマンティック・セグメンテーションは、最もシンプルなタイプの画像セグメンテーションです。セマンティック・セグメンテーション・モデルでは、すべてのピクセルにセマンティック・クラスが割り当てられますが、他のコンテキストや情報(オブジェクトなど)は出力されません。

セマンティック・セグメンテーションでは、すべてのピクセルがstuffとして扱われます。stuffthingsは区別されません。

たとえば、街路上の特定のクラスを識別するようにトレーニングされたセマンティック・セグメンテーション・モデルは、thing(車や電柱など)とstuff(道路や歩道など)の関連クラスごとに境界と等高線を示すセグメンテーション・マスクを生成しますが、同じクラスの複数のインスタンスを区別すること(またはその数を数えること)はしません。たとえば、前後に駐車された複数の車は、単純に 1 つの長い「車」セグメントとして扱われる場合があります。

インスタンス・セグメンテーション

インスタンス・セグメンテーションは、セマンティック・セグメンテーションの優先順位を逆転させます。セマンティック・セグメンテーション・アルゴリズムが(個々のインスタンスを無視して)各ピクセルのセマンティック分類のみを予測するのに対し、インスタンス・セグメンテーションは、各個別のオブジェクト・インスタンスの正確な形状を描写します。

インスタンス・セグメンテーションは、無視する対象であるstuffからthingsを分離するため、おおよそのバウンディング・ボックスではなく正確なセグメンテーション・マスクを出力する、オブジェクト検出の進化形として理解することができます。

インスタンス・セグメンテーションはセマンティック・セグメンテーションよりも難しいタスクです。同じクラスのthingsが互いに触れ合ったり、重なり合ったりしている場合でも、インスタンス・セグメンテーション・モデルは、セマンティック・セグメンテーション・モデルが単純にそれらをひとまとめにできるのに対して、それぞれを分離して形状を判断できなければなりません。たとえば、この街路の画像内で、これらの2つの異なるモデルが駐車中の車をどのように処理するかを考えてみましょう。

インスタンス・セグメンテーション・アルゴリズムは通常、問題に対して2段階アプローチまたはワンショットアプローチのいずれかを採用します。領域ベースの畳み込みニューラル・ネットワーク(R-CNN)のような2段階モデルは、提案された各インスタンスに対してバウンディング・ボックスを生成するために従来のオブジェクト検出を実行し、その後、各バウンディング・ボックス内でより洗練されたセグメンテーションと分類を実行します。YOLO(You Only Look Once)のようなワンショット・モデルは、オブジェクトの検出、分類、セグメンテーションを同時に実行することで、リアルタイムのインスタンス・セグメンテーションを実現します。

ワンショット・アプローチでは速度が向上し(精度とのトレードオフあり)、2段階アプローチでは精度が向上します(速度とのトレードオフあり)。

パノプティック・セグメンテーション

パノプティック・セグメンテーション・モデルは、すべてのピクセルのセマンティック分類を判断するうえ、画像内の各オブジェクト・インスタンスを区別するため、セマンティック・セグメンテーションとインスタンス・セグメンテーションの両方のメリットを兼ね備えています。

パノプティック・セグメンテーション・タスクでは、各ピクセルにセマンティック・ラベルと「インスタンスID」の両方の注釈を付ける必要があります。同じラベルとIDを共有するピクセルは同じオブジェクトに属します。stuffであると判断されたピクセルの場合、インスタンスIDは無視されます。

したがって、パノプティック・セグメンテーションは、特定の画像の包括的かつ全体的な理解をコンピューター・ビジョン・システムに提供します。その魅力は明らかですが、パノプティック・セグメンテーションを一貫した計算効率の高い方法で実現することは、実に大きな課題となります。

ここでの課題とは、セマンティック・セグメンテーション・モデルは、すべてのピクセルをstuffとして扱い、thingsの個々のインスタンスを無視する一方、インスタンス・セグメンテーション・モデルは、stuffを無視して個々のthingsを分離するという、2つの相反する方法論を統合することにあります。どちらのタイプのモデルも、もう一方のモデルがもつ責任を適切に吸収することはできません。

パノプティック・セグメンテーション・モデルの初期の試みでは、単純に2つのモデルを組み合わせて、各タスクを個別に実行し、後処理の段階でそれらの出力を組み合わせていました。このアプローチには2つの大きな欠点があります。それは、多大な計算オーバーヘッドを必要とすることと、セマンティック・セグメンテーション・ネットワークが出力するデータ点とインスタンス・セグメンテーション・ネットワークが出力するデータ点との不一致に対処しなければならないことです。

新しいパノプティック・セグメンテーション・アーキテクチャーは、ディープラーニングに対するより統合されたアプローチでこれらの欠点を回避することを目的としています。多くの場合、特徴ピラミッドネットワーク(FPN)のような「バックボーン」ネットワークが構築され、入力画像から特徴を抽出し、その抽出データを「フォアグラウンド・ブランチ」と「バックグラウンド・ブランチ」、または「セマンティック・ヘッド」と「インスタンス・ヘッド」のような並列ブランチに送り、重み付けシステムを使用して各ブランチの出力をマージします。推奨のパノプティック・アーキテクチャーには、EfficientPS、OANet、PanopticFPN、UPSNet、SOGNet、BGRNet、AUNet、FPSNet、および SpatialFlowなどが含まれます。

従来の画像セグメンテーション手法

従来の画像セグメンテーション技術は、特徴抽出のためにピクセルの色値(および明るさ、コントラスト、強度のような関連する特性)からの情報を使用し、セマンティック(意味論的)分類のようなタスク用に単純な機械学習アルゴリズムで迅速に学習させることができます。

ディープラーニングに基づくセグメンテーション手法は、より高精度で洗練された画像解析(特に、パノプティック・セグメンテーションのような多くのコンテキスト情報を必要とするタスク)が可能な一方、従来の手法はコストや計算負荷がはるかに低く、特定の問題をより効率的に解決することができます。

一般的な従来型(または「クラシック型」)画像セグメンテーション手法には次のようなものが含まれます。

  • 閾値処理: 閾値処理とは、画素の強度が与えられた「閾値」を上回るか下回るかによってピクセルを分類し、二値画像を作成する方法です。クラス内のばらつきを最小限に抑える閾値を求める際には、大津の二値化法がよく用いられます。
  • ヒストグラム:画像内の特定のピクセル値の頻度をプロットするヒストグラムは、しきい値の定義によく使用されます。たとえば、ヒストグラムは背景ピクセルの値を推測し、オブジェクト・ピクセルを分離するのに役立ちます。
  • エッジ検出:エッジ検出法は、明るさまたはコントラストの不連続性を検出することによって、オブジェクトまたはクラスの境界を識別します。
  • 流域:流域アルゴリズムは、画像をグレースケールに変換し、各ピクセルの「標高」が明るさによって決定される地形図を生成します。地域、境界、物体は、「谷」、「尾根」、「集水域」が形成される場所から推測できます。
  • 領域ベースのセグメンテーション:1つ以上の「シード・ピクセル」から開始して、領域拡張アルゴリズムによって、同様の特性を持つ隣接するピクセルがグループ化されます。アルゴリズムは、凝集的または分裂的である可能性があります。
  • クラスタリング・ベースのセグメンテーション:教師なし学習方法であるクラスタリング・アルゴリズムは、視覚データを同様の値を持つピクセルのクラスターに分割します。一般的なバリエーションはK平均法で、ここでのkはクラスターの数になります。ピクセル値がデータ ポイントとしてプロットされ、 k個のランダムなポイントがクラスターの中心(「重心」) として選択されます。各ピクセルは、最も近い、つまり最も類似した重心に基づいてクラスターに割り当てられます。次に、重心が各クラスターの平均に再配置され、クラスターが安定するまで反復ごとに重心を再配置するプロセスが繰り返されます。このプロセスはこちら(ibm.com外部へのリンク)で視覚化されています。
ディープラーニング画像セグメンテーション・モデル

注釈付きの画像データセットでトレーニングされたディープラーニング画像セグメンテーション・モデルのニューラル・ネットワークは、視覚データの根底にあるパターンを発見し、分類、検出、セグメンテーションに最も関連する顕著な特徴を識別します。

コンピューティング要件とトレーニング時間でトレードオフがあるものの、ディープラーニング・モデルは一貫して従来のモデルを上回るパフォーマンスを提供しており、コンピューター・ビジョンにおける最新の進歩の基礎を形作るものです。

画像セグメンテーションで使用される主なディープラーニング・モデルには以下が含まれます。

  • 完全畳み込みネットワーク(FCN):FCN は、セマンティック・セグメンテーションによく使用され、固定層を持たない畳み込みニューラル・ネットワーク(CNN)の一種です。エンコーダー・ネットワークは、視覚入力データを畳み込み層に渡し 、セグメンテーションまたは分類に関連する特徴を抽出し、この特徴データを圧縮(またはダウンサンプル)して、必要でない情報を除去します。次に、この圧縮データはデコーダー層に渡され抽出された特徴データをアップサンプリングして、セグメンテーション・マスクで入力画像を再構成します。
  • U-Net:U-Netは、FCNアーキテクチャを修正し、スキップ接続によりダウンサンプリング時のデータ損失を減らし、情報や勾配がニューラル・ネットワークを移動する際に、一部の畳み込み層を選択的にバイパスすることで、より詳細な情報を保持します。この名前は、そのレイヤーの配置を示す図の形状に由来しています。
  • Deeplab:U-Netと同様に、DeeplabはFCNアーキテクチャーに変更を加えたものです。スキップ接続に加えて、膨張(diluted、または「atrous」)畳み込みを使用し、追加の計算能力の必要なしにより大きな出力マップを生成します。
  • Mask R-CNN:Mask R-CNNは、インスタンス・セグメンテーションの主要モデルです。Mask R-CNNは、潜在的なインスタンスごとにバウンディング・ボックスを生成するResion Proposal Network(RPN)と、確認された各バウンディング・ボックス内でセグメンテーション・マスクを生成するFCNベースの「マスク・ヘッド」を組み合わせます。
ディープラーニング・モデルのトレーニング・データセット

画像セグメントの境界をマッピングするだけでなく、各セグメントがどのstuffまたはthingを表すかを予測するために、ディープラーニング・モデルは、特定のセマンティック・クラスを認識するよう注釈付きの大規模なデータセットでトレーニングされます。事前にラベル付けされたこれらの画像から、ディープラーニング・モデルは各ラベルに典型的なパターンとピクセル値を推測します。

タスクが異なれば、異なるトレーニング・データが必要になります。たとえば、自動運転車用のコンピューター・ビジョン・システムは、「人」、「車」、「車線」、「一時停止標識」のような意味的クラスでラベル付けされた画像でトレーニングされますが、医療用画像モデルには、特定のクラスの生体組織や腫瘍などの病態を認識するための最適化が必要になります。

トレーニング・データセットは人間の専門家によって慎重に前もってラベル付けされる必要があり、これは非常に手間がかかる場合があります。ほとんどの画像セグメンテーション・モデルは、大規模なオープンソース・データセットを利用します。これらの公開データセットは、トレーニングされたモデルの成功を評価する際の「グラウンド・トゥルース」としても機能します。多くの場合、パフォーマンス・メトリクスは、トレーニング・データセット内のアノテーションと正確に一致する結果のパーセンテージとして表現されます。

ディープラーニング・画像セグメンテーション・モデルの一般的なトレーニング・データセットには以下が含まれます。

  • COCO(Common Objects in Context):80個のthingカテゴリーと91個のstuffカテゴリーにわたるアノテーション付きセグメントを含む、約33万枚の画像の大規模なデータセット
  • ADE20K:MITが作成したシーン・セグメンテーション・データセット。150以上の意味クラスを持つ、20,000を超える画像が含まれています。
  • 都市景観:都市の道路に焦点を当てた大規模なデータセット。このデータセットのデータは、さまざまな日中、季節、気象条件にわたり50の都市で収集されました。
画像セグメンテーションのユースケース

画像セグメンテーションは、さまざまな分野で不可欠なツールとなっています。

  • 医療画像:画像セグメンテーションは、X線撮影、磁気共鳴画像(MRI)、超音波、コンピューター断層撮影(CT)など、さまざまな用途に使用され、腫瘍検出、脳セグメンテーション、疾患診断、手術計画などのタスクに役立ちます。
  • 自動運転車:画像セグメンテーションにより、自動運転車は歩行者や他の車などの障害物を回避したり、車線や交通標識を識別したりできます。同様に、ロボティクスにおいてもナビゲーションに情報を提供するために使用されます。
  • 衛星画像:セマンティックおよびインスタンス・セグメンテーションにより、さまざまな地形や地理的特徴の識別が自動化されます。
  • スマートシティ:画像のセグメンテーションにより、リアルタイムの交通モニタリングや監視などのタスクが強化されます。
  • 製造:画像セグメンテーションは、ロボティクスのタスクの強化に加えて、製品の仕分けと欠陥の検出も強化します。
  • 農業:画像セグメンテーションは、農家が作物の収量を推定し、除去すべき雑草を検出するのに役立ちます。
関連ソリューション
IBM Maximo Visual Inspection

人工知能ビジョン・モデルのラベル付け、トレーニング、導入のための直感的なツールセットを使用して、自動視覚検査のためのノーコード・コンピューター・ビジョンを最大限に活用できます。

IBM Maximo Visual Inspectionについて

画像セグメンテーションのリソース IBM Research:コンピューター・ビジョン

現代のコンピューター・ビジョン・システムは、画像認識と分析に関しては超人的な精度を誇りますが、見ているものを実際に理解しているわけではありません。IBM Researchでは、私たちと同じように世界を見る能力を持つAIシステムを設計しています。

コンピューター・ビジョンと画像処理入門

この初心者向けコースは、コンピューター・ビジョンとそのさまざまな業界における用途を理解するのに役立ちます。コースの一環として、基本的な画像処理にPython、Pillow、OpenCVを活用し、画像分類と物体検出を行います。

IBM Maximo Visual Inspectionを使ってみる

IBM Maximo Visual Inspectionの使用を始めて、資産や製品を検査し、生産や品質の問題の原因となる欠陥を特定するためのAIベースのモデルを作成し、トレーニングします。

詳細情報はこちら

人工知能ビジョン・モデルのラベル付け、トレーニング、導入のための直感的なツールセットであるIBM Maximo Visual Inspectionを使用して、自動視覚検査のためのノーコード・コンピューター・ビジョンを最大限に活用しましょう。

IBM Maximo Visual Inspectionについて MVIのデモはこちら