画像処理とか機械学習とか

画像処理や機械学習関連の事について気まぐれで書いていきます。歩行者検出関係が多いと思います。ハリネズミもたまに出現します。

特徴量ベースの歩行者認識に関して

今回は、Deep Learningでは無く特徴量ベースの人物検出について簡単にまとめていきます。

  • 歩行者認識(Pedestrian Detection)とは?

 歩行者認識は、画像処理・パターン認識の分野で重要な課題で、毎年CVPRやICCVなどのトップカンファレンスでも幾つかの論文が見つかると思います。近年はDeep Learningを用いた手法が多い傾向があります。
 しかし、現状で、実用段階にあるのは昔からの特徴量ベースの手法が多く、Deep Learningは学習にかかるコストや、GPUなどの高価なハードが必要だったりとまだまだ課題が残されています。今回は、昔ながらの特徴量ベースの歩行者認識について説明していきたいと思います。

  • 歩行者見つけてどうするの?

 スバルのアイサイトをはじめ、「ぶつからない車」などの走行安全運転システムが普及してきており、人物検出・車両検出に期待が高まっています。このような人物検出や車両検出の研究は、日本だけでも東芝・日立・デンソーなどなど数多くの企業が研究を行っており、実際に車載のための画像処理LSIなどが実用化されています。歩行者を見つけるだけでなく、状態(異常行動等)を検出したり、歩いている方向やカメラからの距離などを推定したりと様々な事が出来るようになってきています。
 この分野の日本の学会はSSIIやMIRUなどが有名です。ぜひ足を運んでみてはいかがでしょうか?去年は私も発表してきました!

confit.atlas.jp

sites.google.com

  • 歩行者検出の為の特徴量

歩行者検出では、形状情報がよく使われており、輝度勾配という特徴がよく使用されます。輝度勾配とは、画像の暗いところから明るいところへの向きで、輝度値の差分で表します。

輝度勾配を用いる手法として人検出ではHOG特徴量が有名です。
HOG特徴量は、画像をセルという細かい格子状の領域に分割し、セルごとに輝度勾配のヒストグラムを作成していきます。ヒストグラムは4つのセルを一つのブロックとして、ブロックごとに正規化を行います。HOGをベースとした特徴量は数多く出されていて、Joint HOGやFIND、CoHOGなどがあります。
HOGはMatlabを用いて簡単に用いることができ、HOGを計算し、その可視化(画像のエッジの可視化)が以下のように簡単に表示できます。

f:id:hiro2o2:20160215224632j:plain

Matlabを用いると以下のように簡単に使えますが、アルゴリズムは簡単なので出来ればソースコードの中身を読むのをお勧めします。

%HOG特徴量の抽出
[hogfeatures,hog]=extractHOGFeatures(img);

%HOG特徴量の可視化
figure;
imshow(img); hold on;
plot(hog);

HOGをベースにした、東芝さんのCoHOGでは輝度勾配の共起に注目しています。
共起とは、二画素ペアの勾配共起を用いる手法で、HOGは二次元のヒストグラムですが、CoHOGでは二次元の勾配共起ヒストグラムを作成します。
この共起性を用いて他にもいろいろな特徴量が提案され、HOGの問題を解決しています。

  • 歩行者認識関連のさらなる情報

東芝レビュー・CoHOGについて
https://www.toshiba.co.jp/tech/review/2010/06/65_06pdf/rd01.pdf
https://www.toshiba.co.jp/tech/review/2011/02/66_02pdf/a04.pdf

デンソー・DeepLearningを用いた歩行者検出
【GTC2014】デンソーがディープニューラルネットワークとTegra K1を使った歩行者認識をデモ - Car Watch

中部大学・藤吉先生
FLAB : Computer Vision for Visual Surveillance and Mobile Robotics
http://www.vision.cs.chubu.ac.jp/CVTutorial/PDF/03ObjectDetection.pdf

ZMPGPUを用いた歩行者検出
www.youtube.com