第49回目となる今回は、ディープラーニング(Deep Learning:深層学習)を用いた「一般物体認識」について説明します。
コンピュータビジョン分野では、「特定物体認識」と「一般物体認識」があります。
特定物体認識では、ある特定の物体が画像中に存在するかどうかをコンピュータが認識します。例えば、iPhone 8 Plusといった特定の物体を認識します。
一方で、一般物体認識では、図1のように画像の中から様々な物体の位置とカテゴリを認識します。iPhone 8 Plusのように特定の物体ではなく、人、車、犬といった物体のカテゴリが認識対象となります。
図1 一般物体認識の例
ディープラーニングに関する技術の発展によって、一般物体認識は日進月歩で進化しています。そこで今回は、ディープラーニングを用いた一般物体認識アルゴリズムの先駆けである「Region with CNN features(R-CNN)」[1]を紹介します。
R-CNN
R-CNNの処理の概要は図2の通りです。
図2 R-CNNの処理の流れ
■Extract region proposals
まず、物体っぽい領域を過剰気味に検出します。具体的には、既存手法(Selective Search)[2]により、画像から物体候補(Region Proposals)を抽出します。Selective Searchは、ピクセルレベルで類似する領域をグルーピングすることで、物体らしき領域を見つける手法です(図3)。
図3 Selective Searchによる物体候補領域の抽出
■Compute CNN features
全ての物体候補領域中の画像を、一定の大きさにリサイズ(Warped regions)し、CNNにより特徴量(features)を求めます。
■Classify regions
CNNで求めた特徴量を、複数のSVMによって学習します。そして、未知の画像が入力された場合は、学習時と同様にCNNで求めた特徴量から、学習済みのSVMによりカテゴリを認識します。
このR-CNNは、ディープラーニングを用いない既存手法の精度を凌駕することに成功しました。ただし、多数の物体候補に対してCNNとSVMを用いてカテゴリ認識を行うため、処理が重たいという課題があります。
有名な手法ですので、一般物体認識に興味のある方は論文をぜひ読んでみて下さい。
次回は、ディープラーニング(Deep Learning:深層学習)を用いた一般物体検出の続きを説明します!
参考文献
[1] Girshick, R. B., Donahue, J., Darrell, T., and Malik, J. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[2] Uijlings, J., van de Sande, K., Gevers, T., and Smeulders, A. Selective search for object recognition. International journal of computer vision 104.2 (2013): 154-171.