Faceboxes achieve the state-of-the-art detection performance on several face detection benchmark datasets, including the AFW, PASCAL face, and FDDB. Code is available at Faceboxes.
Faceboxes is based on SSD which is custormized from Caffe which is in C/CPP. Faceboxes build caffe on Linux and generated pycaffe library. The prediction code which calls the trained model is in Python. This implementation method makes sure the code is high efficiency in C/CPP and top interface is convenient in Python.
In order to run the code on VS2015, in this code base, I forked Faceboxes code base, and made some modification on cmake files and cpp code.
Compared to Faceboxes, what has been changed
I forked Faceboxes on March 12 2019, and began to modify it.
The commit ID of original Faceboxes is: eeb7b968cb2e4adc6b4b27c3d358a6333eebf047,
and the start commit ID of my modification is: 3a58e3e41ee69a67f1ee32d7432747b272294bfe
If you are interested in what has been changed compared to Faceboxes code base, Please compare those upper 2 commit IDs.
- git clone git@github.com:ardeal/FaceBoxes_VS2015_Python.git
- install VS2015 and Python3.5 on Windows 10. Python3.5 is corresponding to Anaconda3-4.2.0-Windows-x86_64.exe
- run command build_win_python35_vs2015.cmd in Faceboxes_VS2015_Python/scripts folder on Windows command console.
- once step 3) is done successfuuly without any error, copy Faceboxes_VS2015_Python/python/caffe folder to Anaconda3/Lib/site-packages.
- run FaceBoxes_VS2015_Python/test/fd_pycaffe.py. If nothing is wrong, you probably be able to see the algorithms output in folder: FaceBoxes_VS2015_Python/test/algo_output
- the model file in FaceBoxes_VS2015_Python/models/faceboxes/faceboxes.caffemodel was downloaded from Faceboxes. It is a CPU-only version model.
- I have verified the code could be run on CPU correctly, but I didn't verify the GPU version.
- During your building the code, there might be some errors. Search them on Google or post your questions on github.
- You are wecome to point out any mistake in my modification.
On Windows 10, Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz, 64G memory and SSD, the time needed to run:
for 640480 input image, the time needed is around 60-70ms
for 320240 input image, the time needed is around 20-30ms
I tested a few images, and the output are followed: