IP Library Granted Patent US 8,600,107
Granted Patent B2
US 8,600,107 · App. 13/077,637 · Granted Dec 3, 2013

Interactive input system and method

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 8,600,107
App. No.
13/077,637
Granted
Dec 3, 2013
Kind
B2
Abstract

A method of determining locations of at least two pointers in a captured image frame comprises generating a vertical intensity profile (VIP) from the captured image frame, the VIP comprising peaks generally corresponding to the at least two pointers; determining if the peaks are closely spaced and, if the peaks are closely spaced, fitting a curve to the VIP; analyzing the fitted curve to determine peak locations of the fitted curve; and registering the peak locations as the pointer locations.

Claims (112)

1. A method of determining locations of at least two pointers in a captured image frame, the method comprising:

generating a vertical intensity profile (VIP) from the captured image frame, the VIP comprising peaks generally corresponding to the at least two pointers;

determining if the peaks are closely spaced and, if the peaks are closely spaced:

fitting a curve to the VIP by calculating a nonlinear least squares fit for at least one model, each model comprising at least two peaks, each peak having at least one of a respective peak location, a respective peak half-width and a respective peak amplitude, calculating a goodness-of-fit value for each model and determining a final model by comparing the goodness-of-fit values, the final model being said fitted curve;

analyzing the fitted curve to determine peak locations of the fitted curve; and

registering the determined peak locations as the pointer locations.

2. The method of claim 1 , wherein if the peaks are determined not to be closely spaced, the method further comprising:

analyzing the VIP to determine the peak locations; and

registering the determined peak locations as the pointer locations.

3. The method of claim 1 , wherein the nonlinear least squares fit is calculated using one of a conjugate gradient algorithm, a Levenberg-Marquardt algorithm, and a nonlinear simplex algorithm.

4. The method of claim 1 , wherein the fitting a curve further comprises:

calculating an Akaike Information Criterion (AIC) value for each model; and

determining the final model by comparing the goodness-of-fit values and the AIC values.

5. The method of claim 4 , wherein the final model determined is the model having at least one of a lowest goodness-of-fit value and a lowest AIC value.

6. The method of claim 5 , further comprising:

calculating a value of fit residuals for each model,

wherein the AIC value for each model is calculated based on the value of the fit residuals.

7. The method of claim 1 , wherein the at least one model is based on a point-by-point maximum of the VIP, the point-by-point maximum given by:

max([ƒ(x o , w, σ), g(x o , w, σ), h(x o , w, σ), . . . ])

where ƒ(x, w, σ), g(x, w, σ) and h (x, w, σ) each represent an individual VIP function corresponding to a respective VIP peak, and where x o is the peak location and w is the half-width of each individual VIP function, and σis instrumental profile width.

8. The method of claim 7 , wherein each VIP peak is proportional to an error function erƒ(x) given by:

1

2

·

(

erf

(

x

+

w

2

σ

)

-

erf

(

x

-

w

2

σ

)

)

.

9. The method of claim 1 , further comprising, prior to said determining:

comparing the VIP to a threshold; and

identifying the peaks in the VIP based on the comparing.

10. An interactive input system, comprising:

at least one imaging assembly capturing image frames of a region of interest; and

processing structure in communication with the at least one imaging assembly, the processing structure being configured to:

generate a vertical intensity profile (VIP) from a captured image frame, the VIP comprising peaks generally corresponding to locations of at least two pointers in the captured image frame; and

determine if the peaks are closely spaced, and if the peaks are closely spaced to:

fit a curve to the VIP by calculating a nonlinear least squares fit for at least one model, each model comprising at least two peaks, each peak having at least one of a respective peak location, a respective peak half-width and a respective peak amplitude, calculating a goodness-of-fit value for each model, and determining a final model by comparing the goodness-of-fit values, the final model being the fitted curve;

analyze the fitted curve to determine peak locations of the fitted curve;

register the determined peak locations as the pointer locations.

11. The system of claim 10 , wherein the at least one imaging assembly comprises two or more imaging assemblies, the processing structure being further configured to carry out said generating and said determining for a respective image frame captured by each imaging assembly, and to:

calculate the positions of the at least two pointers by triangulation based on the pointer locations.

12. The system of claim 11 , wherein if the peaks are determined not to be closely spaced, the processing structure is further configured to:

analyze the VIP to determine the peak locations; and

register the determined peak locations as the pointer locations.

13. The system of claim 11 , wherein the nonlinear least squares fit is calculated using one of a conjugate gradient algorithm, a Levenberg-Marquardt algorithm, and a nonlinear simplex algorithm.

14. The system of claim 11 , wherein, during the fitting, the processing structure is further configured to:

calculate an Akaike Information Criterion (AIC) value for each model; and

determine the final model by comparing the goodness-of-fit values and the AIC values.

15. The system of claim 14 , wherein the final model determined is the model having at least one of a lowest goodness-of-fit value and a lowest AIC value.

16. The system of claim 15 , wherein the processing structure is further configured to:

calculate a value of fit residuals for each model,

wherein the AIC value for each model is calculated based on the value of the fit residuals.

17. The system of claim 11 , wherein the at least one model is based on a point-by-point maximum of the VIP, the point-by-point maximum given by:

max([ƒ(x o , w, σ), g(x o , w, σ), h(x o , w, σ) , . . . ])

where ƒ(x, w, σ), g (x, w, σ) and h (x, w, σ) each represent an individual VIP function corresponding to a respective VIP peak, and where x o is the peak location and w is the half-width of each individual VIP function, and σis instrumental profile width.

18. The system of claim 17 , wherein each VIP peak is proportional to an error function erƒ(x) given by:

1

2

·

(

erf

(

x

+

w

2

σ

)

-

erf

(

x

-

w

2

σ

)

)

.

19. The system of claim 11 , wherein the processing structure is further configured to, prior to the determining:

compare the VIP to a threshold; and

identify the peaks in the VIP based on the comparing.

20. A non-transitory computer readable medium having embodied thereon a computer program for determining locations of at least two pointers in a captured image frame, the computer program comprising:

program code for generating a vertical intensity profile (VIP) from the captured image frame, the VIP comprising peaks generally corresponding to the at least two pointers; and

program code for determining if the peaks are closely spaced and, if the peaks are closely spaced:

program code for fitting a curve to the VIP by calculating a nonlinear least squares fit for at least one model, each model comprising at least two peaks, each peak having at least one of a respective peak location, a respective peak half-width and a respective peak amplitude, calculating a goodness-of-fit value for each model and determining a final model by comparing the goodness-of-fit values, the final model being said fitted curve;

program code for analyzing the fitted curve to determine peak locations of the fitted curve; and

program code for registering the determined peak locations as the pointer locations.

Assignments (7)
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 ABL SECURITY INTEREST Recorded Nov 29, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
Reel/Frame 040711/0956 →
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 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING INC.
Reel/Frame 030935/0848 →
SECURITY AGREEMENT Recorded Aug 1, 2013
From: SMART TECHNOLOGIES ULC; SMART TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 030935/0879 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2011
From: HOLMGREN, DAVID
To: SMART TECHNOLOGIES ULC
Reel/Frame 026420/0274 →