Multi-Touch Navigation Engine Presented by Team Extra Touch: Chris Jones Shuopeng Yuan Nathan Wiedeback.

Slides:



Advertisements
Similar presentations
Images Images are a key component of any multimedia presentation.
Advertisements

Active Shape Models Suppose we have a statistical shape model –Trained from sets of examples How do we use it to interpret new images? Use an “Active Shape.
Road-Sign Detection and Recognition Based on Support Vector Machines Saturnino, Sergio et al. Yunjia Man ECG 782 Dr. Brendan.
1 RTL Example: Video Compression – Sum of Absolute Differences Video is a series of frames (e.g., 30 per second) Most frames similar to previous frame.
Image Analysis Phases Image pre-processing –Noise suppression, linear and non-linear filters, deconvolution, etc. Image segmentation –Detection of objects.
Image Segmentation Image segmentation (segmentace obrazu) –division or separation of the image into segments (connected regions) of similar properties.
Department of Electrical and Computer Engineering He Zhou Hui Zheng William Mai Xiang Guo Advisor: Professor Patrick Kelly ASLLENGE.
Bohr Robot Group OpenCV ECE479 John Chhokar J.C. Arada Richard Dixon.
Multi-Touch Navigation Engine Presented by Team Extra Touch: Chris Jones Shuopeng Yuan Nathan Wiedeback Detailed Design Review 1.
Image Enhancement To process an image so that the result is more suitable than the original image for a specific application. Spatial domain methods and.
Digital Cameras CCD (Monochrome) RGB Color Filter Array.
5. Halftoning Newspaper photographs simulate a greyscale, despite the fact that they have been printed using only black ink. A newspaper picture is, in.
CS 128/ES Lecture 5a1 Raster Formats (II). CS 128/ES Lecture 5a2 Spatial modeling in raster format  Basic entity is the cell  Region represented.
Traffic Sign Recognition Jacob Carlson Sean St. Onge Advisor: Dr. Thomas L. Stewart.
Object Detection and Tracking Mike Knowles 11 th January 2005
Image Morphing : Computational Photography Alexei Efros, CMU, Fall 2005 © Alexey Tikhonov.
Exercise 1 - Poisson Image completion using Discrete Poisson Linear Systems.
Essentials of Interactive Computer Graphics: Concepts and Implementation K. Sung, P. Shirley, S. Baer Chapter 12 Chapter 12: Making the Applications Interesting.
Touchscreen Implementation for Multi-Touch
Multi-Touch Navigation Engine Presented By: Chris Jones Shuopeng Yuan Nathan Wiedeback.
Feature extraction Feature extraction involves finding features of the segmented image. Usually performed on a binary image produced from.
Traffic Sign Recognition Jacob Carlson Sean St. Onge Advisor: Dr. Thomas L. Stewart.
Brief overview of ideas In this introductory lecture I will show short explanations of basic image processing methods In next lectures we will go into.
Real-Time Vision on a Mobile Robot Platform Mohan Sridharan Joint work with Peter Stone The University of Texas at Austin
Image Morphing CSC320: Introduction to Visual Computing
TERMS TO KNOW. Programming Language A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Each language has.
Introduction to electrical and computer engineering Jan P. Allebach School of Electrical and Computer Engineering
Chapter 2 Data Representation. Define data types. Visualize how data are stored inside a computer. Understand the differences between text, numbers, images,
Deep Green System for real-time tracking and playing the board game Reversi Nadav Erell Intro to Computational and Biological Vision, CS department, Ben-Gurion.
Basic Graphics Concepts Day One CSCI 440. Terminology object - the thing being modeled image - view of object(s) on the screen frame buffer - memory that.
By Meidika Wardana Kristi, NRP  Digital cameras used to take picture of an object requires three sensors to store the red, blue and green color.
Computer Graphics Raster Devices Transformations Areg Sarkissian.
Texture Mapping. Scope Buffers Buffers Various of graphics image Various of graphics image Texture mapping Texture mapping.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
LINEAR SYSTEMS – Graphing Method In this module, we will be graphing two linear equations on one coordinate plane and seeing where they intersect. You.
infinity-project.org Engineering education for today’s classroom 2 Outline How Can We Use Digital Images? A Digital Image is a Matrix Manipulating Images.
CS 376b Introduction to Computer Vision 03 / 21 / 2008 Instructor: Michael Eckmann.
Pipelined and Parallel Computing Data Dependency Analysis for 1 Hongtao Du AICIP Research Mar 9, 2006.
SIMD Image Processor Eric Liskay Andrew Northy Neraj Kumar 1.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
Face Detection Ying Wu Electrical and Computer Engineering Northwestern University, Evanston, IL
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
Section 9.2 Adding and Subtracting Matrices Objective: To add and subtract matrices.
Visual Computing Computer Vision 2 INFO410 & INFO350 S2 2015
(c) 2002 University of Wisconsin, CS 559
By shooting 2009/6/22. Flow chart Load Image Undistotion Pre-process Finger detection Show result Send Result to imTop Calculate Background image by 10.
Multimedia Programming 10: Image Morphing
Giuseppe Ruggiero CERN Straw Chamber WG meeting 07/02/2011 Spectrometer Reconstruction: Pattern recognition and Efficiency 07/02/ G.Ruggiero - Spectrometer.
How to identify complex events in the real world First part : Vision –Image segmentation –Checking for basic events : touching, intersecting, moving, pointing,
Detecting Image Features: Corner. Corners Given an image, denote the image gradient. C is symmetric with two positive eigenvalues. The eigenvalues give.
Color Image Segmentation Mentor : Dr. Rajeev Srivastava Students: Achit Kumar Ojha Aseem Kumar Akshay Tyagi.
What you need: In order to use these programs you need a program that sends out OSC messages in TUIO format. There are a few options in programs that.
Non-linear filtering Example: Median filter Replaces pixel value by median value over neighborhood Generates no new gray levels.
OCR Reading.
Texture Mapping cgvr.korea.ac.kr.
Computational Photography Derek Hoiem, University of Illinois
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
(c) 2002 University of Wisconsin, CS 559
Lecture 13 Clipping & Scan Conversion
network of simple neuron-like computing elements
Vision Tracking System
Chapter 2 Data Representation.
Image Segmentation.
Primitive Drawing Algorithm
Filtering Images Work in the spatial domain
Lecture 2: Image filtering
Primitive Drawing Algorithm
DIGITAL IMAGE PROCESSING Elective 3 (5th Sem.)
Presentation transcript:

Multi-Touch Navigation Engine Presented by Team Extra Touch: Chris Jones Shuopeng Yuan Nathan Wiedeback

Multi-Touch Navigation Engine Background System Design Accomplishments 2

Background AIS offers single-touch Multi-touch is the “cool new thing” –iPhone, MacBook –MS Surface Mitch Butzer had good ideas… 3

Project Specifications 4 Microcontroller-based Written in C independent control channels Defined at compile time Recognize defined patterns e.g., finger but not palm

5 System Flow

Serial Input 6

Serial Stream Parser 74 byte “packets” from the screen Processed to get 32 sensor values, etc. Subtract the lowest value from each 7 (Little-endian) Average: 0x488B = 18,571 First sensor: 0x4886 = 18,566

Interpolator 8

Red dots: intersections of sensors (16 x 16) Green dot `P`: interpolated point Set a threshold and discretize at the end Each pixel -> 1 or 0 9 Image source: Wikipedia

Phantom Filter 10

Phantom Filter 11 One touchTwo touches Phantom touches (unfiltered) Intersections -> phantom touches Compare touches to last frame for filtering

Pattern Recognizer 12

Pattern Recognizer: Flowchart 13 Data In : Frame of Data Resolution: 240 * 180

Blob Classification and Checking Engine 14 Input Example: Resolution 60*20

Blob edge finding algorithm First edgeLast edge

16 Blob Classification and Checking Engine Input Example: Resolution 60*20 -- two blobs found

Voronoi Skeleton Algorithm 17 Ideal caseActual case

18 Voronoi Skeleton with Test Data

Slope Algorithm Linear skeleton should have the same angle at each point. (a1 = a2 = a3 = a4) 19 Linear -> accept and find centerNonlinear -> reject

Channel Assignment 20

21 Channel Frames – Overall Look Current FormPotential Form

22 Current Setup Channel Frames Channel 1 FrameChannel 2 Frame

Channel Assignment – How it Works Channel 1 Frame Channel 2 Frame Channel 3 Frame Output to One Touch per Channel Limiter: Coordinates 3,3 Channel 3 Input: Coordinate Data (3,3) touched We have a match at Channel 3! 23

24 One Touch per Channel Limiting Channel A – 3 touches Channel A -Phase 1 Reduction Channel A - Phase 2 Reduction

25 Output Data X0 Y0 X1 Y1 X2 Y2 X3 Y3 C0 C1 C2 C3 Altered Coordinate Array Channel Array

Accomplishments Translate sensor wires into 16x16 matrix Interpolate Recognize finger touches, reject other shapes Assign to either of two channels 26

Challenges Challenge Phantom touches “[40K] ought to be enough for anybody!” Need “tap points” for intermediate data Solution Compare to previous frame Low resolution (240 x 180 ?) for proof-of-concept Make each stage’s data available at the output 27

Future Serial interrupt issues Phantom filtering implementation –Would also enable more shapes Different touchscreen technology? 28

Questions?

Channel Assignment – Text Overview Data In: Center coordinates (X,Y) Processing: Data gets transformed into a 2d array, and the compared against each channel frame to determine its channel. Channel frames are defined before compile. Data Out: (X,Y) coordinates with channel data attached. Details: Aiming for 2 channels initially Should be simple to add channels in the final iteration.

Channel Assignment: Flow Chart 31

Summary Major design: “Proof-of-concept” –240 x 180 x 1-bit “color” –Simple phantom filtering –Accept a single finger per channel, reject other cases –Two channels 32