Mobile Motion Tracking using Onboard Camera Supervisor: Prof. LYU, Rung Tsong Michael Prepared by: Lam Man Kit Wong Yuk Man.

Slides:



Advertisements
Similar presentations
CIMCO Integration Software Products
Advertisements

Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
Move With Me S.W Graduation Project An Najah National University Engineering Faculty Computer Engineering Department Supervisor : Dr. Raed Al-Qadi Ghada.
A Versatile Depalletizer of Boxes Based on Range Imagery Dimitrios Katsoulas*, Lothar Bergen*, Lambis Tassakos** *University of Freiburg **Inos Automation-software.
Virtual Dart: An Augmented Reality Game on Mobile Device Supervisor: Professor Michael R. Lyu Prepared by: Lai Chung Sum Siu Ho Tung.
Yen-Lin Lee and Truong Nguyen ECE Dept., UCSD, La Jolla, CA Method and Architecture Design for Motion Compensated Frame Interpolation in High-Definition.
Modeling Pixel Process with Scale Invariant Local Patterns for Background Subtraction in Complex Scenes (CVPR’10) Shengcai Liao, Guoying Zhao, Vili Kellokumpu,
Motion Tracking. Image Processing and Computer Vision: 82 Introduction Finding how objects have moved in an image sequence Movement in space Movement.
Novel Point-Oriented Inner Searches for Fast Block Motion Lai-Man Po, Chi-Wang Ting, Ka-Man Wong, and Ka-Ho Ng IEEE TRANSACTIONS ON MULTIMEDIA, VOL.9,
Mobile Motion Tracking using Onboard Camera
Mobile Motion Tracking using Onboard Camera Lam Man Kit CEG Wong Yuk Man CEG.
LYU0603 A Generic Real-Time Facial Expression Modelling System Supervisor: Prof. Michael R. Lyu Group Member: Cheung Ka Shun ( ) Wong Chi Kin ( )
1 Model View Controller. 2 Outline Review Definitions of MVC Why do we need it? Administiriva Changing the display Event flow Dragging at interactive.
Order-Independent Texture Synthesis Li-Yi Wei Marc Levoy Gcafe 1/30/2003.
LYU 0602 Automatic PhotoHunt Generation1 Automatic PhotoHunt Generation Shum Hei Lung To Wan Chi Supervisor: Prof. Michael R. Lyu.
Detecting Image Region Duplication Using SIFT Features March 16, ICASSP 2010 Dallas, TX Xunyu Pan and Siwei Lyu Computer Science Department University.
Computing motion between images
ART: Augmented Reality Table for Interactive Trading Card Game Albert H.T. Lam, Kevin C. H. Chow, Edward H. H. Yau and Michael R. Lyu Department of Computer.
LYU0503 Document Image Reconstruction on Mobile Using Onboard Camera Supervisor: Professor Michael R.Lyu Group Members: Leung Man Kin, Stephen Ng Ying.
1 LYU0503 Document Image Restoration on Mobile Phone Using Onboard Camera Supervisor: Prof. Michael R.Lyu Group Member: Leung Man Kin, Stephen Ng Ying.
Learn how to make your drawings come alive…  Lecture 2: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,
Virtual Dart – An Augmented Reality Game on Mobile Device Supervised by Prof. Michael R. Lyu LYU0604Lai Chung Sum ( )Siu Ho Tung ( )
Augmented Reality: Object Tracking and Active Appearance Model
A Novel 2D To 3D Image Technique Based On Object- Oriented Conversion.
Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.
Company LOGO Mobile Motion Tracking using Onboard Camera Supervisor Prof. LYU, Rung Tsong Michael Presented by Lam Man Kit, Wong Yuk Man.
EE392J Final Project, March 20, Multiple Camera Object Tracking Helmy Eltoukhy and Khaled Salama.
Virtual painting project By: Leetal Gruper Tsafrir Kamelo Supervisor: Michael Kolomenkin Advisor from 3DV systems: Sagi Katz.
Filtering Approaches for Real-Time Anti-Aliasing /
Configuring the MagicInfo Pro Display
Graphics on Key by Eyal Sarfati and Eran Gilat Supervised by Prof. Shmuel Wimer, Amnon Stanislavsky and Mike Sumszyk 1.
A 2-D, multi-player tank game developed in PLT Scheme ~ ~ ~ Ben VandenBos, Tim Reeves, Justin Hall, and John Ericksen ~ ~ ~ Senior Project - CS496 Spring.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Frame by Frame Bit Allocation for Motion-Compensated Video Michael Ringenburg May 9, 2003.
Human-Computer Interaction Human-Computer Interaction Tracking Hanyang University Jong-Il Park.
3D SLAM for Omni-directional Camera
Final Honours Presentation Principal Investigator: João Lourenço Supervisor: Dr Hannah Thinyane.
CHRONOS-CONTROL COMPUTER CONTROL USING TI CHRONOS Cihat Keser Yeditepe University
Scientific Writing Abstract Writing. Why ? Most important part of the paper Number of Readers ! Make people read your work. Sell your work. Make your.
1 Webcam Mouse Using Face and Eye Tracking in Various Illumination Environments Yuan-Pin Lin et al. Proceedings of the 2005 IEEE Y.S. Lee.
Games Development 2 Concurrent Programming CO3301 Week 9.
NVTune Kenneth Hurley. NVIDIA CONFIDENTIAL NVTune Overview What issues are we trying to solve? Games and applications need to have high frame rates Answer.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
A new Ad Hoc Positioning System 컴퓨터 공학과 오영준.
MOTION ESTIMATION IMPLEMENTATION IN RECONFIGURABLE PLATFORMS
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Vehicle Segmentation and Tracking From a Low-Angle Off-Axis Camera Neeraj K. Kanhere Committee members Dr. Stanley Birchfield Dr. Robert Schalkoff Dr.
Ewout van Bekkum Chris Gurley Nate Klein. Brief Summary Purpose of project Automated Gigapixel Panorama Acquisition Create a platform to Adjust the camera’s.
Expectation-Maximization (EM) Case Studies
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
1 Graphics CSCI 343, Fall 2015 Lecture 6 Viewing, Animation, User Interface.
Segmentation of Vehicles in Traffic Video Tun-Yu Chiang Wilson Lau.
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
CSSE463: Image Recognition Day 29 This week This week Today: Surveillance and finding motion vectors Today: Surveillance and finding motion vectors Tomorrow:
Motion Estimation Multimedia Systems and Standards S2 IF Telkom University.
BLOCK BASED MOTION ESTIMATION. Road Map Block Based Motion Estimation Algorithms. Procedure Of 3-Step Search Algorithm. 4-Step Search Algorithm. N-Step.
1/39 Motion Adaptive Search for Fast Motion Estimation 授課老師:王立洋老師 製作學生: M 蔡鐘葳.
Train Body The next series of slides will guide you through the construction of the train body. Start a new drawing and save it as Train Body.
Computer Graphics CC416 Lecture 04: Bresenham Line Algorithm & Mid-point circle algorithm Dr. Manal Helal – Fall 2014.
Detection, Tracking and Recognition in Video Sequences Supervised By: Dr. Ofer Hadar Mr. Uri Perets Project By: Sonia KanOra Gendler Ben-Gurion University.
Motion tracking TEAM D, Project 11: Laura Gui - Timisoara Calin Garboni - Timisoara Peter Horvath - Szeged Peter Kovacs - Debrecen.
11/25/03 3D Model Acquisition by Tracking 2D Wireframes Presenter: Jing Han Shiau M. Brown, T. Drummond and R. Cipolla Department of Engineering University.
Real-Time Soft Shadows with Adaptive Light Source Sampling
Paper – Stephen Se, David Lowe, Jim Little
Contents Team introduction Project Introduction Applicability
A Framework for Automatic Resource and Accuracy Management in A Cloud Environment Smita Vijayakumar.
Find It VR Project (234329) Students: Yosef Albo, Bar Albo
Smita Vijayakumar Qian Zhu Gagan Agrawal
Chapter 13: I/O Systems.
Data-Driven Approach to Synthesizing Facial Animation Using Motion Capture Ioannis Fermanis Liu Zhaopeng
Presentation transcript:

Mobile Motion Tracking using Onboard Camera Supervisor: Prof. LYU, Rung Tsong Michael Prepared by: Lam Man Kit Wong Yuk Man

Agenda Motivation & Objective Previous Work Improvement & New components Sample Applications Conclusion Q&A

Motivation Rapid increase in the use of camera- phone Camera-phone can perform image processing tasks on the device itself Enhance human-computer interaction by mobile phone

Objective Implement real-time motion tracking on Symbian phone, without requiring additional hardware Translational motion tracking Rotational motion tracking To develop a tracking engine for other mobile devices developers to use

Previous Work A translational motion tracking engine Blocking matching SEA (Successive Elimination Algorithm) PPNM PDE (Partial Distortion Elimination) Adaptive Window Search Spiral Scan Feature selection A translational motion tracking engine

Block Matching Algorithm

Evaluate the "goodness" of a match by Sum of Absolute Difference Select the candidate block with the lowest error

Feature Selection A good feature block: High variance -> complex block Not in a repeated pattern If a good feature block is found, the performance of the motion tracking is improved We have made improvements to our existing algorithm

squares Old Feature Selection Divide the current frame into squares Apply Feature Selection Algorithm to each squares However, the best feature block may appear between two squares

New Feature Selection More blocks are sampled Sample 26x26 variances of blocks with size 15x15 in a 54x54 window Search in spiral way and stop searching when selection criteria are matched Prefer to find a feature block in the center Prevent out of bound problem (block appear out of screen)

New Feature Selection If a feature block is found on the edge, the following will happen: The tracking algorithm will fail to find the exact match Solution: Apply additional constraint

New Feature selection In order to find a feature block that is not on the edge, we apply a checking algorithm Important difference in all directions => interest point

New Feature Selection Now our newest feature selection algorithm becomes: Find a block with a large variance -> which indicate the complexity of the block Check if the block is on the edge or not by calculating the SAD between the candidate block and its 4 neighbors If either one of the SAD is small -> the block is on edge -> reject Else the block is not on edge

SSD is used instead of SAD SSD = Sum of Squared Difference Last term, SAD is used as matching criteria SAD is commonly used because of its lower complexity (faster) But we chose to use SSD finally

SSD is used instead of SAD Experiment shows that SSD has better performance in accuracy and Algorithm with SSD run as fast as that with SAD Reason (of why as fast as SAD): Elimination effects from SEA, PPNM & PDE become large when SSD is used Compensate the higher complexity of SSD

SSD is used instead of SAD SEA and PPNM lower bound is adjusted using the inequality (12) proposed in the following paper J.J. Francis and G. de Jager. A Sum Square Error based Successive Elimination Algorithm for Block Motion Estimation (2002)

Experimental Result on Symbian phone Frame rate Maximum frame rate supported by Nokia 6600 is about 14 frames/sec Running our algorithm (1/0.007 frames/sec) once only for each frame do not slow down the displaying frame rate, in other word, the frame rate can still be 14 frames/sec, our algorithm doesn ’ t lag the display

Rotation Tracking Engine As we rotate the phone, the object can still be tracked correctly (center of object roughly equals center of green box) Observation and Motivation

Rotation Tracking Engine Our approach If two blocks are tracked at the same time, angle of line connecting the two blocks reflect the tiling angle of the phone Two-block approach

Rotation Tracking Engine Another approach Track one block by simple motion tracking engine, then find which rotation gives the best match Fail if tracking object is the same for different angle One-block approach

Rotation Tracking Engine Modification of motion tracking algorithm to suit rotation tracking Linear Adaptive method used in translation motion tracking is not used here because phone ’ s motion can be both linear motion and circular motion

Rotation Tracking Engine What to predict? Given the coordinates of the tracking blocks in the last 2 previous frames Predict the coordinates of the blocks in the next frame θ θ A simplified mathematic problem (the following assumptions are approximately correct) All three lines pass through the circle ’ s center End points of the three lines lie on the circle Line L 2 Line L 1 Line L 3

Rotation Tracking Engine Solution Angle between L 2 and L 3 = θ θ = Tan -1 (slope(L 2 )) – Tan -1 (slope(L 3 )) Coordinates of the next tracking block (x L1, y L1 ) are calculated by multiplying the column matrix of coordinates of the previous block with a rotation matrix

Rotation Tracking Engine Solution The prediction of the position of the next tracking block should also take the translational movement into account Horizontal displacement = Tx Tx = ( x L2 1 + x L2 2 – x L3 1 - x L3 2 )/2 Vertical displacement = Ty Ty = ( y L2 1 + y L2 2 – y L3 1 - y L3 2 )/2 Coordinates of the next tracking block (x L1, y L1 ) is calculated by

Rotation Tracking Engine A simple drawing to show the detected rotation angle of the phone

Rotation Tracking Engine Reducing error by using level Apply threshold on output, increase/decrease one level only when change is large To give less sensitive but more desirable output for game e.g. skiing game: skier face only to 7 directions Reduce difficulty, increase reliability A small rotation or a small detection error will not increase/decrease one level

Conditions to be a good background for both engines Objective Max. performance measurement Increase usability Condition: Feature selection can always find a good feature point Within certain distance No repeat pattern Very distinct pattern Pattern is nearly the same when rotated. E.g. Circle which is good for rotation detection

Virtual Mouse An application that make full use of the translational motion detection engine Remote control the mouse of PC by Symbian phone using motion tracking Advantages: It allows input in all directions It provides high levels of control Joystick can still be used as rough moving while camera input can be used as fine translation

Virtual Mouse Server In server side (Windows), the Bluetooth is configured to provide RFComm Service and server regards the Bluetooth transmission port as Comm. Port Server receives message from that Comm. Port Call function in MouseAction.h to make the mouse move and trigger mouse click event

Virtual Mouse Client Search for Bluetooth device nearby Connect to the selected Bluetooth device Every time motion tracking algorithm finishes, results are sent to server (12 times/sec) Joystick and keypad can also be used to control mouse in PC (Multi-button mouse)

Car Racing Game A “ Car Racing Game ” is developed using the motion tracking engine. Game lags. It is because: The engine takes time to find the motion vector CPU speed of the Symbian phones are low The game engine thread uses most of the CPU power while the thread for updating the screen cannot proceed Solutions: Double Buffering Direct Screen Access Single Thread

Double Buffered Area Double-buffering – two complete color buffers One is displayed while the other is calculating next scene to be drawn, When the drawing of the next frame is completed, the content of the back buffer is copied to the front screen Computing Frame 2 Show Frame 2 Buffer 1Buffer 2 copy Frame 1 Computing …… Frame 2 Front Screen Frame 2 ready

Direct Screen Access In Symbian, traditional drawing requires the help of Window Server Overhead in context switching Lower speed Access the screen directly in 3 ways: Creating and using CfbsScreenDevice Accessing screen memory directly. Using CdirectScreenAccess. Using DSA can bypass the Window Server Get rid of context switching Faster

Traditional Graphic Programming Update Display Device Screen and Keypad Window Server RWsSession Application 1 Key Presses

Direct Screen Access 2. If successful, a region for drawing to is returned to the application. Window Server 1. Request to Window Server to work in Direct Screen Access mode Application

Single Thread Prevent context switching No need to do synchronization

Car Racing Game With the use of efficient graphic programming algorithms, the tracking engine will not affect the performance of the game It shows that we can use the engine to develop other applications without performance degradation

Skiing Game Sample program from the book “ Developing Series 60 Applications: A Guide for Symbian Os C++ Developers ” Based on this game, we plug in our rotation tracking engine into it The game becomes more interactive Rotate the phone to control the angle of the skier

Skiing Game

The process of using the engine is very simple Create an instance of the tracking engine Call the function of the engine to find the motion vector Use the motion vector for the game logic

Skiing Game

Demo

Experimental Result on Symbian phone Testing Environment Platform Symbian Phone Nokia 6600 Algorithm Our final (hybrid-type) Algorithm (Block matching algorithm featured with Adaptive Window, Spiral Scan, SEA, PPNM and PDE method) Algorithm parameter Block size = 17 x 17 (pixels) Search window size = 16 x 16 (pixels) Number of block to track in each run of algorithm = 1 block ONLY

Experimental Result on Symbian phone Testing Result (avg time to run) Final algorithm 7ms Final algorithm without adaptive window method and SEA, PPNM method 22ms Full Exhaustive Search algorithm (the most simplest one) 55ms

Q & A