2016-12-12 7 views
0

私はビデオ内の人物を認識しようとしています(顔ではなく身体で認識しています)。私がこれまで行ってきたことは、人のHOG、HS、RGBのヒストグラムを見つけ、他の人と比較して彼を見つけることです。EmguCV/OpenCVの身体認識

EmguCVを使用していますが、OpenCVのヘルプも高く評価されます。

HOGはHSヒストグラムを計算する(同一の方法をRGBのために使用される)

を用いて2つのヒストグラムの距離を算出

 Image<Gray, byte>[] channels = hsvImage.Copy().Split(); 
     Image<Gray, byte> hue = channels[0]; 
     Image<Gray, byte> sat = channels[1]; 

     dh.Calculate<byte>(new Image<Gray, byte>[] { hue }, true, null); 
     dh2.Calculate<byte>(new Image<Gray, byte>[] { sat }, true, null); 

     float[] huehist = dh.GetBinValues(); 
     float[] sathist = dh2.GetBinValues(); 

する

 Size imageSize = new Size(64, 16); 
     Size blockSize = new Size(16, 16); 
     Size blockStride = new Size(16, 8); 
     Size cellSize = new Size(8, 8); 

     HOGDescriptor hog = new HOGDescriptor(imageSize, blockSize, blockStride, cellSize); 

     float[] hogs = hog.Compute(image); 

コードを使用して計算されます。

 double distance = 0; for (int i = 0; i < hist1.Length; i++) { distance += Math.Abs(hist1[i] - hist2[i]); } return distance; 
私はビデオフィードから選択された人物を追跡しようとしています

何が起こっている

。人はカメラからカメラに移動することができます。 人物Aのボディは、HOG、HS、RGBヒストグラムが計算されて格納されているビデオフレームから抽出されます。次のフレームから、検出されたすべての人物のヒストグラムが計算され、personAのヒストグラムその人を追跡し続けているので(最小距離)最もマッチしたヒストグラムが...同じ人(ペルソナ)と考えられている...

問題

  • 精度(時には良いではありませんそれは非常に異なる色の布で、2人に話す同じ)

提案

  • 私は何を/変更すべきことは
  • を削除私はCvInvoke.CalcHist(...)を使用して、ヒストグラムを計算する必要があります。高密度ヒストグラムの代わりにHSとRGB
  • 距離を計算する前にヒストグラムを正規化する必要があります。
  • この正規化方法は良いですか? (すべての値マイナスアレイの平均)
  • また、私は別のものを試してください。

任意の詳細をコメントしてくださいその後、必要な場合は、ヘルプ/提案任意の種類は非常にを理解されるであろう。 ありがとう、

答えて

0

私は同じプロジェクトに取り組んでいます、私たちは仕事のアイデアは同じです、私はこの問題の解決策を持っています。

解決策1:人の検出後 が検出された人物の抽出機能をトリミングし、これらの機能を保存し、それらの横にあなたは人の抽出機能を追跡したい時は、フレームは、それらを比較形成し、私は、全体のアルゴリズム

を書いています

ソリューション2 エッジがバイナリにフレーム全体を変換し保存するバイナリに変換する人物領域を見つける(あなたがスピードアップしたい包み)、私は正確さのために、他のトリックをしてください見つける持っている人間の身体領域

を見つけますメールで私に連絡する私は一緒に働くかもしれないコードを書くのに問題があり、最高の解決策を見つける。

+0

こんにちは。電子メールによる連絡を求めることはここでは許されません。理想的には、答えには、OPの質問を解決するために必要なすべてが含まれている必要があります。オープンソースの場合は、コードへのリンクを自由に追加してください。 – tripleee

+0

大丈夫私は決してポリシーを読むチャンスを持っていた:) –

+0

まず、あなたの返信に感謝します。私はすでにあなたのsolution1として働いています。私は確かにsolution2を試しています。私たちが一緒に働くことができれば素晴らしいことでしょう。 –

関連する問題