Dealine: 02.11.2021
Please put your name here:
Name: .......
- Fork the current repository
- Study the new framework-code of
- main.cpp
- Camera Controller.h/cpp
- Face.h/cpp
- Marker.h/cpp
- Check that the code is running correctly: it should show the video stream from the web-camera of your laptop.
- Implement the ring buffer from lecture by modifying the code in Camera Controller.cpp file (places marked with MODIFY CODE HERE tag)
- In cases when producer overwrites a frame, which was not querried by consumer, report a drop frame state by printing the corresponding message to console. Test it with increasing the delay time in
waitKey()
function in the main loop of consumer.
Incorporate the face detection solution you done in the Assignment 1 into the framework in the following way:
- Your face detector should return a vector of pointer to the
CFace
classes with detected faces:std::vector<ptr_face_t> vpFaces
- Implment function
CMarker::markFaces()
and use it for drawing the faces to GUI - Perform face detection every 10th frame.
Incorporate the optical flow field solution you done in the Assignment 2 into the framework in the following way:
- Your sparse optical flow shoud return a vector of 2-d points:
std::vector<Point2f>
- Implment function
CMarker::markVecOFF()
and use it for drawing the optical flow field (feel free to modify its arguments if needed). - Now detect the points only in the face area , whic is described in
vpFaces
variable. - Update the detected points every 10th frame (when face detection is used).
- Track also the points added with mouse in the mouse callback function.
- Inbetween 10 frames (when the face detection is not applied) track the detected faces using the optical flow field. Update the pisition of faces in
vpFaces
variable variable for every frame.
- Modify the function
CMarker::markGUI()
and design your own gui. Be creative! - Implement showing the current FPS in GUI
Please submit the assignment by making a pull request. Important : Please make sure that
- No extra files are submitted (except those, which were mentioned in the assignment)
- The changes were made only in those files where you were asked to write your code
- The Continiouse Integration system (appVeyor) can build the submitted code
- The rendered images are also submitted in the folder "renders"