Motion-based user interaction Write a program to compute a low-resolution motion field in order to interactively control a simple application (Cutler and Turk 1998). For example: 1\. Downsample each image using a pyramid and compute the optical flow (spline-based or pixel-based) from the previous frame. 2\. Segment each training video sequence into different "actions" (e.g., hand moving inwards, moving up, no motion) and "learn" the velocity fields associated with each one. (You can simply find the mean and variance for each motion field or use something more sophisticated, such as a support vector machine (SVM).) 3\. Write a recognizer that finds successive actions of approximately the right duration and hook it up to an interactive application (e.g., a sound generator or a computer game). 4\. Ask your friends to test it out.

Short Answer

Expert verified
This problem is solved by first downscaling images and calculating optical flow. Then video is segmented into specific actions with corresponding velocity fields learned. Next a recognizer is created that can detect these actions and interact with an application. The solution is then tested.

Step by step solution

01

Image Downsampling and Optical Flow Calculation

To achieve this, use an image pyramid scheme where images are progressively reduced in size. Downsample each image and compute the optical flow from the previous frame. Optical flow is the pattern of apparent motion of image objects between two consecutive frames caused by the movemement of object or camera. It is computed based on pixel intensity patterns.
02

Segment Video Sequence and Learn Velocity Fields

Segment each training video sequence into different actions i.e., hand moving inwards, moving up, no motion and 'learn' the velocity fields for each one. This essentially means understanding what sort of motion field corresponds to each action. This could be done by finding the mean and variance for each motion field or could use a more complex method such as a support vector machine (SVM).
03

Write a Recognizer

A recognizer needs to be written to detect the successive actions of the right duration and then connect it to an interactive application such as a sound generator or a computer game. This recognizer will use the data prepared in the previous step to understand what action is being taken.
04

Testing

After you’ve completed your recognizer, have it tested. Ask friends to interact with the application through motions and observe if the recognizer is correctly identifying the actions and if the application reacts correctly.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with Vaia!

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

Optical flow Compute optical flow (spline-based or per-pixel) between two images, using one or more of the techniques described in this chapter. 1\. Test your algorithms on the motion sequences available at http://vision.middlebury. edu/flow/ or http://people.csail.mit.edu/celiu/motionAnnotation/ and compare your results (visually) to those available on these Web sites. If you think your algorithm is competitive with the best, consider submitting it for formal evaluation. 2\. Visualize the quality of your results by generating in-between images using frame interpolation (Exercise 8.5). 3\. What can you say about the relative efficiency (speed) of your approach?

Video denoising Implement the algorithm sketched in Application 8.4.2. Your algorithm should contain the following steps: 1\. Compute accurate per-pixel flow. 2\. Determine which pixels in the reference image have good matches with other frames. 3\. Either average all of the matched pixels or choose the sharpest image, if trying to compensate for blur. Don't forget to use regular single-frame denoising techniques as part of your solution, (see Section 3.4.4, Section 3.7.3, and Exercise 3.11). 4\. Devise a fall-back strategy for areas where you don't think the flow estimates are accurate enough.

Motion segmentation Write a program to segment an image into separately moving regions or to reliably find motion boundaries. Use the human-assisted motion segmentation database at http://people.csail.mit.edu/celiu/ motionAnnotation/ as some of your test data.

Correlation Implement and compare the performance of the following correlation algorithms: \- sum of squared differences (8.1) \- sum of robust differences (8.2) \- sum of absolute differences (8.3) \- bias-gain compensated squared differences (8.9) \- normalized cross-correlation (8.11) \- windowed versions of the above (8.22-8.23) \- Fourier-based implementations of the above measures (8.18-8.20) \- phase correlation (8.24) \- gradient cross-correlation (Argyriou and Vlachos 2003). Compare a few of your algorithms on different motion sequences with different amounts of noise, exposure variation, occlusion, and frequency variations (e.g., high-frequency textures, such as sand or cloth, and low-frequency images, such as clouds or motion-blurred video). Some datasets with illumination variation and ground truth correspondences (horizontal motion) can be found at http://vision.middlebury.edu/stereo/data/ (the 2005 and 2006 datasets). Some additional ideas, variants, and questions: 1\. When do you think that phase correlation will outperform regular correlation or SSD? Can you show this experimentally or justify it analytically? 2\. For the Fourier-based masked or windowed correlation and sum of squared differences, the results should be the same as the direct implementations. Note that you will have to expand (8.5) into a sum of pairwise correlations, just as in (8.22). (This is part of the exercise.)

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.

Sign-up for free