私はビデオ内の人物を認識しようとしています(顔ではなく身体で認識しています)。私がこれまで行ってきたことは、人の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
- 距離を計算する前にヒストグラムを正規化する必要があります。
- この正規化方法は良いですか? (すべての値マイナスアレイの平均)
- また、私は別のものを試してください。
任意の詳細をコメントしてくださいその後、必要な場合は、ヘルプ/提案任意の種類は非常にを理解されるであろう。 ありがとう、
こんにちは。電子メールによる連絡を求めることはここでは許されません。理想的には、答えには、OPの質問を解決するために必要なすべてが含まれている必要があります。オープンソースの場合は、コードへのリンクを自由に追加してください。 – tripleee
大丈夫私は決してポリシーを読むチャンスを持っていた:) –
まず、あなたの返信に感謝します。私はすでにあなたのsolution1として働いています。私は確かにsolution2を試しています。私たちが一緒に働くことができれば素晴らしいことでしょう。 –