Project 2
This project involves the implementation and development of some visual computing applications. You can choose any project from the list provided below. You are also welcome to propose a project, which must be approved by the instructor.
Option 1: Panorama Synthesis. (100 points)
Option 2: Video frame interpolation. (100 points)
Option 3: Face detection and recognition. (100 points)
Option 4: Moving pedestrian and vehicle detection and tracking (100 points)
Option 5: Come up with your own topic and get it approved by the instructor.

Panorama Synthesis
a. The goal of this project is to develop a panoramic image synthesis system. You can either implement the basic stitching algorithm in [1] or use the algorithms/APIs implemented in OpenCV. (35 points)
b. Experiment with at least two image blending algorithms, such as those provided by OpenCV (10 points)
c. Implement the panorama straightenng algorithm in [1] or come up with your own way to straighten a panorama  (10 points)
d. In-class presentation (0-10 points)
e. Project report (0-20 points)
f. Extra points: 15 points if a mobile App is developed.

[1] Matthew Brown and David G. Lowe, "Automatic panoramic image stitching using invariant features," International Journal of Computer Vision, 74, 1 (2007)

Video Frame Interpolation
The high-frame-rate movies, like those 48 fps ones, begin to attract interest these recent years. Most of existing movies, however, are shot at 24 fps. The goal of this project is to convert a 24 fps video to a 48 fps one. Specifically, we need to interpolate one frame between any two consecutive frames in the original 24 fps video. You can design your own algorithm or implement any paper that you find. The basic idea is to estimate the optical flow between two consecutive frames and generate the middle frame using the flow.

Grading policy:

Option 1:
a. Implement the basic optical flow based interpolation.  (50 points)
b. Implement a reasonable solution to the occlusion/dis-occlusion problem. (20 points)
A good reference for Option 1 is Section 3.3.2 of [4].
c. In-class presentation (0-10 points)
d. Project report (0-20 points)

Option 2:
a. Implement [3] for frame implementation, you can also get 70 points.
b. In-class presentation (0-10 points)
c. Project report (0-20 points)

References:
[1] Optical Flow Guided TV-L1 Video Interpolation and Restoration. EMMCVPR 2011[2] Frame interpolation with occlusion detection using a time. 2011
[3] Video Completion by Motion Field Transfer. CVPR 06
[4] A Database and Evaluation Methodology for Optical Flow, International Journal of Computer Vision, 92(1):1-31, March 2011.

Face Detection and Recognition

This project needs to develop a system that can automatically detect a face from an input image and recognize the face. A wide variety of algorithms and codes are available for face detection and recognition. You can use all the online code.

Grading policy:
a. Implement face detection. (10 points)
b. Test multiple different (at least 3) face recognition algorithms. (10 points for each algorithm and at most 60 points)
c. In-class presentation (0-10 points)
d. Project report (0-20 points)

References:
[1] OpenCV
[2] http://www.face-rec.org/
[3] Google for more algorithms!

Moving Pedestrian and Vehicle Detection and Tracking

This project needs to develop a system that can automatically detect a moving pedestrian and vehicle from a traffic surveillance video. You can implement the system or download the code available online.

Below are some public benchmark for this task.

1. http://cvlab.hanyang.ac.kr/tracker_benchmark/seq/Walking.zip
2. http://cvlab.hanyang.ac.kr/tracker_benchmark/seq/Subway.zip

Grading policy:
a. Implement moving pedestrian and vehicle detection that can automatically detect moving objects from a video. (40 points)
b. Implement moving pedestrian and vehicle tracking that can automatically follow the detected objects. (30 points)
    Note, applying the detection method in (a) to each video frame individually does not count.
c. In-class presentation (0-10 points)
d. Project report (0-20 points)


Submission and Grading:

Step 1: Present your project in class on 03/13/2017 or 03/15/2017. Pick up a presentation slot for yourselves here (will be available later on). Your presentation should last 5 minutes in total, including a 1 minute Q&A session.
Step 2: Upload your project report, code, and testing data onto a web server and send the instructor the link before 5 pm on 03/17/2017.
In the project report, you need to clearly describe the algorithms you implemented and demonstrate the inputs and outputs.

Late submission policy:


Late submission/project grading will be accepted until 5pm 03/19/2017. But it will be penalized according to the following equation:
G=G0*(1-n*0.05/24), where n is the number of hours delayed, G0 is the raw score, and G is your final score.