0

I'm having problems with my person detection code. I'm using the Emgucv library, and it ends up picking up objects that have nothing to do with people ... Is something missing? How can I make it better?

                Rectangle[] regions;
                int indexx = 0;
                using (HOGDescriptor des = new HOGDescriptor())
                {
                    des.SetSVMDetector(HOGDescriptor.GetDefaultPeopleDetector());
                    regions = des.DetectMultiScale(currentFrame.Copy());
                }

                foreach (Rectangle rect in regions)
                {
                    indexx++;
                    currentFrame.Draw(rect, new Bgr(Color.Red), 2);
                }

                if (regions.Count() > 0)
                    currentFrame.Save("pedestre\\pedestre0" + indexx + ".jpg");
4

1 回答 1

1

人员检测结果可能会有所不同,具体取决于您的测试/应用环境。您最好的选择可能是训练算法以在您的特定条件下发挥最佳效果。

如果您希望算法在非常特定的条件下工作,例如特定的、封闭和受控的环境,那么最好的办法是训练您的算法在这种环境下工作。

如果您希望您的检测在更多不同的条件下工作,您可能需要搜索有关人员检测或图像过滤的文章,以了解您在应用程序实际使用时将遇到的条件。您可以在使用分类器之前尝试进行一些图像预处理 - 例如,有时一个简单的直方图归一化器可以改进您的结果,使其足以满足您的应用程序。

于 2013-08-23T12:57:07.340 回答