LoginSignup
7
7

More than 3 years have passed since last update.

上半身検出器の作り方について調査中

Last updated at Posted at 2017-11-26

世の中はYOLO2OpenPoseなどになっているのは承知しているが、
あえて上半身検出器の作り方について調査してみる。

今回はHOG特徴量をRealAdaBoostで学習させます。
特徴量はHaar-like、LBP、HOG
学習手法はAdaboost関係のものが4種類あります(詳しくは調べてませんサーセン)。
お好きなものを使ってください。

opencv_createsample と opencv_traincascadeです。
今回学習に使用した画像は正サンプル2600枚、負サンプル5100枚でした。
うまく検出した例を載せましたが、実際はもっと誤検出が多かったりします。。。

OpenCV 3.3 Cascade Classifier Training

OpenCV のアノテーションツールのソースコードは以下のものです。
./opencv/apps/annotation/opencv_annotation.cpp

それをビルドすると次のツールができあがります。

./opencv/build/bin/opencv_annotation

Using OpenCV's integrated annotation tool は上記のドキュメントに中に使い方が書いてあります。

HaarCascadeのオブジェクト検出プログラムは、検出されるオブジェクトの数が多いほど、検出に要する時間が増えます。また、対象のオブジェクトに紛らわしいものが写っていればいるほど、検出にかかる時間が増えます。そのため、処理時間のワーストケースが読めません。

他方、DNNによるオブジェクト検出では、検出されるオブジェクトの数に関係のない検出時間となります。

HOGDescriptor の人物検出器はどう学習しているのか調査しよう

HOG + SVMで人物検出【OpenCV & Python】

Upper-body detector

このサイトでは INRIA Object Localization Toolkit を使うことを前提にしたSVMの訓練結果を提供しているようです。

NOTE: this detector is now obsolete. We recommend instead to use the UB detector based on Felzenszwalb et al. and a face detector. This is available at: http://www.vision.ee.ethz.ch/~calvin/calvin_upperbody_detector/
It is:
much easier to install,
more portable, and
performs better.

と言っています。
それでも使いたい場合は

We provide the dectector as a pre-trained SVM ready to be plugged in the INRIA Object Localization Toolkit (OLT). The upper-body detector can be downloaded in three formats:

only the SVM files for the OLT software;
both the SVM files and the OLT framework in a single package;
or,
the SVM files, the OLT framework and Matlab code to track upper-body detections in a sequence, all in a single package.

なお
calvin upper-body detector v1.04自体はリンク先が変更になっています。

上半身検出器のページをたどっていくと、学習に用いたデータベースの記載にたどりつくことができます。

Upper-body frontal training data samples. http://www.robots.ox.ac.uk/~vgg/software/UpperBody/upperbodyfrontal_dataset.zip
Upper-body profile training data samples http://www.robots.ox.ac.uk/~vgg/software/UpperBody/upperbodyprofile_dataset.zip

上半身画像の DataSet
https://drive.google.com/folderview?id=0BzuiGHpNJIxCOEx3SUxrMDl2QlU&usp=sharing

この画像を見る限り、バストショットでの「上半身」検出器です。

2015 年 上半身検出の手法とその評価

My Opencv LBP cascade for people detection

OpenCV ベースの検出で、異なる学習結果のXMLファイルを提供しています。

Youtube Pedestrian Detection based on Cascade Classifiers and Saliency Maps
HOG+Saliency がHOG単独よりもよい検出結果を与えるとするものです。

歩行者検出
Caltech Pedestrian Detection Benchmark

OpenCVの全身検出器
haarcascade_fullbody.xml


RPN+(Tensorflow) for people detection
https://github.com/huangshiyu13/RPNplus

Tensorflow Object Detection API
https://github.com/tensorflow/models/tree/master/research/object_detection


Creating your own Haar Cascade OpenCV Python Tutorial

Pedestrian Detection OpenCV

顔検出用のプログラムを動かすまでのメモ

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7