4

opencv を使用してフォルダー内の顔をグループ化しようとしています。

http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.htmlで固有顔の例をいじっています。しかし、私の問題を解決するものは何も見つかりません。

I have a set of faces in my face database: A,B,C,D,E,F,G,H,I
As a result I try to get; 
 - A,B,D are person1
 - C,E,F are person2 
 - G,H   are person3
 - I     is person4

プロセスは次のようになるはずです。

sampleFace = A
while  
  mode.train(faces,labels) // trains face database 
  model.predict(sampleFace, &predict, &confidence) // get the prediction 
  using the confidence and similarity percentage decide A,B,D faces are person1
  remove A,B,D from face database and remove the labels of these images also 
  if faces.size=1 exit loop
  sampleFace = C
end of loop

その結果を得るには、固有顔サンプルのモデルにしきい値を設定する必要があると思います。そして、信頼値を使用する必要があります。

実際には、%80 のような類似度スコアを設定したいので、指定されたサンプルの顔で 80% より大きい類似度スコアを持つ画像を取得したいと考えています。eigenfaces サンプルは、信頼値を持つ類似の顔を 1 つだけ提供します。それぞれの顔ごとに信頼値を持つ複数の顔を取得する必要があり、類似度スコアを比較できます。また、固有顔のサンプルでは、​​信頼限界がわからないため、顔ごとにパーセンテージ値が必要です。

ヘルプ、アドバイス、またはコード サンプルをいただければ幸いです。

4

1 に答える 1

0

あなたが行おうとしている方法は、教師なし学習に基づいているため、顔画像ではうまく機能しません。1 人あたりのサンプル数が十分にある場合は、少なくとも 1 人の人物の画像を使用して分類器をトレーニングすることをお勧めします。次に、データセット内の各画像に最も近いクラスを見つけます。

于 2014-04-20T07:23:55.533 に答える