2013-03-09 22 views
6

閉じた目だけを検出し、両眼を別々に検出する必要があります。つまり、左目が開いているのか閉じているのか、右目でも同じように伝える必要があります。閉鎖した目の検出opencv C++

私はいくつかの方法を試しました。その一つは、haarcascade_eyeとhaarcascade_eye_tree_eyeglassesで目を別々に検出し、その結果を比較することです。両方が目を検出した場合は目を開き、他が検出できない場合は目を閉じ、目を閉じた場合。

http://tech.groups.yahoo.com/group/OpenCV/messages/87666?threaded=1&m=e&var=1&tidx=1

しかし、リンクに述べたようにexpected.eyeカスケード検出器が動作しないとして、それは動作しません:このトリックは、このリンクから取られました。私が上で言及したそれらのhaarascadeで、非常に近い結果が見いだされます。場合によっては正しい結果が得られないこともあります。どうしてか分かりません。また、この方法では、どの目が開いていて、どの目が閉じているのかを知ることはできません。

誰かがこれを解決するために私を助けることができますか?少なくとも私は、どちらが正確にそれを行う必要があるかにかかわらず、目の一つが閉じられていることを伝える方法が必要です。助けてください.......

+0

"正確に"は画像処理では困難です。また、一部の人々の目の形が自然に狭いことを考慮に入れると、多くの誤認/否定につながる可能性があります。 – Bojangles

+0

開いた目と閉じた目の両方を検出し、開いている目だけを検出するハカスカードを教えてください。それから私は今、いくつかを管理することができました。 – AtanuCSE

+0

テンプレートマッチング – Saikat

答えて

1

単一の目を検出するために自分のHaarカスケードを訓練しないようにするには、瞳孔検出などの簡単な手法を試すことができます。黒い円を検出できない場合は、目を閉じます。あなたが興味のある小さな領域を持っている場合、これはおそらく非常にうまくいくでしょう。別の選択肢は、目の領域の色ヒストグラムであり、これは開いた状態と閉じた状態とではかなり異なって見える可能性がある。

画像で目が見える場所を妥当な精度で予測できない場合は、これらの方法が失敗し、あなたのベストショットは自分のカスケードを訓練することです。