ARToolKitの物体認識 その① HSV色空間での色認識

|
新しいプログラムは「物体認識」とか凄そうな名前を付けましたが、
基本的にはtwoViewを使ったプログラムの延長です。

今回は、前回のプログラムの色認識を改良しました。
少しずつ純粋なARToolKitから離れてきています。


--- < HSV色空間について > ---

HSVなんて聞きなれない単語ですが、簡単に言うとRGBの親戚みたいなものです。

知っての通り、RGBは「赤・緑・青」の色を組み合わせて多くの色を表現しますが、
HSVでは代わりに「色相・彩度・明度」という属性を組み合わせることで色を作ります。

詳しくは、Wikiを参照してください。


なぜRGBじゃなくてHSVを使うのかというと、こっちの方が特定の色を見つけやすいからです。

Wikiを見てもらえば分かるように、HSVでは赤とか青とかの情報は色相を見れば大体分かります。
残りの彩度や明度は、言ってみれば明るさや暗さみたいなもので、ほとんど無視していいものです。

逆に言えば「明るい赤」も「暗い赤」も、同じ赤として認識してくれることになります。
実際には、物体の「影の部分」や「光が反射している部分」まで認識してくれる可能性がある、
ということです。



--- < 実行結果 > ---

今回は、このHSV色空間で画像を扱うために、OpenCVというフリーの画像処理ライブラリを使用しました。
また指定色の物体は綿棒ではなく、色風船の端を切って指にはめてみました。

LabelRect01.jpg   Labeling01.gif   pointing01.jpg  

HSV色系を用いる以外の処理は、今までと一緒です。
とりあえずはうまくいっているようです。


しかし、欠点もあります。
HSV色系はそのままだと感度が良すぎて、余計なものまで認識してしまいます。

上の画像では、閾値を狭くしたので指の先を正しく認識できていません。
そこで、閾値を広くすると下の画像のようになります。

LabelRect02.jpg   Labeling02.gif

閾値が広いと指の部分を正しく取得できますが、同時に関係ない部分まで誤認してしまっています。

このような結果にならないように、「彩度・明度」も考量しなくてはならず、
「色相」の閾値も、そのつど微調整が必要です。

またこれまで以上に、撮影環境に気を使わなくてはいけないかもしれません。


この辺は今後の課題です。

 

このブログ記事について

このページは、PipeRが2008年6月29日 18:38に書いたブログ記事です。

ひとつ前のブログ記事は「ARToolKitのtwoView その⑤ ステレオのソースの公開」です。

次のブログ記事は「ARToolKitの物体認識 その② 指認識」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a