さて今回は、画像セグメンテーションにおける代表的な3つのアーキテクチャの特徴についてご紹介していきます。
画像セグメンテーションとは、一言で言えば「領域ごとに分割された画像のクラスは何か」を識別することですそれぞれの画像領域が、どのクラスに該当するのかを予測していくことになります。
視覚的に把握しやすいので、まずはセグメントされた画像を参照しながら、画像セグメンテーションとは何かを見ていきましょう。
その後、実際にどのような仕組みによって画像の領域が分割されていくのかを3つのアーキテクチャを元に見ていくことにします。
画像セグメンテーションとは?
画像セグメンテーションは、画像をピクセル単位で解析し、各領域がどのクラスに属するかを分類する技術です。これにより、画像の細かな領域ごとに意味を持たせることが可能となり、視覚的な情報をコンピュータが理解できる形に変換します。
セマンティック・セグメンテーションとは?
画像セグメンテーションの中でも代表的な手法がセマンティック・セグメンテーション(領域分類)です。これは、画像全体や一部を単純に検出するのではなく、ピクセルごとに意味をラベル付けして分類します。
たとえば、建物の錆びやヒビを検出する際に必要な細かい領域の抽出や、道路の車線や標識を認識する自動運転車など、幅広い分野で活用されています。
以下の画像は、セマンティック・セグメンテーションを適用した例です。各色でピクセルが分類されていることが一目でわかります。
他の画像認識技術との違い
セマンティック・セグメンテーションは、他の画像認識技術と比較して、以下の特徴を持っています。
画像分類(クラシフィケーション) | 画像全体を1つのカテゴリに分類します。たとえば、「これは犬」「これは猫」と一枚ずつ分類する手法です。 |
物体検出(ディテクション) | 物体の位置や種類を特定します。バウンディングボックス(四角形)を使って、どこに何があるのかを示します。 |
セマンティック・セグメンテーション | 対象物をピクセル単位で分割し、不規則な形状の領域を明確に分類できます。このため、物体検出よりも細かい解析が可能です。 |
例えば、物体検出とセマンティック・セグメンテーションには以下のような明確な違いがあります。
物体検出の場合は、画像内に車が3台あることを認識し、それぞれの車の位置を四角いバウンディングボックスで囲んで特定します。この手法では、車の存在や個数を把握するのに適していますが、車の具体的な形状や細部までは捉えることができません。
一方、セマンティック・セグメンテーションでは、車の形状や位置をピクセル単位で細かく分割し、それぞれの領域に対してラベル付けを行います。これにより、不規則な形状の車でも正確にその輪郭や細部を認識することが可能になります。
セマンティック・セグメンテーションの種類
セマンティック・セグメンテーションには、さらに高度な分析を可能にする以下の2つの手法があります。
インスタンス・セグメンテーション
この手法では、同じカテゴリ内でも個別の物体を識別し、それぞれの領域を分割します。たとえば、「車」というカテゴリの中に3台の車がある場合、それらを1台ずつ個別に認識し、独立した領域として区別します。この手法は、個別の物体をより詳細に追跡したり、複数のオブジェクトが重なり合っている場面での解析に適しています。
パノプティック・セグメンテーション
パノプティック・セグメンテーションは、セマンティック・セグメンテーションとインスタンス・セグメンテーションを組み合わせた手法です。これにより、すべてのピクセルに意味のあるラベルを付けつつ、個体ごとに区別することが可能になります。たとえば、画像内の全ての領域をラベル付けしつつ、車や人などの個々の物体を識別して分割します。この手法は、セグメンテーションの長所を融合させたアプローチで、より複雑なシーン解析や高度な画像認識に利用されています。
なぜセマンティック・セグメンテーションが重要なのか?
セマンティック・セグメンテーションは、コンピュータビジョン分野での基礎的な技術として、多くの応用例で使用されています。以下はその代表的な応用分野です。
自動運転車 | 道路や障害物を認識し、瞬時に判断 |
医療画像解析 | 疾患部位や病変箇所を検出 |
建物の検査 | 劣化部分の特定やメンテナンス計画への応用 |
セグメンテーションの活用により、画像データから得られる情報が大幅に増え、さまざまな課題解決に貢献しています。
画像セグメンテーションの種類3選
では、続いて以下の3つのアーキテクチャを見ていくわけですが、それぞれの構造やその意味に注目しながら画像セグメンテーションについて深堀りしていきましょう。
用語 | 概要 | 特徴 |
---|---|---|
FCN | 畳み込み層とプーリング層のみで構成されるアーキテクチャにより、任意のサイズの入力画像からセマンティックセグメンテーションを行える。 | ヒートマップ 一般物体認識のCNNの全結合層を、Global Average Poolingと1×1 Convolutionに置き換えることによって、クラス分類の結果が2次元ヒートマップとして出力されるようになる。 逆畳み込み(Deconvolution) プーリングによって出力されるヒートマップは小さくなるため、小さい画像のアップサンプリングを行う。 この際に使用されるのが逆畳み込み(Deconvolution)。 特徴マップの利用 アップサンプリングで単純に入力画像とどうサイズに拡大すると、物体の境界がぼやける。 最終層の特徴マップから順にアップサンプリングでの前の層と同サイズに拡大し、チャンネルごとに足し算している。 |
SegNet | セマンテックセグメンテーションのエンコーダー・デコーダーアーキテクチャ。 | FCNよりも多くの特徴マップを利用しているが、エンコーダの特徴をコピーせず、Maxプーリングからのインデックスからコピーすることでメモリ効率をあげている。 |
U-Net | 畳み込み層とプーリング層で構成されるアーキテクチャで、ネットワークの形がU字型に見えるのでU-Netと呼ばれる。 | スキップ接続 Encoderの各層で出力される特徴マップをDecoderの対応する各層の特徴マップに連結(concatenation)する手法。 |
なお画像セグメンテーションにも利用されている強化学習を学びたい方は、AI研究所の強化学習プログラミングセミナーを受講されるといいでしょう。
画像セグメンテーションを含む最新の画像認識技術についてはこちらの記事で解説しています。
①FCN
まずは、FCNと呼ばれるアーキテクチャです。
FCN (Fully Convolutional Network)とは、畳み込み層とプーリング層で構成される(全結合層を持たない)アーキテクチャになります。
任意のサイズの入力画像からセマンティックセグメンテーションを行えるのが特徴です。
畳み込みを行って得た特徴マップをヒートマップ化していき、さらに逆畳込みすることによって、アップサンプリングして予測していきます。
FCNの欠点としては、フィルターサイズにより、大きさがマッチしない(特に大きい)対象物についてはうまく認識・分類ができない点が挙げられます。
出典:negativemind
ヒートマップ
ヒートマップとは、画素ごとにセグメンテーション結果を可視化したものです。
FCNでは、一般物体認識のCNN(論文ではVGG-16)の全結合層を、Global Average Poolingと1×1 Convolutionに置き換えることによって、クラス分類の結果を下図のような2次元のヒートマップとして出力されるようになります。
出典:bing
逆畳み込み(Deconvolution)
プーリングによって出力されるヒートマップは小さくなるため、小さい画像のアップサンプリングを行います。
この際に使用されるのが逆畳み込み(Deconvolution)になります。
畳み込み(convolution)の逆プロセスではないことに注意してください。
そのため誤解を生まないようup convolution・transposed convolutionなどとも呼ばれています。
逆畳み込みのパラメータには、kernel size・padding・stride + pixel数があります。
まず、特徴マップの各pixelをstrideで指定したpixel数ずつ空けて配置していきます。
次に、kernel size-1だけ特徴マップの周囲に余白を取ります。
最後に、paddingで指定されたpixel数だけ余白を削り、畳み込み処理を行っていきます。
出典:cresco
特徴マップ
アップサンプリングで単純に入力画像と同サイズに拡大すると、物体の境界がぼやけます。
最終層の特徴マップから順にアップサンプリングで前の層と同サイズに拡大し、チャンネルごとに足し算しています。
出典:qiita
物体検出の技術についてはこちらの記事でも解説しています。
②SegNet
SegNetとは、Encoder(エンコーダー)とDecoder(デコーダー)で構成されているアーキテクチャになります。
FCNよりも多くの特徴マップを利用していますが、エンコーダーの特徴をコピーせず、Maxプーリングからのインデックスをコピーすることでメモリ効率を上げています。
SegNetの欠点としては、EncoderとDecoderが直列に接続されているため、特徴が伝搬する過程でピクセルの詳細情報が失われてしまい、元の画像に対してセグメンテーション(Segmentation)結果が粗くなりやすくなる点です。
上記のように、EncoderとDecoderで構成されるモデルをEncoder-Decoder構造と言います。
この構造は、画像セグメンテーションに特化したディープラーニングで広く使用されているモデルになります。
ではそもそも、このEncoder-Decoder構造とは一体どのようなモデルなのでしょうか。詳しく見ていきましょう。
Encoder-Decoder構造
まず、Encoderとは、次元を圧縮していく(ダウンサプリング)ことにより、入力された画像から特徴マップを抽出することです。
その抽出した特徴マップを元の次元に復元(アップサンプリング)していくのですが、この特徴マップと元画像のピクセル位置の対応関係をマッピングしていくことをDecoderと言います。
Encoderでは、プーリング層によりmax-pooling indexとして大まかな位置記憶しておきます。
そしてDecoderで、特徴マップをそのindex位置にアップサンプリングしていき、逆畳込みを行います。そのため逆pooling(unpooling)とも呼ばれています。
出典:qiita
③U-Net
U-Netは、畳み込み層とプーリング層で構成されるアーキテクチャで、学習に使う画像の数が少なくてもセグメンテーションの精度が良いモデルです。
学習および学習後の処理が高速なのが特徴のアーキテクチャとなります。
ネットワークの形がU字型に見えるので、U-Netと呼ばれています。
出典:arxiv
※論文のネットワークは、電子顕微鏡に写った細胞かそうでないかを分類する2クラス分類です。
スキップ接続
スキップ接続は、Encoderの各層で出力される特徴マップをDecoderの対応する各層の特徴マップに連結 (concatenation)する手法になります。
スキップ接続の目的は、小さくなった特徴マップでもDecoderに直接連結することで情報の保持をなるべく抑制することです。
Encoderではpadding=0の畳み込みを行って特徴マップが少しずつ小さくなっているため、 Encoderの特徴マップの中央部分を切り出して、Decoderの特徴マップとサイズを一致させて連結しています。
Encoderで出力された特徴マップを、別チャンネルとしてDecoderの特徴マップに追加する形で連結しています。
なおこうした画像認識や物体検出で利用されているのが強化学習です。
AI研究所の強化学習プログラミングセミナーなら、1日で実務レベルのスキルをマスターできます。
画像セグメンテーションの6つの活用事例
セマンティック・セグメンテーションは、画像セグメンテーションの中でも特に応用範囲が広い技術です。以下では、具体的な活用事例を6つ挙げて、セマンティック・セグメンテーションがどのようにさまざまな分野で役立っているかを解説します。
1. 自動運転
自動運転技術において、セマンティック・セグメンテーションは周囲の環境を正確に認識するために欠かせない要素です。車両が道路標識、車線、歩行者、信号機などをピクセル単位で分類し、リアルタイムで解析します。
具体的には、悪天候や夜間など視認性が低い状況でも、車線の境界や障害物を正確に識別できます。この技術により、自動運転車は安全かつスムーズに運行し、交通事故の削減に大きく寄与しています。
2. 医療画像解析
セマンティック・セグメンテーションは、医療分野でも大きな役割を果たしています。CTやMRIの画像を解析し、疾患や異常箇所を正確に特定します。
例えば、がん組織と健康な組織を分離することで、診断精度を向上させるだけでなく、治療計画の策定にも役立っています。また、従来は医師の目視に依存していた部分を自動化することで、医療従事者の負担軽減にも貢献しています。特に、高齢化が進む社会では、こうした技術の重要性が増しています。
3. ドローンによる映像解析
ドローンに搭載されたカメラで撮影した映像をセマンティック・セグメンテーションで解析することで、農業や災害対策に役立てられています。
農業分野では、作物の健康状態や成長具合をピクセル単位で評価し、収穫時期の判定や病害虫被害の早期発見に活用されています。また、災害時には、被災地の状況を迅速に把握し、効率的な救助活動を支援します。これにより、救助活動の時間短縮や被害の最小化が可能になります。
4. 外観検査
製造業では、製品の品質管理や不良品の検出にセマンティック・セグメンテーションが活用されています。これにより、従来は熟練工による目視検査が必要だった作業を効率化できます。
例えば、電子部品や精密機械の製造ラインでは、製品の表面の微細な欠陥を高精度に検知することが可能です。この技術は、生産性の向上だけでなく、品質の安定化にも寄与します。
5. 衛星画像解析
セマンティック・セグメンテーションは、衛星画像の解析にも活用され、都市計画や環境保護の分野で大きな成果を上げています。
都市部の土地利用状況を分類し、新しいインフラ建設の計画や交通渋滞の緩和策に役立てるほか、森林の減少や土壌の変化をモニタリングして環境保全にも寄与しています。さらに、石油備蓄量の推定や農地の収穫予測など、経済活動を支えるデータ分析にも応用されています。
6. 顔認証と防犯システム
顔認証技術は、セマンティック・セグメンテーションによって高精度化されています。顔の輪郭や特徴をピクセル単位で分類することで、個人の識別をより正確に行えます。
具体的な活用例として、スマートフォンのロック解除や企業の入退室管理、防犯カメラを活用した監視システムなどがあります。最近では、防犯だけでなく接客サービスにおいても、個人の特性を分析してカスタマイズされたサービスを提供する取り組みが進んでいます。
画像セグメンテーションについてまとめ
さて、如何でしたでしょうか。これまで3つのアーキテクチャをご紹介させていただきました。
まず画像セグメンテーションとは、画像の中でどの領域が何のクラスに分類されるかを、ピクセル単位で分類する手法でした。視覚的な把握がしやすいのが特徴です。
この記事で画像セグメンテーションについて詳しくなって、さらに強化学習のスキルを上げていきましょう。
