IP Library Granted Patent US 8,879,848
Granted Patent B2
US 8,879,848 · App. 13/559,767 · Granted Nov 4, 2014

Machine vision based automatic maximal clamp measurement tool

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,879,848
App. No.
13/559,767
Granted
Nov 4, 2014
Kind
B2
Abstract

System and method for measuring distances in an image. An image is received that includes curves corresponding to one or more objects in the image. Multiple curves in a specified region of interest (ROI) in the image are detected, where the ROI has a specified direction. Each curve includes respective curve points. A convex hull is determined based on the respective curve points. One or more candidate antipodal point pairs of the convex hull are determined. A first point pair of the one or more antipodal point pairs is selected based on one or more specified constraints. A clamp angle corresponding to the first point pair is determined. A distance between the first point pair along a direction specified by the clamp angle is determined. The first point pair, the distance, and the clamp angle are stored. Calibration information may be applied at any point during the process.

Claims (125)

1. A non-transitory computer accessible memory medium that stores program instructions implementing a clamping tool, wherein the program instructions are executable by a processor to:

receive an image, wherein the image includes curves corresponding to one or more objects in the image;

detect a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, and wherein each curve comprises respective curve points;

determine a convex hull based on the respective curve points;

determine one or more candidate antipodal point pairs of the convex hull;

select a first point pair of the one or more antipodal point pairs based on one or more specified constraints;

determine a clamp angle corresponding to the first point pair;

determine a distance between the first point pair along a direction specified by the clamp angle; and

store the first point pair, the distance, and the clamp angle, wherein the first point pair, the distance, and the clamp angle, are useable to analyze the one or more objects.

2. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to:

analyze and validate the plurality of curves, thereby determining a plurality of validated curves, wherein said determining the convex hull comprises determining the convex hull based on respective curve points of the plurality of validated curves.

3. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to:

perform subpixel accurate refinement of positions of the first point pair, thereby determining a refined first point pair, wherein said determining a distance between the first point pair comprises determining a distance between the refined first point pair.

4. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to:

display a graphical user interface (GUI) for the tool;

receive user input configuring at least one parameter for the tool;

wherein said detecting, said determining a convex hull, said determining one or more candidate antipodal point pairs, said selecting, said determining a clamp angle, said determining a distance, or said storing are performed in accordance with the at least one parameter.

5. The non-transitory computer accessible memory medium of claim 4 , wherein the at least one parameter comprises one or more of:

angle tolerance;

the ROI;

orientation of the tool with respect to search direction for the ROI;

one or more edge polarities; or

one or more constraints.

6. The non-transitory computer accessible memory medium of claim 5 , wherein the program instructions are further executable by a processor to:

reject a tool configuration that does not generate a valid object configuration using a specified pair of edge polarities.

7. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to:

reject a tool configuration that does not correspond to a valid physical configuration.

8. The non-transitory computer accessible memory medium of claim 7 , wherein to reject a tool configuration that does not correspond to a valid physical configuration the program instructions are further executable by a processor to:

perform physical modeling of the tool and at least a portion of the one or more objects.

9. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to:

detect a configuration that is unclampable; and

output an indication that the configuration is invalid.

10. A computer-implemented method, comprising:

utilizing a computer to perform:

receiving an image, wherein the image includes curves corresponding to one or more objects in the image;

detecting a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, wherein each curve comprises respective curve points;

determining a convex hull based on the respective curve points;

determining one or more candidate antipodal point pairs of the convex hull;

selecting a first point pair of the one or more antipodal point pairs based on one or more specified constraints;

determining a clamp angle corresponding to the first point pair;

determining a distance between the first point pair along a direction specified by the clamp angle; and

storing the first point pair, the distance, and the clamp angle, wherein the first point pair, the distance, and the clamp angle, are useable to analyze the one or more objects.

11. A system, comprising:

a processor;

a memory, coupled to the processor, wherein the memory stores program instructions executable by the processor to:

receive an image, wherein the image includes curves corresponding to one or more objects in the image;

detect a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, wherein each curve comprises respective curve points;

determine a convex hull based on the respective curve points;

determine one or more candidate antipodal point pairs of the convex hull;

select a first point pair of the one or more antipodal point pairs based on one or more specified constraints;

determine a clamp angle corresponding to the first point pair;

determine a distance between the first point pair along a direction specified by the clamp angle; and

store the first point pair, the distance, and the clamp angle, wherein the first point pair, the distance, and the clamp angle, are useable to analyze the one or more objects.

12. The system of claim 11 , wherein the program instructions are further executable by a processor to:

perform subpixel accurate refinement of positions of the first point pair, thereby determining a refined first point pair, wherein said determining a distance between the first point pair comprises determining a distance between the refined first point pair.

13. The system of claim 11 , wherein the program instructions are further executable by a processor to:

display a graphical user interface (GUI) for the tool;

receive user input configuring at least one parameter for the tool;

wherein said detecting, said determining a convex hull, said determining one or more candidate antipodal point pairs, said selecting, said determining a clamp angle, said determining a distance, or said storing are performed in accordance with the at least one parameter.

14. The system of claim 13 , wherein the at least one parameter comprises one or more of:

angle tolerance;

the ROI;

orientation of the tool with respect to search direction for the ROI;

one or more edge polarities; or

one or more constraints.

15. The system of claim 11 , wherein the program instructions are further executable by a processor to:

detect a configuration that is unclampable; and

output an indication that the configuration is invalid.

16. A system, comprising:

a functional unit; and

a memory, coupled to the functional unit;

wherein the functional unit is configured to:

receive an image, wherein the image includes curves corresponding to one or more objects in the image;

detect a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, wherein each curve comprises respective curve points;

determine a convex hull based on the respective curve points;

determine one or more candidate antipodal point pairs of the convex hull;

select a first point pair of the one or more antipodal point pairs based on one or more specified constraints;

determine a clamp angle corresponding to the first point pair;

determine a distance between the first point pair along a direction specified by the clamp angle; and

store the first point pair, the distance, and the clamp angle, wherein the first point pair, the distance, and the clamp angle, are useable to analyze the one or more objects.

17. The system of claim 16 , wherein the functional unit comprises a programmable hardware element.

18. The system of claim 16 , wherein the functional unit and memory are comprised in a smart camera.

19. The system of claim 16 , wherein the program instructions are further executable by a processor to:

perform subpixel accurate refinement of positions of the first point pair, thereby determining a refined first point pair, wherein said determining a distance between the first point pair comprises determining a distance between the refined first point pair.

20. The system of claim 16 , wherein the functional unit is further configured to:

receive user input configuring at least one parameter for the tool;

wherein said detecting, said determining a convex hull, said determining one or more candidate antipodal point pairs, said selecting, said determining a clamp angle, said determining a distance, or said storing are performed in accordance with the at least one parameter.

21. The system of claim 20 , wherein the at least one parameter comprises one or more of:

angle tolerance;

the ROI;

orientation of the tool with respect to search direction for the ROI;

one or more edge polarities; or

one or more constraints.

22. The system of claim 16 , wherein the functional unit is further configured to:

detect a configuration that is unclampable; and

output an indication that the configuration is invalid.

23. A non-transitory computer accessible memory medium that stores program instructions implementing a clamping tool, wherein the program instructions are executable by a processor to:

receive an image, wherein the image includes curves corresponding to one or more objects in the image;

detect a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, wherein each curve comprises respective curve points in pixel-space;

correct the curve points in pixel-space of each of the plurality of curves using calibration information, thereby generating a corresponding plurality of corrected curve points in corrected pixel-space;

determine a convex hull of the plurality of corrected curve points;

determine one or more candidate antipodal point pairs of the convex hull;

convert the one or more candidate antipodal point pairs from corrected pixel-space to pixel-space, thereby generating one or more converted candidate antipodal point pairs;

select a first point pair of the one or more converted candidate antipodal point pairs based on one or more specified constraints;

determine a clamp angle corresponding to the first point pair;

determine a distance between the first point pair along a direction specified by the clamp angle, thereby generating a pixel-space distance;

convert the first point pair from pixel-space to real-world space, thereby generating a real-world point pair;

determine a distance between the real-world point pair along the direction specified by the clamp angle, thereby generating a real-world distance; and

store the first point pair, the pixel-space distance, the real-world point pair, the real-world distance, and the clamp angle, wherein first point pair, the pixel-space distance, the real-world point pair, the real-world distance, and the clamp angle are useable to analyze the one or more objects.

24. A system, comprising:

a functional unit; and

a memory, coupled to the functional unit;

wherein the functional unit is configured to:

receive an image, wherein the image includes curves corresponding to one or more objects in the image;

detect a plurality of curves in a specified region of interest (ROI) in the image, wherein the ROI has a specified direction, wherein each curve comprises respective curve points in pixel-space;

correct the curve points in pixel-space of each of the plurality of curves using calibration information, thereby generating a corresponding plurality of corrected curve points in corrected pixel-space;

determine a convex hull of the plurality of corrected curve points;

determine one or more candidate antipodal point pairs of the convex hull;

convert the one or more candidate antipodal point pairs from corrected pixel-space to pixel-space, thereby generating one or more converted candidate antipodal point pairs;

select a first point pair of the one or more converted candidate antipodal point pairs based on one or more specified constraints;

determine a clamp angle corresponding to the first point pair;

determine a distance between the first point pair along a direction specified by the clamp angle, thereby generating a pixel-space distance;

convert the first point pair from pixel-space to real-world space, thereby generating a real-world point pair;

determine a distance between the real-world point pair along the direction specified by the clamp angle, thereby generating a real-world distance; and

store the first point pair, the pixel-space distance, the real-world point pair, the real-world distance, and the clamp angle, wherein first point pair, the pixel-space distance, the real-world point pair, the real-world distance, and the clamp angle are useable to analyze the one or more objects.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2012
From: BAGARIA, VENKATESH; VAZQUEZ, NICOLAS; NAIR, DINESH R.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 028654/0553 →