お気軽にお問い合わせください
【画像解析】物体検出・セグメンテーション・姿勢推定の基礎理論を徹底解説

はじめに
画像認識技術は私たちの生活のさまざまな場面で活用が広がっています。その背景には、ディープラーニングの発展やアルゴリズムの改良によって、人間に近い精度で画像から対象を識別・理解できる仕組みが整ってきたことがあります。こうした技術の理論を理解することは、単に利用するだけではなく、ビジネスの現場で適切な導入判断や新しい価値を生み出すための重要な基盤となります。
本記事では、その基盤となる画像認識の代表的な手法である「物体検出」「セグメンテーション」「姿勢推定」の3点について、基本的な仕組みとその特徴を解説します。
当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。画像認識を用いた分析実績も多数ございますので、お気軽にご相談ください。
ご相談・お問い合わせはこちらから
物体検出の理論
物体検出とは、画像の中に「何が」「どこに」写っているかを特定する技術です。
具体的には、画像に写った対象物ごとにその物体の種類(クラス)と位置(矩形領域)を同時に推定します。物体検出モデルの出力は各物体を囲むバウンディングボックス(矩形)とクラスラベルの組み合わせになります。下の図は物体検出の例で、人、カバン、車が画像内で検出され、それぞれの場所が枠で囲まれクラス名が付与されています。

物体検出のアルゴリズムは処理の構造によって、2段階検出モデル(Two-Stage Detector)と1段階検出モデル(One-Stage Detector)のおよそ2種類に分類することができます。
- 2段階物体検出モデル
「どこに物体がありそうか」を探すステップと「それは何か」を決めるステップの2つに分かれており、代表的なモデルとしてR-CNN、Fast R-CNNやFaster R-CNNなどがあります。 - 1段階物体検出モデル
画像全体を一度に見渡して「どこに何があるか」を同時に推定します。代表的なモデルとしてはYOLOやSSDなどがあります。
2段階検出モデル(R-CNN)の処理の流れ
2段階検出モデルは、2013年に提案されたR-CNNによって基礎が築かれました。その後、Fast R-CNNやFaster R-CNNへと進化し、処理性能が向上していきました。ここでは、2段階検出を用いているR-CNNの処理フローを解説します。R-CNNは、「領域」ごとの特徴を「CNN」で抽出するという画期的なアプローチをとりました。処理は主に以下の3つのモジュールで構成されています。

1. 領域提案(Selective Search)
まず、入力画像の中から「物体がありそうな場所」の候補を大量に選び出します。 ここでは一般的にSelective Searchというアルゴリズムが用いられます。これは、色やテクスチャ(模様)が似ている隣接ピクセルを統合していく手法です。この工程により、1枚の画像から約2,000個程度の物体候補領域(Region of Interest: RoI)が生成されます。この時点では物体のクラスは不明で、単に「何らかの物体」として切り出されます。

2. 特徴量抽出 (Feature Extraction)
次にSelective Searchによって抽出された約2,000個の候補領域をCNNに通すことで候補領域の特徴を抽出するのですが、抽出された候補領域はそれぞれサイズや縦横比が異なります。CNNに通すためには入力画像のサイズが固定されている必要があるため、まずは切り出された全ての候補領域にリサイズ処理を行います。
そして、リサイズされた各画像を一つずつCNNに入力し、畳み込み処理を経て、その領域が持つ特徴を固定長のベクトル(特徴量)として抽出します。(注意:一般的な実装においては、切り出された候補領域のリサイズは自動的に行われますが、 内部的には強制的なリサイズが行われているため、画像の歪みが認識精度に影響を与える可能性がある点は、意識しておく必要があります)
3. 分類・回帰
最後にCNNから抽出された特徴量を使って、物体の判別・バウンディングボックスの調整が行われます。
(ここでは以下2つの処理が並行して行われます)
クラス分類 (SVM)
抽出された特徴ベクトルをSVM(サポートベクターマシン)を用いて、その領域が「椅子」や「猫」なのか、あるいは「何もなし」なのかを判定します。
バウンディングボックス回帰 (Bounding Box Regression)
Selective Searchで提案された枠は非常に多く、かつ「候補」であるため、実際の物体の位置と微妙にずれていることが多いです。そのため、物体の輪郭により正確にフィットするように、枠の位置や大きさの微調整を行います。

このように、まず「領域提案」で候補を絞り込み、その後に「クラス分類」で中身を特定するという2つの工程を順番に行うため、2段階検出と呼ばれます。
R-CNNの最大の問題点は、約2,000個の候補領域すべてに対して、個別にCNNを実行しなければならないという点です。1枚の画像を処理するのに、CNNを2,000回動かす必要があるため、推論に非常に時間がかかってしまいます。初期のR-CNNにおいてこの計算コストの大きさが最大のボトルネックとなっていました。
これらの点を踏まえ、Fast R-CNNやFaster R-CNNが発案され、特にFaster R-CNNはR-CNNと比較して速度や精度の大幅向上を実現しました。
1段階検出モデルの理論の流れ
1段階検出モデルは、2015年に発表されたYOLO (You Only Look Once)によってその概念が確立されました。その後、SSD (Single Shot MultiBox Detector) やYOLOの各バージョン(v2〜v26など)が登場し、リアルタイム処理が可能な高速な物体検出技術として広く普及しました。ここでは、1段階検出の代表格であるYOLOの基本的な処理フローを解説します。
(**ここでは、1段階検出の処理の基本について紹介するため、YOLO v1を対象としています)
1段階検出は、名前の通り「領域提案」と「分類」を分けず、「入力画像から直接、物体の位置とクラスを同時に予測する」というシンプルなアプローチをとります。
処理は主に以下の3つの流れで構成されています。

画像のグリッド分割 (Grid Division)
まず、入力画像全体をS×S のグリッド(格子状)に等分割します。
2段階検出では、画像上のあらゆる場所から「候補」を無作為に探し出すプロセスが必要でしたが、1段階検出ではアプローチが異なります。ここでは、「物体のバウンディングボックス(bbox)の中心点(Center Point)」がどのグリッド内にあるかというルールに従います。具体的には、ある物体のバウンディングボックスの中心の座標が特定のグリッドセルの中に位置する場合、そのセルだけが「その物体を検出する役割」を持ちます。つまり、各グリッドは「自分のエリアに物体のバウンディングボックスの中心があるか?」のみを確認し、ある場合はその物体の大きさや種類を予測するという仕組みです。これにより、複雑な領域探索処理を省略することが可能になります。

特徴量抽出
R-CNNでは切り出された約2000の画像を個別にCNNに通していましたが、1段階検出では画像全体を一度だけCNNに通します。画像全体の特徴マップを生成し、そこから各グリッドセルに対応する位置の特徴を読み取ります。これにより、周囲の背景情報も含めて学習できるため、背景を物体と誤認するエラーが少ないという利点もあります。
クラス分類・バウンディングボックス回帰の同時予測
CNNから出力された特徴マップを使い、各グリッドセルごとに以下の情報を同時に予測します。
バウンディングボックスの予測と信頼度 (Bounding Boxes + Confidence)
各グリッドセルは、物体の位置を示す複数のバウンディングボックスと、それぞれの枠に対する「信頼度スコア」を同時に出力します。
- 座標・サイズ: 物体の中心位置、および画像全体に対する幅と高さを予測します。
- 信頼度スコア (Confidence Score): その枠の中に「物体が存在する確率」と、予測した枠がどれだけ正確かを示す「IoU(正解ラベルとの重なり具合)」を掛け合わせた値です。この数値によって、ただの背景と本物の物体を区別します。

クラス確率の予測 (Class Probability Map)
位置の予測と並行して、各グリッドセルは「その領域に含まれる物体がどの種類(クラス)に属するか」という確率を予測します。
条件付き確率: この確率は、「そのセルに物体の中心が含まれている」という前提(条件)で、それが20種類のクラス(犬、自転車など)のうちどれであるかを算出するものです。これにより、背景領域での不要な分類を排除し、種類の特定のみ行われます。

最後に、重複して検出された大量の枠の中から、信頼度が最も高いものを残し、他を削除する処理(NMS)を行い、最終的な検出結果とします。

このように、画像の入力から結果の出力までを1つのニューラルネットワークで一度に行うため(End-to-End)、1段階検出と呼ばれます。1段階検出の最大のメリットは圧倒的な処理速度です。画像全体を一度見るだけで済むため(You Only Look Once(YOLOの語源))、動画のリアルタイム解析や、スマートフォンなどのエッジデバイスでの動作に適しています。一方で、登場初期は「小さな物体の検出」や「密集した物体の検出」において、2段階検出(Faster R-CNN等)に精度で劣る傾向がありました。しかし、近年のYOLOシリーズの進化により、現在では推論速度を維持したまま、2段階検出に匹敵する高い精度を実現しています。
2段階検出と1段階検出に該当するモデルと特徴まとめ
上記で記述したように、物体検出モデルは処理のアプローチによって「2段階検出」と「1段階検出」の2つに大別することができます。
両者の最大の違いは「処理の工程数」と「速度と精度のトレードオフ」にあります。 2段階検出は、まず「どこに物体がありそうか(領域提案)」を特定し、その後に「それは何か(分類)」を判断するという直列的な処理を行います。これにより計算コストは高くなりますが、厳密な推論が可能で高い検出精度を誇ります。 一方、1段階検出は、画像のグリッド分割を用い、位置とクラスを同時に(並列的に)推定します。画像全体を一度見るだけで処理が完結するため、圧倒的な処理速度を実現しており、リアルタイム性が求められるシステムに最適です。
近年ではYOLOシリーズの進化により、1段階検出も2段階検出に匹敵する精度を持つようになり、多くの現場で採用されています。
| 特徴 | 2段階検出 | 1段階検出 |
| 主な検出プロセス | 直列処理(段階的) 1. 候補領域の生成 2.領域ごとに分類・位置補正 | 一括処理(End-to-End) 画像をグリッドに分割し、位置とクラスを同時に予測 |
| 代表的なモデル | R-CNN, Fast R-CNN, Faster R-CNN | YOLO, SSD |
| 性能 | 一般的に高い検出精度 背景と物体を厳密に区別することに長け、小さな物体検出にも強い傾向がある。 | 一般的に高速な推論速度 背景情報の学習が得意だが、初期モデルでは小さな物体や密集に弱かった。(現在は進化し、高精度化している) |
当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。画像認識を用いた分析実績も多数ございますので、お気軽にご相談ください。
ご相談・お問い合わせはこちらから
セグメンテーションの理論
セグメンテーションとは、デジタル画像を複数のピクセル集合(領域)に区分けするコンピュータービジョンのタスクです。各領域は画像中の異なる物体や素材、意味的なパーツに対応しており、画像をより意味のある解析しやすい形に変換することが目的です。セグメンテーションでは各ピクセルにクラス(カテゴリ)ラベルを割り当てて、異なる物体や領域の境界をピクセル単位で明確にします。
3種類のセグメンテーション概要
セグメンテーションには目的に応じていくつかの種類があります。代表的なものとしてセマンティックセグメンテーション(Semantic Segmentation)、インスタンスセグメンテーション(Instance Segmentation)、パノプティックセグメンテーション(Panoptic Segmenation)があります。

セマンティックセグメンテーションは、同じクラスに属する領域を同一の色でマスクします。例えば、同じ画像内に複数の「車」がある場合、全ての車を同一色でマスクします。また、物体として数えられない「空」や「道路」といった領域も含め、画像全体を網羅的に分類できるのが特徴ですが、同じクラスに属する個々の物体の区別はできません。

インスタンスセグメンテーションは同一クラスであっても、個々の物体ごとにマスクするという特徴があります。例えば、同じ「車」であっても物体ごとに別の色やラベルを割り当てて、重なっている場合もそれぞれの境界を識別します。

パノプティックセグメンテーションは、上記のセマンティックセグメンテーションとインスタンスセグメンテーションを統合したものです。画像内の全てのピクセルに対してクラスを予測し、そのうち「数えられる物体(人や車など)」にはそれぞれ一意のIDを付与して個体を区別しますが、「背景や不定形なもの(空や道路など)」は単一の領域として扱います。

セマンティックセグメンテーションの理論
ここでは、セマンティックセグメンテーションにおいて重要な概念である、全畳み込みネットワーク(FCN)とエンコーダデコーダ構造について説明します。FCNは「画像全体を一度ピクセル単位で分類するための技術」であり、エンコーダデコーダ型は「位置情報の精度をより高めるための構造」です。それぞれについて、仕組みと関係性を解説します。
全畳み込みネットワーク(FCN)
FCN(Fully Convolutional Network)は、2015年に提案された、セマンティックセグメンテーションモデルの一種です。従来のCNNでは「画像全体を見て、何が写っているか」を特定することは得意なタスクでしたが、「画像のどの部分が何の物体なのか」を正確に当てるのは困難でした。これは、全結合層を通る際に画像の位置情報が失われてしまうためです。そこでFCNでは、この全結合層を撤廃し、ネットワークすべての層を「畳み込み層」などの空間情報を保持できる層だけに置き換えました。この構造により、入力画像の位置関係を維持したまま画像の特徴を抽出することが可能になり、高精度なセグメンテーションを実現しました。

- アップサンプリング
-
ディープラーニングでは、画像の特徴を抽出する過程で、プーリング等の処理により画像サイズ(解像度)を段階的に小さく圧縮していきます。しかし、セグメンテーションを行うには、最終的に元の画像と同じ大きさの画像を出力する必要があります。そこでFCNでは、小さくなった特徴データを学習しながら引き伸ばす「アップサンプリング」という技術が導入されました。これによって、一度粗くなった情報を高解像度に戻し、ピクセル単位での予測を可能にしています。
- スキップ接続
-
単に画像を拡大するだけでは、細かい輪郭がぼやけてしまいます。
これは、深い層の情報では「何が写っているか」という情報は強いですが、位置が大雑把になってしまいます。一方、浅い層の情報では、物体の認識情報は弱いですが「輪郭」などの位置情報を正確に取得できます。そこで、この両方のメリットを活かすために「スキップ接続(Skip Connections)」という手法を取り入れることで、深い層の出力に、浅い層の情報を足しわせることで「物体の正解率」と「輪郭の正確さ」の両立を実現しています。
図15: スキップ接続の概念図(Long, J., et al., 2014, arXiv:1411.4038, https://arxiv.org/abs/1411.4038)
エンコーダデコーダ型
エンコーダ・デコーダ型は、セマンティックセグメンテーションにおいて、主流なネットワーク構造となっています。この構造は、入力画像を一度圧縮して抽象的な特徴を抽出した後、再度元の画像サイズまで復元することで、「何が」「どこにあるか」を画素単位で高精度に分類することを可能にしています。

モデル全体は「砂時計」のような対称的な形状をしており、大きく分けて「エンコーダ」と「デコーダ」の2つのパートで構成されています。エンコーダは画像から特徴を抽出して圧縮するパート、デコーダは抽出された特徴から元の画像と同じ解像度の出力を復元するパートです。
エンコーダでは、畳み込みとプーリングを繰り返し、画像サイズを段階的に圧縮(ダウンサンプリング)することで、画像から「意味情報」を抽出します。これによって、画像の解像度を犠牲にする代わりに、広い範囲の情報を集約し、「画像に何が写っているか」という特徴を獲得することができます。
デコーダでは、アップサンプリングを行い圧縮された特徴マップを段階的に元の入力サイズまで拡大することで、抽出された情報をもとに「位置情報」を復元することができます。これによりエンコーダで得られた意味情報を、ピクセル単位の正確な位置にマッピングし直すことで、最終的なセグメンテーション画像を生成します。
しかし、単純なエンコーダデコーダ構造では、エンコーダでの圧縮過程で細かい位置情報(空間情報)が失われてしまい、デコーダで拡大した際に物体の輪郭がぼやけるという課題がありました。
これを解決するために導入されたのがスキップ接続となります。スキップ接続では、エンコーダ途中の特徴マップを一時的に保持し、対応するデコーダ側でそれを直接合流(加算や結合)させます。こうすることでダウンサンプリング中に失われた細部の情報をデコーダで補完でき、より高精細な出力を得ることができます。
セグメンテーションとは、画像をピクセルレベルで解析し、物体や領域に意味を与えることで、機械による視覚理解を支える技術です。 FCNによる空間情報の保持や、エンコーダ・デコーダ構造を用いた空間情報の復元といった技術革新は、解析精度の向上に寄与しました。これにより、画像内の対象物を精緻に捉えることが可能となり、現代のコンピュータビジョンにおいて不可欠な中核技術となっています。
当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。画像認識を用いた分析実績も多数ございますので、お気軽にご相談ください。
ご相談・お問い合わせはこちらから
姿勢推定の理論
姿勢推定とは、画像や動画に写った人物の関節や骨格を自動で推定する技術です。具体的には、人の頭・肩・肘・手首・腰・膝・足首などのキーポイント(特徴的な関節点)を画像上で検出し、それらを線で結ぶことで人物のポーズを推定します。従来のモーションキャプチャでは関節にマーカーを取り付けて複数のカメラで撮影する必要がありましたが、姿勢推定はAI(ディープラーニング)技術によって通常のカメラ映像からマーカーなしで関節点を読み取ることが可能になりました。これにより特別な機材がなくても、一台のカメラ映像から人の姿勢を捉えることができます。

トップダウンアプローチの仕組み
トップダウン・アプローチでは、まず画像の中から人を見つけ出すことから始めます。人物の検出には一般的な物体検出アルゴリズムが使われ、人物が写っている領域(バウンディングボックス)を画像内から切り出します。次に、その検出された各人物領域ごとに姿勢推定(関節点の特定)を行います。イメージとしては、人物ありきで解析を進め、個々の人物にフォーカスして詳細な骨格推定を行う方法です。

トップダウン方式のメリットは、各人物を個別に高精度に解析できる点です。人物ごとに切り出した画像を使うため、姿勢推定モデルにとって対象が画面内で小さすぎたり他人と重なったりといった影響を受けにくくなります。また、一人分の姿勢を推定するネットワークをそのまま流用できるため、アルゴリズムの設計が比較的シンプルとなります。トップダウン法は、姿勢推定の精度面では現在も主流のアプローチとなっています。
一方でデメリットとしては、人数分だけ計算コストが増大する点が挙げられます。画像内に10人映っていれば10回分の姿勢推定処理が必要になるため、リアルタイム処理には不利と考えられています。また、人物検出(バウンディングボックスの特定)が失敗すると姿勢推定もできなくなってしまうため、検出器の精度に依存するという欠点もあります。密集した環境で人が重なっている場合、検出器が一部の人を見落としたり一つの枠にまとめてしまったりすると、その人物のポーズは取得できなくなります。
ボトムアップアプローチの仕組み
ボトムアップ・アプローチでは、画像内の人物を個別に認識する前に、まず人物の構成要素である全ての関節キーポイントを検出します。例えば「右肘」「左膝」といった各部位の候補を画像全体からすべて見つけ出し、その後でそれぞれのキーポイントがどの人物同士で組み合わさるかを判別して各人の骨格を組み立てます。イメージとしては、パーツ先行で情報を集めて、そのパーツをグループ化して人物ごとの姿勢を推定する方法です。

ボトムアップ方式の代表例がOpenPoseで、OpenPoseでは独自の情報を用いて、検出されたキーポイント同士を適切に結び付け同じ人物の骨格に属するようグルーピングしています。このおかげで、複数人が写った画像でも「どの頭と胴体・手足が一人分のセットか」を自動的に判断できます。
ボトムアップ手法のメリットは、一度の推論で画像内の全ての人物の姿勢を推定できるため、人数が増えても計算量が増えにくい点です。人物検出を別途行う必要がないため、特に多数の人が写る群集のような場面では効率的に姿勢推定が行える可能性があります。また、画像全体で学習しているため、人が画面内で大小様々なスケールで写っていてもある程度対応できるという利点もあります。
一方、デメリットとしては、各キーポイントを人物ごとに正しく対応付ける処理が難しい点が挙げられます。複数の人物が接近していたり一部が重なっていたりすると、検出した関節点の対応を間違え、骨格の組み立てを誤る可能性があります。またモデル自体は比較的軽量でも、後処理のグルーピングに時間を要する場合があります。一般にボトムアップ法はトップダウン法に比べ精度がやや劣る傾向が指摘されており、小さい人物や肘・膝などの細かい部位の検出精度では最先端のトップダウン法に及ばないケースもあります。それでも、ボトムアップ法はマルチ人物の姿勢推定において検出ステージを省略できるため、全体の計算効率を高めるアプローチとして重要です。
まとめ
本記事では、画像認識の根幹をなす主要タスクの基礎概念・理論について説明しました。これらの基本原理を理解しておくことは、日々アップデートされる最新モデルの本質を素早くキャッチアップするための「一つの土台」としていただければと思います。
当サイトの運営会社であるデータアナリティクスラボ株式会社は、データサイエンティストのプロフェッショナルサービスを提供しています。画像認識を用いた分析実績も多数ございますので、お気軽にご相談ください。
ご相談・お問い合わせはこちらから
こちらもご覧ください







