Difference between revisions of "Pedestrian Detection in CSharp"
Jump to navigation
Jump to search
(Updated source code with GPU processing) |
|||
Line 3: | Line 3: | ||
!Component || Requirement || Detail | !Component || Requirement || Detail | ||
|- | |- | ||
− | |Emgu CV || [[Version_History#Emgu.CV-2. | + | |Emgu CV || [[Version_History#Emgu.CV-2.2.1|Version 2.2.1]] || For GPU mode to be enabled please make sure the [http://developer.nvidia.com/object/cuda_3_2_downloads.html latest cuda graphic card driver] from NVIDIA is installed. |
|- | |- | ||
|Operation System || Cross Platform || | |Operation System || Cross Platform || | ||
|} | |} | ||
− | |||
== Source code == | == Source code == |
Revision as of 21:26, 28 January 2011
System Requirement
Component | Requirement | Detail |
---|---|---|
Emgu CV | Version 2.2.1 | For GPU mode to be enabled please make sure the latest cuda graphic card driver from NVIDIA is installed. |
Operation System | Cross Platform |
Source code
static void Run()
{
Image<Bgr, Byte> image = new Image<Bgr, byte>("pedestrian.png");
Stopwatch watch = Stopwatch.StartNew();
Rectangle[] regions;
//check if there is a compatible GPU to run pedestrian detection
if (GpuInvoke.HasCuda)
{ //this is the GPU version
using (GpuHOGDescriptor des = new GpuHOGDescriptor())
using (GpuImage<Bgr, Byte> gpuImg = new GpuImage<Bgr,byte>(image))
using (GpuImage<Bgra, Byte> gpuBgra = gpuImg.Convert<Bgra, Byte>())
{
des.SetSVMDetector(GpuHOGDescriptor.GetDefaultPeopleDetector());
regions = des.DetectMultiScale(gpuBgra);
}
}
else
{ //this is the CPU version
using (HOGDescriptor des = new HOGDescriptor())
{
des.SetSVMDetector(HOGDescriptor.GetDefaultPeopleDetector());
regions = des.DetectMultiScale(image);
}
}
watch.Stop();
foreach (Rectangle pedestrain in regions)
{
image.Draw(pedestrain, new Bgr(Color.Red), 1);
}
ImageViewer.Show(
image,
String.Format("Pedestrain detection using {0} in {1} milliseconds.",
GpuInvoke.HasCuda ? "GPU" : "CPU",
watch.ElapsedMilliseconds));
}