Hybrid image processing system for a single field of view having a plurality of inspection threads
First Claim
Patent Images
1. A hybrid image processing system, comprising:
- an image interface unit being configured to;
receive a plurality of images from a plurality of cameras for a single field of view of a same object and generate commands for processing of the images, wherein each image is at a same time and a different area of the same object; and
an image processing unit being configured to;
receive the plurality of images and the commands from the image interface unit,assign the commands to process the plurality of images, anddistribute the processing of the plurality of images among a plurality of special purpose processing engines (SPEs), wherein the plurality of special purpose processing engines configured to;
receive an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language,process the plurality of images based on the commands, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread, andsend the processed plurality of images to the image interface unit.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a hybrid image processing system, which generally includes an image processing unit for receiving image data corresponding to a set of images, generating commands for processing the image data, and sending the images and the commands to an image processing unit of the hybrid image processing system. Upon receipt, the image processing unit will recognize and interpret the commands, assign and/or schedule tasks for processing the image data to a set of (e.g., special) processing engines based on the commands, and return results and/or processed image data to the image interface unit.
137 Citations
26 Claims
-
1. A hybrid image processing system, comprising:
-
an image interface unit being configured to; receive a plurality of images from a plurality of cameras for a single field of view of a same object and generate commands for processing of the images, wherein each image is at a same time and a different area of the same object; and an image processing unit being configured to; receive the plurality of images and the commands from the image interface unit, assign the commands to process the plurality of images, and distribute the processing of the plurality of images among a plurality of special purpose processing engines (SPEs), wherein the plurality of special purpose processing engines configured to; receive an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, process the plurality of images based on the commands, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread, and send the processed plurality of images to the image interface unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A hybrid image processing system, comprising:
-
an image interface unit configured for; receiving a plurality of images for a single field of view of a same object, wherein each image is at a same time and a different area of the same object, generating commands for processing of the plurality of images, sending the plurality of images and the commands for processing the plurality of images, and receiving processed plurality of images, the image interface unit comprising a client application, an image grabber library, a first communications library, and an image processing command library; and an image processing unit configured for; receiving the plurality of images and the commands from the image interface unit, distributing the plurality of images among a plurality of special purpose processing engines (SPEs) based on the commands, receiving an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, assigning the commands to process the plurality of images to the plurality of special purpose, processing the plurality of images based on the commands, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread, and sending the processed plurality of images to the image interface unit, the image processing unit comprising a cell application, a command dispatcher, an image processing library, a software developer kit library, and a second communications library. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for processing images, comprising:
-
receiving a plurality of images on an image interface unit from a plurality of cameras for a single field of view of a same object, wherein each image is at a same time and a different area of the same object; generating commands for processing of the plurality of images; sending the plurality of images and the commands for processing the plurality of images; receiving the plurality of images and commands on an image processing unit; assigning the commands to process the plurality of images; distributing the processing the plurality of images based on the commands among a plurality of special purpose processing engines (SPEs); receiving an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, processing the plurality of images on the image processing unit based on the commands, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread; and sending the processed plurality of images from the image processing unit to the image interface unit. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method for processing images, comprising:
-
receiving a plurality of images on an image interface unit for a single field of view of a same object, wherein each image is at a same time and a different area of the same object; generating commands using an image processing command library for the processing of the plurality of images; interpreting the commands on an image processing unit; assigning tasks to and distributing tasks among a plurality of special purpose processing engines (SPEs) to process the plurality of images based on the commands; receiving an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language; and processing the plurality of images in response to the tasks, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread.
-
-
22. A program product stored on at least one non-transitory computer readable medium for processing images, the at least one non-transitory computer readable medium comprising program code for causing at least one computer system to:
-
receive a plurality of images from a plurality of cameras for a single field of view of a same object, wherein each image is at a same time and a different area of the same object; generate commands for processing of the plurality of images; interpret the commands; assign tasks to and distribute tasks among a plurality of special purpose processing engines (SPEs) based on the commands to process the plurality of images; receive an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language; and process the plurality of images in response to the tasks, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread. - View Dependent Claims (23, 24, 25)
-
-
26. A method for deploying a system for processing images, comprising:
providing a computer infrastructure being operable to; receive a plurality of images from a plurality of cameras for a single field of view of a same object, wherein each image is at a same time and a different area of the same object; generate commands for processing of the plurality of images; interpret the commands; assign tasks to and distribute tasks among a plurality of special purpose processing engines (SPEs) based on the commands to process the plurality of images; receive an off-load of at least one library function at a run time, wherein the at least one library function is written for the plurality of SPEs, wherein the at least one library function supports the processing of the plurality of images, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language; and process the plurality of images in response to the tasks, wherein the single field of view has a plurality of inspection threads, and wherein each inspection thread runs an algorithm that is different from the algorithm of any other inspection thread.
Specification