Transcript
Page 1: The  Renci Multitouch  Framework

The Renci Multitouch Framework

Because touching things is just good fun.

Page 2: The  Renci Multitouch  Framework

Overview

• Camera Capture• Filtering• Touch Detection• Touch Camera to Stitching Transformation• Tracking• Stitching to Screen Transformation• Gesture Detection

Page 3: The  Renci Multitouch  Framework

General Structure

Touch Detection & Tracking• Camera Stack

– Filter Graph• Camera• Background• High Pass• Threshold

– Blob Detection– Camera to Stitching Transform

• Tracker– Tracking– Stitch to Screen Transform

Gesture Engine• Acquire New Touches• Test against In-Flight Gestures

& Cull• Cluster Remaining Touches• Compute

– Contraction / Dilation– Rotational Offset

• Clip to registered touch regions• Push To Clients or Emit Mouse

Events

Page 4: The  Renci Multitouch  Framework

Camera Capture

• Video for Windows• Prosilica• Point Grey• Sony PS3 Eye

Page 5: The  Renci Multitouch  Framework

Filtering

Page 6: The  Renci Multitouch  Framework

Blob Detection

• Sample Screen Space given minimum blob size• Utilize a flood-fill style approach to blob region

detection• Back-fill with black to avoid multiple

detections• Compute Centroid & Bounding Box• Projective Transform from Camera to Stitched

Coordinate System

Page 7: The  Renci Multitouch  Framework

Tracking

• KD-Tree Nearest Neighbor to track a blob frame to frame– Find set of nearest neighbors from KD-Tree– Search along line from previous blob’s gradient to

find nearest blob from given set– Transform from Stitched to Screen Coordinate

System

Page 8: The  Renci Multitouch  Framework

What Are All These Transforms?

• Math on all the Pixels Is Expensive– So save time by only doing the expensive mathy-

bits on the touches• Optimally we want One Thread per Camera

with Filter Graph & Blob Detection & Transform• Basically were mapping quadrilaterals to other

quadrilaterals: – Camera System to Stitched System– Stitched System to Screen System

Page 9: The  Renci Multitouch  Framework

So where do we get the Transformation Matrices?

• Calibration and More:– Camera Calibration to remove radial distortion– Stitching Calibration– Screen Calibration– Touch Calibration ( Determine Filter graph Values )

Page 10: The  Renci Multitouch  Framework

Camera Calibration: There is an App For That

Page 11: The  Renci Multitouch  Framework

Stitching Calibration: Yep, Another App

Page 12: The  Renci Multitouch  Framework

Stitching Results on Full Images

Page 13: The  Renci Multitouch  Framework

Even More Apps: Touch & Screen Calibration


Top Related