IP Library Granted Patent US 7,184,030
Granted Patent B2
US 7,184,030 · App. 10/724,633 · Granted Feb 27, 2007

Synchronization of cameras in camera-based touch system to enhance position determination of fast moving objects

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,184,030
App. No.
10/724,633
Granted
Feb 27, 2007
Kind
B2
Abstract

A camera-based touch system includes at least one pair of cameras having overlapping fields of view and a touch surface encompassed within the overlapping fields of view across which a pointer is moved. The cameras of the at least one pair acquire images at intervals asynchronously. In order to estimate the position of the pointer relative to the touch surface from image data acquired by the at least one pair of cameras, the images are synthetically synchronized. During this process, for each camera in the pair, each acquired image is processed to determine the position of the pointer therein and the position of the pointer is recorded together with a timestamp representing the time elapsed between a reference point common to the cameras and the time the image was acquired. Successive pairs of recorded positions are interpolated to generate interpolated positions and the interpolated positions are recorded together with synchronization times representing times the images would have been acquired had the cameras been synchronized. Interpolated positions generated by the cameras having equivalent associated synchronization times are determined and these interpolated positions are triangulated to estimate the position of the pointer relative to the touch surface.

Claims (46)

1. In a camera-based touch system including at least one pair of cameras having overlapping fields of view and a touch surface encompassed within said overlapping fields of view across which a pointer is moved, wherein the cameras of said at least one pair acquire images at intervals asynchronously, a method of synchronizing image data acquired by said at least one pair of cameras comprising the step of:

for each camera in said pair:

processing each acquired image to determine the position of said pointer therein and recording the position together with a timestamp representing the time elapsed between a reference point common to said cameras and the time the image was acquired; and

interpolating between pairs of recorded positions to generate interpolated positions and recording each interpolated position together with a synchronization time representing a time each image would have been acquired had said cameras been synchronized.

2. The method of claim 1 wherein said interpolating is performed between each successive pair of recorded positions.

3. The method of claim 2 wherein said reference point is a signal sent to each of said cameras simultaneously.

4. The method of claim 3 further comprising the step of initiating a timer associated with each camera in response to said signal and reading the value of said timer when each image is acquired, the value of said timer constituting said timestamp.

5. The method of claim 1 wherein for each camera, said processing step and interpolating step are performed by a processor of that camera.

6. The method of claim 1 wherein for each camera, said processing step is performed by a processor of that camera and wherein said interpolating step is performed by an external processor receiving the recorded interpolated positions and synchronization times from each camera.

7. The method of claim 1 wherein each interpolated position is calculated using the equation:

X S =(( X 1 −X 0 )/( T 1 −T 0 ))*( T S −T 0 )+ X 0

where:

X 0 and X 1 are successive x-positions of said pointer;

T 1 and T 0 are successive timestamps corresponding to the x-positions X 1 and X 0 ; and

T S is a given synchronization time, where T 0 ≦T s ≦T 1 .

8. The method of claim 7 wherein each camera records positions and timestamps in a history table, the history table maintained by each camera holding the Nth most recent recorded positions and associated timestamps, the value of N being selected to provide a sufficient number of generated interpolated positions to ensure that at least one interpolated position generated for each camera between resets of said camera has an equivalent synchronization time.

9. In a camera-based touch system including at least one pair of cameras having overlapping fields of view and a touch surface encompassed within said overlapping fields of view across which a pointer is moved, wherein the cameras of said at least one pair acquire images at intervals asynchronously, a method of estimating the position of said pointer relative to said touch surface from image data acquired by said at least one pair of cameras, said method comprising the step of:

for each camera in said pair:

processing each acquired image to determine the position of said pointer therein and recording the position together with a timestamp representing the time elapsed between a reference point common to said cameras and the time the image was acquired; and

interpolating between successive pairs of recorded positions to generate interpolated positions and recording said interpolated positions together with synchronization times representing times the images would have been acquired had said cameras been synchronized; and

determining interpolated positions generated by said cameras having equivalent associated synchronization times and triangulating the interpolated positions to estimate the position of the said pointer relative to said touch surface.

10. The method of claim 9 wherein each camera records positions and timestamps in a history table.

11. The method of claim 10 wherein the history table maintained by each camera holds the Nth most recent recorded positions and associated timestamps, the value of N being selected to provide a sufficient number of generated interpolated positions to ensure that at least one interpolated position generated for each camera between resets of said camera has an equivalent synchronization time.

12. The method of claim 11 wherein the interpolated positions and the associated synchronous times for each camera are stored in a synchronization table.

13. The method of claim 12 wherein N is equal to 6 and wherein each synchronization table holds four interpolated positions and associated synchronous times.

14. The method of claim 11 wherein said reference point is a signal sent to each of said cameras simultaneously.

15. The method of claim 14 further comprising the step of initiating a timer associated with each camera in response to said signal and reading the value of said timer when each image is acquired, the value of said timer constituting said timestamp.

16. The method of claim 15 wherein the intervals between acquisition of successive images by each camera are equal and wherein intervals between succesive synchronization times are equal.

17. The method of claim 16 wherein the intervals between successive synchronization times are greater than or equal to the intervals between acquisition of successive images by each camera.

18. The method of claim 11 wherein for each camera said processing step and interpolating step are performed by a processor of that camera.

19. The method of claim 11 wherein for each camera said processing step is performed by a processor of that camera and wherein said interpolating step is performed by an external processor receiving the recorded interpolated positions and synchronization times from each camera.

20. The method of claim 9 wherein each interpolated position is calculated using the equation:

X S =(( X 1 −X 0 )/( T 1 −T 0 ))*( T S −T 0 )+ X 0

where:

X 0 and X 1 are successive x-positions of said pointer;

T 1 and T 0 are successive timestamps corresponding to the x-positions X 1 and X 0 ; and

T S is a given synchronization time, where T 0 ≦T s ≦T 1 .

21. A camera-based touch system comprising: at least one pair of cameras associated with a touch surface and having overlapping fields of view encompassing said touch surface, said at least one pair of cameras acquiring images of said touch surface from different locations and generating image data; a processor receiving and processing the image data generated by said at least one pair of cameras to determine the location of an object relative to the touch surface by triangulation when the object is captured in images acquired by the at least one pair of cameras; and a synchronization mechanism to synchronize image data generated by said at least one pair of cameras; wherein each camera processes each image acquired thereby to determine the position of the object therein and records the position together with a timestamp representing the time elapsed between a reference point common to said cameras and the time the image was acquired, and wherein said synchronization mechanism interpolates between successive pairs of recorded positions to generate interpolated positions, the interpolated positions being recorded together with synchronization times representing times the images would have been acquired had said cameras been synchronized, said processor using interpolated positions generated by the cameras having equivalent associated synchronization times to determine the location of the object using triangulation.

22. A touch system according to claim 21 wherein said synchronization mechanism calculates the interpolated positions using the equation:

X S =(( X 1 −X 0 )/( T 1 −T 0 ))*( T S −T 0 )+ X 0

where:

X 0 and X 1 are successive x-positions of said pointer;

T 1 and T 0 are successive timestamps corresponding to the x-positions X 1 and X 0 ; and

T S is a given synchronization time, where T 0 ≦T s ≦T 1 .

23. A touch system according to claim 22 wherein each camera records the positions and timestamps in a history table, said history table holding the Nth most recent recorded positions and associated timestamps, the value of N being selected to provide a sufficient number of generated interpolated positions to ensure that at least one interpolated position generated for each camera between resets of said cameras has an equivalent synchronization time.

24. A touch system according to claim 23 wherein said reference point is a signal sent to each of said cameras simultaneously by said processor.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 040819/0306 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 040798/0077 →
RELEASE OF TERM LOAN SECURITY INTEREST Recorded Nov 29, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 040713/0123 →
RELEASE OF ABL SECURITY INTEREST Recorded Nov 29, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 040711/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2014
From: SMART TECHNOLOGIES ULC
To: PIXART IMAGING INC.
Reel/Frame 032693/0266 →
RELEASE OF SECURITY INTEREST RECORDED AT 030935/0848 Recorded Feb 18, 2014
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 032269/0610 →
RELEASE OF SECURITY INTEREST RECORDED AT 030935/0879 Recorded Feb 18, 2014
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 032269/0622 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 030935/0879 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING INC.
Reel/Frame 030935/0848 →
MERGER Recorded Nov 8, 2007
From: SMART TECHNOLOGIES INC.; 1331248 ALBERTA ULC
To: SMART TECHNOLOGIES ULC
Reel/Frame 020083/0508 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2003
From: MCCHARLES, RANDY; MORRISON, GERALD; WORTHINGTON, STEVE; AKITT, TREVOR
To: SMART TECHNOLOGIES, INC.
Reel/Frame 014768/0303 →