Image processing project -The overall objective is to capture images of human faces in 3D using a stereo webcam arrangement. The component parts for this project pretty much all exist within standard open-source libraries, your task is to
1. Use the Chehra Algorithm [login to view URL] to detect and track the landmarks.
2. Fin the depth noise in 3D.
3. Then change the scale facto by moving the objectives in different distance to find resolution pixel and disparity, therefore we find the best resolution (positioning of the camera)
4. Find the noise tracking error
The deliverables are:
• Installation/build instructions to install any required libraries (e.g. openCV)
• Source code and CMake files for code written along with build/install instructions
• Demonstration data saved at each significant step of the process (e.g. saved chessboard images from cameras, video streams showing face identification, saved high-res source images for 3D processing, saved point-cloud data, saved mesh data)
• Link and references to code snippets / blog posts used in the code from elsewhere on the web (I fully expect you to copy heavily from the masses of examples and blog posts out there on this topic)
• A detailed document of all steps to accomplish each task.
You will need to:
o Set up two webcams as a stereo pair under Windows on a single USB2 controller (you could use a USB2 hub for this)
o Calibrate the cameras (e.g. using standard chessboard as per OpenCV)
o Observe the environment using (relatively low-res) video
o Identify when a human face is in-frame for both cameras (openCV does this)
o Capture a high-resolution still photo from each of the cameras (likely needing to use modified uvcvideo video driver to achieve this rapidly)
o Calculate disparity map (openCV does this)
o Calculate pointcloud (openCV does this) (provided that your calibration code uses a known physical size of chessboard, this pointcloud should be in real-world units of e.g. millimeters)
o Transfer pointcloud to PCL and create a 3D surface representation of the face
o Display the 3D surface using the webcam image data to provide color for each mesh polygon (i.e. texture mapped from the webcam)
o Save the texture-mapped 3D surface in a suitable 3D mesh format that can be viewed with any suitable open-source viewer
System requirements:
1. MS visual studio 2012 or 2015
2. Two cameras
3. OpenCV , C++
4. Windows OS
This is a rather technical project. I'm not an expert in this area, but I'm college educated, experienced in a wide range of technology, and can do the necessary research. Bid amount and time to complete reflect this.