物体認識(Object Recognition)

1. 物体認識(Object Recognition) とは [概要]

物体認識(Object Recognition)とは,中央に注目物体が1つ映っている「物体画像」を入力として,機械学習モデルにより,その注目物体の物体クラスラベルを識別するコンピュータビジョンの問題の1つである.ディープラーニングの流行以降は,物体画像入力としたCNN(畳み込みニューラルネットワーク)で実現されることが標準的である.物体認識問題は,入力画像の種類を「物体中心(Object-centric)画像」のみに限定することで,問題を解きやすくしている点が特徴的である.

この記事では,物体認識の定義を行ったのち,コンピュータビジョン分野における,「物体中心画像を入力とした」主要な物体認識問題を,分類を行い簡潔に整理したい まず2節では,物体認識問題について簡単に定義したのち,取り扱うクラス数の増加について.次の3節では「クラスの粒度」の小中大に従って,インスタンス認識(Instance Recognition)や,細粒物体認識(Fine-grained Recognition)と問題設定が変化する点を整理する (※ 現時点では,3D点群を入力とした物体認識は対象外としたい.PointNetなどの記事を書いたのち3D点群での話も追記する予定).

またCNN・ディープラーニングで新たに実現できるようになった技術の恩恵により,物体認識では,更なる派生問題や一般化された問題についても,研究が行われている.その例としては,開集合物体認識(Open-Set Object Recognition)や,ロングテール認識(Long-Tailed Recognition)カテゴリー発見(Catergory Finding)などが挙げられる.(※ これらについては現状取り上げないが,対応する小記事を増やすに従い4節以降へ加筆する予定).

2. 物体認識の定義

2.1 問題設定の動機

物体認識の問題は,物体中心(Object-centric)な画像1枚を入力として,対象となるN個の物体クラスから1つだけを選び出す問題として定義できる.つまりは「画像を入力として,Nクラス分類する」問題である.

我々が,写真や動画を撮影したり,ロボットビジョンでロボットが視る映像は,かならずしも物体中心画像ではなく,シーン全体を写したシーン中心(Scene-centric)な入力が多い.しかしシーン中心画像が入力で物体認識を行おうとすると,2個以上の物体が映る可能性もある.また,認識対象の物体が1つだとしても,その物体範囲を物体検出などでまずローカライゼーションしないとならない場合もあり,各物体の大きさもバラバラだとうまく画像認識しづらい.

そこで,物体認識では,入力画像に対して「認識対象物体が,毎回同じくらいのサイズで中央に映った画像」を仮定することで,問題設定を識別問題に限定し,解きやすく,なおかつ取り組みやすくしている.

2.2 深層学習の登場: 多数クラスで物体認識が実現可能に.

ImageNet データセットの登場以降は,物体認識問題が,CNN(畳み込みニューラルネットワーク)を用いてよく取り組まれるようになった.それにより,猫と人と車の識別のような粒度だけでなく,見分けのつきづらいクラス同士の「細粒度分類」や「インスタンス分類」のような,細かいクラス間粒度が対象の場合も,ディープニューラルネットの恩恵により,高精度かつ実用的になっていった.特に,ResNet(2014~2015)の登場の頃には,ImageNetデータセットでの物体認識は,認識誤差3~5%台に到達し,それ以上性能向上しないで飽和しはじめるほど,高精度になった.

また,CNN登場以前から取り組まれていた細粒度物体認識(3.2節)でも,ディープラーニング世代の新技術(CNNだけでなく,Deep Metric Learning,(空間)アテンション機構など)の恩恵により,高精度の細粒度物体認識が実現できるようになった.例えば,スマートフォンで,植物の物体画像を撮影すると,その植物の種類を識別して教えてくれるようなアプリが,その実用例として登場している.

また記事の対象範囲外ではあるが,Siamese NetworkやTriplet Loss等の関連技術の発展に伴い,顔認証や画像検索などの,物体認識に近いが,識別問題としては解かずに,埋め込み学習・画像検索技術などで解くような問題の性能も,飛躍的に向上していくこととなった.

2.3 対象クラス数の増加

ImageNet データセットでは「WordNet中の名詞・物体のクラス分類」に対応する,1000クラスの実画像サンプルが用意されている.これは,それまでの画像認識の業界標準ベンチマークであったPascal VOCの「20クラス物体分類」という問題設定を飛躍的に拡大させることができた.

よって,以下のように,同じ物体画像クラス分類の中でも「対象物体クラス数の小,中,大」で分類して考えるようにすると,整理してとらえやすい:

大きな変化は,Pascal VOCから,ISLVRC(ImageNet)へ,主戦場が移行した点である.ISLVRCチャレンジおよびAlexNet登場以前までの技術では,高画質な物体画像を100クラス以上で分類できるだけの画像認識技術はなかった.

CIFAR-10, 100も,小さい画像(tiny image)サイズで,物体認識の発展方法を模索中だった頃の時代のデータセットである.よって,その頃は,AlexNetの以前に主流であった画像認識フレームワークの「手作り特徴(Fisher Vector) + 非Deep系機械学習識別器(SVM,Boostingなど)」という仕組みでは,ImageNetのような大クラス数を高画質画像で分類する物体認識は,まだ高精度には実現できなかった.よってAlexNetの登場で,旧式の手法をCNNの物体認識精度が大きく上回ったことは,パラダイムシフトをおこした(その後の経緯はCNNバックボーンの記事を参照).

関連記事:CNNバックボーンの代表的アーキテクチャの歴史【まとめ年表】

3. クラス粒度の小中大に基づいた分類

3.1 物体認識(一般物体認識,粗粒度物体認識)

物体認識とは,Pascal VOCやCOCOでラベル付けされている20~50程度の物体クラスや,ImageNet-1Kの1000クラスあたりのクラスの分類を機械学習で行うことを言う.現在では物体認識向けのCNNバックボーンや,巨大規模モデルのVision Transformer/MLP mixerなどで取り組む問題である.

CNN登場以前は,日本のビジョン業界では,これを「一般物体認識」と呼び分けることもあった.3.4節の「特定物体認識」と対比させてペアで捉えることが多かった

3.2 細粒度物体認識

車や鳥など,同じ物体クラスのなかでも,更に細かく視覚的に見分けづらいものに対して行う物体認識を,細粒度物体認識(Fine-grained Object Recognition)と呼ぶ.

局所的な相違点を,対象物体の画像上から特定する必要があるので(例:鳥のくちばしの違い),CNN登場以降だと空間アテンションなどの活用が鍵となる.

3.3 特定物体認識:世界に一つのインスタンスを認識

3.1,3.2より更に細かい「世界で1つしかない固有物体」を,物体中心画像を入力として画像検索する問題のことを,特定物体認識とよぶ.入力の物体画像から,例えば「エッフェル塔」や「富士山」など,世界に一つしかない建築物や自然物,土地のインスタンスを行う問題である.英語圏では ,インスタンス認識(Instance Recognition)と呼ばれる.

「認識」と呼ぶものの,特定物体認識は,画像検索の技術を用いて解くことが普通である.この問題がよく取り組まれ出した,局所画像特徴量ベースの時代では,画像特徴量の埋め込みベクトル空間において,最近傍探索やハッシュ化するのが定石であった (今だと,細粒度物体認識(3.2節)のように,Deep Metric Learningしてあげてもよい.現在ではNetVLADなども使える).

近年,インスタンスセグメンテーションの問題(Mask R-CNNなど)が盛んに研究されるようになると,そちらの「一枚の画像中に映る,複数の各物体インスタンス」の意味の「インスタンス」の方が,よく見かけるようになっている.これはも同じ「インスタンス」で呼び,両者が呼び分けはされていないので,違いを理解しておかないと,少しややこしい.

4. まとめ

この記事では,物体認識の問題について定義を行い,まずはその基本となる「クラス数」の「データセットのクラス数規模の小中大」視点で,代表的データセット名を添えた分類をおこなった(2節).

また,「対象クラス同士の粒度の小中大」という別の軸でも,物体認識問題の分類を行った(3節).具体的には,「一般クラス」「細粒度クラス」「特定物体インスタンス」の3つの粒度で,物体認識問題を分類した.

References

  • [Caron et al., 2018] Mathilde Caron, Piotr Bojanowski, Armand Joulin, and Matthijs Douze. Deep clustering for unsupervised learning of visual features. In ECCV, 2018
SNSでシェアやブックマークを行う