Welcome to our ECE 408 Applied Parallel Programming final project repository.
The goal of this project was to speed up the process of face detection using CUDA and the parallelization techniques we discussed in our classes. We first implemented our own serial version of the algorithm as a benchmark to test our parallelized program against. We then proceeded to apply various methods of parallelization to the Haar Cascading process with the goal of achieving a significant speedup from the serial version.
The master branch of our repository contains our most recent code. Feel free to grab it and play around with it yourself.
###A CUDA-capable GPU
###Visual Studios Community 2013 Download VS
###CUDA Toolkit Download CUDA Toolkit
Check your computer's graphics card model.
Then go to NVIDIA's list of CUDA enabled GPUs to see if yours is on the list.
Install your latest NVIDIA Driver.
Remember to restart your computer after installation.
Make sure to install CUDA Visual Studio Integration.
Refer to the following if you run into issues: CUDA Getting Started Guide for Windows
More directions on setting up CUDA with Visual Studios
Grab code from the master branch
$ git clone https://github.com/ujrav/ECE408.git ece408
Navigate to the Visual Studios Project file.
$ cd ../ece408/parallel/parallel
Find "parallel.vcxproj" and open it in Visual Studios.
In the function main of "kernel.cu", there is a line to change the image input.
image = readBMP("Images/<name>.bmp", width, height);
Our program is only capable of reading BMP images at the moment. You can run the image tests already provided in the Images folder or you can create your own. Directions on creating usable test images are found below. Please limit the image size to no more than 1000x1000.
Hit R7 or Click on Build > Build Solution and wait for it to compile. (There will be some warnings about the RapidXML file).
Once it is done, hit Ctrl+F5 to run the program.
When completed, there should be two image outputs in the Image folder: "Images/output.bmp" and "Images/outputSerial.bmp". Open them and check to make sure green boxes have been drawn around the human faces in the image.
Take any image you want of any format of your choosing. Limit the size to at most 1000x1000 resolution.
Convert the image to BMP (24-bit). If on Windows, open the image in Microsoft Paint. Click File > Save As > Select BMP and save it into the Images folder.
Your image should be ready to be run by the program!