詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
by Adrian Kaehler, Gary Bradski, 松田 晃一, 小沼 千絵, 永田 雅人, 花形 理
22章物体検出
前の2つの章では、機械学習の基本を取り上げ、OpenCVライブラリが提供する多くの識別型学習と生成型学習のテクニックについて多少深いところまで掘り下げてきました。いよいよ、今まで本書を通して習ってきたコンピュータビジョンのテクニックや機械学習のテクニックをまとめるときがきました。そして、コンピュータビジョンの現実的な学習問題に応用していきましょう。その最も重要な問題の1つが物体検出です。これは、ある画像内に特定の物体が含まれるかどうかを決定し、可能な場合は物体の位置をピクセル座標で特定する処理(位置推定)です。本章では、これらの目標を達成するいくつかの方法を見ていきます。これらはすべて前章までの低レベルな機械学習のテクニックを活用したものです。
22.1 木構造に基づく物体検出テクニック
これまでライブラリ内の機械学習の低レベルな方法を見てきたので、ここからは少し高いレベルの機能に目を向けます。これらは、さまざまな学習手法を利用し、画像中の興味がある物体を検出するためのものです。現在、OpenCVにはそのような検出器が2つあります。1つ目はカスケード分類器で、ViolaとJonesによって成功した顔検出のためのアルゴリズム[Viola01]を、一般化させたものです。2つ目はソフトカスケードです。単純なカスケード分類器をさらに進化させた新しいアプローチを用いて、ほとんどの場合に単純なカスケード分類器よりロバスト性に優れています。両アルゴリズムは顔以外の物体の検出でも非常に成功してきました。一般的に、これらの方法は剛構造を持つ物体や豊かなテクスチャを持つ物体でよい結果を示します。
これらの方法は、その基礎となっている機械学習コンポーネントをカプセル化するだけではなく、実際の学習のために入力を調整し、学習アルゴリズムからの出力を後処理する過程も含んでいます。驚くにはあたりませんが、これらの物体検出アルゴリズムは機械学習アルゴリズムのように統一されたインタフェースを持ちません。その理由は2つあり、そのような高レベルな手法では、その必要性と結果が当然大きく異なるということと、実際問題として、多くの場合これらのアルゴリズムは作成者自身がライブラリを提供しており、インタフェースがオリジナルの実装に近いものとなっているためです。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access