TensorFlow で「一般物体検出」入門
TensorFlow の急速な普及等もあり、画像全体の情報からクラス分類を行なう「物体認識」については畳み込みニューラルネットワーク (ConvNet or CNN = Convolutional Neural Network) を利用することで手軽に成果が出せるようになりました。
画像認識については TensorFlow : Tutorials : 画像認識 (翻訳/解説) が良い参考になります。
しかしながら、画像上の(顔や歩行者のように)限定的でない複数種類の物体の位置を特定してそれぞれをクラス分類する一般「物体検出」を行なうためには、それ以外にも多岐に渡る技術が必要となります。そして畳み込みニューラルネットワークを軸とする一般物体検出はここ2、3年の間に急速に発展しています。
クラスキャットでは TensorFlow ベースの一般物体検出ソリューション「ClassCat® ObjDetector v1.0」の提供を開始 することを既にニュースリリース致しましたが、ニュースリリースでは技術的な詳細はふれていませんので、ここでは一般物体検出入門として、基礎知識となる幾つかのペーパーを紹介して abstract を翻訳するとともに、具体的な検出例を幾つか示しておきます。
基礎知識
ConvNet を利用した一般物体検出における一つの流れとして R-CNN (Region-based CNN or Regions w/CNN features) があり、初出のペーパーは以下です :
Rich feature hierarchies for accurate object detection and semantic segmentation
R. Girshick, J. Donahue, T. Darrell, J. Malik
(Submitted on 11 Nov 2013 (v1), last revised 22 Oct 2014 (this version, v5))
Abstract :
物体検出性能は、標準的な PASCAL VOC データセット上で計測されているようにここ数年定常状態にあります。最高性能の方法は典型的には複数の低位の画像特徴を高位のコンテキストと統合した複雑なアンサンブル・システムです。このペーパーでは単純でスケーラブルな検出アルゴリズムを提案します。これは VOC 2012 上 mean average precision (mAP – 平均精度の平均) を以前のベストな結果に比較して 30 % 以上改善します — 53.3 % の mAP を獲得しています。私たちのアプローチは2つのキーとなる洞察を統合しています: (1) 物体群を位置特定して segment するためにボトムアップされた候補領域 (region proposals) に対して大容量 CNN 群を適用できます。そして (2) ラベル付けされたトレーニング・データが乏しい時、補助タスクのための教師あり事前トレーニングは、ドメイン固有な fine-tuning を続けることで、本質的な性能ブーストを生み出します。候補領域を CNN と統合しているので、私たちの方法を R-CNN (Regions with CNN features) と呼称します。また R-CNN を OverFeat とも比較します、これは最近(訳注: = ペーパー submit 時)提案された、類似の CNN アーキテクチャに基づくスライディング・ウィンドウ検出器です。200-クラス ILSVRC2013 検出データセット上、R-CNN は OverFeat よりも大差で優れていることを見出しました。
以後、時間を置かずに Fast R-CNN 更には Faster R-CNN が公開されます。
上の abstract でも言及されていますが、物体検出関連の初期のペーパーで良く参照される OverFeat のペーパーは以下です :
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun
(Submitted on 21 Dec 2013 (v1), last revised 24 Feb 2014 (this version, v4))
Abstract :
分類、位置特定そして検出のための畳み込みネットワークを使用するための統合フレームワークを提案します。マルチスケールとスライディング・ウィンドウによるアプローチが ConvNet の中でどのように効率的に実装されるかを示します。また物体境界を予測するために学習することによる位置特定に対する新しい深層学習アプローチを導入します。そして検出信頼度を上げるためにバウンディングボックスは suppressed されるよりも 蓄積 (accumulated) します。単一供給ネットワークを使用して異なるタスクが同時に学習できることを示します。この統合フレームワークは ImageNet Large Scale Visual Recognition Challenge 2013 (ILSVRC2013) の位置特定タスクの勝者でありそして検出と分類タスクのための非常に競争力のある結果を得ています。post-competition ワークでは、検出タスクに対して新しい最先端を打ち立てました。最終的に、OverFeat と呼ばれるベストモデルから特徴抽出器をリリースします。
但し、より実践的で後続の研究に影響を与えているのは SPP-net でしょう。畳み込みの積層の最後の (max) プーリング層を spatial pyramid pooling と置き換えて任意のサイズ/スケールが扱えるようにした点がキーポイントです :
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
(Submitted on 18 Jun 2014 (v1), last revised 23 Apr 2015 (this version, v4))
Abstract :
既存の深層畳み込みニューラルネットワーク (CNN) は固定サイズ (e.g., 224 x 224) の入力画像を要求します。この要求は “人工的 (artificial)” で任意のサイズ/スケールの画像 or 部分画像に対する認識精度を減少させるかもしれません。このワークでは、上記の要件を取り除くためにネットワークに他の pooling ストラテジー “spatial pyramid pooling” を持たせます。SPP-net と呼ばれる新しいネットワーク構造は画像サイズ/スケールにかかわらず固定長の表現が生成できます。Pyramid pooling はまた物体 deformations(変形)に対して堅牢です。これらの利点によって、SPP-net は一般に全ての CNN ベースの画像分類法を改善するはずです。ImageNet 2012 データセット上、SPP-net が(異なる設計にもかかわらず)様々な CNN アーキテクチャの精度をブーストすることを示します。Pascal VOC 2007 and Caltech101 データセット上、SPP-net は単一のフル画像表現を使用して fine-tuning なしで最先端の分類結果を獲得しました。
SPP-net の力はまた物体検出において本質的です。SPP-net を使用して、画像全体から一度だけ特徴マップを計算し、そして検出器をトレーニングするために固定長の表現を生成するために任意の領域(部分画像)のプール特徴を計算します。この方法は繰り返し畳み込み特徴を計算することを回避します。テスト画像を処理する際、この方法は R-CNN 法よりも 24 – 102 倍速いです、その一方で Pascal VOC 2007 上より良いまたは同程度の精度を獲得しています。
ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2014 においては、この方法は全 38 チームの中で物体検出で #2 にランクされそして画像分類で #3 にランクされました。 この原稿はまたこのコンペに対して行なわれた改善も紹介します。
それから前処理に良く使用される Selective Search です :
Selective Search for Object Recognition
J.R.R. Uijlings, K.E.A. van de Sande, T. Gevers, and A.W.M. Smeulders
Technical Report 2012, submitted to IJCV
Abstract :
このペーパーは物体認識で用いる、可能性のある物体位置を生成する問題に対処します。Selective Search を導入します、これは exhaustive(しらみつぶし) search とセグメンテーションの強みを結合します。セグメンテーションのように、サンプリング・プロセスを導くために画像構造を使用します。exhaustive search のように、すべての可能性ある物体位置を捉えることを目指します。可能性のある物体位置を生成するために単一の技術の代わりに、できる限り多くの画像条件を処理するために検索を多様化して各種の補完的な画像分割を使用します。selective search はデータ駆動、クラス独立、高品質な位置の小さなセットという結果になり、99 % recall と 10,097 位置において 0.879 の Mean Average Best Overlap を生みだします。exhaustive search に比べて位置の数の減少は物体認識のためにより強い機械学習テクニックとより強い appearance(見え方)モデルの利用を可能にします。このペーパーでは selective search が認識のためにパワフルな Bag-of-Words モデルの利用を可能にすることを示します。
TensorFlow による一般物体検出例
以下は TensorFlow ベースの一般物体検出ソリューション「ClassCat® TF-Detector v1.0」を利用した検出例です。
※ 画像は全て ImageNet の URL を利用しており、元画像の版権は所有者に帰属しています。
※ トレーニング途上のモデルを使用しましたので、精度は更に改善されます。
以上